Thuật toán phân rã Benders

Một phần của tài liệu Bài toán quy hoạch phi tuyến với kỹ thuật phân rã và ứng dụng (Trang 36)

2 Phân rã trong quy hoạch tuyến tính

2.2.2Thuật toán phân rã Benders

Nghiệm của bài toán (2.5) - (2.7) có thể thu được bằng cách tham số hóa bài toán này như một hàm của những biến ràng buộc x1, . . . ,xn. Điều này hoàn

thành như sau

Xây dựng thay thế của bài toán ban đầu (2.5) - (2.7)

min x1,...,xn ni=1 cixi+α(x1, . . . ,xn), với 06xi 6xupi , i=1, . . . ,n, trong đó (2.8) α(x1, . . . ,xn) = min y1,...,yn mj=1 djyj, với (2.9) ∑m j=1 el jyj6b(l)− ni=1 alixi; l =1, 2, . . . ,q (2.10) 06yj 6yupj ; j=1, . . . ,m

Trong đó α(x1, . . . ,xn) là hàm cung cấp giá trị tối ưu hàm mục tiêu của bài toán (2.8) - (2.10) cho các giá trị nhất định của các biến phức tạp x1, . . . ,xn. Cần lưu ý rằng hàmα(x1, . . . ,xn) là lồi như định lý dưới đây.

Định lí 2.3. (Tính lồi củaα(x1, . . . ,xn))

Hàm α(x1, . . . ,xn) được định nghĩa như (2.8) - (2.10) là lồi.

Chứng minh. . Nếu tính rằng, miền khả thi gắn liền với bài toán QHTT (2.5) - (2.7) có cấu trúc của một đa diện lồi, rõ ràng là miền khả thi liên quan đến hàm α(x1, . . . ,xn) định nghĩa bởi (2.8) - (2.10) là một tập hợp con của một trong những tập ban đầu, giới hạn trong các giá trị cố định của các biến phức tạp x1, . . . ,xn, và xem xét rằng các biến này là bên trong miền khả thi định nghĩa bởi các ràng buộc (2.6) - (2.7). Sau đó, hãy xem xét hai nghiệm khả thi của bài toán (2.5) - (2.7) v(1) =

x(1),y(1)T

v(2) =

x(2),y(2)T

trong một cách mà cho các biến phức tạp x(1) =

x1(1), . . . ,xn(1)T

x(2) =

x(2), . . . ,x(2)T

α x(1) = mj=1 djy(j1) α x(2) = mj=1 djy(j2)

Xét một sự kết hợp lồi tuyến tính củav(1) vàv(2). Theo định nghĩa của tập lồi, bên trong miền khả thi được định nghĩa bởi các ràng buộc (2.6) - (2.7), một trong những nhận v(3) =λv(1)+ (1−λ)v(2) =λ x (1) y(1) ! + (1−λ) x (2) y(2) ! = x (3) y(3) !

Hàm mục tiêu của bài toán (2.8) - (2.10) có thể được đánh giá tại y(3), kết quả mj=1 djy(j3)= mj=1 dj λy(j1)+ (1−λ)y(j2) =λ mj=1 djy(j1)+ (1−λ) mj=1 djy(j2) =λα x(1) + (1−λ)α x(2)

Mặt khác, bài toán (2.8) - (2.10) có thể được giải cho x(3) =λx(1) + (1−

λ)x(2) kết quả trongy∗với giá trị hàm mục tiêu α

x(3) = ∑m j=1 djyj. Chú ý rằng ∑m j=1 djyj 6 mj=1 djy(j3). Kết quả là α x(3) 6λα x(1) + (1−λ)α x(2) , từ đó dẫn đến tính lồi của hàm α(x1, . . . ,xn). Thuật toán

Đầu vào.Một bài toán quy hoạch tuyến tính với những biến phức tạp, và giá trị sai sốυđể điều chỉnh sự hội tụ.

Đầu ra.Nghiệm của bài toán quy hoạch tuyến tính thu được sau khi sử dụng thuật toán phân rã Benders.

Bước 0.Cài đặt ban đầu. Biến lặp ban đầuν=1. Giải bài toán chủ ban đầu dưới đây min x1,...,xn,α ni=1 cixi+α, với 0≤xixiup; i=1, . . . ,n; ααdown.

Bài toán này có nghiệm tầm thường α(1) = αdownxi(1) =0 nếu ci ≥ 0, và

xi(1)= xupi nếuci <0.

Bước 1.Nghiệm bài toán con. bài toán con dưới đây được giải quyết

min y1,...,ym mj=1 djyj, với ni=1 alixi + ∑m j=1 eljyjb(l); l =1, . . . ,q; 0≤yjyupj ; j=1, . . . ,m; xi =x(ν)i :λi; i=1, . . . ,n.

Nghiệm của bài toán này là y(ν)1 , . . . ,y(ν)m , với những giá trị biến đối ngẫu

λ(ν)1 , . . . ,λ(ν)n . (adsbygoogle = window.adsbygoogle || []).push({});

Bước 2. Kiểm tra sự hội tụ. Tính toán một cận trên giá trị tối ưu của hàm mục tiêu của bài toán ban đầu

z(ν)up = ni=1 cix(ν)i + mj=1 djy(ν)j ,

và tính toán một cận dưới giá trị tối ưu của hàm mục tiêu của bài toán ban đầu

z(ν)down =

n

Cần lưu ý rằng giới hạn không cần phải được tính toán, tức là nếu

mj=1djy(ν)jα(ν) <ε, dừng, nghiệm tối ưu là x(ν)1 , . . . ,xn(ν) vày(ν)1 , . . . ,y(ν)m .

Bước 3.Nghiệm bài toán chủ. Cập nhật biến lặpνν+1. Giải bài toán chủ

min x1,...,xn,α ni=1 cixi+α, với (*) ∑m j=1 djy(ik)+ ni=1 λi(k)(xixi(k))≤α; k=1, . . . ,ν−1; 0≤ xixupi ; i =1, . . . ,n ααdown.

Một khi nghiệm của bài toán này đã thu được, các thuật toán tiếp tục ở bước 1.

Trong Mục trước và vì lợi ích của sự đơn giản, nó đã được coi là trường hợp đặc biệt, trong đó phân rã dẫn đến một bài toán con duy nhất.

Đối với trường hợp tổng quát của nhiều bài toán, lưu ý rằng các giá trị của các biến đối ngẫu thu được trong mỗi bài toán con, sau khi sửa chữa biến phức tạp với những giá trị nhất định, là khác nhau. Chúng được ký hiệu là

λ(i,sk), với k là biến đếm lặp, i là chỉ số tương ứng với biến phức tạp i, và s là chỉ số bài toán con.

Ràng buộc bài toán chủ (*) cho trường hợp tổng quát này được xây dựng như mj=1 djy(ik)+ ri=1 ni=1 λi,s(k)(xixi(k))≤α; k=1, . . . ,ν−1.

Nếu biến đối ngẫu được lấy cho tất cả các bài toán ở bước 1, và bài toán chủ trên được giải quyết ở bước 3 thay vì công thức ban đầu một, các thuật toán phân rã vẫn không thay đổi.

Xét bài toán sau min x1,x2,y1,y2,y3z=−2y1 −y2+y3+3x1−3x2, với y1 +x1 +x2 ≤3 2y2 +3x1 ≤12 y3 −7x2 ≤ −16 −x1 +x2≤2 x1,x2,y1,y2,y3 ≥0

Nghiệm tối ưu của bài toán này là x∗1 = 0, 3; x2∗ = 2, 3; y1∗ = 0, 4; y∗2 = 5, 6; vày3∗=0, 0với một giá trị hàm mục tiêu bằngz∗=−12, 43.

Nếu các biến x1,x2 được xem là các biến phức tạp, bài toán trên được giải quyết bằng cách sử dụng thuật toán phân rã Benders.

Bước 0.Khởi đặt. Biến đếm được khởi đặt,ν=1. Bài toán chủ ban đầu được giải quyết

min

x1,x2,α3x1 −3x2 +α, với −x1+x2 ≤2

α ≥ −100

Nghiệm của bài toán này là x(11) =0, 0; x2(1) =2, 0; α(1)=−100.

Bước 1.Nghiệm bài toán con. Những bài toán con dưới đây được giải quyết Bài toán con đầu tiên là

min y1 z1 =−2y1, với y1+x1 +x2 ≤3 x1 =0 :λ1,1; x2 =2 :λ2,1; y1 ≥0.

mục tiêuz1(1)=−2, 0. Bài toán con thứ hai là min y2 z2 =−y2, với y2+3x1 ≤12 x1 =0 :λ1,2; x2 =2 :λ2,2; y2 ≥0.

Bài toán có nghiệm là y(21) = 6, 0; λ1,2(1) = 1, 5; λ(2,21) = 0, 0 và một giá trị hàm mục tiêuz2(1)=−6, 0.

Các bài toán con thứ ba là không khả thi, các biến giả đểv3vàwđược đưa vào bài toán con này

min y3,v3,w z3 =y3+20(v3+w), với y2 −7x2+v3−w≤ −16; x1 =0 :λ1,3; x2 =2 :λ2,3; y3 ≥0.

Nghiệm bài toán lày3(1)=0; v3 =0; w=2; λ1,3(1)=0; λ2,3(1)=−140và một giá trị hàm mục tiêuz3(1)=40. (adsbygoogle = window.adsbygoogle || []).push({});

Các nghiệm hoàn chỉnh của tất cả các bài toán lày(11) =1; y2(1) =6; y(31) = 0; λ(11) = λ1,1(1)+λ(1,21) +λ(1,31) =3, 5; λ(21) =λ2,1(1)+λ2,2(1) +λ(2,31) =−138 và một giá trị hàm mục tiêuz(1)=z(11)+z2(1)+z(31) =32.

Bước 2.Kiểm tra sự hội tụ. Một cận trên của giá trị tối ưu hàm mục tiêu được tính toán như sau

Một cận dưới của giá trị tối ưu hàm mục tiêu được tính toán như sau

z(down1) =3x(11)−3x(21)+α(1)=−106.

Hiệu số z(up1)−z(down1) =132không bằng 0, do đó quá trình tiếp tục.

Bước 3. Nghiệm bài toán chủ. Biến đếm được khởi đặt, ν= 1+1= 2. Bài toán chủ dưới đây được giải quyết

min

x1,x2,α3x1 −3x2 +α, với

32+3, 5x1−138(x2−2)≤α;

x1 +x2 ≤2;

α≥ −100.

Nghiệm bài toán này là x(12) =1; x2(2) =3; α(2) =−100. Giá trị hàm mục tiêu làz(2) =−106. Thuật toán tiếp tục trong bước 1.

Bước 1.Nghiệm bài toán con. Những bài toán con dưới đây được giải quyết. Bài toán con đầu tiên là không khả thi, những biến giảv1vàwđược đưa vào trong bài toán

min y1,v1,w z1 =−2y1 +20(v1 +w), với y1 +x1 +x2+v1−w≤3; x1 =1 :λ1,1; x2 =3 :λ2,1; y1 ≥0.

Nghiệm bài toán là y(12) =0; v1 =0; w =1; λ(1,12) =20; λ(2,12) =20và một giá trị hàm mục tiêuz1(2)=−19, 3.

Bài toán con thứ hai là:min y2 z2 =−y2, với y2+3x1 ≤12; x1 =1 :λ1,2; x2 =3 :λ2,2; y2 ≥0.

Nghiệm bài toán là y(22) =4, 5; λ1,2(2) =1, 5; λ(2,22) = 0 với một giá trị hàm mục tiêuz2(2)=−4, 5.

Bài toán con thứ ba là: min

y3 z3 =y3, với

y3 −7x2 ≤16;

x1 =1 :λ1,3;

x2 =3 :λ2,3;

y3 ≥0.

Nghiệm bài toán lày3(2)=0; λ1,3(2) =0; λ2,3(2)=0với một giá trị hàm mục tiêu

z(32) =0.

Các nghiệm hoàn chỉnh của tất cả các bài toán lày(12)=0; y2(2)=4, 5; y3(2)= 0; λ(12) =21, 5; λ2(2) =20và một giá trị hàm mục tiêu z(2) =14, 8.

Bước 2.Kiểm tra sự hội tụ. Một cận trên của giá trị tối ưu hàm mục tiêu được tính toán như sau

zup(2) =−2y1(2)−y2(2)+y(32)+3x1(2)−3x(22) =8, 7.

Một cận dưới của giá trị tối ưu hàm mục tiêu được tính toán như sau

z(down2) =3x(12)−3x(22)+α(2)=−106. (adsbygoogle = window.adsbygoogle || []).push({});

Hiệu số z(up2)−z(down2) =114, 7không bằng 0, do đó quá trình tiếp tục.

toán chủ dưới đây được giải quyết min x1,x2,α3x1 −3x2 +α, với 32+3, 5x1 −138(x2 −2)≤α; 14, 8+21, 5(x1−1) +20(x2−3)≤α; −x1+x2 ≤2; α≥ −100.

Nghiệm bài toán này là x(13) = 13; x2(3) = 73; α(3)=−12, 3. Giá trị hàm mục tiêu làz(3) =−18, 3. Thuật toán tiếp tục trong bước 1.

Bước 1. Nghiệm bài toán con. Nghiệm bài toán con. Những bài toán con dưới đây được giải quyết

Bài toán con đầu tiên là:min

y1 z1 =−2y1, với

y1 +x1 +x2 ≤3;

x1 = 13 :λ1,1;

x2 = 73 :λ2,1;

y1 ≥0.

Bài toán có nghiệm là y(13) = 0, 3; λ1,1(3) = 2, 0; λ(2,13) = 2, 0 và một giá trị hàm mục tiêuz1(3)=−0, 7.

Bài toán con thứ hai là:min

y2 z2 =−y2, với

y2 +3x1 ≤12;

x1 = 13 :λ1,2;

x2 = 73 :λ2,2;

y2 ≥0.

Bài toán có nghiệm là (3)

mục tiêuz2(1)=−5, 5. Bài toán con thứ ba là:min y3 z3 =y3, với y3 −7x2 ≤ −16; x1 = 13 :λ1,3; x2 = 73 :λ2,3; y1 ≥0.

Bài toán có nghiệm lày3(3) =0; λ1,2(3) = 0; λ(2,23) =0, 0và một giá trị hàm mục tiêuz2(3)=0.

Các nghiệm hoàn chỉnh của tất cả các bài toán lày(13)=0, 3; y2(3)=5, 5; y(33)= 0; λ(13) =3, 5; λ2(3)=2và một giá trị hàm mục tiêuz(3) =−6, 2.

Bước 2.Kiểm tra sự hội tụ. Một cận trên của giá trị tối ưu hàm mục tiêu được tính toán như sau

zup(3)=−2y1(3)−y(23)+y3(3)+3x(13)−3x(23) =−12, 2.

Một cận dưới của giá trị tối ưu hàm mục tiêu được tính toán như sau

z(down3) =3x1(3)−3x2(3)+α(3)=−18, 3.

Hiệu số z(up3)−z(down3) =6, 1không bằng 0, do đó quá trình tiếp tục.

Bước 3. Nghiệm bài toán chủ. Biến đếm được khởi đặt, ν= 3+1= 4. Bài toán chủ dưới đây được giải quyết

min x1,x2,α3x1 −3x2 +α, với 32+3, 5x1 −138(x2 −2)≤α; 14, 8+21, 5(x1−1) +20(x2−3)≤α; −6, 2 +3, 5(x1− 13) +2(x2 − 73)≤α; −x1+x2 ≤2; α≥ −100.

Nghiệm bài toán này là x(14) = 0, 28; x2(4) = 2, 28; α(4) = −6, 4. Giá trị hàm mục tiêu làz(4) =−12, 4. Thuật toán tiếp tục trong bước 1.

Bước 1. Nghiệm bài toán con. Nghiệm bài toán con. Những bài toán con dưới đây được giải quyết (adsbygoogle = window.adsbygoogle || []).push({});

Bài toán con đầu tiên là:min

y1 z1 =−2y1, với

y1+x1 +x2 ≤3;

x1 =0, 28 : λ1,1;

x2 =2, 28 : λ2,1;

y1 ≥0.

Bài toán có nghiệm là y(14) = 0, 4; λ1,1(4) = 2, 0; λ(2,14) = 2, 0 và một giá trị hàm mục tiêuz1(4)=−0, 8.

Bài toán con thứ hai là:min

y2 z2 =−y2, với

y2+3x1 ≤12;

x1 =0, 28 : λ1,2;

x2 =2, 28 :λ2,2;

y2 ≥0.

Bài toán có nghiệm là y(24) = 5, 6; λ1,2(4) = 1, 5; λ(2,24) = 0, 0 và một giá trị hàm mục tiêuz2(4)=−5, 6. Bài toán con thứ ba là:min

y3 z3 =y3, với

y3 −7x2 ≤ −16;

x1 =0, 28 :λ1,3;

x2 =2, 28 :λ2,3;

y3 ≥0.

Bài toán có nghiệm lày3(4) =0; λ1,2(4) =0; λ(2,24) =0, 0và một giá trị hàm mục tiêuz2(4)=0.

tính toán như sau

zup(4)=−2y1(4)−y(24)+y3(4)+3x(14)−3x(24) =−12, 4.

Một cận dưới của giá trị tối ưu hàm mục tiêu được tính toán như sau

z(down4) =3x1(4)−3x2(4)+α(4)=−12, 4.

Hiệu số z(up4)−z(down4) là bằng 0, do đó nghiệm tối ưu được tìm thấy.

Nghiệm đó là x1∗=0, 3; x2∗=2, 3; y∗1 =0, 4; y2∗=5, 6; vày∗3 =0, 0với một giá trị hàm mục tiêu bằngz∗=−12, 4.

Chương 3

Phân rã trong quy hoạch phi tuyến

Chương này phân tích những vấn đề phi tuyến với cấu trúc phân hủy. Trường hợp ràng buộc phức tạp được xem xét, và 2 phương pháp phân tích nói về trường hợp ràng buộc phức tạp: phương pháp giảm dư Lagrange (LR) và phương pháp phân rã Lagrange gia tăng (ALD). Quá trình còn lại trình bày cách tính toán hiệu quả nhất trong hầu hết các trường hợp.

Như trước bắt đầu trong trường hợp tuyến tính, những ràng buộc phức tạp là những ràng buộc mà nếu giảm bớt đi thì kết quả phân tích trong một vài vấn đề đơn giản hơn. Như một sự lựa chọn, kết quả bài toán có được đến mức mà cấu trúc đáp án của nó là đơn giản. Trường hợp phân rã là điều thú vị nhất trong bài tập và hầu hết được đề cập trong chương này. Trong phần 3.3 và 3.4, hai thuật toán phân rã khác nhau được nghiên cứu. Mục 3.3 và 3.4 theo thứ tự trình bày định lý cơ bản của phương pháp giảm dư Lagrange (LR) và những quá trình phân rã Lagrange gia tăng. (adsbygoogle = window.adsbygoogle || []).push({});

3.1 Phương pháp giảm dư Lagrange 3.1.1 Sự phân rã

Với kỹ thuật phương pháp giảm dư Lagrange có ưu điểm tới bài toán quy hoạch toán học, bài toán (P) thường có cấu trúc sau

min x f (x), với a(x) =0, b(x)60, c(x) =0, d(x)60, trong đó f (x):RnR,a(x):RnRna,b(x):RnRnb,c(x):RnRnc,

d(x):RnRnd với na, nb, nc, nd là những đại lượng vô hướng không đổi, những ràng buộc c(x) =0và d(x)≤0là những ràng buộc phức tạp, tức là những ràng buộc đó nếu giảm bớt đi, bài toán (P) trở nên cực kì đơn giản. Hàm Lagrange được định nghĩa như sau

L(x,λ,µ) = f (x) +λTc(x) +µTd(x),

trong đó λµlà hệ số vectơ Lagrange. Giả thiết tính chính quy và tính lồi hàm đối ngẫu được định nghĩa như sau

Φ(λ,µ) =minL(x,λ,µ), thỏa mãn

a(x) =0,

b(x)60.

Hàm đối ngẫu là lõm và trong trường hợp tổng quát không khả vi. Đây là một sự kiện cơ bản đó là khai thác những thuật toán được miêu tả trong chương này.

Bài toán đối ngẫu (DP) sau đó được định nghĩa như sau

min

λ,µ

Φ(λ,µ), vớiµ≥0

Quá trình phân rã ở phương pháp giảm dư Lagrange là dễ nhìn nếu hàm đối ngẫu được đánh giá dễ dàng theo thứ tự cho các giá trịλµcủa những vectơ hệ số λµ. Nói cách khác, nếu nó dễ dàng để giải được gọi là bài toán giảm dư gốc (RPP) choλµ, tức là bài toán

minL x,λ,µ

, thỏa mãn

a(x) =0,

b(x)60.

Bài toán trên là điển hình cho những bài toán con, tức là

min xi;i=1,...,n ni=1 Li xi,λ,µ , thỏa mãn ai(xi) =0, i =1, . . . ,n; bi(xi)≤0, i =1, . . . ,n.

Sự phân tích này tạo điều kiện thuận lợi cho nghiệm của nó và thường cho phép giải thích vật lý và kinh tế.

Một phần của tài liệu Bài toán quy hoạch phi tuyến với kỹ thuật phân rã và ứng dụng (Trang 36)