●Cách đưa bài toán về dạng chính tắc -Nếu một ràng buộc có dạng thì có thể thay bằng với và hệ số của trong fx bằng 0.. Bài toán dạng chuẩn là bài toán dạng chính tắc có vế phải không
Trang 1TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CÔNG NGHIỆP
BỘ MÔN KHOA HỌC CƠ BẢN
BÀI GIẢNG
QUY HO CH TUY N T NH ẠCH TUYẾN TÍNH ẾN TÍNH ÍNH
Trang 2Chương I: BÀI TOÁN QUY HOẠCH TUYẾN TÍNH
Chương II: BÀI TOÁN VẬN TẢI
Trang 3CHƯƠNG I:
1.1 Bài toán quy hoạch tuyến tính tổng quát
Trang 41.1 Bài toán quy hoạch tuyến tính tổng quát
i j
ij
1 i
n
1 j
j ij
n
1 j
j j
Ii
bx
a
Ii
b
xa
(max)min
xcx
f
Trang 5■ Một số khái niệm :
Phương án: Vectơ x = (x1, x2, , xn) thoả mãn mọi điều
kiện ràng buộc của bài toán gọi là một phương án.
-Nếu thì ràng buộc i gọi là “chặt” đối với phương án x, hoặc phương án x thoả mãn chặt ràng buộc i
i j
i j
a
Phương án tối ưu: Một phương án mà tại đó trị số hàm
mục tiêu đạt cực tiểu (hoặc cực đại) gọi là phương án tối ưu
Phương án cực biên: Một phương án thỏa mãn chặt n ràng
buộc độc lập tuyến tính gọi là phương án cực biên
Trang 60 x
) m 1, (i
b x
a
(max) min
x c x
j ij
n
1 j
j j
Mọi bài toán quy hoạch tuyến tính đều có thể quy về bài
hàm mục tiêu trong hai bài toán là trùng nhau và từ phương
án tối ưu của bài toán này suy ra phương án tối ưu của bài toán kia
Trang 7●Cách đưa bài toán về dạng chính tắc
-Nếu một ràng buộc có dạng thì có thể thay bằng với và hệ số của
trong f(x) bằng 0 Các biến gọi là biến phụ.
-Nếu một ràng buộc có dạng thì thay bằng ,
i j
i
p i j
i j
ijx b a
i
p i j
i
Trang 8Ví dụ: Đưa bài toán sau về dạng chính tắc:f(x) = –2x1 + x2 + 3x3 + 5x4 min
x1 – 3x2 + 5x3 – x4 16 2x1 – x2 – 2x3 + 2x4 ≥ – 4
Trang 9Các biến phụ sẽ được đánh số tiếp là x5, x6.
Trang 101.3 Bài toán dạng chuẩn
) n 1, (j
0 x
b x
a
x a x a x
b x a
x a x a x b x a
x
a x
a x
(max) min
x c x
f
j
m n
mn 2
m 2
mm 1
m 1 mm m
2 n
2n 2
m 2
2m 1
m 1
2m 2
1 n
1n 2
m 2
1m 1
m 1 1m 1
n
1 j
j j
Trong đó: bi 0, (i 1, m )
Trang 11Bài toán dạng chuẩn là bài toán dạng chính tắc có vế phải không âm và mỗi phương trình đều có một biến số với hệ số bằng 1 đồng thời không có trong các phương trình khác (gọi
là biến cô lập với hệ số bằng 1)
Từ hệ phương trình ràng buộc của bài toán dễ dàng suy ra một phương án đầu tiên: x0 = (b1, b2, …,bm, 0, 0,…, 0), với
Trang 121.4 Các tính chất chung
1 Tính chất 1: Sự tồn tại phương án cực biên:
Nếu bài toán có phương án và hạng của ma trận hệ ràng buộc bằng n thì bài toán có phương án cực biên
Hạng của ma trận hệ ràng buộc của bài toán dạng chính tắc luôn luôn bằng n nên nếu bài toán chính tắc có phương
án thì phải có phương án cực biên
2 Tính chất 2: Sự tồn tại phương án tối ưu:
Nếu bài toán có phương án và trị số hàm mục tiêu bị chặn
trên tập phương án thì bài toán có phương án tối ưu
3 Tính chất 3: Tính hữu hạn của số phương án cực biên:
Số phương án cực biên của mọi bài toán quy hoạch tuyến tính đều hữu hạn
Trang 131.5 Phương pháp đơn hình
1 Nội dung của phương pháp:
Xuất phát từ một phương án cực biên đầu tiên, tìm cách đánh giá phương án cực biên ấy, nếu nó chưa tối ưu thì tìm cách chuyển sang một phương án cực biên mới tốt hơn, quá trình được lặp lại vì số phương án cực biên là hữu hạn nên sau một số hữu hạn bước hoặc sẽ kết luận bài toán không giải được vì hàm mục tiêu không bị chặn hoặc sẽ tìm được phương án tối ưu
Phương pháp này chỉ áp dụng được cho những bài toán
có phương án cực biên, tuy nhiên mọi bài toán QHTTT đều
có thể đưa về bài toán dạng chính tắc, và khi nó đã có
phương án thì sẽ có phương án cực biên
Do đó không làm mất tính chất tổng quát từ đây ta sẽ chỉ xét bài toán dạng chính tắc
Trang 142 Cơ sở của phương án cực biên:
Định nghĩa: Một hệ vectơ {Aj } độc lập tuyến tính bao
hàm hệ thống các vectơ tương ứng với các thành phần dương của phương án cực biên x gọi là cơ sở của phương án cực
biên ấy
Một phương án cực biên không suy biến có đúng m thành phần dương, có một cơ sở duy nhất, đó chính là các vectơ
tương ứng với các thành phần dương, còn phương án cực biên suy biến thì có nhiều cơ sở khác nhau, phần chung của chúng
là các vectơ tương ứng với các thành phần dương
Trang 153 Thuật toán của phương pháp đơn hình
Giả sử đã biết phương án cực biên x0, cơ sở J0 Lập
bảng đơn hình tương ứng:
Hệ số
cJ
Cơ sở J
Phương án: xJ cx1 c2 … cr … cm cm+1 … ck … cs … cn
Trang 16Bước 1: Kiểm tra dấu hiệu tối ưu:
-Nếu ∆k ≤ 0, (k J0) thì x0 là phương án tối ưu
-Nếu ∆k > 0 thì x0 không phải là phương án tối ưu, chuyển sang bước 2
Bước 2: Kiểm tra tính không giải được của bài toán:
-Nếu tồn tại một ∆k > 0 mà xjk ≤ 0 (j J0) thì bài toán không có phương án tối ưu
-Nếu với mỗi ∆k > 0 đều có ít nhất một xjk > 0 thì chuyển sang bước 3
k jk
j
Δ
Trang 17Bước 3: Chọn vectơ đưa vào cơ sở và xác định vectơ loại khỏi cơ sở:
-Giả sử , vectơ As được đưa vào cơ sở,
0
x
xmin
Vectơ Ar bị loại khỏi cơ sở
Lập bảng đơn hình mới, thay xs vào vị trí xr, và cs vào
vị trí cr Chuyển sang bước 4
Trang 18Bước 4: Biến đổi bảng: Thực hiện phép biến đổi cơ sở tổng
-Để tính hàng xj trong bảng mới, ta lấy hàng xj trong
với xjs
Kết quả của quá trình biến đổi sẽ cho ta bảng đơn hình
ứng với phương án cực biên mới x1, tốt hơn x0
số hữu hạn bước sẽ tìm được phương án cực biên tối ưu hoặc kết luận bài toán không giải được vì hàm mục tiêu không bị chặn
Trang 19Ví dụ 1: Giải bài toán sau bằng phương pháp đơn hình:
Trang 20Trước hết đưa bài toán về dạng chính tắc bằng cách cộng
f(x) = 2x1 + 3x2 – x3 – 1/2x4 min
x1 – x2 + x3 + 1/2x4 = 18
x2 – 4x3 + 8x4 + x5 = 8 –2x2 + 2x3 – 3x4 + x6 = 20
Trang 21Bài toán có dạng chuẩn, các biến cô lập là x1, x5, x6 nên
sở là {A1, A5, A6}, do đó ta có thể lập ngay được bảng đơn
Ở bước 1 ta thấy phương án tương ứng chưa tối ưu Vectơ đưa vào cơ
sở là A3 ứng với 3 = 3, θ0 = 20/2 nên vectơ A6 bị loại khỏi cơ sở, phần
tử xoay là [2].
Trang 2201
Trang 2310
Trang 244 Các chú ý khi áp dụng thuật toán:
1) Đối với bài toán có hàm f(x) max thì có thể chuyển về giải bài toán với hàm g(x) = −f(x) min
chú ý là fmax = −gmin
hoặc cũng có thể giải trực tiếp với dấu hiệu tối ưu là k ≥ 0,
khác của thuật toán không đổi
2) Chọn vectơ đưa vào cơ sở ứng với là với hy vọng làm trị số hàm mục tiêu giảm nhiều nhất sau mỗi bước biến đổi, tuy nhiên vectơ đưa vào cơ sở thực sự làm trị số hàm
mục tiêu giảm nhiều nhất phải ứng với nhưng
cơ sở cũng cải tiến được phương án
0
Δ θ Δ max
k
Trang 253) Trường hợp bài toán suy biến thì θ0 có thể bằng 0, khi
đạt tại nhiều chỉ số, khi đó vectơ loại khỏi cơ sở được
nhiên.
Trang 26Khi áp dụng thuật toán cần lưu ý hai trường hợp:
-Phương án cực biên x0 có cơ sở J0 là cơ sở đơn vị, lúc
đó ma trận hệ số phân tích của [ A | b] theo cơ sở đơn vị là
chính nó nên ta có thể lập ngay được bảng đơn hình
Bài toán dạng chuẩn là bài toán cho ngay một phương
án cực biên với cơ sở là đơn vị, nên từ bài toán ta có thể lập được bảng đơn hình ứng với phương án cực biên ấy
-Nếu J0 không phải là cơ sở đơn vị thì để lập bảng đơn
Để làm điều này ta viết ma trận mở rộng [A | b] sau đó thực hiện các phép biến đổi sơ cấp trên các hàng của ma trận, biến đổi sao cho các vectơ cơ sở trở thành các vectơ đơn vị khác nhau Khi đó ma trận mở rộng sẽ trở thành ma trận hệ
số phân tích
Trang 27Ví dụ 2: Cho bài toán:
f(x) = −2x1 − 6x2 + 8x3 – 5x4 min
x1 + 2x2 − 3x3 + x4 = 8
Trang 28Dễ thấy rằng x0 thỏa mãn mọi ràng buộc của bài toán,
biên không suy biến
Để giải bài toán bằng phương pháp đơn hình trước hết phải đưa bài toán về dạng chính tắc
Trang 29Từ x0 suy ra phương án cực biên không suy biến của bài toán dạng chính tắc: = (8, 0, 0, 0, 18, 12) với cơ sở là J0
= {A1, A5, A6} không phải là cơ sở đơn vị
Vì vậy để lập được bảng đơn hình ứng với phương án cực biên ta phải tìm ma trận hệ số phân tích của ma trận
Chú ý rằng vế phải của ma trận hệ số phân tích phải
trùng với các thành phần cơ sở của phương án cực biên
0
x
0
x
Trang 30Quá trình biến đổi thực hiện trên các ma trận sau:
Trên cơ sở ma trận hệ số phân tích, lập bảng đơn hình
8
1 0
2
0 1
3
0 0
1
4 1
0
5 5
0
3 2
1
20 8
8
1 0
2
0 1
5
0 0
1
8 7
4
1 1
2
3 2
1
Trang 324) Bài toán dạng chính tắc nhưng không phải dạng chuẩn đồng thời không biết phương án cực biên, muốn áp dụng thuật toán cần phải tìm một phương án cực biên của bài toán dạng chính tắc
0x
)m1,(i
bx
a
minx
cx
j ij
n
1 j
j j
Trang 33Không làm mất tính tổng quát có thể giả thiết
Từ bài toán đã cho xây dựng một bài toán phụ, ký hiệu là P bằng cách cộng vào vế trái phương trình ràng buộc i một
biến giả với hàm mục tiêu là tổng các biến giả đã thêm vào và hàm mục tiêu này phải đạt cực tiểu
0 x
), n 1, (j
0 x
) m 1, (i
b x
x a
min x
x x, P
g i j
i
g i
n
1 j
j ij
m
1 i
g i g
Trang 34Bài toán P là bài toán dạng chuẩn và hàm mục tiêu bị chặn dưới nên luôn luôn giải được Dùng thuật toán giải bài toán
P, sau một số hữu hạn bước sẽ tìm được phương án tối ưu
, ký hiệu P = Pmin
Có hai trường hợp xảy ra:
b) Pmin = 0, khi đó , = 0,
phương án tối ưu có dạng:
suy ra là phương án cực biên của bài toán xuất phát
) x
xig xg
0) x
, x ( g
x
Trang 35Để áp dụng được thuật toán cho phương án cực biên cần phải biết cơ sở của nó Hai trường hợp có thể xảy ra:
-Trong cơ sở của phương án cực biên tối ưu
không có các vectơ tương ứng với các biến giả, khi đó cơ
sở của phương án cực biên này cũng là cơ sở của phương
án cực biên , để có bảng đơn hình tương ứng chỉ cần tính
x
0)x
,x( g
x
-Trong cơ sở của phương án cực biên tối ưu có
ít nhất một vectơ biến giả, thành phần tương ứng , phương án cực biên là suy biến Trường hợp này để tiếp
tục tính toán, trước hết ta loại các cột ứng với k(P) < 0 (và các cột xg
i phi cơ sở), sau đó tính lại các ước lượng k theo hàm f và tiếp tục thuật toán
0)x
,x
( g
0
xgi
Trang 36Khi giải bài toán P cần chú ý một số đặc điểm sau:
- Khi xây dựng bài toán phụ chỉ cộng thêm biến giả vào
những phương trình cần thiết (nhằm tạo ma trận điều kiện của bài toán phụ có đủ m vectơ đơn vị)
- Một biến giả đã bị loại khỏi cơ sở thì cột tương ứng không cần tính ở các bước tiếp sau
- Chỉ được áp dụng công thức đổi cơ sở cho hàng ước
lượng khi hai bảng kế tiếp có cùng tên hàm mục tiêu
Trang 37Ví dụ 3: Giải bài toán sau bằng phương pháp đơn hình:
Trang 38Đưa bài toán về dạng chính tắc:
Trang 39P(x, xg) = xg
1 + xg
3 min
Trang 4101
10
Trang 4210
Trang 431.6 Phương pháp đơn hình đối ngẫu
0x
)m1,(i
bx
a
minx
cx
j ij
n
1 j
j j
Trang 44Bài toán đối ngẫu của bài toán (I) có dạng sau:
1 i
j i
ij
m
1 i
i i
n 1, j
c y
a
max y
b y
f
~
) I
~ (
Trang 45Quy tắc thành lập bài toán đối ngẫu:
- Nếu f(x) min thì và hệ ràng buộc của bài toán đối ngẫu có dạng “ ”
- Nếu f(x) max thì và hệ ràng buộc của bài toán đối ngẫu có dạng “ ≥ ”
- Số ràng buộc (không kể ràng buộc dấu) trong bài toán này bằng số biến số trong bài toán kia, nghĩa là tương ứng với một ràng buộc của bài toán này là một biến số của bài toán kia
- Hệ số trong hàm mục tiêu của bài toán này là vế phải của hệ ràng buộc trong bài toán kia
- Ma trận điều kiện trong hai bài toán là chuyển vị của
nhau
- Các biến số trong bài toán đối ngẫu không có ràng buộc
về dấu
Trang 46Định nghĩa: Cặp ràng buộc đối ngẫu: 2 ràng buộc bất đẳng
thức (kể cả ràng buộc dấu) trong hai bài toán cùng tương ứng với một chỉ số là một cặp ràng buộc đối ngẫu
Trong bài toán (I) và có n cặp ràng buộc đối ngẫu:(~I )
j i
ij
j 0 a y c j 1, n x
Cách viết bài toán đối ngẫu:
Trừ các ràng buộc về dấu, ta cho tương ứng với mỗi
phương trình ràng buộc i của bài toán gốc một biến của bài toán đối ngẫu , thực hiện phép nhân vô hướng vectơ y lần lượt với vectơ b và các vectơ ta
sẽ được hàm mục tiêu và toàn bộ hệ ràng buộc của bài toán đối ngẫu
Trang 47Ví dụ 1: Viết bài toán đối ngẫu của bài toán sau:
f(x) = −3x1 + 5x2 + 4x3 – 2x4 + x5 max
2x1 − 3x2 − x3 + 6x4 – 2x5 + 2x6 = –14 −x1 + 2x2 + 5x3 + 3x5 − 4x6 = 8
Trang 48Bài toán đối ngẫu có 3 biến số y1, y2, y3
Theo cách viết trên ta có:
= – 14y1 + 8y2 + 12y3 min
Trang 49Đối với bài toán bất kỳ thì đưa bài toán về dạng chính tắc, xây dựng bài toán đối ngẫu của bài toán này và gọi nó
là bài toán đối ngẫu của bài toán đã cho
Xét bài toán sau gọi là bài toán (II):
0x
)m1,(i
bx
a
minx
cx
j ij
n
1 j
j j
(II)
Trang 50Đưa bài toán về dạng chính tắc, ký hiệu là (II’):
1,(j
0x
)m1,(i
bx
xa
minx
cx
f
j
i i
n
n
1 j
j ij
n
1 j
j j
(II’)
Trang 51Bài toán đối ngẫu của (II’) và cũng là bài toán đối ngẫu của (II) có dạng:
0 y
) n 1, (j
c y
a
max y
b y
i ij
m
1 i
i i
j i
b x
n
1 j
j
và
Trang 52Lược đồ tổng quát xây dựng bài toán đối ngẫu:
Bài toán gốc Bài toán đối ngẫu
n
1 j
j ij
1
n
1 j
i j
ij
n
1 j
j j
I i
b x
a
I i
b x
a
min x
c x
i i
2 j
i ij
m
1 i
1 j
i ij
2 i
Jj
cy
a
Jj
cy
a
Ii
0y
Trang 53Ví dụ 2: Viết bài toán đối ngẫu của bài toán sau:
f(x) = −4x1 + x2 + 5x3 + 3x5 min
3x1 − 6x2 − x3 + 2x4 + 4x5 ≥ –15
−2x1 + 3x2 + 4x3 − 5x4 + x5 8 − 6x2 + 3x3 + 8x4 − 4x5 = 9
Trang 54Quy về bài toán chính tắc:
f(x) = −4x1 + x2 + 5x3 + 3x5 min
3x1 − 6x2 − x3 + 2x4 + 4x5 − x6 = –15
−2x1 + 3x2 + 4x3 − 5x4 + x5 + x7 = 8
− 6x2 + 3x3 + 8x4 − 4x5 = 9 3x1 + 2x2 − 3x4 + x5 − x8 = 24
Trang 55Bài toán đối ngẫu:
= –15y1 + 8y2 + 9y3 + 24y4 max
Trang 562 Thuật toán của phương pháp đơn hình đối ngẫu:
Giả sử đã biết phương án cực biên y, cơ sở J của bài toán đối ngẫu
Thành lập bảng đơn hình ứng với cơ sở J:
-Ở cột cơ sở ghi các thành phần cơ sở của giả phương
án x vì đó là các hệ số phân tích của vectơ b qua cơ sở J
-Thay cho f(x) ghi
-Trị số của f(x) ứng với giả phương án x ghi trong bảng đơn hình xác định bởi:
đó cũng chính là trị số của hàm mục tiêu ứng với phương án cực biên y
(y) f
~
c , x c , A b c A , b (y, b) f(x) J J J -1J J -1J
Trang 57Bước 1: Kiểm tra dấu hiệu tối ưu:
tối ưu của bài toán gốc, đồng thời phương án cực biên y
tương ứng cũng tối ưu
-Nếu tồn tại một xj < 0 thì y không phải phương án tối ưu, chuyển sang bước 2
Bước 2: Kiểm tra tính không giải được của bài toán:
-Nếu tồn tại một xj < 0 mà xjk ≥ 0 (k J) thì bài toán đối ngẫu không giải được vì hàm mục tiêu không bị chặn, bài toán gốc không có phương án
-Nếu với mỗi xj < 0 đều có ít nhất một xjk < 0 thì chuyển
sang bước 3
Trang 58Bước 3: Đổi cơ sở:
-Giả sử vectơ Ar bị loại khỏi cơ sở
giả sử , vectơ As được đưa vào cơ sở
Phần tử xoay của phép biến đổi cơ sở là xrs < 0
Lập bảng đơn hình mới và chuyển sang bước 4
k 0, x
0
x
Δmin
θ
rk
rs
s 0
x Δ
θ
Trang 59Bước 4: Biến đổi bảng:
Thực hiện phép biến đổi cơ sở cho toàn bộ bảng, kết quả
sẽ cho ta bảng đơn hình ứng với phương án cực biên mới y’ của bài toán đối ngẫu tốt hơn y với cơ sở là
J’ = [J \ {r}]{s}
Đối với y’ quay trở lại bước 1, và vì số phương án cực biên
là hữu hạn nên sau một số hữu hạn bước hoặc sẽ kết luận bài toán gốc không có phương án hoặc sẽ tìm được phương
án cực biên tối ưu