Như vậy, bài toán gốc và bài toán đối ngẫu của nó lập thành một cặp bài toán QHTT, tính chất của bài toán này có thể được khảo sát thông qua bài toán kia.. Với mục đích tìm hiểu bước đ
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC ĐÀ NẴNG
TIỂU LUẬN
LÝ THUYẾT ĐỐI NGẪU
Học phần: Tối ưu hóa
Chuyên ngành: Khoa học máy tính
Mã số: 62.48.01.01 Khóa học: 2011 - 2015
NCS Trần Ngọc Việt
Người hướng dẫn: PGS.TSKH Trần Quốc Chiến
PGS.TS Lê Mạnh Thạnh
ĐÀ NẴNG – 2012
Trang 2MỤC LỤC
MỞ ĐẦU ……… 2
Chương 1 PHÂN TÍCH TỔNG QUAN CÁC VẤN ĐỀ LIÊN QUAN ĐẾN ĐỀ TÀI LUẬN ÁN 1 Tổng quan về các công trình trong nước liên quan đến đề tài luận án ……… 3
1.1 Công trình về thuật toán tìm đường đi ngắn nhất ……… 3
1.1.1 Thuật toán đường đi ngắn nhất xuất phát từ một đỉnh 5
1.1.2 Thuật toán đường đi ngắn nhất trong k cặp đỉnh nguồn đích ……… 6
1.2 Thuật toán Bellman – Ford ……… 8
1.3 Thuật toán Floyd-Warshall ……… 9
1.4 Công trình về thuật toán luồng cực đại ……… 10
1.5 Bài toán luồng đa phương tiện cực đại ……… 14
1.6 Bài toán luồng đa phương tiện cực đại đồng thời ……… 19
1.7 Bài toán luồng đa phương tiện cực đại đồng thời có ràng buộc chi phí ……… 23
2 Tổng quan về các công trình đã nghiên cứu trên thế giới … 27
3 Một số ứng dụng lớn trên thế giới ……… 28
4 Danh mục các công trình liên quan ……… 29
Chương 2 PHƯƠNG PHÁP NGHIÊN CỨU, KẾT QUẢ DỰ KIẾN VÀ HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI ………… 31
KẾT LUẬN ……… 33
TÀI LIỆU THAM KHẢO ……… 34
Trang 3Chương 1.
LÝ THUYẾT ĐỐI NGẪU
1.1 Khái niệm về đối ngẫu
Đối ngẫu là một khái niệm cơ bản của việc giải bài toán quy hoạch tuyến tính vì lý thuyết đối ngẫu dẫn đến một kết quả có tầm quan trọng về mặt lý thuyết
và cả mặt thực hành
1.2 Phát biểu bài toán đối ngẫu
Tương ứng với mỗi bài toán Quy hoạch tuyến tính (còn gọi là bài toán gốc)
có một bài toán đối ngẫu Bài toán đối ngẫu của bài toán QHTT cũng là một bài toán QHTT Như vậy, bài toán gốc và bài toán đối ngẫu của nó lập thành một cặp bài toán QHTT, tính chất của bài toán này có thể được khảo sát thông qua bài toán kia Nhiều quy trình tính toán hay phân tích được hoàn thiện khi xem xét cặp bài toán trên trong mối liên quan chặt chẽ của chúng, mang lại lợi ích trong việc giải quyết các vấn đề phát sinh từ thực tế Với mục đích tìm hiểu bước đầu, chúng ta xét bài toán gốc là bài toán quy hoạch tuyến tính dạng Max với các ràng buộc chỉ có dấu ≤ và các biến đều thoả mãn điều kiện không âm
Bài toán gốc
max f (x)=c1x1 +c2x2 + +c n x n
với các điều kiện ràng buộc
≥
≤ +
+ +
≤ +
+ +
≤ +
+ +
0 , ,
,
2 1
2 2 1 1
2 2
2 22 1 21
1 1
2 12 1 11
n
m n mn m
m
n n
n n
x x x
b x a x
a x a
b x a x
a x a
b x a x
a x a
Lúc đó bài toán QHTT sau đây được gọi là bài toán đối ngẫu của bài toán QHTT trên
Trang 4Bài toán đối ngẫu
ming(y) = b1y1 +b2y2 + +b m y m
với các điều kiện ràng buộc:
≥
≥ +
+ +
≥ +
+ +
≥ +
+ +
0 , ,
,
2 1
2 2 1 1
2 2
2 22 1 12
1 1
2 21 1 11
m
n m mn n
n
m m
m m
y y
y
c y a y
a y a
c y a y
a y a
c y a y
a y a
Các biến y1,y2, ,y m được gọi là các biến đối ngẫu Trong trường hợp này, do bài toán gốc có m ràng buộc, nên bài toán đối ngẫu có m biến đối ngẫu Biến đối ngẫu y i tương ứng với ràng buộc thứ i của bài toán gốc
Trong trường hợp quy hoạch tuyến tính tổng quát, những quy tắc sau đây được áp dụng để xây dựng bài toán đối ngẫu :
- Hàm mục tiêu đối ngẫu :
max ↔ min
- Biến đối ngẫu :
mỗi ràng buộc ↔ một biến đối ngẫu
- Chi phí đối ngẫu và giới hạn ràng buộc :
chi phí đối ngẫu ↔ giới hạn ràng buộc
- Ma trận ràng buộc đối ngẫu :
ma trận chuyển vị
- Chiều của ràng buộc và dấu của biến :
ràng buộc trong bài toán max có dấu ≤ thì biến đối ngẫu trong bài toán min có dấu ≥ 0 ( trái chiều )
ràng buộc trong bài toán max có dấu = thì biến đối ngẫu trong bài toán min có dấu tùy ý
Trang 5ràng buộc trong bài toán max có dấu ≥ thì biến đối ngẫu trong bài toán min có dấu ≤ 0 ( trái chiều )
biến của bài toán max có dấu ≥ 0 thì ràng buộc đối ngẫu trong bài toán min có dấu ≥ ( cùng chiều )
biến của bài toán max có dấu tùy ý thì ràng buộc đối ngẫu trong bài toán min có dấu =
biến của bài toán max có dấu ≤ 0 thì ràng buộc trong bài toán đối ngẫu min có dấu ≤ ( cùng chiều )
1.3 Định lý độ lệch bù
Giả sử x* và y* là các phương án tối ưu của cặp bài toán đối ngẫu Lúc đó
(x*, y*) thoả mãn hệ:
=
−
=
−
0 ) (
0 ) (
y A c x
b Ax
y
T T
T
Chứng minh
Với x = x*, y = y* ⇒ f ( x ) = g ( y ) hay yTb = bT y = cTx = xTc
Mặt khác, yTAx = xT AT y
0 ) (
) (
) (
)
⇒ yT Ax b xT AT y c yT Ax b xT c AT y
=
−
=
−
⇒
0 ) (
0 ) (
y A c
x
b Ax
y
T T
T
Chú ý rằng: yT ≥ 0, Ax − b ≤ 0, xT ≥ 0, c − ATy ≤ 0. Vậy, ta có điều phải chứng minh
1.4 Cơ sở của phương pháp đơn hình đối ngẫu
Xét bài toán gốc: min f (x) =c T x với x∈D ={x∈R n : Ax≥b,x ≥0} Dễ dàng đưa bài toán này về dạng chính tắc: min f (x) = c T x với các ràng buộc
0
=b x
x
s T T
s T T
x x x c c c
I A
A= − , = ( , ), =( , ) , với chỉ số dưới s dùng để ký hiệu các chỉ số bù
Xét một véc tơ x thỏa mãn A x =b, x ≥0 Bằng cách phân rã
Trang 6[ ] T T
B
T
N x x x B
N
A = , = ( , ) và cho xN = 0 , với xB = B−1b Các véc tơ cột
B
j j J
a , ∀ ∈ của B được gọi là:
- Cơ sở gốc chấp nhận nếu xB = B−1b ≥ 0, nhưng không nhất thiết
cT BB− 1A ≤ cT
- Cơ sở đối ngẫu chấp nhận nếu cT BB− 1A ≤ cT, nhưng không nhất thiết
xB = B−1b ≥ 0
Kiểm tra lại các bước của thuật toán đơn hình đối ngẫu Giả sử, T T
B
T
N x x
là một phương án đối ngẫu khả thi, tức là các véc tơ cột aj, ∀ j ∈ JB, là cơ sở đối
ngẫu chấp nhận Nên ∆ = − −1 ≥ 0
j
T B j
j c c B a Nếu xB = B− 1b ≥ 0 thì x là phương án tối ưu Chú ý rằng, thuật toán đơn hình đối ngẫu được bắt đầu với ma trận B ≡ − I , do đó có xB = B−1b = − Ib
Nếu xB = B− 1b ≥ 0 chưa được thỏa mãn thì tồn tại xq < 0 , q ∈ JB. Lúc đó
ta cần thực hiện thủ tục xoay
Trường hợp 1: ∀ j ∈ J (J là tập các chỉ số của các véc tơ cột của ma trận A
), xqj ≥ 0 Điều này có nghĩa là tất cả các tọa độ thứ q của các véc tơ
J j
a
B−1 j, ∀ ∈ đều không âm Ta sẽ chỉ ra rằng bài toán gốc không có phương
án, hay bài toán đối ngẫu có hàm mục tiêu không bị chặn trên Xét véc tơ:
) ( cT BB 1 T
y = − Dễ dàng chứng minh được đây đúng là phương án của bài toán đối ngẫu Thật vậy, ta có:
AT y ≤ c
Đặt Uq T là véc tơ hàng q trong ma trận B− 1 và xét y ' = y − θ Uq với θ > 0
q
T j
q j
T
a y a U a
Trang 7Ta có yT aj ≤ cj , nên ( y')T aj ≤ cj Do đó, AT y' ≤ c hay y' cũng là phương án của bài toán đối ngẫu Mặt khác, giá trị của hàm mục tiêu trong bài toán đối ngẫu là
+∞
→
−
=
−
=
−
=
q
T T
q
T
y
y
khi θ → +∞
Để chứng minh bài toán gốc không có phương án có thể lập luận ngắn gọn hơn
Thật vậy, ta có ∑ = < 0
∈J j
j qj j
x x
x (do B−1 A x = B−1b ) Nếu bài toán gốc có phương án với các tọa độ không âm thì đây là điều vô lý vì:
,
0
Trường hợp 2: ∃ j ∈ J : xqj ≥ 0 Ta chọn cột xoay theo “qui tắc tỷ số âm lớn
nhất”, tức là chọn chỉ số s sao cho:
∆
=
∆
< qj
j qj
x qs
s
x
x min0 Tiếp tục thực hiện thủ tục xoay trong bài toán đơn hình đối ngẫu, ta sẽ chuyển được sang phương án đối ngẫu khả thi mới Trong phương án mới xs sẽ là biến
cơ sở thay chỗ cho biến xq
Vì mỗi phương án đối ngẫu khả thi tìm được trong quá trình giải tương ứng với một ma trận cơ sở B trong một phân rã nào đó A = [N B], nên số phương án đối ngẫu khả thi được xem xét là một số hữu hạn Do đó, sau một số hữu hạn bước,
ta sẽ kết thúc việc giải bài toán QHTT bằng phương pháp đơn hình đối ngẫu
1.5 Thuật toán đơn hình đối ngẫu
Thuật toán đơn hình đối ngẫu được xây dựng dựa trên tính chất của cặp bài toán đối ngẫu
Trang 8Thuật toán của phương pháp đơn hình đối ngẫu được phát biểu cho bài toán QHTT:
min f (x) = c T x, với x∈D ={x∈R n : Ax= b,x≥ 0}
Bước khởi tạo
-Tìm một phương án đối ngẫu khả thi x = B− 1b tương ứng với ma trận cơ sở B trong một phân rã nào đó A=[N B]: điều kiện x j ≥ 0,∀j có thể không được
thỏa mãn nhưng luôn có ∆j ≥ 0 j,∀
-Tính: ∆j = c j − f j,∀j =1,n trong đó n là số biến của bài toán đang xét
Các bước lặp
Bước 1: Kiểm tra điều kiện tối ưu Nếu điều kiện tối ưu x j ≥ 0,∀j =1,n đã được thỏa mãn thì in / lưu kết quả của bài toán và dừng
Bước 2: Nếu tồn tại một chỉ số j sao cho x j < 0 thì tiến hành thủ tục xoay
gồm nhiều bước tương tự theo thủ tục xoay của phương pháp đơn hình với các khác biệt sau:
- Trước tiên chọn hàng xoay là hàng với biến x j có giá trị âm (thông
thường với trị tuyệt đối lớn nhất, hoặc chọn ngẫu nhiên)
- Sau đó chọn cột xoay theo quy tắc tỷ số âm lớn nhất (các tỷ số được tạo
ra bằng cách lấy hàng ∆j chia cho hàng x j và chỉ xét các tỷ số có mẫu số âm).
Nếu không tìm được cột xoay thì kết luận bài toán không có phương án khả thi,
in / lưu kết quả của bài toán và chuyển sang bước kết thúc
- Nếu tìm được cột xoay thì thực hiện các bước tiếp theo của thủ tục
xoay
-Tính lại các ∆j,∀j =1,n và quay lại bước 1
-Việc thực hiện giải bài toán gốc bằng phương pháp đơn hình đối ngẫu
Trang 9thực chất là việc giải bài toán đối ngẫu bằng phương pháp đơn hình Điều này cũng giải thích lí do tại sao khi thực hiện thủ tục xoay của phương pháp đơn hình đối ngẫu cần trước hết xác định hàng xoay rồi sau đó mới xác định cột xoay
Ví dụ: Xét cặp bài toán đối ngẫu
Bài toán gốc
min f ( x ) = 3 x1+ 2 x2
với các ràng buộc
≥
≥ +
≥ +
≥ +
0 ,
4 2
3
4 2
2 1
2 1
2 1
2 1
x x
x x
x x
x x
Nếu giải trực tiếp bài toán trên bằng phương pháp đơn hình, thì cần đưa bài toán
về dạng chính tắc với 8 biến (thêm ba biến bù “thừa” và ba biến giả) Một phương pháp khác như đã biết là, trước hết tìm cách giải bài toán đối ngẫu
(chỉ với 5 biến), sau đó sẽ tìm được phương án tối ưu của bài toán gốc
Bài toán đối ngẫu
max g ( y ) = 4 y1+ 3 y2 + 4 y3
với các ràng buộc
≥
≤ + +
≤ +
+
0 ,
,
2 2
3 2
3 2 1
3 2 1
3 2
1
y y y
y y y
y y
y
Viết bài toán đối ngẫu dưới dạng chính tắc:
max g ( y ) = 4 y1+ 3 y2 + 4 y3 + 0 y4 + 0 y5
với các ràng buộc
≥
= + + +
= + +
+
0 ,
, , ,
2 2
3 2
5 3 2 1
4 3 2
1
y y y y y
y y y y
y y y
y
Trang 10Cách 1 Giải bài toán đối ngẫu bằng phương pháp đơn hình Kết quả được cho
trong bảng Theo tính chất của cặp bài toán đối ngẫu, ta có phương án tối ưu của bài toán gốc là x1* = 1 , x*2 = 2 với fmin = 7
Hệ số Biến cơ sở P/án c1 = 4 c2 = 3 c3 = 4 c4 = 0 c5 = 0
0
0
y4
y5
3 2
1 2
1 1
[2]
1
1 0
0 1 0
0 4
0 3
0 4
0 0
0 0 4
0
y3
y5
3/2 1/2
½
[3/2]
½ 1/2
1 0
½ -1/2
0 1 6
2 2
2 1
4 0
2 -2
0 0 4
4
y3
y1
4/3 1/3
0 1
1/3
[1/3]
1 0
2/3 -1/3
-1/3 2/3 20/3
4 0
8/3 1/3
4 0
4/3 -4/3
4/3 -4/3 4
3
y3
y2
1 1
-1 3
0 1
1 0
1 -1
-1 2 7
5 -1
3 0
4 0
1 -1
2 -2
Cách 2 Giải bài toán gốc bằng phương pháp đơn hình đối ngẫu.
Trang 11Trước hết đưa Bài toán gốc về dạng sau:
min f ( x ) = 3 x1+ 2 x2 + 0 x3+ 0 x4 + 0 x5
với các ràng buộc
≥
−
= +
−
−
−
= +
−
−
−
= +
−
−
0 ,
, , ,
4 2
3
4 2
5 4 3 2 1
5 2 1
4 2 1
3 2 1
x x x x x
x x x
x x x
x x x
Nội dung tóm tắt của phương pháp đơn hình đối ngẫu: Trong phương pháp đơn hình, dịch chuyển dần từ phương án khả thi, tức là xj ≥ 0, ∀j nhưng điều kiện Δ
j≥ 0, ∀j chưa được thoả mãn, tới phương án tối ưu, tức là x j≥ 0 và Δj ≥ 0, ∀j Trong phương pháp đơn hình đối ngẫu, ta dịch chuyển dần từ phương án không
khả thi (nhưng đối ngẫu khả thi), tức là điều kiện xj ≥ 0, ∀j không được thoả
mãn nhưng luôn có Δ j ≥ 0, ∀j, tới phương án tối ưu, tức là có x j ≥ 0 và
Δj ≥ 0, ∀j Quy trình giải bài toán gốc dạng chuẩn tắc trên đây bằng phương pháp đơn hình đối ngẫu được mô tả trong bảng như sau:
Trang 120
0
x3
x4
x5
-4 -3 -4
-1 -1
[-2]
-2 -1 -1
1
0 0
0 1 0
0 0 1 0
0 3
0 2
0 0
0 0
0 0 0
0
3
x3
x4
x1
-2 -1 2
0 0 1
[-3/2]
-1/2 1/2
1 0 0
0 1 0
-1/2 -1/2 -1/2 6
3 0
3/2 1/2
0 0
0 0
-3/2 3/2 2
0
3
x2
x4
x1
4/3 -1/3 4/3
0 0 1
1 0 0
-2/3
[-1/3]
1/3
0 1 0
1/3 -1/3 -2/3 20/3
4 0
2 0
-1/3 1/3
0 0
-4/3 4/3 2
0
3
x2
x3
x1
2 1 1
0 0 1
1 0 0
0 1 0
-2 -3 1
1 1 -1 7
3 0
2 0
0 0
-1 1
-1 1
Chương 2
ỨNG DỤNG BÀI TOÁN ĐỐI NGẪU
2.1 Ứng dụng bài toán đối ngẫu cho bài toán phân luồng giao thông
Trang 13tuyến tính
+ Cho một đồ thị có hướng G = (V, E) với khả năng thông qua của các cung là
c → Trong V có k đỉnh nguồn s1,s2, ,s k tương ứng với k đỉnh đích
k
t
t
t1, 2, , và các đỉnh trung gian khác tạo thành một mạng có hướng Ở đây mỗi cặp đỉnh nguồn đích (s j,t j) được gắn với một phương tiện j Giả thiết rằng
phương tiện j xuất phát từ đỉnh nguồn s j định trước, thì sẽ kết thúc tại đỉnh đích
j
t tương ứng, với j =1, ,k. Bài toán luồng đa phương tiện cực đại là tìm một luồng đa phương tiện trong mạng G đã cho, sao cho tổng các luồng của tất cả k
phương tiện đạt cực đại
+Cơ sở lý thuyết thuật toán: Gọi P j là tập hợp các đường đi từ s j đến t j trong
mạng G, j =1, ,k Gọi P = P1∪ P2 ∪ ∪ Pk, là hợp của P1,P2, ,P k Với
e
P là tập hợp các đường trong P đi qua e,∀e∈E Mỗi đường p∈P, gắn một biến x ( p) của luồng gửi dọc theo đường p.
Yêu cầu bài toán được phát biểu dạng bài toán quy hoạch tuyến tính như sau:
≥
∈
∀
≤
=
∑
∑
∈
∈
0
), ( ) (
) ( max
x
E e e c p x
p x
P p
P p
λ
(P)
Giải bài toán (P) ta xây dựng mô hình tuyến tính đối ngẫu với (P) gọi là bài toán (D) như sau: ∀e∈E, gắn cho e một hàm độ dài l (e) Định nghĩa:
≥
∈
∀
≥
=
=
∑
∑
∈
∈
0
, 1 ) (
) ( )
( )
( min
l
P p e
l
e l e c l
D
p e
E e
β
(D)
Trang 14Gọi dist j (l) là độ dài ngắn nhất tính theo l trong các đường thuộc P j,
, ,
j =
α(l) = min{ dist j(l ) j =1, ,k}
Vậy α(l) là độ dài ngắn nhất trong mọi đường giữa các cặp nguồn đích Xét bài toán
) (
) (
l
l
D
Ta có
∑
p
e
P p e
l'( ) 1,
Khi đó, ta được 'l là phương án chấp nhận của (D) và
) (
) ( ) ' (
l
l D l
D
α
=
Từ đó suy ra min(D)≤ min(Dα) Ngược lại, nếu l là phương án chấp nhận của
)
(
)
(
l D l
l
α , từ đó suy ra min(D)≥ min(Dα).
Cuối cùng ta được min(D) = min(Dα) Tiếp theo, nếu l là nghiệm tối ưu của bài toán (Dα) thì l'(e) = l(e)/α(l),∀e∈E là nghiệm tối ưu của bài toán (D) +Thuật toán: Thuật toán được thực hiện bởi một số bước lặp Gọi l i−1 là hàm độ dài tại điểm bắt đầu bước lặp thứ i và f i−1 là giá trị tổng luồng đã đạt được sau các bước lặp 1, ,i−1
Ta có α(l i−1) là độ dài ngắn nhất trong các đường nối giữa các cặp nguồn đích, tính theo l i−1 Gọi p là đường đi có độ dài α(l i−1) và c là khả năng thông qua
cực tiểu trên p Tại bước lặp i, ta chuyển c đơn vị phương tiện dọc theo p.
Theo đó f i = f i−1 +c Tiếp theo ta đặt l i(e) = l i−1(e).(1+ε.c/c(e)),∀e∈ p,
trong đó ε ≥0 là hằng số sẽ chọn sau