Ta được phương án tối ưu . Xong pha 1 . Chuyển sang pha 2.
Pha 2
Loại bỏ biến giả cải biên x6 0
Khởi tạo
Bước lặp k=0
|
|
x1 |
x2 |
x3 |
x4 |
x5 |
|
0 |
4 |
|
|
0 |
1 |
|
|
1 |
3 |
|
|
1 |
0 |
|
|
cT |
3 |
4 |
1 |
0 |
0 |
z(x0) |
|
|
|
0 |
0 |
|
|
Bước lặp k=1
|
|
x1 |
x2 |
x3 |
x4 |
x5 |
|
0 |
4 |
0 |
0 |
-1 |
1 |
1 |
|
4 |
2 |
|
1 |
|
0 |
|
|
cT |
3 |
4 |
1 |
0 |
0 |
z(x1) |
|
1 |
0 |
-5 |
0 |
2 |
|
Bước lặp k=2
|
|
x1 |
x2 |
x3 |
x4 |
x5 |
|
0 |
5 |
0 |
0 |
-1 |
1 |
1 |
|
4 |
2 |
|
1 |
1 |
|
0 |
|
cT |
3 |
4 |
1 |
0 |
0 |
z(x2) |
|
1 |
0 |
-3 |
-2 |
0 |
|
Bước lặp k=3
|
|
x1 |
x2 |
x3 |
x4 |
x5 |
|
0 |
5 |
0 |
0 |
-1 |
1 |
1 |
|
3 |
1 |
1 |
2 |
2 |
1 |
0 |
|
cT |
3 |
4 |
1 |
0 |
0 |
z(x3) |
|
0 |
-2 |
-5 |
-2 |
0 |
8 |
Kết quả của bài toán đã cho :
. Phương án tối ưu
. Giá trị hàm mục tiêu z(x)=z(x3)= 8
Phương pháp m vô cùng lớn
Phương pháp M vô cùng lớn ( M là số vô cùng lớn ) tương tự như phương pháp hai pha, ngoại trừ ở pha 1 hàm mục tiêu cải biên có dạng sau đây cho bài toán max/min
max [z(x) - M*( tổng các biến giả cải biên) ]
min [z(x) + M*( tổng các biến giả cải biên) ]
Bằng phương pháp này, trong quá trình tối ưu, các biến giả cải biên sẽ được loại dần ra khỏi ma trận cơ sở : tất cả đều bằng 0. Nếu trong quá trình tìm phương án tối ưu mà không loại bỏ được các biến giả cải biên ra khỏi cơ sở thì bài toán vô nghiệm.
So với phương pháp hai pha thì phương pháp này tránh được việc phải cập nhật lại dữ liệu cho bài toán gốc nhưng không tiện lợi bằng trong lập trình ứng dụng.
Ví dụ : Xét bài toán tương tự như trên
Thêm biến giả cải biên x6 0 vào ràng buộc thứ hai đồng thời cải biên hàm mục tiêu theo như trên ta được :
Tìm phương án tối ưu cho bài toán cải biên này bằng phương pháp đơn hình cải tiến
Khởi tạo
Bước lặp k=0
|
|
|
|
|
|
|
|
|
0 |
4 |
1 |
2 |
2 |
1 |
0 |
0 |
|
-M |
6 |
1 |
2 |
3 |
0 |
-1 |
1 |
|
cT |
3 |
4 |
1 |
0 |
0 |
-M |
w(x0) |
|
3+M |
4+2M |
1+3M |
0 |
-M |
0 |
|
Bước lặp k= 1
|
|
|
|
|
|
|
|
|
0 |
4 |
|
|
0 |
1 |
|
|
|
1 |
3 |
|
|
1 |
0 |
|
|
|
cT |
3 |
4 |
1 |
0 |
0 |
-M |
w(x1) |
|
|
|
0 |
0 |
|
|
|
Do x6 = 0 (vì ngoài cơ sở) nên bị loại ra khỏi bảng và ta tiếp tục tìm phương án tối ưu cho bài toán gốc đã cho có phương án cơ sở khả thi được khởi tạo như sau :
|
|
|
|
|
|
|
|
0 |
4 |
|
|
0 |
1 |
|
|
1 |
3 |
|
|
1 |
0 |
|
|
cT |
3 |
4 |
1 |
0 |
0 |
z(x0) |
|
|
|
0 |
0 |
|
|
Các bước tiếp theo được thực hiện giống như phương pháp hai pha.
Quy hoạch tuyến tính suy biến
Khi thực hiện thuật toán đơn hình trường hợp bất thường có thể xảy ra là khi xác định biến ra thì tồn tại tỷ số
, tức là tồn tại bi=0, hay không có tỷ số nào dương thật sự. Người ta xem đây là trường hợp suy biến. Khi một bảng đơn hình rơi vào tình trạng suy biến thì có thể gây khó khăn mà cũng có thể không khi ta tiếp tục thực hiện thuật toán đơn hình.
Các ví dụ về quy hoạch tuyến tính suy biến
Ví dụ 1 : xét quy hoạch tuyến tính :
Đưa bài toán về dạng chuẩn :
với ma trận hệ số là :
x1 |
x2 |
x3 |
x4 |
x5 |
|
b |
1 |
-2 |
1 |
0 |
0 |
|
2 |
-3 |
0 |
0 |
1 |
0 |
|
6 |
-2 |
0 |
0 |
0 |
1 |
|
0 |
có chứa ma trận đơn vị. Áp dụng thuật toán đơn hình cải tiến ta được :
cB |
iB |
x1 |
x2 |
x3 |
x4 |
x5 |
b |
0 |
3 |
1 |
-2 |
1 |
0 |
0 |
2 |
0 |
4 |
-3 |
0 |
0 |
1 |
0 |
6 |
0 |
5 |
-2 |
0 |
0 |
0 |
1 |
0 |
|
1 |
-1 |
0 |
0 |
0 |
|
1 |
-1 |
0 |
0 |
0 |
w=7 |