Phương pháp đơn hình (Simplex method) (6) – Khởi tạo thuật toán đơn hình, thuật toán hai pha
Đăng bởi tqlong on Tháng Hai 27, 2008
Trong các bài trước, ta luôn bắt đầu thuật toán với câu “Xuất phát từ một nghiệm cơ sở chấp nhận được…”, vậy làm thế nào để xây dựng nghiệm cơ sở này? Trong bài này ta sẽ xem xét các phương pháp để khởi tạo thuật toán đơn hình.
Khởi tạo bài toán QHTT ở dạng tổng quát: Như đã thấy ở các ví dụ trước, bài toán QHTT dạng tổng quát
có thể biến thành bài toán QHTT ở dạng chuẩn tắc
với ,
,
. Nghĩa là ta thay
và thêm vào các biến bù
để biến bất đẳng thức thành đẳng thức. Ở dạng này, một nghiệm cơ sở chấp nhận được hiển nhiên là
(chính các biến bù tạo nên hệ cơ sở ban đầu) và ma trận cơ sở ban đầu chính là
(
cột cuối cùng của
).
Để ý rằng ta chỉ chọn được nghiệm cơ sở chấp nhận được như trên nếu . May mắn là nếu
ta có thể nhân ràng buộc
với
mà vẫn giữ nguyên tập nghiệm của bài toán QHTT. Vì thế không mất tính tổng quát, ta luôn có thể giả sử
.
Khởi tạo bài toán QHTT ở dạng chuẩn tắc: Nếu bài toán có dạng chuẩn tắc
.
thì ta cũng thêm vào các biến bù như trên nhưng thay đổi hàm mục tiêu đi, bài toán trở thành
với . Tức là hàm mục tiêu là tổng các thành phần trong véctơ
. Dễ thấy nghiệm cơ sở chấp nhận được ban đầu của bài toán
là
và ma trận cơ sở ban đầu chính là
. Ta có thể áp dụng thuật toán đơn hình để tìm giá trị tối ưu của
. Có 2 trường hợp có thể xảy ra:
- Nếu giá trị tối ưu của
dương thì bài toán ban đầu không thể có nghiệm chấp nhận được (bài toán không thỏa được, tập nghiệm rỗng).
- Nếu giá trị tối ưu của
bằng
thì ta sẽ dùng nghiệm tối ưu của bài toán này để khởi tạo nghiệm ban đầu của bài toán gốc.
Khởi tạo nghiệm cơ sở chấp nhận được của từ nghiệm tối ưu của
: Dễ thấy, khi giá trị tối ưu của
bằng
thì
. Tức là nghiệm tối ưu của
có dạng
.
Nếu tất cả biến cơ sở đều nằm trong
thì rõ ràng, các biến này cũng tạo nên biến cơ sở của
vì
- Các cột tương ứng của
độc lập tuyến tính, dẫn đến ma trận
khả nghịch.
- Các biến không phải biến cơ sở đều bằng
.
Vấn đề ở chỗ một số biến trong vẫn có thể là biến cơ sở. Ta sẽ tìm cách loạt bỏ các biến này và thay bằng các biến trong
. Xét
sao cho
(tức là biến cơ sở tương ứng nằm trong
), ta sẽ tìm cách loại
ra khỏi hệ cơ sở và thay bằng
nào đó với
.
Véc tơ này phải độc lập tuyến tính với
. Tức là ma trận
khả nghịch. Ta đã biết ở bài trước, để khả nghịch thì
khả nghịch, tức là véc tơ
(cột thứ
trong bảng đơn hình) phải có
(hàng thứ
). Như vậy, ta chỉ cần tìm chỉ số
sao cho vị trí
trên bảng đơn hình khác
. Sau đó ta thay đổi hệ cơ sở
bằng cách làm các thao tác biến đổi dòng
sao cho cột
. Để ý là biến cơ sở
nên các biến đổi dòng này không làm thay đổi các biến cơ sở khác, tức là nghiệm cơ sở chấp nhận được vẫn không thay đổi, ta chỉ thay đổi hệ cơ sở mà thôi (Lưu ý: như vậy, ta có nghiệm cơ sở suy biến).
Trường hợp không tìm được chỉ số như vậy thì sao? Tức là toàn bộ dòng thứ
của bảng bằng
. Khi đó rõ ràng
với
là dòng thứ
của
. Có nghĩa là dòng thứ
của
phụ thuộc tuyến tính vào các dòng khác, như vậy ta có thể loại bỏ ràng buộc này ra (đồng thời cũng loại bỏ luôn biến bù tương ứng) mà không làm thay đổi tập nghiệm của bài toán gốc.
Tổng kết lại, ta có thuật toán đơn hình hai pha như sau:
Pha 1: Tìm nghiệm tối ưu của bài toán
với nghiệm cơ sở chấp nhận được ban đầu .
- Nếu giá trị tối ưu của
dương, dừng và kết luận bài toán gốc không thỏa được.
- Nếu giá trị tối ưu của
bằng
, với mỗi chỉ số
nằm trong bộ chỉ số cơ sở (nghĩa là biến cơ sở này nằm trong
), tìm chỉ số
sao cho vị trí
trong bảng đơn hình khác 0.
- Nếu không tồn tại
như vậy (toàn bộ dòng
bằng 0) thì loại bỏ ràng buộc thứ
và biến cơ sở
khỏi bộ chỉ số cơ sở.
- Nếu tìm được
như vậy, dùng các phép biến đổi dòng để biến cột này thành cột toàn
và chỉ có duy nhất một số
ở hàng
. Thay
.
- Lặp lại với tất cả các chỉ số
.
- Nếu không tồn tại
Pha 2: Quay lại giải bài toán gốc với nghiệm cơ sở chấp nhận được khởi tạo từ pha 1.
Nhận xét:
- Thuật toán 2 pha trên giải quyết hầu hết các trường hợp có thể xảy ra trong phương pháp đơn hình (kể cả khi các ràng buộc phụ thuộc tuyến tính hoặc các ràng buộc tạo nên tập nghiệm rỗng).
- Tuy nhiên, thuật toán 2 pha có thể bị khởi tạo với nghiệm cơ sở bị suy biến, dẫn đến thuật toán có thể bị lặp vô hạn.
- Bằng các phương pháp tránh vòng lặp vô hạn ở bài sau, thuật toán 2 pha là thuật toán giải bài toán QHTT đầy đủ, nghĩa là nó luôn dừng (trong bất cứ trường hợp nào) và chỉ ra nghiệm tối ưu hoặc thông báo bài toán không có nghiệm.
- Nếu các ràng buộc chứa cả ràng buộc đẳng thức và bất đẳng thức, ta kết hợp cả hai phương pháp trên để khởi tạo nghiệm cơ sở.



