Metode de Optimizare Curs 1 VII. Metode numerice de rezolvare a problemelor de optimizare fără restricţii Considerăm X o submulţime convexă deschisă a lui R n, f: X R o funcţie convexă diferenţiabilă şi problema de optimizare inf f (x) x X (P) Metodele iterative de rezolvare a problemei constau în construirea unui şir (x ) îndeplinind condiţia : f(x +1 ) < f(x ), pentru orice 0 (x 0 X dat). şi având un punct limită un x X care să fie punct staţionar pentru f (cu alte cuvinte şirul (x ) are un subşir ( x ) cu proprietatea că lim x = x X şi f( x ) = 0). Funcţia f fiind convexă, X fiind deschisă şi f( x ) = 0, rezultă că x este punct de minim global pentru f pe X (soluţie optimă a problemei studiate). Dacă f nu este convexă, atunci pentru a asigura că x este punct de minim local (soluţie optimă locală) ar trebui verificate condiţiile de ordinul (Hf( x ) pozitiv definită). Metodele iterative de rezolvare a problemelor de optimizare fără restricţii pot fi clasificate în - Metode de ordin 0: utilizează doar valorile funcţiei f în punctul x şi eventual în câteva puncte vecine (de explorare). - Metode de ordin 1: necesită calculul valorii funcţiei f precum şi al gradientului lui f în punctul x. Aceste metode realizează un compromis între simplitate (volum de calcul) şi eficienţă, fiind frecvent utilizate în practică - Metode de ordin : necesită atât valorile funcţiei f, a gradientului şi hessianei lui f în punctul x cât şi inversarea hessianei. Prin compensaţie 1
Mădălina Roxana Buneci Metode de Optimizare Curs - 007 cu volumul de calcul aceste metode asigură o viteză de convergenţă superioară. - Metode de ordin superior: volum de calcul sporit pentru evaluarea valorile derivatelor de ordin superior lui ale funcţiei f, fiind rar folosite în practică Vom prezenta in continuare metode de ordinul 1 şi denumite metode de căutare liniară ( linesearch methods ). Şirul construit are forma + 1 R = + n x x t v v t, t 0 pas de deplasare R direcţie de deplasare f(x +1 ) < f(x ), pentru orice 0. (LS) Definiţie 1. X o submulţime deschisă a lui R n, f: X R o funcţie diferenţiabilă şi x X. Un vector v R n se numeşte direcţie descendentă în x dacă <v, f(x)> < 0. Dacă v este direcţie descendentă în x atunci există λ >0 astfel încât pentru orice t (0, λ ), f(x + tv) < f(x). Într-adevăr, aplicând formula lui Taylor de ordinul 1, există δ 0 >0 astfel încât pentru orice δ R cu δ < δ 0 f(x+ δv) = f(x) + δ< f(x),v>v + o(δ), unde Există λ >0, λ δ 0 astfel încât pentru orice 0 < t < λ, urmare: 1 v avem o δ lim =0 δ 0 δ o( t) t f(x+ tv) = f(x) + t(< f(x),v>v + o( t) ) < f(x). t < - < f(x),v>v şi ca Pe de altă parte dacă pentru orice v R n avem <v, f(x)> 0, atunci x este punct de staţionar pentru f (iar dacă presupunem în plus, f convexă, atunci x este punct de minim pentru f). Într-adevăr, luând v = - f(x), rezultă -< f(x), f(x)> 0 sau echivalent f(x) = 0. Algoritmul generic pentru construcţia şirului (x ) care să aibă un punct limită x X care să fie punct staţionar pentru f este schiţat mai os. x 0 X dat
Metode de Optimizare Curs 1 cât timp f(x ) 0 execută pasul 1: *se determină o direcţie de deplasare v care să fie direcţie descendentă în x (dacă nu există o astfel de direcţie atunci STOP, x este soluţie optimă mai precis f(x ) = 0) pasul : *se determină pasul de deplasare t astfel încât f(x + t v ) < f(x ) pasul 3: x +1 = x + t v ; :=+1; La ieşire x cu proprietatea f(x ) = 0 este punct staţionar al lui f. În practică se dă ε > 0 (precizia cu care se identifică soluţia optimă) iar criteriul de oprire f(x ) 0 se înlocuieşte cu una din condiţiile a. f(x ) < ε (gradientul este suficient de mic ) b. x +1 - x < ε (cele două iteraţii succesive sunt suficient de apropiate ) c. f(x ) - f(x +1 ) < ε (micşorarea funcţiei obiectiv nu este semnificativă ) unde este o norma convenabil aleasă. În criteriile de oprire pot fi folosite valori relative, astfel de exemplu condiţia de la c poate fi înlocuită cu + 1 f ( x ) 1+ f ( x ) f x În cele ce urmează vom presupune că în etapa a algoritmului de mai sus a fost determinată o direcţie de deplasare v şi rămâne să determinăm pasul de deplasare t. Metodele de determinare a pasului t pot fi clasificate în 1. proceduri de alegere optimală a pasului (algoritmi de căutare liniară exactă). proceduri de alegere suboptimală a pasului (algoritmi de căutare liniară inexactă < ε VII.1. Proceduri de alegere optimală a pasului condiţia Procedurile de alegere optimală a pasului presupun determinarea lui t din f(x +t v ) = inf f(x + tv ) t 0 3
Mădălina Roxana Buneci Metode de Optimizare Curs - 007 (adică t este soluţie optimă a problemei inf f(x + tv )). Altfel spus procedurile t 0 de alegere optimală a pasului presupun minimizare funcţiei ϕ: [0, λ ) R, definită prin ϕ(t) = f(x +tv ), unde λ este ales astfel încât x +tv X pentru orice t [0, λ ) (ţinând cont că x X şi X este o mulţime deschisă, rezultă că există δ>0 astfel încât B(x,δ) X, λ = 1 v δ îndeplineşte condiţia cerută). Lema. X o mulţime convexă şi f: X R o funcţie convexă. Atunci funcţia ϕ: [0, λ ) R, definită prin ϕ(t) = f(x +tv ), este convexă, unde λ R este ales astfel încât x +tv X pentru orice t [0, λ ). Demonstraţie. Fie t 1, t [0, λ ) şi fie λ (0,1). Atunci ϕ(λt 1 + (1-λ)t ) = f(x + (λt 1 + (1-λ)t )v ) = f(λ(x + t 1 v )+(1-λ)(x + t v )) λ f(x + t 1 v )+ (1-λ)f(x + t v ) =λ ϕ(t 1 ) + (1-λ) ϕ(t ). f convexa Metodele de explorare directă pentru determinarea unui punct de minim al lui ϕ constau în identificarea în prealabil a unui interval [a 0, b 0 ] care conţine un punct de minim al lui ϕ. Lema 3. Fie I un interval de numere reale, ϕ : I R o funcţie convexă care admite un punct de minim. 1. Dacă t 1, t, t 3 I, t 1 < t < t 3, astfel încât ϕ(t 1 ) > ϕ(t ) ϕ(t 3 ). atunci există un punct de minim al lui ϕ în intervalul [t 1, t 3 ].. Dacă I = [a, λ ), λ R şi t (a, λ ) cu ϕ(t) ϕ(a), atunci există un punct de minim al lui ϕ în intervalul [a, t]. Demonstraţie. Fie t * un punct de minim al lui ϕ. 1. Presupunem prin absurd t* < t 1 sau echivalent t 1 (t*, t ). Atunci există λ (0, 1) astfel încât t 1 = λt*+(1-λ)t şi ca urmare ϕ(t 1 ) = ϕ(λt*+(1-λ)t ) λϕ(t*) + (1-λ)ϕ(t ) λϕ(t ) + (1-λ)ϕ(t ) = ϕ(t ) 4
Metode de Optimizare Curs 1 ceea ce contrazice ϕ(t 1 ) > ϕ(t ). Deci t* t 1. Dacă t* t 3, atunci t* [t 1, t 3 ]. Dacă t*>t 3 sau echivalent t 3 (t, t*), atunci există λ (0, 1) astfel încât t 3 = λt +(1-λ)t* şi ca urmare ϕ(t 3 ) = ϕ(λt +(1-λ)t*) λϕ(t ) + (1-λ)ϕ(t*) λϕ(t ) + (1-λ)ϕ(t ) = ϕ(t ) ϕ(t 3 ). De aici rezultă ϕ(t*) = ϕ(t ), adică t este punct de minim pentru ϕ şi în plus t [t 1, t 3 ].. Dacă t* t, atunci t* [a, t]. Dacă t*>a sau echivalent t (a t*), atunci există λ (0, 1) astfel încât t= λa+(1-λ)t* şi ca urmare ϕ(t) = ϕ(λa+(1-λ)t*) λϕ(a) + (1-λ)ϕ(t*) λϕ(a) + (1-λ)ϕ(a) = ϕ(a) ϕ(t), de unde rezultă ϕ(t*) = ϕ(a), adică a este punct de minim pentru ϕ şi în plus a [a,t]. Algoritm de determinare al a unui interval [a 0, b 0 ] care conţine un punct de minim pentru funcţia convexă ϕ: [a, ) R (presupunând că ϕ admite un punct de minim): ϕ: [a, ) R funcţie convexă c > 0 dat t1:=a; t: = a+c; y1:=ϕ(t1); y:=ϕ(t); dacă y1 y, atunci a 0 : =t1 şi b 0 : = t altfel cât timp y1 > y execută y1 : = y; t1:=t; t:= t+c; y: = ϕ(t); a 0 : = t1-c; b 0 : = t; Procedura MAPLE de mai os are drept parametri funcţia convexă ϕ, a (capatul inferior al intervalului de definiţie al lui ϕ) şi c>0. Procedura returnează intervalul [a 0, b 0 ] ce conţine un punct de minim pentru ϕ: [a, ) R (presupunând că ϕ admite un punct de minim): > init:=proc(phi,a,c) > local a0,b0,y1,y,t1,t; > t1:=evalf(a); t:=evalf(a+c); y1:=phi(t1); y:=phi(t); 5
Mădălina Roxana Buneci Metode de Optimizare Curs - 007 > if y1<=y then a0:=t1; b0:=t else > while y1>y do y1:=y;t1:=t;t:=t+c;y:=phi(t) od; > a0:=t1-c; b0:=t > fi; > RETURN([a0, b0]) > end; Exemplu 4. Aplicăm această procedură funcţiilor ϕ 1 : [0, ) R, ϕ 1 (t) = t -3t+5 şi ϕ : [-3/4, ) R, ϕ (t) = t ln(t+1): > phi1:=t->t^ -3*t-5; > phi:=t->t-ln(t+1); şi obţinem > I01:=init(phi1,0,1); I01 := [ 0.,. ] > I0:=init(phi,-3/4,1); I0 := [ -0.7500000000, 1.50000000 ] După determinarea unui interval [a 0, b 0 ] ce conţine un punct de minim pentru ϕ: [a, λ ) R ( λ R ) prin metodele de explorare directă se urmăreşte reducerea iterativă a lungimii acestui interval până la atingerea unei precizii impuse ε>0 de localizare a lui unui punct de minim t*. Cu alte cuvinte se urmăreşte construirea unui şir de intervale [a, b ], 0 cu proprietatea că unde L = b - a este lungimea intervalului [a, b ] pentru orice 0. 6 lim L =0, Lema 5. Fie I un interval de numere reale, ϕ : I R o funcţie convexă şi [a,b] I un subinterval ce conţine un punct de minim al lui ϕ. Fie a, b (a,b) cu a < b. 1. Dacă ϕ( a ) < ϕ( b ), atunci intervalul [a, b ] conţine un punct de minim pentru ϕ.. Dacă ϕ( a ) ϕ( b ), atunci intervalul [ a,b] conţine un punct de minim pentru ϕ. Demonstraţie. Fie t * un punct de minim al lui ϕ. 1. Presupunem prin absurd t* > b sau echivalent b ( a,t*). Atunci există λ (0, 1) astfel încât b = λ a +(1-λ)t* şi ca urmare
Metode de Optimizare Curs 1 ϕ( b ) = ϕ(λ a +(1-λ)t*) λϕ( a ) + (1-λ)ϕ(t*) λϕ( a ) + (1-λ)ϕ( a ) = ϕ( a ) ceea ce contrazice ϕ( b ) > ϕ( a ). Deci b t*.. Dacă t* a, atunci t* [ a, b]. Dacă t*< a sau echivalent a (t*, b ), atunci există λ (0, 1) astfel încât a = λt*+(1-λ) b şi ca urmare ϕ( a ) = ϕ(λt*+(1-λ) b ) λϕ(t*) + (1-λ)ϕ( b ) λϕ( b ) + (1-λ)ϕ( b ) = ϕ( b ) ϕ( a ), de unde rezultă ϕ(t*) = ϕ( b ), adică b este punct de minim pentru ϕ şi în plus b [ a,b]. Această lemă sugerează următorul algoritm de construcţie a şirului de intervale [a,b ], 0 cu proprietatea că lim b - a =0 (sau cel puţin, având proprietatea că dacă precizia ε>0 este fixată există ε cu b ε - a < ε) şi astfel ε încât fiecare interval [a,b ] să conţină un punct de minim pentru funcţia convexă ϕ: ϕ - funcţie convexă ε > 0 dat precizia de localizare a unui punct de minim t* al lui ϕ [a 0, b 0 ] interval iniţial ce conţine un punct de minim al lui ϕ : = 0; cât timp b -a ε execută Pasul 1: *se aleg a < b, a, b (a, b ) Pasul : dacă ϕ( a ) <ϕ( b ) atunci a +1 =a ; b +1 = b ; t* (b +a )/ : = +1; altfel a +1 = a ; b +1 =b ; Eroarea absolută cu care (b +a )/ aproximează t* (punct de minim al lui ϕ) este cel mult 1 ε. 7
Mădălina Roxana Buneci Metode de Optimizare Curs - 007 Există diverse posibilităţi de alegere a a, b (a, b ) cu a < b. De exemplu putem alege a = 1 (a + b ) - δ şi b = 1 (a + b ) + δ cu δ>0 foarte mic. Atunci L +1 = b +1 a +1 = 1 (b a ) + δ = 1 L + δ pentru orice 0. Aşadar L = 1 1 cu b ε 1 L0 - a = ε L ε + δ +L 0. Avem ϕ - funcţie convexă lim L = δ. Deci dacă δ < 1 ε, atunci există ε < ε. Descriem mai os algoritmul corespunzător: ε > 0 dat precizia de localizare a unui punct de minim t* al lui ϕ δ > 0 dat (având proprietatea că δ< ε/) [a 0, b 0 ] interval iniţial ce conţine un punct de minim al lui ϕ a: = a 0 ; b: = b 0 ; cât timp b a ε execută c: = (a+b)/; dacă ϕ(c-δ) < ϕ(c+δ) atunci b: = c+δ altfel a:= c-δ t* (b +a)/; Procedura MAPLE dichotomous_search implementează algoritmul de mai sus. Parametrii procedurii sunt: funcţia convexă ϕ, lista I0 cu capetele a 0, b 0 ale unui interval ce conţine un punct de minim pentru ϕ, precizia ε de localizare a unui punct de minim şi δ. Procedura întoarce o aproximaţie a unui punct de minim al lui ϕ cu eroare cel mult 1 ε. > dichotomous_search:=proc(phi,i0,epsilon,delta) > local a,b,c; > a:=evalf(i0[1]);b:=evalf(i0[]); > while b-a>=epsilon do > c:=(a+b)/; > if evalf(phi(c-delta))<evalf(phi(c+delta))then b:=c+delta > else a:=c-delta fi; > od; 8
Metode de Optimizare Curs 1 > RETURN((a+b)/) > end; Exemplu 6. Aplicăm procedura dichotomous_search funcţiilor ϕ 1, respectiv ϕ din exemplul 4 şi intervalelor date de listele I01, respectiv I0 obţinute ca urmare a aplicării procedurii init (în exemplul 4): > dichotomous_search(phi1,i01,10^(-5),10^(-5)/4); 1.500046434 > dichotomous_search(phi,i0,10^(-5),10^(-5)/4); -0.18343865 10-5 Există însă o modalitate mai bună de alegere a a, b (a, b ) cu a < b astfel încât la fiecare iteraţie să se facă o singură evaluare a funcţiei ϕ (în loc de două câte se efectuează în algoritmul precedent). VII.1.1. Metoda secţiunii de aur Această metodă este bazată pe aşa numita secţiune de aur (golden section). Secţiunea de aur a unui segment este o diviziunea a acestuia în două subsegmente astfel încât raportul dintre lungimea subsegmentului mai lung şi lungimea întregului segment este egală este egal cu raportul dintre lungimea subsegmentului mai scurt şi cea a subsegmentului mai lung: Dacă lungimea segmentului considerat este 1 iar lungimea subsegmentului mai lung este α, atunci 1 α = 1 α α α 1-α 1, sau echivalent α + α - 1 = 0. Singura soluţie a acestei ecuaţii din intervalul [0, 1] este α = 5 1 0.618. Pentru fiecare 0 se aleg a = a + (1-α)(b a ) iar Dacă ϕ( a )<ϕ( b ), atunci a +1 = a şi b +1 = b şi ca urmare 9 b = a + α(b a ).
Mădălina Roxana Buneci Metode de Optimizare Curs - 007 b + 1 =a +1 + α( b +1 a +1 ) =a +α (b -a ) = a +(1-α)(b a ) = a. Legătura dintre cele două iteraţii şi +1 este ilustrată mai os: Iteraţia a a b b Iteraţia +1 a +1 a + 1 b + b 1 +1 Deci la iteraţia +1 va trebui să evaluăm doar ϕ( a + 1 ϕ( b + 1 )=ϕ( a ) este cunoscută de la iteraţia. ) deoarece valoarea lui Analog dacă ϕ( a ) ϕ( b ), atunci a +1 = a şi b +1 =b şi ca urmare a + 1 =a +1 + (1-α)( b +1 a +1 ) = a +(1-α)α(b -a ) = = a + (1-α)(b a ) +(α-α )(b a ) = a +(1-α )(b a ) = = a +α(b a ) = b. Cazul ϕ( a ) ϕ( b ): Iteraţia a a b b Iteraţia +1 a +1 a + 1 b + b 1 +1 Ca urmare în acest caz va trebui să evaluăm doar ϕ( b + 1 ϕ( a + 1 )=ϕ( b ) este cunoscută de la iteraţia. ) deoarece valoarea lui În ambele cazuri avem L +1 = b +1 a +1 = α(b a ) = αl pentru orice 0. Aşadar L = α L 0 pentru orice 0 şi ca urmare lim L = 0. Numărul de iteraţii 10
Metode de Optimizare Curs 1 ln ε L 0 necesare pentru reducerea lungimii intervalului L < ε este n ε = ln ( α) Descriem mai os algoritmul corespunzător denumit metoda secţiunii de aur: ε > 0 dat precizia de localizare a unui punct de minim t* al lui ϕ [a 0, b 0 ] interval iniţial ce conţine un punct de minim al lui ϕ α : = 5 1 ln ε b a a: = a 0 ; b: = b 0 ; L: = b-a; nmax:= ln ( α) a : = a + (1-α)L; b : = a + αl; y1:=ϕ( a ); y: = ϕ( b ); : = 0; cât timp < nmax execută +1 +1. dacă y1 < y atunci b:= b ; L:=b-a; b : = a ; y:=y1; a : = a + (1-α)L; y1:=ϕ( a ); altfel a: = a ; L:=b-a; a : = b ; y1:=y; b : = a + αl; y1:=ϕ( b ); : = +1; t* (b +a)/; Procedura MAPLE golden_section implementează algoritmul de mai sus. Parametrii procedurii sunt: funcţia convexă ϕ, lista I0 cu capetele a 0, b 0 ale unui interval ce conţine un punct de minim pentru ϕ şi precizia ε de localizare a unui punct de minim al lui ϕ. Procedura întoarce o aproximaţie a unui punct de minim al lui ϕ cu eroare cel mult 1 ε. > golden_section:=proc(phi,i0,epsilon) > local alpha,beta,a,b,y1,y,l,u,v,,nmax; > alpha:=evalf((5^(1/)-1)/);beta:=1-alpha; > a:=evalf(i0[1]);b:=evalf(i0[]);l:=b-a; > u:=a+beta*l;v:=a+alpha*l;y1:=phi(u);y:=phi(v); > nmax:=ceil(ln(epsilon/l)/ln(alpha));:=0; > while <nmax do > if y1<y then b:=v;l:=b-a; 11
Mădălina Roxana Buneci Metode de Optimizare Curs - 007 > y:=y1;v:=u;u:=a+beta*l;y1:=phi(u) > else a:=u;l:=b-a; > y1:=y;u:=v;v:=a+alpha*l;y:=phi(v); > fi; > :=+1 > od; > RETURN((a+b)/) > end; Exemplu 7. Aplicăm procedura golden_section funcţiilor ϕ 1, respectiv ϕ din exemplul 4 şi intervalelor date de listele I01, respectiv I0 obţinute ca urmare a aplicării procedurii init (în exemplul 4): > golden_section(phi1,i01,10^(-5)); 1.5000048 > golden_section(phi,i0,10^(-5)); 0.00001965968 Alt grup de metode pentru determinarea unui punct de minim al funcţiei convexe ϕ se bazează pe echivalenţa: t* punct de minim <=> ϕ (t*) = 0. Ca urmare pentru determinarea lui t* se poate aplica orice metodă de rezolvare a ecuaţiei (neliniare) ϕ (t) = 0. Vom exemplifica cu metoda bisecţiei şi metoda tangentei. VII.1.. Metoda bisecţiei Metoda bisecţiei (metoda înumătăţirii intervalului) presupune cunoscut un interval [a 0,b 0 ] cu proprietatea că ϕ (a 0 ) ϕ (b 0 ) < 0. Pentru găsirea rădăcinii ecuaţiei ϕ (t) = 0 se micşorează la fiecare pas intervalul în care funcţia ϕ îşi schimbă semnul. Metoda bisecţiei presupune înumătăţirea la fiecare pas a acestui interval. Astfel a 0 + b0 se determină milocul c = 1 al intervalului (a 0,b 0 ). dacă ϕ (c) ϕ (a 0 )<0, atunci se continuă algoritmul cu intervalul [a 0,c] dacă ϕ (c) ϕ (b 0 )<0, atunci se continuă algoritmul cu intervalul [c,b 0 ] dacă ϕ (c) =0 s-a determinat o rădăcină a ecuaţiei ϕ (t) = 0.
Metode de Optimizare Curs 1 Se construieşte astfel un şir de intervale [a, b ], 0 cu lungimea lui L +1 = b +1 a +1 = 1 L. Deci 1 lim L = lim L 0 =0. În plus, fiecare din aceste intervale conţine o soluţie a ecuaţiei ϕ (t) = 0. Presupunând că se dă o precizie ε>0, considerăm că milocul intervalului [a, b ] este o aproximaţie satisfăcătoare a soluţiei ecuaţiei ϕ (t) = 0 dacă L = b a < ε. Numărul de iteraţii necesare pentru ca L < ε este n ε ( ε) ln L 0 = ln La ieşire c= +1. ϕ convexă derivabilă [a 0,b 0 ] cu ϕ (a 0 ) ϕ (b 0 ) < 0 ε > 0 dat precizia de localizare a unui punct de minim t* al lui ϕ (sau echivalent punct staţionar al lui ϕ) ( ε) ln b a a: = a 0 ; b:=b 0 ; nmax:= ln cât timp < nmax execută a + b c: = ; dacă ϕ (c) = 0 atunci +1; : = 0; a :=c; b:=c; : = nmax+1; altfel dacă ϕ (c) ϕ (a)<0 atunci b : = c; altfel a : = c; : = +1; a + b t* a + b este o aproximaţie a unei rădăcini t* (a0,b 0 ) a ecuaţiei ϕ (t) = 0 cu eroarea absolută t*-c < ε. Procedura MAPLE bisection implementează algoritmul de mai sus. Parametrii procedurii sunt: funcţia convexă ϕ, lista I0 cu punctele a 0, b 0 cu proprietatea că ϕ (a 0 ) ϕ (b 0 ) < 0 şi precizia ε de localizare a unui punct de minim al lui ϕ. Procedura întoarce o aproximaţie a unui punct staţionar (sau echivalent punct de minim) al lui ϕ cu eroare cel mult 1 ε. 13
Mădălina Roxana Buneci Metode de Optimizare Curs - 007 > bisection:=proc(phi,i0,epsilon) > local c,a,b,d,,nmax; > a:=evalf(i0[1]);b:=evalf(i0[]);d:=d(phi); > nmax:=ceil(ln(abs((b-a)/epsilon))/ln()); :=0; > while <nmax do > c:=(a+b)/; > if d(c)=0 then a:=c;b:=c;:=nmax+1 else > if evalf(d(c)*d(a))<0 then b:=c else a:=c fi fi; > :=+1 od; > c:=(a+b)/; > RETURN(c) > end; Exemplu 8. Aplicăm procedura bisection funcţiilor ϕ 1, respectiv ϕ din exemplul 4 şi intervalelor date de listele I01, respectiv I0 obţinute ca urmare a aplicării procedurii init (în exemplul 4): > evalf(d(phi1)(i01[1])*d(phi1)(i01[])); -3. > bisection(phi1,i01,10^(-5)); 1.500000000 > evalf(d(phi)(i0[1])*d(phi)(i0[])); -1.666666667 > bisection(phi,i0,10^(-5)); 0. VII.1.3. Metoda tangentei (metoda lui Newton) Prin metoda tangentei (metoda lui Newton) se determină o rădăcină a unei ecuaţii h(t) = 0 ca limita unui şir. Se pleacă de la un punct t 0 dat. Presupunând că s-a construit termenul t -1, termenul t se determină ca fiind abscisa intersecţiei dintre tangenta la graficul funcţiei h în t -1 şi axa absciselor. 14
Metode de Optimizare Curs 1 t t -1 Presupunem că funcţia h: [a 0, b 0 ] R este de ori derivabilă şi că h nu se anulează. Ecuaţia tangentei în t n-1 fiind: rezultă (luând y = 0) y h(t -1 ) = h (x -1 )(x x -1 ) t = t -1-15 ( 1 ) ( t 1 ) h t h Convergenţa şirului este determinată de termenul iniţial t 0. Mai precis dacă t 0 se află într-o vecinătate suficient de mică a soluţiei t* a ecuaţiei h(t) = 0, atunci şirul (t ) converge la t*. Mai mult, avem unde m 1 = inf h [ ] t a,b 0 0 M t t m t* - t ( ) ( t) şi M = sup h ( t) t [a,b ] 0 0 1. 1. Pentru rezolvarea ecuaţiei ϕ (t) = 0, şirul corespunzător metodei tangentei este definit prin: iar algoritmul corespunzător: t = t -1 - ϕ strict convexă de clasă C t 00 dat (punct iniţial) ϕ ϕ ( t 1 ) ( t 1 ), t 0 dat ε > 0 dat precizia de localizare a unui punct de minim t* al lui ϕ (sau t 0 : = t 00 ; echivalent punct staţionar al lui ϕ)
Mădălina Roxana Buneci Metode de Optimizare Curs - 007 t 1 : = t 0 - ϕ ϕ ( t0 ) ( t ) 0 ; cât timp t 1 t 0 ε execută t 0 := t 1 ; t 1 : = t 0 - ϕ ϕ ( t0 ) ( t ) 0 ; La ieşire t 1 este o aproximaţie a unei rădăcini t* a ecuaţiei ϕ (t) = 0 cu eroarea absolută mai mică decât ε. Prezentăm în continuare o variantă a acestui algoritm pentru cazul în care şirul construit nu converge. Introducem ca dată suplimentară de intrare numărul maxim de termeni din şir ce urmează a fi calculaţi (Nmax) şi afişăm termenul şirului corespunzător fiecărei iteraţii. Condiţia de oprire se transformă t 0 : = t 00 ; t 1 : = t 0 - :=1; ϕ ϕ ( t0 ) ( t ) 0 ; t - t -1 < ε sau n > Nmax cât timp ( t 1 t 0 ε) şi ( Nmax) execută t 0 := t 1 ; t 1 : = t 0 - : = +1; ϕ ϕ afişează t1; ( t0 ) ( t ) 0 ; Trebuie verificat la ieşirea din ciclu dacă ϕ (t 1 ) 0. Dacă problema este bine condiţionată (adică aproximaţiei. 1 ϕ * ( t ) mic), aceasta condiţie va asigura acurateţea Procedurile MAPLE corespunzătoare sunt prezentate mai os: > newton1:=proc(phi,t00,epsilon) > local t0,t1,d1,d; > d1:=d(phi); d:=d(d1);t0:=evalf(t00);t1:=t0-d1(t0)/d(t0); 16
Metode de Optimizare Curs 1 > while ((t1-t0)^)>=epsilon do > t0:=t1;t1:=t0-d1(t0)/d(t0) od; > RETURN(t1) > end; > newton1_:=proc(phi,t00,epsilon,nmax) > local t0,t1,d1,d,; > d1:=d(phi); d:=d(d1);t0:=evalf(t00);t1:=t0-d1(t0)/d(t0); :=1; > while (((t1-t0)^)>=epsilon) and (<=Nmax) do > t0:=t1;t1:=t0-d1(t0)/d(t0); :=+1; > print(t1) od; > RETURN(t1) > end; Exemplu 9. Aplicăm procedura newton1 funcţiei ϕ 1 din exemplul 4 cu punctele iniţiale t 0 =0, respectiv t 0 = : > newton1(phi1,0,10^(-5)); > newton1(phi1,,10^(-5)); 1.500000000 1.500000000 şi funcţiei ϕ din exemplul 4 cu punctele iniţiale t 0 =0.7, respectiv t 0 = -0.7 : > newton1(phi,0.7,10^(-5)); > newton1(phi,-0.7,10^(-5)); -0.7398 10-10 -0.7398 10-10 Aplicăm procedura newton1_ funcţiei ϕ 1 cu punctele iniţiale t 0 =10 (număr maxim de iteraţii 1), respectiv t 0 = (număr maxim de iteraţii 1) : > newton1_(phi1,10,10^(-5), 1); > newton1_(phi1,-30,10^(-5),1); 1.500000000 1.500000000 1.50000000 1.50000000 17
Mădălina Roxana Buneci Metode de Optimizare Curs - 007 precum şi funcţiei ϕ cu punctele iniţiale: t 0 =0.7 (număr maxim de iteraţii 5), t 0 = - 0.7 (număr maxim de iteraţii 5), t 0 =1.5 (număr maxim de iteraţii 5), respectiv t 0 = 1.05 (număr maxim de iteraţii 5): > newton1_(phi,0.7,10^(-5),5); > newton1_(phi,-0.7,10^(-5), 5); > newton1_(phi,1.5,10^(-5),5); > newton1_(phi,1.05,10^(-5), 5); -0.400999999-0.057648010-0.003339345-0.000011044830-0.7398 10-10 -0.7398 10-10 -0.400999999-0.057648010-0.003339345-0.000011044830-0.7398 10-10 -0.7398 10-10 -.44140650-5.960464478-35.5713679-16.177449-0.1593091913 10 7-0.1593091913 10 7-1.155065-1.477455449 -.18874604-4.764941536 -.70466784 -.70466784 18
Metode de Optimizare Curs 1 Se observă că pentru punctele iniţiale t 0 =1.5 şi t 0 = 1.05 şirul construit prin metoda lui Newton nu converge la punctul staţionar al funcţiei ϕ. VII.. Proceduri de alegere suboptimală a pasului Procedurile de alegere suboptimală a pasului presupun determinarea pasului t din condiţia realizării unei reduceri semnificative (dar nu neapărat optimale) a funcţiei f în direcţia v (v direcţie descendentă în x ) : f(x + t v ) < f(x ) Aşa cum am arătat mai înainte dacă f este diferenţiabilă şi v este o direcţie descendentă în x, atunci există λ >0 astfel încât pentru orice t (0, f(x + tv ) < f(x ). λ ) Deci orice valoare t (0, λ ) satisface f(x + t v ) < f(x ). Să observăm însă în exemplul următor ce se întâmplă dacă valorile t sunt prea mici. Fie f : R R, f(x) = x, x 0 =, v 1 = -1, t = 1, + x+1 = x + t v pentru orice 0. (x 0, f(x 0 )) (x 1, f(x 1 )) (x, f(x )) Deoarece paşii de deplasare t sunt prea mici şirul construit x = - = 1 1 converge la 1 şi nu la punctul de minim x =0 al funcţiei f. Algoritmul de alegere a lui t prezentat mai os previne situaţia în care pasul t ar deveni prea mic. t init > 0 valoare iniţială dată (de exemplu, t init = 1 dacă domeniul de definiţie al lui f este R n ) β (0, 1) dat (de exemplu, β = 1 ) 19
Mădălina Roxana Buneci Metode de Optimizare Curs - 007 t: = t init cât timp f(x +tv ) f(x ) execută t : = t; t : = t * β; Ca urmare t va lua cea ai mare valoare dintre cele de forma t init β, = 0,1,... care îndeplineşte condiţia f(x +t init β v ) < f(x ). Pe de altă parte nici situaţia în care t este prea mare relativ la descreşterea lui f nu convine după cum rezultă din exemplul următor. Fie f:r R, f(x) = x, x 0 =, v = (-1) +1 3, t = +, + x+1 1 = x + t v pentru orice 0. (x 0, f(x 0 )) (x 1, f(x 1 )) (x, f(x )) (x 3, f(x 3 )) (x 4, f(x 4 )) În acest exemplu paşi t sunt prea mari relativ la valorile cu care descreşte f, iar termenii x = (-1) 1 + oscilează de o parte şi cealaltă a minimului. Şirul (x ) are două subşiruri convergente la 1 şi respectiv -1, fără ca vreunul din punctele -1 sau 1 să fie punct de minim pentru f. Pentru a preveni această situaţie se impune o condiţie mai tare decât simpla descreştere f(x + t v ) < f(x ), şi anume: f(x + t v ) f(x ) + t δ< f(x ), v > (10) unde δ (0, 1). Condiţia (10) poartă denumirea de condiţia lui Armio. Algoritmul bactracing Armio (de căutare liniară) pentru determinarea lui t este redat mai os: t init > 0 valoare iniţială dată (de exemplu, t init = 1) 0
Metode de Optimizare Curs 1 β (0, 1) dat (de exemplu, β = 1 ) δ (0, 1) - dat (de exemplu, δ = 0.1 sau 10-4 ) t: = t init cât timp f(x +tv ) > f(x ) + t δ< f(x ), v > execută t : = t * β; t : = t; Procedura MAPLE suboptimal are drept parametri funcţia f, punctul x, direcţia descendentă v, şi valorile t init, β şi δ. Procedura întoarce pasul t astfel încât condiţia Armio să fie verificată. > suboptimal:=proc(f,x,v,tinit,beta,delta) > local y, t,n,g,g,x1; > n:=vectdim(x); >g:=grad(f(seq(x[i],i=1..n)),vector([seq(x[i],i=1..n)])); >g:=vector([seq(subs(seq(x[i]=x[i], i=1..n),g[]),=1..n)]); >y:=evalf(f(seq(x[i],i=1..n))); >t:=evalf(tinit);x1:=vector(n);x1:=evalm(x+t*v); > while f(seq(x1[i],i=1..n))>y+t*delta*sum(g[i]*v[i],i=1..n) > do t:=t*beta; x1:=evalm(x+t*v) > od; > RETURN(t) > end; Aplicând această procedură funcţiei f 1 : R R, definită prin f 1 (x,y) = 3x +y -xy -4x +y -3 > f1:=(x,y)->3*x^+*y^-*x*y-4*x+*y-3; f1 := ( x, y ) 3 x + y x y 4 x + y 3 şi punctului x = [0,0], direcţiei v = [1,-1] şi luând t init = 1, β = 0.5 şi δ =0.1 (respectiv δ = 0.45) obţinem: > suboptimal(f1,vector([0,0]),vector([1,-1]),1,0.5,0.1); > suboptimal(f1,vector([0,0]),vector([1,-1]),1,0.5,0.45); 0.5 0.5 Rămâne să arătăm că algoritmul de determinare a lui t se termină într-un număr finit de paşi şi că valoarea lui t nu devine prea mică. În plus vom studia 1
Mădălina Roxana Buneci Metode de Optimizare Curs - 007 convergenţa şirului construit (x ). Vom presupune că gradientul funcţiei f este o funcţie Lipschitz continuă. Definiţie 11. Fie V şi W două spaţii normate şi X V o submulţime. Funcţia F:X W se numeşte Lipschitz continuă pe X dacă există o constantă γ>0 (numită constanta Lipschitz) astfel încât pentru orice x,y X să avem: F(y) F(x) γ y-x. Este uşor de observat că orice Lipschitz continuă pe X este uniform continuă pe X (în particular, continuă pe X). Restricţia oricărei funcţii de clasă C 1 la o mulţime compactă K este Lipschitz continuă pe K (rezultă din teorema creşterilor finite). Observaţie 1. Pentru funcţii având diferenţiale de ordinul 1, respectiv de ordinul, Lipschitz continue sunt valabile următoarele formule Taylor: Presupunem că: X este o submulţime deschisă a lui R n, f:x R o funcţie de clasă C 1, f Lipschitz continuă (cu constanta Lipschitz γ L ), x 0 X, h R n cu proprietatea că x 0 +λh X pentru orice λ [0, 1]. Atunci f(x 0 + h) - f(x 0 ) - < f(x 0 ), h> 1 γl h Presupunem că: X o este o submulţime deschisă a lui R n, f:x R o funcţie de clasă C, Hf Lipschitz continuă (cu constanta Lipschitz γ P ), x 0 X, h R n cu proprietatea că x 0 +λh X pentru orice λ [0, 1]. Atunci f(x 0 + h) - f(x 0 ) - < f(x 0 ), h> - 1 <Hf(x0 )h, h> 1 6 γp h 3 Teoremă 13. Fie X o submulţime deschisă a lui R n, f: X R o funcţie de clasă C 1 având gradientul f Lipschitz continuu cu constanta Lipschitz γ şi fie x X. Dacă δ (0, 1) şi v este o direcţie descendentă în x, atunci condiţia Armio este satisfăcută pentru orice t [0, λ ( x,v) ], unde λ ( x,v) = δ 1 < v, f x > γ v (norma considerată fiind ). Demonstraţie. Fie t [0, λ ( x,v) ]. Deoarece
Metode de Optimizare Curs 1 f(x+ tv) - f(x) - t< f(x), v> f(x+ tv) - f(x) - t< f(x), v> 1 γt v rezultă că f(x+tv) f(x) + t< f(x), v> + 1 γt v f(x) + t< f(x), v> + 1 γt ( 1) v, f ( x) = f(x) + t< f(x), v> + t(δ-1) <v, f(x)> = f(x) + δt<v, f(x)> δ < > v γ v Corolar 14. Fie f: R n R o funcţie de clasă C 1 având gradientul f Lipschitz continuu cu constanta Lipschitz γ şi fie x X. Dacă β (0, 1), δ (0,1) şi v este o direcţie descendentă în x K, atunci pasul t generat de algoritmul bactracing-armio satisface condiţia t 1 v, f x β δ < > min t init, γ v (norma considerată fiind ). Demonstraţie. Există două posibilităţi 1. t init satisface condiţia Armio şi atunci t = t init.. t init nu satisface condiţia Armio şi atunci t este de forma t init β i cu i N *. Fie cel mai mare număr natural cu proprietatea că t init β > δ 1 < v, f x >. (14.1) γ v Atunci t init β +1 δ 1 < v, f x > γ v şi conform teoremei precedente t init β +1 satisface condiţia Armio. Aşadar t t init β +1 = β t init β > ( 14.1) β δ 1 < v, f x >. γ v 3
Mădălina Roxana Buneci Metode de Optimizare Curs - 007 În consecinţă, în ambele cauze t 1 v, f x β δ < > min t init,. γ v Teoremă 15 (convergenţa algoritmilor de căutare liniară inexactă în cazul generării pasului de deplasare prin algoritmul bactracing-armio). Fie f: R n R o funcţie de clasă C 1 având gradientul f Lipschitz continuu i fie x 0 X. Se construieşte şirul definit prin x +1 = x + t v, 0 unde v este o direcţie descendentă în x, iar t este pasul de deplasare obţinut aplicând algoritmul bactracing-armio. Atunci are loc una din următoarele trei situaţii: 1. f(x ) = 0 pentru un anumit 0. inf f ( x ) = - lim min < v, f x >, 3. < v, f x > = 0 v (norma considerată fiind ). Demonstraţie. Presupunem că inf f ( x ) 0. Din condiţia Armio rezultă că pentru orice 0 f(x + t v ) f(x ) + t δ< f(x ), v > f(x +1 ) - f(x ) t δ< f(x ), v > f(x ) - f(x +1 ) - t δ< f(x ), v >. Sumând după se obţine f(x 0 ) - f(x +1 ) t v, f ( x ) = 0 δ < >. 4 >- şi că f(x ) 0 pentru orice Cu alte cuvinte şirul sumelor parţiale ale seriei cu termeni pozitivi t δ < v, f x > este mărginit, deci seria este convergentă şi ca urmare = 0 termenul ei general converge la zero:
Metode de Optimizare Curs 1 lim t < f(x ), v > = 0. (15.1) Fie γ constanta Lipschitz asociată gradientului f. Notăm K 1 =, t K =, t β δ 1 < v, f x > > γ v init β δ 1 < v, f x >. γ v init Ţinând cont de corolarul 14, rezultă că pentru orice K 1 avem t β δ 1 < v, f x > γ v γ β 1 ( δ) v, f x t < > < v, f x > v γ β 1 ( δ) v, f x t < > < v, f x > (15.) v Pentru orice K avem t t init şi ca urmare < f(x ), v > = Din (15.) şi (15.3) rezultă că 0 < > v, f x t t v, f x < > min < v, f x >, v Dar din (15.1) rezultă că ( δ) 5 < > v, f x t t init min < v, f x > t, ( δ) (15.3). v, f x t γ < > β 1 t lim min < v, f x > t, init v, f x t γ < > β 1 t init = 0.
Mădălina Roxana Buneci Metode de Optimizare Curs - 007 lim min < v, f x >, şi ca urmare < v, f x > = 0 v Observaţie 16. După cum rezultă teorema anterioară algoritmul bactracing-armio (prin care t este cel mai mare număr de forma t init β i (cu i N) care satisface condiţia Armio) asigură convergenţa metodelor de căutare liniară inexactă, dacă se impun condiţii suplimentare asupra lui f (f să fie mărginită inferior) şi asupra direcţiei v astfel încât din condiţia 3 a teoremei 15 să rezulte convergenţa la 0 a şirului ( f(x )) sau măcar a unui subşir al acestuia. Există însă şi alte modalităţi pentru a evita ca t să devină prea mic sau prea mare (relativ la descreşterea lui f). Se spune că t satisface condiţiile Wolfe dacă f(x + t v ) f(x ) + t δ 1 < f(x ), v > (17a) < f(x + t v ), v > δ < f(x ), v > (17b) cu 0 < δ 1 < δ < 1 (de exemplu, δ 1 = 10-4 şi δ = 0.9 dacă direcţia v este aleasă printr-o metodă de tip Newton sau δ = 0.1 dacă direcţia v este aleasă prin metoda de gradientului conugat). Se spune că t satisface condiţiile Wolfe în sens tare dacă f(x + t v ) f(x ) + t δ 1 < f(x ), v > (18a) < f(x + t v ), v > δ < f(x ), v > (18b) cu 0 < δ 1 < δ < 1. Se spune că t satisface condiţiile Goldstein dacă f(x ) + t (1-δ)< f(x ), v > f(x + t v ) f(x ) + t δ< f(x ), v > (19) cu 0 < δ < 1. Un dezavanta al condiţiilor lui Goldstein relativ la condiţiile Wolfe este acela că prima dintre inegalităţi poate exclude toate punctele de minim ale funcţiei ϕ (ϕ(t) = f(x + tv )). Condiţiile Goldstein se utilizează în cazul metodei Newton, dar nu sunt potrivite pentru metodele cvasi-newton. De asemenea algoritmul bactracing-armio este foarte potrivit metodei Newton, dar mai puţin potrivit metodele cvasi-newton sau de gradient conugat (ce vor fi descrise în subcapitolul următor). 6
Metode de Optimizare Curs 1 Ca şi în cazul algoritmului bactracing-armio, condiţiile Wolfe nu sunt suficiente pentru a asigura convergenţa indiferent de alegerea direcţiilor v. Următoarea teoremă datorată lui Zoutendi stă la baza rezultatelor privind convergenţa diverselor metode în care paşii de deplasare satisfac condiţiile Wolfe. Teoremă 0 (convergenţa algoritmilor de căutare liniară inexactă în cazul în care pasul de deplasare satisface condiţiile Wolfe) Fie f:r n R o funcţie de clasă C 1 având gradientul f Lipschitz continuu cu constanta Lipschitz γ şi fie x 0 X. Se construieşte şirul definit prin x +1 = x + t v, 0 unde v este o direcţie descendentă în x, iar pasul de deplasare t îndeplineşte condiţiile Wolfe (17a, 17b) pentru orice 0. Atunci are loc una din următoarele trei situaţii: 1. f(x ) = 0 pentru un anumit 0. inf f ( x ) 3. Seria = - 0 cos θ f x este convergentă. În particular, cos(θ ) = cos f x lim f x,v < > f x Demonstraţie. Presupunem că inf f ( x ) v θ =0, unde 0. Datorită condiţiilor Wolfe, mai precis, din (17b) rezultă că. >- şi că f(x ) 0 pentru orice < f(x + t v ) - f(x ), v > (δ -1) < f(x ), v > (0.1) Din faptul că f este Lipschitz continuă, rezultă că de unde, f(x + t v ) - f(x ) γt v < f(x + t v ) - f(x ), v > γt v. (0.) Din (0.1) şi din (0.) obţinem inegalitatea 7
Mădălina Roxana Buneci Metode de Optimizare Curs - 007 δ 1 t γ f x,v < >, şi folosind prima condiţie Wolfe (17a) rezultă mai departe f(x + t v ) f(x δ 1 ) + γ v ( ( f x ),v ) < > δ1 v 1 δ Dacă notăm c = δ1 şi ţinem cont că x + t v = x +1 obţinem γ f(x +1 ) f(x ) - c iar sumând după şi ţinând seama că cos(θ ) = ( ( < f x ),v > ) 8 v f x,v < > f x f(x +1 ) f(x 0 ) - c cos θ f x = 0 θ f x cos 1 = 0 c (f(x0 ) - f(x +1 )) v, rezultă Cu alte cuvinte şirul sumelor parţiale ale seriei cu termeni pozitivi cos este mărginit, deci seria este convergentă şi ca urmare 0 θ f x termenul ei general converge la zero: cos f x lim θ =0. Observaţie 1. Rezultate similare teoremei precedente se obţin în cazul în care pasul t satisface condiţiile Goldstein pentru orice 0 sau condiţiile Wolfe în sens tare pentru orice 0. Şi în cazul acestor strategii dacă f este mărginită inferior, fie f(x ) = 0 pentru un anumit, fie este îndeplinită condiţia numită condiţia Zoutendi. convergentă () 0 seria cos θ f x Observaţie 3. Încheiem acest subcapitol cu un comentariu asupra alegerii lui t init (prima încercare pentru determinarea pasului t ). Indiferent de strategie
Metode de Optimizare Curs 1 (bactracing-armio, Wolfe (sau Wolfe în sens tare), Goldstein), dacă metoda de determinare a direcţiei este de tip Newton sau cvasi-newton, atunci t init = 1. În cazul metodelor gradientului sau gradientului conugat este important ca la fiecare pas să se ţină cont de informaţia curentă. Astfel t init la pasul (adică cel folosit pentru determinarea lui t ) poate fi luat t -1 1 1 1 f ( x ),v < f ( x ),v > sau f x f x 1 1 f ( x ),v < > < >. 9