Thuật toán Frank - Wolfe

21 1.4K 13
 Thuật toán Frank - Wolfe

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Thuật toán Frank - Wolfe

Li m u Tất cả các ngành, các lĩnh vực dù hoạt động ở phơng diện nào thì mục đích cuối cùng cũng là giải các bài toán tối u của đơn vị mình. Việt Nam là một minh chứng. Trong xu thế hội nhập hiện nay, đặc biệt sau kí kết hiệp định thơng mại thế giới WTO, Việt Nam đang đứng trớc nhiều thử thách mới. Và cạnh tranh trên thơng trờng quốc tế là bài toán hàng đầu đối với các doanh nghiệp trong nớc. Do tính cấp thiết của thực tế nên em đã quyết định chọn đề tài: Thuật toán Frank-Wolfe- đây là thuật toán giải các bài toán quy hoạch lồi với các ràng buộc tuyến tính. Em hi vọng nó có thể góp một phần làm phong phú hơn kho tàng thuật toán giải các bài toán tối u. Bi vit ca em gm 3 phn ln (ngoi phn mc lc v phn ti liu tham kho): Th nht : Li m u Th hai : Ni dung Th ba : Kt lun Trong phn ni dung,em s trỡnh by 4 vn chớnh:1. Tng quan v quy hoch phi tuyn 2. Thut toỏn Frank-Wolfe3. Thớ d4. Chng trỡnh Gamside Cui cựng, em xin chõn thnh cm n cỏc thy giỏo,cụ giỏo khoa Toỏn kinh t ó to mụi trng cho em c hc tp v rốn luyn. Em ht sc bit n thy giỏo Ngụ Vn M ó giỳp em hon thnh ỏn mụn hc ny.Ni dung: 1 1. Tng quan v quy hoch phi tuyn1.1. Gii thiu chung v QHFT Bi toỏn QHFT s núi di õy khụng phi l bi toỏn QHFT thc tng quỏt, m ta ch xột lp bi toỏn QHFT cú hm mc tiờu l hm kh vi liờn tc( ti bc tu ý) trờn tp m bao tp phng ỏn D; bn thõn tp phng ỏn cng c xỏc nh bi cỏc hm s trong cỏc rng buc l cỏc hm kh vi liờn tc n bin. C th ta cú bi toỏn tng quỏt sau:==),1(),;;)((min(max))(mibxgxfii (1)Trong ú: ( ))(;,1, xfmiRbRxin=v ( )mixgi,1)( = l cỏc hm n bin c lp. Ngoi ra: trong cỏc hm )(xfv ( )mixgi,1)( = phi cú ớt nht mt hm phi tuyn; luụn gi thit cỏc hm ( )mixgi,1)( = l cỏc hm liờn tc; hm mc tiờu )(xfkh vi liờn tc trờn tp m bao tp phng ỏn D. Tuy bi toỏn QHFT ó c gii hn nh trờn, nhng tớnh phi tuyn ca bi toỏn luụn to ra nhng phc tp ỏng k khi tim cn vi nú. Vi bi toỏn QHFT ngi ta cng s dng phng phỏp tim cn ging nh bi toỏn cc tr cú rng buc c in trong gii tớch-tc l tỡm cỏch a bi toỏn cc tr cú rng buc v bi toỏn cc tr t do ri tỡm cỏch a ra iu kin Kunh- Tucker. Với một nhóm điều kiện bổ sung đủ mạnh thì điều kiện Kunh-Tucker cú th tr thnh iu kin cn v i vi li gii ca (1).1.2. Bi toỏn QHFT Bi toỏn tng quỏt QHFT cú dng nh (1); tuy nhiờn ụi khi thun tin trong vic gii thớch ý ngha kinh t ta cú th biu din cỏc dng c th sau:max)( xf 2 ≥≤0)(jiixbxg ),1(),1(njmi== (1.1) •min)( →xf ≥≥0)(jiixbxg ),1(),1(njmi== (1.2)Về mặt hình thức thì ba bài toán (1),(1.1), (1.2) 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. min)()(max)(1→−=⇔→ xfxfxfb. iiiibxgbxg −≥−⇔≤ )()(c. ≤≥⇔=iiiiibxgbxgixg)()()(d. ≥=+⇔≤0)()(iiiiiisbsxgbxge. ≥=−⇔≥0)()(iiiiiisbsxgbxg1.3. Điều kiện Kuhn-Tucker Trở lại bài toán tổng quát (1) ban đầu:=≥=≤→),1(),;;)((min(max))(mibxgxfiivới các giả thiết đã có về )(xfvà( )mixgi,1)( =, nếu cả m ràng buộc của (1) đều có dạng đẳng thức; m<n và các hàm( )mixgi,1)( = là hệ hàm độc lập thì bài toán (1) có thể xem là bài toán tìm cực trị tổng thể có ràng buộc đẳng thức trong giải tích toán học. Giải tích đã giải quyÕt bài toán này bằng cách đưa bài toán về bài toán cực trị tự do của hàm Lagrange có nghiệm luôn được xem là điều kiện cần đối với cực trị địa phương có điều kiện của f(x). 3 Tuy vậy, thuật toán này đôi khi cũng không thể giải quyết được một bài toán bất kỳ, trừ phi hàm f(x) có các tính chất giải tích bổ sung cần thiết. Đối với bài toán (1), hai nhà toán học H. W.Kuhn và A. W.Tucker cũng sử dụng cách tiệm cận tương tự và đã đưa ra một nhóm điều kiện gọi là điều kiện Kuhn-Tucker.Điều kiện Kuhn-Tucker được viết cho các bài toán :min)( →xf≥≥0)(jiixbxg ),1(),1(njmi== (1.2)Lập hàm Lagrange:∑−+= )(()(),( xgbyxfyxLiii mR;0 ∈≥ yy( nhân tử Lagrange)Khi đó điều kiện Kuhn-Tucker được thiết lập như sau: =∂∂≥≤∂∂=∂∂≥≥∂∂0;0;00;0;0iiiijjjjyLyyyLxLxxxL ),1(),1(minj==Ngược lại nếu bài toán có dạng tổng quát như sau:max)( →xf≥≤0)(jiixbxg ),1(),1(njni== (1.1)Thì điều kiện Kuhn-Tucker có dạng:=∂∂≥≥∂∂=∂∂≥≤∂∂0;0;00;0;0iiiijjjjyLyyyLxLxxxL ),1(),1(minj== 4 hoặc là chuyển bài toán dạng (1.1) về bài toán dạng (1.2) rồi viết giống như với bài toán (1.2).1.4. Các vấn đề cần giải quyết khi giải bài toán QHFTTrước khi đi vào chi tiết, ta đề cập đến bản chất của các thuật toán giải các bài toán QHFT nói chung. Bài toán tổng quát dạng:∈∈→nRDDxxf,min)((*)Với bài toán (*) tuỳ theo cấu trúc của nó mà người ta đưa ra các 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. Song các phương pháp này đều có ý tưởng chung là thuật toán xiết chặt dần. Tuỳ theo dãy điểm nằm trong hay nằm ngoài tập D mà được chia thành 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 cả hai phương pháp trên.Ở đây ta xét kỹ phương pháp điểm trong. Người ta xuất phát từ một điểm Dxo∈; khi đó )(0xf∇là hướng tăng nhanh nhất của f(x) tại x0 (hay)(0xf∇ còn được gọi là hướng tăng cục bộ của f(x) tại x0). Ta lại có ở phần trước tập )(0xD là tập hợp các hướng chấp nhận được tại x0 và nếu lấy )D(x0∈d thì có:)),((),(00dxfdxf ∇=∂ là đạo hàm theo phương d của hàm f(x) tại x0, nó cho biết mức thay đổi của hàm f(x) tại x0 theo phương d. Rõ ràng:Nếu )D(xd0∈có 0)),((0>∇ dxf thì d được gọi là hướng chấp nhận được tăng của f(x) tại x0. Nếu )D(xd0∈có 0)),((0<∇ dxf thì d được gọi là hướng chấp nhận được giảm của f(x) tại x0. Nếu )D(xd0∈có 0)),((0=∇ dxf thì d được gọi là hướng chấp nhận được không đổi của f(x) tại x0.Phương pháp xiết chặt dần trên dãy điểm trong có thể được mô tả như sau: 5 Chọn một điểm Dxo∈ và kiểm tra xem tại x0 có 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 được giảm của f(x) ta tìm cách điều chỉnh x0 sang Dx ∈1 sao cho: ).()(01xfxf ≤ Thuật toán cứ như vậy tiếp diễn trên một dãy phương án dạng: , ., .,,10 kxxxhay }{, .1,0/ =kxk thoã mãn: .)( .)()(10≥≥≥≥kxfxfxf(**)Dãy phương án}{, .1,0/ =kxk thoã mãn (**) 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:Vấn đề 1: Tìm phương án xuất phát x0 như thế nào? Rõ ràng việc tìm phương án xuất phát x0 có liên quan tới vấn đề khảo sát xem tập phương án ∅=D hay ∅≠D. Đâ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 Dxk∈ thì bằng cách 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 được giảm của f(x) thì xk có tính chất gì? Liệu xk có phải là lời giải của bài toán hay không? Nếu tại xk có hướng chấp nhận được giảm của f(x) thì việc điều chỉnh xk sang xk+1 được thực hiện như thế nào?Vấn đề 3: Nếu quá trình điều chỉnh trên diễn ra với dãy}{, .1,0/ =kxk thì liệu dãy }{, .1,0/)( =kxfkcó hội tụ không? Giả sử lim f(xk) tồn tại (+∞→k)và hữu hạn thì giới hạn này có phải là trị tối ưu của f(x) trên D? Cả ba vấn đề trên là hiện hữu và rất phức tạp. Với bài toán QHFT 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ó 6 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 D và có thể không hội tụ. Mặc dù điều kiện Kuhn-Tucker đã chỉ ra điều kiện tồn tại nghiệm của bài toán quy hoạch lồi, nhưng không đưa ra mộ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 quy hoạch lồi với cấu trúc khác nhau. Một trong các thuật toán đó thì có thuật toán Frank-Wolfe.2. Giới thiệu thuật toán Frank-Wolfe2.1. Mô hình toán Bài toán tổng quát có dạng:≥≥→0min)(xbAxxf(2.1)Trong đó: ;;;))((nmnxmjiRxRbaA ∈∈= Khi đó tập phương án { }0;/ ≥≥= xbAxxD là tập lồi đa diện.Thuật toán Frank-Wolfe là thuật toán dùng để giải bài toán QHL với các ràng buộc tuyến tính.Các giả thiết của thuật toán:a. D giới nội tức là một đa diện lồi.b. Hàm f(x) khả vi liên tục, lồi trên tập phương án. Bổ sung khái niệm hàm lồi: nRxxfy ∈= ),(, xác định trên tập D lồi. Khi đó y=f(x) được gọi là một hàm lồi nếu : với 10 ≤≤λ ta có:[ ])()1()()1(2121xfxfxxfλλλλ−+≤−+c. Đôi khi người ta thay điều kiện a. bằng điều kiện c. sau: −∞>−∇ )),(( axxf Dxa ∈∀ ,, có nghĩa là tại Aa∈∀ đều không tồn tại hướng chấp nhận được giảm vô hạn của f(x) tại a. 7 Với các giả thiết nêu trên thì bài toán (2.1) luôn có phương án tối ưu; nếu f(x) lồi ngặt trên D thì phương án tối ưu là duy nhất.2.2. Thuật toánBước 0: Chọn phương án Dx ∈0 có 2 cách:Cách 1: do các bất phương trình là tuyến tính nên ta có thể tìm x0 bằng cách giải bài toán phụ P(x,xg) khi đó x0 là phương án cực biên(PACB) Cách 2: có thể tìm bằng cách mò ngẫu nhiên Dx ∈0, không nhất thiết là đỉnh của D. Khi đó x0 không phải là PACB.Sau khi chọn được x0 ta giải bài toán quy hoạch tối ưu thứ 0:(1) ≥≥⇒−∇0min)),((00xbAxxxxf Với giả thiết đã có bài toán thứ 0 luôn có phương án tối ưu. Gọi 0ˆxlà phương án tối ưu của bài toán (1). Khi đó có hai khả năng sau: Th1: Nếu 0)ˆ),((0000≥−∇= xxxfσthì 0ˆx là phương án tối ưu. Thuật toán kết thúc, x0 là cực trị địa phương nhưng do f(x) là hàm lồi nên x0 là cực trị địa phương(phần chú ý 1) Th2: Nếu 0)ˆ),((0000<−∇= xxxfσthì 0ˆx-0xlà hướng chấp nhận được giảm của f(x) tại x0.Khi đó trên đoạn ]ˆ,[00xx xét phương trình:)ˆ(000xxxx −+=λvới ]1,0[∈λ cần tìm ra điểm mà f(x) nhận giá trị nhỏ nhất. Tức là ta đi giải bài toán:min)ˆ(()(0000⇒−+=Ψ xxxfλλvới]1,0[∈λ (2))(0λΨlà hàm lồi theo λ, nên )(0λΨmin⇒sẽ đạt tại một điểm duy nhất0λ gọi 0λ là lời giải của (2) ta nhận được phương án mới: 8 )ˆ(00001xxxx −+=λLàm điểm xuất phát cho bước sau. Và do phương mới nhận được là phương giảm nên ta có: f(x1)<f(x0) cứ tiếp tục như vậy cho tới bước k.Bước k:Khi đó phương án xuất phát là xk và bài toán quy hoạch tuyến tính cần giải là:(2) ∈≥⇒−∇DxbAxxxxfkkmin)),((Phương án tối ưu là kxˆ Phương nhận được là: )ˆ),ˆ((kkkkxxxf −∇=σ có hai trường hợp xảy ra:Th1: nếu 0≥kσ =>xk là phương án tối ưu và thuật toán kết thúc.Thật vậy:Khi bài toán QHFT thứ k có dạng: ≥≥⇒−∇0min)),((xbAxxxxfkktheo giả thiết f(x) lồi khả vi nên ta có:DxxfxfxxxfxxxfxfxfDxxfxfxxxfkkkkkkkkkkk∈∀≥⇒≥=−∇≥−∇≥−⇔∈∀≤+−∇)(()(0)ˆ),(()),(()()())(()()),((σ=> điều phải chứng minh.Th2: nếu 0<kσ => kkxx −ˆ là phương giảm của f(x). Ta xét 10)ˆ(≤≤−+=λλkkkxxxx 9 Và min)ˆ(()( ⇒−+=kkkkxxxfλλψlà hàm lồi theo λ và đặt:)ˆ(1 kkkkkxxxx −+=+λVà cứ tiếp tục như vậy thì thuật toán hội tụ. Bởi tập xác định của nó là tập lồi đa diện lồi.Tuy nhiên có thể dừng lại ở một bước bất kỳ,và chấp nhận một sai số nào đó. Qua nội dung của thụât toán ta thấy rằng bản chất của thuật toán Frank-Wolfe là biến bài toán quy hoạch phi tuyến thành bài toán quy hoạch tuyến tính thông qua tuyến tính hoá từng điểm một.3. Thí dụ Giải bài toán quy hoạch lồi sau:≥≤+→−+−=0,22min)2()2()(21212221xxxxxxxfLời giải:Bước 0:Với điểm xuất phát )0,0(0=x ta có: 221)(xf∇ 02x1xx*10 [...]... về thuật toán FrankWolfe Qua nội dung trên, ta thấy thuật toán Frank- Wolfe đã đóng góp một phần vào việc giải quyết các bài toán tối ưu Đồng thời với phần mềm chuyên dụng GAMS chúng ta đã mở rộng thêm được các bài toán QHFT, rút ngắn thời gian giải bằng tay Tuy nhiên với những giả thiết mà thuật toán Frank- Wolfe đưa ra đặc biệt là giả thiết: “các ràng buộc phải là tuyến tính”; đó là một hạn chế của thuật. .. tên mô hình/ all/; 4.4.5 Chỉ định thủ giải  Một bài toán QHPT viết trên GAMS phải được giải bằng thủ tục NPL.Trong GAMS có ba thuật toán nào để giải bài toán QHPT đó là: Conopt, Minos và Snopt.Việc sử dụng thuật toán nào để giải một bài toán QHPT cụ thể tuỳ vào cấu trúc, đặc điểm của bài toán đó 16  Nếu ta không chọn thuật toán để giải thì thuật toán được chỉ định là Conopt  Cấu trúc lệnh để chỉ... bài toán thuật toán sẽ tự động gán giá trị xuất phát cho các biến, có thể là giá trị cận biên hoặc giá trị bằng không nếu chúng thoả mãn hệ ràng buộc  chắc chắn rằng trong mọi bài toán việc chủ động đặt cho các biến giá trị ban đầu một cách hợp lý(nếu có thể) sẽ tránh được hiện tượng bài toán xuất phát từ điểm không xác định hàm mục tiêu hoặc các véc tơ gradient của hàm đó, khi đó thuật toán sẽ cho... chế của thuật toán này Bởi vì, thực tế không phải lúc nào các ràng buộc cũng là các ràng buộc tuyến tính Nên ứng dụng của nó vào trong thực tế cũng còn hạn hẹp Hoặc muốn áp dụng thuật toán này thì phải tốn thời gian quy đổi các ràng buộc phi tuyến về ràng buộc tuyến tính Do đó, để trang bị cho mình kiến thức giải các bài toán QHFT, chúng ta cần tìm hiểu nhiều phương pháp khác như: thuật toán quy hoạch... tình giúp em hoàn thành đề án môn học này./ 20 Danh mục tài liệu tham khảo 1 Bài giảng tối ưu hoá – Tác giả: Ngô Văn Mỹ, khoa Toán kinh tế 2 Giáo trình: Mô hình toán ứng dụng – Tác giả: Ngô Văn Thứ, khoa Toán kinh tế 3 Toán cao cấp dành cho các nhà kinh tế - Phần 2: Giải tích toán học – Tác giả: Lê Đình Thuý 4 Trang web: www.goole.toiưuhoa.vn 21 ... Modeling System) là một hệ thống các chương trình giải các bài toán quy hoạch toán học.GAMS bao gồm nhiều thủ tục khác nhau trong đó xin giới thiệu một số thủ tục sau: LP Tìm nghiệm đúng của bài toán quy hoạch tuyến tính MIP Tìm nghiệm đúng của bài toán quy hoạch nguyên tuyến tính … 13 Trong đó có thủ tục NLP( Nonlinear Programming) để giải các bài toán QHFT các hàm trơn 4.2 Các nguyên tắc khi làm việc với... ) = − 16 8 16 x1 − x 2 + 5 5 5 Bài toán mới có dạng: 16 8 16 x1 − x 2 + ⇒ min 5 5 5 2 x1 + x 2 ≤ 2   x1 , x 2 ≥ 0 − ˆ ⇒ x 2 = (1,0) 3 6 ˆ ⇒ x 2 − x 2 = ( ,− ) 5 5 ⇒σ2 = 0 ≥ 0 Kết luận: 2 6 16 x * = x 2 = ( , ) là PATƯ và f * = trị tối ưu 5 5 5 4 Phần mềm hỗ trợ: GAMS 4.1 Khái quát về GAMS Để hỗ trợ cho việc giải các bài toán tối ưu một cách nhanh nhất và các bài toán có số bước giải lớn, ta có phần... phép toán cơ bản trong GAMS: Phép cộng: + Phép trừ: - Phép nhân: * Phép chia: / Phép lấy luỹ thừa: **  Các hàm thông dụng trong GAMS: Exp(x): ex Log(x): ln(x) Log10(x): log10(x) Sqr(x): x2 15 Sqrt(x): x Sin(x): sin(x) Cos(x): cos(x) Arctang(x): arctg(x) Power(x): xn 4.4.3 Đặt giá trị ban đầu cho các biến  Đây là giá trị tạm thời của biến, nó sẽ thay đổi khi chương trình thực hiện  Trong nhiều bài toán. .. giải như sau: Solve tên mô hình minizing(maximizing) tên hàm mục tiêu using NPL-; 4.4.6 Khai báo hiển thị kết quả  Nếu như việc giải bài toán cho ta lời giải đúng thì ta chọn cách hiển thị kết quả đúng giá trị của lời giải bằng lệnh có cấu trúc như sau: Display tên biến 1.l, tên biến 2.l,…,tên biến n.l;  Nếu như việc giải bài toán cho ta lời giải gần đúng thì ta có thể chọn cách hiển thị kết quả thấp... 0 = (∇f ( x 0 , x 0 − x 0 ) = −8 < 0 ˆ ⇒ x = x 0 + λ(x 0 − x0 ) = (0, λ (0,2)) = (0,2λ ) [ ˆ →ψ 0 = f x0 + λ(x0 − x0 ) ] = 4 + (2λ − 2) 2 = 4λ2 − 8λ + 8 với λ ∈ [ 0,1] Khi đó để giải bài toán ban đầu ta giải bài toán đối với λ Điều kiện cần: ψ 0 ' (λ ) = 0 ⇔ 8λ − 8 = 0 ⇔ λ =1 λ = 1 ∈ [ 0,1] ⇒ ψ 0 (λ = 0) = 8 Ta thấy với ψ 0 (λ = 1) = 4 ⇒ x 1 = (0,2) Bước 1: 11 x − x 1 = ( x1 , x 2 − 2) ⇒ ∇f ( x 1 . các bài toán quy hoạch lồi với cấu trúc khác nhau. Một trong các thuật toán đó thì có thuật toán Frank- Wolfe. 2. Giới thiệu thuật toán Frank- Wolfe2 .1.. kết của em về thuật toán Frank- Wolfe. Qua nội dung trên, ta thấy thuật toán Frank- Wolfe đã đóng góp một phần vào việc giải quyết các bài toán tối ưu. Đồng

Ngày đăng: 27/10/2012, 08:28

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan