Deterministické metódy - Univerzita Komenského
Deterministické metódy - Univerzita Komenského
Deterministické metódy - Univerzita Komenského
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