Phương pháp đơn hình (Simplex method) (4) – Dạng bảng của thuật toán
Đăng bởi tqlong on Tháng Hai 26, 2008
Ta đã thấy, trong phương pháp đơn hình, những giá trị cần tính toán là
-
: bộ chỉ số của các cột cơ sở tạo nên ma trận cơ sở
.
-
: giá trị các biến tương ứng với ma trận cơ sở. Lưu ý là
.
-
: véctơ chứa giá trị thay đổi trên các hướng.
-
: hướng chấp nhận được thứ
nào đó mà
.
-
: giá trị hàm mục tiêu.
Thuật toán đơn hình ở dạng bảng (full tableau) quản lý một bảng chứa tất cả các thông tin trên. Tại mỗi bước lặp, thuật toán cập nhật lại bảng này khi và ma trận cơ sở
thay đổi. Bảng này như sau
Giả sử là cột mà
. Ta có cột thứ
của bảng là
Giả sử là chỉ số mà
và
Cập nhật : ta thay thế
.
Cập nhật : Ta biết
nên
với
là ma trận biến đổi dòng sao cho
với
.
Cập nhật : Ta có
. Tức là cập nhật
cũng giống như cập nhật các cột
.
Cập nhật : Ta có
với
.
với
.
Trong đó
,
,
Để ý là và
là cột thứ
và
của bảng cũ,
là cột thứ
của bảng mới.
Như vậy
Suy ra
Đặc biệt , nghĩa là khi chỉ số
được đưa vào bộ chỉ số cơ sở thì
, đây là điều ta đã biết ở bài thứ 2.
Cập nhật : Ta biết
nên tương tự như trên, ta cũng có
hay
Như vậy, dòng đầu tiên của bảng (gồm giá trị hàm mục tiêu và thay đổi trên các hướng) được cập nhật bằng cách cộng với hàng thứ của bảng sau khi nhân với
. Để ý rằng, đây là biến đổi dòng sao cho
.
Tổng kết lại, ta có thuật toán đơn hình ở dạng bảng như sau:
- Xuất phát từ một nghiệm cơ sở chấp nhận được và bộ chỉ số cơ sở của nó, xây dựng bảng tương ứng của nghiệm này.
- Tại mỗi bước lặp, tìm chỉ số
sao cho
(giá trị thứ
của dòng đầu tiên) . Nếu không có thì dừng và kết luận
là nghiệm tối ưu (các tọa độ khác của
bằng
).
- Nếu các giá trị khác trên cột thứ
đều không dương (
) thì dừng và kết luận bài toán QHTT không bị chặn và không có nghiệm (do
) .
- Ngược lại, chọn chỉ số
sao cho
(
và
là giá trị ở hàng
cột
và cột
).
- Đưa chỉ số
vào thay thế
trong bộ chỉ số cơ sở.
- Thực hiện các phép biến đổi dòng sao cho cột thứ
trở thành véctơ toàn
và chỉ có duy nhất một số
ở hàng
:
+ Nhân dòng thứvới
rồi cộng vào dòng đầu tiên.
+ Nhân dòng thứvới
rồi cộng vào dòng thứ
với
.
+ Chia dòng thứcho
Quay trở lại bước 2.



