2.1.1. Giới thiệu chung về QHPT
Bài toán QHPT sẽ nói dưới đây không phải là bài toán QHPT tổng quát, mà ta chỉ xét lớp bài toán QHPT có hàm mục tiêu là hàm khả vi liên tục (tới bậc tùy ý) trên tập mở bao tập phương án D. Bản thân tập phương án cũng được xác định bởi các hàm số trong các ràng buộc là các hàm khả vi liên tụcnbiến. Cụ thể ta có bài toán sau
f(x) →min(max), gi(x)(≤;=;≥)bivới(i=1,m). (2.1) Trong đóx ∈ Rn,bi ∈ Rvớii =1, ...,m; f(x)vàgi(x)có(i = 1, ..,m) là các hàmn biến độc lập. Ngoài ra, trong các hàm f(x)vàgi(x)với(i=1, ..,m)phải có ít nhất một hàm phi tuyến. Luôn giả thiết các hàmgi(x)là các hàm liên tục. Hàm mục tiêu
f(x)khả vi liên tục trên tập mở bao tập phương ánD.
Tuy bài toán QHPT đã được giới hạn như trên nhưng tính phi tuyến của bài toán luôn tạo ra nhưng phức tạp đáng kể khi tiệm cận với nó. Với bài toán QHPT người ta sử dụng phương pháp tiệm cận giống như bài toán có ràng buộc cổ điển
trong giải tích- tức là tìm bài toán cực trị có ràng buộc về bài toán cực trị tự do rồi tìm cách đưa về điều kiện Kunh- Tucker. Với một nhóm điều kiện đủ mạnh thì điều kiện Kunh- Tucker có thể trở thành điều kiện cần và đủ đối với lời giải của(2.1).
2.1.2. Bài toán QHPT
Bài toán tổng quát QHPT có dạng như (2.1), tuy nhiên để thuận tiện cho việc giải thích ý nghĩa thực tế ta biểu diễn dưới các dạng cụ thể như sau
• f(x) →max gi(x) ≤bi;i=1,m, xj ≥0;j=1,n. (2.2) • f(x) →min gi(x) ≥bi;i=1,m, xj ≥0;j=1,n. (2.3)
Về mặt hình thức thì cả ba bài toán(2.1),(2.2)và(2.3)khác nhau, song cũng giống như QHTT ta có thể dùng các phép biến đổi tương đương để đưa bài toán này về bài toán kia. Cụ thể như sau
a. f(x)→max ⇔ f1(x) = −f(x) →min . b. gi(x) ≤bi ⇔ −gi(x) ≥ −bi. c. gi(x) =i ⇔ gi(x) ≥bi, gi(x) ≤bi. d. gi(x) ≤bi ⇔ gi(x) +si =bi, si ≥0. e. gi(x) ≥bi ⇔ gi(x)−si =bi, si ≥0.
2.1.3. Các vấn đề cần giải quyết khi giải bài toán QHPT
Trước khi đi vào chi tiết, ta sẽ đề cập tới bản chất của các thuật toán giải bài toán QHPT nói chung.Xét bài toán tổng quát có dạng
f(x) →min, x ∈ D,D ∈ Rn. (2.4)
với bài toán(2.4)tùy theo cấu trúc của nó mà người ta đưa ra thuật toán khác nhau. Cho tới thời điểm này, số phương pháp được đề xuất là rất lớn và đa dạng. Những phương pháp này đều có ý tưởng chung là thuật toán xiết chặt dần. Tùy theo dãy điểm nằm trong hay nằm ngoài tập Dmà được chia làm hai nhóm phương pháp lớn là phương pháp điểm trong hay điểm ngoài hoặc phối hợp với cả hai phương pháp trên.
Ở đây ta sẽ xét kỹ phương pháp điểm trong. Người ta xuất phát từ một điểm x0 ∈ D, khi đó∇f(x0)là hướng tăng nhanh nhất của f(x)tại x0(hay(∇f(x0)còn được gọi là hướng tăng cục bộ của f(x)tạix0). Ta lại có ở phần trước tậpD(x0)là tập các hướng chấp nhận được tạix0và nếu lấyd∈ D(x0)thì
∂f(x0,d) = ∇f(x0)d,
là đạo hàm theo phươngdcủa hàm f(x)tạix0, nó cho biết mức thay đổi của hàm f(x0)tạix0theo phươngd. Rõ ràng
• Nếud ∈ D(x0)có∇f(x0)d>0thìdđược gọi là hướng chấp nhận được tăng của f(x)tạix0.
• Nếud∈ D(x0)có∇f(x0)d<0thìdđược gọi là hướng chấp nhận được giảm của f(x)tạix0.
• Nếu d ∈ D(x0) có ∇f(x0)d = 0 thì d được gọi là hướng chấp nhận được không đổi của f(x)tạix0.
Phương pháp xiết chặt dần trong dãy điểm trong có thể được mô tả như sau: Chọn một điểmx0 ∈ Dvà kiểm tra xem tạix0có hướng chấp nhận được giảm của f(x)tại đó hay không? Trong trường hợp tại đó có hướng chấp nhận giảm của f(x) ta tìm cách điều chỉnhx0sang x1 ∈ Dsao cho f(x1) ≤ f(x0). Thuật toán cứ vậy tiếp diễn trên một dãy phương án dạngx0,x1, ...,xk, ...hay
xk vớik =0, 1, ...
thỏa mãn
f(x0)≥ f(x1)≥... ≥ f(xk) ≥.... (2.5) Dãy phương án
xk ,k = 0, 1, ... thỏa mãn (2.5) gọi là phương án xiết chặt dần. Như vậy, thuật toán xiết chặt dần nêu trên là sự kết hợp hai khái niệm gradient và hướng chấp nhận được tại một phương án. Có rất nhiều phiên bản thuật toán khác nhau được đưa ra cho các dạng bài toán khác nhau. Ta gọi phương pháp loại này là phương pháp hướng có thể. Khi đó các vấn đề cần giải quyết gồm:
Vấn đề 1. Tìm phương án xuất phátx0như thế nào? Rõ ràng việc tìm phương án xuất phát có liên quan đến vấn đề khảo sát xem tập phương án D = ∅ hay D 6=∅. Đây là bài toán khó, thậm chí rất khó khi các ràng buộc của bài toán có tính chất giải tích phức tạp.
Vấn đề 2. Với một điểm xk ∈ D thì bằng các nào xác định được tại đó không có hướng chấp nhận được giảm của f(x) và nếu tại xk không có hướng chấp nhận giảm của f(x)thì xk có tính chất gì? Liệuxk có phải là lời giải của bài toán hay không? Nếu taixk có hướng chấp nhận giảm của f(x)thì việc điều chỉnhxksangxk+1như thế nào?
Vấn đề 3. Nếu quá trình điều chỉnh trên diễn ra với dãy
xk với k = 0, 1, ...thì liệu dãy
f(xk) vớik = 0, 1, ... có hội tụ không? Giả sử tồn tại lim
k→+∞ f(xk) và hữu hạn thì giới hạn này có phải là giá trị tối ưu của f(x)trênD?
Cả ba vấn đề trên là hiện hữu và rất phức tạp. Với các bài toán QHPT người ta đã giải quyết được các vấn đề trên với nhiều lớp bài toán cụ thể nhưng có thể khẳng
định chung là lược đồ điều chỉnh trên chỉ dẫn đến cực trị địa phương của f(x)trên Dvà có thể không hội tụ.
Mặc dù điều kiệnKKTđã chỉ ra điều kiện tồn tại nghiệm của bài toán qui hoạch lồi nhưng không đưa ra nột thuật toán cụ thể nào để giải một bài toán. Có rất nhiều phương pháp khác nhau được áp dụng cho các bài toán qui hoạc lồi với cấu trúc khác nhau. Hai trong các thuật toán đó là thuật toán siêu phẳng cắt Kelley và thuật toán Frank- Wolfe.
2.2. Tuyến tính hóa ràng buộc2.2.1. Bài toán và hướng giải quyết 2.2.1. Bài toán và hướng giải quyết
Xét bài toán tối ưu lồi với hàm mục tiêu tuyến tính
f(x) = cTx →min, (CTD)
x ∈ D ={x∈ Rn : gi(x) ≤0,i =1, 2, ...,m}.
vớiDlà một tập lồi compac, khác rỗng vàgi(x)với(i=1,m)là các hàm lồi khả vi trên không gian vectorRn.
Sau đây là hướng giải quyết của phương pháp tuyến tính hóa ràng buộc giải bài toán (CTD) do Kelley đề xuất năm 1960 (còn được gọi là phương pháp siêu phẳng cắt Kelley).
Tại mỗi bước lặp (k =1, 2, ...), ta sẽ thực hiên lần lượt các thao tác sau:
• Tập lồi compacDđược thay bằng đa diện lồiDk sao cho D1 ⊃D2⊃...Dk ⊃ Dk+1 ⊃...D.
với
f(x) = cTx →min, (CTDk)
x ∈ Dk.
• Dãy nghiệm tối ưu
xk của(CTDk)hội tụ tới nghiệm của bài toán(CTD)
lim
k→∞cTxk =minncTx: x∈ Do
2.2.2. Thuật toán siêu phẳng cắt Kelley
Nói chung là hướng giải quyết sẽ làm hạn chế dần (thu nhỏ)Dkkhikcàng tăng. Nhờ đó, mà tậpDkdần về tậpD. Khi đó ta sẽ tìm được nghiệm xấp xỉx∗k ∈ Dkmà thỏa mãn các bất đẳng thứcgi(x) ≤0,i =1,m. Từ hướng giải quyết đó ta đi phân tích tiến trình thuật toán dựa trên sơ đồ khối được trình bày sau đây.
Sơ đồ khối của thuật toán
Chọn p điểm ban đầu:x1... xp. p:=1,2,... xp+k∈Dkđạt: min {cTx: x∈Dk} Dừng Đ k:=k+1 Tính: hk,i= gi(xk)(x-xk)+gi(xk) Với:k=1,…,p,i=1,…,m D1={x∈Rn: hk,i≤0}. Đặt: k=1 xp+k∈D Ik={i: gi(xp+k)>0} S Dk+1=Dk ∩ {x∈Rn: gi(xk+p)(x-xk+p)+gi(xk+p)≤ 0}
Hình 2.1: Sơ đồ khối phương pháp siêu phẳng cắt Kelley.
Tiến trình của thuật toán
Bước 1. (Xây dựng đa diện lồi ban đầu D1 ∈ D). Chọn tùy ý p điểmx1,x2, ...,xp với p ≥1và dựng tại mỗi điểmxkđã chọn(k=1, 2, ..,p)các siêu phẳng sao cho mỗi siêu phẳng tiếp xúc với một mặty= gi(x)vớii =1, 2, ...,mtức là ta đi lập các hàm tuyến tính (afin)
Do hàmgi(x)lồi nên
hjk(x) =gi(x(k)) +∇gi(x(k))x−x(k)+gi(x(k)) ≤gi(x), (2.1) ∀x ∈Rn,k =1,p;i=1,m.
ĐặtD1 =
x∈ Rn : hik ≤0,k =1,p;i=1,m .Với mỗi x ∈ Dthì fi(x) ≤ 0
với∀i, suy rahik ≤0nên D1⊇ D.
Bước 2. (Bước lặp k=1,2,...)
(a) Ở bước lặpk, tìm điểmxk+p ∈ Dknghiệm tối ưu của bài toán quy hoạch tuyến tính
cTxk+p =minncTx: x∈ Dko.
(b) Nếuxk+p ∈ Dthìxp+klà nghiệm tối ưu của bài toánCTDvà dừng thuật toán vìD ⊂Dk và
cTxk+p =minncTx: x∈ Dko≤minncTx: x∈ Do ≤minnDc,x(p+k)Eo.
(c) Nếu x(p+k) ∈/ D thìx(p+k) vi phạm ít nhất một ràng buộc gi(x) ≤ 0nào đó. Ký hiệu
Ik =ni∈ {1, 2, ...,m} : gi(x(p+k))>0o.
Đặt
Dk+1= Dk∩nx ∈ Rn : ∇gi(x(p+k))(x−x(k)) +gi(x(p+k)) ≤0,i ∈ Iko.
(2.6)
(d) Đặtk ←k+1, quay lại bước k.
1. Xét bài toán quy hoạch lồi
min{f(x) : gi(x)≤0,i =1, 2, ...,m}, (CP) với các hàm f, gi lồi có thể đưa về bài toán với hàm mục tiêu tuyến tính nhờ thêm vào bài toán một biến mớixn+1và một ràng buộc mới f(x)≤ xn+1. Xét bài toán mới
min
xn+1 : gi(x)≤0,i=1,m,gm+1(x) ≤ , (CP1) vớigm+1(x) = f(x)−xn+1. Rõ ràng, hai bài toán(CP)và(CP1)tương đương với nhau theo nghĩawlà nghiệm tối ưu của(CP)khi và chỉ khi(w, f(w))là nghiệm tối ưu của(CP1).
2. Cũng có thể xây dựng đa diện ban đầu D1 ⊃ D theo một cách khác. Tìm p =n+1sốα1,α2, ...,αn vàβ(bằng trực quan hay bằng một cách nào đó) sao cho
αj ≤minxj : x∈ D ,j =1,n, β ≥max{x1+x2+...+xn : x∈ D}.
Chẳng hạn, đặtαj = −Mvới mọi jvàβ= n.Mvới M>0đủ lớn. Xây dựng đa diện
D1 =x ∈ Rn : x1+x2+...+xn ≤β,xj ≥αj,j=1,n .
Dễ thấy rằng D1 là một đơn hìnhn− chiều chứaD vàD1 cón+1đỉnh là xn+1 = (α1,α2, ...,αn), đỉnhxjnhận từxn+1bằng cách thayαjbởiβ, j=1,n.
3. Thay vào(2.6)ta có thể đặt
Dk+1= Dk∩nx ∈ Rn : ∇gi∗(xp+k)(x−xp+k) +gi∗(xp+k) ≤0o, trong đó gi∗(xp+k) = max
gi(xp+k) : 1≤i≤m , nghĩa là đưa vào Dk bất đẳng thức tương ứng ràng buộc bị vi phạm nhiều nhất.
4. Bài toánCPk+1nhận đượcCPkbằng cách thêm vào một hay một số ràng buộc bất đẳng thức tuyến tính, vì thế để giảiCPk+1ta có thể dùng thuật toán đơn hình đối ngẫu, xuất phát từ nghiệm tối ưu đã cóxp+k củaCPk. Tuy vậy, tổng số ràng buộc thêm vào tăng dần là điểm hạn chế chủ yếu của phương pháp này.
5. Các bất đẳng thức thêm vàoDk sẽ cắt bỏ một phần củaDk chứa điểmxp+k, bởi vì
∇gi(xp+k)(xp+k−xp+k) +gi(xp+k) = gi(xp+k) >0,∀i∈ Ik. Vì thế, các siêu phẳng
Hki(x) =nx ∈ Rn : gi(xp+k)(x−xp+k) +gi(xp+k) =0o,i ∈ Ik,
được gọi là các siêu phẳng cắt và tách đa diện lồiDk+1với điểmxp+k ∈/ Dk+1. Tên gọi phương pháp siêu phẳng cắt bắt nguồn từ đó.
6. Ở mọi bước k, ta luôn có ∇gi(xp+k) 6= 0, với mọi i ∈ Ik, bởi vì nếu có một i ∈ Ik sao cho∇gi(xp+k) =0thì dogilà hàm lồi nên vớiiđó ta có
gi(x)≥ gi(xp+k) +∇gi(xp+k)(xp+k−xp+k) = gi(xp+k)>0,∀x∈ Rn,
và điều này cho thấy miền chấp nhận đượcDcủa bài toán(LCP)bằng rỗng.
Chú ý. Nếu g1,g2, ...,gm là các hàm lồi khả vi trên Rn và miền chấp nhận được D của bài toán (LCP) là tập lồi compac khác rỗng thì dãy
xk nhận được trong thuật toán trên có một dãy connxkqohội tụ tới nghiệm tối ưu của bài toán, theo nghĩa
lim
2.2.3. Sự hội tụ của thuật toán
Theo giả thiết của hàm lồi, phương pháp siêu phẳng cắt lồi toàn cục hội tụ có thể áp dụng các định lý hội tụ dùng để chứng minh điều này, nhưng để dễ dàng hơn trong trường hợp này ta đi chứng minh trực tiếp.
Định lý 2.1. [10]Cho các hàm lồi gi; vớii = 1, 2, ...,p. khả vi liên tục và giả sử thuật toán siêu phẳng cắt tập lồi tạo ra chuỗi các điểm{wk}, bất kỳ điểm giới hạn nào của chuỗi đều là nghiệm của bài toán tối ưu.
Chứng minh. Giả sử{wk} vớik ∈ K là một dãy con hội tụ của w, lấy thêm một dãy con nếu cần thiết chúng ta giả sử rằng chỉ số itương ứng ở bước 2của thuật toán được cố định trong suốt quá trình của thuật toán. Nếuk ∈ K,k0 ∈ K,k0 > k thì ta có
gi(wk) +∇gi(wk)(wk0−wk) ≤0, điều này có nghĩa rằng
gi(wk)≤ |∇gi(wk)| |(wk0 −wk)|. (***) Từ đó|∇gi(wk)|là giới hạn vớik ∈ K vế phải của(∗ ∗ ∗) dần về0khik,k0 dần về
∞. Vế trái cảu(∗ ∗ ∗)dần đến gi(w). Như vậygi(w) ≤ 0và chúng ta thấy rằngw là nghiệm của bài toán tối ưu.
Nếu f∗ là giá trị tối ưu cảu bài toán thì ta cócTwk ≤ f∗ với∀k. Từ đó wk thu được bằng cách giảm tối thiểu trên một tập có chứaS. Do đó, bằng ánh xạ liên tục cTw≤ f∗suy rawlà cực tiểu cần tìm.
2.2.4. Ví dụ minh họa
Tìm cực tiểu của hàm số
vớix ∈ D =nx ∈ R2 : (x1−3)2+ (x2−2)2−9≤0,−x1+ (x2−2)2+1≤0o. Bài toán này cón=2biến,m=2ràng buộc và
g1(x)≡ g1(x1,x2) = (x1−3)2+ (x2−2)2 ≥0, g2(x)≡ g2(x1,x2) = −x1+ (x2−2)2+1 ≤0.
Ta thấy rằng đây là bài toán quy hoạch lồi với hàm mục tiêu tuyến tính. Ta giải bài toán theo phương pháp đã trình bày ở trên. Trước tiên tính
∇g1(x) = (2x1−6; 2x2−4)T,∇g2(x) = (−1; 2x2−4)T.
Bước 1. Xây dựng đa diện ban đầuD1 ⊃D. Chọn ba điểm(p=3) :
x1= (2; 0)T,x2 = (2; 4)T vàx3= (6; 2)T. Ta xét lần lượt từng điểm 1. Vớix1 = (2; 0)T. Tính • ∇g1(x1) = (−2;−4)T,∇g2(x1) = (−1;−4)T. • g1(x1) =−4,g2(x1) =3. • h11 =∇g1(x1)(x−x1) +g1(x1) =2(−x1−2x2) ≤g1(x)≤0. • h12 =∇g2(x1)(x−x1) +g2(x1) =−x1−4x2+5 ≤g2(x) ≤0. 2. Vớix2 = (2; 4)T. Tính • ∇g1(x2) = (−2; 4)T,∇g2(x2) = (−1; 4)T. • g1(x2) =−4,g2(x2) =3. • h21 =∇g1(x2)(x−x2) +g1(x2) =2(−x1+2x2−8) ≤g1(x)≤0. • h22 =∇g2(x2)(x−x2) +g2(x2) =−x1+4x2−11 ≤g2(x) ≤0. 3. Vớix3 = (6; 2)T. Tính • ∇g1(x3) = (6; 0)T,∇g2(x3) = (−1; 0)T. • g1(x3) =0,g2(x3) = −5.
• h31 =∇g1(x3)(x−x3) +g1(x3) =6(x1−6) ≤g1(x)≤0.
• h32 =∇g2(x3)(x−x3) +g2(x3) =−x1+1 ≤g2(x) ≤0.
Đa diện lồiD1⊃ Dđược xác định bởi
D1≡nx ∈ R2 : hk,i(x) ≤0,k =1, 2, 3;i=1, 2o.
Hai ràng buộch11(x)vàh21là thừa. Do đó đa diệnD1được xác định D1 ≡nx ∈ R2 : x1+4x2≥5,−x1+4x2 ≤11, 1≤x1≤6o.
Bước 2. Bước lặpk=1, 2, ...
Bước lặp 1. Lần lượt theo trình tự sau 1. Giải quy hoạch tuyến tính(CTD1)
f(x) = x1+2x2→min,
với điều kiện
x1+4x2 ≥5, x1+4x2 ≤11, x1 ≤6, x1 ≥1.
nghiệm tối ưu của bài toánCTD1là x4 = (1, 1)T và f(x4) =3.
2. Do g1(x4) = −4vàg2(x4) = 1 > 0nên I1 = {2} và ta thực hiên bước tiếp theo.
3. Ta có∇g2(x4) = (−1,−2)T,
∇g2(x4)(x−x4) +g2(x4) = −(x1−1)−2(x2−1) +1 =−x1−2x2+4.
Đặt
D2 =D1∩nx∈ R2: ∇g2(x4)(x−x4) +g2(x4)≤0o =D1∩nx∈ R2: x1+x2≥4o.
Bước lặp 2. Tương tự như bước lặp1
1. Giải bài toán quy hoạch tuyến tính(CTD2)
min{f(x) =x1+2x2: x∈ D2}.
Nghiệm tối ưu bài toán(LP2)vàx5= (3;1 2)
T, f(x5) = 4.
2. Do g1(x5) = −6, 75vàg2(x5) = 0, 25 > 0 nên I2 = {2} và ta thực hiện bước tiếp theo.
3. Ta có∇g2(x5) = (−1,−4)T,
∇g2(x5)(x−x5) +g2(x5) = −x1−4x2+6, 75.
4. Đặt
D3 =D2∩nx∈ R2: ∇g2(x5)(x−x5) +g2(x5)≤0o
=D2∩nx∈ R2: x1+4x2≥6, 75o.
Đặt lại giá trịk:=k+1=3và chuyển sang bước lặpk=3.
Bước lặp 3. Lặp lại tính toán như bước2ta có 1. Giải bài toán quy hoạch tuyến tính(CTD3)