ràng buộc là hệ bất phương trình tuyến tính và ứng dụng
2.1.2 Thuật toán Land-Doig giải bài toán quy hoạch nguyên phân tuyến tính
tuyến tính
Chúng ta đã biết khi giải bài toán quy hoạch phân tuyến tính bằng phương pháp đơn hình hay các thuật toán khác như thuật toán xấp xỉ trong trình bày ở chương 1 thì nhiều bài toán như bài toán vận tải phân tuyến tính có thể sẽ cho chúng ta lời giải nguyên. Song cũng có nhiều bài toán cho chúng ta lời giải chưa phải là nguyên, chính vì thế mà một số phương pháp giải bài toán quy hoạch nguyên đã ra đời.
Năm 1960, Land-Doig đã đưa ra thuật toán nhánh cận giải bài toán quy hoạch nguyên. Sau đây chúng ta sẽ trình bày thuật toán Land-Doig giải bài toán quy hoạch nguyên phân tuyến tính. Sơ đồ tổng quát của phương pháp nhánh cận chúng ta có thể tìm thấy ở các tài liệu[2],[3]và [5].
Thuật toán Land-Doig giải bài toán quy hoạch nguyên phân tuyến tính
(ILF) f (x) = L1(x) L2(x) →min x ∈ D = x ∈ Rn :< Ai, x >+bi 6 0, i = 1,2, . . . , N xjnguyên, j = 1,2, . . . , n. (2.1)
Để áp dụng phương pháp nhánh cận, ta phải xác định hai thủ tục chính đó là phân nhánh và tính cận. ta xét cách xây dựng hai thủ tục này của Land-Doig.
Ta có miềnD là miền chấp nhận được của bài toán (2.1). Ta sẽ ký hiệu P0 là bài toán (2.1).
phương án tối ưux0, x0 nói chung không nguyên. Ta có: f x0= minf (x) :< Ai, x > +bi 6 0, i= 1,2, ..., N
6 minf (x) :< Ai, x > +bi 6 0, i= 1,2, ..., N,nguyên = f∗ Vì thế giá trị có thể dùng làm cận dưới cho giá trị tối ưuf∗ của bài toánP0. Như vậy ta đã có thủ tục để tính cận dưới: đặt giá trị cận dưới của bài toán quy hoạch nguyên phân tuyến tính bằng giá trị tối ưu của bài toán quy hoạch phân tuyến tính tương ứng với nó:
γ(D) = min{f (x) :< Ai, x > +bi 6 0, i = 1,2, ..., N}.
Ta phân chia tập chấp nhận được của bài toánP0 thành hai tập bằng cách đưa vào hai ràng buộc loại trừ lẫn nhau như sau: Giả sử x0i (16 i 6 n) là một thành phần không nguyên nào đó củax0. Ký hiệu:
D1 = x ∈ D : xi 6 x0i (2.2)
D2 = x ∈ D : xi > x0i+ 1 (2.3) trong đó
x0ilà phần nguyên của.x0i Khi đó
D1 ∩ D2 = ∅, D1 ∪D2 = D (2.4) Như vậy, ta đã xác định được thủ tục phân hoạch theo các công thức (2.2)-(2.4). GọiP1 là bài toán:min{f (x) : x ∈ D1}.
GọiP2 là bài toán:min{f (x) : x ∈ D2}.
Rõ ràng đây là các bài toán quy hoạch nguyên phân tuyến tính.
Khi giải bài toán quy hoạch phân tuyến tính tương ứng với bài toánPi(i = 1,2), để tính cận dưới cho các tậpDi, ta có thể gặp một số các tình huống sau đây:
1) Bài toán không có phương án chấp nhận được. 2) Tìm được phương án tối ưuxi nguyên.
3) Tìm được phương án tối ưuxi không nguyên.
• Trường hợp 1): Bài toánPi cũng không có phương án chấp nhận được, tức là Di = ∅. Khi đó, ta có thể loại bỏ tậpDi khỏi qua trình xét tiếp theo.
• Trường hợp 2):xi cũng là phương án của bài toánPi. Vì vậy xi là phương án chấp nhận được của bài toán xuất phát. Trong trường hợp này, ta có thể cải thiện được kỷ lục, còn tập Di cũng sẽ bị loại không cần xét tiếp.
• Trường hợp 3): Ta thu được cận dưới của tậpDi là:γ(Di) = f xi. TậpDi cần xem xét tiếp:
Ta có thể mô tả thuật toán Land-Doig để giải bài toán quy hoạch nguyên phân tuyến tính (2.1) như sau:
Thuật toán Land-Doig
Bước chuẩn bị: Giải bài toán quy hoạch phân tuyến tính tương ứng với P0 và
thu được phương án tối ưux0. Giả sử x0 là không nguyên. Đặt cận dưới của P0 là f(x0) và danh mục các bài toán cần xét là P = {P0}. Nếu biết x là phương án chấp nhận được của bài toán thì đặtf = f(x) và ngược lại, ta đặtf = ∞.
Bước lặp k = 1, 2,...:
1. NếuP = ∅thuật toán kết thúc. Khi đó, nếuf 6 ∞thìf là giá trị tối ưu vàx là phương án tối ưu của bài toán. Trong trường hợp ngược lại, bài toán không có phương án chấp nhận được.
2. Nếu P 6= ∅: Chọn Pk là bài toán có cận dưới nhỏ nhất trong P. Gọi Dk là miền chấp nhận được, xk là phương án tối ưu của bài toán quy hoạch phân tuyến tính tương ứng với nó.
2.1. Giả sửxkt là một thành phần không nguyên nào đó củaxk. Phân hoạch tậpDk thành hai tập:Dk1 = x ∈ Dk : xt 6 [xkt], Dk2 = x ∈ Dk :xt > [xkt] + 1. Gọi Pk1 là bài toán:minf(x) : x ∈ Dk1.
Gọi Pk2 là bài toán:minf(x) : x ∈ Dk2.
Đây là các bài toán quy hoạch nguyên phân tuyến tính.
2.2. Lần lượt giải các bài toán quy hoạch phân tuyến tính tương ứng với Pki(i = 1, 2) để tính cận dưới đúng cho bài toánPki. Khi đó, ta có thể gặp một trong các tình huống sau đây:
a) Phát hiện bài toán không có phương án chấp nhận được. b) Tìm được phương án tối ưuxki là nguyên.
c) Tìm được phương án tối ưu xki là không nguyên.
• Trường hợp a): Bài toánPki cũng không có phương án chấp nhận được, vì vậy ta loại bỏ việc xem xét tiếp theo.
• Trường hợp b): Tính lại các kỷ lục theo công thức:f := min{f , f(xki)}Gọi xlà kỷ lục tương ứng với giá trị này. Bài toán Pki đã xét xong.
• Trường hợp c): Đặt cận dưới của Pki là f(xki), và kết nạp nó vào danh sách các bài toán cần xét:P := P ∪Pki
2.3. Loại bỏ khỏi P tất cả các bài toán có cận dưới lớn hơn hoặc bằng giá trị kỷ lục. Đặt:P := P\Pki và chuyển sang bướck + 1.
Như vậy chúng ta đã trình bày xong thuật toán nhánh cận Land-Doig giải bài toán quy hoạch nguyên phân tuyến tính với miền ràng buộc là hệ bất phương trình tuyến tính. Chúng ta thấy khi giải bài toán quy hoạch nguyên phân tuyến tính theo
thuật toán trên thì các tính toán ở giai đoạn 2.2. để giải các bài toán quy hoạch phân tuyến tính tương ứng tính cận dưới là khâu quan trọng cần thiết. Rõ ràng sau mỗi bước mỗi bài toán quy hoạch phân tuyến tính tương ứng cần giải lại thêm một ràng buộc bất phương trình. Chính vì vậy khi giải các bài toán này chúng ta nên lựa chọn các thuật toán giải trực tiếp được cho bài toán quy hoạch phân tuyến tính với miền ràng buộc là hệ bất phương trình tuyến tính nhất là những thuật toán mà có ưu điểm thuận lợi trong trường hợp bài toán là tái tối ưu hóa (sau một bước lại giải lại bài toán khi chỉ bổ sung thêm 1 ràng buộc), và thuật toán xấp xỉ trong P T T đáp ứng được yêu cầu đó.