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 â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
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ương 1: Bài toán quy hoạch
tuyến tính
Trang 2TRƯỜ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 3Chương I: BÀI TOÁN QUY HOẠCH TUYẾN TÍNH
Trang 4CHƯƠNG I:
1.1 Bài toán quy hoạch tuyến tính tổng quát
Trang 51.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 6■ 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
ijx ba
-Nếu thì ràng buộc i gọi là “lỏng” đối với phương án x, hoặc phương án x thoả mãn lỏng ràng buộc i
i j
ijx ( )ba
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 70 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 toán dạng chính tắc tương đương theo nghĩa trị tối ưu của 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 8●Cách đưa bài toán về dạng chính tắc
-Nếu xj ≤ 0 thì đổi biến xj’= −xj ≥ 0.
-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
n
1 j
i
p i j
i
Trang 9Ví 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 10Các biến phụ sẽ được đánh số tiếp là x5, x6.
Trang 111.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 đó: b 0, (i 1, m )
Trang 12Bà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
cơ sở là {A1, A2,…Am} = E, đó là phương án cực biên
Trang 131.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:
tính đều hữu hạn
Trang 141.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 152 Cơ sở của phương án cực biên:
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
Ký hiệu: J, trong đó: J = {j, Aj nằm trong cơ sở}
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 163 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 17Bước 1: Kiểm tra dấu hiệu tối ưu:
Tính các ước lượng ∆k theo công thức:
-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 18Bướ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ở
Phần tử xrs gọi là phần tử xoay của phép biến đổi
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 19Bước 4: Biến đổi bảng: Thực hiện phép biến đổi cơ sở tổng
quát cho toàn bộ bảng (bao gồm cả hàng ước lượng k)
-Để tính hàng vectơ đưa vào (xs) trong bảng mới ta lấy hàng vectơ loại ra (xr) trong bảng cũ chia cho phần tử xoay -Để tính hàng xj trong bảng mới, ta lấy hàng xj trong
bảng cũ trừ đi hàng xs vừa mới tính được sau khi nhân nó
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
Đối với x1 quay trở lại bước 1 và quá trình lặp lại sau một
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 20Ví dụ 1: Giải bài toán sau bằng phương pháp đơn hình:
Trang 21Trước hết đưa bài toán về dạng chính tắc bằng cách cộng vào ràng buộc hai và ba hai biến phụ x5 và x6 Ta có:
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 22Bài toán có dạng chuẩn, các biến cô lập là x1, x5, x6 nên phương án cực biên tương ứng x0 = (18, 0, 0, 0, 8, 20), cơ
sở là {A1, A5, A6}, do đó ta có thể lập ngay được bảng đơn hình ứng với phương án cực biên x0:
Ở 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 2301
Trang 2410
Trang 254 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, dấu hiệu để điều chỉnh phương án là k < 0, còn các yếu tố
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 trên nguyên tắc thì đưa bất kỳ vectơ nào ứng với k > 0 vào
cơ sở cũng cải tiến được phương án
Δ θ Δ max
k
Trang 263) Trường hợp bài toán suy biến thì θ0 có thể bằng 0, khi
θ0 = 0 vẫn thực hiện thuật toán một cách bình thường, nghĩa là vectơ ứng với θ0 vẫn bị loại khỏi cơ sở
Dấu hiệu xuất hiện phương án cực biên suy biến là θ0đạt tại nhiều chỉ số, khi đó vectơ loại khỏi cơ sở được chọn trong số những vectơ ứng với θ0 theo quy tắc ngẫu nhiên.
Trang 27Khi á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 hình trước hết cần phải tìm ma trận hệ số phân tích theo J0
Để 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 28Ví dụ 2: Cho bài toán:
f(x) = −2x1 − 6x2 + 8x3 – 5x4 min
x1 + 2x2 − 3x3 + x4 = 8
Trang 29Dễ thấy rằng x0 thỏa mãn mọi ràng buộc của bài toán,
các ràng buộc là độc lập tuyến tính, vậy x0 là phương án cực 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 30Từ 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
điều kiện của bài toán dạng chính tắc qua cơ sở J0
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 31Quá 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
2
8
1 0
2
0 1
5
0 0
1
8 7
4
1 1
2
3 2
1
Trang 334) 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 34Khô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
Ký hiệu xg Rm là vectơ các biến giả, hàm mục tiêu của bài toán phụ là P(x, xg)
Khi đó bài toán phụ có dạng:
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 35Bà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:
a) Pmin > 0, khi đó bài toán xuất phát không có phương án
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 36Để á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 lại hàng ước lượng k theo hàm f và tiếp tục thuật toán
x
0)x
,x
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
0
xgi
Trang 37Khi 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 38Ví dụ 3: Giải bài toán sau bằng phương pháp đơn hình:
Trang 39Đưa bài toán về dạng chính tắc:
Trang 40P(x, xg) = xg
1 + xg
3 min
Trang 4201
10
Trang 435
11
−5/21/2 1/2
f(x) k 0 (kJ), phương án tương ứng là tối ưu:
x* = (11, 3, 0, 0, 5) và f* = 45
Trang 441.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 45Bà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 46Quy 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 47Đị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
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 48Ví 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 49Bà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 50Đố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 51Đư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 52Bà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
ij
j 0 a y c j 1, nx
i 1, m
0 y
b x
a i i
n
1 j
Trang 53Lược đồ tổng quát xây dựng bài toán đối ngẫu:
xj không có ràng buộc dấu
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
i ij
m
1 i
1 j
i ij
2 i
Jj
cy
a
Jj
cy
a
Ii
0y
Trang 54Ví 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
3x1 + 2x2 − 3x4 + x5 ≥ 24 x1, x3, x5 ≥ 0
Trang 55Quy 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