Thuật toán đặc biệt hữu ích cho cácbài toán có số biến vượt trội so với số ràng buộc hoặc có ma trận ràng buộcthưa tỉ lệ phần tử 0 khá lớn - chẳng hạn ma trận bài toán vận tải và được ứ
Trang 2Người hướng dẫn khoa học: GS.TS Trần Vũ Thiệu
Phản biện 1: TS Nguyễn Thị Thu Thủy
Phản biện 2: PGS.TS Hà Tiến Ngoạn
Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn họp tạiTrường Đại học Khoa học - Đại học Thái Nguyên
vào hồi 11 giờ ngày 26 tháng 12 năm 2015
Có thể tìm hiểu luận văn tại Trung tâm học liệu Đại học Thái Nguyên
và Thư viện Trường Đại học Khoa học
Trang 3Người hướng dẫn khoa học: GS.TS Trần Vũ Thiệu
Phản biện 1: TS Nguyễn Thị Thu Thủy
Phản biện 2: PGS.TS Hà Tiến Ngoạn
Luận văn đã được bảo vệ trước Hội đồng chấm luận văn họp tạiTrường Đại học Khoa học - Đại học Thái Nguyên
vào hồi 11 giờ 30 ngày 26 tháng 12 năm 2015
Có thể tìm hiểu luận văn tại Trung tâm học liệu Đại học Thái Nguyên
và Thư viện Trường Đại học Khoa học
Trang 4MỞ ĐẦU
Qui hoạch tuyến tính là bài toán tối ưu được ứng dụng rộng rãi trong
lý thuyết và thực tiễn Phương pháp đơn hình Dantzig (1947) rất hiệu quả đểgiải lớp bài toán này Có nhiều biến thể khác nhau cho dạng bài toán hay tìnhhuống cụ thể và có nhiều thuật toán có hiệu quả cao: đơn hình gốc, đơn hìnhcải biên, đơn hình đối ngẫu, đơn hình gốc - đối ngẫu,
Luận văn này đề cập tới thuật toán đơn hình cải biên, một biến thể quantrọng của phương pháp đơn hình Dantzig Thuật toán đặc biệt hữu ích cho cácbài toán có số biến vượt trội so với số ràng buộc hoặc có ma trận ràng buộcthưa (tỉ lệ phần tử 0 khá lớn ) - chẳng hạn ma trận bài toán vận tải và được
ứng dụng để giải bài toán qui hoạch tuyến tính với ràng buộc suy rộng, trong
đó vectơ hệ số của mỗi biến trong bài toán không cố định trước mà được chọntùy ý từ một tập lồi đa diện cho trước
Sau khi được học các chuyên đề về giải tích lồi, tối ưu hóa và các kiến thức
có liên quan, với mong muốn tìm hiểu sâu hơn về kiến thức đã học, tôi chọn
đề tài luận văn:"Thuật toán đơn hình cải biên và ứng dụng giải qui hoạch tuyến tính với ràng buộc suy rộng".
Mục đích chính của đề tài là tìm hiểu nội dung các thuật toán đơn hình vàđơn hình cải biên giải qui hoạch tuyến tính và trình bày cách áp dụng thuậttoán đơn hình cải biên, kết hợp với kỹ thuật sinh cột của nguyên lý phân rã,vào giải bài toán qui hoạch tuyến tính với ràng buộc suy rộng
Nội dung luận văn gồm ba chương
Thái Nguyên, ngày 21 tháng 11 năm 2015
Trang 51.1 TẬP LỒI VÀ TẬP LỒI ĐA DIỆN
Định nghĩa 1.1 Tập C ⊆ R được gọi là một tập lồi nếu λa + (1 − λ)b ∈
C, ∀a, b ∈ C, ∀λ ∈ [0, 1], tức là nếu C chứa toàn bộ đoạn thẳng nối hai điểmbất kỳ thuộc nó
• Ta để ý tới các tập lồi đặc biệt sau đây:
a) Tập afin là tập chứa trọn đường thẳng đi qua hai điểm bất kì thuộc
Trang 6e) Hình cầu đóng B(a, r) = {x ∈ Rn
: kx − ak 6 r}(a ∈ Rn, r >0)
• Từ định nghĩa tập lồi trực tiếp suy ra một số tính chất đơn giản sau đây:
a) Giao của một họ bất kì các tập lồi là một tập lồi C, D lồi ⇒ C T D
lồi
b) Nếu C, D ⊂ Rnthì C ± D = {x ± y =: x ∈ C, y ∈ D} là các tậplồi
c) Nếu C ⊂ Rmvà D ⊂ Rnthì tích C × D = {(x, y) : x ∈ C, y ∈D}là một tập lồi trong Rm+n (Có thể mở rộng cho nhiều tậplồi)
Định nghĩa 1.2 Cho E là một tập hợp bất kì trong Rn
a) Giao của tất cả các tập afin chứa E gọi là bao afin của E, kí hiệu là aff E.
Đó là tập afin nhỏ nhất chứa E
b) Giao của tất cả các tập lồi chứa E gọi là bao lồi của E, kí hiệu là conv E.
Đó là tập lồi nhỏ nhất chứa E
Định nghĩa 1.3 a) Thứ nguyên (hay số chiều) của một tập afin M, kí hiệu
dim M, là thứ nguyên (số chiều) của không gian con song song với nó
b) Thứ nguyên (hay số chiều) của một tập lồi C, kí hiệu dim C, là thứ nguyên
(số chiều) của bao afin aff C của nó
Định nghĩa 1.4 Tập lồi K ⊆ Rnđược gọi là một nón lồi nếu nó có thêm
điều kiện λx ∈ K, ∀x ∈ K, ∀λ > 0
Định nghĩa 1.5 a) Điểm x ∈ Rncó dạng x = λ1a1+ λ2a2+ + λkakvới ai∈ Rn, λi> 0, λ1+ λ2+ + λk= 1gọi là một tổ hợp lồi của
Trang 7Định nghĩa 1.6 Một tập lồi mà là giao của một số hữu hạn các nửa không
gian đóng gọi là một tập lồi đa diện Nói cách khác, đó là tập nghiệm của một
hệ hữu hạn các bất phương trình tuyến tính:
Tập này bị chặn và có thứ nguyên (số chiều) bằng 2: dim D2= 2.(D2
là tam giác với 3 đỉnh (6, 2, 2), (2, 6, 2), (2, 2, 6) nằm trong mặt phẳng
x1+ x2+ x3= 1)
Định nghĩa 1.7 Điểm x0 ∈ Dđược gọi là một đỉnh của D nếu @x1, x2 ∈
D, x16= x0hoặc x26= x0và @λ ∈ (0, 1) sao cho x0= λx1+ (1 − λ)x2, nóimột cách khác: x0không thể là điểm nằm ở trong một đoạn thẳng nào đó nốihai điểm thuộc D
Trang 8• Trong Hình 1.1, O, A, B, C, D là các đỉnh của tập lồi đa diện D1 TrongHình 1.2, ba đỉnh của tam giác (tô gạch chéo) là các đỉnh của tập lồi
đa diện D2
Để hiểu rõ hơn về tập lồi đa diện không bị chặn ta cần các khái niệm sau:
Định nghĩa 1.8 Vectơ d ∈ Rn, d 6= 0được gọi là một hướng lùi xa của D
nếu ∃x0∈ Dsao cho {x0
+ λd : λ > 0} ⊆ D Tập hợp các hướng lùi xa của
D cộng với gốc O tạo thành một nón lồi đóng, gọi là nón lùi xa của D, kí hiệu
rec D
Định nghĩa 1.9 Hướng lùi xa d của D được gọi là một hướng cực biên nếu
không tồn tại hai hướng lùi xa khác d1, d2sao cho d = λ1d1+ λ2d2, λ1, λ2>
có thể biểu diễn dưới dạng một tổ hợp lồi của những tập hữu hạn các đỉnh của
D cộng với một tổ hợp tuyến tính không âm của một tập hữu hạn các phương cực biên của D.
Trong các bài toán quy hoạch tuyến tính, ta gặp tập lồi đa diện có dạng:
D = {x ∈ Rn: Ax = b, x > 0}, A ∈ Rm×n, b ∈ Rm (1.1)tức D là tập nghiệm không âm của một hệ phương trình tuyến tính Giả thiết
m 6 n (nếu m > n, tập D có thể rỗng) và rank A = m
Ở dạng này, tập D không chứa đường thẳng nào (do x > 0) nên D có đỉnh
Kí hiệu Aj(j = 1, , n)là vectơ cột thứ j của ma trận A Theo lý thuyết quihoạch tuyến tính, vectơ ¯x ∈ D là một đỉnh của D khi và chỉ khi hệ vectơ{Aj: ¯xj> 0}là độc lập tuyến tính Do Aj ∈ Rmnên từ tính chất này suy ra
số thành phần dương trong đỉnh của D xác định bởi (1.1) không vượt quá m.Một ứng dụng cụ thể của các kết quả trên đây là tìm các đỉnh của tập lồi đadiện D xác định theo (1.1) khi số biến n không quá lớn Sau đây là một ví dụ:
Ví dụ 1.2 Tìm các đỉnh không suy biến của tập lồi đa diện cho bởi hệ:
(3x1− 2x2+ 3x3= 6
−x1+ 2x2− x3= 4
x > 0, j = 1, 2, 3
Trang 9Ví dụ này có m = 2 phương trình và n = 3 biến Một đỉnh có nhiều nhất m
= 2 thành phần dương, tức là có ít nhất n - m = 1 thành phần bằng 0 Vì thế,lần lượt cho x1, x2, x3bằng 0, ta được:
• Với x1= 0, hệ phương trình trên cho ta x2=92, x3= 5
• Với x2= 0, hệ phương trình vô nghiệm (x1+ x3= −4, x1> 0, x3>
0!)
• Với x3= 0, hệ phương trình trên cho ta x2=92, x1= 5
Như vậy ta nhận được hai nghiệm của hệ: (0,9
2, 5)và (5,9
2, 0) Kiểm tratrực tiếp cho thấy hệ hai vectơ A2 = (−2, 2)T, A3 = (3, −1)T và A1 =(3, −1)T, A2= (−2, 2)T là độc lập tuyến tính, nên cả hai nghiệm trên đều làcác đỉnh không suy biến của tập lồi đa diện đã cho (số thành phần dương m =2)
1.2 BÀI TOÁN QUI HOẠCH TUYẾN
xj > 0, j = 1, 2, , n
(1.2)
trong đó aij, bi, cjlà các hằng số cho trước
Trong bài toán (1.2), f(x) gọi là hàm mục tiêu, mỗi phương trình
ai1x1+ ai2x2+ + ainxn= bi, (i = 1, 2, , m)
gọi là một ràng buộc đẳng thức, mỗi bất đẳng thức xj > 0 gọi là một ràng
buộc về dấu (hay ràng buộc không âm) Điểm (hay vectơ) x ∈ Rn thỏa mãn
mọi ràng buộc, gọi là một điểm chấp nhận được, hay một phương án của bài toán Tập hợp tất cả các phương án của bài toán gọi là tập ràng buộc hay miền
chấp nhận đượccủa bài toán và được kí hiệu là D, tức là đặt:
Trang 10D = {x ∈ Rn : Ax = b, x > 0}.
Như đã nhắc lại ở Mục 1.2, D là một tập lồi đa diện có đỉnh (nếu tập
D 6= ∅) Phương án đạt giá trị nhỏ nhất của hàm mục tiêu, hay gọi là một
phương án tối ưu hay một lời giải của bài toán Một phương án mà đồng thời
là một đỉnh của D được gọi là một phương án cực biên của bài toán.
Kí hiệu A = (aij) ∈ Rm×n, b = (b1, , bm)T, c = (c1, , cn)T và
x = (x1, , xn)T Khi đó bài toán (1.2) có thể viết gọn lại thành:
min{f (x) = cTx : Ax = b, x > 0}
Định lý sau nêu điều kiện cần và đủ để một qui hoạch tuyến tính có lời giải:
Định lí 1.2 Nếu một qui hoạch tuyến tính có ít nhất một phương án và nếu
hàm mục tiêu bị chặn dưới trong miền chấp nhận được (đối với bài toán min) thì bài toán chắc chắn có phương án tối ưu (lời giải).
Định lý sau nêu lên một tính chất đặc trưng của phương án cực biên(đỉnh) của bài toán qui hoạch tuyến tính chính tắc:
Định lí 1.3 Để một phương án x0= (x0, x0, , x0
n) của bài toán qui hoạch
tuyến tính chính tắc là phương án cực biên thì điều kiện cần và đủ là các vectơ cột Ajcủa ma trận A tương ứng với các thành phần x0j > 0 là độc lập tuyến
tính.
Định lí 1.4 Nếu bài toán qui hoạch tuyến tính chính tắc có phương án tối ưu
thì cũng có phương án cực biên tối ưu (có đỉnh tối ưu).
1.3 BÀI TOÁN ĐỐI NGẪU
Ta định nghĩa đối ngẫu của bài toán qui hoạch tuyến tính chính tắc, kíhiệu bài toán (P):
Trang 11Dùng kí hiệu vectơ và ma trận ta có thể viết gọn lại như sau:
Định lí 1.5 (Đối ngẫu yếu) Nếu x là một phương án bất kỳ của bài toán gốc
(P) và y là một phương án bất kỳ của bài toán đối ngẫu (Q) thì:
f (x) = c1x1+ c2x2+ + cnxn > g(y) = b1y1+ b2y2+ + bmym.
Định lí 1.6 (Đối ngẫu mạnh) Nếu một qui hoạch có phương án tối ưu thì qui
hoạch đối ngẫu của nó cũng có phương án tối ưu và giá trị tối ưu của chúng
là bằng nhau.
Định lí 1.7 (Độ lệch bù yếu) Một cặp phương án x, y của hai qui hoạch đối
ngẫu (P) và (Q) là các phương án tối ưu khi và chỉ khi chúng nghiệm đúng hệ thức:
xT(c − ATy) = 0 hay xj(cj−
mXi=1
aijyi) = 0 với mọi j = 1, , n.
Ví dụ 1.4 Áp dụng Định lý (1.7) vào cặp bài toán đối ngẫu cho ở Ví dụ 1.3,
ta thấy x và y là nghiệm tối ưu của các bài toán gốc và đối ngẫu tương ứng khi
và chỉ khi x, y thỏa mãn hệ điều kiện sau:
(x1+ x2+ x3= 4, x1− 2x2= 1, x1> 0, x2> 0, x3> 0(chấp nhận được gốc)
y1+ y26 1, y1− 2y26 −2, y16 3(chấp nhận được đối ngẫu)
x1(1 − y1− y2) = 0, x2(−2 − y1+ 2y2) = 0, x3(3 − y1) = 0(độ lệch bù yếu).Kiểm tra trực tiếp cho thấy rằng x∗ = (3, 1, 0)và y∗ = (0, 1)thỏa mãn hệđiều kiện trên Vì thế, x∗là phương án tối ưu của bàn toán gốc và y∗là phương
án tối ưu của bài toán đối ngẫu tương ứng và ta có hệ thức f(x∗) = g(y∗) = 1
Trang 12m nên tồn tại B−1 Mỗi cột Ak của A được biểu diễn: Ak = Bzk với
zk= B−1Ak, (k = 1, , n)
Hệ Ax = b ⇔ BxB + N xN = b ⇒ xB = B−1b − B−1N xN và
f (x) = cTx = cBxB+ cNxN = cBB−1b − ∆NxN với ∆N = {Dk =
cBzk− ck, k /∈ J } Số ∆kgọi là ước lượng của biến xk(k /∈ J )
Định nghĩa 1.11 Cơ sở B gọi là chấp nhận được gốc nếu B−1b > 0, gọi là
chấp nhận được đối ngẫunếu ∆N 6 0 và gọi là cơ sở tối ưu nếu B−1b > 0
và ∆N 6 0
Định lí 1.8 Nếu B là cơ sở tối ưu (tức là B−1
b > 0 và ∆N 6 0) thì:
a) x = (xB = B−1b, xN = 0)T là nghiệm tối ưu của bài toán gốc.
b) yT = cBB−1, s = (sB = 0, sN = −∆N)T là nghiệm tối ưu của bài toán đối ngẫu.
Chứng minh suy từ hệ thức đối ngẫu cTx = cBxB = cBB−1b = yTb
• Thuật toán đơn hình gốc xuất phát từ một cơ sở B chấp nhận được gốc
và nghiệm cơ sở của (P): xB = B−1b, xN = 0 Thay đổi cơ sở B chođến khi ∆N 6 0
Trang 13Định lí 1.9 (Dấu hiệu bài toán có giá trị tối ưu vô cực) Nếu với cơ sở B
chấp nhận được gốc tồn tại chỉ số k / ∈ J sao cho ước lượng ∆k > 0 và
zjk6 0, ∀j ∈ J thì bài toán gốc (P) đã cho có giá trị tối ưu vô cực (−∞ đối
với bài toán min).
Lưu ý: Trong quá trình giải bài toán qui hoạch tuyến tính theo thuật toán đơnhình gốc, ở mỗi vòng lặp ta cần lưu giữ và biến đổi các thông tin:
• xB = B−1b: giá trị các biến cơ sở và CBB−1b: giá trị hàm mục tiêutương ứng
• B−1N: ma trận hệ số khai triển của các vectơ ngoài cơ sở theo cơ sởB
• ∆N = cBB−1N − cN: vectơ ước lượng của các biến ngoài cơ sở.Thông tin này được ghi lại trong một bảng chữ nhật cấp (m + 1) × (n −
m + 1), gọi là bảng đơn hình:
B−1b B−1N
cBB−1b ∆N = cBB−1N − cN
Trang 142.1 Ý NGHĨA CỦA SỰ CẢI BIÊN
Xét bài toán qui hoạch tuyến tính dạng chính tắc:
min{f (x) = cTx : Ax = b, x > 0} (2.1)Giả sử ta có phương án cực biên x với cơ sở J = {i1, i2, , im}, (Ai 1, Ai2, , Aim)
là các vectơ cơ sở và xi1, xi2, , ximlà các biến cơ sở) Đặt:
B = (Ai1, Ai2, , Aim)- ma trận cơ sở (m hàng, m cột)
Zk = (z1k, z2k, , zmk)T - vectơ cột hệ số khai triển của Aktheo cơ sở B
cB= (ci1, ci2, , cim)T - vectơ hàng gồm hệ số mục tiêu của các biến cơ sở
xB= (xi1, xi2, , xim)T - vectơ cột ghi giá trị các biến cơ sở
Theo phương pháp đơn hình ta đã có công thức tính sau:
xB= B−1b, f (x) = (cB)TB−1b, Zk = B−1Ak, k = 1, 2, , n
∆k = cBZk− ck,gọi là các ước lượng của biến xk, k = 1, 2, , n (2.2)
Trang 15Phương pháp đơn hình giải qui hoạch tuyến tính (2.1) cần tính toán trên matrận cỡ m × n Phương pháp đơn hình cải biên sử dụng các công thức (2.2)nên ở mỗi vòng lặp chỉ cần lưu giữ và biến đổi ma trận cơ sở nghịch đảo B−1
cỡ m×m, không cần lưu giữ và biến đổi ma trân điều kiện ban đầu (cỡ m×nlớn hơn rất nhiều), nhờ đó tiết kiệm được bộ nhớ và thời gian tính toán giảibài toán Phương pháp đơn hình cải biên đặc biệt thích hợp và có hiệu quả đốivới các bài toán thực tế có kích thước lớn, có số ràng buộc m nhỏ hơn nhiều
so với số biến n của bài toán và A là ma trận thưa (tỉ lệ các phần tử khác 0trong A rất nhỏ, chỉ khoảng từ 5% đến 10%)
2.2 CÔNG THỨC TRUY HỒI TÍNH
Khi đưa vectơ phi cơ sở Asvà cơ sở B và loại khỏi B vectơ Ai r với
zrs6= 0, ta nhận được cơ sở mới:
B0 = (Ai1, , Air−1, As, Air+1, , Aim),nghĩa là B’ chỉ khác B bởi một vectơ Asthay cho Air (ở vị trí thứ r trong cơsở)
0 1 −zr−1,s
z rs 0 0 1
zrs 0 0
0 0 −zr+1,s
z rs 1 0
Trang 16là một ma trận sơ cấp, nghĩa là nó chỉ khác ma trận đơn vị ở một cột duy nhất(cột thứ r).
2.3 THUẬT TOÁN ĐƠN HÌNH CẢI BIÊN
Dantzig và Orchard - Hays (1954) đã đề ra một thuật toán đơn hình cảibiên để giảm bớt khối lượng tính toán và thông tin lưu trữ ở mỗi bước lặp đơnhình
Xét bài toán qui hoạch tuyến tính chính tắc ở dạng (2.1) Quá trình giải bàitoán đơn hình cải biên sử dụng hai bảng: Bảng 2.1 và Bảng 2.2
Trong Bảng 2.1, m+1 dòng đầu lưu giữ các hệ số aij, bi, cij của bài toáncần giải (2.1) Từ dòng m+2 trở đi ghi các ước lượng ∆k của biến xk ở mỗivòng lặp tính theo công thức (2.2)
Bảng 2.2 gọi là bảng đơn hình cải biên Cột đầu tiên ghi tên các biến cơ
sở Cột cBghi hệ số mục tiêu của các biến cơ sở Trong cột thứ ba (Phươngán): m phần tử đầu là giá trị các biến cơ sở, phần tử cuối là giá trị hàm mụctiêu tương ứng Ma trận cơ sở nghịch đảo B−1được ghi ở m cột tiếp theo Cột
Zs(cột quay): m phần tử đầu ghi các hệ số khai triển của vectơ đưa vào cơ sở
Astheo các vectơ cơ sở, phần tử cuối ghi ước lượng ∆s Dòng phía dưới ma
Trang 17trận nghịch đảo ghi phương án của bài toán đối ngẫu, nó được tính theo côngthức:
Bảng 2.2: Bảng đơn hình cải biên
Thuật toán đơn hình cải biên gồm các bước sau:
Bước 0 (Xây dựng bảng đơn hình ban đầu) Giả sử lúc đầu có phương án cực
biên x với cơ sở J Đặt B = {Aj : j /∈ J } Tính ma trận nghịch đảo và ghi
nó vào Bảng 2.2 Tính m phần tử đầu của cột Phương án theo (2.2) và tính
qm+1,0 = (cB)TB−1b Các phần tử qm+1,k(k = 1, , m)là tích của vectơ
cBvới vectơ cột thứ k của B−1theo công thức (2.5)
Bước 1 (Kiểm tra tối ưu và tìm cột quay) Tính ước lượng của biến xk theocông thức (2.2): ∆k là tích của dòng m+1 của Bảng 2.2 với cột Ak ở Bảng2.1, rồi trừ ck Nếu ∆k 6 0∀k = 1, , n thì phương án cực biên hiện có làtối ưu Trái lại, ta xác định vectơ Asđưa vào cơ sở theo công thức (hoặc chọnngẫu nhiên nếu có nhiều chỉ số đạt max):
∆s= max{∆k : ∆k > 0, k /∈ J }
Bước 2: (Kiểm tra bài toán không có lời giải hữu hạn và tìm dòng quay).
Trước hết tính cột quay (cột Z ở Bảng 2.2) theo công thức Z = B−1A , tức