Bài tốn qui hoạch phân tuyến tính

Một phần của tài liệu Bài toán quy hoạch phân tuyến tính luận án thạc sĩ (Trang 27 - 47)

f(x) = 1x1 −2x2 + 1

với các điều kiện

1x1 −2x2 ≥ 2, 1x1 −2x2 ≤ 4, x1 ≥ 0, x2 ≥ 0.

Tập S các lời giải chấp nhận được của bài tốn vẽ ở Hình 2.6. Giải hệ

1x1 −2x2 = −1 1x1 + 1x2 = −4

ta nhận được tiêu điểm F = (−3,−1). Khi đĩ, quay đường mức quay quanh tiêu điểm F theo cả hai chiều (kim đồng hồ và ngược lại) ta nhận ra rằng bài tốn cực đại cĩ một lời giải tối ưu tại điểm (4,0) với f(4,0) = 5

8 và bài tốn cực tiểu cĩ lời giải tối ưu tiệm cận tại điểm (0,∞) trên trục Ox2:

inf

x∈Sf(x) = lim

x2→∞f(0, x2) =−2.

Hình 2.6: Miền chấp nhận được khơng bị chặn

Trường hợp n > 2, "đường mức" của hàm mục tiêu f(x) xác định một bĩ các mặt mức p(x)−γq(x) = 0 quay quanh các trục tâm (n−2) chiều của chúng, tại đĩ các siêu phẳng p(x) = 0 và q(x) = 0 giao nhau.

Để kết thúc mục này, ta để ý là cách giải thích hình học này của bài tốn qui hoạch phân tuyến tính cĩ thể áp dụng cho bài tốn cĩ số biến n bất kỳ và số ràng buộc chính m bất kỳ, miễn là hệ ràng buộc của bài tốn cĩ thể rút gọn thành hai biến số độc lập, tức là n−m = 2.

Tĩm lại, chương này đã đề cập tới bài tốn qui hoạch phân tuyến tính, đĩ là bài tốn tìm cực tiểu (hay cực đại) của một hàm là tỉ số của hai hàm tuyến tính với các ràng buộc tuyến tính. Trong một số trường hợp đặc biệt, bài tốn qui hoạch phân tuyến tính suy biến thành bài tốn qui hoạch tuyến tính. Bài tốn qui hoạch phân tuyến tính cĩ thể cĩ nhiều lời giải tối ưu (hữu hạn, vơ cực hay tiệm cận).

Chương 3

Phương pháp giải qui hoạch phân tuyến tính

Chương này đề cập tới một số phương pháp tiêu biểu giải bài tốn qui hoạch phân tuyến tính. Khi tập ràng buộc của bài tốn là một tập lồi đa diện bị chặn (tức đa diện lồi), thuật tốn Charnes và Cooper (1962) đưa về giải bài tốn qui hoạch tuyến tính tương đương. Tiếp đĩ là thuật tốn Gilmore và Gomory (1963), chuyển từ đỉnh nọ tới đỉnh kia của đa diện lồi cho đến khi đạt tới đỉnh tối ưu và thuật tốn Dinkelbach (1962) dựa trên qui hoạch tham số. Cuối chương, trình bày thuật tốn kiểu đơn hình của Béla Martos (1960). Nội dung của chương được tham khảo chủ yếu từ các tài liệu [1], [3] và [4].

3.1 Biến đổi Charnes và Cooper

A.Charnes và W.Cooper (1962) đã chỉ ra rằng bài tốn qui hoạch phân tuyến tính với tập ràng buộc bị chặn cĩ thể đưa được về bài tốn qui hoạch tuyến tính, nhờ phép đổi biến số, gọi là biến đổi Charnes và Cooper.

Xét bài tốn qui hoạch phân tuyến tính, ký hiệu bài tốn (LFP): (LF P) min{f(x) = p

Tx+ α

qTx+ β : Ax ≤b, x ≥0}. (3.1) Giả thiết tập S = {x : Ax ≤ b, x ≥ 0} khác rỗng bị chặn và qTx+β > 0 với mọi x ∈ S. Dùng phép đổi biến số Charnes và Cooper z = 1

qTx+β, y = zx và nhân ràng buộc Ax ≤ b với z > 0, ta đưa bài tốn (LFP) về bài tốn tuyến tính, ký hiệu (LP):

(LP) qTy +αz → min (3.2) với các điều kiện

qTy +βz = 1, y ≥ 0, z ≥ 0.

So với (LFP), bài tốn (LP) cĩ thêm một biến và một ràng buộc bổ sung. Với giả thiết tập S 6= ∅bị chặn và qTx+β > 0với mọi x ∈ S, ta cĩ tính chất đáng chú ý sau.

Bổ đề 3.1. Nếu (y, z) là một phương án của bài tốn (LP) thì z > 0.

Chứng minh: Nếu z = 0 thì do qTy +βz = 1 nên phải cĩ y 6= 0 thỏa mãn Ay ≤ 0, y ≥ 0. Khi đĩ y là một hướng lùi xa của S, bởi vì với bất kỳ x ∈ S, (tức Ax ≤ b, x ≤ 0), ta cĩ A(x+ λy) = Ax+ λAy ≤ b và x+ λy ≥ 0 với mọi λ ≥ 0. Chứng tỏ x+λy ∈ S với mọi λ ≥ 0, điều này trái với giả thiết S compact. Vậy phải cĩ z 6= 0.

Định lý sau cho thấy thay cho (LFP) ta cĩ thể giải bài tốn (LP).

Định lý 3.1. Nếu (y, z) là phương án tối ưu của bài tốn (LP) thì x = y z sẽ

là phương án tối ưu của bài tốn (LFP) ban đầu.

Chứng minh: Do (y, z) thỏa mãn các ràng buộc của bài tốn (LP) nên theo Bổ đề 3.1, z > 0. Khi đĩ, với x = y

z sẽ cĩ Ax ≤ b, x ≥ 0, tức x ∈ S. Lấy bất kỳ x ∈ S, tức là Ax ≤ b, x ≥ 0. Do giả thiết qTx+β > 0 nên (y, z) sẽ là một phương án của (LP) với y = x

(qTx+β), z =

1

(qTx+β). Mặt khác, (y, z) là phương án tối ưu nên ta cĩ

pTy+ αz ≤ pTy +αz. Bằng cách thay y = x.z, y = x (qTx+β) và z = 1 (qTx+β) ta thấy z(pTx+α) ≤ p Tx+α qTx+β

Chia vế trái bất đẳng thức trên cho qTy+βz = z(pTx+β) = 1 ta nhận được pTx+ α

qTx+ β ≤ p

Tx+α qTx+β. Đĩ là điều cần chứng minh.

Nhận xét 3.1. Nếu qTx +β < 0 với mọi x ∈ S thì đặt −z = 1 (qTx+β), x = yz và bài tốn qui hoạch phân tuyến tính ban đầu sẽ trở thành bài tốn qui hoạch tuyến tính:

với các điều kiện

Ay −bz ≤ 0, −qTy −βz = 1,

y ≥ 0, z ≥ 0.

Chứng minh tương tự như trên cho thấy nếu (y, z) là phương án tối ưu của bài tốn qui hoạch tuyến tính vừa mơ tả thì x = y

z sẽ là phương án tối ưu của bài tốn qui hoạch phân tuyến tính ban đầu.

Như vậy, ta đã chỉ ra rằng cĩ thể đưa bài tốn qui hoạch phân tuyến tính về bài tốn qui hoạch tuyến tính cĩ thêm một biến và thêm một ràng buộc. Dạng bài tốn qui hoạch tuyến tính sẽ tùy thuộc vào mẫu số trong hàm mục tiêu: qTx+β > 0 với mọi x ∈ S hay qTx+β < 0 với mọi x ∈ S. Nếu mẫu số đĩ cĩ dấu khác nhau, tức cĩ x1, x2 ∈ S sao cho qTx1+β > 0và qTx2+β < 0 thì bài tốn qui hoạch phân tuyến tính được xét sẽ cĩ giá trị tối ưu vơ cực.

Ví dụ 3.1. Để minh họa thuật tốn, ta giải bài tốn

f(x) = p(x) q(x) =

x1 −2x2 + 2

2x1 +x2 + 1 →min

với các điều kiện

−x1 + 2x2 ≤ 8, x1 +x2 ≤ 10,

x1 −x2 ≤ 4, x1 ≥ 0, x2 ≥ 0.

Cĩ thể thấy rằng mẫu số q(x) = 2x1 + x2 + 1 > 0 trên tồn miền chấp nhận được của bài tốn (do x1 ≥ 0, x2 ≥ 0). Ta giải bài tốn này theo phương pháp Charnes và Cooper. Bài tốn qui hoạch tuyến tính tương đương cĩ dạng

y1 −2y2 + 2z → min với các điều kiện

−y1 + 2y2 −8z ≤ 0, y1 + y2 −10z ≤ 0,

y1 −y2 −4z ≤ 0, 2y1 + y2 +z = 1, y1 ≥0, y2 ≥0, z ≥ 0.

Cĩ thể kiểm tra lại rằng y1 = 0, y2 = 4 5, z =

1

5 là phương án tối ưu của bài tốn tuyến tính trên. Do đĩ phương án tối ưu của bài tốn qui hoạch phân tuyến tính cần giải là x1 = y1

z = 0, x2 = y2

z = 4 và giá trị nhỏ nhất của hàm mục tiêu là fmin = −1,2.

Ví dụ 3.2. (xem[3], tr.58). Giải qui hoạch phân tuyến tính

f(x) = p(x) q(x) =

8x1 + 9x2 + 4x3 + 4

2x1 + 3x2 + 2x3 + 7 →max

với các điều kiện

1x1 + 1x2 + 2x3 ≤3, 2x1 + 1x2 + 4x3 ≤4, 5x1 + 3x2 + 1x3 ≤ 15, x1 ≥ 0, x2 ≥0, x3 ≥0.

Cĩ thể thấy q(x) > 0 với mọi x ≥ 0. Đặt biến z = 1

2x1 + 3x2 + 2x3 + 7, y = zx, ta đưa bài tốn qui hoạch phân tuyến tính đã cho (biến x) về bài tốn theo biến y, z:

8y1 + 9y2 + 4y3 + 4z →max với các điều kiện

1y1 + 1y2 + 2y3 −3z ≤ 0, 2y1 + 1y2 + 4y3 −4z ≤ 0, 5y1 + 3y2 + 1y3 −15z ≤ 0, y1 ≥ 0, y2 ≥ 0, y3 ≥ 0, z ≥0. Bài tốn qui hoạch tuyến tính cĩ lời giải tối ưu

y1 = 1 15, y2 = 2 15, y3 = 0, z = 1 15. Từ đĩ lời giải tối ưu của bài tốn ban đầu là

x1 = 1, x2 = 2, x3 = 0, fmax = 2.

Nhận xét 3.2. Phép biến đổi Charnes và Cooper tuy đưa được bài tốn(LFP)

về bài tốn (LP), nhưng nĩ cĩ thể làm mất đi cấu trúc ban đầu của bài tốn cần giải (cấu trúc vận tải chẳng hạn), vì thế nĩ ít được dùng trong thực tiễn. Các cách tiếp cận trực tiếp cho phép tận dụng cấu trúc ban đầu của bài tốn cũng rất được chú ý tới.

3.2 Thuật tốn Gilmore và Gomory

Xét bài tốn qui hoạch phân tuyến tính (LF P) min{f(x) = p

Tx+α

qTx+β : Ax = b, x ≥ 0}. (3.3) trong đĩ p, q, x ∈ Rn (các vectơ cột n thành phần), b ∈ Rm (vectơ cột m thành phần), A ∈ Rm×n (ma trận cấp m×n) và α, β ∈ R.

Ký hiệu S = {x : Ax = b, x ≥ 0} là tập ràng buộc của bài tốn (LFP). Giả thiết S 6= ∅ bị chặn và q(x) = qTx+β 6= 0 với mọi x ∈ S. Thuật tốn gồm các bước sau.

Bước 0.

• Trước tiên, tìm một đỉnh x1 ∈ S. Phân hoạch A = (B, N). Đặt k = 1. • Lập bảng đơn hình ứng với x1. Tính 5f(x) = (∂f(x) ∂xj ) T,(j = 1, . . . , n). • Đặt 5Bf(x)T = ∂f(x) ∂xj ,(Aj ∈ B), 5Nf(x)T = ∂f(x) ∂xj ,(Aj ∈ N). Bước 1. • Tính 4N = 5Nf(xk)T − 5Bf(xk)TB−1N.

• Nếu 4N ≥ 0 thì xk là lời giải tối ưu: dừng thuật tốn. • Trái lại, chuyển sang Bước 2.

Bước 2.

• Tìm 4s = min{4j :4j < 0 với Aj ∈ N}.

• Xác định biến cơ sở (xB)r để loại khỏi cơ sở theo tỉ số nhỏ nhất: zr0

zrs = min1≤i≤m{zi0

zis : zis > 0}.

Bước 3.

• Đưa biến xs vào cơ sở thay cho biến (xB)r (ký hiệu xk) loại khỏi cơ sở. • Giả sử nhận được đỉnh xk+1 với cơ sở mới (B\{Ak})∩ {As}.

• Biến đổi bảng đơn hình theo phần tử quay zrs.

Ví dụ 3.3. (xem[4], tr.71). Giải qui hoạch phân tuyến tính

f(x) = −2x1 +x2 + 2

x1 + 3x2 + 4 → min

với các điều kiện

−x1 +x2 ≤ 4, x2 ≤6 2x1 + x2 ≤14, x1 ≥ 0, x2 ≥ 0. Lời giải: Hình 3.1: Ví dụ 3.3

Tập ràng buộc S của bài tốn vẽ ở Hình 3.1 x = (0,0)T là một đỉnh của S.

Bước 0. Thêm biến bù x3, x4, x5 ≥0 để đưa các ràng buộc về đẳng thức. Ta nhận được lời giải cơ sở x1 = (0,0,0,4,6,14)T. Biến cơ sở x3, x4, x5. Biến phi cơ sở x1, x2. Đặt k = 1. Tính đạo hàm riêng của hàm mục tiêu theo các biến: ∂f(x) ∂x1 = −2(x1 + 3x2 + 4)−(−2x1 +x2 + 2) (x1 + 3x2 + 4)2 = −7x2 −10 (x1 + 3x2 + 4)2. ∂f(x) ∂x2 = (x1 + 3x2 + 4)−3(−2x1 + x2 + 2) (x1 + 3x2 + 4)2 = 7x1 −2 (x1 + 3x2 + 4)2. ∂f(x) ∂xj = 0, với j = 3,4,5.

Bảng 3.1. Bảng đơn hình tương ứng với x1 Các tính tốn ở Vịng lặp 1: Ta thấy pTx1+α = 2 và qTx1+β = 4. Từ đĩ 5f(x1)T = −5 8 , −1 8 ,0,0,0 ⇒ 5Bf(x1)T = (0,0,0),5Nf(x1)T = (−5 8 , −1 8 ). Ta thấy 4B = (43,44,45) = (0,0,0), Tính 4N = (41,42) = 5Nf(xk)T − 5Bf(xk)TB−1N = (−5 8 , −1 8 )−(0,0,0)× −1 1 0 1 2 1 ! = (−5 8 , −1 8 ) 4N ≤ 0 nên x1 = (0,0,0,4,6,14)T chưa tối ưu.

Tìm 4s = min{41,42} = 41 = −5

8 < 0 ⇒ biến x1 được đưa vào cơ sở. min{zi0 zis : zis > 0} = min{ 4 −1, 6 0, 14

2 } ⇒ biến x5 bị loại khỏi cơ sở.

Biến đổi Bảng 3.1 theo qui tắc đơn hình ta nhận được đỉnh (lời giải cơ sở) mới x2 = (7,0,11,6,0)T. Biến cơ sở : x3, x4, x1. Biến phi cơ sở x2, x5.

Các tính tốn ở Vịng lặp 2: Ta thấy pTx2 + α = −12 và qTx2 +β = 11. Từ đĩ 5f(x2)T = −10 121, 47 121,0,0,0 ⇒ 5Bf(x2)T = (0,0,−10 121), 5Nf(x1)T = ( 47 121,0). Ta thấy 4B = (43,44,41) = (0,0,−10 121), Tính 4N = (42,45) = 5Nf(xk)T − 5Bf(xk)TB−1N = ( 47 121,0)−(0,0,−10 121)×   3 2 1 2 1 0 1 2 1 2   = ( 52 121, 5 121) 4N ≥ 0 : Dừng thuật tốn.

Lời giải tối ưu: x1 = 7, x2 = 0, fmin = −12

11 ≈ −1,091. 3.3 Thuật tốn Dinkelbach

Cách tiếp cận tham số do W.Dinkelbach đề xuất năm 1962 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 tốn qui hoạch phân thức (khơng nhất thiết là phân thức tuyến tính). Với qui hoạch phân tuyến tính, phương pháp này qui việc giải bài tốn ban đầu về giải một dãy các bài tốn qui hoạch tuyến tính.

Xét bài tốn qui hoạch phân tuyến tính (LF P) min{p(x)

q(x) =

pTx+α

qTx+β : Ax≤ b, x ≥ 0}. (3.4) Kí hiệuS = {x : Ax ≤ b, x ≥ 0}. Giả thiết mẫu số q(x) > 0với mọix ∈ S Xét hàm F(λ) = min

x∈S{p(x)−λq(x)}, λ ∈ R. Định lý sau là cơ sở cho thuật tốn Dinkelbach.

Định lý 3.2. x∗ là lời giải tối ưu của bài tốn qui hoạch phân tuyến tính (LFP) khi và chỉ khi F(λ∗) = min x∈S{p(x)−λ∗q(x)} = 0, (3.5) trong đĩ λ∗ = p(x ∗) q(x∗)

Chứng minh: Nếu x∗ là một lời giải tối ưu của bài tốn (LFP) thì λ∗ = p(x

∗)

q(x∗) ≤ p(x)

Do giả thiết q(x) > 0 với mọi x ∈ S nên điều này cho thấy p(x∗)−λ∗q(x∗) = 0 và p(x)−λ∗q(x) ≥ 0,∀x∈ S. Suy ra x∗ đạt cực tiểu của p(x)−λ∗q(x) trên S, tức là

F(λ∗) = min

x∈S{p(x)−λ∗q(x)} = 0, với λ∗ = p(x ∗) q(x∗). Ngược lại, nếu x∗ là lời giải tối ưu của (3.5) thì

p(x)−λ∗q(x) ≥ p(x∗)−λ∗q(x∗),∀x ∈ S. Từ đĩ cho thấy λ∗ = p(x ∗) q(x∗) ≤ p(x) q(x),∀x ∈ S.

Điều này chứng tỏ x∗ là lời giải tối ưu của bài tốn (LFP).

Định lý này chỉ ra cách tìm lời giải tối ưu của bài tốn qui hoạch phân thức (LFP). Thật vậy, do giả thiết q(x) > 0 với mọi x ∈ S nên

∂F(λ)

∂λ ≤ −q(x) < 0,∀x ∈ S. Điều này cho thấy hàm F(λ) thực sự giảm khi λ tăng. Thuật tốn Dinkelbach gồm các bước:

Bước 0. Chọn bất kỳ x0 ∈ S, tính λ1 = p(x

0)

q(x0) và đặt k = 1.

Bước 1. Giải qui hoạch tuyến tính tìm xk = argmin

x∈S{p(x)−λkq(x)}.

Bước 2. Nếu F(λk) = 0 thì x∗ = xk là lời giải tối ưu : dừng thuật tốn.

Bước 3. Đặt λk+1 = p(x

k)

q(xk) và đặt k ←k + 1; Trở lại Bước 1.

Ví dụ 3.4. Để minh họa thuật tốn, ta giải lại bài tốn đã xét ở Ví dụ 3.1.

f(x) = p(x) q(x) =

x1 −2x2 + 2

2x1 +x2 + 1 →min

với các điều kiện

−x1 + 2x2 ≤ 8, x1 +x2 ≤ 10,

x1 −x2 ≤ 4, x1 ≥ 0, x2 ≥ 0.

Hình 3.2: Ví dụ 3.4

Tập ràng buộc S của bài tốn vẽ ở Hình 3.2 (đa giác 5 đỉnh).

Bước 0. Do x = (0,0)T ∈ S nên ta cĩ thể chọn x0 = (0,0)T làm điểm xuất phát cho thuật tốn và nhận được

λ1 = p(x 0) q(x0) = 2 1 = 2. Bước 1. Lập hàm mục tiêu p(x)−λ1q(x) = p(x)−2q(x) = −3x1 −4x2.

Cực tiểu của hàm này trên tập S đạt tại x1 = (4,6)T và F(λ1) = −36.

Bước 2. Do F(λ1) 6= 0 nên x1 chưa tối ưu.

Bước 3. Tính λ2 = p(x 1) q(x1) = 1×4−2×6 + 2 2×4 + 1×6 + 1 = −2 5 . Đặt k := k+ 1 = 2 và quay trở lại Bước 1.

Bước 1. Lập hàm mục tiêu p(x)−λ2q(x) = p(x) + 2 5q(x) = (1 + 2 5 ×2)x1 + (−2 + 2 5 ×1)x2 + (2 + 2 5 ×1) = 9 5x1 − 8 5x2 + 12 5 . Cực tiểu của hàm này trên tập S đạt tại x2 = (0,4)T và F(λ2) = −4.

Bước 2. Do F(λ2) 6= 0 nên x2 chưa tối ưu.

Bước 3. Tính λ3 = p(x 2) q(x2) = 1×0−2×4 + 2 2×0 + 1×4 + 1 = −6 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 p(x)−λ2q(x) = p(x) + 6 5q(x) = (1 + 6 5 ×2)x1 + (−2 + 6 5 ×1)x2 + (2 + 6 5 ×1) = 17 5 x1 − 4 5x2 + 16 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,4)T và F(λ3) = 0.

Bước 2. Do F(λ3) = 0 nên x∗ = x3 = (0,4)T là lời giải tối ưu.

Từ đĩ, lời giải tối ưu của bài tốn (LFP) là x∗ = (0,4)T với giá trị mục tiêu nhỏ nhất bằng p(x∗)

q(x∗) = −1,2.

Với bài tốn tìm max ta cĩ kết quả tương tự (thay min bởi max trong (3.5)).

Ví dụ 3.5. (xem[3], tr.60). Tìm lời giải tối ưu của bài tốn

Một phần của tài liệu Bài toán quy hoạch phân tuyến tính luận án thạc sĩ (Trang 27 - 47)