Cách tiếp cận tham số do W. Dinkelbach đề xuất năm 1968 là một trong những chiến thuật tổng quát và hay được dùng nhất đối với các bài toán quy hoạch phân thức (không nhất thiết là phân thức tuyến tính). Với quy hoạch phân tuyến tính, phương pháp này quy việc giải bài toán ban đầu về giải một dãy bài toán quy hoạch tuyến tính.
Xét bài toán quy hoạch phân tuyến tính (LFP):
min{p(x)
q(x) = pTx+α
qTx+β : Ax ≤ b, x≥ 0}
.
Ký hiêu S = {x : Ax ≤ b, x ≥ 0}. Giả thiêt mẫu số q(x) > 0 với mọi x∈ S.
Xét hàm số F(λ) = min
x∈S{ p(x)−λq(x)} , λ∈ R. Định lý sau là cơ sở cho thuật toán Dinkelbach.
Định lý 3.4 x∗ là nghiệm tối ưu của bài toán quy hoạch phân tuyến tính (LFP) khi và chỉ khi
F(λ∗) = min
x∈S{p(x)−λ∗q(x)} = 0,
trong đó λ∗ = p(x∗) q(x∗).
Định lý này chỉ ra cách tìm nghiệm tối ưu của bài toán quy hoạch phân tuyến tính (LFP). Thật vậy, do giả thiết q(x) > 0 với mọi x ∈ S
nên ∂F(λ)
∂λ 6 −q(x) < 0,∀x∈ S.
Điều này cho thấy hàm F(λ) giảm thực sự khi λ tăng.
Thuật toán Dinkelbach gồm các bước:
Bước 0. Chọn bất kỳ x0 ∈ S, đặt k = 1 và tính λ1 = p(x0) q(x0). Bước 1. Giải quy hoạch tuyến tính tìmxk = arg min
x∈S
{p(x)−λkq(x)}. Bước 2. Nếu F(λk) = 0 thì x∗ = xk là nghiệm tối ưu: dừng thuật toán.
Bước 3. Đặt λk+1 = p(xk)
q(xk) và đặt k ←− k+ 1; Trở lại Bước 1.
• Các kết quả và thuật toán trên cũng áp dụng được cho cả bài toán cực đại. Để minh họa thuật toán, ta xét ví dụ: bài toán cực tiểu và bài toán cực đại.
Ví dụ 3.1 Giải lại bài toán đã xét ở Ví dụ 2.6 (bài toán cực tiểu):
f(x) = 2x1 −x2 −1
x1 + 2x2 + 1 −→min,với các ràng buộc x ∈S và
S ={x∈ R2 : −2x1+ 7x2 ≤ 28,3x1−x2 ≤ 15,2x1+x2 ≥ 2, x1, x2 ≥ 0}.
Tập ràng buộc S của bài toán đã được vẽ ở Hình 2.3 (đa giác 5 đỉnh).
Bước 0. Do x = (1,0)T ∈ S nên ta có thể chọn x0 = (1,0)T làm điểm xuất phát cho thuật toán, đặt k = 1 và tính
λ1 = p(x0) q(x0) = 1
2ã Bước 1. Lập hàm mục tiêu
F(λ1) = p(x)−λ1q(x) =p(x)− q(x)
2 = 1,5x1 −2x2 −1,5.
Cực tiểu của hàm này trên tập ràng buộcS đạt tạix1 = (0,4)T, F(λ1) =
−9,5.
Bước 2. Do F(λ1) 6= 0 nên x1 chưa tối ưu.
Bước 3. Tính
λ2 = p(x1)
q(x1) = −4−1
2×4 + 1 = −5 9. Đặt k := k+ 1 = 2 và quay trở lại Bước 1.
Bước 1. Lập hàm mục tiêu
F(λ2) = p(x)−λ2q(x) =p(x) + 5 9q(x)
=
2 + 5 9 ×1
x1 +
−1 + 5 9 ×2
x2 +
−1 + 5 9 ×1
= 23
9 x1 + 1
9x2 − 4 9.
.
Cực tiểu của hàm này trên tập ràng buộc S đạt tại x2 = (0,2)T, F(λ2) = −2
9. Bước 2. Do F(λ2) 6= 0 nên x2 chưa tối ưu.
Bước 3. Tính
λ3 = p(x2)
q(x2) = 2×0−1×2−1
1×0 + 2×0 + 1 = −3 5. Đặt k := k+ 1 = 3 và quay trở lại Bước 1.
Bước 1. Lập hàm mục tiêu
F(λ3) = p(x)−λ3q(x) = p(x) + 3 5q(x)
=
2 + 3 5 ×1
x1 +
−1 + 3 5 ×2
x2 +
−1 + 3 5 ×1
= 13
5 x1 + 1
5x2− 2 5.
Cực tiểu của hàm này trên tập ràng buộc S đạt tại x3 = (0,2)T, F(λ3) = 0.
Bước 2. Do F(λ2) = 0 nên x∗ = (0,2)T là lời giải tối ưu: dừng thuật toán.
Từ đó, nghiệm tối ưu của bài toán (LFP) là x∗ = (0,2)T với giá trị mục tiêu nhỏ nhất bằng p(x∗)
q(x∗) = −0,6.
Ví dụ 3.2 Giải lại bài toán đã xét ở Ví dụ 2.3 (bài toán cực đại):
f(x) = x1 + 2x2 + 3,5x3 +x4 + 1
2x1 + 2x2 + 3,5x3 +x4 + 4 −→ max, với tập ràng buộc S ={2x1+x2+3x3+3x4 ≤ 10, x1+2x2+x3+x4 ≤ 14, x1, x2, x3, x4 ≥ 0}.
Giải. Trong ví dụ này có n = 4 biến và m = 2 ràng buộc chính.
Bước 0. Do x = (0,0,0,0)T ∈ S nên ta có thể chọn x0 = (0,0,0,0)T làm điểm xuất phát cho thuật toán, đặt k = 1 và tính
λ1 = p(x0) q(x0) = 1
4. Bước 1. Lập hàm mục tiêu
F(λ1) = p(x)−λ1q(x) = p(x)−1
4q(x) = 0,5x1+1,5x2+2,625x3+0,25x4. Cực đại của hàm này trên tập ràng buộc S đạt tại
x1 = (0; 6,4; 1,2; 0)T , F(λ1) = 12,75.
Bước 2. Do F(λ1) 6= 0 nên x1 chưa tối ưu.
Bước 3. Tính λ2 = p(x1)
q(x1) = 2×6,4 + 3,5×1,2 + 1 2×6,4 + 3,5×1,2 + 4 = 6
7. Đặt k : k+ 1 và quay lại Bước 1
Bước 1. Lập hàm mục tiêu
F(λ2) = p(x)−λ2q(x) = p(x)− 6 7q(x)
=
1− 6 7 ×2
x1 +
2− 6
7 ×2
x2 +
3,5− 6
7 ×3,5
x3 +
1− 6 7 ×3
x4 +
1− 6
7 ×4
= − 5
7x1+ 2
7x2 + 1
2x3 − 11
7 x4 − 17 7 .
Cực đại của hàm này trên tập ràng buộc S đạt tại x2 = (0; 6,4; 1,2; 0)T , F(λ2) = 0.
Bước 2. Do F(λ2) = 0 nên x∗ = x2 = (0; 6,4; 1,2; 0)T là nghiệm tối ưu: dừng thuật toán.
Từ đó, nghiệm tối ưu của bài toán (LFP) là x∗ = (0; 6,4; 1,2; 0)T với giá trị mục tiêu lớn nhất:
fmax = f(x∗) = p(x∗)
q(x∗) = 2×6,4 + 3,5×1,2 + 1 2×6,4 + 3,5×1,2 + 4 = 6
7 ≈ 0,857143.
Tóm tắt chương: Chương này đã trình bày thuật toán giải bài toán quy hoạch phân thức phi tuyến, dựa trên cách tiếp cận tham số và áp dụng thuật toán tham số để giải bài toán phân thức tuyến tính (LFP), kèm theo ví dụ minh họa.
KẾT LUẬN
Luận văn đã tìm hiểu và giới thiệu một số thuật toán mới gần đây để giải bài toán quy hoạch phân tuyến tính (nhờ đưa về quy hoạch tuyến tính) và giải quy hoạch phân thức phi tuyến (theo tiếp cận tham số).
Luận văn đã trình bày các nội dung cụ thể sau:
1. Hàm phân thức afin và tính chất, bài toán quy hoạch phân tuyến tính, và phương pháp giải quy hoạch phân tuyến tính, dựa trên cách tiếp cận Charnes - W. Cooper đưa về giải quy hoạch tuyến tính.
2.Thuật toán cải tiến của M. B. Hasan và S. Acharjee giải bài toán quy hoạch phân tuyến tính (LFP) bằng cách đưa về một bài toán quy hoạch tuyến tính (LP) và thuật toán của P. Pandian và M. Jayalakshmi đưa (LFP) về giải hai bài toán (LP).
3. Kết quả nghiên cứu của A. Jeflea về tiếp cận tham số giải bài toán quy hoạch phân thức phi tuyến: Thuật toán Dinkelbach, thuật toán Dinkelbach rút gọn cho phép giải gần đúng các bài toán tham số và sự hội tụ của các thuật toán. Áp dụng cách tiếp cận tham số giải quy hoạch phân thức tuyến tính (LFP).
Đóng góp chính của tác giả luận văn là tìm hiểu, sắp xếp và trình bày lại một số thuật giải bài toán quy hoach phân tuyến tính nhờ đưa về giải quy hoạch tuyến tính và giải quy hoạch phân thức phi tuyến theo cách tiếp cận tham số. Xây dựng các ví dụ minh họa cho các thuật toán đã trình bày.
Tác giả luận văn hy vọng trong tương lai sẽ có dịp được tìm hiểu thêm các thuật toán khác giải quy hoạch phân tuyến tính và các bài toán mở rộng.