179
Metode de Optimizare Numeric˘ a Culegere de probleme Ion Necoar˘ a Drago¸ s Clipici Andrei P˘ atra¸ scu Departamentul de Automatic˘ si Ingineria Sistemelor UniversitateaPolitehnic˘a din Bucure¸ sti Email: {ion.necoara,dragos.clipici,andrei.patrascu}@acse.pub.ro 2013

Metode de Optimizare Numeric˘a

Embed Size (px)

Citation preview

Page 1: Metode de Optimizare Numeric˘a

Metode de Optimizare NumericaCulegere de probleme

Ion Necoara Dragos Clipici Andrei Patrascu

Departamentul de Automatica si Ingineria SistemelorUniversitatea Politehnica din Bucuresti

Email: {ion.necoara,dragos.clipici,andrei.patrascu}@acse.pub.ro

2013

Page 2: Metode de Optimizare Numeric˘a
Page 3: Metode de Optimizare Numeric˘a
Page 4: Metode de Optimizare Numeric˘a
Page 5: Metode de Optimizare Numeric˘a

Prefata

Lucrarea de fata este construita dupa structura cursului de Tehnicide optimizare, predat de primul autor la Facultatea de Automatica siCalculatoare a Universitatii Politehnica din Bucuresti si se adreseazastudentilor de la facultatile cu profil tehnic sau cu tematici adiacenteingineriei sistemelor si calculatoarelor. Aceasta contine o serie deprobleme rezolvate de laborator si seminar, avand rolul de suportpentru aplicatiile teoretice/practice abordate la diferite materii ce includnotiuni din teoria optimizarii. La ınceputul fiecarui capitol este introdusun succint breviar teoretic ın care se definesc instrumentele necesareıntregului capitol, iar la final este expusa o sectiune cu problemepropuse ce au ca scop posibilele extensii ale aplicatiilor rezolvate.Rezolvarea problemelor de laborator a fost implementata ın mediul deprogramare Matlab, iar ın corpul rezolvarii au fost incluse secventade cod corespunzatoare si figuri ce reflecta performantele practice alealgoritmilor folositi. Pe tot parcursul lucrarii prezentam multe exemplede aplicatii si exercitii rezolvate pentru a face mai accesibila ıntelegereateoriei si conceptelor legate de optimizarea numerica. Precizam ca oparte din algoritmii prezentati ınca reprezinta o tema de cercetare deactualitate ın domeniul optimizarii ın care autorii activeaza. Capitoleleau fost structurate gradat, dupa dificultatea si importanta notiunilorteoretice necesare ın cadrul aplicatiilor, ın numar de sapte:

Cap 1: Functii ale pachetului de optimizare Matlab;Cap 2: Optimizare convexa;Cap 3: Algoritmi de ordinul I pentru probleme neconstranse;Cap 4: Algoritmi de ordinul II pentru probleme neconstranse;Cap 5: Optimizare constransa;Cap 6: Algoritmi pentru probleme constranse;Cap 7: Aplicatii din inginerie.

Desi fiecare dintre capitole dezvolta cazuri concrete de aplicatii alealgoritmilor ın cauza, ultimul este alocat unei serii de aplicatii reale, deactualitate, din diverse domenii ale ingineriei, precum reglarea (controlul)optimala, prelucrarea semnalelor sau ınvatarea automata. Fiecareaplicatie ilustreaza tehnici specifice de modelare matematica a uneiprobleme si strategii de formulare a modelului matematic de optimizare

Page 6: Metode de Optimizare Numeric˘a

6

pentru aplicatia respectiva. Acest capitol final demonstreaza astfelaplicabilitatea metodelor numerice de optimizare prezentate ın capitoleleanterioare ın probleme extrem de studiate din inginerie.1In final, precizam ca am ıncercat sa reducem din caracterul tehnic allimbajului pentru o expunere cat mai clara si ın acelasi timp, pentruca cititorul sa ısi poata fixa cat mai usor notiunile fundamentale deoptimizare.

Autorii, mai 2013

Page 7: Metode de Optimizare Numeric˘a

Cuprins

1 Functii ale pachetului de optimizare MATLAB 11

1.1 Preliminarii . . . . . . . . . . . . . . . . . . . . . . . . . 111.1.1 Mediul Matlab . . . . . . . . . . . . . . . . . . . 12

1.2 Probleme rezolvate de laborator . . . . . . . . . . . . . . 131.2.1 Minimizare neconstransa . . . . . . . . . . . . . . 131.2.2 Minimizare constransa . . . . . . . . . . . . . . . 171.2.3 Programare liniara . . . . . . . . . . . . . . . . . 241.2.4 Programare patratica . . . . . . . . . . . . . . . . 27

1.3 Probleme rezolvate de seminar . . . . . . . . . . . . . . . 291.3.1 Diferentiere multivariabila . . . . . . . . . . . . . 291.3.2 Probleme de optimizare generale . . . . . . . . . 30

1.4 Probleme propuse . . . . . . . . . . . . . . . . . . . . . . 35

2 Probleme de optimizare convexa 38

2.1 Preliminarii . . . . . . . . . . . . . . . . . . . . . . . . . 382.1.1 Multimi convexe . . . . . . . . . . . . . . . . . . 382.1.2 Functii convexe . . . . . . . . . . . . . . . . . . . 40

2.2 Pachet CVX . . . . . . . . . . . . . . . . . . . . . . . . . 412.2.1 Instalare . . . . . . . . . . . . . . . . . . . . . . . 422.2.2 Elemente de baza . . . . . . . . . . . . . . . . . . 43

2.3 Probleme rezolvate de laborator . . . . . . . . . . . . . . 442.4 Probleme rezolvate de seminar . . . . . . . . . . . . . . . 48

2.4.1 Multimi si functii convexe . . . . . . . . . . . . . 482.5 Probleme propuse . . . . . . . . . . . . . . . . . . . . . . 57

3 Metode de ordinul I 63

3.1 Preliminarii . . . . . . . . . . . . . . . . . . . . . . . . . 633.2 Probleme rezolvate de laborator . . . . . . . . . . . . . . 64

3.2.1 Metoda Gradient . . . . . . . . . . . . . . . . . . 643.2.2 Metoda gradientilor conjugati . . . . . . . . . . . 70

Page 8: Metode de Optimizare Numeric˘a

8 Cuprins

3.3 Probleme rezolvate de seminar . . . . . . . . . . . . . . . 723.3.1 Aproximari patratice . . . . . . . . . . . . . . . . 723.3.2 Conditii de optimalitate de ordin I . . . . . . . . 733.3.3 Metoda gradient . . . . . . . . . . . . . . . . . . 75

3.4 Probleme propuse . . . . . . . . . . . . . . . . . . . . . . 82

4 Metode de ordinul II 85

4.1 Preliminarii . . . . . . . . . . . . . . . . . . . . . . . . . 854.2 Probleme rezolvate de laborator . . . . . . . . . . . . . . 87

4.2.1 Metoda Newton . . . . . . . . . . . . . . . . . . . 874.2.2 Metode cvasi-Newton . . . . . . . . . . . . . . . . 90

4.3 Probleme rezolvate de seminar . . . . . . . . . . . . . . . 924.3.1 Metoda Newton si metoda BFGS . . . . . . . . . 92

4.4 Probleme propuse . . . . . . . . . . . . . . . . . . . . . . 100

5 Probleme de optimizare constransa 103

5.1 Preliminarii . . . . . . . . . . . . . . . . . . . . . . . . . 1035.2 Probleme rezolvate de laborator . . . . . . . . . . . . . . 104

5.2.1 Formularea unei probleme de optimizare ın formastandard . . . . . . . . . . . . . . . . . . . . . . . 104

5.2.2 Calcularea proiectiei ortogonale a unui punct pe omultime convexa . . . . . . . . . . . . . . . . . . 106

5.2.3 Metoda Gauss-Newton . . . . . . . . . . . . . . . 1115.2.4 Metoda gradientului proiectat . . . . . . . . . . . 113

5.3 Probleme rezolvate de seminar . . . . . . . . . . . . . . . 1155.3.1 Problema duala, conditii si puncte Karush-Kuhn-

Tucker . . . . . . . . . . . . . . . . . . . . . . . . 1155.4 Probleme propuse . . . . . . . . . . . . . . . . . . . . . . 129

6 Metode pentru probleme de optimizare constransa 132

6.1 Preliminarii . . . . . . . . . . . . . . . . . . . . . . . . . 1326.1.1 Probleme neconvexe cu constrangeri de egalitate . 1326.1.2 Probleme convexe cu constrangeri de egalitate . . 1336.1.3 Probleme convexe generale . . . . . . . . . . . . . 134

6.2 Probleme rezolvate de laborator . . . . . . . . . . . . . . 1376.2.1 Metoda Lagrange-Newton . . . . . . . . . . . . . 1376.2.2 Metoda Newton extinsa . . . . . . . . . . . . . . 1386.2.3 Metoda de punct interior . . . . . . . . . . . . . . 140

6.3 Probleme rezolvate de seminar . . . . . . . . . . . . . . . 145

Page 9: Metode de Optimizare Numeric˘a

Cuprins 9

6.3.1 Metoda Newton pentru probleme constranse . . . 1456.3.2 Probleme de control optimal . . . . . . . . . . . . 147

6.4 Probleme propuse . . . . . . . . . . . . . . . . . . . . . . 153

7 Aplicatii din inginerie 157

7.1 Control optimal . . . . . . . . . . . . . . . . . . . . . . . 1577.1.1 Control optimal aplicat unui robot E-Puck . . . . 1587.1.2 Control optimal aplicat unei instalatii cu patru

rezervoare . . . . . . . . . . . . . . . . . . . . . . 1647.2 Problema Google . . . . . . . . . . . . . . . . . . . . . . 1677.3 Clasificarea de imagini . . . . . . . . . . . . . . . . . . . 173

Bibliografie 179

Page 10: Metode de Optimizare Numeric˘a

10 Cuprins

Page 11: Metode de Optimizare Numeric˘a

Capitolul 1

Functii ale pachetului de

optimizare MATLAB

1.1 Preliminarii

Explozia informationala din ultimele patru decenii a condus la algoritminumerici de optimizare indispensabili pentru abordarea diferitelorprobleme din domeniile ingineriei, fizicii, analizei numerice, teorieisistemelor si controlului, prelucrarii semnalelor, ınvatarii automateetc. Precizand ca aceasta scurta enumerare reprezinta doar cele maievidente domenii de aplicatie ale algoritmilor de optimizare, constatam cateoria optimizarii este considerata un instrument valoros ın majoritateadomeniilor stiintifice.In prezent exista algoritmi eficienti (rapizi) destinati rezolvariiproblemelor de optimizare convexe/neconvexe cu dimensiuni mici si mediiıntr-un interval de timp relativ scurt. Insa multe dificultati si ıntrebarifara raspuns apar ın cazul problemelor cu dimensiuni mari (e.g. 107−109

variabile). Dimensiunile problemelor ıntalnite ın domeniile enumerateanterior se afla ın crestere continua, astfel ıncat se formuleaza relativ desprobleme cu dimensiuni de zeci de milioane de variabile. Ca urmare,algoritmii de optimizare raman un subiect de actualitate ın cercetareamoderna din matematica aplicata.In continuare vom prezenta si formula principalele clase de probleme deoptimizare si ın plus, functiile Matlab uzuale pentru rezolvarea numericaa acestor tipuri de probleme.

Page 12: Metode de Optimizare Numeric˘a

12 Capitolul 1. Functii ale pachetului de optimizare MATLAB

1.1.1 Mediul Matlab

Matlab (Matrix laboratory) este un mediu de calcul numeric si unlimbaj de programare de generatia a patra, dezvoltat de companiaMathworks. Mediul Matlab ofera o interfata usor de utilizat pentruoperatii cu matrice, implementare de algoritmi, grafice de functii etc.

Figura 1.1: Matlab.

Inca de la sfarsitul anilor 1970, Matlab a castigat o audienta larga ıncadrul academic si ın comunitatea matematicii aplicate. Incepand cudezvoltarea de pachete de programe destinate problemelor numerice dealgebra liniara, au fost incluse si dezvoltate ulterior functii (toolbox-uri)specializate ın rezolvarea de probleme de optimizare, rezolvarea desisteme de ecuatii, modelare si identificare de sisteme, control etc.Pachetul Optimization Toolbox, din cadrul mediului Matlab, furnizeazaalgoritmi utilizati la scara larga, destinati problemelor de optimizarestandard si de mari dimensiuni. De asemenea, pachetul include si functiice rezolva probleme de optimizare structurate: programare liniara,programare patratica, programare binara, probleme CMMP neliniare,rezolvare de sisteme de ecuatii neliniare si optimizare multicriteriala.Dificultatea problemelor de optimizare ce apar de cele mai multe oriın practica limiteaza capacitatea algoritmilor existenti la gasirea uneisolutii aproximative corespunzatoare problemei date. De exemplu,

Page 13: Metode de Optimizare Numeric˘a

1.2. Probleme rezolvate de laborator 13

problema de optimizare ce presupune gasirea punctului global de maximcorespunzator functiei sinc(x) = sinπx

πxeste o problema dificil de rezolvat.

Pentru motivarea acestei afirmatii se poate observa usor ın Fig. 1.2 cafunctia sinc(x) prezinta o infinitate de maxime locale (denivelarile dela baza dealului), despre care nu cunoastem a priori daca sunt sau nuvalori maxime globale. Pentru a ilustra simplitatea cu care putem figurafunctiile ın mediul Matlab, prezentam ın continuare secventa de cod caregenereaza graficul din Fig. 1.2.

[X,Y] = meshgrid(-10:0.25:10,-10:0.25:10);

f = sinc(sqrt((X/pi).^2+(Y/pi).^2));

surf(X,Y,f);

axis([-10 10 -10 10 -0.3 1])

xlabel(’{\bfx}’)

ylabel(’{\bfy}’)

zlabel(’{\bfsinc} ({\bfR})’)

Figura 1.2: Graficul functiei sinc(x) .

1.2 Probleme rezolvate de laborator

1.2.1 Minimizare neconstransa

Problemele de optimizare neconstransa presupun minimizarea (saumaximizarea) unei anumite functii obiectiv (criteriu) prin intermediulunui set de variabile de decizie, fara ca acestea sa respecte anumiterestrictii (constrangeri). Se considera functia (ın general, neliniara)

Page 14: Metode de Optimizare Numeric˘a

14 Capitolul 1. Functii ale pachetului de optimizare MATLAB

f : Rn → R de doua ori diferentiabila, careia i se asociaza problemade optimizare:

minx∈Rn

f(x),

unde x are rolul vectorului variabilelor de decizie. Problema deoptimizare se considera rezolvata daca s-a obtinut un vector x∗ pentrucare valoarea functiei f(·) ın x∗ este minima, adica f(x∗) ≤ f(x)pentru orice x ∈ R

n. Multimea ın care se efectueaza cautarea senumeste multime fezabila, care ın cazul de fata este data de ıntreg spatiulEuclidian R

n.

Functii MATLAB

Pentru cazul ın care functia obiectiv nu are o structura prestabilitasau o forma particulara, sunt disponibile urmatoarele functii MATLABpentru aproximarea unui punct de minim local ın cazul unei problemeneconstranse:

1. Functia [...]=fminunc(...) returneaza un punct de minim localal functiei introduse ca argument, cu ajutorul informatiei de ordinul I(gradient) si a celei de ordin II (Hessiana). Sintaxa functiei are expresia:

x=fminunc(fun,x0)

x=fminunc(fun,x0,optiuni)

[x,val]=fminunc(...)

[x,fval,exitflag,output,grad,hessian]=fminunc(...)

Variabila fun reprezinta functia obiectiv diferentiabila ce trebuiefurnizata ca o variabila de tip function handle. O variabila de tipfunction handle poate fi, e.g. un fisier objfun.m care primestela intrare variabila de decizie x si returneaza valoarea functiei ınx. Daca metoda de rezolvare a problemei necesita si gradientulfunctiei, iar optiunea GradObj este setata ’on’, atunci argumentulfun furnizeaza, ın plus, si valoarea gradientului ın punctul x. Dacametoda de rezolvare a problemei necesita Hessiana, iar optiuneaHessian este setata ’on’, atunci argumentul fun furnizeaza, ınplus, si valoarea hessianei ın punctul x.

Vectorul x0 reprezinta punctul initial de unde porneste procesulde cautare al minimului si trebuie furnizat ca un vector din R

n.

Page 15: Metode de Optimizare Numeric˘a

1.2. Probleme rezolvate de laborator 15

Variabila optiuni reprezinta setul de optiuni specific fiecarei rutineMatlab. Comanda optiuni=optimset(’fminunc’) afiseaza setulde optiuni implicit. Fiecare dintre acestea se poate modifica ınfunctie de problema de minimizare. De exemplu, pentru setareaoptiunii GradObj pe on, comanda este optiuni.GradObj=’on’.

Pentru o documentare amanuntita introduceti urmatoarea comanda:help fminunc

2. Functia [...]=fminsearch(...) returneaza un punct de minim localal functiei introduse ca argument, utilizand ınsa o metoda diferita de ceafolosita de fminunc, anume metoda Nedler-Mead, ce utilizeaza informatiede ordin zero (evaluarea functiei). Sintaxa este similara celei prezentatepentru functia fminunc.

Exemplul 1. Consideram problema de optimizare

minx∈R2

f(x)(= ex1(4x2

1 + 2x22 + 4x1x2 + 2x2 + 1)

).

Sa se rezolve problema (sa se gaseasca un punct de minim local) utilizandrutina fminunc, cu punctul de initializare x0 = [1;−1].

Rezolvare. Se creeaza fisierul objfun.m ce va contine urmatoareasecventa de cod:

function f=objfun(x)

f = exp(x(1))*(4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1);

Se apeleaza rutina fminunc ın urmatorul mod:

x0=[-1,1]; optiuni=optimset(LargeScale,off);

[x,fval,exitflag,output]=fminunc(@objfun,x0,optiuni);

Exemplul 2. Consideram problema de optimizare:

minx∈R

f(x) (= cos 3πx+ sin 2πx) .

(i) Sa se rezolve problema (sa se gaseasca un punct de minim local)utilizand rutina fminunc, cu punctul de initializare x0 = 0.

(ii) Sa se rezolve problema cu ajutorul metodei sectiunii de aur.

Page 16: Metode de Optimizare Numeric˘a

16 Capitolul 1. Functii ale pachetului de optimizare MATLAB

Rezolvare. (i) Se creeaza fisierul objfun.m cu urmatoarea secventa decod:

function f=objfun(x)

f = cos(3*pi*x) + sin(2*pi*x);

Se apeleaza rutina fminunc:

x0=0; optiuni=optimset(LargeScale,off);

[x,fval,exitflag,output]=fminunc(@objfun,x0,optiuni);

(ii) Deoarece functia este periodica, de perioada 2π, putem aplica metodasectiunii de aur, ın care se alege lungimea intervalului initial egala cu 2π,a carei implementare este expusa ın cele ce urmeaza. Se creeaza fisierulobjfun.m si goldsection.m:

function f=objfun(x)

f = cos(3*pi*x) + sin(2*pi*x);

end

function [xst,fst]= goldsection(x,eps)

a=x-pi; b=x+pi; lambda=a+0.382*(b-a);

miu=a+0.618*(b-a);

while ((b-a)>=eps)

if (objfun(lambda)<=objfun(miu))

b=miu;

else

a=lambda;

end

lambda=a+0.382*(b-a); miu=a+0.618*(b-a);

end

if (objfun(lambda)<=objfun(miu))

fst=objfun(lambda); xst=lambda;

else

fst=objfun(miu); xst=miu;

end

Exemplul 3 (Interpolare polinomiala). O problema des ıntalnita ınanaliza numerica si inginerie o reprezinta aproximarea optima a uneifunctii neliniare cu un polinom de grad dat. Mai exact, fiind data functia

Page 17: Metode de Optimizare Numeric˘a

1.2. Probleme rezolvate de laborator 17

neliniara f : R → R cu structura necunoscuta, dorim aproximareaacesteia cu un polinom g : R → R,

g(z) = anzn + · · ·+ a1z + a0.

Datele cunoscute ın legatura cu functia neliniara f reprezinta setul deperechi: (y1, f(y1)), . . . , (ym, f(ym)), unde scalarii yi ∈ R sunt dati.Notand vectorul coeficientilor polinomului cu x = [a0 . . . an]

T si b =[f(y1) . . . f(ym)]

T , problema se reduce la gasirea vectorului optim decoeficienti ce satisface relatia:

Ax =

1 y1 . . . yn11 y2 . . . yn2...

......

...1 ym . . . ynm

a0a1...an

f(y1)f(y2)...

f(ym)

= b.

Echivalent, obtinem urmatoarea problema de optimizare faraconstrangeri:

minx∈Rn+1

f(x)(= ‖Ax− b‖2

). (1.1)

Sa se rezolve problema (1.1), pe cazuri particulare pentru matricea A sivectorul b de diferite dimensiuni, utilizand rutinele fminunc si lsqlin.Sa se compare rezultatele obtinute. Ce se observa?

1.2.2 Minimizare constransa

Fie functia (ın general neliniara) f : Rn → R. Forma generala a uneiprobleme de optimizare cu constrangeri (numite si restrictii), asociatefunctiei f , se formuleaza ın urmatorul mod:

minx∈Rn

f(x)

s.l.: Cx ≤ d, g(x) ≤ 0, l ≤ x ≤ u, (1.2)

Ax = b, h(x) = 0,

unde l, u ∈ Rn, d ∈ R

m1 , b ∈ Rp1, C ∈ R

m1×n, A ∈ Rp1×n, iar g(x) :

Rn → R

m2 , h(x) : Rn → Rp2 sunt functii multidimensionale (vectori de

functii), reprezentand constrangerile neliniare de inegalitate si respectiv,de egalitate.

Page 18: Metode de Optimizare Numeric˘a

18 Capitolul 1. Functii ale pachetului de optimizare MATLAB

Exemplul 4. Consideram urmatoarea problema de optimizare:

minx∈R2

(x1 − 3)2 + (x2 − 2)2

s.l.: x21 − x2 − 3 ≤ 0, x2 − 1 ≤ 0, −x1 ≤ 0.

Functia obiectiv si cele trei constrangeri de inegalitate sunt definite deurmatoarele expresii:

f(x1, x2) = (x1 − 3)2 + (x2 − 2)2,

g1(x1, x2) = x21 − x2 − 3, g2(x1, x2) = x2 − 1, g3(x1, x2) = −x1.

Fig 1.3 ilustreaza multimea fezabila. Problema se reduce la a gasi unpunct ın multimea fezabila ın care (x1 − 3)2 + (x2 − 2)2 ia cea mai micavaloare. Observam ca punctele [x1 x2]

T cu (x1 − 3)2 + (x2 − 2)2 = c suntcercuri de raza c cu centrul ın [3 2]T . Aceste cercuri se numesc multimilenivel sau contururile functiei obiectiv avand valoarea c. Pentru aminimiza c trebuie sa gasim cercul cu cea mai mica raza care intersecteazamultimea fezabila. Dupa cum se observa din Fig. 1.3, cel mai mic cerccorespunde lui c = 2 si intersecteaza multimea fezabila ın punctul deoptim x∗ = [2 1]T .

−5 −4 −3 −2 −1 0 1 2 3 4 5−5

−4

−3

−2

−1

0

1

2

3

4

5

g1

g3 contururi functie obiectiv

punct optim (2,1)

zona fezabila

g2

(3,2)

Figura 1.3: Solutia grafica a problemei de optimizare.

Page 19: Metode de Optimizare Numeric˘a

1.2. Probleme rezolvate de laborator 19

Functii MATLAB

Pentru cazul ın care functia de minimizat (maximizat) nu are o structuraprestabilita sau o forma particulara, pentru rezolvarea problemei deoptimizare (1.2) este disponibila functia MATLAB fmincon ce prezintaurmatoarea sintaxa:

x = fmincon(fun,x0,C,d,A,b,l,u,nonlcon,optiuni)

[x,fval,exitflag,output,lambda,grad,hessian] = fmincon(...).

variabila fun reprezinta functia obiectiv ce trebuie furnizata cao variabila de tip function handle. Daca metoda de rezolvare aproblemei cere si gradientul functiei, iar optiunea GradObj estesetata ’on’, atunci argumentul fun furnizeaza, ın plus, si valoareagradientului ın punctul x. Daca metoda de rezolvare a problemeicere Hessiana, iar optiunea Hessian este setata ’on’, atunciargumentul fun furnizeaza, ın plus, si valoarea Hessianei ın punctulx;

matricele si vectorii C, d, A, b, l, u definesc constrangerile liniare custructura prezentata ın modelul (1.2);

variabila de tip handle nonlcon returneaza constrangerile neliniarede egalitate si inegalitate reprezentate ın (1.2);

x0 reprezinta punctul initial de unde porneste procesul de cautareal minimului si trebuie furnizat ca un vector din R

n;

variabila optiuni reprezinta setul de optiuni specific fiecarei rutineMATLAB. Comanda optiuni=optimset(’fmincon’) afiseaza setulde optiuni implicit. Fiecare dintre acestea se poate modifica ınfunctie de problema de minimizare. De exemplu, pentru setareaoptiunii GradObj pe on, comanda este optiuni.GradObj=’on’.

Pentru o documentare amanuntita introduceti urmatoarea comanda:help fmincon

Exemplul 5. Consideram problema de optimizare:

minx∈R2

f(x)(= ex1(4x2

1 + 2x22 + 4x1x2 + 2x2 + 1)

).

s.l.: g(x) ≤ 0

({

x1x2 − x1 − x2 + 1.5 ≤ 0

−x1x2 − 10 ≤ 0

)

.

Page 20: Metode de Optimizare Numeric˘a

20 Capitolul 1. Functii ale pachetului de optimizare MATLAB

Sa se rezolve local problema utilizand rutina fmincon, cu punctul deinitializare x0 = [1 1]T .

Rezolvare. Se creeaza fisierul objfun.m ce defineste functia obiectiv siconfun.m ın care se definesc constrangerile:

function f=objfun(x)

f=exp(x(1))*(4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1);

function[g,h]=confun(x)

g=[x(1)*x(2)-x(1)-x(2)+1.5 -x(1)*x(2)-10];

h=[];

Apoi se apeleaza rutina pentru minimizare cu restrictii:

x0=[-1,1];

optiuni=optimset(fmincon);

optiuni.LargeScale=off;

[x,fval]=fmincon(@objfun,x0,[],[],[],[],...

[],[],@confun,optiuni)

Exemplul 6 (Analiza statistica). Analiza datelor si interpretareaacestora ıntr-un sens cat mai corect este preocuparea principala dindomeniul statisticii. Problema se formuleaza ın urmatorul mod: pe bazaunei colectii de date cunoscute (reprezentate ın Fig. 1.4 prin puncte),sa se realizeze predictia cu o eroare cat mai mica a unui alt set de datepartial cunoscut. In termeni matematici, aceasta problema presupunedeterminarea unei directii de-a lungul careia elementele date (punctele)tind sa se alinieze, astfel ıncat sa se poata prezice zona de aparitie apunctelor viitoare. S-a constatat ca directia de cautare este data devectorul singular al matricei formate din colectia de puncte date, ce poatefi gasit prin intermediul urmatoarei probleme de optimizare:

maxx∈Rn

f(x)

(

=1

2xTATAx

)

(1.3)

s.l.: g(x) ≤ 0 (‖x‖ ≤ 1) ,

unde A ∈ Rm×n reprezinta matricea ale carei coloane [a1 . . . an] sunt

punctele cunoscute initial. Considerand cazul particular ın care se da

matricea A =

[1 0.5 00 2 1

]

, sa se rezolve problema precedenta cu ajutorul

functiei fmincon, alegand punctul initial x0 = [−1 − 2 0.5]T .

Page 21: Metode de Optimizare Numeric˘a

1.2. Probleme rezolvate de laborator 21

−2.5 −2 −1.5 −1 −0.5 0 0.5 1 1.5 2 2.5−10

−5

0

5

10

15

Figura 1.4: Un exemplu de dispersie a datelor ın spatiul R2. Observam capunctele se aliniaza de-a lungul dreptei ce iese ın evidenta.

Rezolvare. Se creeaza fisierele objfun.m si confun.m pentru functiaobiectiv si respectiv, pentru constrangeri :

function [f]=objfun(x)

f=x(1)^2+4.25*x(2)^2+x(3)^2+0.5*x(1)*x(2)+2*x(2)*x(3);

function [g,h]=confun(x)

g=x(1)^2+x(2)^2 + x(3)^2 - 1;

h=[];

Se apeleaza rutina pentru minimizare cu restrictii:

x0=[-1,-2,0.5];

optiuni=optimset(fmincon);

optiuni.LargeScale=off;

[x,fval]=fmincon(@objfun,x0,[],[],[],...

[],[],[],@confun,optiuni)

Exemplul 7 (Analiza stabilitatii robuste). Stabilitatea robusta asistemelor liniare afectate de perturbatii reprezinta o tema de cercetarede actualitate ın teoria controlului. Numeroase aplicatii practice necesitaanaliza stabilitatii robuste (Fig. 1.5) pentru asigurarea functionariicorespunzatoare a diferitelor sisteme afectate de zgomot si perturbatii(e.g. sistemul de viraj al autovehiculelor, sistemul de ghidare al uneimacarale).

Page 22: Metode de Optimizare Numeric˘a

22 Capitolul 1. Functii ale pachetului de optimizare MATLAB

Figura 1.5: Exemplu de reglare robusta ın cazul unui sistem cu parametriafectati de incertitudini.

In general, problema se reduce la studiul stabilitatii unui polinom cucoeficienti afectati de incertitudini. Consideram ca exemplu urmatorulpolinom:

s3 + (1 + a1 + a2)s2 + (a1 + a2 + 3)s+ (1 + 6a1 + 6a2 + 2a1a2), (1.4)

unde parametrii a1 si a2 satisfac conditiile:

a1 ∈ [1.4− 1.1δ, 1.4 + 1.1δ] si a2 ∈ [0.85− 0.85δ, 0.85 + 0.85δ],

unde δ > 0. Parametrii a1 si a2 pot reprezenta cantitati fizice (e.g.lungimi, mase) ce sunt afectate de incertitudini ın mod obisnuit, sauparametrii regulatorului ce pot varia datorita erorilor de implementare.Suntem interesati ın determinarea celei mai mari valori a variabileiδ pentru care polinomul ramane stabil. Aceasta problema se poatereformula ıntr-una de optimizare folosind criteriul Hurwitz : un polinomde gradul 3 de forma

p(s) = s3 + q2s2 + q1s+ q0

este stabil daca si numai daca q2q1 − q0 > 0 si q0 > 0. De aceea,consideram marginea maxima de stabilitate data de

δ∗ = min{δ1, δ2},

Page 23: Metode de Optimizare Numeric˘a

1.2. Probleme rezolvate de laborator 23

unde δ1 si δ2 sunt solutiile urmatoarelor probleme de optimizare:

δ1 = mina,δ

δ

s.l.: 2− 2a1 − 2a2 + a21 + a22 ≤ 0,

1.4− 1.1δ ≤ a1 ≤ 1.4 + 1.1δ

0.85− 0.85δ ≤ a2 ≤ 0.85 + 0.85δ,

δ2 = mina,δ

δ

s.l.: 1 + 6a1 + 6a2 + 2a1a2 ≤ 0,

1.4− 1.1δ ≤ a1 ≤ 1.4 + 1.1δ

0.85− 0.85δ ≤ a2 ≤ 0.85 + 0.85δ.

Sa se rezolve problemele de optimizare neliniara precedente utilizandfunctia fmincon.

Rezolvare. Pentru a simplifica rezolvarea furnizam secventa de codMatlab ce rezolva prima problema de optimizare si determina δ1,cea de-a doua rezolvandu-se ın mod analog. Consideram urmatoareasecventa de cod aferenta functiei obiectiv si constrangerilor problemeide optimizare ce determina δ1:

function [f]=objfun(delta)

f=delta;

end

function [g]=confun(x)

g=[1+6*x(1)+6*x(2)+2*x(1)*x(2);x(1)-1.4-1.1*x(3);...

-x(1)+1.4-1.1*x(3); x(2)-0.85-0.85*x(3);...

-x(2)+0.85-0.85*x(3)];

end

Se apeleaza apoi rutina pentru minimizare cu restrictii:

x0=[1.4 0.85 1000];

optiuni=optimset(fmincon);

optiuni.LargeScale=off;

[x,fval]=fmincon(@objfun,x0,[],[],[],...

[],[],[],@confun,optiuni)

Page 24: Metode de Optimizare Numeric˘a

24 Capitolul 1. Functii ale pachetului de optimizare MATLAB

1.2.3 Programare liniara

Pentru cazurile particulare de probleme de optimizare (e.g. functieobiectiv liniara sau patratica), exista functii Matlab specifice ce rezolvaproblemele de optimizare aferente prin intermediul unor algoritmidedicati respectivelor clase de probleme.Functia linprog rezolva probleme de programare liniara, ce vizeazaminimizarea unei functii obiectiv liniare, ın prezenta unui set deconstrangeri liniare. O problema de programare liniara se formuleazaın general dupa cum urmeaza:

minx∈Rn

cTx

s.l.: Cx ≤ d, l ≤ x ≤ u,

Ax = b,

unde c, l, u ∈ Rn, d ∈ R

m, b ∈ Rp, C ∈ R

m×n, A ∈ Rp×n. Sintaxa functiei

linprog cuprinde:

x = linprog(c,C,d,A,b,l,u,x0,optiuni)

[x,fval,exitflag,output,lambda] = linprog(. . . ).

Pentru mai multe detalii, se poate apela comanda: help linprog

Exemplul 8 (Repartizarea optimala a resurselor umane). Fie un numarde n persoane disponibile pentru m sarcini. Valoarea atribuita unei zilede lucru a persoanei i la o sarcina j este definita de cij , pentru i = 1, . . . , nsi j = 1, . . . , m. Problema se reduce la determinarea repartizarii optimede sarcini ce maximizeaza valoarea lucrului total. Repartizarea sarcinilorconsta ın alegerea valorilor xij , ce reprezinta proportia din timpulpersoanei i consumata pe sarcina j pentru i = 1, . . . , n si j = 1, . . . , m.Vom avea astfel urmatoarele constrangeri:

m∑

j=1

xij ≤ 1,

n∑

i=1

xij ≤ 1, xij ≥ 0.

Prima relatie denota ca o persoana nu poate depasi 100% din timpul saulucrand. A doua relatie precizeaza ca unei singure persoane ıi este permissa lucreze la o sarcina la un moment dat. In final, a treia relatie interzice

Page 25: Metode de Optimizare Numeric˘a

1.2. Probleme rezolvate de laborator 25

ca timpul petrecut pe o sarcina sa fie negativ. In concluzie, problemaenuntata anterior are urmatoarea formulare:

minx∈Rnm

f(x)

(

=

n∑

i=1

m∑

j=1

cijxij

)

s.l.: Cx ≤ d

m∑

j=1

xij ≤ 1 ∀i = 1, . . . , n

n∑

i=1

xij ≤ 1 ∀j = 1, . . . , m

xij ≥ 0 ∀i, j

.

Fie matricea coeficientilor cij data de

1 −1 00.1 −5 20 −1 −0.5

, adica n=m=3.

Sa se rezolve problema de mai ınainte cu ajutorul functiei linprog.

Rezolvare. Initial compunem matricea C si vectorul d ce formeazaconstrangerile pentru a putea apela functia linprog ın forma standard:

function [x,f]=alocare()

c=[1 -1 0 0.1 -5 2 0 -1 -0.5];

A1=[ones(1,3) zeros(1,6);...

zeros(1,3) ones(1,3) zeros(1,3);...

zeros(1,6) ones(1,3)];

A2=[eye(3) eye(3) eye(3)];

C = [A1; A2; -eye(9)]; d= [ones(6,1);zeros(9,1)];

[x f] = linprog(c,C,d);

end

Exemplul 9 (Proiectare filtre). Una dintre cele mai importanteprobleme ale ingineriei o reprezinta proiectarea filtrelor cu raspuns laimpuls prestabilit. Prin notiunea de filtru ıntelegem un sistem dinamicliniar invariant ın timp, care de cele mai multe ori este definit de relatiade convolutie dintre doua semnale discrete/continue:

y(t) =

∫ ∞

−∞u(s)h(t− s)ds y(k) =

∞∑

i=−∞u(i)h(k − i),

Page 26: Metode de Optimizare Numeric˘a

26 Capitolul 1. Functii ale pachetului de optimizare MATLAB

ın care h este raspunsul la impuls corespunzator sistemului. Echivalent,ın domeniul frecvential, transferul intrare-iesire pentru cazul continuuanterior se reprezinta sub forma:

Y (ω) = H(ω)U(ω), −∞ < ω < ∞,

unde Y (ω), H(ω), U(ω) sunt transformatele Fourier ce corespund functii-lor y(t), h(t), u(t). Problema de sinteza a unui filtru presupunedeterminarea configuratiei optime globale a unui bloc (colectie) de filtrecu functii de tranfer cunoscute (Fig. 1.6), astfel ıncat functia de transferglobala rezultata sa coincida cu una prestabilita. Notand functia detransfer globala prestabilita cu T (ω), consideram masurarea calitatiifunctiei de transfer pe segmentul [ωmin, ωmax]. Rezulta astfel urmatoareaproblema de optimizare:

minx∈Rn

supωmin≤ω≤ωmax

|T (ω)−n−1∑

j=0

xjHj(ω)|,

unde Hj(ω) reprezinta functiile de transfer aferente filtrelor ce compunblocul. O versiune mai abordabila este urmatoarea aproximare aproblemei precedente:

minx∈Rn

max1≤i≤m

|T (ωi)−n−1∑

j=0

xjHj(ωi)|, (1.5)

ın care s-a recurs la alegerea unui numar finit m de puncte ın intervalul[ωmin, ωmax].

Figura 1.6: Exemplu bloc de filtre

Problema (1.5) se poate reformula ın termenii unei probleme deminimizare cu functia obiectiv liniara si avand de asemenea constrangeri

Page 27: Metode de Optimizare Numeric˘a

1.2. Probleme rezolvate de laborator 27

liniare de inegalitate, i.e. un program liniar:

minx∈Rn,t

f(x, t) (= t)

s.l.: C

[xt

]

≤ d

(

|T (ωi)−n−1∑

j=0

xjHj(ωi)| ≤ t ∀i = 1, . . . , m

)

.

Exercitiul 1. Se considera cazul particular ce cuprinde functiile: T (ω) =cosω2 + ω3, H0(ω) =

ω2

1+ω, H1(ω) =

2ω1+ω

, H2(ω) = ω2 + ω + 1 si vectorulω = [0.1 0.5 1 5 10]. Tinand cont ca valorile ωi reprezinta componentelevectorului ω, sa se scrie modelul problemei anterioare sub forma standarda unei probleme de programare liniara si sa se rezolve problema cuajutorul functiei Matlab linprog.

1.2.4 Programare patratica

Functia quadprog rezolva probleme de programare patratica, ce vizeazaminimizarea unei functii obiectiv patratice, ın prezenta unui set deconstrangeri liniare. O problema de programare patratica se formuleazaın general dupa cum urmeaza:

minx∈Rn

1

2xTQx+ qTx

s.l.: Cx ≤ d, l ≤ x ≤ u,

Ax = b,

unde Q = QT ∈ Rn×n, q, l, u ∈ R

n, d ∈ Rm, b ∈ R

p, C ∈ Rm×n, A ∈ R

p×n.Sintaxa functiei quadprog cuprinde:

x = quadprog(Q,q,C,d,A,b,l,u,x0,optiuni)

[x,fval,exitflag,output,lambda] = quadprog(. . . ).

Pentru mai multe detalii, se poate apela comanda: help quadprog

Exemplul 10 (Problema Google). Ca urmare a progreselor tehnologicerecente, motoarele de cautare (e.g. Google, Yahoo) au devenit unpunct central de interes ın optimizare, urmarind dezvoltarea de algoritmieficienti ce executa o cautare cat mai rapida. Constatand ca o cautareeficienta presupune o clasificare cat mai strategica a paginilor web,rezulta o reducere a problemei de cautare la una de clasificare a acestor

Page 28: Metode de Optimizare Numeric˘a

28 Capitolul 1. Functii ale pachetului de optimizare MATLAB

pagini. Problema de clasificare (ranking) se formuleaza usor ın termenide grafuri ponderate (Fig. 1.7). De aceea, paginile web sunt interpretateca noduri ale unui graf, muchiile ca legaturi aferente dintre ele, iar fiecareimuchii ıi este asociata o pondere.

Figura 1.7: Exemplu graf orientat

Daca notam cu E matricea de adiacenta a grafului, elementele acesteiarespecta urmatoarea regula: Eij este nenul daca exista o muchiedirectionata de la i la j, altfel este nul. Daca tinem cont de faptul cagraful este ponderat si ca suma ponderilor este egala cu 1, atunci matriceaE va avea suma pe linii egala cu 1. Matematic, problema precedentapresupune gasirea unui vector propriu x corespunzator valorii proprii 1,i.e. sa se determine x ∈ R

n astfel ıncat Ex = x. Reformuland maideparte problema ın termeni de optimizare avem:

minx∈Rn

f(x)

(

=1

2‖Ex− x‖2

)

s.l.: Cx ≤ d (x ≥ 0)

Ax = b

(n∑

i=1

xi = 1

)

.

De cele mai multe ori, matricea are dimensiuni foarte mari (e.g. 109×109)ceea ce face problema foarte greu de rezolvat (vezi Sectiunea 7.2.3).

Exercitiul 2. Fie matricea E =

0.1 0 0 0.90 0 0.5 0.50.2 0 0.2 0.60 0 0 1

. Sa se rezolve

problema cu ajutorul functiei quadprog, folosind mai ıntai doarconstrangeri de egalitate si apoi incluzand si constrangerile de inegalitate.Ce se observa?

Page 29: Metode de Optimizare Numeric˘a

1.3. Probleme rezolvate de seminar 29

1.3 Probleme rezolvate de seminar

1.3.1 Diferentiere multivariabila

Problema 1. Fie functiile f : R3 → R si g : R2 → R definite de:

f(x) = x31x2 + 2x2

3x1 − x2x3,

g(x) = ex1−x2 + e2x1−1 − e2x2−2.

(i) Sa se determine expresiile gradientilor ∇f(x),∇g(x).

(ii) Sa se determine expresiile Hessianelor ∇2f(x),∇2g(x).

Rezolvare. Pentru o functie diferentiabila de 2 ori f : Rn → R, reamintimdefinitiile gradientului si Hessianei:

∇f(x) =

∂f(x)∂x1

...∂f(x)∂xn

, ∇2f(x) =

∂2f(x)

∂x21

. . . ∂2f(x)∂x1∂xn

......

∂2f(x)∂xn∂x1

. . . ∂2f(x)∂x2

n

.

(i) Expresiile gradientilor functiilor din enunt au forma:

∇f(x) =

3x21x2 + 2x2

3

x31 − x3

4x3x1 − x2

, ∇g(x) =

[ex1−x2 + 2e2x1−1

−ex1−x2 − 2e2x2−2

]

.

(ii) Expresiile Hessianelor functiilor din enunt au forma:

∇2f(x)=

6x1x2 3x21 4x3

3x21 0 −1

4x3 −1 4x1

,

∇2g(x)=

[ex1−x2+4e2x1−1 −ex1−x2

−ex1−x2 ex1−x2−4e2x2−2

]

.

Problema 2. Fie functia multidimensionala h : R3 → R2,

h(x) =

[x22 + x3

x21 + x2

]

.

(i) Determinati expresia Jacobianului ∇h(x).

Page 30: Metode de Optimizare Numeric˘a

30 Capitolul 1. Functii ale pachetului de optimizare MATLAB

(ii) Aratati ca, ın orice vector x ∈ R3, Jacobianul calculat are liniile

liniar independente.

Rezolvare. (i) Din definitia Jacobianului pentru o functie h : R3 → R2,

i.e. ∇h(x) =

[∂h1(x)∂x1

∂h1(x)∂x2

∂h1(x)∂x3

∂h2(x)∂x1

∂h2(x)∂x2

∂h2(x)∂x3

.

]

, avem ∇h(x) =

[0 2x2 12x1 1 0

]

.

(ii) Din definitia proprietatii de liniar independenta avem: doi vectoriu, v ∈ R

n sunt liniar independenti daca nu exista un scalar α 6= 0 astfelıncat u = αv. Aceasta proprietate este evidenta observand ca egalitatea:

2x1

10

= α

02x2

1

nu poate avea loc daca α 6= 0.

1.3.2 Probleme de optimizare generale

Problema 3. Fie urmatoarea problema de optimizare:

minx∈R2

x31 + x3

2

s.l.: (x1 + x2)2 ≤ 0,

x1x32 = −1.

(i) Sa se precizeze care sunt constrangerile de egalitate si care suntcele de inegalitate.

(ii) Sa se determine analitic punctul de optim si valoarea optima.

Rezolvare. (i) Se observa ca inegalitatea (x1 + x2)2 ≤ 0 este echivalenta

cu (x1+x2)2 = 0. Concluzionam ca nu exista constrangeri de inegalitate

si avem doua constrangeri de egalitate: h1(x) = x1 + x2 = 0 si h2(x) =x1x

32 + 1 = 0.

(ii) Din punctul (i) rezulta ca x1 + x2 = 0 si facand sistem cu cea de-adoua constrangere, concluzionam ca multimea fezabila este formata dindoua puncte, anume (x1, x2) = (1,−1) si (x1, x2) = (−1, 1) . Punctele deoptim global vor fi (x∗

1, x∗2) = (1,−1) si (x∗

1, x∗2) = (−1, 1), din moment

ce valoarea optima f ∗ = 0 este aceeasi pentru ambele.

Problema 4. Fie functia f : ∆n → x, f(x) = ln xTAx, unde ∆n esteo multime, numita multimea simplex, si este data de ∆n = {x ∈ R

n :

Page 31: Metode de Optimizare Numeric˘a

1.3. Probleme rezolvate de seminar 31

n∑

i=1

xi = 1, xi ≥ 0 ∀i = 1, . . . , n}, A ∈ Rn×n este o matrice simetrica si

pozitiva (i.e. toate elementele matricei sunt ne-negative).

(i) Sa se determine expresia gradientului ∇f(x) si a Hessianei ∇2f(x).

(ii) Sa se determine constanta Lipschitz a gradientului functiei f .

Rezolvare: (i) Prin calcule simple, obtinem ca expresia gradientului este

data de ∇f(x) = 2AxxTAx

, iar a hessianei ∇2f(x) = 2AxTAx−(2Ax)(2Ax)T

(xTAx)2=

2AxTAx

− 4AxxTAx

(Ax

xTAx

)T.

(ii) Gradientul este continuu ın sens Lipschitz daca urmatoareainegalitate are loc:

‖∇f(x)−∇f(y)‖2 ≤ L‖x− y‖2 ∀x, y ∈ ∆n.

Echivalent, aceasta proprietate se exprima si ın termenii matriceiHessiane:

‖∇2f(x)‖2 ≤ L ∀x ∈ ∆n.

Obervam ca matricea (2Ax)(2Ax)T

(xTAx)2este pozitiv semidefinita, de aceea avem

urmatoarea marginire a normei Hessianei:

‖∇2f(x)‖ ≤ ‖ 2A

xTAx‖ ∀x ∈ ∆n.

Mai mult, observam ca

minx∈∆n

xTAx = minx∈∆n

i,j

Aijxixj ≥ minx∈∆n

(

mini

Aii

)

‖x‖2 = 1

N

(

mini

Aii

)

.

De aici obtinem o aproximare a constantei Lipschitz corespunzatoaregradientului functiei din enunt:

‖∇2f(x)‖ ≤ N‖ 2A

mini

Aii

‖ = L.

Problema 5. Fie P ∈ Rn×n o matrice simetrica si inversabila. Sa se

arate ca functia patratica:

f(x) =1

2xTPx+ xT b

are valoare minima (i.e. este marginita inferior) daca si numai dacaP � 0 (i.e. este pozitiv semidefinita). Mai mult, ın cazul ın care estemarginita, aratati ca punctul de minim x∗ este unic si determinat deexpresia x∗ = −P−1b.

Page 32: Metode de Optimizare Numeric˘a

32 Capitolul 1. Functii ale pachetului de optimizare MATLAB

Rezolvare. Observam ca

1

2

(x+ P−1b

)TP(x+ P−1b

)=

1

2xTPx+ bTx+

1

2bTP−1b.

De aici rezulta,

f(x) =1

2xTPx+ bTx =

1

2

(x+ P−1b

)TP(x+ P−1b

)− 1

2bTP−1b.

Presupunem ca P are o valoare proprie negativa, e.g. −λ (unde λ > 0)si notam vectorul propriu asociat valorii proprii negative cu u. Atunci,pentru orice α ∈ R, α 6= 0, considerand x = αu− P−1b si tinand cont derelatia Pu = −λu, avem:

f(x) =1

2

(x+ P−1b

)TP(x+ P−1b

)− 1

2bTP−1b

=1

2αuTPαu− 1

2bTP−1b

= −1

2λα2‖u‖22 −

1

2bTP−1b.

In final, observam ca λ > 0 si avem libertatea de a alege α oricat de mare,de unde rezulta ca functia nu are minimum (i.e. minimum se atinge la−∞). Pentru ca functia sa aiba minimum este necesar ca P � 0. Pentrua arata ultima parte a rezultatului, din reformularea lui f(x) anterioaraavem:

f(x) =1

2

(x+ P−1b

)TP(x+ P−1b

)− 1

2bTP−1b.

Observam ca 12(x+ P−1b)

TP (x+ P−1b) ≥ 0, deci minimul functiei se

atinge atunci cand x+ P−1b = 0.

Problema 6. Fie problema de optimizare :

minx∈Rn

f(x)

(

=cTx+ d

eTx+ f

)

s.l. Gx ≤ h, Ax = b,

cu domf(x) ={x ∈ R

n : eTx+ f > 0}. Aratati ca aceasta problema

poate fi adusa la forma de programare liniara.

Page 33: Metode de Optimizare Numeric˘a

1.3. Probleme rezolvate de seminar 33

Rezolvare. Notam u(x) = eTx + f > 0. Impartind relatia prin u(x),

aceasta devine: eT xu(x)

+ f 1u(x)

= 1 > 0. De asemenea, folosim notatia

y(x) = xu(x)

∈ Rn si z(x) = 1

u(x)∈ R. Reformuland functia obiectiv avem:

f(x) =cTx+ d

u(x)= cT

x

u(x)+ d

1

u(x)= cTy(x) + dz(x).

Folosind schimbarea de variabila precedenta, putem aduce problema deminimizare dupa x la una ce presupune minimizarea dupa y(x) si z(x).Pentru a schimba variabila constrangerilor, ımpartim prin u ultimeledoua seturi de egalitati/inegalitati. Astfel, obtinem un LP:

miny∈Rn,z∈R

cTy + dz

s.l.: eTy + fz = 1, Ay = bz

Gy ≤ hz.

Problema 7. Fie urmatoarea problema de optimizare:

minx∈R2

2x21 + x2

2 − x1x2

s.l.: 2xTx−1 ≤ 2, (aTx− b)2 ≤ 0

5|x1| ≤ 1, 3x1+x2 = 1,

unde a ∈ R2 si b ∈ R sunt dati. Sa se arate ca toate functiile care descriu

problema de optimizare sunt fie liniare, fie patratice. Sa se precizeze caresunt constrangerile de egalitate si care sunt cele de inegalitate.Rezolvare. Se observa ca functia obiectiv f(x) = 2x2

1 + x22 − x1x2 este

patratica, i.e.

f(x) =1

2

[x1

x2

]T [4 −1−1 2

]T [x1

x2

]

.

Constrangerea 2xTx−1 ≤ 2 este echivalenta cu xTx− 1 ≤ 1, i.e. xTx ≤ 2.

Deci prima constrangere este una de inegalitate descrisa de o functiepatratica g1(x) = xTx− 2 ≤ 0.Constrangerea (aTx − b)2 ≤ 0 este echivalenta cu aTx − b = 0. Deci adoua constrangere este de egalitate descrisa de o functie liniara h1(x) =aTx− b = 0.

Page 34: Metode de Optimizare Numeric˘a

34 Capitolul 1. Functii ale pachetului de optimizare MATLAB

Constrangerea 5|x1|−1 ≤ 1 este echivalenta cu |x1| − 1 ≤ 0. Deci a treiaconstrangere este de inegalitate, descrisa de doua functii liniare g2(x) =x1 − 0 ≤ 0 si g3(x) = −x1 − 1 ≤ 0.Constrangerea 3x1+x2 = 1 este echivalenta cu x1 + x2 = 0. Deci a patraconstrangere este de egalitate, descrisa de o functie liniara h2(x) = x1 +x2 = 0.Problema 8. O functie se numeste monomiala daca se prezinta subforma:

f(x) = cxa11 xa2

2 ...xann ,

ın care c > 0, ai ∈ R si x ∈ Rn++, i.e. xi > 0 pentru orice i = 1, . . . , n.

Considerand problema de programare geometrica :

minx∈Rn

f(x)

s.l.: gi(x) ≤ 1 ∀i = 1, . . . , m

hi(x) = 1 ∀i = 1, . . . , p,

cu fi si hi functii monomiale. Aratati ca o astfel de problema deprogramare geometrica poate fi scrisa sub forma unui LP.

Rezolvare. Din teoria optimizarii stim ca punctul de optim al uneiprobleme de optimizare cu functia obiectiv f(x), este acelasi cu cel alproblemei cu functia obiectiv log f(x). Intr-adevar, ın cazul neconstransconditiile suficiente de optimalitate pentru problema originala (cu functiaobiectiv f(x)) sunt∇f(x⋆) = 0. Observam ca pentru cazul compunerii cufunctia logaritm (cu functia obiectiv log f(x)) conditiile de optimalitate

se transforma ın ∇f(x⋆)f(x⋆)

= 0, sau echivalent ın ∇f(x⋆) = 0. Precizamca pentru cazul constrans are loc o echivalenta logaritmica similara, i.eavand problema originala:

minx∈Rn

cxa11 xa2

2 ...xann

s.l.: cixbi11 x

bi22 . . . x

binn ≤ 1 ∀i = 1, . . . , m

ejxdj1

1 xdj2

2 . . . xdjnn = 1 ∀j = 1, . . . , p,

compunand functia obiectiv si constrangerile cu functia logaritm,obtinem o problema de optimizare cu acelasi punct de optim:

minx∈Rn

log(cxa11 xa2

2 ...xann )

s.l.: log(cixbi11 x

bi22 . . . x

binn ) ≤ 0 ∀i = 1, . . . , m

log(ejxdj1

1 xdj2

2 . . . xdjnn ) = 0 ∀j = 1, . . . , p.

Page 35: Metode de Optimizare Numeric˘a

1.4. Probleme propuse 35

Folosind schimbarea de variabila log xi = yi, observam urmatoareareformularea liniara a unei functii monomiale:

f(x) = log(cxa11 . . . xan

n ) = log c +

n∑

i=1

ai log xi = log c+

n∑

i=1

aiyi.

Astfel, rezulta o forma LP a problemei ın variabila y.

Problema 9. Fie functia patratica f : R2 → R, f(x) = x21−x2

2+x1x2. Sase arate ca functia f are gradient Lipschitz ın raport cu norma Euclidiana,i.e. exista L > 0 astfel ıncat:

‖∇f(x)−∇f(y)‖2 ≤ L‖x− y‖2, ∀x, y ∈ R2.

si sa se determine constanta Lipschitz corespunzatoare.

Rezolvare. Remarcam ca functia f se poate formula ca f(x) = 12xTQx,

unde Q =

[2 11 −2

]

. Verificand relatia de continuitate Lipschitz avem:

‖Qx−Qy‖2 = ‖Q(x− y)‖2 ≤ ‖Q‖2‖x− y‖2, ∀x, y ∈ R2.

Inegalitatea reiese din definitia normei matriceale induse. Evident,constanta Lipschitz este data de L = ‖Q‖2 = λmax(Q).

1.4 Probleme propuse

Problema 1. Sa se arate ca problema de optimizare (1.1) este problemapatratica (QP). Evidentiati matricea Hessiana si precizati daca este saunu pozitiv definita.

Problema 2. Fie functia neliniara g(x) = −5e2x + cosx − 1. Sa seaproximeze cu un polinom de gradul 3 functia g dupa modelul descrisın Exemplul 3 pentru punctele y1 = −1, y2 = −1/2, y3 = 0, y4 = 1/2si y5 = 1. Sa se rezolve problema de optimizare cu ajutorul functiilorfminunc si quadprog.

Problema 3. Fie urmatoarea problema de optimizare constransa:

maxx∈Rn

1

2‖Ax‖2

s.l.: ‖x‖1 ≤ 1,

Page 36: Metode de Optimizare Numeric˘a

36 Capitolul 1. Functii ale pachetului de optimizare MATLAB

unde A ∈ Rm×n. Sa se reformuleze problema precedenta ca una patratica

(QP) si sa se rezolve apoi aceasta formulare cu ajutorul functiei Matlabquadprog.

Problema 4. Sa se calculeze expresiile gradientului si Hessianeicorespunzatoare urmatoarelor functii:

(i) f(x) = x21 − x2

2 − 2x23 + 2x2x3 + 3x1x2 (ii) f(x) = x3

1 + x2x23

(iii) f(x) = ex1x2+ex2x3+ex3x1 (iv) f(x) = x1 ln x1+x2 ln x2+x3 ln x3.

Problema 5. Sa se arate ca functia patratica f(x) = x21 + 2x2

2 − 2x23 −

x2x3+3x1x2 are gradientul continuu ın sens Lipschitz ın raport cu normaEuclidiana. Sa se determine constanta Lipschitz L.

Problema 6. Se considera urmatoarea problema de optimizare:

minx∈Rn

f(x1, x2)

s.l.: 2x1 + x2 ≥ 1, x1 + 3x2 ≥ 1

x1 ≥ 0, x2 ≥ 0.

Sa se traseze grafic multimea fezabila. Pentru urmatoarele functiiobiectiv, sa se determine multimea optima si valoarea optima:(i) f(x1, x2) = x1 + x2. (ii) f(x1, x2) = −x1 − x2.(iii) f(x1, x2) = x1. (iv) f(x1, x2) = max{x1, x2}.(v) f(x1, x2) = x2

1 + 9x22.

Problema 7. Se considera problema de optimizare:

minx∈Rn

(x1 − 4)2 + (x2 − 2)2

s.l.: 4x21 + 9x2

2 ≤ 36, 2x1 ≥ −3

x21 + 4x2

2 = 4.

(i) Sa se reprezinte grafic schema multimii fezabile, multimile izonivel alefunctiei obiectiv si identificati punctul de optim pe grafic.(ii) Sa se rezolve din nou punctul (i) unde ın enuntul problemeiminimizarea se ınlocuieste cu maximizarea.

Problema 8. O fabrica furnizeaza patru tipuri de produse. Unul dintrematerialele brute necesare pentru fabricatie se afla ın cantitate redusa,fiind disponibila numai o cantitate R de material. Pretul de vanzare alprodusului i este Si per kilogram. Mai mult, fiecare kilogram de produs iconsuma o cantitate ai de material brut (cel ın cantitate redusa). Costul

Page 37: Metode de Optimizare Numeric˘a

1.4. Probleme propuse 37

de productie a xi kilograme din produsul i, excluzand costul materialuluiın cantitate redusa, este de kix

2i , unde ki > 0 este cunoscut. Sa se dezvolte

un model matematic de optimizare pentru problema si apoi sa se rezolvecu una din functiile Matlab precizate anterior.

Problema 9. Se presupune ca cererile d1, . . . , dn pentru un anumitprodus ın intervalul a n perioade de timp sunt cunoscute. Cererea ıntimpul perioadei j poate fi satisfacuta din cantitatea produsa xj peparcursul perioadei sau din stocul magaziei. Orice exces de productiepoate fi stocat ın magazie. Cu toate acestea, magazia are o capacitatelimitata K, iar costul stocarii unei unitati de la o perioada la alta este c.Costul productiei pe parcursul perioadei j este f(xj), pentru j = 1, . . . , n.Daca stocul initial este I0, sa se formuleze problema ca un programneliniar.

Problema 10. Intr-o localitate se urmareste amplasarea optima a unuinumar de depozite ın vecinatatea magazinelor. Fie un numar de nmagazine, cu pozitii si cereri cunoscute. Magazinul i se afla ın pozitia(ai, bi) si dispune de o cerere (grad de solicitare a produselor) ri. Cererilevor fi satisfacute cu ajutorul a m depozite cu capacitati cunoscute.Folosim urmatoarele notatii: (xi, yi) reprezinta pozitia necunoscuta adepozitului si ci este capacitatea depozitului i pentru orice i = 1, . . . , m;dij este distanta de la depozitul i la magazinul j si wij reprezinta unitatiletransportate de la depozitul i la magazinul j pentru orice i = 1, . . . , m sij = 1, . . . , n.Sa se modeleze problema de gasire a pozitiilor optime corespunzatoaredepozitelor. Pentru masurarea distantelor ın plan, se poate folosi normaEuclidiana (norma 2) sau orice alta norma, cu conditia sa fie precizata.

Problema 11. Fie matricele X, Y, Z ∈ Rn×n. Sa se arate egalitatea:

Tr(XY Z) = Tr(ZXY ) = Tr(Y ZX).

Problema 12. Fie matricea simetrica Q ∈ Rn×n. Sa se determine

expresia valorilor proprii extreme λmin si λmax sub forma valorilor optimecorespunzatoare unor probleme de optimizare.

Problema 13. Fie x ∈ Rn, pentru norma ‖·‖, definim norma duala:

‖x‖∗ = min‖y‖≤1

〈x, y〉. Sa se demonstreze urmatoarele relatii, pentru orice

x ∈ Rn:

‖x‖∗1 = ‖x‖∞, ‖x‖∗∞ = ‖x‖1, ‖x‖∗2 = ‖x‖2.

Page 38: Metode de Optimizare Numeric˘a

Capitolul 2

Probleme de optimizare

convexa

2.1 Preliminarii

Fie problema de optimizare,

minx∈Rn

f(x)

s.l.: gi(x) ≤ 0 ∀i = 1, . . . , m (2.1)

Ax = b.

Daca functia obiectiv f si functiile ce definesc constrangerile deinegalitate gi sunt convexe atunci problema se numeste problema deoptimizare convexa. Convexitatea detine un rol crucial ın optimizare,deoarece problemele cu aceasta proprietate prezinta trasaturi teoreticefoarte bune (e.g., punctele de optim locale sunt, de asemenea, puncte deoptim globale); si ceea ce este mai important, pot fi rezolvate numericın mod eficient, ceea ce nu este valabil pentru problemele neconvexe.Vom studia mai departe notiunile de functie convexa si multime convexapentru a sublinia proprietatile remarcabile ale problemelor convexe.

2.1.1 Multimi convexe

Pentru o expunere clara si concisa, introducem urmatoarele definitii:

Definitia 1. Multimea S ⊆ Rn se numeste convexa daca pentru oricare

doua puncte x1, x2 ∈ S si un scalar α ∈ [0, 1] avem αx1 + (1− α)x2 ∈ S,

Page 39: Metode de Optimizare Numeric˘a

2.1. Preliminarii 39

i.e. segmentul generat de oricare doua puncte din S este inclus ın S(Fig. 2.1).

x1

x2

x1

x2

Figura 2.1: Exemplu de multime convexa (stanga) si multime neconvexa(dreapta).

Exemplul 11. Fie multimea Ln =

{[xt

]

∈ Rn+1 : ‖x‖ ≤ t

}

, denumita

si conul Lorentz sau conul de ınghetata. Sa se traseze graficul acesteimultimi ın Matlab pentru n = 2.

Rezolvare. Figura conului (Fig. 2.2) poate fi trasata de urmatoareasecventa de cod:

function create_cone

[y1,y2]=meshgrid(-1:0.01:1,-1:0.01:1);

y3=sqrt(y1.^2+y2.^2); dom=[y3>1];

z3=y3; z3(dom)=inf;

figure(1);

hold on;

surf(y1,y2,z3); set(gca,’FontSize’,15);

hold off;

end

Figura 2.2: Con de ordinul II (con Lorentz) ın R3 pentru n = 2.

Page 40: Metode de Optimizare Numeric˘a

40 Capitolul 2. Probleme de optimizare convexa

Studiul multimilor convexe si al proprietatilor acestora faciliteaza analizamultimilor fezabile aferente problemelor de tipul (2.1) si a sirurilorgenerate de algoritmi cu restrictii la aceste multimi. In continuare vomintroduce si analiza notiunea de functie convexa.

2.1.2 Functii convexe

Definitia 2. Functia f : Rn → R se numeste convexa daca domeniul sauefectiv domf este o multime convexa si daca urmatoarea inegalitate:

f(αx1 + (1− α)x2) ≤ αf(x1) + (1− α)f(x2), (2.2)

este satisfacuta pentru orice x1, x2 ∈ domf si α ∈ [0, 1].

−1 −0.5 0 0.5 10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

f(α x1+(1−α)x

2)

f(x)=x2

α f(x1)+(1−α) f(x

2)

f(x2)

f(x1)

x1

x2

Figura 2.3: Exemplu de functie convexa f(x) = x2.

Inegalitatea (2.2) se poate generaliza la un numar p de puncte, purtandnumele de inegalitatea lui Jensen: f este o functie convexa daca si numaidaca:

f

(p∑

i=1

αixi

)

≤p∑

i=1

αif(xi)

pentru orice xi ∈ domf si αi ∈ [0, 1], cu

p∑

i

αi = 1.

Page 41: Metode de Optimizare Numeric˘a

2.2. Pachet CVX 41

Interpretarea geometrica a convexitatii este foarte simpla (Fig. 2.3).Pentru o functie convexa, fie doua puncte din domeniul sau x, y ∈ domf ,atunci valorile functiei evaluate ın punctele din intervalul [x, y] sunt maimici sau egale decat cele aflate pe segmentul cu capetele (x, f(x)) si(y, f(y)).

Remarca 1. O functie este convexa daca si numai daca restrictiadomeniului sau la o dreapta (care intersecteaza domeniul) este deasemenea, convexa. Cu alte cuvinte, f este convexa daca si numai dacaoricare ar fi x ∈ domf si o directie d, functia g(α) = f(x + αd) esteconvexa pe domeniul {α ∈ R : x+αd ∈ domf}. Aceasta proprietate estefoarte utila ın problemele ce implica teste de convexitate ale functiilor.

Pentru a sublinia legatura dintre notiunile introduse anterior, facemurmatoarea observatie: orice multime M definita ca multimea subnivela unei anumite functii f , i.e. M = {x ∈ R

n : f(x) ≤ c}, unde c esteo constanta, este convexa daca si numai daca functia f este convexa(pentru demonstratie vezi [1]).

Exemplul 12. Fie functia convexa f : R2 → R, definita de f(x) =

12xT

[2 −1−1 0.5

]

x+ [−0.5 1]x. Sa se traseze graficul functiei ın Matlab.

Rezolvare. Graficul functiei (Fig. 2.4) este generat de urmatoareasecventa de cod (unde am folosit functia gradient(z) pentru a descrieculoarea, graduala de-a lungul axei z, graficului rezultat):

function create_parab

[x,y] = meshgrid([-10:.2:10]);

z=x.^2+0.25*(y.^2)-x.*y-0.5*x+y;

surf(x,y,z,gradient(z))

end

2.2 Pachet CVX

In aceasta subsectiune expunem o scurta prezentare a pachetului deoptimizare CVX. CVX reprezinta un sistem de modelare a problemelorde optimizare convexa pe baza limbajului Matlab. CVX realizeazatransformarea comenzilor Matlab ıntr-un limbaj de modelare, cu

Page 42: Metode de Optimizare Numeric˘a

42 Capitolul 2. Probleme de optimizare convexa

−10 −5 0 5 10 −10

−5

0

5

10

−50

0

50

100

150

200

250

Figura 2.4: Graficul functiei patraticef(x) = x21 + 1/4x22 − x1x2 − 1/2x1 + x2.

posibilitatea de declarare a constrangerilor si functiei obiectiv prinintermediul sintaxei Matlab standard.De exemplu, consideram urmatorul model de optimizare convexa:

minx∈Rn

‖Ax− b‖2s.l.: Cx = d, ‖x‖∞ ≤ 1.

Urmatoarea secventa de cod genereaza si rezolva o instanta aleatorie aacestui model:

m = 10; n = 8; p = 2;

A = randn(m,n); b = randn(m,1);

C = randn(p,n); d = randn(p,1);

cvx_begin

variable x(n)

minimize(norm(A*x - b, 2))

subject to

C*x == d

norm(x, Inf) <= 1

cvx_end

2.2.1 Instalare

Un scurt ghid de instalare presupune urmatorii pasi:

se descarca arhiva de la adresa : http://cvxr.com/cvx/, fisier.zip sau .tar.gz;

se dezarhiveaza ıntr-un director dorit (diferit de directorul toolboxal Matlab-ului);

Page 43: Metode de Optimizare Numeric˘a

2.2. Pachet CVX 43

se porneste Matlab-ul; se comuta directorul curent ın directorulunde am realizat dezarhivarea si se executa ın consola comandacvx_setup.

Remarca 2. In unele cazuri (de cele mai multe ori ın Linux) este nevoiede crearea sau modificarea fisierului startup.m ce elimina necesitateaca utilizatorul sa introduca comanda cvx_setup la fiecare pornire aMatlab-ului.

2.2.2 Elemente de baza

Daca instalarea este realizata cu succes, ıncepem prin a preciza caorice program CVX se scrie ın interiorul unei functii Matlab. Pentrua diferentia continutul codului CVX de restul programului Matlab,programele CVX se delimiteaza cu comenzile cvx_begin si cvx_end.Valorile variabilelor create ın portiunea de cod Matlab se pot folosi caparametri ın problemele de optimizare rezolvate cu CVX. La ınceputuloricarui program CVX se definesc variabilele de decizie si dimensiunileacestora, e.g.:

m = 10; n = 8; A = randn(m,n); b = randn(m,1);

cvx_begin

variable x(n)

minimize( norm(A*x-b) )

cvx_end

In acest exemplu, variabila de decizie este vectorul x din Rn, iar matricea

A si vectorul b reprezinta variabile Matlab ce sunt utilizate ca parametriın cadrul CVX. Variabilele CVX se declara folosind comanda variable sispecificarea dimensiunii variabilei, ınainte de a se utiliza ın constrangerisau ın expresia functiei obiectiv. Sintaxa declararii unei variabile poatefi una din urmatoarele forme:

variable x(10) variable Y(20,10) variable Z(5,5,5).

Sunt disponibile o varietate de optiuni aditionale pentru precizareastructurii matriceale, ın cazul ın care variabila de decizie este de tipmatrice cu proprietati speciale (simetrica, Toeplitz) e.g.:

variable Y(50,50) symmetric

variable Z(100,100) hermitian toeplitz.

Page 44: Metode de Optimizare Numeric˘a

44 Capitolul 2. Probleme de optimizare convexa

Pentru lista ıntreaga a optiunilor se poate consulta adresa:

http://cvxr.com/cvx/doc/basics.html.

Declararea functiei obiectiv a problemei de optimizare necesita precizareatipului de problema (e.g. minimizare, maximizare) prin intermediulcuvintelor cheie minimize si maximize, e.g.

minimize( norm( x, 1 ) )

maximize( geo_mean( x ) ).

Precizam ca este imperativ ca functia obiectiv sa fie convexa cand folosimminimize si concava cand folosim maximize. In caz contrar, pachetulCVX va furniza un mesaj de eroare corespunzator. Constrangerilesuportate de modelele CVX sunt cele de egalitate (liniare) impuse prinoperatorul == si de inegalitate impuse de operatorii <= si >=. Pentruconstrangeri de tip box (lant de inegalitati) este disponibila sintaxal<=x<=u.

2.3 Probleme rezolvate de laborator

Exemplul 13. Sa se determine bila de raza maxima (i.e. centrul siraza ei) din spatiul Euclidian bidimensional, ce poate fi ınscrisa ıntr-unpoliedru descris de inegalitati liniare (Fig. 2.5).

Rezolvare. In cazul general, fiind dat setul de inegalitati liniare aTi x ≤ bi,formularea problemei ın termeni de optimizare este data de:

maxx∈Rn,r∈R

r

s.l.: aTi x+ r‖ai‖2 ≤ bi ∀i = 1, . . . , n,

unde r reprezinta raza bilei, iar x centrul acesteia. Alegand dateleinegalitatilor liniare, coordonatele centrului si raza bilei dorite suntgenerate de urmatoarea secventa de program:

% Generare date de intrare

a1 = [ 2; 1]; a2 = [ 2; -1]; a3 = [-1; 2];

a4 = [-1; -2]; b = ones(4,1);

% Crearea si rezolvarea problemei de optimizare

cvx_begin

variable r(1)

Page 45: Metode de Optimizare Numeric˘a

2.3. Probleme rezolvate de laborator 45

−1.5 −1 −0.5 0 0.5−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

x1

x 2

Bila de raza maxima inscrisa intr−un poliedru 2D

Figura 2.5: Bila de raza maxima ınscrisa ıntr-un poliedru.

variable x_c(2)

maximize ( r )

a1’*x_c + r*norm(a1,2) <= b(1);

a2’*x_c + r*norm(a2,2) <= b(2);

a3’*x_c + r*norm(a3,2) <= b(3);

a4’*x_c + r*norm(a4,2) <= b(4);

cvx_end

% Generare figura

x = linspace(-2,2);

theta = 0:pi/100:2*pi;

plot( x, -x*a1(1)./a1(2) + b(1)./a1(2),’b-’);

hold on

plot( x, -x*a2(1)./a2(2) + b(2)./a2(2),’b-’);

plot( x, -x*a3(1)./a3(2) + b(3)./a3(2),’b-’);

plot( x, -x*a4(1)./a4(2) + b(4)./a4(2),’b-’);

plot( x_c(1) + r*cos(theta), x_c(2) + r*sin(theta), ’r’);

plot(x_c(1),x_c(2),’k+’); xlabel(’x_1’); ylabel(’x_2’);

title(’Bila de raza maxima inscrisa intr-un poliedru 2D’);

axis([-1 1 -1 1]); axis equal;

Exemplul 14. Determinati filtrul FIR cu cel mai apropriatcomportament de cel al unei functii de transfer date Hd(ω) (e.g. Hd(ω) =e−jωD). Sa se realizeze proiectarea filtrului prin intermediul minimizariierorii absolute maxime (ın norma infinit).

Page 46: Metode de Optimizare Numeric˘a

46 Capitolul 2. Probleme de optimizare convexa

Rezolvare. Formularea problemei precedente ın termeni de optimizareconduce la rezolvarea urmatoarei probleme:

minH

maxω

|H(ω)−Hd(ω)|, (2.3)

unde H este functia raspunsului ın frecventa, iar variabila de decizieare rolul raspunsului la impuls. O aproximare convenabila a problemeianterioare presupune extragerea unui set finit m de frecvente ωi, cu i =1, . . . , m, si definirea unei matrice A:

A =

1 e−jω1 e−2jω1 . . . e−njω1

1 e−jω2 e−2jω2 . . . e−njω2

. . . . . . . . . . . .1 e−jωm e−2jωm . . . e−njωm.

rezultand o aproximare a problemei (2.3), i.e.

minx∈Rn

max1≤i≤m

|Aix−Hd(ωi)|, (2.4)

unde Ai reprezinta linia i a matricei A.Mai departe, prezentam secventa de cod ce rezolva problema deoptimizare (2.4) si determinam aproximarea optima a functiei de transferHd(ω) = e−jωD (reprezentata ın Fig. 2.6):

0 5 10 15 20−0.2

0

0.2

0.4

0.6

0.8

1

1.2

n

h(n

)

Figura 2.6: Aproximarea optima ın sens Chebyshev a functiei de transferHd(ω) = e−jωD.

n = 20; m = 15*n;

w = linspace(0,pi,m)’; % omega

% Construim un raspuns in frecventa dorit

Page 47: Metode de Optimizare Numeric˘a

2.3. Probleme rezolvate de laborator 47

D = 8.25; % valoare intarziere

Hdes = exp(-j*D*w); % raspuns in frecventa dorit

% Filtru Gaussian cu faza liniara (decomentati liniile

% de mai jos pentru proiectare)

% var = 0.05;

% Hdes = 1/(sqrt(2*pi*var))*exp(-(w-pi/2).^2/(2*var));

% Hdes = Hdes.*exp(-j*n/2*w);

% Rezolvam problema minimax de proiectare a filtrului

% A reprezinta matricea folosita la calculul

% raspunsului in frecventa

% A(w,:) = [1 exp(-j*w) exp(-j*2*w) ... exp(-j*n*w)]

A = exp( -j*kron(w,[0:n-1]) );

% formularea optimala a filtrului Chebyshev

cvx_begin

variable h(n,1)

minimize( max( abs( A*h - Hdes ) ) )

cvx_end

% verificam daca problema a fost rezolvata cu succes

disp([’Problem is ’ cvx_status])

if ~strfind(cvx_status,’Solved’)

h = [];

end

% Generam figurile aferente filtrului

figure(1); stem([0:n-1],h); xlabel(’n’); ylabel(’h(n)’);

% figura raspunsului in frecventa

H = [exp(-j*kron(w,[0:n-1]))]*h;

figure(2)

% magnitudine

subplot(2,1,1);

plot(w,20*log10(abs(H)),w,20*log10(abs(Hdes)),’--’);

xlabel(’w’); ylabel(’mag H in dB’); axis([0 pi -30 10]);

legend(’optimizat’,’dorit’,’Location’,’SouthEast’)

% faza

Page 48: Metode de Optimizare Numeric˘a

48 Capitolul 2. Probleme de optimizare convexa

subplot(2,1,2); plot(w,angle(H));

axis([0,pi,-pi,pi]); xlabel(’w’), ylabel(’faza H(w)’);

2.4 Probleme rezolvate de seminar

2.4.1 Multimi si functii convexe

Problema 1. Fie multimea S descrisa de:

S = {x ∈ Rn : aTi x = bi, cTj x ≤ dj, i = 1, . . . , m, j = 1, . . . , p}

= {x ∈ Rn : Ax = b, Cx ≤ d}.

Sa se demonstreze ca multimea este convexa (multimile definite deegalitati si inegalitati liniare, cum este cea din enunt, se numesc poliedre).

Rezolvare. Se arata ca pentru orice x1, x2 ∈ S si α ∈ [0, 1] rezulta αx1 +(1− α)x2 ∈ S. Daca x1, x2 ∈ S atunci avem:

{

Ax1 = b, Cx1 ≤ d

Ax2 = b, Cx2 ≤ d.

Notand xα = αx1 + (1 − α)x2, putem finaliza demonstratia prinurmatoarea observatie:

Axα = αAx1 + (1− α)Ax2 = αb+ (1− α)b = b

Cxα = αCx1 + (1− α)Cx2 ≤ αd+ (1− α)d = d.

In acest fel am demonstrat ca multimea definita anterior este convexa.

Problema 2. Sa se demonstreze ca urmatoarele multimi se pot definisub forma unor poliedre:

(i) S1 = {x ∈ Rn : x ≥ 0, ‖x‖1 = 1}

(ii) S2 = {x ∈ Rn : ‖x‖∞ ≤ 1}

(iii) S3 = {x ∈ Rn : ‖x‖1 ≤ 1}.

Page 49: Metode de Optimizare Numeric˘a

2.4. Probleme rezolvate de seminar 49

Rezolvare. : (i) In cazul multimii S1 observam urmatoarele echivalente:

S1 =

{

x ∈ Rn : x ≥ 0,

n∑

i=1

xi = 1

}

=

{

x ∈ Rn : −x ≤ 0,

n∑

i=1

xi = 1

}

= {x ∈ Rn : −Inx ≤ 0, [1 . . . 1]x = 1} ,

unde In reprezinta matricea identitate de ordin n. Ultima formularedenota forma poliedrala a multimii S1.(ii) De asemenea, ın cazul multimii S2, urmand acelasi rationament:

S2 =

{

x ∈ Rn : max

1≤i≤n|xi| ≤ 1

}

= {x ∈ Rn : |xi| ≤ 1, ∀i = 1, . . . , n}

= {x ∈ Rn : −1 ≤ xi ≤ 1 ∀i = 1, . . . , n}

= {x ∈ Rn : −xi ≤ 1, xi ≤ 1, ∀i = 1, . . . , n}

=

x ∈ Rn :

[In−In

]

x ≤

1...1

,

obtinem o forma poliedrala.(iii) Pentru a determina forma poliedrica a multimii S3 definim o multimepoliedrica auxiliara:

Q =

{

[xT tT ]T ∈ R2n :

n∑

i=1

ti = 1, |xi| ≤ ti

}

.

Mai departe, definim proiectia unei multimi poliedrice pe un subspatiu dedimensiuni reduse si folosim aceasta notiune pentru a studia multimea S3.

Definitia 3. Fie multimea P = {x ∈ Rn1, y ∈ R

n2 : Ax + By ≤ b},unde A ∈ R

m×n1 , B ∈ Rm×n2 , b ∈ R

m. Proiectia multimii P pe subspatiulvariabilelor x este data de:

Px = {x ∈ Rn1 : ∃y ∈ R

n2 , [xT yT ]T ∈ P}.Proiectia multimii Q pe subspatiul variabilelor x conduce la urmatoareaserie de echivalente:

Qx = {x ∈ Rn : ∃t ∈ R

n a.ı.n∑

i=1

ti = 1, |xi| ≤ ti}

= {x ∈ Rn :

n∑

i=1

|xi| ≤ 1} = {x ∈ Rn : ‖x‖1 ≤ 1} = S3.

Page 50: Metode de Optimizare Numeric˘a

50 Capitolul 2. Probleme de optimizare convexa

Tinand cont ca proiectia oricarei multimi poliedrice este o multime polie-drica, concluzionam ca multimea S3 este de tip poliedric.

Problema 3. Fie multimile:

(i) Ln =

{[xt

]

∈ Rn+1 : ‖x‖ ≤ t

}

numit si con Lorentz sau con de

ordinul II;

(ii) Sn+ = {X ∈ Sn : X � 0} conul semidefinit.

Sa se demonstreze ca multimile precedente sunt conuri auto-duale.

Rezolvare: (i) Din definitia conului dual avem:

L∗n = {y ∈ R

n : 〈x, y〉 ≥ 0 ∀x ∈ Ln}.

Problema se reduce la a demonstra ca L∗n = Ln, ceea ce este echivalent

cu satisfacerea simultana a incluziunilor: Ln∗ ⊆ Ln si Ln ⊆ Ln∗.

Aratam acum prima incluziune. Fie y =

[y1v

]

∈ L∗n, atunci pentru

orice x =

[x1

t

]

∈ Ln avem:

〈x, y〉 = yT1 x1 + vt ≥ 0. (2.5)

Stiind ca x ∈ Ln atunci ‖x‖ ≤ t. Ramane sa demonstram ca ‖y‖ ≤ v.Din ipoteza ca (2.5) are loc pentru orice vector x ∈ Ln, atunci inegalitatea

este satisfacuta, de asemenea, pentru un x ales. Alegand x =

[x1

t

]

=[− y1

‖y1‖1

]

si ınlocuind ın (2.5) obtinem:

−yT1 y1‖y1‖

+ v = −‖y1‖+ v ≥ 0,

din care rezulta prima incluziune.

Pentru a doua incluziune, fie y =

[y1v

]

∈ Ln, x =

[x1

t

]

∈ Ln. Din

inegalitatea Cauchy-Schwartz |〈x, y〉| ≤ ‖x‖‖y‖ rezulta:

yT1 x1 + vt > −‖y1‖‖x1‖+ vt ≥ −vt + vt = 0,

Page 51: Metode de Optimizare Numeric˘a

2.4. Probleme rezolvate de seminar 51

unde ın a doua inegalitate am utilizat ipoteza ca x, y ∈ Ln. In concluzie,pentru orice y ∈ Ln avem ca y ∈ L∗

n.(ii) In mod similar, aratam prin dubla incluziune ca Sn

+ = Sn∗+ . Fie Y ∈

Sn∗+ , atunci Tr(Y X) ≥ 0. Din urmatoarele relatii:

xTY x = Tr(xTY x) = Tr(Y xxT ) = Tr(Y X) ≥ 0,

se deduce Y ∈ Sn+. Pentru a doua incluziune, presupunem Y,X matrice

pozitiv semidefinite. Remarcam urmatoarea relatie:

Tr(YX) = Tr(Y V T∆V ) = Tr(V Y V T∆) ≥ 0, (2.6)

ın care am folosit descompunerea valorilor proprii corespunzatoarematricei X si proprietatea de permutare a functiei matriceale Tr(·).In concluzie, Y ∈ Sn∗

+ datorita relatiei (2.6), de unde reiese a douaincluziune.

Problema 4. Sa se demonstreze ca urmatoarele functii sunt convexe pemultimile specificate:(i) f(x) = − log x, domf = (0,∞).(ii) f(x) = 1

2xTQx+ qTx+ r, domf = R

n, Q � 0.

(iii) f(x, t) = xTxt, domf = R

n × (0,∞).(iv) f(x) = ‖Ax− b‖, A ∈ R

m×n, domf = Rn.

(v) f(X) = − log detX, domf = Sn++.

Rezolvare: (i) Observam ca functia f(x) = − log x satisface conditiile deordinul II ale convexitatii:

f ′′(x) =1

x2> 0 ∀x > 0.

(ii) Hessiana functiei f(x) = 12xTQx+ qTx+ r este data de ∇2f(x) = Q.

Observam ca functia este convexa deoarece matricea Q � 0 (este pozitivsemidefinita).

(iii) In aceeasi maniera aratam ca functia f(x, t) = xTxt

este convexa pedomeniul Rn × (0,∞]. Din definitia Hessianei rezulta:

∇2f(x) =

[2tIn −2x

t

−2xT

t22xTxt3

]

,

unde cu In am notat matricea identitate de ordin n. Pentru a determinadaca functia ındeplineste conditiile de ordinul II ale convexitatii observam

Page 52: Metode de Optimizare Numeric˘a

52 Capitolul 2. Probleme de optimizare convexa

ca:

[uTvT ]∇2f(x)

[uu

]

= [uTvT ]

[2tu− 2xv

t2

−2xT ut2

+ 2xTxvt3

]

=2

tuTu− 2uTxv

t2− 2xTuv

t2+

2xTxv2

t3

=2

t3(t2uTu− 2tuTxv + xTxv2

)

=2

t3‖tu− xv‖2.

Tinand cont de domeniul de definitie al functiei, remarcam ca pentru

orice vector

[uv

]

, termenul drept din ultima egalitate este pozitiv. De

aici este evidenta proprietatea de pozitiv definire a matricei Hessianecorespunzatoare functiei.(iv) Deoarece functia ‖·‖ este nediferentiabila ın punctul 0, observam cafunctia f(x) = ‖Ax − b‖ nu este diferentiabila ın punctele x ce satisfacAx = b. Fie doua puncte din multimea domf pentru care f(x1) =‖Ax1 − b‖, f(x2) = ‖Ax2 − b‖. Pentru a arata convexitatea functiei f ,notam xα = αx1 + (1− α)x2 si deducem sirul de relatii:

f(xα) = f(αx1 + (1− α)x2)

= ‖A (αx1 + (1− α)x2)− b‖≤ ‖α(Ax1 − b)‖+ ‖(1− α)(Ax2 − b)‖= α‖Ax1 − b‖ + (1− α)‖Ax2 − b‖= αf(x1) + (1− α)f(x2).

(v) Fie functia f(X) = − log detX, X ∈ Sn++. Aratam convexitatea lui

f prin intermediul reducerii domeniului acesteia la o dreapta. Mai exact,folosim urmatoarea proprietate a functiilor convexe: f este convexadaca functia scalara ce se obtine din restrictionarea la o dreapta este deasemenea convexa (conform Remarca 1). Revenind la functia matriceala,consideram matricele X ∈ Sn

++, D ∈ Sn si aratam ca functia scalarag(t) = f(X + tD) este convexa, observand urmatoarele egalitati:

g(t) = − log det(X + tD)

= − log det(X1/2X1/2 + tD)

= − log det(X1/2

(In + tX−1/2DX−1/2

)X1/2

)

Page 53: Metode de Optimizare Numeric˘a

2.4. Probleme rezolvate de seminar 53

= − log(detX1/2 det

(In + tX−1/2DX−1/2

)detX1/2

)

= − log(detX det

(In + tX−1/2DX−1/2

))

= − log detX − log det(In + tX−1/2DX−1/2

).

Pe de alta parte, stiind ca pentru orice matrice A ∈ Sn, cu spectrulΛ(A) = {λ1, . . . , λn}, transformarea B = In + tA, t ∈ R, modifica

spectrul astfel ıncat Λ(B) = {1+ tλ1, . . . , 1+ tλn} si detB =n∏

i=1

(1+ tλi).

Pentru a aplica aceasta proprietate ın sirul de relatii precedent, notamZ = X−1/2DX−1/2 avand spectrul Λ(Z) = {µ1, . . . , µn}. Rescriind g(t),rezulta:

g(t) = − log detX − logn∏

i=1

(1 + tµi)

= − log detX −n∑

i=1

log(1 + tµi).

Mai departe, observam ca functia h(t) = − log(1 + tu) din componentacelei anterioare, este convexa, deoarece cea de-a doua derivata satisface:

h′′(t) =u

(1 + tu)2≥ 0 ∀u ∈ R.

Stiind ca functia definita de o suma de functii convexe este convexa,ajungem la concluzia ca g(t) este convexa ın t. Deci, f(X) este convexa.

Problema 5. Fie functia f : Rn → R. Sa se determine functia conjugataf ∗(y) pentru urmatoarele exemple:

(i) f(x) = ex (ii) f(x) = x log x

(iii)f(x) = 12xTQx,Q ≻ 0 (iv) f(x) = log

n∑

i=1

exi .

Rezolvare. Definim functia conjugata corespunzatoare functiei f :

f ∗(y) = maxx∈domf

〈y, x〉 − f(x).

In primele doua cazuri monovariabile (i) si (ii), observam ca functiaobiectiv a problemei de maximizare este concava pe domeniul functiei

Page 54: Metode de Optimizare Numeric˘a

54 Capitolul 2. Probleme de optimizare convexa

f , de aceea conditiile de optimalitate de ordinul I conduc la urmatoareleexpresii:

(i) f ∗(y) = y log y − y, (ii) f ∗(y) = ey−1.

(iii) In acest caz, conjugata functiei f are forma f ∗(y) = maxx∈Rn

yTx −12xTQx. Datorita proprietatii de convexitate, observam ca solutia

problemei de optimizare este data de x∗ = Q−1y. Inlocuind ın expresiafunctiei conjugate rezulta f ∗(y) = yTQ−1y − 1

2yTQ−1y = 1

2yTQ−1y.

(iv) Conditiile necesare de optimalitate de ordinul I corespunzatoare

problemei de maximizare maxx∈Rn

〈y, x〉 − logn∑

i=1

exi se reduc la urmatoarele

relatii:

ex∗

i

n∑

i=1

ex∗

i

= yi, ∀i = 1, . . . , n. (2.7)

Observam ca relatia (2.7) este satisfacuta si functia f ∗(y) ia valori finite

numai ın cazul ın care argumentul functiei conjugate satisfacen∑

i=1

yi =

1, y ≥ 0. Presupunand ca argumentul y satisface cele doua conditii, avem

x∗i = log

n∑

i=1

ex∗

i + log yi pentru orice i = 1, . . . , n. Substituind ın expresia

functiei conjugate rezulta:

〈y, x∗〉 − log

n∑

i=1

ex∗

i=

n∑

i=1

yi

(

log

n∑

i=1

ex∗

i + log yi

)

− log

n∑

i=1

ex∗

i

=n∑

i=1

yi log yi + logn∑

i=1

ex∗

i

(n∑

i=1

yi − 1

)

=n∑

i=1

yi log yi.

In concluzie, functia conjugata f ∗(y) este definita de:

f ∗(y) =

n∑

i=1

yi log yi, dacan∑

i=1

yi = 1, y ≥ 0,

∞, altfel.

Page 55: Metode de Optimizare Numeric˘a

2.4. Probleme rezolvate de seminar 55

Problema 6. Sa se demonstreze ca urmatoarea problema de optimizareeste convexa:

minx∈R2

f(x) = x12 + x2

2

s.l.: g1(x) =x1

1 + x22≤ 0, g2(x) = ex1+x2 − 1 ≤ 0

h(x) = (x1 − x2 − 1)2 = 0.

Rezolvare. Pentru a arata convexitatea problemei din enunt:

minx∈R2

f(x)

s.l.: g1(x) ≤ 0, g2(x) ≤ 0, h(x) = 0.

este suficient sa demonstram convexitatea functiilor f , g1 si g2, siliniaritatea functiei h. Observam ca Hessiana functiei f are formaexplicita ∇2f(x) = I2 ≻ 0, unde I2 este matricea identitate de ordinul II.Deci, functia f este convexa deoarece satisface conditia de convexitate deordinul II. In cazul functiei g1, distingem faptul ca inegalitatea x1

1+x22 ≤ 0

este satisfacuta doar ın cazul ın care x1 ≤ 0. In concluzie, constrangereag1(x) ≤ 0 este echivalenta cu o constrangere liniara (si deci convexa)x1 ≤ 0. Pentru inegalitate g2(x) ≤ 0, observam ca este echivalentacu x1 + x2 ≤ 0, i.e. este si aceasta echivalenta cu o constrangereliniara. Similar, pentru egalitatea definita de functia h, gasim urmatoareaechivalenta ıntre multimi:

{x ∈ R2 : h(x) = 0} = {x ∈ R

2 : x1 − x2 = 1},rezultand o functie liniara ın x. In final, putem rescrie problema subforma unui QP convex:

minx∈R2

x12 + x2

2

s.l.: x1 ≤ 0, x1 + x2 ≤ 0, x1 − x2 = 1.

Problema 7. Sa se demonstreze ca urmatoarea problema de optimizareeste convexa:

minx∈R2

f(x) (= − log(aTx− b))

s.l.: g1(x) = exT x − e ≤ 0, g2(x) = (cTx− d)2 − 1 ≤ 0

h(x) = (x1 + 2x2)4 = 0.

Page 56: Metode de Optimizare Numeric˘a

56 Capitolul 2. Probleme de optimizare convexa

Rezolvare. Pentru a demonstra ca o problema de optimizare este convexa,trebuie sa demonstram ca functia obiectiv este convexa si multimeafezabila definita de constrangeri este convexa. Pentru functia f(x) =− log(aTx− b) deducem expresia gradientului si a Hessianei:

∇f(x) = − 1

aTx− ba, ∇2f(x) =

1

(aTx− b)2aaT

unde avem desigur ca (aTx − b)2 > 0. Daca notam y = aTx, observamca:

xTaaTx = yTy = ‖y‖22 ≥ 0,

deci matricea aaT este pozitiv semidefinita. Drept rezultat, ∇2f(x) � 0peste ıntregul dom f = {x ∈ R

n : aTx − b > 0}, i.e. satisfaceconditiile de convexitate de ordin II si deci functia obiectiv este convexa.Pentru a arata ca multimea constrangerilor este convexa, este suficient saaratam ca functiile din constrangerile de egalitate sunt liniare, iar cele dinconstrangerile de inegalitate sunt convexe. Observam ca constrangereah(x) = 0 este echivalenta cu egalitatea x1 + 2x2 = 0, a carei functie esteliniara. Pentru g1(x) ≤ 0, observam ca este echivalenta cu xTx− 1 ≤ 0.Functia xTx − 1 este o functie patratica, diferentiabila de doua ori, cuHessiana 2I2 ≻ 0, deci satisface conditiile de convexitate de ordin II sieste implicit convexa. Constrangerea g2(x) ≤ 0 este echivalenta cu:

−1 ≤ (cTx− d) ≤ 1 ⇒{

cTx− d ≤ 1

−cTx+ d ≤ 1⇒[cT

−cT

]

x+

[−dd

]

≤[11

]

,

deci aceasta se reduce la o constrangere de inegalitate unde functia esteliniara si implicit convexa.

Problema 8. Sa se determine problema convexa de programare semidefi-nita ce aproximeaza urmatoarea problema neconvexa:

maxx∈Rn

xTATAx

s.l.: ‖x‖2 ≤ 1,

unde A ∈ Rm×n si ‖x‖2 =

√n∑

i=1

x2i .

Page 57: Metode de Optimizare Numeric˘a

2.5. Probleme propuse 57

Rezolvare. Reamintim ca pentru orice Q ∈ Rn×n si x ∈ R

n, functiaTr(Q) satisface relatia: Tr(xTQx) = Tr(QxxT ). Pe baza acestei relatii,problema precedenta se scrie sub urmatoarea forma echivalenta:

maxX∈Rn×n

Tr(ATAX

)

s.l.: rang(X) = 1, T r(X) = 1.

Se obtine relaxarea convexa prin renuntarea la constrangerea de egalitateneliniara rang(X) = 1. In concluzie, avem urmatoarea aproximareconvexa a problemei de optimizare originala:

maxX∈Rn×n

Tr(ATAX

)

s.l.: Tr(X) = 1.

2.5 Probleme propuse

Problema 1. Sa se determine care dintre urmatoarele functii suntconvexe, concave sau niciuna dintre cele doua variante. Sa seargumenteze rezultatele obtinute.

(i) f(x1, x2) = 2x21 − 4x1x2 − 8x1 + 3x2,

(ii) f(x1, x2) = x1e−(x1+3x2),

(iii) f(x1, x2) = −x21 − 3x2

2 + 4x1x2 + 10x1 − 10x2,

(iv) f(x1, x2, x3) = 2x1x2 + 2x21 + x2

2 + 2x23 − 5x1x3,

(v) f(x1, x2, x3) = −2x21 − 3x2

2 − 2x23 + 8x1x2 + 3x1x3 + 4x2x3.

Problema 2. Sa se determine submultimea din {x ∈ R : x > 0} pe carefunctia f(x) = eax

b

este convexa. Parametrii a, b satisfac a > 0, b ≥ 1.

Problema 3. Sa se determine ın domeniul axei reale ın care functiaf(x) = x2(x2 − 1) este convexa.

Problema 4. Fie functiile convexe f1, . . . , fm : Rn → R. Sa se

demonstreze ca urmatoarele compuneri ale acestora sunt convexe:

Page 58: Metode de Optimizare Numeric˘a

58 Capitolul 2. Probleme de optimizare convexa

(i) g(x) =m∑

i=1

αifi(x), αi > 0,

(ii) h(x) = max{f1(x), . . . , fm(x)}.

Problema 5. Fie multimea K = {x ∈ Rn : x ≥ 0}. Sa se demonstreze

ca multimea K este un con si sa se determine conul dual corespunzator.

Problema 6. Sa se demonstreze ca functia f(x) =r∑

i=1

αix[i] este convexa

ın x, unde α1 ≥ · · · ≥ αr ≥ 0, iar x[n] reprezinta a n-a cea mai marecomponenta din vectorul x.

Problema 7. Determinati functiile conjugate corespunzatoare functiilor:

(i) f(x) = max1≤i≤n

xi cu domeniul Rn;

(ii) f(x) = xp cu domeniul R++, unde p > 1. Comentati cazul ın carep < 0.

(iii) f(x) =

(

−n∏

i=1

xi

)1/n

cu domeniul Rn++;

(iv) f(x, t) = − log(t2−xTx) cu domeniul {(x, t) ∈ Rn × R : ‖x‖2 ≤ t}.

Problema 8. Sa se demonstreze ca functia:

f(x) =1

x1 −1

x2 −1

x3 −1

x4

,

definita pe domeniul ın care toti numitorii sunt pozitivi, este convexa sistrict descrescatoare. (Cazul cand n = 4 nu prezinta nicio particularitate,caracteristicile functiei se mentin si pentru cazul general n oarecare.)

Problema 9. Presupunem ca functia f este convexa, iar λ1 > 0, λi ≤ 0

pentru i = 2, . . . , n sin∑

i=1

λi = 1. Fie punctele x1, . . . , xn ∈ domf . Sa se

demonstreze ca are loc inegalitatea:

f(λ1x1 + · · ·+ λnxn) ≥ λ1f(x1) + · · ·+ λnf(xn).

Page 59: Metode de Optimizare Numeric˘a

2.5. Probleme propuse 59

Problema 10. Sa se arate ca o functie f : R → R este convexa daca sinumai daca domeniul domf este convex si

det

1 1 1x y z

f(x) f(y) f(z)

≥ 0,

pentru orice x, y, z ∈ domf si x < y < z.Problema 11. Sa se arate ca maximul unei functii convexe pestepoliedrul P = conv {v1, . . . , vk} este atins ıntr-unul dintre varfurilepoliedrului, i.e.,

supx∈P

f(x) = maxi=1,...,k

f(vi).

Indiciu: Se presupune ca afirmatia este falsa si se utilizeaza inegalitatealui Jensen.

Problema 12. Fie o functie convexa f si o functie g definita dupa cumurmeaza:

g(x) = minα>0

f(αx)

α.

(i) Sa se demonstreze ca functia g este omogena, i.e. g(tx) = tg(x)pentru orice t ≥ 0.

(ii) Sa se demonstreze ca daca o functie h este omogena si h(x) ≤ f(x)pentru orice x, atunci avem h(x) ≤ g(x) pentru orice x.

(iii) Sa se demonstreze ca functia g definita anterior este convexa.

Problema 13. Fie functia omogena f : Rn → R, i.e. f(tx) = tf(x)pentru orice t ≥ 0 si x ∈ R

n. O functie omogena se numeste subaditivadaca satisface, ın plus, urmatoarea relatie:

f(x) + f(y) ≥ f(x+ y).

Sa se demonstreze ca, pentru functiile omogene, subaditivitatea esteechivalenta cu convexitatea.

Problema 14. Fie o multime S nevida, marginita si convexa ın Rn si o

functie f definita de:f(x) = max

y∈SyTx.

Functia f se numeste functia suport a multimii S.

Page 60: Metode de Optimizare Numeric˘a

60 Capitolul 2. Probleme de optimizare convexa

(i) Sa se arate ca functia f este omogena si convexa.

(i) Sa se determine explicit functia suport pentru multimile S definitede

S = {x ∈ Rn : ‖Ax‖p ≤ 1} p = 1, 2,∞,

unde matricea A este inversabila.

Problema 15. Fie functia convexa f : Rn → R. Definim proprietateade convexitate tare, enumerand conditiile de ordin 0, I si II (ce depindde gradul de diferentiabilitate al functiei), ıntr-un mod similar cu celecorespunzatoare cazului convex. Pentru µ > 0, functia f se numesteµ−tare convexa ın raport cu norma-p daca:

(Conditii de ordinul 0) functia f satisface urmatoarea inegalitatepentru orice x, y ∈ R

n:

f(αx+ (1− α)y) ≤ αf(x) + (1− α)f(y)− µα(1− α)

2‖x− y‖2p.

(Conditii de ordinul I) functia f este diferentiabila si satisfaceurmatoarea inegalitate pentru orice x, y ∈ R

n:

f(y) ≥ f(x) + 〈∇f(x), y − x〉+ µ

2‖x− y‖2p.

(Conditii de ordinul II) functia f este diferentiabila de doua ori sisatisface urmatoarea inegalitate pentru orice x ∈ R

n:

xT∇2f(x)x ≥ µ‖x‖2p,

unde ‖x‖p =(

n∑

i=1

xpi

) 1

p

, 1 ≤ p ≤ ∞.

Sa se demonstreze ca:

(i) Pentru norma 2, conditiile de ordin I implica conditiile de ordin 0,i.e. daca functia f satisface conditiile de ordin I atunci ea satisfacesi conditiile de ordin 0.

(ii) Pentru norma 2, orice functie diferentiabila o data si µ−tareconvexa satisface relatia:

〈∇f(x)−∇f(y), x− y〉 ≥ µ‖x− y‖22.

Page 61: Metode de Optimizare Numeric˘a

2.5. Probleme propuse 61

(iii) Functia g(x) = 12‖x‖22 este 1-tare convexa ın raport cu norma ‖·‖2.

(iv) Functia g(x) = 12‖x‖2p este (p− 1)-tare convexa ın raport cu norma

‖·‖p, pentru p > 1.

(v) Functia g(x) = log n−n∑

i=1

xi log xi este 1-tare convexa ın raport cu

norma ‖·‖1 pe domeniul {x ∈ Rn+ : ‖x‖1 ≤ 1}.

Problema 16. Fie functia f definita de:

f(y, t) = maxx∈Rn

〈y, x〉 − t

2‖x‖2.

Determinati domeniul functiei f si aratati ca expresia acesteia se rescrieın urmatoarea forma:

f(y, t) =

{

0, daca y = 0, t = 0‖y‖22t

, daca t > 0..

Problema 17. Sa se demonstreze ca pentru o matrice simetrica si pozitivdefinita Q ∈ R

n×n si doi vectori u, v ∈ Rn are loc urmatoarea inegalitate:

|uTv| ≤ uTQuvTQ−1v.

Problema 18. Fie matricele E,H si F de dimensiuni compatibile siF TF � I. Sa demonstreze ca pentru orice α > 0, avem

EFH +HTF TET � αEET +1

αHTH.

Indiciu: Se foloseste inegalitatea (αET − FH)T (αET − FH) � 0.

Problema 19. Fie matricea simetrica M de forma:

M =

[A BBT C

]

,

ın care matricea C este inversabila. Se numeste complementul Schur allui M , matricea S = A − BC−1BT . Un rezultat des folosit ın teoriamatriceala precizeaza ca urmatoarele relatii sunt echivalente:

(i) M � 0 (M este pozitiv semidefinita);

Page 62: Metode de Optimizare Numeric˘a

62 Capitolul 2. Probleme de optimizare convexa

(ii) A � 0, (I −AA†)B = 0, C − BTA†B � 0;

(iii) C � 0, (I − CC†)B = 0, A− BTC†B � 0,

unde cu A† am notat pseudo-inversa matricei A. Mai mult, daca M ≻ 0obtinem un caz particular al echivalentelor:

(i)’ M ≻ 0 (M este pozitiv definita);

(ii)’ A ≻ 0, C −BTA−1B � 0;

(iii)’ C ≻ 0, A−BTC−1B � 0.

Evidentiem, mai departe, un exemplu de aplicatie al acestui rezultat. Fiefunctia f : Rn × Sn

++ → R definita de:

f(x, Y ) = xTY −1x.

Sa se demonstreze ca f este convexa folosind proprietatilecomplementului Schur.

Page 63: Metode de Optimizare Numeric˘a

Capitolul 3

Metode de ordinul I

3.1 Preliminarii

In acest capitol abordam probleme neliniare de optimizare neconstransa(unconstrained nonlinear programming - UNLP):

(UNLP ) : minx∈Rn

f(x), (3.1)

unde functia obiectiv f este de doua ori diferentiabila. Conformconditiilor de optimalitate necesare pentru problema (3.1), orice punct deminim local pentru problema (UNLP), x∗, satisface urmatoarele relatii:

∇f(x∗) = 0, ∇2f(x∗)<0.

In plus, daca pentru un punct y∗ ∈ domf avem ∇f(y∗) = 0 si ∇2f(y∗) ≻0, atunci y∗ este punct de minim local strict pentru problema (UNLP)data ın (3.1).Conditiile de optimalitate joaca un rol fundamental ın dezvoltareaalgoritmilor eficienti din domeniul optimizarii (vezi [1, 2]). In particular,conditiile de ordinul I stau la baza unei clase relativ largi de metode deordin I (metode ce folosesc evaluarea functiei si informatie de gradient).In cazul convex, gasirea unui punct ce satisface conditiile de optimalitatenecesare este echivalenta cu rezolvarea problemei de optimizare originale(deoarece conditiile de ordinul I sunt suficiente). Acest argumentfurnizeaza o imagine clara asupra facilitatilor optimizarii convexe fatade cazurile neconvexe, unde pentru gasirea unui punct minim/maximlocal este necesara rezolvarea conditiilor de ordinul I si de ordin II. Asacum se observa din experimentele numerice, desi algoritmii de ordinul

Page 64: Metode de Optimizare Numeric˘a

64 Capitolul 3. Metode de ordinul I

I prezinta o complexitate a iteratiei foarte scazuta (ın comparatie cucei de ordin II) si o convergenta accelerata ın regiunile ındepartate depunctul de optim, atunci cand algoritmul intra ın vecinatatea punctuluide optim, viteza acestora scade considerabil. De aceea, gasirea unuipunct de optim cu o acuratete mare este un proces dificil pentrumetodele de ordin I. In cazul problemelor de dimensiuni foarte mari,cand nu este necesara aflarea punctului de optim cu o acuratete ridicata,recomandarea principala pentru rezolvarea acestora sunt algoritmii deordin I datorita complexitatii reduse a iteratiilor acestora. In continuare,prezentam principalele metode de ordin I si exemple de functionare aleacestora.

3.2 Probleme rezolvate de laborator

3.2.1 Metoda Gradient

Metoda gradient se afla printre primele si cele mai simple metodedezvoltate ın scopul determinarii unui punct critic aflat pe o anumitacurba (Cauchy, 1847). In principiu, metoda gradient reprezinta unalgoritm de ordin I care genereaza un sir de puncte (vectori) x1, x2, . . . ,pornind dintr-un punct initial ales. Structura esentiala a metodeigradient este enuntata ın continuare:

Metoda Gradient

1. Se alege punctul initial x0, k := 0.

2. Se determina pasul αk si se actualizeaza xk+1 = xk − αk∇f(xk).

3. Daca criteriul de oprire nu este satisfacut, atunci se incrementeaza

k := k + 1 si se reia pasul 2,

unde∇f(x) reprezinta gradientul functiei f ın punctul x. Pentru alegereapasului αk avem mai multe optiuni:

(i) Alegerea ideala a pasului αk la fiecare iteratie presupune ca functiascalara φ(α) = f(xk − α∇f(xk)) sa descreasca cat mai mult posibil, i.e:

αk = argminα>0

φ(α),

numita si problema de ”line search”.(ii) Deseori, ın functie de f , minimizarea lui φ(α) poate fi foarte dificila.In acest caz, αk poate fi gasit prin diversi algoritmi mai simpli de

Page 65: Metode de Optimizare Numeric˘a

3.2. Probleme rezolvate de laborator 65

cautare, ce includ conditii necesare asupra pasului pentru asigurarea uneidescresteri suficiente a functiei. Conditiile Wolfe reprezinta un exempluelocvent pentru aceasta strategie de ”line-search”:

1. Se aleg doua constante c1 si c2 ce satisfac 0 < c1 < c2 < 1

2. Se determina αk > 0 astfel ıncat:

f(xk − αk∇f(xk)) ≤ f(xk)− c1αk∇f(xk)T∇f(xk) (3.2)

∇f(xk)T∇f(xk − αk∇f(xk)) ≤ c2∇f(xk)

T∇f(xk). (3.3)

(iii) Un caz particular des utilizat ın practica este ”metoda backtracking”ce ajusteaza dimensiunea pasului αk pentru ca prima relatie Wolfe (3.2)sa fie satisfacuta; metoda presupune alegerea unui parametru ρ ∈ (0, 1]si actualizarea dimensiunii pasului, dupa cum urmeaza:

1. Se alege α0 > 0, ρ ∈ (0, 1];

2. Cat timp αk nu satisface prima conditie Wolfe (3.2) iteram :

2.1. αk+1 = ραk; k = k + 1.

(iv) Pentru functiile cu gradient continuu ın sens Lipschitz cu o constantaL > 0, putem alege pasul αk constant la fiecare iteratie. Daca aplicamiteratia metodei gradient, din conditia continuitatii functiilor cu gradientLipschitz avem:

f(xk+1) ≤ f(xk)− αk(1−L

2αk) ‖∇f(xk)‖2 ,

rezultand ca trebuie sa selectam αk ∈ (0, 2L), iar pentru o descrestere

optima a functiei, la fiecare iteratie alegem αk = 1L.

In exemplul urmator vom implementa metoda gradient pentru prima sia treia dintre optiunile alegerii pasului αk, unde criteriul de oprire va fiimpus de scaderea termenului ‖∇f(xk)‖ sub o precizie data.

Exemplul 15. Fie functia f(x) = (x1 − 2)4 + (x1 − 2x2)2. Sa se

implementeze metoda gradient pentru rezolvarea problemei:

minx∈Rn

f(x), (3.4)

ın varianta cu pas ideal si cea cu pas ales prin metoda de backtracking.

Page 66: Metode de Optimizare Numeric˘a

66 Capitolul 3. Metode de ordinul I

Rezolvare. Pentru ınceput, vom avea nevoie de doua functii:

f=feval_obj(x), g=gradient_obj(x)

care sa returneze valoarea functiei intr-un punct x, respectiv gradientulfunctiei ın acel punct. Din moment ce vom cauta pasul ideal la fiecareiteratie a metodei gradient, va fi necesara o functie ce returneaza valoareafunctiei φ(α) = f(x+ αd):

function f=phi_obj(alpha,x,d)

f=feval_obj(x+alpha*d);

end

Pentru gasirea pasului ideal la fiecare iteratie, vom utiliza functiafminsearch. Vom porni de la un punct initial x0, iar conditia deoprire a algoritmului va presupune ca norma gradientului sa fie sub oanumita toleranta impusa eps. Implementarea algoritmului este data deurmatoarea secventa de cod:

function xmin=gradient_method(x0,eps)

% Initializam vectori/matrice pentru

% memorarea gradientilor, a punctelor x

% generate de algoritm, etc

puncte_gradient=[]; puncte_iteratie=[];

valori_functie=[]; norme_gradienti=[];

%vom utiliza un vector g pentru a stoca gradientul curent

x=x0; g=gradient_obj(x);

while(norm(g)>eps)

g=gradient_obj(x); puncte_gradient=[puncte_gradient g];

puncte_iteratie=[puncte_iteratie x];

valori_functie=[valori_functie; feval_obj(x)];

norme_gradienti=[norme_gradienti; norm(g)];

alpha=fminsearch(@(alpha) phi_obj(alpha,x,-g).1);

x=x-alpha*g

end

xmin=x;

%Pentru afisarea grafica a rezultatelor,

%avem urmatoarele instructiuni

t=1:length(valori_functie);

figure(1)

hold on

Page 67: Metode de Optimizare Numeric˘a

3.2. Probleme rezolvate de laborator 67

plot(t,norme_gradienti(t),’k’,’LineWidth’,2);

hold off

figure(2)

hold on

plot(t,valori_functie(t),’k’,’LineWidth’,2);

hold off

%Pentru trasarea liniilor de contur si evolutia

%metodei gradient, avem urmatoarele

%instructiuni

[x1,x2]=meshgrid([1.2:0.01:2.8],[0.4:0.01:1.6]);

z=(x1-2).^4+(x1-2.*x2).^2;

figure(3)

hold on

contour(x1,x2,z,valori_functie);

plot3(puncte_iteratie(1,:),puncte_iteratie(2,:),...

valori_functie,’r’);

scatter3(puncte_iteratie(1,:),puncte_iteratie(2,:),...

valori_functie,’filled’);

hold off

1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.80.4

0.6

0.8

1

1.2

1.4

1.6

x1

x2

Figura 3.1: Convergenta metodei gradient cu pas ideal.

Apelarea functiei precedente se face ın linia de comanda din Matlab, e.g.:

xmin=gradient_method([1.4;0.5],0.0001)

Pentru varianta metodei gradient cu pasul determinat de metoda debacktracking, se poate ınlocui ın cod functia fminsearch cu urmatoareasecventa de cod:

Page 68: Metode de Optimizare Numeric˘a

68 Capitolul 3. Metode de ordinul I

function alpha=backtrack_alpha(x,d)

alpha=1; t1=0.9; t2=0.2;

g=gradient_obj(x);

%Va trebui satisfacuta conditia Armijo:

while(feval_obj(x+alpha*d)>feval_obj(x)+t1*alpha*g’*d)

alpha=alpha*t2;

end

care va fi apelata cu d = −g = −∇f(x).

In Fig. 3.1 se observa caracteristica elocventa a metodei gradient carea fost precizata ın sectiunile anterioare, si anume decelerarea ratei deconvergenta pe masura ce algoritmul se apropie de punctul de optim.In plus, Fig. 3.2 reda rezultatele grafice comparative ale convergenteimetodei gradient cand criteriul de oprire este de forma f(xk) − f ∗ sau‖∇f(xk)‖. Observam ca desi criteriul f(xk)− f ∗ reflecta mult mai bineacuratetea punctului curent, acesta este rar folosit ın practica, deoarecevaloarea optima nu se cunoaste a priori.

0 10 20 30 40 50 600

0.05

0.1

0.15

0.2

0.25

0.3

0.35

k

f(xk)−f*

0 10 20 30 40 50 600

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

k

|| ∇ f(xk) ||

Figura 3.2: Comparatia convergentei variantelor metodei gradient (cucriteriul f(xk)− f∗ ın prima figura si cu criteriul ‖∇f(xk)‖ ın a doua),pentru pas ideal (linie continua) si pas obtinut prin backtracking (linie

punctata).

In exemplul urmator, vom implementa metoda gradient cu pas constantpentru o functie patratica cu gradient Lipschitz, pentru care L =λmax(Q).

Exemplul 16. Fie functia patratica:

f(x) =1

2xT

2.04 −2.8 3.3;−2.8 6 −43.3 −4 17.25

x+ [1 −1 −2]x

Page 69: Metode de Optimizare Numeric˘a

3.2. Probleme rezolvate de laborator 69

Figura 3.3: Progresul metodei gradient pornind dintr-un punct initial alesaleatoriu, spre punctul de optim.

Sa se implementeze metoda gradient pentru rezolvarea problemei:

minx∈R3

f(x).

Rezolvare. Implementarea metodei gradient din cerinta precedenta estedata de urmatoarea secventa de cod:

function [x,f,iter]=gradient(eps)

Q=[2.04 -2.8 3.3;...

-2.8 6 -4;...

3.3 -4 17.25];

q=[1;-1;-2];

L=max(eig(Q)); x=rand(3,1);

grad=Q*x+q;

f_new=0.5*x’*Q*x+q’*x; f_old=f_new+1; iter=0;

while ((f_old-f_new)>eps)

f_old=f_new; x=x-(1/L)*grad;

grad=Q*x+q; f_new=0.5*x’*Q*x+q’*x;

iter=iter+1;

end

f=f_new;

end

Sa se rezolve sistemul Qx = −q si sa se compare solutia acestuia cu ceaa problemei anterioare. Sa se comenteze observatiile facute.

Page 70: Metode de Optimizare Numeric˘a

70 Capitolul 3. Metode de ordinul I

3.2.2 Metoda gradientilor conjugati

Metoda gradientilor conjugati face parte, de asemenea, din clasametodelor de optimizare de ordinul I si reprezinta o metoda iterativacu perfor-mante deosebite ın rezolvarea problemelor patratice. A fost dezvoltata decatre Hestenes si Stiefel ın 1951, ın scopul rezolvarii sistemelor de ecuatiiliniare de mari dimensiuni. Deoarece orice problema de rezolvare a unuisistem de ecuatii liniare/neliniare se poate transforma ıntr-o problemade optimizare patratica, metoda gradientilor conjugati este consideratao metoda de optimizare. Vom observa ca iteratia are aproximativaceeasi complexitate ca si cea a metodei gradient, ınsa foloseste un altrationament pentru a converge la punctul de optim.

Metoda gradientilor conjugati

1. Se alege α0 > 0, x0 si se calculeaza d0 = −∇f(x0).

2. Se actualizeaza sirurile xk+1 = xk + αkdk si dk+1 = −rk+1 + βkdk.

3. Daca criteriul de oprire nu este satisfacut, atunci se incrementeaza

k = k + 1 si se reia pasul 2,

unde ∇f(x) reprezinta gradientul functiei f ın punctul x, iar rk =∇f(xk). Parametrii αk si βk sunt definitorii pentru metoda directiilorconjugate, variantele de alegere a acestora reprezentand elementefundamentale ale dezvoltarii de noi metode de directii (gradienti)conjugate (conjugati). Cea mai des folosita varianta a metodei de directiiconjugate pentru functii patratice este data de

αk = − rTk dkdTk∇2f(xk)dk

, βk =rTk+1∇2(fxk)dk

dTk∇2f(xk)dk

Exemplul 17. Sa se determine punctul de optim si valoarea optima afunctiei patratice f : R2 → R definita de:

f(x) = 4.5x21 + 5x2

2 + 3x1x2 − 2x1 − x2,

utilizand metoda gradientilor conjugati cu punctul initial x0 = [0 0]T .

Rezolvare. Rescriem functia f ın forma matriceala:

f(x) =1

2xTQx+ qTx,

Page 71: Metode de Optimizare Numeric˘a

3.2. Probleme rezolvate de laborator 71

unde Q =

[9 33 10

]

, qT =[−2 − 1

]. Cunoastem ca pentru a rezolva

probleme patratice de dimensiune n cu ajutorul metodei gradientilorconjugati sunt necesare n iteratii ale acestei metode. De aceea, problemadin enunt poate fi rezolvata ın doua iteratii de aceasta metoda. Avandla dispozitie gradientul ∇f(x0) si directia d0, putem calcula:

α0 = −∇f(x0)Td0

dT0Qd0.

Prima iteratie din sirul xk al metodei de gradienti conjugati se calculeazape baza informatiei acumulate pana ın momentul k = 1:

x1 = x0 + α0d0.

La a doua si ultima iteratie, pentru calculul lui x2 avem nevoie de directia

d1 = −∇f(x1) + β0d0, unde β0 =∇f(x1)TQd0

dT0Qd0

. In final, pentru calculul lui

x2 este necesar parametrul α1 = −∇f(x1)T d1dT1Qd1

si rezulta:

x2 = x1 − α1d1.

Deoarece metoda gradientilor conjugati are nevoie de doua iteratii ıncazul nostru, iteratia x2 reprezinta solutia problemei de minimizare.Stiind ca solutia problemei satisface, de asemenea, si sistemul liniar deordin II:

Qx+ q = 0,

obtinem si un criteriu de verificare pentru solutia returnata de algoritmulde gradienti conjugati. O implementare ın cod Matlab este data deurmatoarea secventa:

function [x f]=conjugate()

Q=[9 3;3 10]; q=[-2;-1];

x=[0;0]; f_new=0.5*x’*Q*x+q’*x;

f=f_new+1; grad=Q*x+q;

iter=0; d=-grad;

while (iter<2)

f=f_new; alpha=-(grad’*d)/(d’*Q*d);

x=x+alpha*d; grad=Q*x+q;

beta=(grad’*Q*d)/(d’*Q*d);

Page 72: Metode de Optimizare Numeric˘a

72 Capitolul 3. Metode de ordinul I

d=-grad+beta*d; f_new=0.5*x’*Q*x+q’*x;

iter=iter+1;

end

f=f_new;

end

Experimentele numerice au condus la concluzia ca pentru o functie patra-tica convexa f : Rn → R, metoda gradientilor conjugati converge ınn iteratii. Observam un comportament deosebit al acestei metode,deoarece ın general, majoritatea metodelor cunoscute converg ıntr-unnumar infinit de iteratii.

3.3 Probleme rezolvate de seminar

3.3.1 Aproximari patratice

Problema 1. Fie functia f : R2 → R, f(x) = 12(x2

1 + x22)e

(x21−x2

2).

(i) Sa se verifice ca punctul x∗ = [0 0]T este un punct de minim local.

(ii) Sa se evalueze gradientul si Hessiana ın punctul x0 = [1 1]T si sa severifice ca Hessiana nu este pozitiv definita. Sa se arate ca ν = 3este valoarea ıntreaga minima pentru care H = ∇2f(x0) + νI ≻ 0.

(iii) Fie punctul x0 = [1/2 0]T . Sa se scrie aproximarea patraticauzuala (serie Taylor) a acestei functii in jurul lui x0 si o aproximarepatratica utilizand ın locul Hessianei o matrice 1

βI, cu β > 0.

Minimizati ambele aproximari.

Rezolvare. (i) Gradientul si Hessiana functiei vor fi:

∇f(x) = e(x21−x2

2)

[x31 + x1(1 + x2

2)−x3

2 + x2(1− x21)

]

∇2f(x) = e(x21−x2

2)

[2x4

1+x21(5+2x

22)+x

22 +1 −2x1x2(x

21 + x2

2)−2x1x2(x

21 + x2

2) 2x42+x

22(2x

21 − 5)− x2

1+1

]

.

Evident, pentru x∗ = 0 este punct de minim local deoarece satisfaceconditiile suficiente de optimalitate:

∇f(x∗) = 0, ∇2f(x∗) = I2 ≻ 0.

Page 73: Metode de Optimizare Numeric˘a

3.3. Probleme rezolvate de seminar 73

(ii) Pentru x0 = [1 1]T avem:

∇f(x0) =

[3−1

]

, ∇2f(x0) =

[12 −4−4 −1

]

,

de unde rezulta ca valorile proprii ale lui ∇2f(x0) sunt λ1,2 =11±

√233

2≈

(13.13,−2.13), i.e. matricea nu este pozitiv definita. Mai mult, observamca (∇2f(x0) + νI) ≻ 0 pentru ν = 3 > λ2 ≈ −2.13.(iii) Pentru punctul x0 = [1/2 0]T vom avea:

∇f(x0) = e1

4

[58

0

]

, ∇2f(x0) = e1

4

[198

00 3

4

]

.

Aproximarea ın serie Taylor a functiei ın jurul punctului x0 = [1/2 0]T

va fi:

f(x) ≈f(x0) +∇f(x0)T (x− x0) +

1

2(x− x0)

T∇2f(x0)(x− x0)

=e1

4

(19

16x21 +

3

4x22 −

9

16x1 +

9

64

)

,

al carei punct de minim este dat de xN1 = [9/38 0]T . Aproximarea cu

1βI are urmatoarea forma:

f(x) ≈ f(x0) +∇f(x0)T (x− x0) +

1

2(x− x0)

T 1

βI2(x− x0)

care ın acest caz este data de:

f(x) ≈ =1

8e

1

4 + e1

4

[58

0][x1 − 1

2

x2

]

+1

[x1 − 1

2x2

]TI2

[x1 − 1

2

x2

]

=1

8e

1

4 +1

(

(x1 −1

2)2 + x2

2

)

+5

8e

1

4

(

x1 −1

2

)

,

de unde rezulta punctul de minim xG1 = [−5β

8e

1

4 + 12

0]T . Observam ca

putem alege β = 8

19e14

astfel ıncat xG1 = xN

1 , iar f(xN1 ) = f(xG

1 ). In cazul

general ınsa, obtinem puncte xG1 si xN

1 pentru care f(xG1 ) > f(xN

1 ).

3.3.2 Conditii de optimalitate de ordin I

Problema 2. Rezolvati problema de maximizare:

maxx,y

f(x, y) =1

(x− a)2 + (y − a)2 + 1.

Sa se discute rezultatul ın functie de a.

Page 74: Metode de Optimizare Numeric˘a

74 Capitolul 3. Metode de ordinul I

Rezolvare. Prin aplicarea conditiilor suficiente de ordin I, i.e. ∇f(x, y) =0, obtinem sistemul:

{∂f∂x

= 0

∂f∂y

= 0

Explicitand cele doua ecuatii, obtinem:{

x− a = 0

y − a = 0.

In concluzie, exista un singur punct critic dat de perechea (a, a). Maideparte, demonstram ca punctul critic este punct de maxim. Verificamconditiile suficiente de ordin II, i.e. Hessiana ∇2f(x) ın punctul (a, a)este o matrice negativ definita,

∇2f(a, a) =

[−2 00 −2

]

.

si constatam ca punctul (a, a) este punct de maxim, indiferent de valoareaparametrului a.

Problema 3. Fie functia f(x1, x2) = 11x21+20x1x2+αx2

2−2x1−2x2+2.

(i) Sa se discute care sunt punctele de minim locale ın functie de α.

(ii) Pentru ce valori ale lui α, functia are valoarea minima egala cu 2?

Rezolvare. (i) Observam ca f(x1, x2) este functie patratica:

f(x1, x2) =1

2xTQx+ qTx+ r

=1

2[x1 x2]

[22 2020 2α

][x1

x2

]

+ [−2 2]

[x1

x2

]

+ 2,

unde Q =

[22 2020 2α

]

, q =

[−22

]T

, r = 2. Punctele stationare ale

functiei f sunt solutii ale sistemului:

∇f(x1, x2) = Qx+ q =

[22x1 + 20x2 − 220x1 + 2αx2 − 2

]

= 0. (3.5)

Un factor ce determina natura punctelor stationare este convexitateafunctiei f . Una din modalitatile de verificare a proprietatii de convexitate

Page 75: Metode de Optimizare Numeric˘a

3.3. Probleme rezolvate de seminar 75

presupune ∇2f(x) = Q � 0, pentru orice x ∈ domf . Valorile proprii alematricei Q sunt radacinile polinomului caracteristic λ2 − λ(22 + 2α) +44α+ 400 = 0. Astfel, discutam convexitatea functiei f dupa α:Daca α > 100

11, functia f este convexa si orice solutie a sistemului

(3.5) este un punct de minim global. Rezolvand sistemul, obtinemx∗1 =

−111α−100

(10− α), x∗2 =

111α−100

Daca α = 10011

sistemul (3.5) nu are solutie si este definit de ecuatiile:

20x1 +200

11x2 − 2 = 0,

22x1 + 20x2 − 2 = 0

In acest caz, f este convexa, dar nu exista punct de minim, i.e. q 6∈Im(Q).

Daca α < 10011, functia f nu este convexa deoarece matricea Q este

indefinita. Punctul critic obtinut ın acest caz din rezolvarea sistemului(3.5) este punct de inflexiune (stationar).(ii) Impunem conditia ca punctul (x∗, y∗) sa fie punct critic, i.e.

∇f(x1, x2) = 0 ⇔{

x∗1 =

−111α−100

(10− α)

x∗2 =

111α−100

.

Pentru a determina un punct de minim, tinem cont de conditia de lapunctul precedent α > 100

11. Inlocuind valorile lui x∗

1, respectiv x∗2 ın

f

(α− 10

11α− 100,

1

11α− 100

)

= 2,

se determina usor valoarea scalarului α.

3.3.3 Metoda gradient

Problema 4. Fie functia f : R2 → R, f(x) = 12‖Ax− b‖22 + 2xTx,

unde A =

[1 11 1

]

si b = [0 1]T . Consideram de asemenea problema de

optimizare aferenta: minx∈R2

f(x).

(i) Sa se scrie problema de optimizare aferenta ca o problema QP. Sase calculeze expresia gradientului si Hessianei functiei obiectiv. Sase demonstreze ca functia obiectiv este convexa.

Page 76: Metode de Optimizare Numeric˘a

76 Capitolul 3. Metode de ordinul I

(ii) Sa se calculeze punctul de minim global x∗. Pornind din punctulinitial x0 = [0 1]T , sa se implementeze prima iteratie x1 a metodeigradient cu pasul α0 = 1. Sa se compare f(x0), f(x1) si f(x

∗) si sase discute concluzia.

Rezolvare. (i) Pentru a scrie problema anterioara ca o problema QP,explicitam mai ıntai norma din cadrul functiei obiectiv:

1

2‖Ax− b‖22 =

1

2(Ax− b)T (Ax− b)

=1

2(xTATAx− xTAT b− bTAx+ bT b)

=1

2xTATAx− (AT b)Tx+

bT b

2

Formuland 2xTx ca 12xT4I2x avem:

minx∈R2

1

2xTQx+ qTx+ c

unde Q = ATA + 4I2, q = −AT b si c = 12bT b. Se pot determina usor

parametrii:

Q =

[6 22 6

]

, q =

[−1−1

]

.

Deoarece Q este simetrica, expresia gradientului si a Hessianei suntdefinite de:

∇f(x) = Qx+ q =

[6x1 + 2x2 − 12x1 + 6x2 − 1

]

si ∇2f(x) = Q

Functia f este de doua ori diferentiabila, deci putem folosi conditia deordin II pentru a arata convexitatea. Mai exact, verficam daca ∇2f(x) ≥0 pentru orice x ∈ domf . Valorile proprii ale matricei Q sunt solutii alepolinomului caracteristic:

λ2 − 12λ+ 32 = 0,

date de λ1,2 = {8, 4}, i.e. matricea Q este pozitiv definita.(ii) Functia f este convexa, deci conditiile de optimalitate de ordin I suntsuficiente pentru a determina punctul de optim:

∇f(x∗) = Qx∗ + q = 0.

Page 77: Metode de Optimizare Numeric˘a

3.3. Probleme rezolvate de seminar 77

Evident, solutia x∗ = −Q−1q este determinata de Q−1 = 132

[6 −2−2 6

]

rezultand:

x∗ =1

32

[6 −2−2 6

] [11

]

=1

32

[44

]

=

[1818

]

Implementarea primei iteratii a metodei gradient presupune calcululvectorului ∇f(x0):

∇f(x0) = Qx0 + q =

[15

]

.

Astfel, iteratia x1 rezulta:

x1 = x0 − α0∇f(x0) =

[0−4

]

Observam ca f(x1) = 52 si f(x∗) = −18, deci x1 se afla ıntr-o regiune

relativ ındepartata a optimului x∗. In plus, remarcam ca valoarea functieiın x1 este mai mare fata de cea ın x0, i.e. f(x0) = 2. Reamintim caaplicarea metodei gradient unei probleme cu functia obiectiv cu gradientcontinuu ın sens Lipschitz (cu constanta L) presupune alegerea pasuluiα ∈

(0, 2

L

). In particular, L = λmax(Q) = 8 si conform teoriei α0 ∈

(0, 0.25]; deci, α0 = 1 ales anterior este inadecvat.

Problema 5. Fie functia f : R2 → R, f(x) = 4x21 + 3x2

2 − 4x1x2 + x1,punctul initial x0 = [−1

80]T si directia d0 = −[1

525]T .

(i) Este d0 o directie de descrestere?

(ii) Notand φ(α) = f(x0 + αd0), sa se gaseasca valoarea φ′(1).

(iii) Sa se calculeze prima iteratie x1 a metodei gradient (cu alegereideala a dimensiunii pasului).

Rezolvare. (i) Pentru ca directia dk sa fie directie de descrestere, trebuiesa satisfaca inegalitatea ∇f(xk)

Tdk < 0. Din expresia gradientuluifunctiei f :

∇f(x) =

[8x1 − 4x2 + 16x2 − 4x1

]

,

care ın punctul x0 este ∇f(x0) = [0 1/2]T , observam ca ∇f(x0)Td0 =

−1/5. Deci directia d0 este directie de descrestere.

Page 78: Metode de Optimizare Numeric˘a

78 Capitolul 3. Metode de ordinul I

(ii) Pentru calculul derivatei lui φ(α) rescriem f sub forma:

f(x) =1

2xTQx+ qTx, unde Q =

[8 −4−4 6

]

si q =

[10

]

.

Explicitam φ(α):

φ(α) =α2

2dT0Qd0 + α(Qx0 + q)Td0 +

1

2xT0Qx0 + qTx0,

si deducem derivata ın 1:

φ′(1) = dT0Qd0 + (Qx0 + q)Td0 = 0.44.

(iii) Substituind valorile parametrilor din enunt, problema gasiriidimensiunii ideale a pasului metodei gradient se reduce la minimizareaunei functii scalare patratice convexe. Rezulta astfel min

α≥0φ(α) = −0.0833

si α∗ = argminα≥0

φ(α) = 0.1667. In final, calculam prima iteratie a metodei

gradient:

x1 = x0 − α∗∇f(x0) =

[−0.1250−0.0833

]

.

Problema 6. Fie problema de minimizare:

minx∈R2

f(x) (:= 5x21 + 5x2

2 − x1x2 − 11x1 + 11x2 + 11).

(i) Sa se gaseasca punctele critice.

(ii) Sa se demonstreze ca un punct ce satisface conditiile de ordin Ieste, de asemenea, punct de minim global.

(iii) Care este rata de descrestere a metodei gradient pentru aceastafunctie ?

(iv) Pornind din punctul initial

[x1

x2

]

=

[00

]

, cate iteratii sunt necesare

pentru ca algoritmul sa atinga acuratetea 10−6?

Rezolvare. (i) Punctele critice reprezinta solutiile sistemului ∇f(x) = 0descris de: {

10x1 − x2 − 11 = 0

−x1 + 10x2 + 11 = 0.

Page 79: Metode de Optimizare Numeric˘a

3.3. Probleme rezolvate de seminar 79

Observam ca sistemul are o singura solutie data de perechea (x1, x2) =(1,−1).(ii) Observam ca functia f ın forma:

f(x1, x2) =1

2[x1 x2]

[10 −1−1 10

] [x1

x2

]

+ [−11 11]

[x1

x2

]

+ 11.

are Hessiana pozitiv definita ın orice punct al domeniului, i.e.

∇2f(x1, x2) =

[10 −1−1 10

]

= Q ≻ 0.

In concluzie, punctul critic (x∗1, x

∗2) = (1,−1) este punct de minim global.

(iii) Pentru calculul ratei de descrestere corespunzatoare metodei gradientexplicitam iteratia acesteia:

xk+1 = xk − αk∇f(xk)

= xk − αk(Qxk + q)

= xk − αkQxk − αkq

= (I2 − αkQ)xk − αkq,

unde cu I2 am notat matricea identitate de ordin II. Consideram metodagradient cu pasul constant dat de αk = 1

L, unde L reprezinta constanta

de continuitate Lipschitz a gradientului functiei obiectiv.Reamintim acum relatia de continuitate ın sens Lipschitz a gradientuluiunei functii diferentiabile: o functie f : Rn → R are gradientul continuuLipschitz cu constanta L daca

‖∇f(x)−∇f(y)‖ ≤ L‖x− y‖, ∀x, y ∈ Rn.

In cazul functiei din enunt, relatia se reduce la:

‖Qx−Qy‖ ≤ ‖Q‖‖x− y‖, ∀x, y ∈ R2,

deci putem considera constanta Lipschitz L = ‖Q‖ = λmax(Q), undeλmax(Q) reprezinta valoarea proprie maxima a lui Q. Observand ca ıncazul nostru λmax(Q) = L = 11, consideram pasul constant αk = 1

11.

Folosind notatia x∗ =

[1−1

]

, din conditiile de ordinul I avem Qx∗ = −q,

Page 80: Metode de Optimizare Numeric˘a

80 Capitolul 3. Metode de ordinul I

de aceea putem reformula iteratia ın urmatorul mod:

xk+1 − x∗ = xk −1

11(Qxk + q)− x∗

= xk −1

11(Qxk −Qx∗)− x∗

=

(

I2 −1

11Q

)

(xk − x∗)

...

=

(

I2 −1

11Q

)k

(x0 − x∗).

De aici se poate deriva usor rata de descrestere a metodei gradient:

‖xk+1 − x∗‖ = ‖(

I2 −1

11Q

)k

(x0 − x∗)‖

≤ ‖(

I2 −1

11Q

)k

‖‖x0 − x∗‖

= ‖I2 −1

11Q‖k‖x0 − x∗‖.

In concluzie, metoda gradient are rata de descrestere liniara (pentrufunctia din enunt) cu factorul ‖I2 − 1

11Q‖.

(iv) Din punctul anterior, avem rata de convergenta a sirului generat demetoda gradient cu pas constant:

‖xk − x∗‖ ≤ ‖I2 −1

11Q‖k‖x0 − x∗‖. (3.6)

Calculand norma Euclidiana (norma 2), avem:∥∥∥∥I2 −

1

11Q

∥∥∥∥=

∥∥∥∥

[111

111

111

111

]∥∥∥∥=

2

11.

Inlocuind ın (3.6) inclusiv valorile pentru x0 si x∗, avem:

‖xk − x∗‖ ≤√2

(2

11

)k

.

Pentru ca sirul xk sa se apropie de punctul de optim x∗ cu acuratetea

10−6, trebuie sa asiguram inegalitatea√2(

211

)k ≤ 10−6. In concluzie,

Page 81: Metode de Optimizare Numeric˘a

3.3. Probleme rezolvate de seminar 81

prin extragerea logaritmului din ambele parti, avem nevoie de un numarde iteratii:

k ≥√2 log 106

log 11− log 2.

Problema 7. Sa se determine extremele functiei f(x1, x2) = x31x

22(a −

x1 − x2). Pentru ce valori ale lui a, functia f are un punct de maximglobal?

Rezolvare. Obtinem punctele de extrem ale functiei rezolvand sistemuldat de conditiile de ordin I, i.e. ∇f(x1, x2) = 0. Mai exact, sistemul areforma:{

3x21x

22(a− x1 − x2)− x3

1x22 = 0

2x31x2(a− x1 − x2)− x3

1x22 = 0

⇒{

x21x

22(3a− 4x1 − 3x2) = 0

x31x2(2a− 2x1 − 3x2) = 0,

de unde putem deduce trei cazuri diferite:{

x1 = 0

x2 oarecaresau

{

x1 oarecare

x2 = 0sau

{

3a− 4x1 − 3x2 = 0

2a− 2x1 − 3x2 = 0.

Componentele Hessianei ∇2f(x1, x2) vor fi:

∂2f

∂x21

= 2x1x22(3a− 6x1 − 3x2),

∂2f

∂x22

= x31(2a− 2x1 − 5x2)

∂2f

∂x1∂x2=

∂2f

∂x2∂x1= x2

1x2(6a− 8x1 − 9x2),

Constatam ca ın primele doua cazuri, x1 = 0 sau x2 = 0, matricea

∇2f(x1, x2) =

[0 00 0

]

este nedefinita. Pentru ultimul caz ınsa, obtinem x1 = a2si x2 = a

3.

Astfel, observam ca:

∇2f(a

2,a

3

)

=

[−a4

9−a3

4−a3

4−a4

12

]

iar parametrul a conditioneaza natura punctului critic (a2, a3). In final,

pentru ca acesta sa fie un punct de maxim este necesar ca∇2f(a2, a3

)� 0,

i.e. a ∈[−3

2, 0).

Page 82: Metode de Optimizare Numeric˘a

82 Capitolul 3. Metode de ordinul I

Problema 8. Fie functia f : Rn → R convexa si diferentiabila. Sa sededuca iteratia metodei gradient cu pas constant α = 1

5prin intermediul

aproximarii Taylor patratice cu Hessiana 5In.

Rezolvare. In orice punct al domeniului acesteia, functia f se poateaproxima cu o forma patratica dupa cum urmeaza:

f(x) ≈ f(x) +∇f(x)T (x− x) +β

2‖x− x‖2,

oricare ar fi x ∈ domf si β ≥ 0. Precizam ca partea dreapta a expresieianterioare se numeste aproximarea patratica a functiei f ın punctul x cuHessiana βIn.Iteratia metodei gradient cu pas constant α se deduce din minimizarea,la fiecare pas k, a aproximarii patratice cu Hessiana 1

αIn:

xk+1 = arg miny∈Rn

f(xk) +∇f(xk)T (y − xk) +

1

2α‖y − xk‖2.

Observand ca se presupune minimizarea unei functii convexe,determinam minimul explicit prin intermediul conditiilor de optimalitatede ordin I:

∇f(xk) +1

α(y∗ − xk) = 0,

de unde ın final deducem:

xk+1 = y∗ = xk − α∇f(xk).

3.4 Probleme propuse

Problema 1. Fie functia f : Rn → R, f(x) = 12

[xTx+ 1

2(aTx)2

]. Sa

se deduca numarul de flopi necesari pentru calcularea urmatoarelorelemente: f(x),∇f(x),∇2f(x) si ∇2f(x)d, unde d ∈ R

n este un vectoroarecare.

Problema 2. Pentru urmatoarele functii determinati toate punctele sta-tionare si verificati daca acestea sunt puncte de minim local prinutilizarea conditiilor suficiente de optimalitate de ordinul II:

(i) f(x) = 3x1 +100x1x2

+ 5x2,

Page 83: Metode de Optimizare Numeric˘a

3.4. Probleme propuse 83

(ii) f = (x1 − 1)2 + x1x2 + (x2 − 1)2,

(iii) f = x1+x2

3+x21+x2

2+x1x2

.

Problema 3. Fiind data functia f(x1, x2) = x21 + 25x2

2 si un punctx0 = [5 1]T , se cere:

(i) Sa se construiasca explicit φ(α) de-a lungul celei mai abrupte pante,i.e. φ(α) = f(x0 − α∇f(x0)).

(ii) Sa se minimizeze φ(α) ın functie de α si sa se obtina un nou punctx1 utilizand iteratia metodei gradient.

Problema 4. Sa se aplice metoda gradientilor conjugati pentruminimizarea neconstransa functiei definite ın problema rezolvata 5. Sase verifice ın doua moduri validitatea punctului de optim obtinut.

Problema 5. Fie o matrice Q ≻ 0. Sa se demonstreze inegalitatea luiKantorovich definita de urmatoarea relatie:

(xTx)2

(xTQx) (xTQ−1x)≥ 4λmax(Q)λmin(Q)

[λmax(Q) + λmin(Q)]2.

Problema 6. Sa se discute valorile parametrului n astfel ıncat functiaf(x1, x2) = xn

1 + xn2 − x1x2n sa aiba puncte de extrem local.

Problema 7. Fie functia f(x) = x41+x1x2 +(1+x2)

2. Definim modelulpatratic:

qf (x; x0) = f(x0) + 〈∇f(x0), x− x0〉+1

2α‖x− x0‖2.

Se observa ca iteratia metodei gradient cu dimensiunea pasulului α estepunctul de minim al formei patratice anterioare, i.e.

x1 = x0 − α∇f(x0)

= arg miny∈R2

f(x0) + 〈∇f(x0), y − x0〉+1

2α‖y − x0‖2.

(i) Pentru x0 = [0 0]T , sa se calculeze ∇f(x0) si ∇2f(x0) si sa sedemonstreze ca ∇2f(x0) nu este pozitiv definita.

(ii) Pentru x0 = [1 −1]T , sa se calculeze prima iteratie a metodei degradient cu pasul α = 1.

Page 84: Metode de Optimizare Numeric˘a

84 Capitolul 3. Metode de ordinul I

Problema 8. Fie functia f(x) = x21+2x2

2+4x1+4x2. Sa se demonstrezeprin inductie ca metoda gradient cu pasul ideal, pornind din x0 = [0 0]T ,genereaza sirul dat de:

xk+1 =

[ 23k

− 2(−1

3

)k − 1

]

.

Sa se deduca punctul de minim din sirul rezultat.

Problema 9. Sa se gaseasca punctele critice ale functiei:

f(x) = 2x31 − 3x2

1 − 6x1x2(x1 − x2 − 1).

Care din aceste puncte sunt minime locale, maxime locale sau niciunadin variante?

Problema 10. Pentru problema de optimizare:

minx∈R2

4x21 − 4x1x2 + 2x2

2,

sa se aplice primele trei iteratii ale metodei gradient cu pasul ales ınmod ideal.

Problema 11. Consideram urmatoarea iteratie tip metoda gradient:

xk+1 = xk − s(∇f(xk) + ek),

unde s este un pas constant, ek este o eroare ce satisface ‖ek‖ ≤ δ pentruorice k, iar f este functia patratica pozitiv definita:

f(x) =1

2(x− x∗)TQ(x− x∗)

Fie q = max{|1 − sm|, |1 − sM |}, unde m si M sunt cea mai mica,respectiv cea mai mare valoare proprie a lui Q. Presupunem ca q < 1.Sa se demonstreze ca pentru orice k avem:

‖xk − x∗‖ ≤ sδ

1− q+ qk‖x0 − x∗‖

Page 85: Metode de Optimizare Numeric˘a

Capitolul 4

Metode de ordinul II

4.1 Preliminarii

In acest capitol consideram, de asemenea, probleme generale deoptimizare neconstransa de forma (3.1). Daca metodele de ordinul Iexpuse ın capitolul anterior se bazeaza pe informatia de gradient afunctiei obiectiv, ın urmatoarele sectiuni analizam algoritmi ce fac uz ınplus si de informatia de ordinul II, si anume matricea Hessiana a functieiobiectiv (vezi [1, 3]). In cele ce urmeaza prezentam pe scurt conditiilede optimalitate necesare si suficiente pentru probleme de optimizare faraconstrangeri (restrictii) (3.1).Conditiile necesare de optimalitate pentru problemele neconstranse pot fienuntate astfel: orice punct de minim local x∗ ∈ domf al problemei (3.1)satisface ∇f(x∗) = 0. De asemenea, conditiile necesare de ordinul II sepot formula dupa cum urmeaza: orice punct de minim local x∗ ∈ domfal problemei (UNLP) satisface:

∇f(x∗) = 0 si ∇2f(x∗) � 0.

Atribuim o importanta majora conditiilor de optimalitate suficiente deordinul II deoarece reprezinta o modalitate de verificare a naturii unuipunct dat: daca x∗ satisface

∇f(x∗) = 0 si ∇2f(x∗) ≻ 0,

atunci x∗ este un punct strict de minim local al problemei (3.1). Intuitiv,daca algoritmii de ordinul I rezolva conditiile necesare de ordinul I cuajutorul informatiei de gradient, putem argumenta ca cei de ordinul II

Page 86: Metode de Optimizare Numeric˘a

86 Capitolul 4. Metode de ordinul II

converg la un punct de minim local ce satisface conditiile de ordinul I siII, utilizand ın plus matricea Hessiana a functiei obiectiv. In continuare,prezentam principalele metode de ordinul II si analizam comportamentulacestora pe exemple numerice.Metoda Newton reprezinta una dintre cele mai vechi metode deoptimizare, dezvoltata initial ın scopul aproximarii iterative a solutiilorecuatiilor neliniare. Aceasta metoda utilizeaza inversa matricei Hessianea functiei obiectiv pentru o convergenta rapida catre un punct deminim local. Principalul dezavantaj al metodei Newton ıl reprezintainstabilitatea provocata de anumiti factori (e.g. initializarea ıntr-oregiune ındepartata de optim, conditionarea matricei Hessiene). Cu toateacestea, ın cazurile bine conditionate cand metoda converge, prezinta oconvergenta mult superioara metodelor de ordinul I. Ideea principala cesta la baza metodei Newton o reprezinta aproximarea functiei obiectiv:pentru functia obiectiv f a problemei (3.1), la iteratia k se construiesteaproximarea patratica f ≈ f (aproximarea Taylor de ordinul II) a functieiobiectiv ın punctul curent xk:

f(x) = f(xk) +∇f(xk)T (x− xk) +

1

2(x− xk)

T∇2f(xk)(x− xk),

care se minimizeaza cu scopul obtinerii iteratiei Newton. Daca ∇2f(xk)este pozitiv definita, atunci functia f(x) este convexa. Pe de alta parte,gradientul functiei f(x) este dat de:

∇f(x) = ∇2f(xk)(x− xk) +∇f(xk),

iar minimul functiei f(x) va fi atins ıntr-un punct x ce satisface ∇f(x) =0. Considerand urmatorul punct xk+1 al sirului ca fiind punctul ceanuleaza gradientul functiei f(x), i.e. ∇f(xk+1) = 0, implicit vom obtinesistemul liniar de ecuatii:

∇2f(xk)(xk+1 − xk) = −∇f(xk), (4.1)

de unde rezulta iteratia metodei Newton standard:

xk+1 = xk −(∇2f(xk)

)−1∇f(xk).

Varianta generala a metodei Newton este data de iteratia:

xk+1 = xk − αk

(∇2f(xk)

)−1∇f(xk),

Page 87: Metode de Optimizare Numeric˘a

4.2. Probleme rezolvate de laborator 87

considerand selectarea pasului αk prin aceleasi moduri ca la metodelede ordinul I: line search (ideal), backtracking sau αk = α constant.Observam ca metoda Newton standard are dimensiunea pasului unitarconstant, i.e. αk = 1.Daca functia f este patratica strict convexa (i.e. ∇2f(x) ≻ 0 pentru oricex), atunci metoda Newton converge ıntr-un singur pas catre punctul deminim. In general, metoda Newton nu converge decat daca initializarease realizeaza ın vecinatatea punctului de minim. Exista doua motivatiipentru acest comportament: (i) daca functia obiectiv f este puternicneliniara atunci f este o aproximare inexacta lui f , de aceea existaposibilitatea ca f(xk+1) > f(xk); (ii) nu avem garantia ca ∇2f(xk) ≻ 0pe parcursul iteratiilor metodei. Mai exact, daca ∇2f(xk) 6� 0 saudet (∇2f(xk)) = 0, atunci este posibil ca f(x) sa nu aiba punct deminim. Implementarea metodei Newton necesita abordarea a doi factoriimportanti:

(i) este necesara implementarea unei reguli de alegere a dimensiuniipasului αk, astfel ıncat sa eliminam posibilitatea de crestere a functieiobiectiv ın punctele departate de optim, fapt datorat imprecizieiaproximarii patratice. In cazul ın care functia obiectiv nu este convexa,ınsa problema de minimizare admite o solutie, atunci inversa Hessianeinu este pozitiv definita ın mod cert decat ın apropierea solutiei;

(ii) daca nu putem asigura ca Hessiana este pozitiv definita ın fiecarepunct al sirului {xk}k≥0, o abordare des ıntalnita presupune ınlocuireaHessianei cu o matrice Hessiana modificata G = ǫIn + ∇2f(x) ≻ 0, cuǫ ≥ 0. Mentionam ca ıntotdeauna va exista un ǫ suficient de mare astfelıncat G ≻ 0. Reamintim ca cel mai simplu algoritm pentru a verifica dacao matrice data este sau nu pozitiv definita este factorizarea Cholesky.

4.2 Probleme rezolvate de laborator

4.2.1 Metoda Newton

Exemplul 18. Sa se implementeze metoda Newton cu cele trei variantede alegere a dimensiunii pasului (ideal, backtracking, pas unitar constant)pentru rezolvarea problemei:

minx∈R2

f(x) (= (x1 − x32)

2 + 3(x1 − x2)4). (4.2)

Page 88: Metode de Optimizare Numeric˘a

88 Capitolul 4. Metode de ordinul II

2 4 6 8 10 12 140

0.05

0.1

0.15

0.2

0.25

|f(xk)−f* |

k2 4 6 8 10 12 14

0

0.5

1

1.5

2

2.5

3

3.5

4

4.5

||∇ f(xk) ||

k

Figura 4.1: Comparatia convergentei metodei Newton utilizand cele treioptiuni pentru selectarea pasilor: ideal (linie continua), backtracking (linie

punctata ıntrerupta) si pas constant unitar (linie ıntrerupta) pentru problema(4.2).

Rezolvare. Utilizam functii auxiliare ce returneaza informatii de ordinulI si II:

[f,g]=f_obj(x)

H=hess_obj(x).

Functia f_obj returneaza valoarea f(x) si ∇f(x) prin variabilele f,g,hess_obj returneaza ∇2f(x) prin variabile H. Pentru selectarea pasuluiideal, construim functia:

f=alpha_search(alpha,x,d)

ce returneaza f(x+αd) ın f . De asemenea, pentru metoda backtrackingconstruim functia:

alpha=alpha_bactrack(x,d).

Conditia de oprire va fi aceeasi ca si ın cazul metodei gradient, anume‖∇f(xk)‖ < ǫ, unde ǫ > 0 reprezinta acuratetea dorita. Secventa de codce implementeaza metoda Newton este prezentata ın cele ce urmeaza:

function xmin=newton_method(x0,eps)

%initializam vectori/matrice pentru memorarea gradientilor,

%a punctelor x generate de algoritm, etc

puncte_gradient=[];

puncte_iteratie=[];

Page 89: Metode de Optimizare Numeric˘a

4.2. Probleme rezolvate de laborator 89

valori_functie=[];

norme_gradienti=[];

%vom utiliza un vector g pentru a stoca gradientul curent

%o matrice H pentru a stoca Hessiana curenta

%calculam directia corespunzatoare in d

x=x0;

[f,g]=f_obj(x);

while(norm(g)>eps)

[f,g]=f_obj(x);

H=hess_obj(x);

d=H\-g;

puncte_gradient=[puncte_gradient g];

puncte_iteratie=[puncte_iteratie x];

valori_functie=[valori_functie; f];

norme_gradienti=[norme_gradienti; norm(g)];

%Aici selectam alpha=1 constant,

%alpha=fminbnd(...) pentru exact line search,

%sau alpha=alpha_bactrack(...)

%pentru metoda de backtracking

alpha=fminbnd(@(alpha) alpha_search(alpha,x,d),0,1);

x=x+alpha*d

end

xmin=x;

%Pentru afisarea grafica a rezultatelor,

%avem urmatoarele instructiuni

t=1:length(valori_functie);

figure(1)

hold on

plot(t,norme_gradienti(t),’k’,’LineWidth’,2);

hold off

figure(2)

hold on

plot(t,valori_functie(t),’k’,’LineWidth’,2);

hold off

%Pentru trasarea liniilor de contur si evolutia

%metodei gradient, avem urmatoarele instructiuni

[x1,x2]=meshgrid([1.2:0.01:2.8],[0.4:0.01:1.6]);

Page 90: Metode de Optimizare Numeric˘a

90 Capitolul 4. Metode de ordinul II

0.4 0.6 0.8 1 1.2 1.4 1.60.6

0.8

1

1.2

1.4

1.6

x1

x2

Figura 4.2: Graficul punctelor obtinute de metoda Newton cu pas ideal siliniile de contur aferente pentru problema (4.2).

z=(x1-2).^4+(x1-2.*x2).^2;

figure(3)

hold on

contour(x1,x2,z,valori_functie)

plot3(puncte_iteratie(1,:),puncte_iteratie(2,:),...

valori_functie,’r’)

scatter3(puncte_iteratie(1,:),puncte_iteratie(2,:),...

valori_functie,’filled’)

hold off

Rezultatele comparative pentru metoda Newton utilizand cele treioptiuni pentru selectarea pasului pot fi observate ın Fig. 4.1. In Fig.4.2 observam punctele obtinute de metoda Newton si curbele de nivelaferente.

4.2.2 Metode cvasi-Newton

Desi metoda Newton prezinta convergenta patratica, ın multe cazuri eaprezinta dezavantaje din punct de vedere al efortului de calcul datoritanecesitatii calculului derivatelor de ordinul I si a rezolvarii sistemului deecuatii (4.1) la fiecare iteratie. Pentru probleme de dimensiuni marice nu pot fi abordate cu metoda Newton au fost dezvoltate metodede tip cvasi-Newton. Aceasta clasa de metode presupun ınlocuireamatricei Hessiene cu una simetrica pentru care operatia de inversare nueste costisitoare. Sirul de matrice rezultat permite evitarea calcululuiderivatelor de ordinul II si simplifica rezolvarea sistemului de ecuatii(4.1) necesar determinarii directiei. Un algoritm de tip cvasi-Newtoneste definit de urmatoarea schema:

Page 91: Metode de Optimizare Numeric˘a

4.2. Probleme rezolvate de laborator 91

Fie punctul initial x0 ∈ domf si matricea initiala H0 ≻ 0. Pentruk ≥ 1, cat timp criteriul de oprire nu este satisfacut, iteram:

1. se calculeaza directia cvasi-Newton dk = −H−1k ∇f(xk);

2. se determina pasul αk (e.g. prin metoda de backtracking);

3. se calculeaza urmatoarea iteratie: xk+1 = xk + αkdk;

4. se calculeaza o noua matrice Hk+1.

Metodele de tip cvasi-Newton difera prin regula de actualizarea matricei Hk. Cea mai des utilizata varianta este metodaBroyden-Fletcher-Goldfarb-Shanno (sau metoda BFGS pe scurt):

Hk = Hk−1 +δkδ

Tk

δTk ∆k− Hk−1∆k∆

TkHk−1

∆TkHk−1∆k

,

unde∆k = xk − xk−1 , δk = ∇f(xk)−∇f(xk−1).

O alta versiune a metodei BFGS considera actualizarea directa a inverseimatricei Hk:

H−1k =

(

I − ∆kδTk

δTk ∆k

)

H−1k−1

(

I − δk∆Tk

δTk ∆k

)

+∆k∆

Tk

δTk ∆k

.

Structura algoritmului cvasi-Newton cu actualizare BFGS este definitade urmatoarea schema:

Selectam un punct initial x0 ∈ Rn, o toleranta ǫ > 0 si o matrice

H0 ∈ Rn×n simetrica si pozitiv definita. Cat timp ‖∇f(xk)‖ > ǫ,

1. calculam directia dk = −H−1k ∇f(xk);

2. calculam pasul αk = argminα>0 f(xk + αdk);

3. calculam noua iteratie xk+1 = xk + αkdk si ∆k = αkdk;

4. evaluam ∇f(xk+1) si calculam δk = ∇f(xk+1)−∇f(xk);

5. calculam Hk+1 prin formula BFGS; k = k + 1.

O observatie importanta este diferenta dintre rata de convergenta localaa metodei Newton si a metodelor de tip cvasi-Newton. Cu toate cametodele cvasi-Newton prezinta o complexitate per iteratie mai mica,rata de convergenta este (super)liniara ın timp ce metoda Newtonprezinta o rata de convergenta patratica locala.

Page 92: Metode de Optimizare Numeric˘a

92 Capitolul 4. Metode de ordinul II

4.3 Probleme rezolvate de seminar

4.3.1 Metoda Newton si metoda BFGS

Problema 1. Fie problema de optimizare

minx∈Rn

f(x)

unde f : Rn → R este patratica, i.e f(x) = 12xTQx+ qTx. Sa se arate ca

pentru f convexa metoda Newton standard converge ıntr-un singur pas.

Rezolvare. Din conditiile de optimalitate de ordinul I, i.e. ∇f(x) = Qx+q = 0 va rezulta ca x∗ = −Q−1q. Retinem ca directia metodei Newtoneste d = −(∇f(x))−1∇f(x), care in cazul patratic va fi:

d = −Q−1(Qx+ q) = −x−Q−1q.

Astfel, pentru un punct initial x0 si un pas α0 = 1, vom avea:

x1 = x0 + α0d0 = x0 − x0 −Q−1q = −Q−1q.

Din moment ce f este convexa, va rezulta automat ca ∇2f(x0) = Q � 0,iar drept urmare x1 = x∗.

Problema 2. Fie functia f : Rn → R convexa si diferentiabila de

doua ori. Sa se determine expresia iteratiei metodei Newton standardprin intermediul aproximarii Taylor de ordinul II. Este posibila si o altamodalitate de a obtine aceasta iteratie?

Rezolvare. Deoarece functia f este diferentiabila de doua ori, ın oricepunct al domeniului acesteia x ∈ domf , se poate aproxima cu o formapatratica:

f(x) ≈ f(x) +∇f(x)T (x− x) +1

2(x− x)T∇2f(x)(x− x).

Precizam ca partea dreapta a expresiei anterioare se numeste aproximareaTaylor de ordinul II ın punctul x a functiei f .Fie punctul curent xk al metodei Newton, urmatoarea iteratie xk+1 sedetermina din minimizarea neconstransa a aproximarii de ordinul II ınpunctul xk a functiei obiectiv:

xk+1 = arg miny∈Rn

f(xk) +∇f(xk)T (y − xk) +

1

2(y − xk)

T∇2f(xk)(y − xk).

Page 93: Metode de Optimizare Numeric˘a

4.3. Probleme rezolvate de seminar 93

Deoarece functia f este convexa, matricea ∇2f(xk) este pozitivsemi-definita, deci aproximarea patratica este convexa. Determinampunctul de minim al acestei aproximari din conditiile de optimalitatede ordinul I:

∇2f(xk)(y∗ − xk) +∇f(xk) = 0,

de unde rezulta iteratia:

xk+1 = y∗ = xk −[∇2f(xk)

]−1∇f(xk).

O modalitate alternativa de a deduce iteratia Newton este descrisa deliniarizarea expresiei gradientului functiei obiectiv ın punctul curent xk:

∇f(x) ≈ ∇f(x) +∇2f(x)(y − x),

unde consideram ∇f(x) si ∇2f(x) cunoscute. Pentru a obtine iteratiaNewton, la momentul k + 1, egalam cu 0 aproximarea liniara agradientului, ın punctul xk:

∇f(xk) +∇2f(xk)(y∗ − xk) = 0,

de unde rezulta:

xk+1 = y∗ = xk −[∇2f(xk)

]−1∇f(xk).

Mentionam ın plus ca iteratia metodei Newton generale

xk+1 = xk − αk

[∇2f(xk)

]−1∇f(xk)

se obtine din minimizarea unei aproximari Taylor patratice de forma:

xk+1 = arg miny∈Rn

f(xk)+∇f(xk)T (y−xk)+

1

2αk(y−xk)

T∇2f(xk)(y−xk).

De asemenea, iteratia metodei gradient xk+1 = xk − αk∇f(xk) se poateobtine dintr-o aproximare patratica de forma:

xk+1 = arg miny∈Rn

f(xk) +∇f(xk)T (y − xk) +

1

2αk‖y − xk‖2.

Page 94: Metode de Optimizare Numeric˘a

94 Capitolul 4. Metode de ordinul II

Problema 3. Fie problema de optimizare neconstransa:

minx∈R2

f(x)

(

=1

2x21 +

5

2x22 + 2x1x2 + 2x1 + 4x2

)

.

(i) Sa se scrie problema ca o problema QP (Quadratic Programming). Sase arate ca problema este convexa.(ii) Sa se determine punctul de minim x∗ al problemei.(iii) Pornind din punctul x0 = [1 −1]T , sa se determine pasul optim α0

corespunzator metodei gradient si sa se implementeze prima iteratie aacestei metode cu pasul obtinut.(iv) Sa se implementeze prima iteratie a metodei Newton standard pentruproblema precedenta. Sa se compare punctul x1 al metodei gradient cucel al metodei Newton. Ce se observa?

Rezolvare. (i) Prin rescrierea sub forma matriceala a functiei obiectivajungem la forma QP:

f(x) =1

2xT

[1 22 5

]

x+[2 4

]x.

Pentru a determina convexitatea functiei, verficam daca matriceaHessiana:

∇2f(x) = Q =

[1 22 5

]

este pozitiv semidefinita. Observam ca minorii principali sunt strictpozitivi, rezultand ca Hessiana este pozitiv definita.

(ii) Deoarece functia obiectiv este strict convexa, punctul de minimneconstrans este dat de conditiile de optimalitate de ordinul I:

∇f(x∗) = Qx∗ + q = 0,

unde q =

[24

]

si de unde rezulta solutia unica x∗ =

[−20

]

.

(iii) Reamintim procedura de selectare a lungimii ideale a pasului:

α0 = argminα≥0

φ(α) = argminα≥0

f(x0 − α∇f(x0)). (4.3)

Page 95: Metode de Optimizare Numeric˘a

4.3. Probleme rezolvate de seminar 95

Obtinand directia de gradient d0 = −∇f(x0) = Qx0+q =

[−1−1

]

, evaluam

functia obiectiv:

φ(α)=f(x0−α∇f(x0))=1

2

[(1− α)2 + 5(1 + α)2

]− 2(1− α2)− 6α− 2

= 5α2 − 2α− 1.

Observam ca punctul de minim global neconstrans al functiei φ(α) esteα∗ = 1

5. Deoarece problema (4.3) este constransa, iar punctul de

minim neconstrans α∗ se afla ın multimea fezabila {α ∈ R : α ≥ 0},concluzionam ca lungimea ideala a pasului este α0 =

15. Prima iteratie a

metodei gradient cu pas ideal este data de:

xG1 = x0 − α0∇f(x0) =

[45

−65

]

.

(iv) Metoda Newton standard presupune urmatoarea iteratie:

xk+1 = xk −[∇2f(xk)

]−1∇f(xk).

In cazul nostru, functia obiectiv este patratica (implicit de doua oridiferentiabila) cu Hessiana:

∇2f(x) =

[1 22 5

]

.

Calculam inversa matricei Hessiene:

[∇2f(x)

]−1=

[5 −2−2 1

]

,

iar primul pas al metodei Newton standard este dat de:

xN1 = x0 −

[∇2f(x0)

]−1∇f(x0) =

[1−1

]

−[5 −2−2 1

] [11

]

=

[−20

]

= x∗.

In concluzie, metoda Newton converge pentru aceasta problema ıntr-unsingur pas catre punctul de minim.

Problema 4. Fie functia f : R2 → R, definita de:

f(x1, x2) =x41

4+

x42

4− x3

1

3− x3

2

3.

Page 96: Metode de Optimizare Numeric˘a

96 Capitolul 4. Metode de ordinul II

(i) Sa se determine un punct de minim local al problemei:

minx∈R2

f(x)

(ii) Sa se calculeze prima iteratie a metodei Newton alegand punctulinitial x0 = [−1 1]T si considerand cazurile ın care pasul α0 = 1 siα0 este selectat ideal.

Rezolvare. (i) Calculam mai ıntai expresia gradientului si Hessianei:

∇f(x) =

[x31 − x2

1

x32 − x2

2

]

, ∇2f(x) =

[3x2

1 − 2x1 00 3x2

2 − 2x2

]

.

Din conditia ∇f(x∗) = 0 deducem ca componentele lui x∗ satisfacconditia x∗

1, x∗2 ∈ {0, 1}, iar pentru x∗ = [1 1]T avem:

∇2f(1, 1) = I2 ≻ 0,

deci x∗ = [1 1]T este punct de minim strict local.(ii) Pentru punctul initial x0 = [−1 1]T avem:

∇f(x0) =

[−20

]

, ∇2f(x0) =

[5 00 1

][∇2f(x0)

]−1=

[15

00 1

]

,

de unde rezulta directia Newton:

d0 = −[∇2f(x0)]−1∇f(x0) =

[d01d02

]

=

[25

0

]

.

Acum, pentru determinarea pasului ideal, trebuie sa calculam φ(α) =f(x0 + αd0) pentru functia noastra obiectiv:

φ(α) =1

4(x1 + αd01)

4 +1

4(x2 + αd02)

4 − 1

3(x1 + αd01)

3 − 1

3(x2 + αd02)

3.

=1

4(x1 +

5)4 − 1

3(x1 +

5)3 +

x42

4− x3

2

3.

Rezolvam ecuatia φ′(α) = 0, de unde obtinem α∗ = 5. Astfel, pentrupasul α0 = 1, respectiv α0 = 5 iteratiile sunt date de:

x1 =

[35

1

]

, x1 =

[11

]

= x∗.

Evaluand functia obiectiv ın cele doua puncte f(3/5, 1) = 0.0211,f(1, 1) = −0.1667, constatam o descrestere mai buna cu dimensiuneaideala a pasului.

Page 97: Metode de Optimizare Numeric˘a

4.3. Probleme rezolvate de seminar 97

Problema 5. Daca efectuam o actualizare de rang 1 asupra unei matricepatrate si nesingulare A si notam rezultatul cu A, i.e.:

A = A+ uvT ,

unde a, b ∈ Rn, atunci formula Sherman-Morrison-Woodbury are loc:

A−1 = A−1 − A−1uvTA−1

1 + vTA−1u. (4.4)

Rezolvare. Pentru a verifica aceasta formula, conform definitiei matriceiinverse, avem egalitatea A−1A = In. Astfel, simplu ınmultim pe A cuA−1:

A−1A =

(

A−1 − A−1uvTA−1

1 + vTA−1u

)

(A+ uvT )

= In + A−1uvT − A−1uvT + A−1u(vTA−1u)vT

1 + vTA−1u

= In + A−1uvT − A−1uvT + (vTA−1u)A−1uvT

1 + vTA−1u

= In + A−1uvT − 1 + vTA−1u

1 + vTA−1uA−1uvT = In.

Problema 6. Fie functia f : R → R, definita de f(x) = (x−1)2/(x2+1).Sa se implementeze metoda Newton pornind din punctele initiale x0 ={−2, 0,−1}. Ce se observa?

Rezolvare. Calculam mai ıntai gradientul functiei si Hessiana:

∇f(x) =2(x2 − 1)

(x2 + 1)2, ∇2f(x) =

4x(3− x2)

(x2 + 1)3.

Din conditiile de optimalitate va rezulta desigur ca x∗ = 1 este punctde minim local strict. Utilizand expresiile obtinute ale gradientului siHessianei, deducem expresia directiei Newton:

d(x) = −[∇2(f(x)]−1∇f(x) = − x4 − 1

2x(3 − x2).

Astfel, pentru punctele initiale avem:

d(−2) =−15

4, d(−1) = 0,

Page 98: Metode de Optimizare Numeric˘a

98 Capitolul 4. Metode de ordinul II

iar ın x0 = 0 avem ∇2f(0) = 0 si directia Newton ın acest caz nu exista.Observam ca pentru x0 = −1 metoda Newton va ramane ın acelasi punct.Pe de alta parte, pentru x0 = 0 Hessiana nu este inversabila, iar metodaNewton standard nu poate fi aplicata. Pentru x0 = −2 avem x1 =−2−15/4 = −23/4, iar din expresia directiei deducem ca metoda diverge.Observam ca pentru un punct initial suficient de aproape de punctul deoptim, e.g. x0 = 1.3, metoda Newton converge.

Problema 7. Fie functia f : R2 → R, definita de f(x) = x41+x1x2+(1+

x2)2. Sa se descrie performantele metodei Newton aplicata problemei:

minx∈R2

f(x),

pornind din punctul initial x0 = [0 0]T .

Rezolvare. Calculam expresiile gradientului si Hessianei:

∇f(x) =

[4x3

1 + x2

x1 + 2(x2 + 1)

]

, ∇2f(x) =

[12x2

1 11 2

]

si evaluand aceste expresii ın x0 avem:

∇f(x0) =

[02

]

, ∇2f(x0) =

[0 11 2

]

, (∇2f(x0))−1 =

[−2 11 0

]

.

Astfel, directia Newton pentru punctul x0 va fi:

d0 = −(∇2f(x0))−1∇f(x0) =

[−20

]

,

iar ∇f(x0)Td0 = 0. Observam ca aceeasi egalitate este valabila de

asemenea pentru −d0. Astfel, d0 nu este directie de descrestere. Inplus, observam ca f(x0) = 1, iar pentru x1 = x0 + d0 = [−2 0]T , vomavea f(x1) = 17, iar pentru x1 = x0 − d0 vom avea tot f(x1) = 17.

Problema 8. O problema fundamentala din domeniul prelucrariisemnalelor o reprezinta recuperarea unui semnal x dintr-unul corupt y(fiind semnalul adevarat x combinat cu zgomot). De cele mai multe ori,problema este abordata prin aproximarea cat mai fidela a semnaluluiadevarat prin intermediul rezolvarii urmatoarei probleme de optimizare:

minx∈Rn

‖x− y‖2 + µn−1∑

i=1

|xi+1 − xi|,

Page 99: Metode de Optimizare Numeric˘a

4.3. Probleme rezolvate de seminar 99

Observam ca desi primul termen ce denota distanta Euclidiana dintresemnalul adevarat x si cel corupt y este suficient pentru a gasi oaproximare relativ fidela, se adauga un termen de regularizare descris desuma diferentelor dintre elementele consecutive ale semnalului x. Acesttermen de regularizare are scopul de a asigura gasirea unei aproximari catmai netede, fara variatii bruste ale componentelor. Observam ca functiaobiectiv a problemei anterioare este nediferentiabila.

(i) Sa se determine o aproximare a problemei de optimizare precedente,cu functia obiectiv continuu diferentiabila;

(ii) Sa se calculeze forma explicita a gradientului si Hessianeicorespunzatoare noii functii obiectiv de la punctul a), si sa se apliceun pas al metodei Newton.

Rezolvare. (i) O aproximare neteda (smooth) a problemei din enunt estedata de:

minx∈Rn

f(x)

(

= ‖x− y‖22 + µ

n−1∑

i=1

(√

ǫ2 + (xi+1 − xi)2 − ǫ))

,

unde ǫ > 0 este suficient de mic.(ii) Determinam forma explicita a primului pas din metoda Newton.Reamintim directia Newton: dN = −[∇2f(x)]−1∇f(x). Notand φǫ(x) =

µn−1∑

i=1

(√

ǫ2 + (xi+1 − xi)2 − ǫ)

, se observa ca gradientul functiei obiectiv

a problemei de la punctul a) este:

∇f(x) = 2(x− y) + µ∇φǫ(x).

Mai departe, Hessiana aceleiasi functii este data de: ∇2f(x) = 2In +µ∇2φǫ(x). In concluzie, dificultatea se reduce la determinarea formeiexplicite a gradientului si matricei Hessiane corespunzatoare functiei φǫ.

Pentru o expunere simplificata, notam g(u) = µn−1∑

i=1

(√

ǫ2 + u2i − ǫ

)

, si

observam ca φǫ(x) = g(Ax), unde A ∈ Rn−1×n data de:

A =

−1 1 0 0 0 00 −1 1 0 0 0...

......

......

...0 0 0 0 −1 1

.

Page 100: Metode de Optimizare Numeric˘a

100 Capitolul 4. Metode de ordinul II

Precizam ca sunt suficiente expresiile derivatelor functiei g pentru a ledetermina pe cele ale functiei φǫ. Astfel, determinam forma explicita acomponentelor acestora:

∇ig(u) =ui

ǫ2 + u2i

∇2iig(u) =

ǫ2√

ǫ2 + u2i

.

Deoarece functia g este separabila, Hessiana acesteia este matricediagonala. In final avem:

∇f(x) = 2(x− y) + µAT∇g(Ax) ∇2f(x) = 2In + µAT∇2g(Ax)A

si observam ca matricea ∇2f(x) este superior bidiagonala. DirectiaNewton este data de solutia sistemului superior bidiagonal:

∇2f(x)dN = −∇f(x),

ce se rezolva ın O(n) operatii.

4.4 Probleme propuse

Problema 1. Pentru urmatoarele doua probleme, sa se determinepunctele de optim si sa se implementeze primii trei pasi ai metodeiNewton standard, i.e. cu pas constant α = 1:

(i) minx∈R

ln(ex + e−x), pornind din x0 = 1 si x0 = 1.1

(ii) minx∈R

− ln x+ x, pornind din x0 = 3

Ce se observa dupa primii trei pasi?

Problema 2. Fie urmatoarea problema de optimizare:

minx∈R2

x21 + 100x2

2

Sa se implementeze metoda BFGS cu pas optim la fiecare iteratie,pornind din punctul initial x0 = [1 1]T si matricea initiala H0 = I2. Incati pasi converge metoda la punctul de optim?

Page 101: Metode de Optimizare Numeric˘a

4.4. Probleme propuse 101

Problema 3. Sa se implementeze primii doi pasi ai metodei DFP(Davidon-Fletcher-Powell) pentru urmatoarea problema:

minx∈R2

x21 + 3x2

2 + e1+x21+x2

2

pornind din punctul initial x = [1 1]T si matricea initiala H0 = I2.

Problema 4. Pentru problema din exercitiul 2 din cadrul problemelorpropuse, sa se implementeze primele trei iteratii ale algoritmuluiFletcher-Reeves de gradienti conjugati pornind din acelasi punct initialsi sa se compare iteratiile acesteia cu cele ale metodei BFGS.

Problema 5. Fie o matrice B ∈ Rn×n simetrica si doi vectori s, y ∈ R

n.Fie B0 = B si sirul de matrice:

Bk = Bk +(y − Bks)s

T

sT s, Bk+1 =

Bk + BTk

2,

pentru orice k > 0. Aratati ca sirul Bk converge la o matrice B+ definitaastfel:

B+ = B +(y − Bs)sT + s(y − Bs)T

sT s− (y −Bs)T s

(sT s)2ssT .

Problema 6. Fie functia f convexa ca Hessiana ∇2f(x) bloc diagonala.Cum putem exploata aceasta structura ın calcularea directiei Newton?Ce semnificatie are pentru f?

Problema 7. Pentru urmatoarele functii obiectiv, sa se determineexpresia lungimii unui pas selectat ideal α∗ = min

α≥0f(x+ αd):

(i) f(x) = −m∑

i=1

log(b− aTi x). (ii) f(x) = log

(m∑

i=1

e(aTi x+bi)

)

.

Problema 8. Descrieti o metoda eficienta de calcul al directiei Newtoncorespunzatoare functiei:

f(x) = −m∑

i=1

log(−xTQix− bTi x− ci

),

unde m ≪ n, iar matricele Qi ∈ Rn×n, Qi ≻ 0 au dimensiuni mari si

structura rara.

Page 102: Metode de Optimizare Numeric˘a

102 Capitolul 4. Metode de ordinul II

Problema 9. Fie vectorul y ∈ Rn vector cunoscut, functia f : Rn → R

este definita de:

f(x) =

n∑

i=1

g(xi − yi) + λ

n−1∑

i=1

(xi+1 − xi)2

unde g : R → R este o functie convexa si de doua ori diferentiabila,λ > 0. Sa se determine expresia Hessianei ∇2f(x). Care este numarulde operatii necesar pentru calcularea directiei Newton ın orice punct x?

Problema 10. Consideram urmatoarea problema de optimizareneconstransa:

minx∈Rn

f(x) (=

p∑

i=1

gi(Aix− bi))

unde Ai ∈ Rmi×n, bi ∈ R

mi , mi ≪ n, iar gi : Rmi → R functii convexe

si de doua ori diferentiabile. Stiind ca Ai au structura rara, calculatiexpresia Hessianei si a gradientului lui f si discutati o modalitateeficienta de implementare a metodei Newton pentru aceasta problema.

Problema 11. Fie functia f(x) = 20 + x21 − 10cos(2πx1) + x2

2 −10cos(2πx2). Sa se implementeze metoda cvasi-Newton (BFGS) cualegerea ideala a dimensiunii pasului pentru rezolvarea problemei:

minx∈R2

f(x). (4.5)

Sa se rezolve problema (4.5) prin apelarea functiei fminunc si sa secompare rezultatele obtinute.

Page 103: Metode de Optimizare Numeric˘a

Capitolul 5

Probleme de optimizare

constransa

5.1 Preliminarii

Acest capitol delimiteaza ınceputul unei importante parti din teoriaoptimizarii, si anume analiza problemelor de optimizare cu restrictii. Oproblema de optimizare constransa (cu restrictii) ın forma generala estedata prin urmatoarea expresie:

minx∈Rn

f(x) (5.1)

s.l.: g(x) ≤ 0, h(x) = 0,

unde functia obiectiv f : Rn → R si functiile vectoriale ce definesc

constrangerile g : Rn → Rm, h : Rn → R

p, se presupun a fi de douaori diferentiabile.Introducem, mai departe, o serie de notiuni caracteristice problemelor deoptimizare constranse. Lagrangianul corespunzator problemei (5.1) este:

L(x, λ, µ) = f(x) + λTg(x) + µTh(x),

unde λ ∈ Rm, µ ∈ R

p reprezinta multiplicatorii Lagrange asociaticonstrangerilor de inegalitate, respectiv de egalitate. Conditiile necesarede ordin I pentru probleme constranse de tip (5.1) se formuleaza astfel:daca x∗ este un punct de minim local al problemei (5.1), atunci exista

Page 104: Metode de Optimizare Numeric˘a

104 Capitolul 5. Probleme de optimizare constransa

λ∗ ∈ Rm si µ∗ ∈ R

p astfel ıncat:

∇f(x∗) +m∑

i=1

λ∗i∇gi(x

∗) +

p∑

i=1

µ∗i∇hi(x

∗) = 0

g(x∗) ≤ 0, h(x∗) = 0

λ∗i gi(x

∗) = 0

λ∗ ≥ 0.

Aceste relatii formeaza sistemul KKT sau conditiile de optimalitateKarush-Kuhn-Tucker. In cazul nedegenerat, conditiile suficiente deoptimalitate se enunta dupa cum urmeaza: daca x∗ satisface sistemulKKT iar Hessiana Lagrangianului data de expresia:

∇2xL(x

∗, λ, µ) = ∇2f(x∗) +

m∑

i=1

λi∇2gi(x∗) +

p∑

i=1

µi∇2hi(x∗)

este pozitiv definita pe subspatiul definit de:

M ={d : ∇h(x∗)d = 0,∇gj(x

∗)Td = 0 ∀j ∈ A(x∗)}

(5.2)

unde A(x∗) este multimea constrangerilor active, atunci x∗ este un punctde minim strict local.

5.2 Probleme rezolvate de laborator

In acest subcapitol vom utiliza mediul de programare Matlab pentrurezolvarea unui numar de exemple de probleme de optimizare constransa.

5.2.1 Formularea unei probleme de optimizare ın

forma standard

Exemplul 19. Un avion cargo are trei compartimente pentru transportmarfuri, pe care le notam C1, C2 si C3. Presupunem ca toate cele treicompartimente sunt limitate din punct de vedere al greutatii si volumuluiadmis asa cum se specifica ın urmatorul tabel:

Compartiment Limita greutate [t] Limita volum [m3]C1 10 6.8C2 16 8.6C3 8 5.3

Page 105: Metode de Optimizare Numeric˘a

5.2. Probleme rezolvate de laborator 105

Pentru a mentine echilibrul avionului, ıncarcatura fiecarui compartimenttrebuie sa respecte un raport prestabilit cu limita de greutatecorespunzatoare. Marfurile transportate sunt descrise, ın plus, si deprofitul adus transportatorului. In cele ce urmeaza, precizam pentrufiecare tip de marfa, notat de la M1 la M4, datele corespunzatoare:

Tip marfa Total disponibil [t] Volum [m3/t] Profit [$/t]M1 18 0.48 3100M2 15 0.65 3800M3 23 0.58 3500M4 12 0.39 2850

Tinand cont ca avionul ne permite sa stocam mai multe tipuri demarfa ıntr-un singur compartiment, se doreste determinarea cantitatilorcorespunzatoare fiecarui tip de marfa astfel ıncat profitul pentru zbor safie maxim.(i) Sa se formuleze aceasta problema ca una de programare liniara.(ii) Sa se rezolve problema liniara rezultata la punctul (i) cu ajutorulmediului Matlab utilizand functia linprog si limbajul CVX.

Rezolvare. Evident, vectorul variabilelor de decizie pentru aceastaproblema este dat de cantitatile de marfa ce trebuie alocate diferitelorcompartimente. Din moment ce putem stoca mai multe tipuri de marfaıntr-un singur compartiment, avem posibilitatea de a stoca ıntre 1 si4 tipuri de marfa ın fiecare compartiment. Astfel, avem urmatoareavariabila de decizie:

x = [x11 x12 x13 x14 . . . x34 x44]T = {xij}1≤i≤3,1≤j≤4,

unde x ∈ R12, indicele i = 1, . . . , 3 reprezinta numarul compartimentului,

iar j = 1, . . . , 4 reprezinta tipul de marfa. Functia obiectiv este liniaraf(x) = cTx definita:

c = [3100 3800 3500 2850 3100 3800 3500 2850 . . . ]T .

Pe de alta parte, formularea constrangerilor ın forma standard presupune:

- constrangerea cantitatii disponibile per tip de marfa (nu putem livramai mult decat este disponibil). Constrangerile ın acest caz au forma:x11 + x21 + x31 ≤ 18 pentru primul tip de marfa, x12 + x22 + x32 ≤ 15pentru al doilea tip s.a.m.d;- limitarea masei totale dintr-un compartiment la o cantitate maxima

Page 106: Metode de Optimizare Numeric˘a

106 Capitolul 5. Probleme de optimizare constransa

admisa, i.e. x11 + x12 + x13 + x14 ≤ 10, x21 + x22 + x23 + x24 ≤ 16 etc;- volumul ıncarcaturilor este limitat la o anumita valoare ın fiecarecompartiment, i.e. 0.48x11+0.65x12+0.58x13 +0.39x14 ≤ 6.8, 0.48x21+0.65x22 + 0.58x23 + 0.39x24 ≤ 8.6 etc;- prin definitia de pozitivitate a masei restrictionam cantitatile din fiecaremarfa la valori nenegative: x ≥ 0;- sectiunea din enunt: ”ıncarcaturile din compartimente trebuie saaiba acelasi raport cu limitele lor de greutate” furnizeaza o serie deconstrangeri de egalitate:

1

10(x11 + x12 + x13 + x14) =

1

16(x21 + x22 + x23 + x24)

1

16(x21 + x22 + x23 + x24) =

1

8(x31 + x32 + x33 + x34) .

In final, formularea de programare liniara este definita astfel:

maxx∈R12

cTx

s.l.: Ax = b, Cx ≤ d,

unde parametrii A ∈ R2×12 si b ∈ R

2 cuprind constrangerile de egalitate,iar cele de inegalitate sunt cuprinse ın Cx ≤ d unde C ∈ R

22×12 si b ∈ R22.

(ii) Pentru simplitate, furnizam doar codul ın limbaj CVX pentrurezolvarea acestei probleme, deoarece sintaxa rezolvarii cu functia Matlablinprog este evidenta din apelarea comenzii helplinprog :

cvx_begin

variable x(12,1)

maximize ((c’)*x)

subject to

A*x=b

C*x<=d

x>=0

cvx_end

5.2.2 Calcularea proiectiei ortogonale a unui punct

pe o multime convexa

Exemplul 20. Pentru fiecare din urmatoarele multimi convexe, sa secalculeze proiectia ortogonala a punctului asociat utilizand CVX:

Page 107: Metode de Optimizare Numeric˘a

5.2. Probleme rezolvate de laborator 107

(i) B = {x ∈ R2 : ‖x‖ ≤ 2}, x0 =

[31

]

;

(ii) E = {x ∈ R2 : (x − c)TP−1(x − c) ≤ 1}, unde P =

[25 00 16

]

, c =[11

]

, x0 =

[−4−4

]

;

(iii) T = {x ∈ R3 : Ax ≤ b}, unde A =

[−I31T3

]

, b =

0001

, x0 =

1.61.61.5

.

Sa se figureze grafic multimile, punctele asociate si proiectiile ortogonaleale acestor puncte.

Rezolvare. In general, calculul proiectiei ortogonale unui punct a0 peo multime X se realizeaza prin rezolvarea urmatoarei probleme deoptimizare:

[a0](In,X) = argminx∈X

‖x− a0‖2. (5.3)

(i) Secventa de cod CVX ce calculeaza proiectia [x0](In,B) unui punct x0

pe multimea B ⊂ R2 (vezi Fig. 5.1) este data ın cele ce urmeaza:

x0=[3;1];

cvx_begin

variable xB(2);

minimize (xB’*xB-2*xB’*x0+x0’*x0)

subject to

norm(xB)<=2;

cvx_end

Observand ca multimea B este de tip bila cu raza 2 si centrul ın origine,reprezentarea grafica este realizata prin:

%Mai intai gasim mai multe puncte din bila:

[x1,x2]=meshgrid(-2:0.1:2,-2:0.1:2);

z=sqrt(x1.^2+x2.^2);

d=(z<=2); ball1=[]; ball2=[];

for i=1:size(d,1)

for j=1:size(d,2);

if(d(i,j)==1)

Page 108: Metode de Optimizare Numeric˘a

108 Capitolul 5. Probleme de optimizare constransa

ball1=[ball1; x1(i,j)];

ball2=[ball2; x2(i,j)];

end

end

end

Mai departe, trasam grafic toate elementele obtinute:

figure(1)

hold on

axis([-4 4 -4 4]); scatter(ball1,ball2,’+’);

plot(x0(1),x0(2),’ro’,’LineWidth’,2);

plot(xB(1),xB(2),’r+’,’LineWidth’,2);

legend(’Bila B’,’x_0’,’x_B’);hold off;

−4 −3 −2 −1 0 1 2 3 4−4

−3

−2

−1

0

1

2

3

4

Bila Bx

0

xB

Figura 5.1: Proiectia unui punct exterior pe multime tip bila.

(ii) Observam ca multimea E ⊂ R2 este un elipsoid definit de matricea P

si centrat ın punctul (1, 1). Codul CVX pentru determinarea proiectieipunctului x0 pe multimea E (vezi Fig. 5.2), este redat de urmatoareasecventa:

Pinv=inv([25 0; 0 16]);

x0=[-4;-4]; xc=[1;1];

cvx_begin

variable xE(2);

minimize(xE’*xE-2*xE’*x0+x0’*x0)

subject to

(xE-xc)’*Pinv*(xE-xc)<=1;

cvx_end

Trasarea grafica a multimii E este realizata de secventa de cod:

Page 109: Metode de Optimizare Numeric˘a

5.2. Probleme rezolvate de laborator 109

[x1,x2]=meshgrid(-6:0.1:6,-6:0.1:6);

y=Pinv*xc; const=xc’*Pinv*xc;

z=x1.^2*Pinv(1,1)+x2.^2*Pinv(2,2)+2.*x1.*x2*Pinv(1,2)-...

2*(x1*y(1)+x2*y(2))+const;

d=(z<=1); ellipse1=[]; ellipse2=[];

for i=1:size(d,1)

for j=1:size(d,2);

if(d(i,j)==1)

ellipse1=[ellipse1; x1(i,j)];

ellipse2=[ellipse2; x2(i,j)];

end

end

end

figure(1)

hold on

axis([-7 7 -7 7]); scatter(ellipse1,ellipse2,’+’);

plot(x0(1),x0(2),’ro’,’LineWidth’,2);

plot(xE(1),xE(2),’r+’,’LineWidth’,2);

legend(’Elipsoidul E’,’x_0’,’x_E’); hold off;

−6 −4 −2 0 2 4 6

−6

−4

−2

0

2

4

6

Elipsoidul Ex

0

xE

Figura 5.2: Proiectia unui punct exterior pe multime tip elipsoid.

(iii) Calcularea proiectiei unui punct x0 pe multimea politopica T (veziFig. 5.3) utilizand CVX se realizeaza ın mod asemanator:

A=[-eye(3); ones(1,3)]; b=[zeros(3,1);1]; x0=[1;1;1];

cvx_begin

variable xT(3,1);

minimize (xT’*xT-2*xT’*x0+x0’*x0)

subject to

A*xT<=b;

Page 110: Metode de Optimizare Numeric˘a

110 Capitolul 5. Probleme de optimizare constransa

cvx_end

Figura 5.3: Proiectia unui punct exterior pe multime tip politop.

Pentru a facilita reprezentarea grafica, observam ca multimea T poatefi reprezentata ca acoperirea convexa a varfurilor (vertex) sale. Astfel,obtinandu-se proiectia xT a punctului x0 pe multimea T , reprezentareagrafica se realizeaza prin urmatoarea secventa de cod:

x=[1; 0; 0; 0]; y=[0 ; 1; 0 ; 0]; z=[0 ; 0; 1; 0];

figure(1)

hold on

tetramesh(tesselation,[x(:) y(:) z(:)]);

x0hp = plot3(x0(1),x0(2),x0(3), ’ro’);

set(x0hp, ’markersize’, 10);

xThp = plot3(xT(1),xT(2),xT(3), ’r+’);

plot3(points(1,:),points(2,:),points(3,:), ’r--’);

set(xThp, ’markersize’, 10); cameramenu; grid;

hold off

Page 111: Metode de Optimizare Numeric˘a

5.2. Probleme rezolvate de laborator 111

5.2.3 Metoda Gauss-Newton

Exemplul 21. Consideram urmatoarea problema de optimizareconstransa:

maxx∈Rn

−n∑

i=1

xi ln(xi)

s.l.:n∑

i=1

xi = 1,n∑

i=1

xici = m, i = 1, 2, . . . , n,

unde ci si m sunt valori cunoscute.Sistemul KKT al acestei probleme este definit de un sistem neliniar deecuatii F (y) = 0, unde vectorul y este compus din variabila primala x simultiplicatorii Lagrange µ asociati constrangerilor de egalitate, i.e.

y =

[xµ

]

Rezolvarea sistemului KKT poate fi abordata prin doua metode:

(i) metoda Gauss-Newton;

(ii) metoda Newton clasica.

Sa se rezolve problema anterioara ın Matlab prin aplicarea celor douametode enumerate.

Rezolvare. Metoda Gauss-Newton este o metoda destinata rezolvarii deprobleme CMMP neliniare, i.e. de exemplu:

miny∈Rn

1

2‖F (y)‖2, (5.4)

a carei solutie rezolva sistemul de ecuatii F (y) = 0 ın sens CMMP.Procedura urmata de metoda Gauss-Newton presupune ca ıntr-un punctdat yk la iteratia k, F (y) este liniarizat:

F (y) ≈ F (yk) + J(yk)(y − yk),

unde J(y) este Jacobianul lui F (y). La urmatoarea iteratie, yk+1, poatefi determinata ca o solutie a problemei liniare aproximative:

yk+1 = arg miny∈Rn

1

2‖F (yk) + J(yk)(y − yk)‖2.

Page 112: Metode de Optimizare Numeric˘a

112 Capitolul 5. Probleme de optimizare constransa

Pentru simplitatea expunerii, renotam J(yk) cu Jk, iar ın loc de F (yk)folosim Fk. Daca presupunem ca JT

k Jk este inversabila, atunci rezultaiteratia metodei Gauss-Newton definita de:

yk+1 = arg miny∈Rn

1

2‖Fk + Jk(y − yk)‖2

= yk + arg mind∈Rn

1

2‖Fk + Jkd‖2

= yk − (JTk Jk)

−1JTk Fk.

Astfel, ın cazul particular ın care x ∈ R3, punctul initial este dat de

x0 = [19

37

310]T , m = 6 si c = [3 6 9]T , scriem functia Matlab auxiliara cu

sintaxa [F,J]=Fgauss(y,c,m) ce returneaza ın F si J valoarea vectoruluiF (y) si a Jacobianului J(y). Utilizam criteriul de oprire ‖F (y)‖ < ǫ,unde ǫ este toleranta prestabilita. Astfel, codul Matlab corespunzatorimplementarii metodei Gauss-Newton este:

function y=gauss_newt

x0=[1/9; 3/7; 3/10];

c=[3;6;9];mu1=0; mu2=0;

y=[x0;mu1;mu2]; eps=0.0001;m=6;

[F,J]=Fgauss(y,p,m);

while(norm(F)>eps)

y=y-(J’*J)^(-1)*J’*F;

[F,J]=Fgauss(y,p,m);

end

In Fig. 5.4 observam descresterea lui ‖F (y)‖.

1 2 3 4 5 60

0.2

0.4

0.6

0.8

1

1.2

1.4

k

||F(yk)||

Figura 5.4: Evolutia ‖F (y)‖ pentru metoda Gauss-Newton.

Implementarea metodei Newton clasice o lasam ca exercitiu cititorului.

Page 113: Metode de Optimizare Numeric˘a

5.2. Probleme rezolvate de laborator 113

5.2.4 Metoda gradientului proiectat

Exemplul 22. Fie problema de optimizare:

minx∈R2

(x1 − x2)2 + 6(x1 − x2)

4 + 4x1 + 8x2

s.l.: 4x1 + 3x2 ≤ 5, 2x1 + x2 ≤ 3,

x1 + x2 = 3.

Sa se rezolve problema ın Matlab cu metoda gradientului proiectat.

Rezolvare. Metoda gradient proiectat presupune proiectia ortogonala aunui punct auxiliar (definit de deplasarea ın directia antigradientului) pemultimea constrangerilor notata cu X , i.e.

xk+1 = [xk − αk∇f(xk)](In,X) ,

unde αk poate fi ales de exemplu prin metoda backtracking. Definitiaproiectiei ortogonale a unui punct y pe o multime X , notata [y](In,X) estedata de solutia problemei:

[y](In,X) = argminx

1

2‖x− y‖2 (5.5)

s.l.: x ∈ X.

In general, proiectia pe multimea descrisa de:

X = {x ∈ Rn : Ax ≤ b, Cx = d} ,

se realizeaza observand formularea echivalenta a problemei (5.5):

minx

1

2xT Inx− (xk)

Tx

s.l.: Ax ≤ b, Cx = d,

ce poate fi abordata, de exemplu, cu functia quadprog din Matlab.In cazul particular prezentat, multimea constrangerilor este definita de:

X ={x ∈ R

2 : 4x1 + 3x2 ≤ 5, 2x1 + x2 ≤ 3, x1 + x2 = 3}

Cream functiile auxiliare:

[f,g]=f_proj(x) f=phi_proj(alpha,x,d),

Page 114: Metode de Optimizare Numeric˘a

114 Capitolul 5. Probleme de optimizare constransa

unde prima functie returneaza f(x) si ∇f(x), iar cea de-a douareturneaza f(x+ αd). Pentru criteriul de oprire, vom folosi ‖xk − xk‖ <ǫ, unde xk este vectorul xk − αk∇f(xk) proiectat pe multimeaconstrangerilor. Astfel, codul Matlab pentru implementarea metodeigradientului proiectat este:

function x=projected_gradient(x0,eps)

x=x0;

%Multimea constrangerilor este poliedru

%definit de matricele si vectorii

A=[4 3; 2 1]; b=[5;-3];

C=[1 1]; d=3.5; xbar=x0+1; alpha2=0.5;

while (norm(xbar-x)>=eps)

[f,g]=f_proj(x);

alpha=fminsearch(@(alpha) phi_proj(alpha,x,-g),1);

grad_step=x-alpha*g;

xbar=quadprog(2*eye(2),-2*grad_step,A,b,C,d);

x=x+alpha2*(xbar-x);

end

In Fig. 5.5 observam punctele obtinute de metoda gradientului proiectat,pornind din x0 = [−5 2].

−6 −5 −4 −3 −2 −1 00

1

2

3

4

5

6

7

x1

x2

Figura 5.5: Puncte obtinute de metoda gradientului proiectat.

Page 115: Metode de Optimizare Numeric˘a

5.3. Probleme rezolvate de seminar 115

5.3 Probleme rezolvate de seminar

5.3.1 Problema duala, conditii si puncte

Karush-Kuhn- Tucker

Problema 1. Fie problema de optimizare:

minx∈R2

‖Ax‖∞s.l: ‖x‖1 ≤ 1, ex1+x2 = 1, (aTx− b)2 ≤ 1,

unde A =

[2 11 2

]

, a = [3 4]T si b = 1. Sa se scrie aceasta problema de

optimizare ın forma LP explicita.

Rezolvare. Daca consideram matricea A =

[aT1aT2

]

si definitia normei

infinit, atunci functia obiectiv se poate scrie drept:

‖Ax‖∞ =

∥∥∥∥

[aT1aT2

]

x

∥∥∥∥∞

= maxx

{|aT1 x|, |aT2 x|

}.

Introducem o variabila artificiala t pentru a muta functia obiectiv ınconstrangeri, obtinandu-se astfel o problema echivalenta cu cea originala:

minx∈R2,t∈R

t

s.l: |aT1 x| ≤ t, |aT2 x| ≤ t,

‖x‖1 ≤ 1, ex1+x2 = 1, (aTx− b)2 ≤ 1.

Din definitia modulului, observam ca putem scrie primele douaconstrangeri drept:

{

−t ≤ aT1 x ≤ t

−t ≤ aT2 x ≤ t⇒

aT1 x ≤ t

aT2 x ≤ t

−aT1 x ≤ t

−aT2 x ≤ t

⇒[A−A

]

x ≤ t14

unde 14 este vectorul de dimensiune 4 cu toate elementele egale cu1. Daca introducem doua variabile aditionale s1, s2, si ne reamintim

Page 116: Metode de Optimizare Numeric˘a

116 Capitolul 5. Probleme de optimizare constransa

definitia normei 1, putem atunci rescrie constrangerea ‖x‖1 ≤ 1 drept:

‖x‖1 ≤ 1 ⇒ |x1|+ |x2| ≤ 1 ⇒

s1 + s2 ≤ 1

|x1| ≤ s1

|x2| ≤ s2

Observam acum faptul ca egalitatea ex1+x2 = 1 se reduce simplu la x1 +x2 = 0, iar constrangerea (aTx− b)2 ≤ 1 se reduce la:

−1 ≤ aTx− b ≤ 1 ⇒{

aTx− b ≤ 1

−aTx+ b ≤ 1

Luand astfel o variabila de decizie z = [t x1 x2 s1 s2]T , problema noastra

originala se poate rescrie ca un LP:

minz∈R5

cT z

s.l Azz = bz

Czz ≤ dz

unde c = [1 0 0 0 0]T , Az = [0 1 1 0 0] si bz = 0, iar

Cz =

−1 2 1 0 0−1 1 2 0 0−1 −2 −1 0 0−1 −1 −2 0 00 0 0 1 10 1 0 −1 00 −1 0 −1 00 0 1 0 −10 0 −1 0 −10 3 4 0 00 −3 −4 0 0

si dz =

00001000020

.

Problema 2. Fie problema de optimizare urmatoare:

minx∈Rn

‖x‖1s.l.: Ax = b.

Page 117: Metode de Optimizare Numeric˘a

5.3. Probleme rezolvate de seminar 117

(i) Aratati ca aceasta problema se poate reformula ca una de programareliniara.(ii) Aduceti problema la forma de programare liniara (LP) standard.(iii) Determinati problema duala corespunzatoare.

Rezolvare. (i) Utilizand definitia normei 1 obtinem reformularea:

minx∈Rn

n∑

i=1

|xi|

s.l.: Ax = b.

Mai departe, folosim procedura de reformulare a unei probleme deoptimizare generale ıntr-o problema cu functie obiectiv liniara, coborandın constrangeri componentele sumei:

minx,t∈Rn

n∑

i=1

ti

s.l.: |xi| ≤ ti, i = 1, . . . , n,

Ax = b.

Din definitia modulului rezulta echivalenta inegalitatii |y| ≤ t cu −t ≤y ≤ t. Aplicand ın problema noastra aceasta transformare obtinem oproblema de programare liniara:

minx,t∈Rn

n∑

i=1

ti

s.l.: xi ≤ ti, i = 1, . . . , n,

−xi ≤ ti, i = 1, . . . , n,

Ax = b,

(ii) Forma standard a problemelor de programare liniara este definita de:

minx∈Rn

cTx

s.l.: Ax = b,

x ≥ 0.

Pentru a aduce problema de la punctul (i) la forma standard, introducemun set de variabile ”virtuale”, rescriind fiecare variabila de decizie dinproblema de optimizare initiala:

xi = x+i − x−

i , unde x+i ≥ 0, x−

i ≥ 0.

Page 118: Metode de Optimizare Numeric˘a

118 Capitolul 5. Probleme de optimizare constransa

In plus, reformulam inegalitatile ın urmatorul mod:

ti − xi = s2i−1, unde s2i−1 ≥ 0,

ti + xi = s2i, unde s2i ≥ 0,

i = 1, . . . , n.Cu ajutorul acestei reformulari obtinem o problema de programare liniaraın forma standard:

minx+,x−,t∈Rn,s∈R2n

n∑

i=1

ti

s.l.: ti − xi = s2i−1,

ti + xi = s2i, i = 1, . . . , n,

A(x+ − x−) = b,

s ≥ 0, x+ ≥ 0, x− ≥ 0, t ≥ 0.

unde x+ = [x+1 . . . x+

n ]T , x− = [x−

1 . . . x−n ]

T .Mai compact avem:

minz∈R5n

cT z

s.l.: Dz = d

z ≥ 0,

unde z =

x+

x−

ts

, D =

[MN

]

,M ∈ Rm×5n, N ∈ R

2n×5n.

(iii) Pentru a determina problema duala, calculam Lagrangianul asociatproblemei primale:

L(x, t, λ, µ+, µ−) =n∑

i=1

ti + λT (Ax− b) + µ+T(t− x)− µ−T

(t+ x)

= (e + µ+ − µ−)T t− µ+Tx− µ−T

x+ λT (Ax− b)

= (e + µ+ − µ−)T t+(ATλ− µ+ − µ−)T x− λT b,

unde vectorul e are componentele egale cu 1. Obtinem functia duala prinminimizarea Lagrangianului ın raport cu variabilele primale:

q(λ, µ+, µ−) = minx,t∈Rn

(e+ µ+ − µ−)T t+(ATλ− µ+ − µ−)T x− λT b.

Page 119: Metode de Optimizare Numeric˘a

5.3. Probleme rezolvate de seminar 119

Observand ca q(λ, µ+, µ−) ia valori finite doar ın cazul ın care

e+ µ+ − µ− = 0

ATλ− µ+ − µ− = 0,

aceste relatii au rolul de constrangeri ın componenta problemei duale. Inconcluzie, problema duala asociata problemei din enunt este data de:

maxλ,µ+,µ−

− λT b

e + µ+ − µ− = 0

ATλ− µ+ − µ− = 0

µ+ ≥ 0, µ− ≥ 0.

Remarca 3. Observati ca problema din enunt reprezinta proiectiaortogonala a punctului 0 pe subspatiul Ax = b, ın raport cu norma 1.

Problema 3. Fie problema de programare liniara:

minx1,x2

50x1 + 80x2

s.l.: 3x1 ≥ 6, 2x1 + 4x2 ≥ 10,

2x1 + 5x2 ≥ 8, x1 ≥ 0, x2 ≥ 0.

Determinati problema duala corespunzatoare.

Rezolvare. Pentru o expunere simpla notam functia obiectiv siconstrangerile problemei precedente dupa cum urmeaza:

minx1,x2

cTx

s.l.: Ax ≤ b, x ≥ 0,

unde c =

[5080

]

, A =

−3 0−2 −4−2 −5

, b =

−6−10−8

. In continuare, observam

ca Lagrangianul problemei este dat de relatia:

L(x, λ1, λ2) = cTx+ λT1 (Ax− b)− λT

2 x,

unde λ1 ∈ R3, λ1 = [λ1

1 λ21 λ3

1]T , iar λ2 ∈ R

2.

Page 120: Metode de Optimizare Numeric˘a

120 Capitolul 5. Probleme de optimizare constransa

Functia duala q(λ1, λ2) = minx∈R2

(c+ ATλ1 − λ2

)x − λT

1 b ia valori finite

atunci cand c+ATλ1−λ2 = 0. De aceea, impunand aceasta constrangerevariabilelor duale, rezulta problema duala:

maxλ1∈R3,λ2∈R2

− λT1 b

s.l.: c+ ATλ1 − λ2 = 0,

λ1 ≥ 0, λ2 ≥ 0,

sau echivalent,

maxλ1∈R3,λ2∈R2

− λT1 b

s.l.: c+ ATλ1 ≥ 0,

λ2 ≥ 0.

Mai exact, substituind valorile parametrilor obtinem:

maxλ1∈R3,λ2∈R2

6λ11 + 10λ2

1 + 8λ31

s.l.: 3λ11 + 2λ2

1 + 2λ31 ≤ 50,

4λ21 + 5λ3

1 ≤ 80,

λ2 ≥ 0.

Problema 4. Numeroase probleme din statistica, ınvatare automata,recunoastere de imagini/fete, presupun clasificarea de obiecte sau imaginiprin determinarea unui model matematic capabil sa recunoasca si saıncadreze ıntr-o clasa o instanta noua de obiect/imagine. Una dintrecele mai renumite tehnici de recunoastere/clasificare este SVM (SupportVector Machine), ce se formuleaza sub forma unei probleme patratice deoptimizare:

mina∈Rn,b∈R

1

2‖a‖2

s.l.: ci(aTyi − b

)≥ 1, i = 1, . . . , m.

Variabilele de decizie a, b reprezinta parametrii unui hiperplan deseparare a claselor de obiecte/imagini, asa cum se observa ın Fig. 5.6(vezi [1]). Sa se determine problema duala.

Page 121: Metode de Optimizare Numeric˘a

5.3. Probleme rezolvate de seminar 121

Figura 5.6: Hiperplan de separare a doua clase de obiecte.

Rezolvare. Lagrangianul problemei este dat de relatia:

L(x, λ) = 1

2‖a‖2 −

n∑

i=1

λi

[ci(a

Tyi − b)− 1].

Forma explicita a functiei duale:

q(λ) = mina∈Rn,b∈R

1

2‖a‖2 −

n∑

i=1

λi

[ci(a

Tyi − b)− 1],

este definita de conditiile de optimalitate de ordin I:

a∗ −n∑

i=1

ciλiyi = 0,n∑

i=1

ciλi = 0.

Ambele relatii se obtin din derivarea Lagrangianului ın raport cu a,respectiv cu b, anularea expresiei rezultate si egalarea cu 0. Deoarecea doua egalitate asigura ca functia duala ia valori finite, aceasta devineo constrangere necesara a problemei duale. De aceea, prin substituireavalorii optime a∗ ın expresia Lagrangianului avem:

q(λ) =1

2‖

n∑

i=1

ciλiyi‖2 −n∑

i=1

n∑

j=1

λicicjλj(yTi yj) +

n∑

i=1

λi

=1

2‖

n∑

i=1

ciλiyi‖2 − ‖n∑

i=1

ciλiyi‖2 +n∑

i=1

λi

= −1

2‖

n∑

i=1

ciλiyi‖2 +n∑

i=1

λi,

Page 122: Metode de Optimizare Numeric˘a

122 Capitolul 5. Probleme de optimizare constransa

putem obtine problema duala asociata, care observam ca este concava:

maxλ∈Rm

− 1

2‖

n∑

i=1

ciλiyi‖2 +n∑

i=1

λi

s.l.:

n∑

i=1

ciλi = 0, λi ≥ 0, ∀i = 1, . . . , n.

Utilizand notatiile λ = [λ1 . . . λm]T , c = [c1 . . . cm]

T , e = [1 . . . 1]T siobservand forma patratica a problemei duale obtinem reformularea:

maxλ∈Rm

− 1

2λTQλ− eTλ

s.l.: cTλ = 0, λ ≥ 0,

unde matricea Q ∈ Rn, Q = QT , are elementele Qij = cicja

Ti aj .

Problema 5. Fie problema celor mai mici patrate (CMMP), cepresupune calculul unei solutii corespunzatoare unui sistem liniar deecuatii subdeterminat. Se observa usor ca problema se reduce ladeterminarea unui vector de norma minima ce satisface sistemul liniarstudiat:

minx∈Rn

1

2‖x‖2

s.l.: Ax = b,

unde A ∈ Rm×n, b ∈ R

m. Sa se calculeze problema duala a problemei deminimizare.

Rezolvare. Deoarece problema de minimizare prezinta doar constrangeride tip egalitate, definim Lagrangianul:

L(x, µ) = 1

2xTx+ µT (Ax− b).

Astfel, functia duala este data de solutia problemei urmatoare:

q(µ) = minx∈Rn

1

2xTx+ µT (Ax− b).

Se obtine usor solutia x∗ = −ATµ. Substituind ın problema precedenta,obtinem functia duala patratica concava:

q(µ) = −1

2µTAATµ− µT b.

Page 123: Metode de Optimizare Numeric˘a

5.3. Probleme rezolvate de seminar 123

In concluzie, problema duala poate fi formulata ca o problema patraticaconvexa:

q∗ = maxµ∈Rm

−1

2µTAATµ− µT b.

Mai mult decat atat, din conditiile de optimalitate ale problemei dualeavem: ∇q(µ) = −AATµ− b = 0. In cazul ın care rang(A) = m, obtinemµ∗ = −(AAT )−1b si x∗ = AT (AAT )−1b, cu remarca importanta ca x∗ estesolutia clasica CMMP.

Problema 6. Fie problema de optimizare:

minx∈Rn

1

2xTx

s.l.: Ax ≤ b,

unde A ∈ Rm×n, iar rang(A) = m. Sa se determine problema duala si

punctul de optim.

Rezolvare. Pentru determinarea problemei duale calculam Lagrangianulproblemei primale:

L(x, λ) = 1

2xTx+ λT (Ax− b).

De asemenea, functia duala este data de:

q(λ) = minx∈Rn

L(x, λ) = minx∈Rn

1

2xTx+ λT (Ax− b).

Deoarece functia obiectiv a acestei probleme este convexa, conditiile deoptimalitate de ordin I sunt suficiente pentru determinarea optimuluix∗(λ) = −ATλ, iar prin substitutia ın q(λ) obtinem:

q(λ) =1

2λTAATλ+ λT (A(−ATλ)− b)

= −1

2λTAATλ− λT b.

In final, problema duala este definita de:

q∗ = maxλ≥0

q(λ)

(

:= −1

2λTAATλ− λT b

)

. (5.6)

Page 124: Metode de Optimizare Numeric˘a

124 Capitolul 5. Probleme de optimizare constransa

Daca matricea A are rangul maxim (implicit AAT inversabila si pozitivdefinita), observam ca solutia problemei (5.6) este data de:

λ∗ = argminλ≥0

1

2‖ATλ+AT (AAT )−1b‖22 = argmin

λ≥0

1

2‖AT (λ+(AAT )−1b)‖22.

In concluzie, observam un compromis ıntre problema primala si ceaduala: ın cazul problemei primale functia obiectiv are o formafoarte simpla, iar constrangerile reprezinta dificultatea centrala; ıncazul problemei duale, functia obiectiv este relativ complicata, iarconstrangerile au forma simpla.

Problema 7. Fie problema de optimizare constransa:

minx∈Rn

cTx−n∑

i=1

xi ln xi

s.l.n∑

i=1

xi = 1, x ≥ 0,

unde c ∈ Rn. (i) Sa se determine daca problema este convexa.

(ii) Sa se determine un punct KKT pentru aceasta problema.

Rezolvare. (i) Pentru a determina convexitatea problemei, observamın primul rand ca toate constrangerile sunt liniare, deci multimeaconstrangerilor este convexa. In cazul functiei obiectiv ınsa, calculammatricea Hessiana:

∇2f(x) =

− 1x1

0 . . . 0

0 − 1x2

. . . 0...

......

0 . . . 0 − 1xn

si observam ca este negativ semidefinita pe tot domeniul de definitie alfunctiei obiectiv domf = R

n+. In concluzie, functia obiectiv este concava,

rezultand o problema de optimizare neconvexa.

(ii) Indicam o procedura relativ inedita pentru determinarea unui punctKKT. Si anume, folosim structura problemei observand conditiile deoptimalitate de ordin I:

ci − ln xi − 1 = 0, ∀i = 1, . . . , n.

Page 125: Metode de Optimizare Numeric˘a

5.3. Probleme rezolvate de seminar 125

Aceste conditii furnizeaza punctul de optim neconstrans definit decomponentele x∗

i = eci−1.Daca proiectam punctul de optim neconstrans pe hiperplanul:

H =

{

x ∈ Rn :

n∑

i=1

xi = 1

}

obtinem vectorul y∗ definit de componentele:

y∗i =eci−1

∑nj=1 e

cj−1≥ 0,

i

y∗i = 1.

In final, verificam daca y∗ obtinut satisface urmatorul sistem KKT:

ci − ln y∗i − 1 + λ∗i + µ∗ = 0,

n∑

i=1

y∗i = 1, y∗i ≥ 0,

λ∗i ≥ 0,

λ∗i y

∗i = 0, i = 1, . . . , n.

Observand ca y∗i > 0 atunci conditiile de complementaritate impun λ∗i =

0 pentru orice i = 1 . . . n. De asemenea, conditia de optimalitate ci−(ci−1)+ln

∑nj=1 e

cj−1+µ = 0 este satisfacuta daca impunem µ = − ln∑

j ecj .

In aceste conditii, y∗ satisface conditiile KKT, fiind un punct stationarpentru problema din enunt.

Problema 8. Fie problema de minimizare:

minx1,x2∈R

x2

s.l.: 1− x21 − x2

2 ≥ 0.

(i) Determinati punctele KKT pentru aceasta problema.

(ii) Gasiti punctele de minim strict locale.

Rezolvare. (i) Functia Lagrange corespunzatoare functiei obiectiv areurmatoarea forma:

L(x, µ) = x2 + λ(x21 + x2

2 − 1).

Page 126: Metode de Optimizare Numeric˘a

126 Capitolul 5. Probleme de optimizare constransa

Derivand Lagrangianul ın functie de variabilele x1 si x2 rezulta urmatorulsistem KKT asociat problemei:

2λx1 = 0

1 + 2λx2 = 0

x21 + x2

2 − 1 ≤ 0

λ ≥ 0

λ(x21 + x2

2 − 1) = 0.

Prima relatie λx1 = 0 impune x1 = 0 sau λ = 0. Constatam usorca pentru λ = 0, sistemul nu are solutie. De aceea, din x1 = 0 avemx2 = − 1

2λsi substituind ın constrangerea de tip inegalitate obtinem:

1

4λ2− 1 ≤ 0 ⇒ λ2 ≥ 1

4.

Din moment ce λ ≥ 0, avem λ ≥ 12. Iar din relatia de complementaritate

avem:λ− 4λ2

4λ2= 0 ⇒ λ =

1

2.

In concluzie, x2 = −1, iar punctele KKT ın acest caz sunt definite de:

x⋆ =

[0−1

]

si λ∗ = 12.

(ii) Pentru a arata ca punctul KKT gasit este punct de minim, calculammai ıntai planul tangent:

M ={d : ∇gj(x

∗)Td = 0 ∀j ∈ A(x∗)}

unde A(x∗) = {j : gj(x∗) = 0}. Evident pentru x∗ = [0 − 1]T ,constrangerea noastra g(x∗) = (x∗

1)2 + (x∗

2)2 − 1 = 0, deci este activa,

iar λ∗ = 12≥ 0. Gradientul functiei de constrangere este:

∇g(x) =

[2x1

2x2

]

(5.7)

iar ∇g(x∗) = [0 − 2]T . Astfel, planul tangent este:

M ={d ∈ R

2 : d2 = 0}

Pentru ca x∗ sa fie punct de minim strict, atunci ∇2xL(x

⋆, λ∗) trebuie safie pozitiv definita pe M . Printr-un calcul simplu, observam ca:

∇2xL(x

⋆, λ∗) =

[2λ∗ 00 2λ∗

]

=

[1 00 1

]

Page 127: Metode de Optimizare Numeric˘a

5.3. Probleme rezolvate de seminar 127

Deci pentru d ∈ M avem:

dT∇2xL(x

⋆, λ∗)d = d21 > 0

si concluzionam ca x∗ = [0 − 1]T este punct de minim strict local.

Problema 9. Fie problema de optimizare constransa:

minx∈R2

1

2(x2

1 + x22)

s.l (x1 + x2 − 1)2 = 0

(i) Sa se arate ca problema este convexa.(ii) Sa se rezolve sistemul KKT asociat problemei. Verificati daca punctulobtinut este punct de minim global.

Rezolvare. (i) Functia obiectiv se formuleaza matriceal f(x) = 12xT I2x.

Observam ca Hessiana acesteia este pozitiv definita, deci functia obiectiveste convexa. Pe de alta parte, constrangerea (x1 + x2 − 1)2 = 0 esteevident echivalenta cu egalitatea liniara x1+x2−1 = 0. Deoarece singuraconstrangere este liniara, avem ca multimea fezabila este convexa.(ii) Derivand Lagrangianul asociat problemei:

L(x, µ) = 1

2(x2

1 + x22) + µ(x1 + x2 − 1)

obtinem sistemul KKT:

x1 + µ = 0

x2 + µ = 0

x1 + x2 − 1 = 0

din care rezulta µ∗ = −12si x∗

1 = x∗2 = 1

2. Pentru a verifica daca x∗ este

punct de minim strict local, atunci calculam mai ıntai planul tangent

M ={d ∈ R

2 : ∇h(x∗)d = 0}={d ∈ R

2 : d1 + d2 = 0}. (5.8)

Remarcand ca:

dT∇2f(x∗)d = d21 + d22 > 0, ∀d ∈ M,

concluzionam ca x∗ este punct de minim global strict.

Page 128: Metode de Optimizare Numeric˘a

128 Capitolul 5. Probleme de optimizare constransa

Problema 10. Fie urmatoarea problema:

minx∈R3

f(x) : =1

2(x2

1 + x22 + x2

3)

s.l g1(x) : = x1 + x2 + x3 ≤ 0

g2(x) : = x1 ≤ 0.

Sa se gaseasca punctele KKT asociate.

Rezolvare. Observam ca orice punct fezabil pentru aceasta problema esteun punct regulat, iar din conditiile ale sistemului KKT obtinem:

Optimalitate

x∗1 + λ∗

1 + λ∗2 = 0,

x∗2 + λ∗

1 = 0,

x∗3 + λ∗

1 = 0,

Fezabilitate

x∗1 + x∗

2 + x∗3 ≤ 0, x∗

1 ≤ 0,

λ∗1 ≥ 0, λ∗

2 ≥ 0,

Complementaritate

λ∗1(x

∗1 + x∗

2 + x∗3) = 0,

λ∗2x

∗1 = 0.

Din conditiile de optimalitate avem x∗1 = −λ∗

1 − λ∗2, x

∗2 = −λ∗

1, x∗3 = −λ∗

2.Substituind aceste expresii ın conditiile de complementaritate rezultasistemul:

3(λ∗1)

2 + λ∗1λ

∗2 = 0,

(λ∗2)

2 + λ∗1λ

∗2 = 0,

ce elimina posibilitatile ca λ∗1 = 0, λ∗

2 > 0 sau λ∗1 > 0, λ∗

2 = 0. De aceea,ramane sa verificam cazurile cand λ∗

1 > 0, λ∗2 > 0 sau λ∗

1 = 0, λ∗2 = 0.

Primul din cazurile ramase nu este posibil deoarece x∗1 = −λ∗

1 − λ∗2 si

a doua conditie de complementaritate nu este satisfacuta. In concluzie,doar punctul nul satisface conditiile KKT.

Problema 11. Fie problema de optimizare constransa:

minx∈R2

x21 − x2

2

x1 + x2 ≥ 0.

(i) Sa se determine punctele KKT;(ii) Aflati functia duala si problema duala.

Rezolvare. (i) Lagrangianul acestei probleme este definit de:

L(x, λ) = x21 − x2

2 − λ(x1 + x2),

Page 129: Metode de Optimizare Numeric˘a

5.4. Probleme propuse 129

deci sistemul KKT este dat de:

∇xL(x∗, λ∗) = 0,

−x∗1 − x∗

2 ≤ 0,

λ∗ ≥ 0,

−λ∗(x∗1 + x∗

2) = 0.

Din prima ecuatie a sistemului KKT rezulta:

x∗1 =

λ∗

2, x∗

2 = −λ∗

2.

Inlocuind ın ultima ecuatie si remarcand ca fezabilitatea primala estesatisfacuta, deducem ca λ∗ poate lua o infinitate de valori.

(ii) Remarcam o expresie neobisnuita a functiei duale:

q(λ) = minx∈R2

L(x, λ) = minx∈R2

x21 − x2

2 − λ(x1 + x2) = 0,

de aceea constatam ca problema duala nu este o problema de optimizarepropriu-zisa: max

λ≥00.

5.4 Probleme propuse

Problema 1. Sa se arate ca x∗ = [1 1/2 −1]T este punctul minim globalpentru urmatoarea problema de optimizare:

minx∈R3

1

2xTPx+ qTx+ r

s.l.:− 1 ≤ xi ≤ 1, i = 1, 2, 3,

unde

P =

13 12 −212 17 6−2 6 12

, q =

−22.0−14.513

, r = 1.

Problema 2. Sa se determine conditiile necesare si suficiente ın ceamai simpla forma pentru ca x ∈ R

n sa reprezinte punctul de optimcorespunzator unei functii convexe diferentiabile f peste multimea de

Page 130: Metode de Optimizare Numeric˘a

130 Capitolul 5. Probleme de optimizare constransa

tip simplex, i.e.: {x :n∑

i=1

xi = 1, xi ≥ 0, i = 1, . . . , n}.

Problema 3. Sa se ınlocuiasca functia obiectiv din problema 1(Probleme rezolvate) cu ‖x‖∞ si sa se rezolve noua problema.

Problema 4. Sa se determine sistemul KKT pentru urmatoareaproblema de optimizare:

minx∈R2

x21 + x2

2

s.l (x1 − 1)2 + (x2 − 1)2 ≤ 1,

(x1 − 1)2 + (x2 + 1)2 ≤ 1.

Exista multiplicatori Lagrange λ∗1 si λ∗

2 care sa demonstreze ca punctulx∗ este optim?

Problema 5. Fie problema de optimizare:

minx∈R3

x41 + x4

2 + x43 + (x1 + 2x2 − 4)2

s.l x1 + x2 + x3 = 1, x ≥ 0.

Sa se scrie primul pas al metodei gradient proiectat, pornind din punctulinitial x0 = [1 0 0]T si alegand pasul sk = 1.

Problema 6. Fie problema de optimizare:

minx∈R2

x41 + x4

2 + (x1 − 1)2 + (x2 − 4)2

s.l x1 + x2 = 16

Sa se scrie aproximarea Taylor de ordin II pentru functia obiectiv si sase scrie primul pas al metodei Newton proiectat pornind din punctulinitial x0 = [14 2]T .

Problema 7. Fie problema de optimizare:

minx∈R2

x21 + 1

s.l (x− 1)(x− 4) ≤ 0

Sa se determine multimea fezabila, punctul de minim si valoarea minimapentru aceasta problema. Sa se traseze pe acelasi grafic functia obiectiv,

Page 131: Metode de Optimizare Numeric˘a

5.4. Probleme propuse 131

multimea fezabila, punctul de minim si Lagrangianul L(x, λ) pentru douavalori pozitive ale lui λ luate la alegere. Sa se formuleze problema duala,sa se demonstreze ca este concava si sa se gaseasca punctul optim dual λ∗.

Problema 8. Consideram problema celor mai mici patrate cuconstrangeri de egalitate:

minx∈Rn

‖Ax− b‖22s.l.: Cx = d

unde A ∈ Rm×n, rang(A) = n, C ∈ R

p×n, cu rang(C) = p. Sa seexpliciteze conditiile KKT ale acestei probleme si sa se determineexpresia solutiei primale x∗ si a celei duale µ∗.

Problema 9. Fie problema de optimizare:

minx∈R2

− 3x21 + x2

2 + 2x23 + 2(x1 + x2 + x3)

s.l.: x21 + x2

2 + x23 = 1

Sa se determine punctele punctele KKT pentru aceasta problema. Carepereche de puncte ıi va corespunde punctului de optim?.

Problema 10. Fie problema de optimizare:

minx∈Rn

n∑

i=1

log(ci + xi)

s.l.: x ≥ 0,n∑

i=1

xi = 1,

unde ci reprezinta parametrii cunoscuti.

(i) Sa se determine problema duala.

(ii) Sa se determine un punct KKT.

Page 132: Metode de Optimizare Numeric˘a

Capitolul 6

Metode pentru probleme de

optimizare constransa

6.1 Preliminarii

Consideram o problema de optimizare NLP generala de urmatoareaforma:

minx∈Rn

f(x) (6.1)

s.l.: g(x) ≤ 0, h(x) = 0,

unde functia obiectiv f : Rn → R si functiile vectoriale ce definesc

constrangerile de egalitate si inegalitate h : Rn → R

p si respectivg : Rn → R

m se presupun a fi de doua ori diferentiabile. In acest capitolvom implementa algoritmi bine cunoscuti pentru rezolvarea acestui tipde problema de optimizare.

6.1.1 Probleme neconvexe cu constrangeri de

egalitate

Consideram mai ıntai probleme ın care avem doar constrangeri deegalitate neliniare:

minx∈Rn

f(x) (6.2)

s.l.: h(x) = 0,

Page 133: Metode de Optimizare Numeric˘a

6.1. Preliminarii 133

unde h(x) este o functie neliniara. Pentru acest tip de probleme vomutiliza metoda Lagrange-Newton, ce se bazeaza esential pe conditiileKKT:

∇xL(x, µ) = 0, h(x) = 0 ⇐⇒ ∇L(x, µ) = 0, (6.3)

unde L(·) este functia Lagrange. Concatenam variabila de decizie xsi multiplicatorul Lagrange µ ıntr-o singura variabila y = [xTµT ]T , iarsolutiile problemei (6.2) se gasesc printre radacinile sistemului neliniarde ecuatii:

F (y) = ∇L(x, µ) =[∇xL(x, µ)

h(x)

]

= 0.

Acest sistem poate fi rezolvat prin metoda Newton:

F (yk) +∂F

∂y(yk)(y − yk) = 0 si iteratia yk+1 = yk −

(∂F

∂y(yk)

)−1

F (yk).

Daca scriem ın termeni de gradienti avem:

∇xL(xk, µk) +∇2xL(xk, µk)(x− xk) +∇h(xk)

T (µ− µk) = 0

h(xk) +∇h(xk)(x− xk) = 0,

iar ın forma matriceala:[∇2

xL(xk, µk) ∇h(xk)T

∇h(xk) 0

] [x− xk

µ− µk

]

=

[−∇xL(xk, µk)

−h(xk)

]

din care obtinem iteratia Lagrange-Newton

xk+1 = xk + dk, µk+1 = µk + dµk ,

unde directiile dxk, dµk vor fi desigur solutiile sistemului:

[∇2

xL(xk, µk) ∇h(xk)T

∇h(xk) 0

] [dxkdµk

]

=

[−∇xL(xk, µk)

−h(xk)

]

.

6.1.2 Probleme convexe cu constrangeri de

egalitate

In cazul problemelor convexe avand numai constrangeri de egalitate, i.e.:

minx∈Rn

f(x) (6.4)

s.l.: Ax = b,

Page 134: Metode de Optimizare Numeric˘a

134 Capitolul 6. Metode pentru probleme de optimizare constransa

se utilizeaza metoda Newton extinsa, dupa cum urmeaza. In modanalogic cu metoda Newton pentru probleme neconstranse, ınlocuimfunctia obiectiv cu aproximarea Taylor de ordin II:

mind∈Rn

f(x+ d) = f(x) +∇f(x)Td+1

2dT∇2f(x)d

s.l.: A(x+ d) = b

Sistemul KKT rezultat pentru problema patratica convexa anterioaraeste: [

∇2f(x) AT

A 0

]

︸ ︷︷ ︸

K

[dµ

]

=

[−∇f(x)

0

]

︸ ︷︷ ︸

l

de unde obtinem directia d. Iteratia metodei Newton extinse consta ın

xk+1 = xk + dk,

unde dk este solutia problemei patratice precedente considerand x = xk

(sau echivalent a sistemului liniar anterior). Definim acum decrementulNewton:

D(x) =(dT∇2f(x)d

)1/2

Diferenta dintre f(x) si minimul aproximarii patratice este:

f(x)−min{

f(x+ d)| A(x+ d) = b}

=D(x)2

2,

deci D(x)2

2reprezinta o estimare buna pentru f(x)− f ∗ si poate fi astfel

utilizata drept criteriu de oprire, i.e. D(xk) ≤ ǫ2pentru o precizie ǫ > 0

data.

6.1.3 Probleme convexe generale

Revenind la problema generala (6.1) convexa (i.e. functiile f si gi suntconvexe, iar functia h este liniara de forma h(x) = Ax− b), introducemclasa metodelor de punct interior (numite adesea si metode tip bariera)pentru rezolvarea acestora. Presupunem ca problema (6.1) este strictfezabila, anume sa existe un x ıncat Ax = b si g(x) < 0. Astfel, conditiileSlater pentru constrangeri sunt satisfacute, iar drept urmare dualitateaputernica are loc, i.e. exista un punct dual format din λ∗ ∈ R

m si µ∗ ∈ Rp,

Page 135: Metode de Optimizare Numeric˘a

6.1. Preliminarii 135

care ımpreuna cu un x∗ sa satisfaca conditia f(x∗) = q(λ∗, µ∗). Mai mult,conditiile KKT au loc:

∇f(x∗) +m∑

i=1

λ∗i∇gi(x

∗) + ATµ∗ = 0

g(x∗) ≤ 0, Ax∗ = b

λ∗i gi(x

∗) = 0

λ∗ ≥ 0.

Metodele de punct interior rezolva problema (6.1) sau conditiile KKTmentionate anterior prin aplicarea metodei Newton asupra unei secventede probleme cu constrangeri de egalitate, sau asupra unei secvente deconditii KKT modificate. In continuare, ne concentram asupra unei astfelde metode.Ideea fundamentala ce sta la baza clasei algoritmilor de punct interior estereformularea problemei (6.1) ca o problema cu constrangeri de egalitate,prin transferul constrangerilor de inegalitate ın functia obiectiv:

minx

f(x) +m∑

i=1

I−(−gi(x))

s.l.: Ax = b,

unde I− : R → R este functia indicator pentru numere nepozitive:

I−(y) =

{

0, daca y ≤ 0

∞, daca y > 0.(6.5)

Prin aceasta reformulare am eliminat constrangerile de inegalitate, ınsaapare problema majora a nediferentiabilitatii noii functii obiectiv. Inacest scop, functia indicator I− se aproximeaza cu una diferentiabila:

I−(y) = −τ log(−y),

unde τ > 0, numit si parametru de bariera, este un parametru ajustabilpentru acuratetea aproximarii. Problema noastra originala (6.1) va fiastfel aproximata cu:

minx∈Rn

f(x) + τB(x) (6.6)

s.l.: Ax = b,

Page 136: Metode de Optimizare Numeric˘a

136 Capitolul 6. Metode pentru probleme de optimizare constransa

unde B(x) = −∑m

i=1 log(−gi(x)) se numeste bariera logaritmica pentruproblema (6.1). Aceasta subproblema reprezinta o aproximare aproblemei originale si poate fi rezolvata prin metoda Newton extinsa.Notam cu x(τ) solutia acestei subprobleme. Mentionam ca gradientul siHessiana barierei logaritmice sunt date de urmatoarele relatii:

∇B(x) =

m∑

i=1

1

−gi(x)∇gi(x)

∇2B(x) =m∑

i=1

1

gi(x)2∇gi(x)∇gi(x)

T +1

−gi(x)∇2gi(x).

Un concept esential ın metodele de punct interior este acela de calecentrala: punctele x(τ) se afla pe calea centrala daca sunt strict fezabile,anume satisfac constrangerile:

Ax(τ) = b, g(x(τ)) < 0

si exista un µ ∈ Rp astfel ıncat

∇f(x(τ)) + τ∇B(x(τ)) + AT µ = 0. (6.7)

Astfel, putem deriva o proprietate importanta a punctelor de pe caleacentrala: orice punct de pe aceasta cale produce un punct dual fezabil,si astfel o limita inferioara a lui f ∗. In mod specific, considerand:

λi(τ) = − τ

gi(x(τ))si µ(τ) = τµ

se poate demonstra usor ca perechea λ(τ) si µ(τ) este dual fezabila.Astfel, functia duala q(λ(τ), µ(τ)) este finita, iar:

q(λ(τ), µ(τ)) = f(x(τ)) +m∑

i=1

λi(τ)gi(x∗(t)) + µ(τ)T (Ax(τ)− b)

= f(x(τ))−mτ.

In mod particular, diferenta de dualitate dintre f si q, asociata cu punctulx(τ) si perechea duala fezabila λ(τ), µ(τ) este simplu mτ . Drept urmare,avem:

f(x(τ))− f ∗ ≤ mτ,

ceea ce confirma ca x(τ) converge catre punctul de optim cand τ → 0,i.e. avem o aproximare cat mai buna a functiei indicator I−.

Page 137: Metode de Optimizare Numeric˘a

6.2. Probleme rezolvate de laborator 137

Iteratiile metodei de punct interior sunt definite de urmatorii pasi:

1. Se selecteaza un punct initial x = x0 strict fezabil, un τ = τ0 > 0,un σ < 1 si o acuratete ǫ > 0.

2. Cat timp mτk ≥ ǫ repeta

(a) calculeaza xk+1 = x(τk) ca solutie a problemei (6.6), porninddin punctul initial xk (warm start);

(b) descreste τk+1 = στk.

Dupa cum observam, pentru metoda de punct interior un aspect esentialeste selectarea unei actualizari corespunzatoare pentru τ la fiecare pas.

6.2 Probleme rezolvate de laborator

6.2.1 Metoda Lagrange-Newton

Exemplul 23. Fie problema de optimizare neconvexa:

minx∈R2

(x1 − 6)4 + (x1 − 4x2)2

s.l.: x21 + x2

2 = 1.

Sa se rezolve aceasta problema ın Matlab prin metoda Lagrange-Newton.

Rezolvare. Vom avea nevoie ın primul rand de doua functii:

[grad_lagr_x,hess_lagr_x]=eval_lagr_x(x,mu)

[h,jacob_h]=eval_h(x)

care sa returneze ∇xL(x, µ) si ∇2xL(x, µ), respectiv h(x) si Jacobianul

∇h(x). Vom utiliza norma gradientului Lagrangianului pentru criteriulde oprire. Astfel, codul Matlab pentru algoritmul Lagrange-Newton este:

x=[0;1];

n=2;

mu=1;

eps=0.0001;

%In norm_grad vom retine norma

%gradientului Lagrangianului

norm_grad=1;

Page 138: Metode de Optimizare Numeric˘a

138 Capitolul 6. Metode pentru probleme de optimizare constransa

while(norm_grad>=eps)

[grad_lagr,hess_lagr]=eval_lagr(x,mu)

[h,grad_h]=eval_h(x);

%Formam sistemul KKT

K=[hess_lagr jacob_h’; jacob_h 0]

l=[-grad_lagr; -h];

%Obtinem solutia sistemului KKT si directiile pentru

%x si mu

sol_kkt=K\l;

x=x+sol_kkt(1:n);

mu=mu+sol_kkt(n+1:end);

%Gradientul Lagrangianului va fi chiar -l

%din sistemul KKT

norm_grad=norm(-l);

end

In Fig. 6.1 observam liniile de contur ale functiei obiectiv si iteratiilemetodei Lagrange-Newton.

0 0.2 0.4 0.6 0.8 1 1.2−1.5

−1

−0.5

0

0.5

1

1.5

x1

x2

Figura 6.1: Liniile de contur si iteratiile metodei Lagrange-Newton.

6.2.2 Metoda Newton extinsa

Fie problema de optimizare convexa:

minx∈R2

(x1 − 2)4 + (x1 − 2x2)2

s.l.: Ax = b

Page 139: Metode de Optimizare Numeric˘a

6.2. Probleme rezolvate de laborator 139

unde A =[1 2

]si b = 16. Sa se rezolve aceasta problema prin metoda

Newton pentru probleme cu constrangeri de egalitate, cu pasul constantα = 1 si cu pasul α ideal.

Rezolvare. Pentru a implementa aceasta metoda ın Matlab, vom aveanevoie de o functie care sa returneze f(x), ∇f(x) si ∇2f(x):

[f,g,h]=newt_equal(x)

si o functie care sa returneze f(x+ αd)

f=phi_newt_equal(alpha,x,d)

Este impus sa pornim dintr-un punct initial fezabil, x0 = [10 3]T . CodulMatlab pentru metoda Newton cu constrangeri de egalitate convexe este:

%Trebuie sa obtinem dimensiunile corespunzatoare matricei A

[p,n]=size(A);

%Folosim decrementul pentru criteriul de oprire

D=1;

while(D>=eps)

%Evaluam functia, gradientul si hessiana

[f,g,h]=newt_equal(x);

%Formam sistemul KKT

K=[h A’; A zeros(p,p)];

l=[-g; zeros(p,1)];

%Obtinem solutia la sistemul KKT si

%extragem directia aferenta

sol_kkt=K\l;

d=sol_kkt(1:n);

%Calculam pasul ideal si nouta iteratie

alpha=fminsearch(@(alpha) phi_newt_equal(alpha,x,d),1);

x=x+alpha*d;

%Calculam decrementul Newton

D=sqrt((d’*h*d));

end

In Fig. 6.2 observam liniile de contur ale functiei obiectiv si puncteleobtinute din metoda Newton pentru probleme cu constrangeri deegalitate cu pasul α = 1.

Page 140: Metode de Optimizare Numeric˘a

140 Capitolul 6. Metode pentru probleme de optimizare constransa

0 2 4 6 8 100

2

4

6

8

10

x1

x2

Figura 6.2: Liniile de contur si punctele obtinute prin metoda Newtonpentru probleme cu constrangeri de egalitate convexe.

6.2.3 Metoda de punct interior

Exemplul 24. Fie problema de optimizare convexa:

minx∈R2

(x1 − 4)4 + (x1 − 6x2)2

s.l.: x21 + x2

2 ≤ 25, Ax = b

unde A =[2 3

]si b = 12. Sa se rezolve aceasta problema ın Matlab

prin metoda de punct interior descrisa la ınceputul capitolului. Sa secompare rezultatul acestei metode cu rezolvarea problemei ın CVX.

Rezolvare. Vom utiliza metoda Newton pentru problemele cuconstrangeri de egalitate (6.6) din cadrul metodei de punctinterior. Astfel, vom avea nevoie din nou de functii care returneazaf(x) = f(x) + τB(x), unde B(x) este functia bariera, ∇f(x) si ∇2f(x)si f(x+ αd), precum la problema anterioara, pe care le apelam astfel:

[f,g,h]=barrier_equal(x,t)

f=alpha_barrier_equal(alpha,x,d,tau)

Vom porni dintr-un punct initial strict fezabil, x0 = [3 2]T . Algoritmulva fi astfel format din doua bucle, una interna pentru gasirea lui x∗(τ)cu metoda Newton, iar cealalta externa pentru actualizarea lui τ . CodulMatlab al algoritmului va fi astfel:

%Selectam parametrul initial tau,

%sigma pentru actualizarea lui tau, si dimensiunile lui A

Page 141: Metode de Optimizare Numeric˘a

6.2. Probleme rezolvate de laborator 141

t=2;

sigma=0.5;

[p,n]=size(A);

%Din moment ce este doar o

%singura constrangere de inegalitate avem:

m=1;

%Selectam doua tolerante eps_outer si eps_inner

eps_outer=0.001; eps_inner=0.01;

while(m/tau>=eps_outer)

D=1;

%Aici avem bucla interna pentru metoda Newton

while(D>=eps_inner)

[f,g,h]=barrier_equal(x,tau)

K=[h A’; A zeros(p,p)]; l=[-g; zeros(p,1)];

sol_kkt=K\l; d=sol_kkt(1:n);

alpha=...

fminsearch(@(alpha)phi_barrier_equal(alpha,x,d,tau),1);

x=x+alpha*d; D=sqrt((d’*h*d))

end

%Actualizam tau-ul

tau=tau*sigma;

end

In Fig. 6.3 putem observa iteratiile obtinute de metoda de punct interioraplicata problemei din enunt.

Exemplul 25. In cadrul acestui exemplu abordam rezolvarea uneiprobleme de control optimal pentru un sistem discret:

zt+1 = Azzt +Buut, (6.8)

unde zt ∈ Rnz reprezinta vectorul de stare al sistemului, ut ∈ R

nu

reprezinta vectorul de intrari ale sistemului, iar matricele Az ∈ Rnz×nz si

Bu ∈ Rnz×nu descriu dinamica sistemului.

In continuare, consideram un caz particular de sistem dinamic discretdes ıntalnit ın laboratoarele de control, si anume pendulul invers. Acestsistem fizic este compus dintr-un carucior de masa M = 2 kg ce alunecaunidimensional de-a lungul axei Ox pe o suprafata orizontala, si unpendul format dintr-o bila de masa m = 0.1 kg aflata la capatul uneitije de lungime l = 0.5 m considerata imponderabila. Vectorul de stareal sistemului este z ∈ R

4, z = [z1 z2 z3 z4]T , unde z1 reprezinta

Page 142: Metode de Optimizare Numeric˘a

142 Capitolul 6. Metode pentru probleme de optimizare constransa

1 2 3 4 5 6 7−2

−1.5

−1

−0.5

0

0.5

1

1.5

2

2.5

3

x1

x2

Figura 6.3: Liniile de contur si punctele obtinute prin metoda de punctinterior.

unghiul cu verticala θ, z2 este viteza unghiulara, z3 este deplasarea peaxa 0x, iar z4 este viteza pe axa Ox. Dinamica discreta a sistemului esteexprimata prin zt+1 = Azzt +Buut unde ut ∈ R este intrarea sistemului,reprezentand o corectie de deplasare orizontala aplicata caruciorului.Matricele dinamicilor ın acest caz sunt:

Az =

1.0259 0.504 0 01.0389 1.0259 0 0−0.0006 −0.0000 1 0.05−0.0247 −0.0006 0 1

si Bu =

−0.0013−0.05040.00060.025

Scopul pendulului invers este sa mentinem tija suficient de aproape deverticala, anume sa mentinem z1 = θ ıntr-un interval admisibil centratın 0◦, i.e. θmin ≤ z1 ≤ θmax, ce reprezinta constrangeri pe stare alesistemului, unde θmax = −θmin = 0.2 rad. Astfel, formulam problema decontrol optimal pe un orizont finit N, cu scopul mentinerii tijei ın pozitieverticala (i.e. referintele sunt zreft = 0 si uref

t = 0):

minzt,ut

N−1∑

t=0

1

2R0u

2t +

N∑

k=1

1

2zTt Q0zt (6.9)

s.l.: z0 = z, zt+1 = Azzt +Buut

θmin ≤ z1t ≤ θmax ∀t = 0, . . . , N,

Page 143: Metode de Optimizare Numeric˘a

6.2. Probleme rezolvate de laborator 143

unde z0 este starea initiala data (estimata sau masurata) a pendulului.Matricele din costurile de etapa sunt:

Q0 = I4 si R0 = 10.

Reformulam problema (6.9) ca o problema QP convexa si apoi o rezolvamcu unul din algoritmii prezentati anterior (e.g. metoda de punct interior).

Rezolvare. Pentru reformularea problemei, definim o variabila de deciziex ∈ R

N(nz+nu) care sa cuprinda variabilele de stare si intrare peste ıntregorizontul de predictie, i.e:

x =[uT0 xT

1 uT1 zT2 . . . uT

N−1 zTN]T

.

Din datele problemei (6.9) vor rezulta doua tipuri de constrangeri pentruproblema QP rezultata. Prima categorie de constrangeri va fi ceade egalitate, rezultata din dinamica sistemului zt+1 = Azzt + Buut.Considerand variabila de decizie aleasa x, vom ıncorpora constrangerilede egalitate rezultate din dinamica sistemului peste tot orizontul depredictie ıntr-o constrangere Ax = b, unde matricea A ∈ R

Nnz×N(nz+nu)

va fi formata din componentele bloc corespunzatoare si vectorul b ∈ RNnz

va depinde de starea initiala a sistemului:

A =

−Bu Inz0 0 . . . 0 0 0

0 −Az −Bu Inz. . . 0 0 0

......

......

......

......

0 0 0 0 . . . −Az −Bu Inz

, b =

Azz00...0

.

Fiecare linie de blocuri din sistemul Ax = b reprezinta satisfacereaconstrangerilor rezultate din dinamici la un pas t, i.e. prima linie vaasigura ca z1 = Az0 +Bu0 sau rescris −Bu0 + Inz

z1 = Az0, a doua linieva asigura ca −Az1 − Bu1 + Inz

z2 = 0, etc . Considerand ca z ∈ R4,

constrangerea ca prima componenta a vectorului de stare zt se afla ınintervalul corespunzator, anume θmin ≤ z1t ≤ θmax poate fi rescrisa ca:

Czzt ≤ dz, unde Cz =

[1 0 0 0−1 0 0 0

]

si dz =

[θmax

−θmin

]

.

Pentru ıntreg orizontul de predictie vom avea Cx ≤ d, unde C si d vor fide forma:

C =

0 Cz 0 . . . . . . 00 0 0 Cz 0 0...

...... 0

. . . 00 0 0 . . . 0 Cz

, d =

dzdz...dz

.

Page 144: Metode de Optimizare Numeric˘a

144 Capitolul 6. Metode pentru probleme de optimizare constransa

Functia obiectiv a problemei QP rezultate va fi xTQx, unde Q este blocdiagonala, formata din matricele din costurile de etapa pentru stare siintrare, i.e.:

Q = diag(R0, Q0, R0, Q0, . . . , R0, Q0).

Problema QP finala va fi de forma:

minx

1

2xTQx

s.l.: Ax = b, Cx ≤ d.

In Matlab vom implementa doua functii care sa primeasca orizontulde predictie N si sa genereze matricele si vectorii A, b, C, d si ofunctie principala care sa rezolve problema QP finala. Problema poatefi rezolvata prin metode de punct interior. Pentru un orizont de preditieN = 70, putem observa ın Fig. 6.4 traiectoria unghiului si comandarezultate din problema de control optimal. Observam ca unghiul ramaneın limitele impuse [−0.2, 0.2] radiani si apoi dupa un numar de pasi (i.e.pentru t ≥ 60) se stabilizeaza ın jurul lui 0.

0 10 20 30 40 50 60 70−0.2

−0.1

0

0.1

0.2

0.3

t

ungh

iul (

Θ)

0 10 20 30 40 50 60 70−150

−100

−50

0

50

100

t

com

anda

(u)

Figura 6.4: Unghiul pendulului si comanda aferenta obtinuta din problemade control optimal cu orizont de predictie N = 70 folosind metoda de punct

interior.

Page 145: Metode de Optimizare Numeric˘a

6.3. Probleme rezolvate de seminar 145

6.3 Probleme rezolvate de seminar

6.3.1 Metoda Newton pentru probleme constranse

Problema 1. Fie problema de minimizare neconvexa:

minx∈R2

3

2x21 +

3

2x22 − 2x1 + x2

s.l.: 3x21 + 2x2

2 − 2x1 = 2.

Pornind din punctul initial x0 = [1 0]T si µ0 = −1, sa se aplice primulpas al metodei Lagrange-Newton.

Rezolvare. Observam ca problema se poate rescrie ca o problema QP:

minx∈R2

1

2xTQx+ qTx

s.l.: h(x) = 0

unde Q = 3I2, q = [−2 1]T , h(x) = 3x21 + 2x2

2 − 2x1 − 2. Se poatededuce usor ca multimea constrangerilor rezultata este neconvexa. Dinconditiile KKT pentru problema anterioare rezulta sistemul:

F (y) = ∇L(x, µ) =[∇xL(x, µ)

h(x)

]

= 0

unde y = [xT µ]T . Lagrangianul problemei este definit de:

L(x, µ) = 3

2x21 +

3

2x22 − 2x1 + x2 + µ(3x2

1 + 2x22 − 2x1 − 2),

unde µ ∈ R, rezultand expresia gradientului sau ın raport cu x∇xL(x, µ) = Qx+ q +∇h(x)Tµ. Impreuna cu Jacobianul functiei h(x):

∇h(x) =[6x1 − 2 4x2

],

este determinata expresia operatorului F (y):

F (y) = ∇L(x, µ) =

3x1 − 2 + 6x1µ− 2µ3x2 + 1 + 4µx2

3x21 + 2x2

2 − 2x1 − 2

.

Page 146: Metode de Optimizare Numeric˘a

146 Capitolul 6. Metode pentru probleme de optimizare constransa

Mai departe, din expresia lui F (y) calculam Jacobianul acesteia:

∇F (y) =∂F

∂y(y) =

3 + 6µ 0 6x1 − 20 3 + 4µ 4x2

6x1 − 2 4x2 0

.

Acum, pentru y = y0 = [1 0 − 1]T avem:

F (y0) =

−31−1

, iar ∇F (y0) =

−3 0 40 −1 04 0 0

(6.10)

iar inversa Jacobianului este:

(∇F (y0))−1 =

0 0 14

0 −1 014

0 316

.

Astfel, prima iteratie a metodei Lagrange-Newton va fi:

y1 = y0 −(∂F

∂y(y0)

)−1

F (y0) =

10−1

−14

−1−15

16

=

54

1− 1

16

.

Problema 2. Fie problema de optimizare convexa:

minx∈R2

2x21 + 2x2

2 + 2x1x2 − x1 + x2

s.l.: x1 − x2 = 1

Sa se aplice primul pas al metodei Newton extinse, pornind din punctulinitial x0 = [0 −1]T si pasul α0 = 1

Rezolvare. Problema poate fi scrisa ca o problema QP ın forma standard:

minx∈R2

1

2xTQx+ qTx

s.l.: Ax = b

unde:

Q = ∇2f(x) =

[4 22 4

]

≻ 0, q =

[−11

]

, A =[1 −1

], b = 1.

Page 147: Metode de Optimizare Numeric˘a

6.3. Probleme rezolvate de seminar 147

Gradientul functiei va fi desigur

∇f(x) = Qx+ q =

[4x1 + 2x2 − 12x1 + 4x2 + 1

]

,

iar pentru punctul nostru initial:

∇f(x0) =

[−3−3

]

.

Formam astfel sistemul KKT:[∇2f(x) AT

A 0

] [dµ

]

=

[−∇f(x)

0

]

,

care pentru punctul nostru initial se rezuma la:

4 2 12 4 −11 −1 0

d10d20µ0

=

330

de unde rezulta d0 =

[1212

]

si x1 = x0 + α0d0 =

[12

−12

]

.

6.3.2 Probleme de control optimal

Problema 3. Fie un sistem liniar cu dinamica discreta:

zt+1 = Azzt +Buut,

unde zt ∈ Rnz reprezinta vectorul de stare al sistemului, ut ∈ R

nu

reprezinta vectorul de intrari ale sistemului, iar matricele Az ∈ Rnz×nz si

Bu ∈ Rnz×nu sunt matricele ce descriu dinamica sistemului. Obiectivul

problemei de control optimal este urmarirea referintei zreft pe stare si ureft

pe intrare peste un orizont de predictie N . Formulam acum problemade control optimal de urmarire a referintei pe un orizont finit N , dar cusatisfacerea unor constrangeri pe stare si intrare, ın care utilizam functiide cost pe etapa patratice:

minzt,ut

1

2

N∑

t=1

‖zt − zreft ‖2Qz+

1

2

N−1∑

t=0

‖ut − ureft ‖2Ru

(6.11)

s.l.: z0 = z, zt+1 = Azzt +Buut, lbz ≤ zt ≤ ubz, Cuut ≤ du,

Page 148: Metode de Optimizare Numeric˘a

148 Capitolul 6. Metode pentru probleme de optimizare constransa

unde ‖zt − zreft ‖2Qz= (z − zreft )TQz(z − zreft ). Sa se reformuleze aceasta

problema ca un QP utilizand doua tehnici: pastrarea vectorului starilorsi eliminarea vectorului starilor.

Rezolvare. Consideram doua moduri de abordare (pentru detalii vezi [1]).

Cazul 1: fara eliminarea starilor

In acest caz, vom defini o variabila de decizie x ∈ RN(nz+nu) care sa

cuprinda variabilele de stare si intrare peste ıntreg orizontul de predictie,i.e:

x =[uT0 zT1 uT

1 zT2 . . . uTN−1 zTN

]T.

Din problema (6.11) vor rezulta constrangeri de egalitate si de inegalitate.Constrangerile de egalitate vor rezulta din faptul ca variabilele de stare siintrare trebuie sa respecte dinamica procesului zt+1 = Azzt +Buut pesteıntreg orizontul de predictie. Luand ın calcul forma variabilei x, putemconcatena aceste constrangeri ıntr-o constrangere de forma Ax = b undeA ∈ R

Nnz×N(nz+nu) si b ∈ RNnz vor fi de forma:

A =

−Bu Inz0 0 . . . 0 0 0

0 −Az −Bu Inz. . . 0 0 0

......

......

......

......

0 0 0 0 . . . −Az −Bu Inz

, b =

Azz00...0

.

Privind constrangerile de inegalitate, observam ca avem constrangeride tip box pe stare si constrangeri poliedrale pe intrare. Dorim saconcatenam toate aceste constrangeri peste ıntreg orizontul de predictieıntr-o singura constrangere de forma Cx ≤ d. Constrangerea de tip boxpentru stare poate fi rescrisa ca:

[I−I

]

︸ ︷︷ ︸

Cz

zt ≤[ubz−lbz

]

︸ ︷︷ ︸

dz

.

Matricea C si vectorul d vor avea astfel urmatoarea forma:

C =

Cu 0 0 0 00 Cz 0 0 0

0 0. . . 0 0

0 0 0 Cu 00 0 0 0 Cz

si d =

dudz...dudz

.

Page 149: Metode de Optimizare Numeric˘a

6.3. Probleme rezolvate de seminar 149

In privinta functiei obiectiv, putem lua un vector care sa concatenezereferintele pentru stare si intrare peste ıntreg orizontul de predictie:

xref =[

(uref0 )T (zref1 )T . . . (uref

N−1)T (zrefN )T

]T

.

Cu x si xref putem rescrie ıntregul cost din (7.2) sub forma:

‖x− xref‖2Q = (x− xref)TQ(x− xref),

ın care Q ∈ RN(nz+nu)×N(nz+nu) va fi de forma Q =

diag(Ru, Qz, . . . , Ru, Qz). Pentru a aduce ın final problema la forma QP,observam ca:

(x− xref )TQ(x− xref) = xTQx− xTQxref − (xref )TQx+ (xref )TQxref

= xTQx+ (Qxref +QTxref)Tx+ (xref)TQxref .

Daca luam q = Qxref + QTxref si ignorand termenul constant(xref)TQxref din moment ce nu depinde de variabila x, atunci problema(7.2) poate fi rescrisa ca urmatorul QP:

minx

1

2xTQx+ qTx

s.l.: Ax = b, Cx ≤ d.

Cazul 2: cu eliminarea starilor

Pentru a elimina starile din problema (6.11), utilizam dinamica sistemuluizt+1 = Azzt+Buut pentru a exprima starile de-a lungul ıntregului orizontde predictie:

z1 = Azz0 +Buu0

z2 = Azz1 +Buu1 = A2zz0 + AzBuu0 +Buu1

z3 = Azz2 +Buu2 = A3zz0 + A2

zBuu0 + AzBuu1 +Buu2

...

zN = AzzN−1 +BuuN−1 = ANz z0 + AN−1

z Buu0 + AN−2z Buu1 + · · ·+

+ A2zBuuN−3 + AzBuuN−2 +BuuN−1

Daca eliminam starile, atunci singurele variabile de decizie ramanintrarile. Notam astfel x = [uT

0 . . . uTN−1]

T si z = [zT1 . . . , zTN ]T , ecuatiile

Page 150: Metode de Optimizare Numeric˘a

150 Capitolul 6. Metode pentru probleme de optimizare constransa

anterioare pot fi scrise sub forma z = ABx+ Apz0, unde:

AB =

Bu 0 0 0 . . . 0AzBu Bu 0 0 . . . 0A2

zBu AzBu Bu 0 . . . 0...

......

......

...AN−1

z Bu AN−2z Bu AN−3

z Bu AN−4z Bu . . . Bu

si Ap =

Az

A2z

A3z...

ANz

.

Daca rescriem constrangerile de tip box pentru stare sub forma Czzt ≤dz, precum ın cazul unde nu eliminam starile, si le concatenam pesteıntreg orizontul de predictie astfel ıncat sa avem Czz ≤ dz, unde Cz =diag(Cz, Cz, . . . , Cz) si dz = [dTz dTz . . . dTz ]

T , atunci constrangerile deinegalitate pentru stare se transforma ın constrangeri pentru intrare:

Cz z ≤ dz ⇔ Cz(ABx+ Apz0) ≤ dz

⇔ CzAB︸ ︷︷ ︸

=C′

x

x ≤ dz − Apz0︸ ︷︷ ︸

=d′x

.

Pentru constrangerile de inegalitate pentru intrare luam C′′

xx ≤ d′′

x, undematricea este C

′′

x = diag(Cu, Cu, . . . , Cu) si d′′

x = [dTu dTu . . . dTu ]T .

Concatenam acum cele doua constrangeri ıntr-un singura, Cx ≤ d, unde:

C =

[C

x

C′′

x

]

si d =

[d

x

d′′

x

]

.

Privind functia obiectiv, definim mai ıntai matricea Q =diag(Qz, . . . , Qz) si de asemenea R = diag(Ru, . . . , Ru) si apoizref = [(zref)T . . . (zref )T ]T , xref = [(uref)T . . . (uref)T ]T .Atunci, observam ca functiile de cost pot fi rescrise:

1

2

N∑

t=1

‖zt − zref‖2Qu=

1

2‖z − zref‖Q =

1

2‖ABx+ Apz0 − zref‖Q

=1

2

(

xT ABTQABx+ xT AB

TQApz0 + zT0 A

Tp QABx

)

− 1

2

(

(zref )T QABx+ xT ABTQzref

)

+ termen constant.

De asemenea, avem

1

2

N−1∑

t=0

‖ut − uref‖2Ru=

1

2‖x− xref‖R

=1

2

(xT Rx− (xref)T Rx− xT Rxref + (xref)T Rxref

).

Page 151: Metode de Optimizare Numeric˘a

6.3. Probleme rezolvate de seminar 151

Ignorand termenii ce nu contin x si tinand cont ca matricele Q si R suntsimetrice, functia obiectiv va fi de forma f(x) = 1

2xTQx + qTx, unde

Hessiana Q = R + ABTQAB, iar vectorul q este dat de expresia:

q = ABTQApz0 − AB

TQzref − Rxref .

Problema de optimizare finala va fi un QP fara constrangeri de egalitate:

minx

1

2xTQx+ qTx

s.l.: Cx ≤ d.

Problema 5. Consideram sistemul dublu integrator:

z = Azz + Buu, cu Az =

[0 10 0

]

, Bu =

[01M

]

,

unde z1 si z2 reprezinta pozitia si respectiv viteza unui corp de masa M .Considerand M = 1, o perioada de esantionare ∆t = 1 si folosing metodaEuler de discretizare, se obtine urmatorul sistem liniar discret:

zt+1 = Azz +Buu, cu Az =

[1 10 1

]

, Bu =

[01

]

.

Consideram de asemenea restrictii de tip box pe intrare:

−1 ≤ u ≤ 1

si cost patratic pe etapa de forma:

‖zt‖2Q0, ‖ut‖2R0

, unde Q0 = 0.1I2, R0 = 1.

Sa se aduca problema de control optimal cu orizont de predictie N = 2la o problema QP prin pastrarea starilor si respectiv prin eliminarea lorpornind din starea initiala z0 = [1 1]T .

Rezolvare. Pentru aceasta problema observam ca referintele pentru starizreft si intrari uref

t sunt 0. Pentru cazul cand pastram starea ın variabilade decizie, avem urmatoarea problema de optimizare QP convexa:

minx

1

2xTQx

s.l.: Ax = b, Cx ≤ d,

Page 152: Metode de Optimizare Numeric˘a

152 Capitolul 6. Metode pentru probleme de optimizare constransa

unde matricele si vectorii corespunzatori problemei sunt dati de:

Q =

1 0 0 00 0.1I2 0 00 0 1 00 0 0 0.1I2

, x =

u0

z1u1

z2

∈ R

6,

A =

0 1 0 0 0 0−1 0 1 0 0 00 −1 −1 0 1 00 0 −1 −1 0 1

, b =

2100

,

C =

1 0 0 0 0 0−1 0 0 0 0 00 0 0 1 0 00 0 0 −1 0 0

, d =

1111

.

Pentru cazul cand eliminam starile din variabila de decizie, avemurmatoarea problema de optimizare QP convexa:

minx∈R2

1

2xTQx+ qTx

s.l.: Cx ≤ d,

unde matricele si vectorii corespunzatori problemei sunt dati de:

AB =

0 01 01 01 1

, Ap =

1 10 11 20 1

, C =

1 0−1 00 10 −1

, d =

1111

,

x =

[u0

u1

]

, Q = I2 + ABT(0.1I4)AB =

[1.3 0.10.1 1.1

]

,

q = ABT(0.1I4)Apz0 =

[0.50.1

]

.

Problema 6. Fie matricea A ∈ Rm×n, m ≤ n, cu rang maxim pe linii.

Pentru orice matrice Q ∈ Rn×n, ce satisface xTQx > 0, oricare ar fi

x ∈ Ker(A), x 6= 0, sa se arate ca matricea:[Q AT

A 0

]

este nesingulara (inversabila).

Page 153: Metode de Optimizare Numeric˘a

6.4. Probleme propuse 153

Rezolvare. Reamintim definitia subspatiului kernel(A):

kernel(A) = {x ∈ Rn : Ax = 0}.

O formulare echivalenta a proprietatii de inversabilitate pentru o matricepatratica implica ca singura solutie a sistemului:

[Q AT

A 0

]

y = 0, (6.12)

sa fie vectorul cu elementele 0. Daca partitionam solutiile sistemului prin

y =

[uv

]

, ramane de aratat ca singurele instante ale vectorilor u si v ce

satisfac sistemul (6.12) sunt nule. Din (6.12) avem:

Qu+ ATv = 0, Au = 0.

A doua ecuatie indica u ∈ kernel(A). Inmultind la stanga ın primaecuatie cu uT obtinem:

uTQu+ uTAT v = 0. (6.13)

Tinand cont ca u ∈ kernel(A), iar ın enunt am presupus ca uTQu > 0,concluzionam (6.14) este imposibil de satisfacut pentru orice u 6= 0. Pede alta parte, considerand u = 0 si v 6= 0, prima ecuatie a sistemului(6.12) devine:

ATv = 0. (6.14)

Deoarece matricea A are rang maxim pe linii, matricea AT are rangmaxim pe coloane, singurul vector ce satisface ATv = 0 este v = 0. Inconcluzie, am aratat ca singurul vector ce satisface sistemul (6.12) estevectorul nul.

6.4 Probleme propuse

Problema 1. Ce se ıntampla daca aplicam metoda bariera urmatoareiprobleme:

minx∈R2

x2

s.l.: x1 ≤ x2, 0 ≤ x2.

Page 154: Metode de Optimizare Numeric˘a

154 Capitolul 6. Metode pentru probleme de optimizare constransa

Problema 2. Fie problema:

minx∈R

f(x) (= x2 + 1)

s.l.: 2 ≤ x ≤ 4.

Sa se gaseasca punctele KKT pentru aceasta problema, functia debariera logaritmica B(x) corespunzatoare si sa se traseze grafic f(x) sif(x) + τB pentru mai multe valori ale lui τ .

Problema 3. Fie o problema convexa de forma:

minx∈Rn

f(x)

s.l.: gi(x) ≤ 0 ∀i = 1, . . . , m,

ın care gi sunt de doua ori diferentiabile. Definim functia de bariera

inversa φinv(x) =

m∑

i=1

− 1

gi(x)si calea centrala din aceasta functie

drept punctele x(t) = argminx

tf(x) + φinv(x). Sa se demonstreze ca

tf(x) + φinv(x) este o functie convexa ın x, pentru orice t > 0. Sa searate de asemenea cum se poate construi o variabila duala λ fezabila dinx(t).

Problema 4. Consideram din nou problema convexa definita ın ecuatia(6.1) la care mai adaugam o constrangere:

minx∈Rn

f(x)

s.l.: g(x) ≤ 0, Ax = b, xTx ≤ r2,

unde r ∈ R, gi sunt convexe si de doua ori diferentiabile, iar A ∈ Rp×n cu

rang(A) = p < n. Fie B(x) functia de bariera logaritmica pentru aceastaproblema. Sa se gaseasca un α > 0 astfel ıncat ∇2(f(x) + τB(x))<αInpentru orice x fezabil si τ > 0.

Problema 5. Consideram problema convexa definita ın ecuatia (6.4),unde adaugam un termen patratic functiei obiectiv:

minx∈Rn

f(x) + (Ax− b)TQ(Ax− b)

s.l.: Ax = b,

Page 155: Metode de Optimizare Numeric˘a

6.4. Probleme propuse 155

unde Q<0. Este pasul metodei Newton extinse, d, acelasi pentru aceastaproblema modificata ca acela al problemei originale (6.4)?

Problema 6. Consideram din nou problema convexa definita ın ecuatia(6.4). Preusupunem ca f(x) este de doua ori diferentiabila si∇2f(x) > 0,iar Lagrangianul L(x, λ) pentru aceasta problema are un punct de minimunic. Sa se demonstreze ca daca exista un K astfel ıncat:

∥∥∥∥∥

[∇2f(x) AT

A 0

]−1∥∥∥∥∥2

≤ K,

atunci functia duala q este puternic concava in λ, cu ∇2q(λ) � − 1KIp.

Problema 7. Pentru problema neconvexa urmatoare:

minx∈R2

5

2x21 +

5

2x22 + 3x1x2 + x1 + x2

s.l: x21 + 2x2

2 − 2x2 = 2,

sa se aplice prima iteratie a metodei Lagrange-Newton, pornind dinpunctul initial x0 = [1 1]T si µ0 = 1.

Problema 8. Fie problema:

minx∈R2

x41 + x4

2 + 2x21x

22

s.l: x1 + x2 = 0,

Sa se gaseasca un punct initial fezabil si sa se implementeze primaiteratie a metodei Newton extinsa cu un pas α0 > 0 selectat la alegere.

Problema 9. Fie problema:

minX∈Rn×n

Tr(X)− log det(X)

s.l: X ≻ 0, Xs = y,

unde X ∈ Rn×n este variabila, y, s ∈ R

n sunt date, iar sTy = 1.Observam ca functia B(x) = − log det(X) este bariera logaritmica pentruconul matricelor pozitiv semidefinite Sn

+. Sa se determine conditiile KKTpentru aceasta problema. Sa se verifice ca punctul optim este:

X∗ = I + yyT − 1

sT sssT .

Page 156: Metode de Optimizare Numeric˘a

156 Capitolul 6. Metode pentru probleme de optimizare constransa

Problema 10. Pentru problema convexa:

minx∈R2

5

2x21 +

5

2x22 + x1 − x2

s.l: 4x1 + x2 = 16, x21 + x2

2 ≤ 20,

aplicati prima iteratie a metodei bariera pornind din punctul fezabil x0.

Page 157: Metode de Optimizare Numeric˘a

Capitolul 7

Aplicatii din inginerie

In acest capitol prezentam o serie de aplicatii ale metodelor si claselorde probleme de optimizare descrise ın materialul anterior. In sectiunilece urmeaza definim probleme reale din diferite domenii ale ingineriei,analizam modelele matematice ale acestora si ın final, selectam siaplicam fiecarui caz o metoda de optimizare numerica adecvata rezolvariiproblemei respective.

7.1 Control optimal

Teoria optimizarii se afla ın stransa legatura cu teoria sistemelorsi controlului, ambele domenii vizand convergenta traiectoriei\siruluigenerat catre anumite referinte sau puncte de optim. De aceea, multeprobleme din teoria sistemelor se pot formula si rezolva sub formaproblemelor de optimizare. Daca teoria controlului presupune analizastabilitatii si reglarea proceselor dinamice, controlul optimal propuneın plus, realizarea celor doua obiective mentinand la minimum unanumit criteriu si satisfacand constrangeri fizice de fezabilitate. Deexemplu, daca urmarim reglarea si mentinerea nivelului de lichid dintr-unrezervor, trebuie sa tinem cont de debitul maxim admisibil, performantelesenzorilor de nivel, puterea pompei hidraulice etc. De aceea, procesul dereglare vizat trebuie sa ia ın calcul si limitele componentelor fizice. Fieun sistem neliniar cu dinamica discreta:

zt+1 = φ(zt, ut), (7.1)

ın care zt ∈ Rnz reprezinta vectorul de stare al sistemului, ut ∈ R

nu

reprezinta vectorul de intrari ale sistemului si functia φ : Rn ×Rm → R

n

Page 158: Metode de Optimizare Numeric˘a

158 Capitolul 7. Aplicatii din inginerie

descrie dinamica sistemului. Un caz particular de sistem dinamic este celliniar zt+1 = Azzt + Buut, unde matricele Az ∈ R

nz×nz si Bu ∈ Rnz×nu .

Consideram de asemenea constrangeri de inegalitate liniare pe stare siintrare, e.g. de forma:

lbz ≤ zt ≤ ubz, Cuut ≤ du ∀t ≥ 0,

unde Cu ∈ Rni×nz si du ∈ R

ni. Asa cum am precizat anterior, ın generalse doreste minimizarea unui criteriu (e.g. combustibil, energie, lucrumecanic etc.) odata cu stabilizarea sistemului. Cunoscand starea initialaz0, definim problema de control optimal prin urmatoarea problema deoptimizare constransa:

minzt,ut

1

2

N∑

t=1

‖zt − zreft ‖2Qt+

N−1∑

t=0

‖ut − ureft ‖2Rt

(7.2)

s.l: z0 = z, zt+1 = φ(zt, ut)

lbz ≤ zt ≤ ubz, Cuut ≤ du ∀t = 0, . . . , N − 1,

unde presupunem cunoscuta starea initiala a sistemului z0 = z si definim‖z − zref‖2Q = (z − zref)TQ(z − zref ). Parametrul N se numeste orizontde predictie. Mai mult, presupunem ca matricele Qt si Rt sunt pozitivdefinite pentru orice t si zreft si respectiv uref

t reprezinta anumite referinteimpuse peste orizontul de predictie pentru starea si intrarea sistemului.Pe scurt, problema de control optimal presupune determinarea unui sirde intrari (ut)0≤t≤N−1 care, aplicate sistemului (7.1), vor conduce starea(zt)0≤t≤N pe o traiectorie dorita. Se observa ca problema de controloptimal se poate reformula ca o problema de optimizare (e.g. in cazulsistemului liniar avem o problema patratica standard, vezi capitolulanterior) si se rezolva cu diferite metode numerice de optimizare (e.g.metoda Lagrange-Newton, metoda de punct interior etc.).

7.1.1 Control optimal aplicat unui robot E-Puck

O aplicatie des ıntalnita, simpla si favorabila pentru testarea algortimilorde optimizare si control este robotul E-Puck (vezi Fig. 7.1). Acestsistem robotic reprezinta un ansamblu electronic mobil ce suportaimplementarea numerica si experimentarea cu algoritmi de optimizarede complexitate relativ ridicata. Mai exact, structura mecanica arobotulului E-Puck este sustinuta de doua motoare pas-cu-pas atasate

Page 159: Metode de Optimizare Numeric˘a

7.1. Control optimal 159

ambelor roti, iar cea electronica este definita de urmatoarele componente:microcontroller dsPIC30 (16-bit), dispozitiv de comunicatie Bluetooth(folosit ın simularea sistemelor de tip retea), senzori infrarosu, cameravideo CMOS (rez. 640× 480), senzor ultrasunete, accelerometru 3D etc.

Figura 7.1: Robot e-Puck.

Chiar si pentru cele mai simple probleme ce implica sisteme multi-robot,modelul matematic al unui sistem robotic este crucial ın proiectarea dealgoritmi numerici. In acest subcapitol consideram un model simplificatal robotului E-Puck, si anume cel restrictionat doar la deplasarea ınainte(fara a considera posibilitatea de deplasare ınapoi). Modelul dinamicsimplificat este liniar, continuu si este definit de urmatoarele ecuatii:

y =ru1

2+

ru2

2

θ =ru1

2l− ru2

2l,

ın care y reprezinta distanta parcursa ın directia ınainte, θ unghiulde viraj, r raza rotilor, l distanta de la roata la centrul de greutateal robotului, iar u1 si u2 reprezinta viteza unghiulara a primei roti sirespectiv, a celei de-a doua roti. Pentru a respecta consistenta notatiilor,

notam starea sistemului cu z =

[yθ

]

si intrarea cu u =

[u1

u2

]

. Mai departe,

rescrierea modelului anterior va avea urmatoarea forma:

z = Azz + Buu,

ın care Az = 0 ∈ R2×2 si Bu =

[r2

r2

r2l

− r2l

]

. In scopul efectuarii de

experimente numerice, discretizam sistemul liniar continuu definit demodelul anterior. Una dintre metodele cele mai vechi si mai simple este

Page 160: Metode de Optimizare Numeric˘a

160 Capitolul 7. Aplicatii din inginerie

metoda Euler de discretizare, ce presupune aproximarea derivatei uneifunctii diferentiabile f(t) cu urmatoarea expresie:

df

dt(t) ≈ f(t+∆t)− f(t)

∆t,

unde intervalul ∆t se determina ın functie de viteza de evolutie aprocesului. Obtinem aproximarea discreta a modelului robotului, datade urmatoarea relatie de recurenta:

zt+1 =(I2 −∆tAz

)zt +∆tBuut,

ın care I2 este matricea identitate de ordin 2. Alegand ∆t = 0.5 s,obtinem sistemul dinamic si matricele sistemului de forma:

zt+1 = Azzt +Buuu, unde Az = I2 −1

2Az, Bu =

1

2Bu.

Un exemplu simplu de problema de control optimal poate fi definitde urmarirea unei traiectorii sinusoidale pe o suprafata plana de catrerobotul E-Puck. In acest caz, definim traiectoria discreta zreft =(yreft , θreft )T ce se doreste a fi urmarita. Caracteristica discreta a referinteiimpune esantionarea functiei sinus continue cu o anumita perioada T (ınsimulari am considerat T = 0.1). Acuratetea cu care robotul urmaresteo curba sinusoidala variaza ın functie de perioada de esantionare afunctiei sinus, orizontul de predictie considerat si de constrangerileaplicate problemei de control optimal. In cel mai simplu caz, consideramca robotul pleaca din origine si dorim urmarirea unui sir de puncte(xt, sin xt), unde xt+1 − xt = T. In acest caz, nu putem considera careferinta este definita de sirul propriu-zis de puncte, deoarece marimilext si sin xt difera de marimile starii sistemului date de distanta parcursayreft si unghiul de orientare θreft . Pentru a realiza conversia marimilorfacem urmatoarele observatii:

• observam ca orice punct de pe graficul functiei sin x se afla la ununghi θ = arctan cosx fata de orizontala;

• distanta dintre doua puncte din sirul definit anterior este data de:y =

(xt+1 − xt)2 + (sin xt+1 − sin xt)2.

In concluzie, realizam conversia sirului (xt, sin xt) si obtinem referinta:

zreft = (yreft , θreft ) =(√

(xt+1 − xt)2 + (sin xt+1 − sin xt)2, arctan cos xt

)

,

ureft = 0.

Page 161: Metode de Optimizare Numeric˘a

7.1. Control optimal 161

Problema de control optimal pentru un orizont de predictieN = 2 devine:

minzt,ut

1

2

[

(z1 − zref1 )TQ1(z1 − zref1 ) + (z2 − zref2 )TQ2(z2 − zref2 )]

+ (7.3)

1

2

(uT0R0u0 + uT

1R1u1

)

s.l.: z0 = z, z1 = Azz0 +Buu0, z2 = Azz1 +Buu1,

umin ≤ u0 ≤ umax, umin ≤ u1 ≤ umax,

unde consideram Q1 = Q2 = I2 si R0 = R1 = 0.1I2. Mai mult,consideram r = 2 cm, l = 1 cm, umax = [20 20]T si umin = [−2 − 2]T .Folosim procedura de control bazata pe orizontul alunecator, i.e. lafiecare pas se masoara/estimeaza starea sistemului si se rezolva problemade control optimal cu orizont finit enuntata anterior; se obtine o secventade N intrari optimale, dar se aplica doar primele Nc ≤ N intrari dinaceasta secventa, dupa care procedura se repeta. Metoda de controlbazata pe principiul orizontului alunecator se numeste control predictiv(MPC - Model Predictive Control). Rescriem compact problema decontrol optimal pentru starea initiala z0 = z si orizont de predictie N = 2sub forma unei probleme de optimizare patratica convexa:

minx∈R8

1

2xTQx+ qTx (7.4)

s.l.: Ax = b, Cx ≤ d,

unde matricele si vectorii corespunzatori problemei sunt dati de:

x =

u0

z1u1

z2

, Q =

R0 0 0 00 Q1 0 00 0 R1 00 0 0 Q2

, A =

[−Bu I2 0 00 −Az −Bu I2

]

,

q =

0

−Q1zref1

0

−Q2zref2

, b =

[Azz00

]

, C =

I2 0 0 0−I2 0 0 00 0 I2 00 0 −I2 0

, d =

umax

−umin

umax

−umin

.

Exercitiul 3. Sa se rezolve problema patratica convexa (7.4) cu metodade punct interior.

Page 162: Metode de Optimizare Numeric˘a

162 Capitolul 7. Aplicatii din inginerie

Rezolvare. Reamintim ca primul pas din metoda de punct interiorpresupune transformarea echivalenta a problemei (7.4) ıntr-una faraconstrangeri de inegalitate:

minx∈R8

1

2xTQx+ qTx− τ

8∑

i=1

log(−Cix− di) (7.5)

s.l. Ax = b,

unde Ci reprezinta linia i a matricei C. Apoi, aplicam algoritmulpropriu-zis:

1. Se dau un punct initial x = x0 strict fezabil, τ = τ0 > 0, σ < 1,toleranta ǫ > 0 si parametrul m numarul de inegalitati;

2. Cat timp m/t ≥ ǫ repeta:

(a) calculeaza x(τ) solutia problemei (7.5);

(b) actualizeaza x = x(τ) si τ = στ .

Functia Matlab urmatoare rezolva problema (7.4) cu ajutorul metodeide punct interior:

function []=robot_interior_point(eps)

Q=eye(2); R=0.1*eye(2); r=2;

l=1; iter=1; zinit=[0;0];

vec=[0:0.1:40]; z_collect=[];

C=[-eye(4);eye(4)];

d=[2*ones(4,1);20*ones(4,1)];

while (iter<380)

B=[r/2 r/2;r/(2*l) -r/(2*l)];

zref1=[norm([vec(iter+1)-vec(iter)...

sin(vec(iter+1))-sin(vec(iter))]);atan(cos(vec(iter)))];

iter=iter+1;

zref2=[norm([vec(iter+1)-vec(iter)...

sin(vec(iter+1))-sin(vec(iter))]);atan(cos(vec(iter)))];

iter=iter+1; zref=[zref1;zref2];

t=3; ro=5; z0=zinit;

while ((4/t)>eps)

Page 163: Metode de Optimizare Numeric˘a

7.1. Control optimal 163

cvx_begin quiet

variable z(4);

variable u(4);

minimize ((1/2)*(z-zref)’*(z-zref)+(0.05*u’*u)...

-(1/t)*ones(1,8)*log(-C*u+d))

subject to

z(1:2) == z0 + B*u(1:2)/2;

z(3:4) == z(1:2) + B*u(3:4)/2;

cvx_end

t=ro*t;

end

zinit=z(3:4); z_collect=[z_collect z];

end

s=0;

for i=1:length(z_collect)/2

s=s+z_collect(2*i-1)*tan(z_collect(2*i));

delta_x(i)=s;

end

sine=sin([0:0.1:length(delta_x)/10]);

figure;

hold on;

plot(1:length(delta_x),delta_x,’LineWidth’,2);

plot(1:length(sine),sine,’r’,’LineWidth’,2);

xlabel(’Numar iteratii’); ylabel(’Traiectorie’);

legend (’Pozitia z’,’Referinta’);

end

Rezultatele obtinute pe baza strategiei de control predictiv, unde lafiecare pas problema de control optimal se rezolva cu metoda de punctinterior pentru probleme convexe, sunt prezentate ın Fig. 7.2. Se observao urmarire buna a traiectoriei impuse robotului. In cea de-a doua figurareprezentam traiectoria optima a intrarilor peste orizontul de simulare.

Page 164: Metode de Optimizare Numeric˘a

164 Capitolul 7. Aplicatii din inginerie

0 20 40 60 80 100−1.5

−1

−0.5

0

0.5

1

1.5

Numar iteratii

Tra

iecto

rie

Pozitia zReferinta

0 20 40 60 80 100−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

t

Intr

ari o

ptim

e (u

1, u2)

viteza unghiulara 1viteza unghiulara 2

Figura 7.2: Traiectoria robotului folosind tehnica de control optimal cuorizont alunecator: evolutia starilor sistemului (stanga) si a intrarilor

optimale (dreapta).

7.1.2 Control optimal aplicat unei instalatii cu

patru rezervoare

In acest subcapitol, consideram o instalatie cu patru rezervoareinterconectate, prezentata ın Fig. 7.3, dispusa cu doua pompe depropulsie a apei. Modelul matematic corespunzator instalatiei este

Page 165: Metode de Optimizare Numeric˘a

7.1. Control optimal 165

neliniar, dat de urmatoarele ecuatii diferentiale:

dh1

dt= −a1

S

2gh1 +a4S

2gh4 +γaSqa,

dh2

dt= −a2

S

2gh2 +a3S

2gh3 +γbSqb,

dh3

dt= −a3

S

2gh3 +(1− γa)

Sqa,

dh4

dt= −a4

S

2gh4 +(1− γb)

Sqb,

unde functiile h1, h2, h3, h4 reprezinta dinamicile nivelurilor lichidului ınrezervoare, cu rolul de stari ale sistemului, iar qa, qb reprezinta debitelede intrare, cu rolul de comenzi (intrari). Pentru conformitate cusubcapitolul anterior, vom renota nivelul hi cu zi pentru i = 1, . . . , 4,iar debitele (qa, qb) cu (u1, u2).

Figura 7.3: Structura instalatiei cu patru rezervoare.

Pentru discretizare, utilizam metoda Euler pentru care putem alegeperioada de esantionare ∆t = 5 s, deoarece procesul este unul lent.Pentru o prezentare simplificata, scriem compact sistemul neliniar discretprin intermediul urmatoarelor notatii: zt+1 = φ(zt) +Buut, unde

φ : R4 → R4, φ(z) =

z1 − 5a1S

√2gz1 +

5a4S

√2gz4

z2 − 5a2S

√2gz2 +

5a3S

√2gz3

z3 − 5a3S

√2gz3

z4 − 5a4S

√2gz4

,

Page 166: Metode de Optimizare Numeric˘a

166 Capitolul 7. Aplicatii din inginerie

Bu =

5γaS

00 5γb

S5(1−γa)

S0

0 5(1−γb)S

.

Valorile parametrilor din cadrul modelului se pot identifica experimentalprin diferite tehnici. Valorile aproximative identificate ın laborator suntprezentate ın Tabelul 7.1. Formulam o problema de control optimal

Parametri S a1 a2 a3 a4 γa γbValori 0.02 5.8e−5 6.2e−5 2e−5 3.6e−5 0.58 0.54Unitate m2 m2 m2 m2 m2

Tabelul 7.1: Parametrii procesului cu patru rezervoare.

pentru modelul neliniar al instalatiei, considerand un orizont de predictieN si referinte pentru intrare si stare date zreft si uref

t :

minzt,ut

1

2

N∑

t=1

‖zt − zreft ‖2Q0+

1

2

N−1∑

t=0

‖ut − ureft ‖2R0

(7.6)

s.l.: z0 = z, zt+1 = φ(zt) +Buut ∀t = 0, . . . , N − 1.

Observam ca problema de optimizare neconvexa ce rezulta din problemade control optimal fara eliminarea starilor (7.6) are forma:

minx∈R6N

1

2xTQx+ qTx (7.7)

s.l.: h(x) = 0,

ın care matricea Q, vectorul q si functia h sunt definiti ın aceeasi manieraca ın subcapitolul anterior.

Exercitiul 4. Sa se rezolve problema (7.6) cu metoda Newton-Lagrange,considerand N = 2 si procedura de orizont alunecator (i.e.implementarea controlului predictiv).

Rezolvare. Problema de control optimal (7.6) pentru N = 2 devine:

minzt,ut

1

2

(

(z1 − zref1 )TQ0(z1 − zref1 ) + (z2 − zref2 )TQ0(z2 − zref2 ))

+

1

2

(uT0R0u0 + uT

1R0u1

)

s.l. z0 = z, z1 = φ(z0) +Buu0, z2 = φ(z1) +Buu1,

Page 167: Metode de Optimizare Numeric˘a

7.2. Problema Google 167

unde zt ∈ R4 si ut ∈ R

2, iar zreft ∈ R4 este o referinta dorita pentru

nivelurile din cele patru rezervoare. Aceasta problema de control optimalse rescrie ca o problema de optimizare de forma (7.7), unde:

x =

u0

z1u1

z2

, Q =

R0 0 0 00 Q0 0 00 0 R0 00 0 0 Q0

, q =

0

−Q0zref1

0

−Q0zref2

,

h : R12 → R8, h(x) =

[φ(z0)− z1 +Buu0

φ(z1)− z2 +Buu1

]

.

Reamintim ca metoda Lagrange-Newton presupune rezolvarea sistemuluide ecuatii:

Qx+ q +∇h(x)Tµ = 0 (7.8)

h(x) = 0,

cu metoda Newton clasica de rezolvare a sistemelor neliniare. Mai exact,fie sistemul de ecuatii neliniare F (x) = 0, metoda Newton presupuneliniarizarea acestuia ın punctul curent xk si rezolvarea sistemului liniarrezultat ın x, i.e.

F (xk) +∇F (xk)(x− xk) = 0.

Algoritmul de rezolvare a problemei de control optimal a fostimplementat pe un PLC Siemens din Laboratorul de Optimizare siControl Distribuit al UPB. In Fig. 7.4 consideram doua referinte pentrufiecare rezervor, fiecare constanta pe o anumita perioada de timp. Seobserva ca sistemul urmareste foarte bine aceste referinte prin strategiade control optimal folosind principiul de orizont alunecator (i.e. controlpredictiv).

7.2 Problema Google

Internetul este dominat progresiv de motoare de cautare, ın sprijinulselectiei si gasirii surselor de informatii cu relevanta maxima. Unul dintrecele mai vechi si eficiente motoare de cautare este Google, care se aflaın continua dezvoltare pe masura ce progresele ın domeniul algoritmilor

Page 168: Metode de Optimizare Numeric˘a

168 Capitolul 7. Aplicatii din inginerie

15

20

25

30

35

40

0 500 1000 1500 1800time(seconds)

level(cm)

h1sh1

h4sh4

10

15

20

25

30

35

40

0 500 1000 1500 1800time(seconds)

level(cm)

h2sh2

h3sh3

Figura 7.4: Traiectoria nivelului de apa din cele patru rezervoare.

avanseaza. Tehnica folosita de Google pentru cautarea si clasificareapaginilor web se numeste PageRank, iar pasul central din aceasta tehnicapresupune clasificarea (ranking-ul) unui numar urias de pagini web. Inacest fel, rezulta o lista ordonata de site-uri ın sensul descrescator alrelevantei ın legatura cu subiectul cautat.Datorita conexiunilor permanente dintre paginile web ın reteauainternet-ului, putem sa reprezentam structura legaturilor dintre paginiprin intermediul unui graf ponderat orientat. Nodurile grafului reprezintapaginile, iar muchiile au rolul link-urilor. Ponderea pij (corespunzatoaremuchiei dintre nodurile i si j) reprezinta probabilitatea ca la o navigarealeatorie ın reteaua de pagini sa se ajunga din pagina i ın pagina j.In plus, putem atribui grafului o matrice de adiacenta E ∈ R

n×n, cucomponenta Eij 6= 0 daca ıntre nodurile i si j exista muchie, iar Eij 6= 0daca nodurile i si j nu sunt legate de o muchie. Numarul de muchii dingraf se reflecta ın numarul de elemente nenule ale matricei E; de aceea,pentru un graf rar (cu putine muchii), matricea de adiacenta va fi rara(va contine preponderent zerouri).Pentru a analiza mai ındeaproape proprietatile matricei de adiacenta

Page 169: Metode de Optimizare Numeric˘a

7.2. Problema Google 169

Figura 7.5: Exemplu de graf orientat.

rezultate din graful paginilor web, introducem urmatoarele notiuni:

Definitia 4. O matrice E ∈ Rm×n se numeste stocastica pe linii daca

are elemente nenegative (i.e. Eij ≥ 0), iar suma pe fiecare linie este egalacu 1. O matrice E ∈ R

m×n se numeste stocastica pe coloane daca areelemente nenegative (i.e. Eij ≥ 0), iar suma pe fiecare coloana este egalacu 1.

Deoarece componentele nenule ale matricei de adiacenta E au rolul deprobabilitati, acestea sunt nenegative, iar matricea E este stocastica pecoloane. Forma algebrica a problemei Google se reduce la a gasi vectorulpropriu corespunzator valorii proprii maxime 1, adica solutia urmatoruluisistem liniar supus constrangerilor:

{

Ex = x

eTx = 1, x ≥ 0.

Problema rezolvarii acestui sistem se poate formula usor ın termeni deoptimizare:

minx∈Rn

f(x)

(

=1

2‖Ex− x‖2

)

(7.9)

s.l.: eTx = 1, x ≥ 0,

unde e = [1 . . . 1]T , matricea E ∈ Rn×n este rara (elementele au valori

preponderent nule). Observam ca problema rezultata este constransa,ınsa daca alegem un parametru τ > 0 suficient de mare, putem obtineo formulare echivalenta fara constrangeri folosind functia de penalitatepatratica:

minx∈Rn

F (x, τ)

(

=1

2‖Ex− x‖2 + τ

2(eTx− 1)2

)

. (7.10)

Page 170: Metode de Optimizare Numeric˘a

170 Capitolul 7. Aplicatii din inginerie

Pe baza teoremei Peron-Frobenius, observam ca putem eliminaconstrangerile de inegalitate x ≥ 0, deoarece solutia optima globala aproblemei de optimizare (7.10) satisface automat aceasta constrangere.Datorita dimensiunilor foarte mari ale ambelor probleme considerate(7.9) si (7.10), ne orientam atentia catre algoritmi de ordinul I deoareceau o complexitate scazuta per iteratie:

• metoda de gradient proiectat pentru cazul constrans (7.9):

xk+1 = [xk − α∇f(xk)](In,∆n)

• metoda gradient pentru cazul neconstrans (7.10):

xk+1 = xk − α∇F (xk, τ)

unde ∆n = {x : eTx = 1, x ≥ 0} este multimea numita simplex siα > 0 este un pas constant. Rezultatele obtinute sunt prezentate ınFig. 7.6 si 7.7. Se observa o convergenta rapida ın ambele metode. Deasemenea, observam ca metoda de penalitate produce o solutie optimapentru problema originala pentru valori relativ mici ale parametrului depenalitate τ .

Exercitiul 5. Fie o matrice E data cu proprietatile descrise anterior.Sa se rezolve prima formulare (7.9) cu ajutorul metodei de gradientproiectat, iar cea de-a doua (7.10) cu metoda gradient pentru cazulneconstrans.

Rezolvare. Deoarece multimea fezabila este descrisa de o combinatiede inegalitati\egalitati liniare, nu putem deduce proiectia ortogonalaa unui punct pe aceasta multime ın mod explicit. De accea, ınimplementare folosim functia Matlab quadprog pentru a obtine oproiectie aproximativa.Consideram urmatoarea functie Matlab ce primeste ca argumentmatricea de adiacenta E si rezolva problema de optimizare prin metodagradientului proiectat:

function [x]=google(E,eps)

[m n]=size(E);

if (m~=n)

error(’Dimensiunile matricii nu sunt compatibile!’);

end

Page 171: Metode de Optimizare Numeric˘a

7.2. Problema Google 171

e=ones(n,1);

%%%% Dac\u a matricea E nu este stochastica pe coloane,

%%%% se creaza o noua matrice care

%%%% indeplineste aceasta proprietate.

if (norm(sum(E,1).^(-1)’-e)>0.0001)

inv=diag(sum(E,1).^(-1));

E=E*inv;

end

I=eye(n); x=5*rand(n,1); x=x/sum(x);

crit_stop=norm(E*x-x);

L=norm(E-I);

while (crit_stop>eps)

%%% Se calculeaza gradientul %%%%

grad=(E-I)’*(E-I)*x;

%%% Se calculeaza pasul metodei gradient %%%%

d=x-(1/L)*grad;

%%% Se proiecteaza pe mul\c timea fezabila%%%%

[grad_proj]=quadprog(eye(n),-d,[],[],e’,1,zeros(n,1));

x=grad_proj;

%%% Criteriul de oprire %%%%

crit_stop=norm(E*x-x);

end end

0 5 10 15 20 250

0.1

0.2

0.3

0.4

0.5

0.6

0.7

Iteratii

f(x

k)

− f

*

Figura 7.6: Convergenta metodei gradient proiectat aplicata unei problemeGoogle de dimensiune n = 50 ın termeni de valorile functiei obiectiv.

Page 172: Metode de Optimizare Numeric˘a

172 Capitolul 7. Aplicatii din inginerie

In cel de-al doilea caz, implementam metoda gradient cu parametrul τdat de utilizator:

function [x]=google_unc(E,eps,gamma)

[m n]=size(E);

if (m~=n)

error(’Dimensiunile matricii nu sunt compatibile!’);

end

e=ones(n,1);

%%%% Dac\u a matricea E nu este stochastica pe coloane,

%%%% se creaza o noua matrice cu aceasta proprietate.

if (norm(sum(E,1).^(-1)’-e)>0.0001)

inv=diag(sum(E,1).^(-1));

E=E*inv;

end

I=eye(n); x=5*rand(n,1); x=x/sum(x);

crit_vec=[];

crit_stop=norm(E*x-x)/norm(x);

L=norm(E-I+(gamma*e*e’));

crit_vec=[crit_vec;crit_stop];

while (crit_stop>eps)

%%% Se calculeaza gradientul %%%%

grad=(E-I)’*(E-I)*x + gamma*(e*e’*x-e);

%%% Se calculeaza pasul metodei gradient %%%%

x=x-(1/L)*grad;

%%% Criteriul de oprire %%%%

crit_stop=norm(E*x-x)/norm(x);

crit_vec=[crit_vec;crit_stop];

end

figure;

plot(0:length(crit_vec)-1,crit_vec,’LineWidth’,2);

xlabel(’Iteratii’); ylabel(’f(x_k) - f^*’);

end

Page 173: Metode de Optimizare Numeric˘a

7.3. Clasificarea de imagini 173

0 0.5 1 1.5 2 2.5 3 3.5 4

x 104

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

Iteratii (k)

f(x

k)

− f

*

0 1 2 3 4 5x 10

4

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

Iteratii (k)

f(x

k)

− f

*

τ=5

τ=10

τ=15

τ=30

τ=50

(a) (b)

Figura 7.7: Convergenta metodei gradient pentru problema Google cun = 103, τ = 50 ın termeni de valorile functiei obiectiv (a). Dependenta

convergentei metodei gradient de parametrul τ aplicata problemei Google pen = 103 (b).

7.3 Clasificarea de imagini

Tehnicile de clasificare si ınvatare automata sunt notiuni centrale ındomeniul statisticii, calculatoarelor, prelucrarii semnalelor etc. Ambelese ocupa ın mod fundamental cu problema recunoasterii tiparelor (patternrecognition) prin dezvoltarea de modele matematice ce suporta o etapapreliminara de antrenare (experienta), pe baza careia realizeaza operatiide clasificare/regresie de obiecte si functii. O parte din numeroaseleaplicatii ale acestor tehnici cuprinde:

1. recunoasterea email-urilor de tip spam sau malware;

2. recunosterea vocii/fetei;

3. compresia cantitatilor uriase de date;

4. detectia de tipare ın cadrul unei imagini;

5. recunoasterea scrisului de mana.

Una dintre cele mai renumite tehnici de recunoastere/clasificare este SVM- Support Vector Machine. Aceasta tehnica presupune determinarea unuimodel matematic ce separa doua sau mai multe clase de obiecte cu o

Page 174: Metode de Optimizare Numeric˘a

174 Capitolul 7. Aplicatii din inginerie

Figura 7.8: Hiperplan de separare a doua clase de obiecte.

anumita acuratete. In vederea clasificarii sau recunoasterii unui obiectnecunoscut, se introduc datele obiectului ın modelul matematic, iar laiesire se primeste id-ul clasei din care face parte. In cele mai simplecazuri, modelul matematic cautat este reprezentat de un hiperplan H ={y ∈ R

n : aTy = b} caracterizat de parametrii a ∈ Rn si b ∈ R. De aceea,

problema se reduce la a gasi parametrii optimi (a, b) care sa separe catmai bine clasele de obiecte (vezi Fig. 7.8). In termenii teoriei optimizarii,problema se formuleaza dupa cum urmeaza:

mina∈Rn,b∈R

1

2‖a‖2 (7.11)

s.l.: ci(aTyi − b

)≥ 1 ∀i = 1, . . . , m,

unde a si b reprezinta parametrii hiperplanului, iar ci indica clasa dincare face parte obiectul yi. Variabilele de decizie x = [aT b]T reprezintaparametrii unui hiperplan de separare a claselor de obiecte/imagini, asacum se observa ın Fig. 7.8. Problema de optimizare convexa patraticaavand numai constrangeri de inegalitate (7.11) o rezolvam prin metodade punct interior aplicata problemelor convexe (CP).In continuare, exemplificam o aplicatie practica a tehnicii SVM prinproblema recunoasterii cifrei 7 dintr-o imagine. Se cunoaste ca oriceimagine poate fi reprezentata sub forma unei serii de pixeli, unde fiecarepixel la randul sau este definit de o valoare (e.g. ıntre 0 − 256) datade culoarea acestuia. Pentru a simplifica exemplul, consideram imaginimono-colore compuse din 49 de pixeli, ın care pixelii sunt reprezentati deniveluri de gri cu valori ıntre 0 si 5 (vezi Fig. 7.9). In etapa de initializarea tehnicii SVM se fixeaza o multime de antrenare compusa din diferite

Page 175: Metode de Optimizare Numeric˘a

7.3. Clasificarea de imagini 175

imagini ce contin variante ale cifrei 7 (ce fac parte din clasa I de obiecte)si imagini aleatorii complet diferite de cifra 7 (ce fac parte din clasa aII-a de obiecte). Deoarece aceasta etapa se mai numeste si antrenare, secunoaste pentru fiecare imagine clasa din care face parte. Fiecarei imaginii i se asociaza un vector de 49 de componente (fiecare componenta luandvalori ıntregi ıntre 0 si 5) si un parametru c ce reprezinta indexul clasei dincare face parte imaginea respectiva (daca c = 1 atunci imaginea continecifra 7, daca c = −1 atunci imaginea este aleatorie). Pe baza acesteimultimi de antrenare, urmarim realizarea unui hiperplan de separare aacestor doua clase.

(a)

(b)

Figura 7.9: Multimea de antrenare a modelului matematic de separare: (a)imagini ce fac parte din clasa I; (b) imagini ce fac parte din clasa a II-a.

Exercitiul 6. Sa se rezolve problema (7.11) ın contextul prezentatanterior. Sa se testeze eficienta solutiei (hiperplanului) obtinute prinevaluarea ratei de succes ın recunoasterea cifrei 7.

Rezolvare. Alegem un set de imagini ale cifrei 7(vezi Fig. 7.9 (a)) si unset de imagini aleatorii (vezi Fig. 7.9 (b)) ce reprezinta multimea de

Page 176: Metode de Optimizare Numeric˘a

176 Capitolul 7. Aplicatii din inginerie

antrenare a hiperplanului de separare. Transformam aceste imagini ınvectori de pixeli cum am descris ınainte, ce pot fi introdusi ıntr-o functieMatlab si folositi ın rezolvarea problemei (7.11). Urmatoarea secventade cod rezolva problema SVM pe baza multimii de antrenare date devectorii de pixeli introdusi de la tastatura.

function []=pattern()

%% Elemente clasa 1 din mul\c timea de antrenare

C1=zeros(12,49);

C1(1,:)=[zeros(1,16) 2 2 2 zeros(1,6) 2 zeros(1,5) 2...

zeros(1,6) 2 zeros(1,10)];

C1(2,:)=[zeros(1,15) 3 3 3 zeros(1,6) 3 zeros(1,5) 3...

zeros(1,6) 3 zeros(1,11)];

C1(3,:)=[zeros(1,16) 2 2 2 zeros(1,4) 1 0 2...

zeros(1,6) 2 zeros(1,6) 2 zeros(1,9)];

C1(4,:)=[zeros(1,16) 4 4 4 zeros(1,4) 4 0 4 zeros(1,4) 4...

zeros(1,6) 4 zeros(1,11)];

C1(5,:)=[zeros(1,10) 3 zeros(1,5) 3 0 3 zeros(1,3) 3

zeros(1,3) 3 zeros(1,3) 3 zeros(1,3) 3 zeros(1,14)];

C1(6,:)=[zeros(1,8) 2 2 2 2 2 zeros(1,6) 2 zeros(1,5)...

2 zeros(1,5) 2 zeros(1,6) 2 zeros(1,10)];

C1(7,:)=[zeros(1,15) 2 2 2 2 2 zeros(1,6) 2 zeros(1,5)...

2 zeros(1,5) 2 zeros(1,6) 2 zeros(1,3)];

C1(8,:)=[zeros(1,17) 3 3 3 3 zeros(1,6) 3 zeros(1,5)...

3 zeros(1,6) 3 zeros(1,8)];

C1(9,:)=[zeros(1,17) 3 zeros(1,5) 3 0 3 zeros(1,3)...

3 zeros(1,3) 3 0 3 zeros(1,3) 3 zeros(1,9)];

C1(10,:)=[zeros(1,8) 3 3 zeros(1,5) 3 zeros(1,6) 3...

zeros(1,6) 3 3 3 3 zeros(1,16)];

C1(11,:)=[zeros(1,17) 2 2 2 zeros(1,4) 2 0 2 zeros(1,6) 2...

zeros(1,6) 2 zeros(1,8)];

C1(12,:)=[zeros(1,15) 2 2 2 2 zeros(1,3) 2 zeros(1,7) 2...

zeros(1,6) 2 zeros(1,11)];

%% Elemente clasa 2 din mul\c timea de antrenare

C2=zeros(7,49);

for i=1:7

x=full(round(5*sprand(1,49,0.5)));

x(x<2)=0; C2(i,:)=x;

end

Page 177: Metode de Optimizare Numeric˘a

7.3. Clasificarea de imagini 177

%% Elemente de testare a hiperplanului rezultat

C3=zeros(8,49);

C3(1,:)=[zeros(1,11) 3 3 zeros(1,6) 3 zeros(1,6)...

3 zeros(1,3) 3 3 3 3 zeros(1,15)];

C3(2,:)=[zeros(1,9) 2 3 3 4 zeros(1,3) 2 0 0 4...

zeros(1,6) 4 zeros(1,6) 4 zeros(1,15)];

C3(3,:)=[zeros(1,9) 2 2 2 2 zeros(1,6) 3 zeros(1,5) 3...

zeros(1,6) 3 zeros(1,16)];

C3(4,:)=[ones(1,15) 4 4 4 ones(1,6) 4 ones(1,5) 4...

ones(1,6) 4 ones(1,11)];

C3(5,:)=[0 3*ones(1,5) 0 0 3*ones(1,5) zeros(1,5) 4 4...

zeros(1,4) 4 4 zeros(1,5) 4 4 zeros(1,5) 4 4 zeros(1,9)];

C3(6,:)=[zeros(1,9) 2*ones(1,5) zeros(1,5) 2 2 zeros(1,4)...

2 2 zeros(1,4) 2 2 zeros(1,5) 2 2 zeros(1,9)];

C3(7,:)=[zeros(1,8) 2*ones(1,6) 0 2 zeros(1,3) 2 2...

zeros(1,5) 2 2 zeros(1,5) 2 2 zeros(1,14)];

C3(8,:)=[0 3*ones(1,5) 0 0 3*ones(1,5) zeros(1,5) 3 3...

zeros(1,4) 3 3 zeros(1,5) 3 3 zeros(1,5) 3 3 zeros(1,9)];

C4=zeros(12,49);

for i=1:12

x=full(round(5*sprand(1,49,0.5)));

x(x<2)=0; C4(i,:)=x;

end

%%% Rezolvare problema SVM

cvx_begin

variable w(49);

variable b(1);

minimize ((1/2)*w’*w)

subject to

C1*w-b*ones(12,1)>=ones(12,1);

C2*w-b*ones(7,1)<=-ones(7,1);

cvx_end

end

Pentru a testa solutia gasita (a∗, b∗) prin rezolvarea problemei (7.11),verificam certitudinea cu care hiperplanul rezultat situeaza punctele de

Page 178: Metode de Optimizare Numeric˘a

178 Capitolul 7. Aplicatii din inginerie

test ın clasele aferente:

aTy − b

{

< 0, atunci imaginea data de y nu contine cifra 7

> 0, atunci imaginea data de y contine cifra 7.

In cazul punctelor considerate ın secventa de cod precedenta, tragemurmatoarele concluzii:

• daca testam hiperplanul cu diferite imagini aleatorii cu densitatemare de pixeli gri (vezi Fig. 7.10) si respectiv, imagini cu cifra7 transformata ın diverse moduri (translatie la stanga/dreapta,ınclinare etc.) atunci rezulta o rata de succes (recunoastere corecta)de ≈ 80%;

• daca pentru testare consideram imagini aleatorii cu densitate micasi respectiv, imagini cu cifra 7 transformata ın diverse moduri(translatie la stanga/dreapta, ınclinare etc.) atunci rezulta o ratade succes de ≈ 52%.

Figura 7.10: Exemple de imagini aleatorii cu densitate ridicata de pixeligri.

Motivatia ratei de succes ın al doilea caz este data de doi factori: (i)similaritatea ridicata ıntre imaginile cu densitate mica de pixeli si cele cecontin cifra 7, (ii) numarul relativ mic de imagini de antrenare (cu catmultimea de antrenare contine mai multe puncte, cu atat hiperplanulrezultat este mai eficient). In concluzie, am obtinut un hiperplan deseparare ce recunoaste cu o anumita rata de succes imagini ce contin saunu cifra 7.

Page 179: Metode de Optimizare Numeric˘a

Bibliografie

[1] I. Necoara. Metode de Optimizare Numerica. Editura PolitehnicaPress, 2013.

[2] D.G. Luenberger. Linear and nonlinear programming. Kluwer, 1994.

[3] J. Nocedal and S. Wright. Numerical Optimization. Springer Verlag,2006.