“Tương đương” ở đây có nghĩa là giá trị của hàm mục tiêu trong hai bài toán là như nhau và một PA của BT này cũng là PA của BT kia.● Cách đưa bài toán tổng quát về dạng chính tắc - Nếu
Trang 1TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CÔNG NGHIỆP
Khoa: KHOA HỌC CƠ BẢN
BÀI GIẢNG
GV: ThS HÀ ANH DŨNG
Trang 2Chương I: BÀI TOÁN QUY HOẠCH TUYẾN TÍNH
Trang 3CHƯƠNG I:
I.Khái niệm về BT QHTT
1.Các ví dụ dẫn đến BT QHTT
Ví dụ 1: Bài toán lập kế hoạch sản xuất
Giả sử xí nghiệp X cần lập kế hoạch sản xuất giấy Nguyên liệu chính để sản xuất giấy là bột gỗ và chất hồ keo Xí nghiệp có thể sản xuất ba loại giấy A, B, C Mức tiêu hao nguyên liệu để sản xuất ra 1 tấn giấy A, B, C
và giá bán một tấn mỗi loại được cho trong bảng sau: ( được gọi là Bảng
hệ số kỹ thuật )
Nguyên liệu Hiện có A B C
Bột gỗ (tấn) 5500 tấn 1.5 1.8 1.6 Chất hồ keo (kg) 6800 kg 2.0 3.0 2.4
Trang 4Bài toán được đặt ra là với nguyên vật liệu hiện có như trên thì Xí nghiệp cần phải sản xuất bao nhiêu tấn giấy mỗi loại để số tiền thu được
là tối đa Gọi x1, x2, x3 là số tấn giấy A, B, C cần sản xuất ( x1, x2, x3≥0 )
Ta có bài toán sau: tìm x1, x2, x3 sao cho:
f(x) = 27x1 + 36x2 + 30x3 → max 1.5x1 + 1.8x2 + 1.6x3 ≤ 5500 2x1 + 3x2 + 2.4x3 ≤ 6800
x1, x2, x3 ≥ 0
Ví dụ 2: Bài toán dinh dưỡng
Mỗi người chúng ta mỗi ngày, để có thể sinh hoạt và hoạt động bình thường, cần tiêu thụ ít nhất 60g protit, 50g lipid và 220g glucid Các thành phần dinh dưỡng này có trong 1g cá và 1g thịt như trong bảng dưới đây Biết rằng giá 1g cá và 1g thịt là 50 và 90 VNĐ Vậy mỗi ngày ta cần mua bao nhiêu gam thịt, cá sao cho số tiền phải chi là ít nhất nhưng vẫn đảm bảo lượng dinh dưỡng cần thiết Gọi x1 và x2 là số gam cá thịt cần mua trong ngày ( x1, x2 ≥ 0) Ta cần giải bài toán sau: tìm x1, x2 sao cho:
Trang 5Chất dinh dưỡng Cá Thịt Protit (gam) 0.2 0.3 Lipid (gam) 0.1 0.1 Glucid (gam) 0.6 0.5
f(x) = 50x1 + 90x2 → min 0.2x1 + 0.3x2 ≥ 60 0.1x1 + 0.1x2 ≥ 50 0.6x1 + 0.5x2 ≥ 220
x1, x2 ≥ 0
Từ các ví dụ trên đây ta thành lập Bài toán quy hoạch tuyến tính (BT QHTT) tổng quát
Trang 7■ Một số khái niệm cơ bản:
của bài toán gọi là một PA
Ràng buộc có dấu “=” được gọi là ràng buộc “chặt”; ràng buộc có dấu
“≤” hoặc “≥” là ràng buộc “lỏng”
Phương án tối ưu (PATƯ ): Một PA mà tại đó giá trị hàm mục tiêu đạt
giá trị nhỏ nhất (min) hoặc lớn nhất (max) được gọi là PATƯ
b x
a
(max) min
x c x
f
i
n
1 j
j ij
n
1 j
j j
BT QHTT dạng chính tắc là bài toán có các ràng buộc chung là chặt,
còn các ràng buộc về dấu là không âm
Trang 8Mọi BT QHTT tổng quát đều có thể đưa về bài toán dạng chính tắc tương đương “Tương đương” ở đây có nghĩa là giá trị của hàm mục tiêu trong hai bài toán là như nhau và một PA của BT này cũng là PA của BT kia.
● Cách đưa bài toán tổng quát về dạng chính tắc
- Nếu một ràng buộc có dấu “≤” thì ta cộng vào vế trái một biến phụ
không âm xn+i để được ràng buộc chặt
- Nếu một ràng buộc có dấu “≥” thì ta trừ đi vế trái một biến phụ không
âm xn+i để được ràng buộc chặt
- Các biến phụ không tham gia trong hàm mục tiêu
- Nếu biến xj ≤ 0 thì đổi biến xj’= − xj ≥ 0
- Nếu xj có dấu tùy ý thì đặt xj = xj’− xj’’, với xj’, xj’’≥ 0
Trang 9Ví dụ: Đưa bài toán sau về dạng chính tắc:
Trang 10Các biến cơ sở là x1, x2,…xm Biến không phải là cơ sở được gọi là phi
cơ sở (biến tự do)
Trang 11
Nghiệm riêng cơ bản (cơ sở) là nghiệm riêng của hệ phương trình
tuyến tính khi ta cho các biến phi cơ sở (tự do) bằng 0
Phương án cực biên (PACB) của BT QHTT là nghiệm riêng cơ bản
của hệ các ràng buộc chung và thỏa mãn các ràng buộc về dấu Ở dạng chuẩn ta có PACB là X0 = ( b1, b2,….,bm, 0, 0,….,0 )
Trang 12Giả sử cần chọn xv là biến cơ sở của hàng thứ r ta chọn phần tử arv là
Phần tử trục Đánh dấu phần tử trục bằng dấu [ ] Lưu ý phần tử trục
phải khác 0 Hàng chứa phần tử trục được gọi là Hàng xoay, cột chứa phần tử trục được gọi là Cột xoay.
Phép khử G-J gồm 3 bước sau đây:
- Chia hàng xoay cho arv ,
- Cho các phần tử khác trên cột xoay bằng 0 ,
- Các phần tử không thuộc hàng xoay và cột xoay được tính lại theo qui tắc hình chữ nhật như sau:
Trang 13aiv aij
Thực chất, phép khử trên chính là phép biến đổi sơ cấp: lấy hàng i trừ
đi k lần hàng r, trong đó k = a / a , nên phép khử Gauss-Jordan là
Trang 15Định lý 1: Số PACB của BT QHTT dạng chính tắc là hữu hạn và
trong đó m là số phương trình độc lập tuyến tính và cũng chính là hạng
của hệ ràng buộc chung
,
m n
C
Định lý 2: Số thành phần dương của 1 PACB không vượt quá m (vì có
thể có biến cơ sở bằng 0 ) Nếu số thành phần dương đúng bằng m thì PACB đó là không suy biến, nếu số thành phần dương nhỏ hơn m thì PACB đó là suy biến.
Định lý 3: Một PA là PACB nếu các véc tơ cột ứng với các thành phần
khác không là độc lập tuyến tính
Định lý 4: BT QHTT dạng tổng quát nếu có PA và hạng của hệ các
ràng buộc (kể cả ràng buộc về dấu) là n thì sẽ có PACB (Giao điểm của
n mặt siêu phẳng biên)
Hệ quả: BT QHTT dạng chính tắc nếu có PA thì sẽ có PACB (các ràng
Trang 16Định lý 5: BT QHTT có PATƯ khi và chỉ khi nó có PA và hàm mục
tiêu bị chặn dưới với bài toán tìm min ( chặn trên với bài toán tìm max )
II PHƯƠNG PHÁP ĐƠN HÌNH
Hệ quả 3: PATƯ chỉ có thể là các điểm cực biên (PACB), cạnh biên
hoặc một phần của siêu phẳng biên
Trang 173 Trường hợp BT QHTT có dạng chuẩn
a Bài toán tìm f min
Thuật toán dưới đây áp dụng cho bài toán QHTT ở dạng chuẩn, tức là mỗi phương trình có một biến cơ sở, không mất tính tổng quát ta giả
thiết các biến cơ sở đó là: { x1, x2,…, xm } và PACB xuất phát là X0 =
(b1, b2, …,bm ,0,0, ,0) Thuật toán giải BT QHTT fmin gồm các bước sau:
Bước 1: Lập bảng đơn hình xuất phát:
2 Ý tưởng của phương pháp đơn hình
Nội dung của phương pháp đơn hình là tìm PATƯ ở các PACB (xem Hệ
quả 3 ở trên) Cụ thể là xuất phát từ một PACB, đánh giá xem PACB đó tối ưu chưa, nếu chưa phải là PATƯ thì ta tìm PACB tốt hơn (có giá trị hàm mục tiêu tốt hơn), cứ như vậy tới khi tìm được PATƯ, hoặc sẽ kết luận được rằng không tồn tại PATƯ Vì số PACB là hữu hạn nên số
bước thực hiện cũng hữu hạn
Trang 18Hàng dưới cùng được gọi là hàng đặc trưng, trong đó:
là giá trị của hàm mục tiêu ứng với PACB
Trang 19Bước 2: Kiểm tra dấu hiệu tối ưu:
+ Nếu ∆k ≤ 0 thì X0 là PATƯ và fmin = Δ0 Thuật toán kết thúc.
+ Nếu ∆ k > 0 mà aik ≤ 0 thì bài toán không có PATƯ
+ Nếu với mỗi ∆k > 0 đều có ít nhất một aik > 0 thì chuyển sang bước 3.
Bước 3: Cải tiến PACB:
- Ta sẽ đưa một biến mới vào cơ sở, đồng thời sẽ loại một biến ra khỏi
cơ sở để được PACB mới tốt hơn với giá trị của hàm mục tiêu nhỏ hơn
- Để cải thiện nhiều nhất ta sẽ chọn biến có ước lượng dương lớn nhất
để đưa vào cơ sở Giả sử ∆v > 0 lớn nhất thì xv sẽ được đưa vào cơ sở
- Trên cột v ta sẽ chọn phần tử trục (giả sử là arv) theo hai điều kiện sau:
arv > 0 và tỷ số (br / arv) là nhỏ nhất Ta đánh dấu phần tử trục arv bằng dấu [ ] Cột v sẽ là cột xoay, còn hàng r là hàng xoay
- Thực hiện phép khử G – J với phần tử trục arv ta được bảng đơn hình mới Trên hàng xoay ta có biến cơ sở mới là xv, biến cơ sở cũ trên hàng xoay bị loại ra khỏi cơ sở (các biến cơ sở khác giữ nguyên) thay xv vào
vị trí ở cột thứ nhất, và c vào vị trí ở cột thứ hai Sau đó trở lại bước 2
Trang 20
- Các giá trị trên hàng đặc trưng cũng được tính lại theo qui tắc hình chữ nhật
Lưu ý:
- Nếu mọi ước lượng của các biến phi cơ sở < 0 thì PATƯ là duy nhất
- Nếu Δk = 0 với k không thuộc cơ sở thì PATƯ không phải là duy nhất, vì nếu ta chọn cột k là cột xoay thì các giá trị trên hàng đặc trưng vẫn giữ nguyên (xem lại lưu ý 2 ở trang 9) Như vậy biến xk có thể được đưa vào cơ sở và ta được PATƯ mới
Trang 21Trước tiên ta đư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ó:
Trang 230 0
0 1
–1
Trang 240 0
1 0
Trang 25Ở bảng cuối ta thấy PATƯ X1 không phải là duy nhất vì 6 = 0 nên
ta có thể đưa x6 vào cơ sở
Trang 26Ta có PATƯ khác là X2 = (0,0,14,0,16) Từ đó ta có vô số PATƯ:
X = α.X1 + (1 – α).X2 = α.(0,0,16,4,40,0) + (1 – α).(0,0,14,8,0,16)
= (0,0,14+2α,8-4α,40α,16-16α) Với α[0,1]
Chú ý:
Nếu bài toán QHTT không phải ở dạng chuẩn, nhưng cho trước PACB
X0 thì ta dùng phép khử Gauss-Jordan để tạo ra các biến cơ sở ứng với các thành phần dương của X0 Sau một số phép biến đổi ta sẽ có bài toán dạng chuẩn
Trang 27Ví dụ 2: Cho bài toá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 290 2 8 7
4
2 0
1 5 1
1 2
8 0
0 1
3 2
0 2 8
7 4
2 0
1 5 1
1 2
8 0
0 1 3 2
0 2 4
1 0
18 0
1 3 5
5 0
8 0
0 1 3 2
1
Ở ma trận cuối cùng ta có bài toán dạng chuẩn và
điền vào bảng đơn hình xuất phát:
Trang 31b Bài toán tìm f max
Thuật toán tương tự như bài toán tìm fmin , có một số điểm khác là:
Ở bước 2 để có PATƯ thì Δk ≥ 0
Ở bước 3 để chọn biến cơ sở mới ta chọn Δk có giá trị âm nhỏ nhất
Hoặc ta có thể chuyển từ bài toán tìm max thành bài toán tìm min bằng cách đặt:
g(x) = - f(x) và ta có:
fmax = - gmin
Trang 32
- Dùng phương pháp đơn hình để giải bài toán (Pm), ta có các trường hợp xảy ra:
4 Trường hợp bài toán không phải dạng chuẩn
- Trước hết ta chuyển về bài toán dạng chính tắc với mọi bi ≥ 0
- Ràng buộc nào chưa có biến cơ sở thì ta cộng thêm một biến giả vào
vế trái Chúng ta phân biệt sự khác nhau giữa biến phụ và biến giả Biến giả không âm và có hệ số là M ở bài toán min và –M ở bài toán max, trong đó M là một vô cùng lớn dương
- Ký hiệu bài toán ban đầu là bài toán (G), bài toán dạng chuẩn với các biến giả là bài toán (Pm) được gọi là bài toán mở rộng
a) Trường hợp (Pm) không có PATƯ thì (P) cũng không có PATƯ
Trang 33Bài toán ban đầu (G):
x
) m 1, (i
b x
a
(max) min
x c x
f
j
i n
1
j
j ij
n
1 j
j j
b) Trường hợp (Pm) có PATƯ :
- Nếu tất cả các biến giả trong PATƯ của (Pm) đều bằng 0 thì (P) có
PATƯ chính là PATƯ của (Pm) mà loại đi các thành phần tương ứng với các biến giả
- Nếu trong PATƯ của (Pm) có các biến giả khác 0 thì (P) không có PA,
n i
M x x
Trang 34Ví dụ 3: Giải bài toán sau bằng phương pháp đơn hình:
f(x) = 3x1 + 4x2 + 2x3 + 2x4 min 2x1 + 2x2 + x4 = 28
Ta thấy bài toán không phải là dạng chuẩn Ở ràng buộc thứ nhất và thứ
ba chưa có biến cơ sở ta thêm vào các biến giả x6 và x7 Ta được bài toán
mở rộng:
Trang 35Ta có dạng chuẩn xuất phát, dùng phương pháp đơn hình
để giải bài toán mở rộng:
Trang 364 -3
0 -4
2 -2
2 -2
0 0
0 0
0 0
0 0
4 -7
-2 1
0
-1/2
0 0
0 0
Trang 370 0
0 0
0 –5/2
0 –1/2
0 0
Ở bảng cuối ta có mọi ước lượng đều ≤ 0 Thuật toán kết Thúc với
fmin = 45 và PATƯ là X = ( 11, 3, 0, 0, 5 )
Trang 38- Khi tất cả các ước lượng trên hàng hệ số M bằng 0 thì ta gạch hàng
đó đi và như vậy ta trở lại bài toán (G) với dạng chuẩn xuất phát
Lưu ý khi giải bài toán mở rộng:
- Nếu một biến giả bị loại khỏi cơ sở thì ta không quan tâm tới biến đó nữa, có nghĩa là không tính giá trị của các phần tử trên cột đó
- Khi xét dấu của các ước lượng ta quan tâm tới hàng ước lượng với hệ
Ở đây ta có ∆0 = 5M – 9, ∆1 = – M + 7 < 0, ∆2 = 3 > 0, ∆3 = –2M – 5 < 0,
∆ = 4 > 0
Trang 41PA
M
M
x3 4
x4 1
x5 0
x6 0
x7 x8– M – M
Trang 43IV Bài toán QHTT đối ngẫu
1 Khái niệm về bài toán đối ngẫu
Ví dụ: Bài toán mặc cả mua bán
Ta quay lại bài toán lập kế hoạch sản xuất của xí nghiệp giấy Mứctiêu hao nguyên liệu để sản xuất ra 1 tấn giấy A,B,C và giá thànhmột tấn mỗi loại được cho trong bảng sau:
Trang 44Gọi x1, x2, x3 là số tấn giấy A, B, C cần sản xuất Ta có bài toán:
5500y1 + 6800y2 → min
Đối với người bán, giá bán nguyên vật liệu cho 1 tấn giấy phảikhông ít hơn giá 1 tấn giấy thành phẩm có nghĩa là:
Trang 45Như vậy để thuận mua vừa bán ta giải bài toán sau:
1.5y1 + 2y2 ≥ 271.8y1 + 3y2 ≥ 361.6y1 + 2.4y2 ≥ 30
2 Quy tắc thành lập bài toán đối ngẫu:
- Nếu ở bài toán gốc f(x) → min thì ở bài toán đối ngẫu ta có:
f y m và ngược lại
- Số ràng buộc chung (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
chung 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
Trang 46Lượ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
0 0
1
m
i i i
Trang 47Ví dụ 1: 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 , x4 ≤ 0, x2 tuỳ ý
Trang 48Bài toán đối ngẫu:
= –15y1 + 8y2 + 9y3 + 24y4 max
3y1 − 2y2 + 3y4 –4
−6y1 + 3y2 − 6y3 + 2y4 = 1
− y1 + 4y2 + 3y3 5
2y1 − 5y2 + 8y3 – 3y4 ≥ 0 4y1 + y2 − 4y3 + y4 3
Trang 49Ví dụ 2: Viết bài toán đối ngẫu của bài toán sau:
Ta có bài toán đối ngẫu:
(y) = 35y1 + 30y2 +50y3 min
3y1 + 2y2 + 5y3 ≥ 14
5y1 + 3y2 + 2y3 ≤ 12
4y1 + 6y2 + 3y3 = 17
y 1 ≥ 0, y2 tuỳ ý, y3 ≤ 0
Trang 50Lưu ý: Nếu BT gốc ở dạng chính tắc thì BT đối ngẫu có dạng :
Bài toán gốc Bài toán đối ngẫu
Trang 51Lưu ý: Nếu BT gốc ở dạng chính tắc thì BT đối ngẫu có dạng :
f
1
n
j j j
= bi yi tùy ý, với i = 1,
m
x ≥ 0 ≤ c với j = 1, n
Trang 523 Các định lý đối ngẫu
Trong các định lý dưới đây ta giả thiết bài toán gốc là f(x) → min
Định lý 1: Nếu X và Y là 2 PA bất kỳ của cặp bài toán đối ngẫu thì ta
luôn có f(x) ≥ (y) Dấu bằng xảy ra khi và chỉ khi X và Y là các
PATƯ, có nghĩa là f(X)min = (Y)max
Định lý 2: Nếu bài toán này có PATƯ thì bài toán kia cũng có PATƯ
và ngược lại nếu bài toán này không có PATƯ thì bài toán kia cũng không có PATƯ
Định lý 3: Điều kiện cần và đủ để X0 và Y0 là các PATƯ khi và chỉ khi X0 và Y0là các PA và thoả mãn:
Có nghĩa là trong cặp ràng buộc đối ngẫu, nếu ràng buộc này lỏng
thì ràng buộc kia phải chặt
Trang 534 Thuật toán của phương pháp đơn hình đối ngẫu:
- Thực hiện phép khử Gauss-Jordan với phần tử trục arv sau đó quay
lại bước 2.
Bước 1: Đưa bài toán về dạng chính tắc sau đó dùng phép biến đổi G –
J để tạo ra mỗi dòng một biến cơ sở Sau đó lập bảng đơn hình xuất phát
Bước 2:
- Nếu bi ≥ 0 thì ta có bài toán dạng chuẩn xuất phát
- Nếu tồn tại bi < 0 thì ta có giả PACB xuất phát và chuyển sang bước 3.
br
- Nếu trên hàng chứa br ta có arj ≥ 0 thì bài toán không có PA
- Nếu tồn tại arj < 0 thì ta chọn phần tử trục là phần tử arj < 0 với tỷ số
Δj / arj có giá trị tuyệt đối nhỏ nhất Giả sử đó là arv
Trang 54Ví dụ 1: Giải BT QHTT sau bằng phương pháp đơn hình đối
Trang 55Đưa bài toán về dạng chính tắc:
f(x) = x1 + 3x2 + 2x3 + 3x4 + 5x5 min
x1 + 2x2 − x3 + x4 − x5 = −3
− x2 − x3 + 2x4 + 4x5 − x6 = 18
− x2 − 3x3 + 2x5 + x7 = 10
x Đổi dấu hai vế ràng buộc thứ 2 ta có giả PACB xuất phát : j ≥ 0 (j = 1…7)
X = (-3, 0, 0, 0, 0, −18, 10) với các biến cơ sở là {x1, x6, x7} Lập bảng đơn hình tương ứng:
Trang 58Áp dụng định lý đối ngẫu 3 ta có thể xác định PATƯ của
bài toán đối ngẫu dựa vào PATƯ của bài toán gốc Ứng với mỗi thành phần dương xj ta có phương trình:
c y
m
1 i