1 Lập mô hình bài toán qui hoạch tuyến tínhKhái niệm bài toán qui hoạch tuyến tính Các bước lập mô hình bài toán 2 Thuật toán đơn hình Biến đổi bài toán về dạng chuẩn Dạng tổng quát Dạng
Trang 1Lê Phương
Bộ môn Toán kinh tế Đại học Ngân hàng TP Hồ Chí Minh Homepage: http://docgate.com/phuongle
Trang 21 Lập mô hình bài toán qui hoạch tuyến tính
Khái niệm bài toán qui hoạch tuyến tính
Các bước lập mô hình bài toán
2 Thuật toán đơn hình
Biến đổi bài toán về dạng chuẩn
Dạng tổng quát
Dạng chính tắc
Dạng chuẩn
Thuật toán đơn hình cơ bản
Thuật toán đơn hình mở rộng
3 Bài toán đối ngẫu
Xây dựng bài toán đối ngẫu
Mối quan hệ giữa hai bài toán đối ngẫu
Cặp ràng buộc đối ngẫu
Tìm tập phương án tối ưu
Chứng minh một phương án là phương án tối ưu
4 Bài toán vận tải
Định nghĩa
Tính chất
Thuật toán thế vị
Trang 3Ví dụ
Tại sân bay X có nhu cầu vận chuyển 2000 khách và 220 tấn hànghoá đến sân bay Y Thời điểm đó có ba loại máy bay có thể sử dụngvới khả năng vận chuyển và chi phí (triệu đồng) như sau:
Loại máy bay Chi phí Khả năng vận chuyển Có thể
Hành khách Hàng hóa sử dụng
A 140 150 người 18 tấn 3 chiếc
B 200 180 người 16 tấn 6 chiếc
C 300 320 người 25 tấn 5 chiếcXác định phương án sử dụng máy bay để vận chuyển hết số hàng vàkhách nêu trên với chi phí thấp nhất
Trang 6• Xác định cácràng buộc dấuđối với mỗi biến
x j ≤ 0, hoặc x j ≥ 0, hoặc x j tùy ý
Hệ ràng buộc chính và ràng buộc dấu được gọi chung làhệ ràngbuộc
Trang 7Khi lập mô hình bài toán qui hoạch tuyến tính cần chú ý
• Để xác định các biến dễ dàng hơn, ta thường xác định hàm mụctiêu của bài toán trước
• Thông thường các biến được gọi là các biến đơn giản nhất củabài toán
• Nhiều bài toán đòi hỏi các biến là các số tự nhiên
• Các sai lầm hay gặp phải khi gọi biến
1 Việc gọi biến chỉ lập được hàm mục tiêu mà không lập được cácràng buộc chính
2 Gọi biến nhưng sau đó xác định được ngay giá trị của biến
Trang 8Ví dụ (Bài toán vận tải)
Cần vận chuyển gạo từ 2 kho A1, A2 với khối lượng lần lượt là 100 và
150 tấn đến 3 đại lí gạo B1, B2, B3 lần lượt có nhu cầu là 70, 100 và
80 tấn Hãy lập mô hình để tổng chi phí vận chuyển là nhỏ nhất, biếtrằng chi phí vận chuyển 1 tấn gạo từ mỗi kho đến mỗi đại lí được chotrong bảng sau
PPPPPPPP
Trang 9Gọi x1là khối lượng gạo (tấn) vận chuyển từ kho A1 đến đại lí B1
x2là khối lượng gạo (tấn) vận chuyển từ kho A1 đến đại lí B2
x3là khối lượng gạo (tấn) vận chuyển từ kho A1 đến đại lí B3
x4là khối lượng gạo (tấn) vận chuyển từ kho A2 đến đại lí B1
x5là khối lượng gạo (tấn) vận chuyển từ kho A2 đến đại lí B2
x6là khối lượng gạo (tấn) vận chuyển từ kho A2 đến đại lí B3
Hàm mục tiêu là hàm tổng chi phí vận chuyển:
f (x) = 10x1 + 7x2+ 3x3+ 5x4+ 9x5+ 6x6→ min
Các ràng buộc chính:
Tổng cung của kho A1: x1+ x2+ x3= 100
Tổng cung của kho A2: x4+ x5+ x6= 150
Tổng cầu của đại lí B1: x1+ x4= 70
Tổng cầu của đại lí B2: x2+ x5= 100
Tổng cầu của đại lí B3: x3+ x6= 80
Các ràng buộc dấu: x j ≥ 0, j = 1, 6.
Trang 10Vậy mô hình bài toán là:
Trang 11Bài tập 1
Có 3 xí nghiệp A, B, C có khả năng sản xuất 3 loại sản phẩm
S1 , S2, S3 Biết cứ mỗi đơn vị tiền tệ đầu tư vào A sẽ sản xuất được
1200, 800, 1050 sản phẩm S1, S2, S3 Đầu tư vào B được 1000, 740,
900 Đầu tư vào C được 1100, 600, 1000 Mức tiêu hao nguyên liệu
(kg / sản phẩm) và lao động (giờ / sản phẩm) cho bởi bảng sau:
Trang 12Bài tập 2
Một người có số tiền 70 triệu đồng dự định đầu tư vào các khoản sau:Gửi tiết kiệm không kỳ hạn với lãi suất 6,5%/năm; Gửi tiết kiệm có kỳhạn với lãi suất 8,5%/năm; Mua tín phiếu với lãi suất 10%/năm; Chodoanh nghiệp tư nhân vay với lãi suất 13%/năm
Mỗi khoản đầu tư đều có các rủi ro của nó, nên người đó quyết địnhđầu tư theo các chỉ dẫn sau đây của nhà tư vấn: Không cho doanhnghiệp tư nhân vay quá 20% số tiền, số tiền mua tín phiếu khôngđược vượt quá tổng số tiền đầu tư vào 3 khoản còn lại, đầu tư ít nhất30% tổng số tiền vào gửi tiết kiệm có kỳ hạn và mua tín phiếu, tỉ lệtiền gửi tiết kiệm không kỳ hạn trên tiền gửi tiết kiệm có kỳ hạn khôngđược quá 1/3
Hãy lập mô hình cho bài toán xác định số tiền đầu tư vào mỗi
khoản để tổng số tiền lời đạt được cao nhất và tuân theo các chỉ
dẫn của nhà tư vấn, biết rằng người đó quyết định đầu tư hết số tiềnđang có
Trang 13Bài tập 3
Một xí nghiệp cần sản xuất 3 loại bánh: bánh đậu xanh, bánh thậpcẩm và bánh dẻo Lượng nguyên liệu đường, đậu cho một bánh mỗiloại, lượng dự trữ nguyên liệu, tiền lãi cho một bánh mỗi loại được chotrong bảng sau
PPP
PPPP
NL Bánh đậu xanh thập cẩm dẻo Lượng dự trữĐường 0,04kg 0,06kg 0,05kg 500kgĐậu 0,07kg 0kg 0,02kg 300kg
Hãy lập mô hình bài toán tìm số lượng mỗi loại bánh cần sản xuất sao cho không bị động về nguyên liệu mà lãi đạt được cao nhất.
Trang 14Bài tập 4
Một cơ sở sản xuất đồ gỗ dự định sản xuất ba loại sản phẩm là bàn,ghế và tủ Định mức sử dụng lao động, chi phí sản xuất và giá bánmỗi sản phẩm mỗi loại ước tính trong bảng sau
Trang 15Bài tập 5
Giả sử yêu cầu tối thiểu mỗi ngày về các chất dinh dưỡng đạm,đường, khoáng cho một loại gia súc tương ứng là 90g, 130g, 10g.Cho biết hàm lượng các chất dinh dưỡng (g) trên có trong 1g thức ăn
A, B, C và giá mua 1kg thức ăn mỗi loại (đ) được cho trong bảng sau
Trang 16Với bài toán f (x) → max, ta đặt g(x) = −f (x) thì bài toán trở thành
g(x) → min Do đó ta chỉ cần xét bài toán qui hoạch tuyến tính có
hàm mục tiêu f (x) → min.
Trang 17a11 a12 · · · a1n
a21 a22 · · · a2n
Trang 18Dạng chính tắc
Bài toán qui hoạch tuyến tínhdạng chính tắclà bài toán qui hoạchtuyến tính mà ràng buộc chính là phương trình và ràng buộc dấu làkhông âm
Trang 19Các bước đưa bài toán dạng tổng quát về dạng chính tắc
Trang 22Ẩn cơ bản
Ẩn x j được gọi làẩn cơ bản(ACB) của ràng buộc chính thứ i nếu hệ
số của x j ở ràng buộc chính thứ i bằng 1 còn trong các ràng buộc chính còn lại hệ số của x j bằng 0
a ij = 1, a 1j = a 2j = · · · = a (i−1)j = a (i+1)j = · · · = a mj = 0
Dạng chuẩn
Bài toán qui hoạch tuyến tínhdạng chuẩnlà bài toán qui hoạch tuyến
tính dạng chính tắc có b i ≥ 0 với mọi i và mỗi ràng buộc chính có ít
nhất một ẩn cơ bản
Trang 23Các bước đưa bài toán dạng chính tắc về dạng chuẩn
1 Nếu tồn tại b i < 0 thì ta thay phương trình
a i1 x1+ a i2 x2+ · · · + a in x n = b i
bằng phương trình
−a i1 x1 − a i2 x2 − · · · − a in x n = −b i
2 Nếu một phương trình không có ẩn cơ bản, ta thêm mộtẩn giả
x k ≥ 0 vào phương trình, đồng thời cộng Mx k vào hàm mục tiêu
tương ứng với bài toán min, với M là kí hiệu cho một số dương
lớn tùy ý
Trang 26Một số khái niệm cơ bản
• Mộtphương án(PA) của bài toán là một vector x = (x1, , x n)thỏa mãn tất cả các ràng buộc (chính và dấu) Tập hợp tất cả cácphương án của bài toán được gọi làtập phương án
tiêu của bài toán min đạt giá trị nhỏ nhất hoặc làm cho hàm mụctiêu của bài toán max đạt giá trị lớn nhất
• Hai bài toán qui hoạch tuyến tính được gọi làtương đươngnếuchúng có cùng tập phương án tối ưu
Trang 27Một số khái niệm cơ bản
• Một ràng buộc được gọi làchặtđối với phương án x nếu ta thay
x vào ràng buộc này thì xảy ra dấu bằng Ngược lại ràng buộc
được gọi làlỏng(không chặt)
(PACB) của bài toán qui hoạch tuyến tính là một phương án có
số ràng buộc chặt độc lập tuyến tính bằng n (số biến) hay hệ ràng buộc chặt của phương án x này chỉ có nghiệm duy nhất là
x Ngược lại nếu số ràng buộc chặt độc lập tuyến tính nhỏ hơn n
thì phương án đó được gọi làphương án không cực biên
• Một phương án cơ bản có số ràng buộc chặt bằng n được gọi là
phương án cơ bản không suy biến Ngược lại nếu số ràng buộc
chặt lớn hơn n thì được gọi làphương án cơ bản suy biến
Trang 29Định lí
Xét bài toán qui hoạch tuyến tính ở dạng tổng quát
1 Nếu bài toán có phương án và rank(A) = n thì bài toán có
phương án cơ bản
2 Nếu bài toán có phương án và hàm mục tiêu min bị chặn dưới(hoặc hàm mục tiêu max bị chặn trên) trên tập phương án thì bàitoán có phương án tối ưu
3 Số phương án cơ bản của mọi bài toán qui hoạch tuyến tính đềuhữu hạn
Định lí
Xét bài toán qui hoạch tuyến tính ở dạng chuẩn Gọi x k i là ẩn cơ bản
của ràng buộc chính thứ i (với i = 1, m) thì bài toán có một phương
án cơ bản là x = (x1, x2, , x n ) trong đó x k i = b i với i = 1, m, còn các
x j khác bằng 0
Trang 30Thuật toán đơn hình cơ bảnđược sử dụng để tìm một phương án tối
ưu của bài toán qui hoạch tuyến tính ở dạng chuẩn, có hàm mục tiêu
ở dạng min và không có ẩn giả Thuật toán được tiến hành như sau:
Bước 1: Lập bảng đơn hình xuất phát
Trang 31Bước 2: Kiểm tra dấu hiệu dừng
1 Nếu ∆j ≤ 0 với mọi j = 1, n thì phương án cơ bản x với
x k i = b i , ∀i = 1, m và x j = 0, ∀j / ∈ {k1, · · · , k m} là phương án tối
(trạng thái dừng - tối ưu)
2 Nếu tồn tại ∆j > 0 sao cho a ij ≤ 0 với mọi i = 1, n thì bài toán
không có phương án tối ưu (trạng thái dừng - không tối ưu)
3 Trong các trường hợp còn lại, chuyển sang bước 3
Trang 32Bước 4: Lập bảng đơn hình mới
1 Lập bảng đơn hình mới trong đó ẩn x i trong cột “ACB” được thay
bằng ẩn x j Chép vào cột “Hệ số ACB” các giá trị tương ứng
2 Sau đó ta sử dụng các phép biến đổi sơ cấp trên dòng để biến
đổi a ij 7→ 1, a kj 7→ 0 với mọi k 6= i sao cho bài toán vẫn ở dạng
chuẩn Cụ thể tiến hành lần lượt theo các bước
1 (Dòng i) := (Dòng i)
a ij
2 (Dòng k) := (Dòng k) - a kj·(Dòng i) với mọi k 6= i
(Một dòng được hiểu là gồm các giá trị từ cột b đến cột x n)
3 Quay lại bước 2
Trang 34Phương án tối ưu của bài toán (M) là x = (13, 8, 0).
Giá trị hàm mục tiêu đạt được là: gmin= −4.13 − 8 = −60
Phương án tối ưu của bài toán (P) là x = (13, 8, 0).
Giá trị hàm mục tiêu đạt được là: fmax= −gmin= 60
Trang 36Thuật toán đơn hình mở rộngdựa trên nền tảng thuật toán đơn hình
cơ bản áp dụng cho trường hợp có ẩn giả với một số lưu ý sau
1 Trong bảng đơn hình không cần ghi các cột ứng với ẩn giả
2 So sánh giá trị của các ∆j với 0 và với nhau
Giả sử ∆j = aM + b và ∆ k = cM + d với a 6= 0 Khi đó
3 Quan hệ giữa bài toán gốc (P) và bài toán có ẩn giả (M)
• Nếu (M) không có phương án tối ưu thì (P) không có phương án tốiưu
• Nếu (M) có phương án tối ưu mà mọi ẩn giả đều bằng 0 thì (P) cóphương án tối ưu
• Nếu (M) có phương án tối ưu mà tồn tại một ẩn giả lớn hơn 0 thì (P)không có phương án, do đó (P) không có phương án tối ưu
Trang 38Do ∆j ≤ 0, ∀j = 1, 7 nên một phương án tối ưu của bài toán (Q) là
x = (0, 0, 2, 4, 4, 0, 0) Giá trị hàm mục tiêu đạt được là gmin= 3.2 = 6
Do ản giả duy nhất x7= 0 nên bài toán gốc (P) có phương án tối ưu
là x = (0, 0, 2) Giá trị hàm mục tiêu đạt được là f = −g = −6
Trang 42Bài toán gốc (P) ở dạng min
Trang 43Bài toán gốc (P) ở dạng max
Bài toán đối ngẫu (D)
g(y) = b1y1 + · · · + b m y m→ min
Trang 44Giải Bài toán đối ngẫu của bài toán đã cho là
g(y) = 12y1 + 75y2+ 14y3→ max
Trang 46Cặp ràng buộc đối ngẫu
Trong cặp bài toán đối ngẫu thì ràng buộc bất phương trình thứ i của bài toán gốc (P) sẽ cùng với ràng buộc dấu thứ i của bài toán đối
ngẫu (D) lập thành mộtcặp ràng buộc đối ngẫu
Định lí
Đối với cặp bài toán đối ngẫu bao giờ cũng chỉ xảy ra 1 trong 3 trườnghợp
1 Cả hai bài toán đều không có phương án
2 Cả hai bài toán đều có phương án, khi đó cả hai bài toán đều cóphương án tối ưu và giá trị hàm mục tiêu của chúng bằng nhau
3 Một trong hai bài toán không có phương án, bài toán còn lại cóphương án, khi đó bài toán có phương án sẽ không có phương
án tối ưu
Trang 47Định lý độ lệch bù yếu
Hai phương án của cặp bài toán đối ngẫu là phương án tối ưu khi và
chỉ khi với mỗi cặp ràng buộc đối ngẫu nếu một ràng buộc thỏa lỏng (không thỏa chặt) thì ràng buộc còn lại thỏa chặt.
Hai cách tìm tập phương án tối ưu
1 Dựa vào định lí độ lệch bù yếu
2 Dựa vào bảng đơn hình cuối cùng:
Từ bảng đơn hình dạng min (dừng – tối ưu), nếu tồn tại x j khôngphải là ẩn cơ bản mà ∆j = 0 thì phương án tối ưu tìm đượckhông duy nhất
Để tìm tập phương án tối ưu của bài toán, ta giải hệ ràng buộc
theo các x j nêu trên với chú ý x k = 0 nếu x k không phải là ẩn cơbản và ∆k < 0
Trang 48Ví dụ (Tìm tập PATƯ dựa vào định lí độ lệch bù yếu)
Cho bài toán (P) như sau:
Trang 49Giải Bài toán đối ngẫu (D) của (P) là:
g(y) = 12y1 + 9y2+ 6y3→ min
Ta có x = (3/2, 0, 3/2) là một PATƯ của (P) Gọi y = (y1, y2, y3) là
một PATƯ của (D) Theo định lí độ lêch bù yếu ta có:
Trang 50Ví dụ (Tìm tập PATƯ dựa vào bảng đơn hình cuối cùng)
Cho bài toán quy hoạch tuyến tính (P):
Trang 51Giải Nhận thấy x6không phải là ẩn cơ bản mà ∆6= 0 Đặt x6= t, ta
Trang 52Chứng minh một phương án là phương án tối ưu
Để chứng minh một phương án x là một phương án tối ưu của (P), ta
thực hiện các bước sau đây
1 Giả sử x là một phương án tối ưu của (P).
2 Gọi y là một phương án tối ưu của bài toán đối ngẫu (D) của (P).
3 Áp dụng định lí độ lệch bù yếu cho (P) và (D), ứng với cặp vector
x và y.
4 Giải hệ phương trình và bất phương trình đối với y.
5 Nếu tồn tại nghiệm thì chứng tỏ x là một phương án tối ưu của (P) và tập phương án tối ưu của (D) là tập nghiệm của y vừa tìm
được
6 Nếu không tồn tại nghiệm thì chứng tỏ x không phải là một
phương án tối ưu của (P)
Trang 531 Viết bài toán đối ngẫu của (P).
2 Vector x = (0, 0, 0, 10) có là phương án tối ưu của (P) hay
không? Xác định tập phương án tối ưu của bài toán (P)
Trang 541) Bài toán đối ngẫu (D) của bài toán (P) là
g(y) = 20y1 + 30y2+ 40y3→ min
Trang 552) Nhận thấy x = (0, 0, 0, 10) là một phương án của (P) vì thỏa mãn
tất cả ràng buộc chính và ràng buộc dấu
Giả sử x là một phương án tối ưu của bài toán (P) Gọi y = (y1, y2, y3)
là một phương án tối ưu của (D) Theo định lí độ lệch bù yếu ta có
Trang 56Tìm tập phương án tối ưu của bài toán (P):
Vì y = (3, 0, 0) là phương án tối ưu của (D) nên nếu x = (x1, x2, x3) làmột phương án tối ưu của (P) thì theo định lí độ lệch bù yếu ta có:
Trang 571 Viết bài toán đối ngẫu (D) của bài toán (P).
2 Cho biết (0, 8, 5) là một phương án tối ưu của (D) Hãy xác địnhtập hợp tất cả các phương án tối ưu của (P)
Trang 58Ví dụ
Một công ty có 4 cửa hàng là B1, B2, B3, B4 có nhu cầu về một loạihàng hóa tương ứng là 40, 75, 60, 70 (tấn) Công ty đã đặt mua loạihàng đó ở 3 xí nghiệp là A1, A2, A3 với khối lượng tương ứng là 45,
90, 110 (tấn) Giá cước vận chuyển (1000đ / tấn) từ một xí nghiệpđến một cửa hàng cho trong bảng sau
Trang 593 c ij : chi phí gửi 1 đơn vị hàng từ trạm phát Ai đến trạm thu Bj,
4 x ij : lượng hàng cần gửi từ trạm phát Ai đến trạm thu Bj.
Trang 60Điều kiện của bài toán:
Trang 61Mô hình bài toán
Mộtphương áncủa bài toán vận tải là một ma trận X = (x ij) thỏa tất
cả các điều kiện ràng buộc
Mộtphương án tối ưucủa bài toán vận tải là một phương án làm tổng
chi phí f (X) đạt cực tiểu.
Trang 62• Vòng: dây chuyền khép kín.
• Ô chọn: ô ứng với x ij> 0
• Ô loại: không phải ô chọn
thành vòng
• PACB suy biến: PACB có ít hơn m + n + 1 ô chọn.
Nhận xét: Số ô trong vòng luôn là một số chẵn.
Trang 63Các tính chất của bài toán vận tải
1 Bài toán vận tải cân bằng thu phát luôn có PATƯ
2 Trong một PACB bất kì, số ô chọn không lớn hơn m + n − 1.
3 Xét một PACB không suy biến và một ô loại bất kì Tồn tại duynhất 1 vòng tạo bởi ô loại đó và một số ô chọn nào đó
Trang 64Bài toán vận tải (VT):
Tiêu chuẩn tối ưu
Ma trận (x ij) là PATƯ của (VT) khi và chỉ khi
ui + v j ≤ cij
xij ui + v j − cij = 0 ∀i = 1, m, j = 1, n
Trang 65Bước 1: Tìm PACB xuất phát
1 Phân phối cho mỗi ô một lượng hàng lớn nhất có thể theo 1 trong
(Các ô được phân phối là các ô chọn)
2 Nếu số ô chọn đủ m + n − 1 ô thì chuyển sang bước 2.
3 Nếu số ô chọn không đủ m + n − 1 ô thì phải bổ sung thêm 1 ô
loại vào PACB sao cho ô “chọn mới” này không tạo thành vòngvới các ô đã chọn và nên lấy ô “chọn mới” là ô có chi phí thấpnhất có thể được
Trang 66Bước 3: Kiểm tra tiêu chuẩn tối ưu
Tính các hệ số ước lượng ∆ij = u i + v j − c ij cho các ô loại
1 Nếu ∆ij ≤ 0 với mọi (i, j) thì PACB là PATƯ Thuật toán kết thúc.
2 Nếu tồn tại ∆ij > 0 thì chuyển sang bước 4
Trang 67Bước 4: Cải tiến phương án
Giả sử (i0, j0) là ô vi phạm tiêu chuẩn tối ưu mà có ∆ij lớn nhất
1 Ô (i0, j0) sẽ là ô chọn trong bảng mới Ta xác định vòng tạo bởi
(i0, j0) với các ô chọn và đánh dấu +, − liên tiếp nhau cho các ô
nằm trên vòng này, bắt đầu từ (i0, j0) mang dấu +
2 Lượng điều chỉnh: q = min{x ij , với mọi ô (i, j) mang dấu − }.
4 Quay lại bước 2
Chú ý: Khi thuật toán kết thúc, nếu tồn tại ô loại (i0, j0) mà ∆i0j0 = 0
thì ta có thể tìm được PATƯ khác bằng cách chọn ô loại (i0, j0) làm ô
“chọn mới”