Trang bị cho sinh viên kiến thức biết cách xây dựng bài toán quy hoạch tuyến tính căn bản,thiết lập được mô hình tổng quan của bài toán thông qua các bài tập ví dụ căn bản nhất như các bài tập về bài toán dinh dưỡng, bài toán lập kế hoạch sản xuất.
Trang 1QUY HOẠCH TUYẾN TÍNH
Trương Phúc Tuấn Anh
Đại học Sài gòn
Năm học 2012-2013
Trang 2Mục đích, yêu cầu
Mục đích: Trang bị cho sinh viên kiến thức biết cách xây dựng mô
hình bài toán
Yêu cầu: Sinh viên phải thiết lập được mô hình tổng quan của bài
toán quy hoạch tuyến tính
Trang 3Mục đích yêu cầu Chương I: Lý thuyết QHTT Chương II: Giải thuật đơn hình Chương III: Bài toán đối ngẫu Bài toán vận tải Bài tập
Bài toán dinh dưỡng
Người ta cần có một lượng (tối thiểu) chất dinh dưỡng i = 1; m do các
thức ăn j = 1; n cung cấp Giả sử:
a ij là số lượng chất dinh dưỡng loại i có trong 1 đơn vị thức ăn loại
j (i = 1; m, j = 1; n);
b i là nhu cầu tối thiểu về loại dinh dưỡng i;
c j là giá mua một đơn vị thức ăn loại j
Vấn đề đặt ra là phải mua các loại thức ăn như thế nào để tổng chi phí
bỏ ra ít nhất mà vẫn đáp ứng được yêu cầu về dinh dưỡng
Gọi x j ≥ 0(j = 1, n) là số lượng thức ăn thứ j cần mua Tổng chi phí
cho việc mua thức ăn là
Trang 4Bài toán dinh dưỡng
Người ta cần có một lượng (tối thiểu) chất dinh dưỡng i = 1; m do các
thức ăn j = 1; n cung cấp Giả sử:
a ij là số lượng chất dinh dưỡng loại i có trong 1 đơn vị thức ăn loại
j (i = 1; m, j = 1; n);
b i là nhu cầu tối thiểu về loại dinh dưỡng i;
c j là giá mua một đơn vị thức ăn loại j
Vấn đề đặt ra là phải mua các loại thức ăn như thế nào để tổng chi phí
bỏ ra ít nhất mà vẫn đáp ứng được yêu cầu về dinh dưỡng
Vấn đề được giải quyết theo mô hình sau đây:
Gọi x j ≥ 0(j = 1, n) là số lượng thức ăn thứ j cần mua Tổng chi phí
cho việc mua thức ăn là
Trang 5Bài toán dinh dưỡng
Vì chi phí bỏ ra để mua thức ăn phải là thấp nhất nên yêu cầu được
Lượng dinh dưỡng i thu được từ thức ăn 1 là a i1 x1(i = 1, m)
Lượng dinh dưỡng i thu được từ thức ăn 2 là a i2 x2(i = 1, m)
Lượng dinh dưỡng i thu được từ thức ăn n là a in x n(i = 1, m)
Vậy lượng dinh dưỡng thứ i thu được từ các loại thức ăn:
a i1 x1+a i2 x2+ +a in x n, (i = 1, m)
Vì lượng dinh dưỡng thứ i thu được phải thoả yêu cầu b i về dinh dưỡng
loại đó, nên ta có ràng buộc sau:
a i1 x1+a i2 x2+ +a in x n ≥ b i(i = 1, m)
Trang 6Bài toán dinh dưỡng
Khi đó, theo yêu cầu của bài toán ta có mô hình bài toán sau đây:
Trang 7Mục đích yêu cầu Chương I: Lý thuyết QHTT Chương II: Giải thuật đơn hình Chương III: Bài toán đối ngẫu Bài toán vận tải Bài tập
Bài toán lập kế hoạch sản xuất
Người ta muốn sản xuất n loại sản phẩm từ m loại nguyên liệu khác
nhau Giả sử:
a ij :lượng nguyên liệu loại i dùng để sản xuất 1 sản phẩm loại j
(i = 1, m; j = 1, n);
b i :số lượng nguyên liệu loại i hiện có;
c j :lợi nhuận thu được từ việc bán một đơn vị sản phẩm loại j
Vấn đề đặt ra là phải sản xuất mỗi loại sản phẩm là bao nhiêu sao cho
tổng lợi nhuận thu được từ việc bán các sản phẩm là lớn nhất trong
điều kiện nguyên liệu hiện có
Tổng lợi nhuận thu được từ việc bán các sản
Trang 8Bài toán lập kế hoạch sản xuất
Người ta muốn sản xuất n loại sản phẩm từ m loại nguyên liệu khác
nhau Giả sử:
a ij :lượng nguyên liệu loại i dùng để sản xuất 1 sản phẩm loại j
(i = 1, m; j = 1, n);
b i :số lượng nguyên liệu loại i hiện có;
c j :lợi nhuận thu được từ việc bán một đơn vị sản phẩm loại j
Vấn đề đặt ra là phải sản xuất mỗi loại sản phẩm là bao nhiêu sao cho
tổng lợi nhuận thu được từ việc bán các sản phẩm là lớn nhất trong
điều kiện nguyên liệu hiện có
Gọi x j ≥ 0 là số lượng sản phẩm thứ j sẽ sản xuất (j = 1, n)
Tổng lợi nhuận thu được từ việc bán các sản
Trang 9Bài toán lập kế hoạch sản xuất
Vì yêu cầu lợi nhuận thu được cao nhất, nên ta cần có
Lượng nguyên liệu thứ i dùng để sản xuất sản phẩm thứ 1: a i1 x1
Lượng nguyên liệu thứ i dùng để sản xuất sản phẩm thứ 2: a i2 x2
Lượng nguyên liệu thứ i dùng để sản xuất sản phẩm thứ n: a in x n
Vậy lượng nguyên liệu thứ i dùng để sản xuất các sản phẩm:
a i1 x1+a i2 x2+ · · · +a in x n
Vì lượng nguyên liệu thứ i dùng để sản xuất các loại sản phẩm không
thể vượt quá lượng được cung cấp là b i, nên
a i1 x1+a i2 x2+ · · · +a in x n ≤ b i, (i = 1; m)
Trang 10Bài toán lập kế hoạch sản xuất
Vậy theo yêu cầu của bài toán ta có mô hình sau đây
Trang 11Bài toán vận tải
Người ta cần vận chuyển hàng hoá từ m kho hàng đến n cửa hàng bán
lẻ Giả sử
Lượng hàng hoá ở kho i là s i(i = 1; m);
Nhu cầu hàng hoá ở cửa hàng j là d j(j = 1, n);
Cước phí vận chuyển một đơn vị hàng thừ kho i đến cửa hàng j là
Bài toán đặt ra là lập kế hoạch vận chuyển để tiền cước là nhỏ nhất,
với điều kiện là mỗi cửa hàng đều nhận đủ hàng và mỗi kho đều trao
Trang 12Mục đích yêu cầu Chương I: Lý thuyết QHTT Chương II: Giải thuật đơn hình Chương III: Bài toán đối ngẫu Bài toán vận tải Bài tập
Bài toán vận tải
Gọi x ij ≥ 0 là lượng hàng hoá phải vận chuyển từ kho hàng i đến cửa
hàng j Khi đó, cước phí vận chuyển tất cả hàng hoá đến tất cả các kho
x ij ≥ 0 (1 ≤ i ≤ m; 1 ≤ j ≤ n).
Trang 13Bài toán vận tải
Gọi x ij ≥ 0 là lượng hàng hoá phải vận chuyển từ kho hàng i đến cửa
hàng j Khi đó, cước phí vận chuyển tất cả hàng hoá đến tất cả các kho
x ij ≥ 0 (1 ≤ i ≤ m; 1 ≤ j ≤ n).
Trang 14Ví dụ 1.1
Một xí nghiệp sản xuất ba mặt hàng H1,H2,H3 Việc sản xuất được
thực hiện theo dây chuyền trên ba máy M1,M2,M3 Tiền khấu hao mỗi
giờ tính bằng USD trên mỗi loại máy lần lượt là 2,1,3 Thời gian hoạt
động tối đa của các máy trong một tuần tính theo giờ lần lượt là 120,
100, 80 Thời gian cần thiết đối với các máy tính theo giờ để sản xuất
một đơn vị mặt hàng được cho bởi (B.1) Nguyên liệu được cung cấp
tối đa để sản xuất là 250 đơn vị; lượng nguyên liệu cần thiết để sản
xuất một đơn vị mặt hàng các loại lần lượt là 5đv; 3đv; 4đv Chi phí về
chuyên chở, tiền công và giá bán mỗi đơn vị mặt hàng các loại tính
bằng USD, được cho bởi (B.2);
Trang 16Ví dụ 1.1
Yêu cầu:
1 Tính lợi nhuận thu được trên mỗi đơn vị mặt hàng;
2 Lập bài toán qui hoạch tuyến tính để xí nghiệp sản xuất đạt lợi
nhuận cao nhất trong tuần;
3 Lập bài toán đối ngẫu của bài toán trên, nêu ý nghĩa kinh tế của
bài toán đối ngẫu;
4 Tìm phương án tối ưu của cả bài toán
Trang 17Giải ví dụ 1.1
Lợi nhuận thu được trên mỗi đơn vị mặt hàng:
Lợi nhuận = Giá bán - Tổng các chi phí
Lợi nhuận thu được cao nhất khi f (x) = 5x1+6x2+8x3đạt max
Thời gian sử dụng máy:
M1:4x1+3x2+x3không vượt quá 120;
M2:x1+3x2+2x3không vượt quá 100;
M3:2x1+x2+x3không vượt quá 80;
Nguyên liệu sử dụng 5x1+3x2+4x3không vượt quá 250
Trang 19quy hoạch tuyến tính dạng tổng quát
Dạng tổng quát của bài toán quy hoạch tuyến tính là:
Trang 20Quy hoạch tuyến tính dạng tổng quát
Trong đó:
(2) Hàm mục tiêu Là tổ hợp tuyến tính của các biến số, biểu thị
một đại lượng nào đó mà ta cần phải quan tâm của bài toán;
(3) Các ràng buộc của bài toán Là các phương trình hoặc bất
phương trình tuyến tính n biến số, sinh ra từ điều kiện của bài
toán;
(4) Các hạn chế về dấu của các biến số.
Trang 21Người ta cũng thường trình bày bài toán quy hoạch
tuyến tính dưới dạng ma trận như sau:
Trang 22c là véctơ chi phí (c T là chuyển vị của c)
b là véctơ giới hạn các ràng buộc
Trang 23Quy hoạch tuyến tính dạng chính tắc
Bài toán quy hoạch tuyến tính chính tắc là bài toán quy hoạch tuyến
tính mà trong đó các ràng buộc chỉ có dấu = và các biến số đều không
Trang 24Quy tắc biến đổi
Người ta có thể biến đổi bài toán quy hoạch tuyến tính dạng tổng quát
thành bài toán quy hoạch tuyến tính dạng chính tắc nhờ quy tắc sau
đây:
1 Nếu gặp ràng buộc i có dạng ≤ thì cộng thêm vào vế trái của ràng
buộc một biến phụ x n+i ≥ 0 để được dấu =;
2 Nếu gặp ràng buộc i có dạng ≥ thì trừ vào vế trái của ràng buộc
một biến phụ x n+i ≥ 0 để được dấu =;
3 Các biến phụ chỉ là những đại lượng giúp ta biến các ràng buộc
dạng bất đẳng thức thành đẳng thức, nó phải không ảnh hưởng gì
đến hàm mục tiêu nên không xuất hiện trong hàm mục tiêu;
4 Nếu biến x j ≤ 0 thì ta đặt x j = −x j0 với x j0 ≥ 0 rồi thay vào bài toán;
5 Nếu biến x j là tùy ý thì ta đặt x j =x j0− x”
j với x j0,x0”
j ≥ 0 rồi thayvào bài toán;
6 Trong trường hợp, trong số các ràng buộc có dòng mà vế phải của
dòng đó là giá trị âm thì đổi dấu cả hai vế
Trang 25x=[x1x2 · · · x n]T là một phương án khả thi của (P) khi và chỉ khi
Ax = b và x ≥ 0;
Một phương án tối ưu của (P) là một phương án khả thi của (P)
mà giá trị của hàm mục tiêu tương ứng đạt max/min.
Trang 26Ví dụ 1.2
Ví dụ 1.2
Biến đổi bài toán quy hoạch tuyến tính sau đây về dạng chính tắc và
viết bài toán chính tắc dưới dạng ma trận:
Trang 27Giải ví dụ 1.2
Ta thêm ẩn phụ x4,x5≥ 0 vào ràng buộc thứ nhất và ràng buộc thứ ba
Thay x30 = −x3≥ 0 Thay x2=x20 − x”
2 ≥ 0, với x20,x2”≥ 0Bài toán quy hoạch tuyến tính có dạng chính tắc sau:
Trang 30Phương án x được gọi là Phương án cực biên nếu tập các cột của
A ứng với các giá trị x i>0 độc lập tuyến tính
Trang 31Đặc điểm của tập các Phương án
1 Tập các phương án của một quy hoạch tuyến tính là một tập lồi
2 Tập các phương án tối uu của một quy hoạch tuyến tính là một tập
lồi
3 Một quy hoạch tuyến tính luôn có hữu hạn các Phương án cực
biên
4 Nếu tập các phương án của một quy hoạch tuyến tính chính tắc
không rỗng thì QHTT dó có ít nhất một phương án cực biên
5 Nếu QHTT chính tắc có phương án tối uu thì có ít nhất một
phương án cực biên là phương án tối uu
6 Điều kiện cần và đủ để một QHTT có phương án tối uu là tập các
phương án không rỗng và hàm mục tiêu bị chặn
Trang 32Phương pháp hình học
Từ những kết quả trên người ta có cách giải bài toán quy hoạch tuyến
tính hai biến bằng phương pháp hình học thông qua ví dụ sau :
Xét bài toán quy hoạch tuyến tính
A, B, C, D, O là các điểm cực biên Giá trị hàm mục tiêu tại đó là:
f (A) = 18; f (B) = 22; f (C) = 18; f (D) = 8; f (O) = 0 Phương án tối ưu
của bài toán đạt được tại B: x1=4 và x2=5
Trang 34Giải thuật đơn hình cơ bản
Xét bài toán quy hoạch tuyến tính chuẩn tắc:
f (x) = z = c T x → min
(
Ax = b
x ≥ 0 Giả sử rằng sau khi hoán vị các cột trong A ta chọn được ma trận cơ
sở B thoả sự phân hoạch sau:
A = [B N]; c T = [c B c N];x T = [x B x N]Giải thuật đơn hình cơ bản được thực hiện như sau:
Trang 35Giải thuật đơn hình cơ bản:
1 Khởi tạo: ¯A0=A; ¯ b0=b
2 Thực hiện bước lặp với k = 0, 1, 2,
a) Xác định phương án cơ sở khả thi:
¯T
k =c T − c B T k A¯k;d) Nếu ¯c k T ≥ 0 (đối với bài toán min) thì giải thuật dừng, và
x k = [x B k = ¯b k x N k =0] là phương án tối ưu và
Trang 36Giải thuật đơn hình cơ bản
Giải thuật đơn hình cơ bản:
3 Cập nhật các giá trị mới:
a) Xác định chỉ số cột của pivot: ¯c s=max{|¯ c k| ∈ ¯c N}
b) Nếu ¯N s≤ 0 thì thuật toán dừng, bài toán không có phương án
Trang 38Ta thấy c1T;c2T;c3T ≤ 0 Do đó phương án x0chưa tối ưu, ta xây
dựng phương án mới tốt hơn
Trang 39Ta thấy c3T ≤ 0 (Ở ngoài cơ sở) Do đó phương án x1chưa tối ưu, ta
xây dựng phương án mới tốt hơn
Trang 40Ta thấy c j T ≥ 0 (Ở ngoài cơ sở) Do đó phương án x2tối ưu Vậy
phương án tối ưu của bài toán là x T = [2 0 1] và fmin(x) = −13
Trang 41Giải thuật đơn hình cải biên
Nếu gặp bài toán quy hoạch tuyến tính dạng chính tắc không có ma
trận cơ sở là ma trận đơn vị, người ta có thể cộng thêm vào vế trái của
các ràng buộc các biến giả để làm xuất hiện ma trận đơn vị Vì các
biến giả cải biên có ảnh hưởng đến hàm mục tiêu nên cũng sẽ có sự
cải biên hàm mục tiêu
Quan hệ giữa bài toán cải biên và bài toán xuất phát
Nếu x T = [x1 x n]là phương án tối ưu của bài toán xuất phát
khi và chỉ khi ¯x T = [x1 x n0 0] là phương án tối ưu của bài
toán cải biên;
Nếu bài toán cải biên có một phương án tối ưu mà trong dó có ít
nhất một biến giả cải biên khác 0 thì bài toán xuất phát không có
phương án tối ưu
Hai bài toán cải biên thường dùng là bài toán hai pha và bài toán M vô
Trang 42Bài toán hai pha
Pha 1: Tìm phương án tối ưu cho bài toán cải biên với hàm mục
tiêu cải biên là
z0 = (tổng các biến cải biên) → min
Pha 2: Tìm phương án tối ưu cho bài toán xuất phát với phương
án co sở xuất phát là phương án tối ưu vừa tìm được ở Pha 1 Ở
Pha 2 này, các biến giả cải biên bị loại ra khỏi các ràng buộc và
hàm mục tiêu được cập nhật lại
Trang 43Bài toán M vô cùng lớn
Bài toán M vô cùng lớn là bài toán cải biên với hàm mục tiêu cải biên
như sau:
z0 =z + M(tổng các biến cải biên) → min
z0 =z − M(tổng các biến cải biên) → max.
Trong quá trình tìm nghiệm tối ưu của bài toán cải biên ta sẽ loại dần
các biến giả cải biên ra khỏi cơ sở (tất cả đều bằng 0) Nếu quá trình
này không loại được hết các biến giả cải biên ra khỏi cơ sở thì bài toán
xuất phát không có nghiệm
Trang 44Vài trường hợp suy biến
1 Khi thực hiện thuật toán don hình, các các trường hợp bất thường
có thể xảy ra khi phương án cực biên nhận được có ít hơn m
thành phần duong Trường hợp bất thường này được gọi là trường
hợp suy biến
2 Trường hợp suy biến xảy ra khi xác định biến đưa vào là x s, tồn tại
tỷ số ¯b i/ ¯N is=0, với ¯N is<0
3 Lưu ý rằng, ngay cả phưong án cực biên x là phương án không
suy biến thì phưong án cực biên tiếp theo vẫn có thể là phưong án
suy biến Điều này xảy ra khi xác định biến đưa vào là x s, thì có từ
hai tỷ số ¯b i/ ¯N is=0 trở lên
4 Nếu không có cách khắc phục thì hiện tượng suy biến có thể làm
cho phưong pháp đon hình lặp vô hạn
Trang 45Quy tắc Bland
Với biến x s là biến đưa vào, biến đưa ra x r được chọn là biến có chỉ số
nhỏ nhất thỏa mãn điều kiện chọn biến ra:
Trang 47Bằng cách thêm vào các biến giả x4,x5lần lượt vào các ràng buộc 1
và 2 ta thu được bài toán cải biên
Trang 48Ta thấy ¯c1T; ¯c2T; ¯c3T ≤ 0 Do đó phương án x0chưa tối ưu, ta xây
dựng phương án mới tốt hơn, ta thấy | ¯c1 | lớn nhất, nên ẩn x1là ẩn
đưa vào, ẩn đưa ra là x5
Trang 51Giải ví dụ 2.3
Bằng cách thêm ẩn phụ x4≥ 0 vào ràng buộc thứ nhất, hai biến giả
x5,x6lần lượt vào các ràng buộc 2 và 3 ta thu được bài toán cải biên
Trang 52Giải ví dụ 2.3
Ta thấy ¯c T1, ¯c2T, ¯c3T ≤ 0 nên x0chưa là phương án tối ưu
Ta xây dựng phương án mới x1, với |¯c1T | lớn nhất, nên x1là ẩn đưa vào
và ẩn đưa ra khỏi cơ sở là x6
Bước lặp k = 1, ta có bảng đon hình sau:
Trang 53Giải ví dụ 2.3
Ta thấy ¯c T3 ≤ 0 nên x1chưa là phương án tối ưu
Ta xây dựng phương án mới x2, với ¯c T
3 ≤ 0 nên x3là ẩn đưa vào và ẩn
đưa ra khỏi cơ sở là x1
Bước lặp k = 2, ta có bảng đon hình sau:
Ta nhận thấy các ¯c T j trong cơ sở đều ≥ 0, nên bài toán (M) có phương
án tối ưu x T = [0 0 8 2 0 0] với ẩn giả x5=0, x6=0
Vậy phương án tối ưu của bài toán gốc x T = [0 0 8] và f (x) = 8
Trang 55Giải ví dụ 2.4
Bằng cách thêm ẩn phụ x4,x5≥ 0 vào ràng buộc thứ nhất và thứ hai,
hai biến giả x6,x7lần lượt vào các ràng buộc thứ nhất và thứ ba ta thu
được bài toán cải biên
Trang 56Giải ví dụ 2.4
Ta thấy ¯c T3 >0, nên x0chưa tối ưu, ta xây dựng phương án mới x1với
ẩn đưa vào cơ sở là x3và ẩn đưa ra là x6Bước lặp k = 1, ta có bảng
Phương án tối ưu của bài toán (M) là x = [0 ; 0 ; 6 ; 0 ; 16 ; 0 ; 13] T, với
x7=13 6= 0 nên bài toán gốc không có phuong án tối ưu
Trang 57Bài toán (D) đối ngẫu của bài toán sản xuất (P)
Với các giả thiết của bài toán (P)(6), giả sử có một người muốn mua lại
toàn bộ nguyên liệu Giá bán nguyên liệu phải là bao nhiêu để người
mua được mua với giá rẻ nhất và người bán không thiệt so với bán
thành phẩm
Gọi y ij là giá bán một đơn vị nguyên liệu thứ i (i = 1; m) Tổng số tiền
mà người mua chi ra để mua nguyên liệu là
Trang 58Bài toán (D) đối ngẫu của bài toán sản xuất (P)( 8 )
Do đó ta có bài toán: Tìm y = (y1;y2; y m)sao cho
Trang 59Đối ngẫu của bài toán chính tắc
Xét bài toán quy hoạch tuyến tính chính tắc
Để giới hạn giá trị hàm mục tiêu tối ưu, ta tìm một cận dưới của
hàm mục tiêu Để làm điều này ta thực hiện như sau:
Trang 60Đối ngẫu của bài toán chính tắc
Với mỗi x ≥ 0 chưa thỏa ràng buộc của bài toán, tức là b − Ax 6= 0, ta
xét bài toán nới lỏng
L(x, y) = c T x + y T(b − Ax) → min
x ≥ 0; y T = [y1 y m]tùy ý
Gọi g(y) là giá trị hàm mục tiêu của bài toán nới lỏng,
g(y) = min{c T x + y T(b − Ax)} ≤ c T x + y T(b − Ax).
Trong trường hợp x là phưong án của bài toán ban đầu thì b − Ax = 0
nên g(y) ≤ c T x.