CHƯƠNG 2: PHƯƠNG PHÁP ĐƠN HÌNH VÀ BÀI TOÁN ĐỐI NGẪU
2. Phương pháp đơn hình
2.1. Nội dung và cơ sở của phương pháp 2.1.1. Nội dung
Giả sử bài toán chính tắc có phương án thì phải có phương án cực biên. Xuất phát từ phương án cực biên, ta tìm một tiêu chuẩn đánh giá xem phương án cực biên đó có phải là phương án cực biên tốt nhất hay không. Nếu nó đúng là phương án cực biên tốt nhất thì thuật toán kết thúc. Ngược lại, ta tìm cách điều chỉnh sang một phương án cực biên mới tốt hơn so với phương án cực biên ban đầu. 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ẽ tìm được phương án tốt nhất hoặc kết luận bài toán không giải được vì trị số hàm mục tiêu không bị chặn trên tập phương án.
2.1.2. Cơ sở của phương pháp đơn hình Xét bài toán chính tắc:
Tìm vectơ X = xj: j = 1n thoả mãn:
aijxj = bi (i = 1, m) (1)
31
xj 0 (j = 1, n) (2) Sao cho: f (x) = Cjxj max (min) (3)
Giả sử hệ phương trình ràng buộc (1) gồm m phương trình độc lập và m n.
Không làm giảm tính tổng quát vì:
- Bằng các phép biến đổi sơ cấp ta có thể loại đi tổ hợp tuyến tính của những phương trình cùng loại sao cho hệ chỉ còn những phương trình độc lập.
- Nếu m = n thì hệ phương trình ràng buộc có một nghiệm duy nhất, do đó bài toán hoặc không có phương án hoặc chỉ có một phương án duy nhất nên việc tìm phương án tối ưu trở thành không cần thiết.
Vì hạng của A = m nên số vectơ điều kiện Aj độc lập tuyến tính cực đại là m, do đó bất kỳ phương án cực biên nào cũng tương ứng với ít nhất một hệ vectơ độc lập tuyến tính cực đại. Từ đó ta có định nghĩa cơ sở của phương án cực biên X là một hệ vectơ Ajbao hàm hệ thống các vectơ với các thành phần dương của phương án cực biên x, ký hiệu một cách qui ước cơ sở là J.
Như vậy, khi ta nói phương án cực biên x có cơ sở J thì phải hiểu J có 3 nội dung sau (các đặc trưng của một cơ sở J)
J = m, trong đó J là số phần tử của J
Aj: j J) độc lập tuyến tính.
Aj: j J) Aj: xj 0
- Phương án cực biên không suy biến chỉ có 1 cơ sở duy nhất, đó là các vectơ tương ứng với các thành phần dương.
- Phương án cực biên suy biến 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.
Ký hiệu: Xj (j J) gọi là thành phần cơ sở.
Xk (k J) gọi là thành phần phi cơ sở và Xk = 0.
Aj (j J) gọi là vectơ cơ sở.
Ak (k J) gọi là vectơ phi cơ sở.
Ta có công thức: Ak = xjk. AJ (4) Ký hiệu: Xk = xjk Xk = AJ-1.Ak
b = xj. Aj = xj. Aj + xk. Ak = xj. Aj (5)
Đây là biểu thức phân tích b qua cơ sở J hay thành phần cơ sở của phương án cực biên chính là hệ số phân tích vectơ b qua cơ sở của phương án cực biên ấy.
Ký hiệu: XJ = xj: j J
AJ = Aj: j J
32
b = XJ. AJ XJ = AJ-1.b ( vectơ hệ số phân tích b qua cơ sở J) Ta gọi: k = Cj. Xjk - Ck là ước lượng của biến Xk theo cơ sở J
Ký hiệu: CJ = Cj: j J k = (CJ, Xk ) - Ck (6)
j = 0 (j J) là ước lượng của các biến cơ sở.
Dựa vào các ước lượng này ta sẽ đánh giá được phương án cực biên X.
Các số liệu trên được thể hiện dưới 1 bảng gọi là bảng đơn hình.
2.2. Thuật toán của phương pháp đơn hình
Giả thiết bài toán đã biết 1 phương án cực biên X(0), cơ sở J0 = 1, 2,..., m
* Cách tính f0: Lấy vectơ ở cột hệ số nhân vô hướng với vectơ ở cột phương án được f0.
* Cách tính k: Lấy vectơ ở cột hệ số nhân vô hướng với vectơ hệ số phân tích ở cột k rồi trừ C.
Các bước giải bài toán qui hoạch tuyến tính bằng phương pháp đơn hình:
Bước 1: Kiểm tra dấu hiệu tối ưu của phương án cực biên tương ứng:
- Nếu k 0 (k J0) thì X(0) là phương án cực biên tốt nhất.
- Nếu dù chỉ 1k 0 thì X(0) 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 dù chỉ 1k 0 mà Xjk 0 (j J0) thì f (x) +- trên tập phương án nên bài toán không có phương án tối ưu. Thuật toán kết thúc.
- Nếu mỗi k 0 mà có tương ứng dù chỉ 1 Xjk 0 (j J0), chuyển sang bước 3.
Bước 3: Chọn vectơ đưa vào cơ sở và vectơ loại khỏi cơ sở - Cách chọn: Tìm max k = s Xs sẽ là ẩn cơ sở mới.
- Chọn ẩn bị loại khỏi cơ sở:
Lập tỉ số: với xjs 0
Chọn Min (xjs 0 ) = 0 = xr loại khỏi cơ sở.
Thành lập mẫu bảng đơn hình mới:
Trong cột cơ sở thay Xr bằng Xs. Trong cột hệ số thay Cr bằng Cs
Dòng r gọi là dòng xoay. Cột s gọi là cột xoay. Phần tử Xrs được ghi trong dấu Xrs gọi là phần tử trục xoay, chuyển sang bước 4.
Bước 4: Biến đổi bảng
- Để tính hàng vectơ đưa vào (Xs) ở bảng mới, ta lấy hàng vectơ loại ra (Xr) ở bảng cũ chia cho phần tử trục xoay (Xrs). Hàng nhận được gọi là dòng chuẩn.
33
- Biến đổi 1 dòng bất kỳ bằng cách tìm trên dòng đó phần tử thuộc cột xoay, đổi dấu phần tử đó rồi đem nhân với dòng chuẩn rồi cộng với dòng đó cũ thì ra dòng đó mới trong bảng đơn hình mới.
Kết quả nhận được một bảng đơn hình mới ứng với phương án cực biên mới. Quay trở lại bước 1
Ví dụ: Giải bằng phương pháp đơn hình bài toán qui hoạch tuyến tính sau:
3 x1 - x2 + 2 x3 7 - 2 x1 + 4 x2 + x3 12 - 4 x1 + 3 x2 + 8 x3 10 xj 0 (j = 1, 3)
f (x) = x1 - 3 x2 + 2 x3 Min LG: Qui bài toán về chính tắc:
3 x1 - x2 + 2 x3 + x4 = 7 - 2 x1 + 4 x2 + x3 + x5 = 12 - 4 x1 + 3 x2 + 8 x3 + x6 = 10 xj 0 (j = 1, 6)
f (x) = x1 - 3 x2 + 2 x3 + 0. x4 + 0. x5 + 0. x6 Min
Ta có một phương án cực biên X0 = (0, 0, 0, 7, 12, 10) với cơ sở J = (A4, A5, A6) Lập bảng đơn hình:
Hệ số Cơ sở PA 1 -3 2 0 0 0
x1 x2 x3 x4 x5 x6
0 x4 7 3 -1 2 1 0 0
0 x5 12 -2 4 1 0 1 0
0 x6 10 -4 3 8 0 0 1
f(x) 0 -1 3v -2 0 0 0
0 x4 10 5/2 0 9/4 1 1/4 0
-3 x2 3 -1/2 1 1/4 0 1/4 0
34
0 x6 1 -5/2 0 29/4 0 -3/4 1
f(x) - 9 1/2 v
0 -11/4 0 -3/4 0
1 x1 4 1 0 9/10 2/5 1/10 0
-3 x2 5 0 1 7/10 1/5 3/10 0
0 x6 11 0 0 19/2 1 -1/2 1
f(x) -11 0 0 -16/5 -1/5 -4/5 0
k 0 với k J0, do đó bài toán có phương án cực biên tối ưu X = (4, 5, 0) với fmin = -11
Thuật toán đơn hình đã trình bày có thể giải được bài toán chưa phải chính tắc nhưng sau khi đưa về bài toán chính tắc ta nhận được bài toán chuẩn và bài toán chuẩn đó đã cho ngay một phương án cực biên xuất phát.
2.3.Thuật toán mở rộng
(Thuật toán đơn hình giải bài toán tổng quát)
Thuật toán đơn hình cũ chỉ giải được bài toán chính tắc mà ta đã biết được phương án cực biên. Trong trường hợp tổng quát, bài toán chính tắc có thể không có phương án và ngay cả trường hợp nó có phương án cũng chưa có 1 phương án cực biên xuất phát, do vậy, ta phải mở rộng thuật toán đơn hình để khảo sát 1 bài toán chính tắc bất kỳ. Thuật toán đơn hình mở rộng phải chỉ ra được bài toán có phương án hay không có phương án và trong trường hợp nó có phương án phải tìm ra được phương án cực biên của bài toán chính tắc để từ đó có thể giải tiếp bài toán với phương án cực biên ấy.
Luôn giả thiết rằng bi 0 (i = 1n) vì có một bi nào đó âm thì chỉ cần nhân 2 vế của phương trình với (-1)
Xét bài toán chính tắc:
Tìm vectơ X = xj: j = 1n thoả mãn:
aijxj = bi (i = 1, m) xj 0 (j = 1, n) Sao cho: f (x) = Cjxj min
35
Xây dựng bài toán phụ có dạng sau:
aijxj + xig = bi (i = 1, m) xj 0 ; xig 0 (j = 1, n)
Hàm mục tiêu P(x, xg) = xig Min xig : gọi là ẩn giả thứ i.
Ta nhận thấy, bài toán phụ là một bài toán dạng chuẩn và luôn giải được vì hàm mục tiêu bị chặn dưới. Do đó, bắt đầu từ việc giải bài toán phụ bằng phương pháp đơn hình, và sau một số hữu hạn bước sẽ tìm được phương án cực biên. Khi đó, chỉ có thể xảy ra 2 trường hợp sau:
- TH1: Nếu Pmin 0 thì bài toán xuất phát không có phương án.
- TH2: Nếu Pmin = 0 thì bài toán chính tắc có phương án và có 2 khả năng xảy ra:
+ Nếu trong cơ sở tối ưu của phương án cực biên không có các vectơ ứng với các ẩn giả xig, nào, đưa f(x) vào và tính cho đến kết thúc. Vì bảng đơn hình cuối cùng của bài toán phụ chính là phương án cực biên của bài toán chính tắc.
+ Nếu trong cơ sở tối ưu tồn tại một ẩn giả xig nào đó và giá trị của nó ở cột phương án bằng 0, khi đó xoá mọi cột xj mà j 0 và đưa hàm f(x) vào giải tiếp.
Chú ý:
- Khi xây dựng bài toán phụ, chỉ cộng biến giả vào những phương trình cần thiết nhằm để 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.
- Đối với bài toán có f(x) Max thì chuyển bài toán về: g(x) = - f(x) Min Khi đó: fmax = - gmin
- Đối với bài toán phụ thì hệ số xj bằng 0
Ví dụ: Giải bài toán sau bằng phương pháp đơn hình:
2 x1 + 2 x2 + x4 = 28 x1 + 5 x2 + 3 x3 - 2 x4 31 2 x1 - 2 x2 + 2 x3 + x4 = 16 xj 0 (j = 1, 4)
f (x) = 3 x1 + 4 x2 + 2 x3 + 2 x4 Min Giải: Đưa bài toán về dạng chính tắc:
2 x1 + 2 x2 + x4 = 28 x1 + 5 x2 + 3 x3 - 2 x4 + x5 = 31 2 x1 - 2 x2 + 2 x3 + x4 = 16
36
xj 0 (j = 1, 5)
f (x) = 3 x1 + 4 x2 + 2 x3 + 2 x4 + 0. x5 Min
Ta thấy bài toán chính tắc không phải dạng chuẩn nên thành lập bài toán phụ:
2 x1 + 2 x2 + x4 + x1g = 28 x1 + 5 x2 + 3 x3 - 2 x4 + x5 = 31 2 x1 - 2 x2 + 2 x3 + x4 + x3g = 16 xj 0 (j = 1, 5); x1g, x3g 0
P (x, xg) = x1g + x3g Min Lập bảng đơn hình giải bài toán phụ như sau:
Hệ số Cơ sở PA 3 4 2 2 0 1 1
x1 x2 x3 x4 x5 x1g x3g
1 x1g 28 2 2 0 1 0 1 0
0 x5 31 1 5 3 -2 1 0 0
1 x3g 16 2 -2 2 1 0 0 1
P 44 4 0 2 2 0 0 0
1 x1g 12 0 4 -2 0 0 1
0 x5 23 0 6 2 -5/2 1 0
0 x1 8 1 -1 1 1/2 0 0
P 12 0 4 -2 0 0 0
4 x2 3 0 1 -1/2 0 0
0 x5 5 0 0 5 -5/2 1
3 x1 11 1 0 1/2 1/2 0
f(x) 45 0 0 -5/2 -1/2 0
k 0 với k J0, bài toán có phương án cực biên tối ưu X = (11, 3, 0, 0, 5) và fmin = 45