Xét bài toán Vận tải cho dưới dạng bảng
Bước 0: Xác định các “Ô chọn”
- Tìm phương án xuất phát
- Các ô được phân hàng được gọi là các ô chọn
+ Nếu số ô chọn bé hơn 𝑚 + 𝑛 − 1 thì ta bổ sung các ô không có hàng làm ô chọn để có đủ 𝑚 + 𝑛 − 1 ô chọn sao cho các ô chọn không chứa một vòng nào.
Bước 1: Quy 0 cước phí ô chọn
- Cộng vào hàng 𝑖 của bảng một lượng 𝑟𝑖, 𝑖 = 1, 𝑚̅̅̅̅̅̅ - Cộng vào cột 𝑗 của bảng một lượng 𝑠𝑗, 𝑗 = 1, 𝑛̅̅̅̅̅ Sao cho:
𝑟𝑖0+ 𝐶𝑖0𝑗0 + 𝑠𝑗0 = 0, với mọi ô chọn (𝑖0, 𝑗0)
Phương pháp: Ta cho một biến bằng 0 ta được một hệ 𝑚 + 𝑛 − 1 phương trình và 𝑚 + 𝑛 − 1 ẩn, giải ta có được giá trị của các biến này.
- Ta lập ma trận cước phí mới
𝐶′ = (𝐶′𝑖𝑗) 𝑚 x 𝑛 Với 𝐶′𝑖𝑗 = 𝑟𝑖 + 𝐶𝑖𝑗 + 𝑠𝑗, 𝑖 = 1, 𝑚̅̅̅̅̅̅, 𝑗 = 1, 𝑛̅̅̅̅̅
Bước 2: Kiểm tra tối ưu
- Nếu 𝐶′𝑖𝑗 ≥ 0 với mọi (𝑖, 𝑗)
Kết luận: Bảng đang xét là tối ưu, phương án đang xét là phương án tối ưu, ta đưa ra giá trị tối ưu của bài toán và dừng thuật toán.
Lập trình Maple giải bài toán Quy hoạch tuyến tính
26 Chuyển sang bước 3.
Bước 3:Lập phương án mới tốt hơn
- Tìm ô đưa vào ô chọn (ô vào):
Giả sử: 𝐶′𝑖∗𝑗∗ = 𝑚𝑖𝑛{𝐶′𝑖𝑗, 𝑖 = 1, 𝑚̅̅̅̅̅̅ , 𝑗 = 1, 𝑛̅̅̅̅̅} Ta gọi ô (𝑖∗, 𝑗∗) là ô vào.
- Tìm vòng điều chỉnh: Gộp ô (𝑖∗, 𝑗∗) vào các ô chọn, lúc đó dãy có ô này có chứa một vòng 𝑉 gọi là vòng điều chỉnh.
- Phân ô chẵn lẻ đánh số thứ tự các ô trong vòng 𝑉 bắt đầu từ ô vào (𝑖∗, 𝑗∗) là ô lẻ.
Các ô của vòng 𝑉 được phân làm hai nhóm: + 𝑉𝑐 : Tập hợp các ô chẵn
+ 𝑉𝑙 : Tập hợp các ô lẻ - Lượng điều chỉnh, ô ra.
Giả sử: 𝑥𝑖0𝑗0 = 𝑚𝑖𝑛 {𝑥𝑖𝑗, (𝑖, 𝑗) ∈ 𝑉𝑐}
Lúc đó, 𝑥𝑖0𝑗0 gọi làượng điều chỉnh, ô (𝑖0, 𝑗0) gọi là ô ra. - Lập phương án mới 𝑥′𝑖𝑗 = { 𝑥𝑖𝑗 , (𝑖, 𝑗) ∉ 𝑉𝑐 𝑥𝑖𝑗 − 𝑥𝑖0𝑗0 , (𝑖, 𝑗) ∈ 𝑉𝑐 𝑥𝑖𝑗 + 𝑥𝑖0𝑗0 , (𝑖, 𝑗) ∈ 𝑉𝑙 Trở lại bước 1: