Viện Toán Ứng dụng - Tin họcNhập môn các phương pháp tối ưu Một số bài toán về quy hoạch tuyến tính Giáo viên hướng dẫn: Th.S Phạm Thị HoàiNhóm 3 Nguyễn Phương Thảo Nguyễn Quốc Tiến Nguy
Trang 1Viện Toán Ứng dụng - Tin học
Nhập môn các phương pháp tối ưu
Một số bài toán về quy hoạch
tuyến tính
Giáo viên hướng dẫn:
Th.S Phạm Thị HoàiNhóm 3
Nguyễn Phương Thảo
Nguyễn Quốc Tiến
Nguyễn Đức Tú
Trang 2Mục lục
2.1 Bài toán 1: 2
2.2 Bài toán 2: 2
2.3 Bài toán 3: 3
2.4 Bài toán 4: 4
2.5 Bài toán 5: 5
2.6 Bài toán 6: 5
2.7 Bài toán 7: 7
2.8 Bài toán 10: 9
2.9 Bài toán 11: 9
2.10 Bài toán 12: 11
2.11 Bài toán 13: 11
2.12 Bài toán thêm 1: 12
2.13 Bài toán thêm 2: 13
2.14 Bài toán thêm 3: 14
2.15 Bài toán thêm 4: 16
2.16 Bài toán thêm 5: 18
2.17 Bài toán thêm 6: 19
Trang 31 Mở đầu
Lý do chọn đề tài
Quy hoạch tuyến tính là dạng bài toán được áp dụng nhiều trong cuộc sống Về cơ bản, một bài toán quyhoạch tuyến tính (Linear Programming) là một bài toán tối ưu trong đó hàm mục tiêu và ràng buộc đều códạng tuyến tính Một số áp dụng có thể kể đến của quy hoạch tuyến tính, đó là: bài toán tìm khẩu phần ăn
có giá trị dinh dưỡng nhất mà thỏa mãn một số ràng buộc về lượng chất, bài toán vận tải thỏa mãn điềukiện về số hàng vận chuyển với mục tiêu là chi phí nhỏ nhất, Ngoài ra, trong một số lý thuyết về mô hìnhmạng cảm biến cũng xuất hiện các bài toán quy hoạch tuyến tính Chính vì vậy, bài toán quy hoạch tuyếntính là một bài toán có tính ứng dụng cao trong thực tế nên việc nghiên cứu, tìm hiểu kỹ là hết sức quantrọng Các lĩnh vực về quy hoạch tuyến tính thậm chí tới nay vẫn còn một số vấn đề mở: Bài toán quy hoạchtuyến tính có tồn tại một thuật toán chạy trong thời gian đa thức mạnh (strongly polynomial-time) Hiệnnay, trên thế giới xuất hiện rất nhiều bộ giải (solvers) có thể giải quyết các bài toán quy hoạch tuyến tính,như: AIMMS, AMPL, APMonitor, CPLEX, Các ngôn ngữ lập trình bậc cao như Python cũng hỗ trợ cácmodule như: Pulp để có thể giải các bài toán quy hoạch tuyến tính Song việc có sẵn các công cụ không làmcho nghiên cứu về quy hoạch tuyến tính thừa thãi, nó giúp những người sử dụng hiểu được cách thức giảicủa thuật giải được dùng bởi bộ giải (sovlers), ví dụ như phương pháp đơn hình, phương pháp điểm trong, Việc hiểu biết về quy hoạch tuyến tính cũng giúp chúng ta có thêm kiến thức để giải quyết các bài toán tối
ưu khác
Mục tiêu nghiên cứu
Trong khuôn khổ bài báo cáo này, nhóm sinh viên dưới sự hướng dẫn của ThS Phạm Thị Hoài trình bàymột số bài tập về quy hoạch tuyến tính
Đối tượng nghiên cứu và phạm vi nghiên cứu
Phần lớn các bài tập được lấy từ tài liệu1 Ngoài ra, một số bài toán khác ngoài giáo trình cũng được trìnhbày thêm Các dạng bài toán này bao gồm: tính chất nghiệm, sự tồn tại nghiệm, thuật toán sử dụng hìnhhọc, thuật toán đơn hình và một số vấn đề liên quan
Phương pháp nghiên cứu
Các thành viên trong nhóm thảo luận, tìm ra lời giải cho các bài toán, sau đó phân công để có thể trình bàylời giải bằng LaT eX một cách khoa học, tường minh nhất
1
T.B.K Nguyễn Giáo trınh các phương pháp tối ưu: Lý thuyết và thuật toán Nxb Bách Khoa, 2008 url: https://books google.com.vn/books?id=QHtBnQAACAAJ
Trang 4max z = 3(x01+ 1) + 5(7 − x02) − 4x3
v.đ.k 7(x01+ 1) − 2(7 − x02) − 3x3≥ 4
2(x01+ 1) − 4(7 − x02) − 8x3= 35(x01+ 1) − 3(7 − x02) − 2x3≤ 9
x01≥ 0, x02≥ 0, x3≥ 0Thêm các biến phụ x4≥ 0, x5≥ 0 vào điều kiện chính thứ nhất và thứ ba rồi rút gọn ta nhận được bài toántương đương như sau:
min −z = −3x01+ 5x02+ 4x3v.đ.k 7x01+ 2x02− 3x3− x4 = 11
2x01+ 4x02− 8x3 = 295x01+ 3x02− 2x3 + x5= 25
x1≥ −2, x2tự do , x3≥ 0
Trang 5(x01− 2) − 3(x02− x”2) − 9x3= −56(x01− 2) + 5(x02− x”
2) + 2x3≤ 10
x01≥ 0, x02≥ 0, x”
2≥ 0, x3≥ 0Thêm các biến phụ x4, x5 ≥ 0 vào điều kiện chính thứ nhất và thứ ba rồi rút gọn ta nhận được bài toántương đương như sau:
min z = −5x01+ x02− x”+ 7x3
v.đ.k 7x01+ 4x02− 4x”
2− 11x3− x4 = 26
x01− 3x02+ 3x”2− 9x3 = −36x01+ 5x02− 5x”
Định lý 2.1 Nếu tập chấp nhận được của D khác rỗng và bị chặn thì bài toán quy hoạch tuyến tính luôn
có nghiệm tối ưu
Chứng minh: Theo định nghĩa, tập lồi đa diện là tập đóng Thêm tính bị chặn nên ta có D là tập compac.Hàm tuyến tính là hàm liên tục Theo định lí Weiertrass ta có điều phải chứng minh
Trong trường hợp tập nghiệm chấp nhận được D khác rỗng và không bị chặn, bài toán (LP) có thể không cónghiệm Tuy nhiên, nếu hàm mục tiêu f (x) = hc, xi bị chặn dưới trên D thì bài toán (LP) luôn có nghiệmtối ưu
Định lý 2.2 Nếu tập chấp nhận được của D khác rỗng và hàm mục tiêu f (x) = hc, xi bị chặn dưới trên Dthì bài toán quy hoạch tuyến tính luôn có nghiệm tối ưu
Chứng minh: Vì mọi quy hoạch tuyến tính đều có thể chuyển về dạng chuẩn tắc hoặc chính tắc nên khônggiảm tổng quát ta giả thiết tập D có đỉnh Theo định lí biểu diễn tập lồi đa diện, bất kì x ∈ D đều có thểbiểu diễn dưới dạng:
Trang 6Trong đó v1, v2, , vN là các đỉnh và d1, , dM là các phương cực biên của D Do hàm mục tiêu f (x) = hc, xi
bị chặn dưới trên D nên
Thật vậy, giả sử tồn tại j0∈ {1, , M } sao cho hc, dj0i < 0 Vì dj0 là một phương cực biên nên
x + tdj0 ∈ D∀x ∈ D, ∀t ≥ 0và
hc, x + tdj 0i = hc, xi + thc, dj 0i → −∞ khi t → +∞
Điều này mâu thuẫn với tính bị chặn dưới của hàm f (x) = hc, xi và chứng tỏ khẳng định (3.2) là đúng Chọnmột đỉnh vi0 của D sao cho hc, vi0i = min{hc, vii|i = 1, , N } Theo (3.1) và (3.2) với bất kì đỉnh x ∈ D, tacó
Kí hiệu tập nghiệm tối ưu của bài toán (LP ) là F∗ = argmin{hc, xi|x ∈ D Cho y, z ∈ D, x ∈ F∗ với
x = λy + (1 − λ)z và 0 < λ < 1 Ta phải chứng minh y ∈ F∗, z ∈ F∗ Gỉa sử hc, yi ≥ hc, zi Khi đó
Giả sử rằng một quy hoạch tuyến tính với tập chấp nhận được bị chặn có l phương án cực biên tối ưu v1, ,
vl Chứng minh rằng một phương án là tối ưu khi và chỉ khi nó là tổ hợp lồi của v1, , vl
f (X) = λf (y) + (1 − λ)f (z) ≥ λf (y) + (1 − λ)f (z) = f (y)
Trang 7Mà vì x là nghiệm tối ưu của bài toán nên f (x) ≤ f (y)∀y ∈ D Từ hai điều trên suy ra f (x) = f (y) ⇒
y ∈ F∗
Cuối cùng, vì f (X) = λf (y) + (1 − λ)f (z) nên suy ra f (x) = f (z) ⇒ z ∈ F∗
Vậy y, z ∈ F∗ ∀ y, z ∈ D thoả mãn ∃ x = λy + (1 − λ)z, x ∈ F∗, 0 < λ < 1 Do đó F∗ là một diện củaD
Với bài toán quy hoạch tuyến tính với tập chấp nhận được bị chặn và có l phương án cực biên tối ưu
v1, v2, vl, tập nghiệm tối ưu của bài toán sẽ là diện lồi nhận l phương án cực biên làm đỉnh Diện của tậpnghiệm chấp nhận được lồi cũng là một tập lồi, do đó một phương án bất kì là tối ưu khi và chỉ khi nó là
Cho x1, x2là hai phương án tối ưu của bài toán quy hoạch tuyến tính min{hc, xi|Ax = b, x ≥ 0} (P1) và x0
là tổ hợp lồi của x1, x2 Chứng minh rằng x0 là nghiệm của bài toán này
−2x1+ x2≥ 9
x1≥ 0, x2≥ 0
Trang 8x1≥ 0, x2≥ 0Lời giải.
O
x1− x2= 1
3x1+ 2x2= 122x1+ 3x2= 3
−2x1+ 3x2= 9
Nhận xét: Miền chấp nhận được của bài toán bằng rỗng nên có thể kết luận: Bài toán không có nghiệm
Trang 92x1+ x2= 12
x1+ x2= 5
−x1+ 3x2= 36x1− x2= 12
Dựa vào hình vẽ, nhận thấy, bài toán có duy nhất một nghiệm tối ưu trên miền chấp nhận được là x∗
= (6,0) Với x∗ = (6,0) thì min z = 6 trên miền chấp nhận được cho trước
max f (x) =3x1− 6x2+ x3− 3x4
v.đ.k x1+ x2+ x3+ x4= 10
2x2+ x3− x4= 6
x1, x2, x3, x4≥ 0Lời giải.
i) Tìm phương án cực biên không suy biến
Phương án cực biên không suy biến có đúng m = 2 thành phần dương nên ta xét:
• x1= 0 ⇒ Hệ trên vô nghiệm
Trang 10• x2= 0 ⇒ x1= 2, x3= 1 ⇒ x1 = (2, 0, 1)T là một phương án chấp nhận được
• x3= 0 ⇒ x1= 2, x2= 1 ⇒ x2= (2, 1, 0)T là một phương án chấp nhận được
Ta có: A1= (1, 1)T, A2= (−1, 1)T, A3= (−1, 1)T
• J (x1) = {1, 3} mà A1, A3 độc lập tuyến tính ⇒ x1 là một phương án cực biên không suy biến
• J (x2) = {1, 2} mà A1, A2 độc lập tuyến tính ⇒ x2 là một phương án cực biên
Vậy các phương án cực biên không suy biến là x1= (2, 0, 1)T và x2= (2, 1, 0)T
2,1
2)T
Dễ thấy D ⊂ B(x0,12) ⇒ D bị chặn
Mà D 6= ∅ do tồn tại phương án cực biên
⇒ Bài toán có nghiệm tối ưu
ii) Bài toán đã cho tương đương với:
max f (x) = − 3x1+ 6x2− x3+ 3x4
v.đ.k x1+ x2+ x3+ x4= 10
2x2+ x3− x4= 6
x1, x2, x3, x4≥ 0Tìm phương án cực biên không suy biến
Phương án cực biên không suy biến có đúng m = 2 thành phần dương nên ta xét:
Vì x1, x2, x3, x4≥ 0 nên suy ra f (x) ≥ -30 (hay f (x) bị chặn dưới)
Mà D 6= ∅ do tồn tại phương án cực biên
Trang 11ii) Chứng minh rằng tập nghiệm của bài toán quy hoạch tuyến tính là tập lồi.
Lời giải.
i) Ta có tập nghiệm chấp nhận được D là nghiệm của hệ tập hữu hạn các bất đẳng thức tuyến tính suy ra
D là tập lồi đa diện
Xét x = (1, 1, 1)T,ta có x ∈ D suy ra D khác rỗng
Mà D bị chặn suy ra theo Định lí về sự tồn tại nghiệm, bài toán luôn tồn tại nghiệm tối ưu
Bài toán thực tế mô tả bởi quy luật tuyến tính trên:
Một nhà máy có khả năng sản xuất 3 loại sản phẩm Gọi x1, x2, x3lần lượt là số sản phẩm loại 1, 2, 3 Ta
có kế hoạch sản xuất là x = (x1, x2, x3) Lượng nguyên liệu loại 1 cần thiết để sản xuất một sản phẩm loại
1, 2, 3 lần lượt là 2, 4, 2 Lượng nguyên liệu loại 2 cần thiết để sản xuất một sản phầm loại 1, 2, 3 lần lượt
là 1, 2, 3 Trữ lượng mà nguyên liệu loại một là 8, trữ lượng nguyên liệu loại 2 là 7 Tìm kế hoạch sản xuất
để nhà máy thu được lợi nhuận lớn nhất, biết giá của sản phẩm loại 1, 2, 3 lần lượt là 6, 2, 4
ii) Giả sử tập nghiệm tối ưu của bài toán quy hoạch tuyến tính là M = {x1, x2, , xn}(x1, x2, , xn∈ Rm)
xj ≥ 0, j = 1, , 7i) Chứng minh rằng x∗= (0, 2, 0, 20, 0, 2, 0)T là phương án cực biên không suy biến
ii) Xuất phát từ x∗, giải bài toán trên bằng phương pháp đơn hình
iii) Tìm một phương án chấp nhận được ¯x có f (¯x) = −87
Trang 12xj ≥ 0, j = 1, , 7i) Ta có: J (x∗) = 2, 4, 6 Các vector
A2= (1.2.3)T
A4= (0, 1, 2)T
A6= (1, 0, 0)TĐộc lập tuyến tính ⇒ x∗ là một phương án cực biên
Trang 13Loại A6ra khỏi cơ sở và thay bằng A5
x1, x2, x3, x4, x5≥ 0
(2)i) Lập bảng đơn hình tương ứng với phương án cực biên x0= (0, 3, 0, 2, 4)T
ii) Tìm điều kiện của tham số α để phương án trên là tối ưu
Lời giải:
i) Bảng đơn hình tương ứng với phương án cực biên x0= (0, 3, 0, 2, 4)T:
Ta có J (x0) = {2, 4, 5} và các vector A2, A4, A5 độc lập tuyến tính và tạo thành ma trận đơn vị cơ sở
B = {A2, A4, A5} = I3 nên ta dễ dàng có được các biểu diễn sau:
Lưu ý rằng cột các giá trị của θ chỉ được điền khi tồn tại ít nhất một giá trị ∆i > 0 hay 2 − α > 0
ii) Để x0là phương án tối ưu khi và chỉ khi ∆i≤ 0, ∀i = 1, , 5 hay 2 − α ≤ 0 ⇔ α ≥ 2
Chứng minh rằng nếu bài toán min{hc, xi|Ax = b, x ≥ 0} có phương án tối ưu thì các bài toán min{hc, xi|Ax =
b, x ≥ 0} cũng có phương án tối ưu, trong đó b là véc tơ vế phải bất kỳ miễn là tập chấp nhận được{x ∈ Rn|Ax = b, x ≥ 0}
Trang 14Lời giải.
Gọi D là tập xác định của bài toán min{hc, xi|Ax = b, x ≥ 0} Còn D là tập xác định của bài toánmin{hc, xi|Ax = b, x ≥ 0} Để cho tiện, ta gọi tương ứng hai bài toán này là bài toán 1 và bài toán 2 Khôngmất tính tổng quát, ta giả sử cả hai bài toán đều không suy biến, nói cách khác, hai tập D và D đều là cáctập lồi có đỉnh Ta phát biểu định lý sau:
Định lý 2.3 Nếu tập chấp nhận được của D khác rỗng và hàm mục tiêu f (x) = hc, xi bị chặn dưới trên Dthì bài toán quy hoạch tuyến tính luôn có nghiệm tối ưu
Chứng minh trong 2 Giả sử phản chứng: tồn tại b sao cho bài toán đang xét không có nghiệm tối ưu Ápdụng định lý, suy ra hàm hc, xi không bị chặn dưới trên D Ta thấy rằng: D phải có phương lùi xa, vì nếukhông D sẽ là một tập lồi bị chặn, ngoài ra một hàm lồi thì luôn có giá trị nhỏ nhất trên tập xác định lồi
bị chặn, trong trường hợp như vậy, bài toán được giải quyết Xét trường hợp tập D có phương lùi xa, gọi d
là một phương cực biên bất kì của D
Nhắc lại tính chất của phương cực biên: x ∈ D ⇒ x + td ∈ D, ∀t ≥ 0 Từ đây, ta thấy rằng với mỗi x ∈ D,
ta đều có đồng thời: x + td ≥ 0 và A(x + td) = b (kết hợp với Ax = b, ta có: Ad = 0) Vì x + td ≥ 0 ∀t, điềunày suy ra rằng d ≥ 0 (Thật vậy, nếu như tồn tại i để di< 0, ở đây ta hiểu là thành phần thứ i của d, khi
đó, sẽ tồn tại t0 đủ lớn để xi+ t0di < 0, dẫn đến x + td có một thành phần âm, vô lý) Từ đây ta rút ramột tính chất quan trọng của phương cực biên, đó là nếu d là phương cực biên thì Ad = 0 và d ≥ 0 Mộtcách tương tự, điều ngược lại cũng đúng
Từ chứng minh trên, ta suy ra: mỗi phương cực biên của D chính là phương cực biên của D, do Ad = 0không phụ thuộc vào giá trị của b hay b Gọi d1, d2, , dM là M phương cực biên chung của D và D, có haitrường hợp xảy ra:
• Trường hợp 1: Tồn tại di để hc, dii < 0 Khi đó, gọi x0 là phương án cực biên của bài toán 1 Xét
x∗= x0+ tdi, khi đó, x∗∈ D, mà: hc, x∗i = hc, x0i + thc, dii < hc, x0i, vô lý với giả thiết x0là nghiệmtối ưu
• Trường hợp 2: Với mọi di thì hc, dii ≥ 0 Khi đó, ta sẽ chứng minh hc, xi không bị chặn trên D Thậtvậy, gọi x ∈ D bất kì, ta có, theo định lý biểu diễn:
Cả hai trường hợp đều dẫn tới vô lý, suy ra giả sử là sai và ta có điều phải chứng minh
Gỉai bài toán sau bằng hai cách
max f (x) = −x1+ 3x2
v.đ.k x1− x2≤ 4
x1+ 2x2≥ 4
x1≥ 0, x2≥ 0Cách 1: phương pháp hình học
2 Nguyễn, Giáo trınh các phương pháp tối ưu: Lý thuyết và thuật toán
Trang 15−5 −4 −3 −2 −1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
123456789
f (xt) = 2t − 4lim
t→∞f (xt) = lim
t→∞(2t − 4) = ∞
Chứng minh điểm x1 trong thuật toán đơn hình là điểm cực biên
Trang 16J (x1) ⊂ J (x0) \ {r} ∪ {k} Nói cách khác:
J (x1) ⊂ {s1, s2, , sm−1, k}
Nhận xét, theo thuật toán đơn hình, ta có:
Ak= zs1kAs1+ zs2kAs2+ · · · + zsm−1kAsm−1 + zrkArTrong đó, zrk > 0, và bộ số zsik tồn tại duy nhất Chuyển vế đại lượng Arvà Ak, ta có:
Ta sẽ chứng minh các vector As1, As2, , Asm−1, Ak là độc lập tuyến tính
Thật vậy, giả sử As1, As2, , Asm−1, Ak phụ thuộc tuyến tính, khi đó, tồn tại (a1, a2, am−1) 6= 0 sao cho:
0 = a1As1+ a2As2+ · · · + am−1Asm−1+ amAk (4)Cộng hai vế của phương trình 3 và 4, ta thu được:
Ak, vô lý
Vậy giả sử là sai, ta có As1, As2, , Asm−1, Ak độc lập tuyến tính
Định lý 2.4 3 Phương án chấp nhận được x0∈ D là phương án cực biên khi và chỉ khi các vector {Aj|j ∈
J (x0)} độc lập tuyến tính
Trang 17Tìm phương án chấp nhận được x∗thỏa mãn f (x∗) = -31
Lời giải:
Phương án chấp nhận được x∗ thỏa mãn f (x∗) = -31
⇔ x∗ là nghiệm chứa các thành phần không âm của hệ phương trình:
x2− 4x3+ 2x4 + x6= 12Xét ma trận mở rộng:
a + 2b ≥ 7
Trang 18−6 −5 −4 −3 −2 −1 1 2 3 4 5 6
−2
−1
1 2 3 4 5 6 7
Từ đồ thị trên ta thấy tập nghiệm của hệ phương trình trên là tập các điểm thuộc miền D (miền được tô
Chứng minh rằng: ∆k < 0 với mọi k /∈ J0 là điều kiện cần và đủ để phương án cực biên không suy biên x0
là nghiệm tối ưu duy nhất Cho một ví dụ minh họa về sự cần thiết của giả thiết không suy biến
Lời giải.
Chiều thuận:
Vì x0= (x0, x0, , x0
n)T là phương án cực biên không suy biến, ta có x0
k = 0 với mọi k /∈ J0(x0) nên:
Trang 19x0= y
⇒ x0là nghiệm tối ưu duy nhất
Chiều ngược lại:
Trường hợp 1: Nếu tồn tại k /∈ J (x0) sao cho ∆k = 0 suy ra tồn tại yk 6= 0 với k /∈ J (x0) hay x0 không phải
là phương án tối ưu duy nhất
Trường hợp 2: Nếu tồn tại k /∈ J (x0) sao cho ∆k> 0
Trang 20Định lý 2.5 4 Cho x0 là một phương án cực biên của bài toán quy hoạch tuyến tính chính tắc (LPct) Khiđó,
i) Nếu tồn tại k /∈ J (x0) sao cho: ∆k > 0 và zjk ≤ 0∀j ∈ J (x0) thì hàm mục tiêu giảm vô hạn trên tậpchấp nhận được và bài toán không có lời giải
ii) Nếu tồn tại k /∈ J (x0) sao cho: ∆k > 0 và tồn tại j ∈ J (x0) sao cho zjk > 0 thì ta có thể chuyển tớiđược phương án cực biên x1 tốt hơn phương án cực biên x0, nghĩa là hc, x1i < hc, x0i
Theo định lí 3.8 ta có: bài toán hoặc không có lời giải (nếu zjk≤ 0 với mọi j ∈ J (x0)) hoặc ta có thể chuyểnđến một phương án cực biên x1 tốt hơn phương án cực biên x0 (nếu tồn tại j ∈ J (x0) sao cho zjk> 0) hay
x0không phải phương án tối ưu
Từ 2 trường hợp ta suy ra được chiều ngược của bài toán
Sự cần thiết của giả thiết không suy biến:
Nếu x0là phương án cực biên suy biến ⇒ Tồn tại nhiều hơn một cơ sở của ma trận A tương ứng với x0 từ
đó ta có nhiều hơn một cách biểu diễn b, y, x0 theo các cơ sở Từ đó bài toán sẽ không còn đúng nữa Một
Tìm tập nghiệm tối ưu của bài toán sau bằng phương pháp đơn hình:
⇒ x0là một phương án cực biên không suy biến
Ta thấy (A4, A5, A6) là cơ sở trực chuẩn nên ta có: