17.01.2014 Views

Deterministické metódy - Univerzita Komenského

Deterministické metódy - Univerzita Komenského

Deterministické metódy - Univerzita Komenského

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Algoritmy deterministickej a stochastickej<br />

optimalizácie a ich počítačová realizácia<br />

ESF 2007<br />

D. Ševčovič<br />

Katedra aplikovanej matematiky a štatistiky, <strong>Univerzita</strong> Komenského, 842 48 Bratislava<br />

http://www.iam.fmph.uniba.sk/institute/sevcovic<br />

D. Sevcovic, March 31, 2007 Krivky, ich krivost’a pohyb - p. 1/21


Úvod<br />

● Úvod<br />

● Deterministické metódy<br />

● Newton-Kantorovič<br />

● Vnútorný bod<br />

● SW realizácia<br />

● Porovnanie<br />

Ciele prednáškového cyklu:<br />

• Ciel’om série prednášok je priblížit’ moderné numerické<br />

metódy a softvérové nástroje na riešenie praktických<br />

problémov, ktoré vedú na optimalizačné úlohy.<br />

D. Sevcovic, March 31, 2007 Krivky, ich krivost’a pohyb - p. 2/21


Úvod<br />

● Úvod<br />

● Deterministické metódy<br />

● Newton-Kantorovič<br />

● Vnútorný bod<br />

● SW realizácia<br />

● Porovnanie<br />

Metódy:<br />

• deterministické metódy optimalizácie<br />

■ vol’ná a viazaná konvexná optimalizácia<br />

■ Newton-Kantorovičov algoritmus<br />

■ metóda vnútorného bodu (Mehrotrov a Vanderbeiov<br />

algoritmus)<br />

• stochastické metódy optimalizácie<br />

■ vol’ná a viazaná nekonvexná optimalizácia<br />

■ algoritmus evolučných stratégií<br />

■ algoritmus Rechenbergera a metóda simulovaného žíhania<br />

D. Sevcovic, March 31, 2007 Krivky, ich krivost’a pohyb - p. 3/21


Úvod<br />

● Úvod<br />

● Deterministické metódy<br />

● Newton-Kantorovič<br />

● Vnútorný bod<br />

● SW realizácia<br />

● Porovnanie<br />

Softvérové nástroje:<br />

• komerčné alternatívy:<br />

Mathematica, Matlab<br />

• nekomerčné alternatívy:<br />

Octave(klon Matlab-u), GNU C - jazyk, Fortran<br />

• nekomerčné sw. balíky:<br />

Vanderbeiov balík pre metódy vnútorného bodu<br />

D. Sevcovic, March 31, 2007 Krivky, ich krivost’a pohyb - p. 4/21


Úvod<br />

● Úvod<br />

● Deterministické metódy<br />

● Newton-Kantorovič<br />

● Vnútorný bod<br />

● SW realizácia<br />

● Porovnanie<br />

Aplikácie:<br />

• Deterministické metódy optimalizácie<br />

• optimalizácia skladby dodávok elektriny,<br />

• analýza efektívnosti bankových pobočiek,<br />

• optimalizácia rozhodovania prestupov medzi fondmi pri<br />

kapitalizačnom pilieri dôchodkového sporenia.<br />

• Stochastické metódy optimalizácie<br />

• optimalizácia rozloženia rajtingových kritérií,<br />

• kalibrácia Term structure modelov (výnosové krivky<br />

dlhopisov)<br />

D. Sevcovic, March 31, 2007 Krivky, ich krivost’a pohyb - p. 5/21


Deterministické metódy<br />

● Úvod<br />

● Deterministické metódy<br />

● Newton-Kantorovič<br />

● Vnútorný bod<br />

● SW realizácia<br />

● Porovnanie<br />

Deterministické optimalizačné<br />

metódy<br />

• Newton-Kantorovičova metóda najväčšieho spádu,<br />

Kvázinewtonovské metódy<br />

min φ(x),<br />

x∈Ω<br />

Ω ⊂ RN<br />

• Metódy vnútorného bodu a lineárne programovanie<br />

min c t x<br />

Ax ≤ b<br />

x ≥ 0<br />

D. Sevcovic, March 31, 2007 Krivky, ich krivost’a pohyb - p. 6/21


Deterministické metódy<br />

● Úvod<br />

● Deterministické metódy<br />

● Newton-Kantorovič<br />

● Vnútorný bod<br />

● SW realizácia<br />

● Porovnanie<br />

• Newton-Kantorovičova metóda najväčšieho spádu<br />

min φ(x),<br />

x∈Ω<br />

Ω ⊂ RN<br />

⇓<br />

Nutné podmienky: ∇φ(x) = 0<br />

⇓<br />

• Algoritmus (Newton-Kantorovič)<br />

x n+1 = x n − [∇ 2 φ(x n )] −1 ∇φ(x n ), start → x 0<br />

D. Sevcovic, March 31, 2007 Krivky, ich krivost’a pohyb - p. 7/21


Deterministické metódy<br />

● Úvod<br />

● Deterministické metódy<br />

● Newton-Kantorovič<br />

● Vnútorný bod<br />

● SW realizácia<br />

● Porovnanie<br />

• Algoritmus (Newton-Kantorovič)<br />

• Set: start → x 0<br />

Do<br />

• Set: A n = ∇ 2 φ(x n ), b n = −∇φ(x n )<br />

• Solve: A n s n = b n<br />

• Set: x n+1 = x n + s n<br />

While (n < nmax and ‖∇φ(x n )‖ > tolerance)<br />

D. Sevcovic, March 31, 2007 Krivky, ich krivost’a pohyb - p. 8/21


Deterministické metódy<br />

● Úvod<br />

● Deterministické metódy<br />

● Newton-Kantorovič<br />

● Vnútorný bod<br />

● SW realizácia<br />

● Porovnanie<br />

Metóda vnútorného bodu pre lin. programovanie<br />

• Metódy vnútorného bodu a lineárne programovanie<br />

min c t x<br />

Ax≤b<br />

x ≥ 0<br />

Doplnkové premenné Ax + s = b<br />

s ≥ s<br />

⇓<br />

min c t x<br />

Ax=b<br />

x ≥ 0<br />

D. Sevcovic, March 31, 2007 Krivky, ich krivost’a pohyb - p. 9/21


Deterministické metódy<br />

● Úvod<br />

● Deterministické metódy<br />

● Newton-Kantorovič<br />

● Vnútorný bod<br />

● SW realizácia<br />

● Porovnanie<br />

Metóda vnútorného bodu pre lin. programovanie<br />

• Aproximácia úlohy do vnútra oblasti x > 0<br />

n∑<br />

φ µ (x) = min c t x − µ ln(x i )<br />

i=1<br />

na afínnej množine<br />

Ax = b<br />

kde 0 < µ ≪ 1 je malý (transformačný) parameter<br />

µ = µ 1 , µ 2 , ..., µ m ..., kde µ k+1 = 1 2 µ k<br />

D. Sevcovic, March 31, 2007 Krivky, ich krivost’a pohyb - p. 10/21


Deterministické metódy<br />

● Úvod<br />

● Deterministické metódy<br />

● Newton-Kantorovič<br />

● Vnútorný bod<br />

● SW realizácia<br />

● Porovnanie<br />

Metóda vnútorného bodu pre lin. programovanie<br />

• Metóda viazaných extrémov (Lagrangeove multiplikátory)<br />

pre úlohu<br />

minφ µ (x)<br />

pri afínnej väzbe<br />

Ax = b<br />

⇓<br />

Ax = b<br />

A T λ + s = c<br />

x i s i = µ<br />

x, s ≥ 0<br />

Riešime Newton-Kantorovičovou metódou (Mehrotrov algoritmus)<br />

D. Sevcovic, March 31, 2007 Krivky, ich krivost’a pohyb - p. 11/21


Deterministické metódy<br />

● Úvod<br />

● Deterministické metódy<br />

● Newton-Kantorovič<br />

● Vnútorný bod<br />

● SW realizácia<br />

● Porovnanie<br />

Realizácia v sw. Mathematica<br />

D. Sevcovic, March 31, 2007 Krivky, ich krivost’a pohyb - p. 12/21


Simplexová metóda<br />

● Úvod<br />

● Deterministické metódy<br />

● Newton-Kantorovič<br />

● Vnútorný bod<br />

● SW realizácia<br />

● Porovnanie<br />

Simplexová metóda -<br />

Mathematica<br />

n=300<br />

k = 300;<br />

c = Table[1., {i, 1, n}];<br />

A = Table[Table[Abs[Sin[i*j]], {j, 1, n}], {i, 1, k}<br />

b = Table[1., {i, 1, k}];<br />

vystup= LinearProgramming[c, A, b,<br />

"Method" -> {"RevisedSimplex"}]<br />

D. Sevcovic, March 31, 2007 Krivky, ich krivost’a pohyb - p. 13/21


Metóda vnútorného bodu<br />

● Úvod<br />

● Deterministické metódy<br />

● Newton-Kantorovič<br />

● Vnútorný bod<br />

● SW realizácia<br />

● Porovnanie<br />

Metóda vnútorného bodu - Mathematica<br />

n=300<br />

k = 300;<br />

c = Table[1., {i, 1, n}];<br />

A = Table[Table[Abs[Sin[i*j]], {j, 1, n}], {i, 1, k}<br />

b = Table[1., {i, 1, k}];<br />

vystup= LinearProgramming[c, A, b,<br />

"Method" -> {"InteriorPoint"}]<br />

D. Sevcovic, March 31, 2007 Krivky, ich krivost’a pohyb - p. 14/21


Porovnanie metód<br />

Porovnanie oboch metód - Mathematica<br />

● Úvod<br />

● Deterministické metódy<br />

● Newton-Kantorovič<br />

● Vnútorný bod<br />

● SW realizácia<br />

● Porovnanie<br />

6<br />

5<br />

Porovnanie metod<br />

4<br />

T<br />

3<br />

2<br />

1<br />

0 200 400 600 800 1000<br />

n<br />

Časová zložitost’ simplexovej metódy a metódy vnútorného bodu<br />

Simplexová metóda - červená, Metóda vnútorného bodu - modrá<br />

Rozmer kxn kde k = 50 je pevné a n ∈ [10, 300].<br />

D. Sevcovic, March 31, 2007 Krivky, ich krivost’a pohyb - p. 15/21


Porovnanie metód<br />

Porovnanie oboch metód - Mathematica<br />

● Úvod<br />

● Deterministické metódy<br />

● Newton-Kantorovič<br />

● Vnútorný bod<br />

● SW realizácia<br />

● Porovnanie<br />

175<br />

150<br />

125<br />

Porovnanie metod<br />

T<br />

100<br />

75<br />

50<br />

25<br />

0 50 100 150 200 250<br />

n<br />

Časová zložitost’ simplexovej metódy a metódy vnútorného bodu<br />

Simplexová metóda - červená, Metóda vnútorného bodu - modrá<br />

Rozmer nxn kde n ∈ [10, 300].<br />

D. Sevcovic, March 31, 2007 Krivky, ich krivost’a pohyb - p. 16/21


Zložitost’<br />

● Úvod<br />

● Deterministické metódy<br />

● Newton-Kantorovič<br />

● Vnútorný bod<br />

● SW realizácia<br />

● Porovnanie<br />

Porovnanie oboch metód -<br />

zložitost’<br />

Simplexová metóda - exponenciálna zložitost’<br />

Metóda vnútorného bodu - polynoniálna zložitost’<br />

⇑<br />

• Narendra Karmarkar (1984).<br />

"A New Polynomial Time Algorithm for Linear Programming",<br />

Combinatorica, Vol 4, nr. 4, p. 373–395.<br />

[1] Wright, Stephen (1997). Primal-Dual Interior-Point Methods.<br />

Philadelphia, PA: SIAM. ISBN 0-89871-382-X.<br />

[2] Nocedal, Jorge; and Stephen Wright (1999). Numerical<br />

Optimization. New York, NY: Springer. ISBN 0-387-98793-2.<br />

D. Sevcovic, March 31, 2007 Krivky, ich krivost’a pohyb - p. 17/21


Deterministické metódy<br />

● Úvod<br />

● Deterministické metódy<br />

● Newton-Kantorovič<br />

● Vnútorný bod<br />

● SW realizácia<br />

● Porovnanie<br />

Realizácia v sw. Matlab<br />

D. Sevcovic, March 31, 2007 Krivky, ich krivost’a pohyb - p. 18/21


Metóda vnútorného bodu<br />

Metóda vnútorného bodu - Matlab<br />

● Úvod<br />

● Deterministické metódy<br />

● Newton-Kantorovič<br />

● Vnútorný bod<br />

● SW realizácia<br />

● Porovnanie<br />

n=300; k=300;<br />

c=ones(1,n); b=ones(1,k);<br />

A=[];<br />

for i=1:k<br />

for j=1:n<br />

A(i,j)=abs(sin(i*j));<br />

end<br />

end<br />

lowerBound=zeros(1,n);<br />

options=optimset(’LargeScale’,’on’);<br />

linprog(-c,A,b,[],[],lowerBound,[],[],options);<br />

D. Sevcovic, March 31, 2007 Krivky, ich krivost’a pohyb - p. 19/21


Simplexová metóda<br />

Simplexová metóda - Matlab<br />

● Úvod<br />

● Deterministické metódy<br />

● Newton-Kantorovič<br />

● Vnútorný bod<br />

● SW realizácia<br />

● Porovnanie<br />

n=300; k=300;<br />

c=ones(1,n); b=ones(1,k);<br />

A=[];<br />

for i=1:k<br />

for j=1:n<br />

A(i,j)=abs(sin(i*j));<br />

end<br />

end<br />

lowerBound=zeros(1,n);<br />

options=optimset(’LargeScale’,’off’);<br />

linprog(-c,A,b,[],[],lowerBound,[],[],options);<br />

D. Sevcovic, March 31, 2007 Krivky, ich krivost’a pohyb - p. 20/21


Porovnanie metód<br />

Porovnanie oboch metód - Matlab<br />

● Úvod<br />

● Deterministické metódy<br />

● Newton-Kantorovič<br />

● Vnútorný bod<br />

● SW realizácia<br />

● Porovnanie<br />

10<br />

8<br />

Porovnanie metod<br />

T<br />

6<br />

4<br />

2<br />

0 50 100 150 200 250<br />

n<br />

Časová zložitost’ simplexovej metódy a metódy vnútorného bodu<br />

Simplexová metóda - červená, Metóda vnútorného bodu - modrá<br />

Rozmer nxn kde n ∈ [10, 300].<br />

D. Sevcovic, March 31, 2007 Krivky, ich krivost’a pohyb - p. 21/21

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!