Metode Optimizare Numerica

S-ar putea să vă placă și

Sunteți pe pagina 1din 179

Metode de Optimizare Numerica

Culegere de probleme

Ion Necoar
a

Dragos Clipici

Andrei P
atrascu

Departamentul de Automatica si Ingineria Sistemelor


Universitatea Politehnica din Bucuresti
Email: {ion.necoara,dragos.clipici,andrei.patrascu}@acse.pub.ro
2013

Prefat
a
Lucrarea de fata este construita dupa structura cursului de Tehnici
de optimizare, predat de primul autor la Facultatea de Automatica si
Calculatoare a Universitatii Politehnica din Bucuresti si se adreseaza
studentilor de la facultatile cu profil tehnic sau cu tematici adiacente
ingineriei sistemelor si calculatoarelor. Aceasta contine o serie de
probleme rezolvate de laborator si seminar, avand rolul de suport
pentru aplicatiile teoretice/practice abordate la diferite materii ce includ
notiuni din teoria optimizarii. La nceputul fiecarui capitol este introdus
un succint breviar teoretic n care se definesc instrumentele necesare
ntregului capitol, iar la final este expusa o sectiune cu probleme
propuse ce au ca scop posibilele extensii ale aplicatiilor rezolvate.
Rezolvarea problemelor de laborator a fost implementata n mediul de
programare Matlab, iar n corpul rezolvarii au fost incluse secventa
de cod corespunzatoare si figuri ce reflecta performantele practice ale
algoritmilor folositi. Pe tot parcursul lucrarii prezentam multe exemple
de aplicatii si exercitii rezolvate pentru a face mai accesibila ntelegerea
teoriei si conceptelor legate de optimizarea numerica. Precizam ca o
parte din algoritmii prezentati nca reprezinta o tema de cercetare de
actualitate n domeniul optimizarii n care autorii activeaza. Capitolele
au fost structurate gradat, dupa dificultatea si importanta notiunilor
teoretice necesare n cadrul aplicatiilor, n numar de sapte:
Cap
Cap
Cap
Cap
Cap
Cap
Cap

1:
2:
3:
4:
5:
6:
7:

Functii ale pachetului de optimizare Matlab;


Optimizare convexa;
Algoritmi de ordinul I pentru probleme neconstranse;
Algoritmi de ordinul II pentru probleme neconstranse;
Optimizare constransa;
Algoritmi pentru probleme constranse;
Aplicatii din inginerie.

Desi fiecare dintre capitole dezvolta cazuri concrete de aplicatii ale


algoritmilor n cauza, ultimul este alocat unei serii de aplicatii reale, de
actualitate, din diverse domenii ale ingineriei, precum reglarea (controlul)
optimala, prelucrarea semnalelor sau nvatarea automat
a. Fiecare
aplicatie ilustreaza tehnici specifice de modelare matematica a unei
probleme si strategii de formulare a modelului matematic de optimizare

6
pentru aplicatia respectiva. Acest capitol final demonstreaza astfel
aplicabilitatea metodelor numerice de optimizare prezentate n capitolele
anterioare n probleme extrem de studiate din inginerie.1
In final, precizam ca am ncercat sa reducem din caracterul tehnic al
limbajului pentru o expunere cat mai clara si n acelasi timp, pentru
ca cititorul sa si poata fixa cat mai usor notiunile fundamentale de
optimizare.

Autorii, mai 2013

Cuprins
1 Functii ale pachetului de optimizare MATLAB
1.1 Preliminarii . . . . . . . . . . . . . . . . . . . .
1.1.1 Mediul Matlab . . . . . . . . . . . . . .
1.2 Probleme rezolvate de laborator . . . . . . . . .
1.2.1 Minimizare neconstransa . . . . . . . . .
1.2.2 Minimizare constransa . . . . . . . . . .
1.2.3 Programare liniara . . . . . . . . . . . .
1.2.4 Programare patratica . . . . . . . . . . .
1.3 Probleme rezolvate de seminar . . . . . . . . . .
1.3.1 Diferentiere multivariabila . . . . . . . .
1.3.2 Probleme de optimizare generale . . . .
1.4 Probleme propuse . . . . . . . . . . . . . . . . .
2 Probleme de optimizare convex
a
2.1 Preliminarii . . . . . . . . . . . .
2.1.1 Multimi convexe . . . . .
2.1.2 Functii convexe . . . . . .
2.2 Pachet CVX . . . . . . . . . . . .
2.2.1 Instalare . . . . . . . . . .
2.2.2 Elemente de baza . . . . .
2.3 Probleme rezolvate de laborator .
2.4 Probleme rezolvate de seminar . .
2.4.1 Multimi si functii convexe
2.5 Probleme propuse . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

11
11
12
13
13
17
24
27
29
29
30
35

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

38
38
38
40
41
42
43
44
48
48
57

3 Metode de ordinul I
3.1 Preliminarii . . . . . . . . . . . . . .
3.2 Probleme rezolvate de laborator . . .
3.2.1 Metoda Gradient . . . . . . .
3.2.2 Metoda gradientilor conjugati

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

63
63
64
64
70

.
.
.
.
.
.
.
.
.
.

Cuprins

3.3

3.4

Probleme rezolvate de seminar . . . . . . .


3.3.1 Aproximari patratice . . . . . . . .
3.3.2 Conditii de optimalitate de ordin I
3.3.3 Metoda gradient . . . . . . . . . .
Probleme propuse . . . . . . . . . . . . . .

4 Metode de ordinul II
4.1 Preliminarii . . . . . . . . . . . . . . . .
4.2 Probleme rezolvate de laborator . . . . .
4.2.1 Metoda Newton . . . . . . . . . .
4.2.2 Metode cvasi-Newton . . . . . . .
4.3 Probleme rezolvate de seminar . . . . . .
4.3.1 Metoda Newton si metoda BFGS
4.4 Probleme propuse . . . . . . . . . . . . .

.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.

72
72
73
75
82

.
.
.
.
.
.
.

85
85
87
87
90
92
92
100

5 Probleme de optimizare constr


ans
a
103
5.1 Preliminarii . . . . . . . . . . . . . . . . . . . . . . . . . 103
5.2 Probleme rezolvate de laborator . . . . . . . . . . . . . . 104
5.2.1 Formularea unei probleme de optimizare n forma
standard . . . . . . . . . . . . . . . . . . . . . . . 104
5.2.2 Calcularea proiectiei ortogonale a unui punct pe o
multime convexa . . . . . . . . . . . . . . . . . . 106
5.2.3 Metoda Gauss-Newton . . . . . . . . . . . . . . . 111
5.2.4 Metoda gradientului proiectat . . . . . . . . . . . 113
5.3 Probleme rezolvate de seminar . . . . . . . . . . . . . . . 115
5.3.1 Problema duala, conditii si puncte Karush-KuhnTucker . . . . . . . . . . . . . . . . . . . . . . . . 115
5.4 Probleme propuse . . . . . . . . . . . . . . . . . . . . . . 129
6

Metode pentru probleme de optimizare constr


ans
a
6.1 Preliminarii . . . . . . . . . . . . . . . . . . . . . . . .
6.1.1 Probleme neconvexe cu constrangeri de egalitate
6.1.2 Probleme convexe cu constrangeri de egalitate .
6.1.3 Probleme convexe generale . . . . . . . . . . . .
6.2 Probleme rezolvate de laborator . . . . . . . . . . . . .
6.2.1 Metoda Lagrange-Newton . . . . . . . . . . . .
6.2.2 Metoda Newton extinsa . . . . . . . . . . . . .
6.2.3 Metoda de punct interior . . . . . . . . . . . . .
6.3 Probleme rezolvate de seminar . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.

132
132
132
133
134
137
137
138
140
145

Cuprins

6.4

6.3.1 Metoda Newton pentru probleme constranse . . .


6.3.2 Probleme de control optimal . . . . . . . . . . . .
Probleme propuse . . . . . . . . . . . . . . . . . . . . . .

145
147
153

7 Aplicatii din inginerie


157
7.1 Control optimal . . . . . . . . . . . . . . . . . . . . . . . 157
7.1.1 Control optimal aplicat unui robot E-Puck . . . . 158
7.1.2 Control optimal aplicat unei instalatii cu patru
rezervoare . . . . . . . . . . . . . . . . . . . . . . 164
7.2 Problema Google . . . . . . . . . . . . . . . . . . . . . . 167
7.3 Clasificarea de imagini . . . . . . . . . . . . . . . . . . . 173
Bibliografie

179

10

Cuprins

Capitolul 1
Functii ale pachetului de
optimizare MATLAB
1.1

Preliminarii

Explozia informationala din ultimele patru decenii a condus la algoritmi


numerici de optimizare indispensabili pentru abordarea diferitelor
probleme din domeniile ingineriei, fizicii, analizei numerice, teoriei
sistemelor si controlului, prelucrarii semnalelor, nvatarii automate
etc. Precizand ca aceasta scurta enumerare reprezinta doar cele mai
evidente domenii de aplicatie ale algoritmilor de optimizare, constatam ca
teoria optimizarii este considerata un instrument valoros n majoritatea
domeniilor stiintifice.
In prezent exista algoritmi eficienti (rapizi) destinati rezolvarii
problemelor de optimizare convexe/neconvexe cu dimensiuni mici si medii
ntr-un interval de timp relativ scurt. Insa multe dificultati si ntrebari
fara raspuns apar n cazul problemelor cu dimensiuni mari (e.g. 107 109
variabile). Dimensiunile problemelor ntalnite n domeniile enumerate
anterior se afla n crestere continua, astfel ncat se formuleaza relativ des
probleme cu dimensiuni de zeci de milioane de variabile. Ca urmare,
algoritmii de optimizare raman un subiect de actualitate n cercetarea
moderna din matematica aplicata.
In continuare vom prezenta si formula principalele clase de probleme de
optimizare si n plus, functiile Matlab uzuale pentru rezolvarea numerica
a acestor tipuri de probleme.

12

1.1.1

Capitolul 1. Functii ale pachetului de optimizare MATLAB

Mediul Matlab

Matlab (Matrix laboratory) este un mediu de calcul numeric si un


limbaj de programare de generatia a patra, dezvoltat de compania
Mathworks. Mediul Matlab ofera o interfata usor de utilizat pentru
operatii 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 n


cadrul academic si n comunitatea matematicii aplicate. Incepand cu
dezvoltarea de pachete de programe destinate problemelor numerice de
algebra liniara, au fost incluse si dezvoltate ulterior functii (toolbox-uri)
specializate n rezolvarea de probleme de optimizare, rezolvarea de
sisteme de ecuatii, modelare si identificare de sisteme, control etc.
Pachetul Optimization Toolbox, din cadrul mediului Matlab, furnizeaza
algoritmi utilizati la scara larga, destinati problemelor de optimizare
standard si de mari dimensiuni. De asemenea, pachetul include si functii
ce 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 unei
solutii aproximative corespunzatoare problemei date. De exemplu,

1.2. Probleme rezolvate de laborator

13

problema de optimizare ce presupune gasirea punctului global de maxim


corespunzator functiei sinc(x) = sinxx este o problema dificil de rezolvat.
Pentru motivarea acestei afirmatii se poate observa usor n Fig. 1.2 ca
functia sinc(x) prezinta o infinitate de maxime locale (denivelarile de
la baza dealului), despre care nu cunoastem a priori daca sunt sau nu
valori maxime globale. Pentru a ilustra simplitatea cu care putem figura
functiile n mediul Matlab, prezentam n continuare secventa de cod care
genereaza 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
1.2.1

Probleme rezolvate de laborator


Minimizare neconstr
ans
a

Problemele de optimizare neconstransa presupun minimizarea (sau


maximizarea) unei anumite functii obiectiv (criteriu) prin intermediul
unui set de variabile de decizie, fara ca acestea sa respecte anumite
restrictii (constrangeri). Se considera functia (n general, neliniara)

14

Capitolul 1. Functii ale pachetului de optimizare MATLAB

f : Rn R de doua ori diferentiabila, careia i se asociaza problema


de optimizare:
minn f (x),
xR

unde x are rolul vectorului variabilelor de decizie. Problema de


optimizare se considera rezolvata daca s-a obtinut un vector x pentru
care valoarea functiei f () n x este minima, adica f (x ) f (x)
pentru orice x Rn . Multimea n care se efectueaza cautarea se
numeste multime fezabila, care n cazul de fata este data de ntreg spatiul
Euclidian Rn .
Functii MATLAB
Pentru cazul n care functia obiectiv nu are o structura prestabilita
sau o forma particulara, sunt disponibile urmatoarele functii MATLAB
pentru aproximarea unui punct de minim local n cazul unei probleme
neconstranse:
1. Functia [...]=fminunc(...) returneaza un punct de minim local
al 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 trebuie
furnizata ca o variabila de tip function handle. O variabila de tip
function handle poate fi, e.g. un fisier objfun.m care primeste
la intrare variabila de decizie x si returneaza valoarea functiei n
x. Daca metoda de rezolvare a problemei necesita si gradientul
functiei, iar optiunea GradObj este setata on, atunci argumentul
fun furnizeaza, n plus, si valoarea gradientului n punctul x. Daca
metoda de rezolvare a problemei necesita Hessiana, iar optiunea
Hessian este setata on, atunci argumentul fun furnizeaza, n
plus, si valoarea hessianei n punctul x.
Vectorul x0 reprezinta punctul initial de unde porneste procesul
de cautare al minimului si trebuie furnizat ca un vector din Rn .

1.2. Probleme rezolvate de laborator

15

Variabila optiuni reprezinta setul de optiuni specific fiecarei rutine


Matlab. Comanda optiuni=optimset(fminunc) afiseaza setul
de optiuni implicit. Fiecare dintre acestea se poate modifica n
functie de problema de minimizare. De exemplu, pentru setarea
optiunii 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 local
al functiei introduse ca argument, utilizand nsa o metoda diferita de cea
folosita de fminunc, anume metoda Nedler-Mead, ce utilizeaza informatie
de ordin zero (evaluarea functiei). Sintaxa este similara celei prezentate
pentru functia fminunc.
Exemplul 1. Consideram problema de optimizare
min2 f (x)

xR


= ex1 (4x21 + 2x22 + 4x1 x2 + 2x2 + 1) .

Sa se rezolve problema (sa se gaseasca un punct de minim local) utilizand


rutina fminunc, cu punctul de initializare x0 = [1; 1].
Rezolvare. Se creeaza fisierul objfun.m ce va contine urmatoarea
secventa 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:


min f (x)
xR

(= cos 3x + sin 2x) .

(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.

16

Capitolul 1. Functii ale pachetului de optimizare MATLAB

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


cod:
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 metoda
sectiunii de aur, n care se alege lungimea intervalului initial egala cu 2,
a carei implementare este expusa n cele ce urmeaza. Se creeaza fisierul
objfun.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 n


analiza numerica si inginerie o reprezinta aproximarea optima a unei
functii neliniare cu un polinom de grad dat. Mai exact, fiind data functia

17

1.2. Probleme rezolvate de laborator

neliniara f : R R cu structura necunoscuta, dorim aproximarea


acesteia cu un polinom g : R R,
g(z) = an z n + + a1 z + a0 .
Datele cunoscute n legatura cu functia neliniara f reprezinta setul de
perechi: (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 de
coeficienti ce satisface relatia:

1 y1 . . . y1n
a0
f (y1 )
1 y2 . . . y n a1 f (y2 )
2

Ax = .. ..
..
.. .. .. = b.
. .
.
. . .
n
1 ym . . . ym
an
f (ym )
Echivalent, obtinem
constrangeri:

urmatoarea
f (x)
min
n+1

xR

problema

de


= kAx bk2 .

optimizare

fara
(1.1)

Sa se rezolve problema (1.1), pe cazuri particulare pentru matricea A si


vectorul b de diferite dimensiuni, utilizand rutinele fminunc si lsqlin.
Sa se compare rezultatele obtinute. Ce se observa?

1.2.2

Minimizare constr
ans
a

Fie functia (n general neliniara) f : Rn R. Forma generala a unei


probleme de optimizare cu constrangeri (numite si restrictii), asociate
functiei f , se formuleaza n urmatorul mod:
min f (x)

xRn

s.l.: Cx d, g(x) 0,
Ax = b, h(x) = 0,

l x u,

(1.2)

unde l, u Rn , d Rm1 , b Rp1 , C Rm1 n , A Rp1 n , iar g(x) :


Rn Rm2 , h(x) : Rn Rp2 sunt functii multidimensionale (vectori de
functii), reprezentand constrangerile neliniare de inegalitate si respectiv,
de egalitate.

18

Capitolul 1. Functii ale pachetului de optimizare MATLAB

Exemplul 4. Consideram urmatoarea problema de optimizare:


min2 (x1 3)2 + (x2 2)2

xR

s.l.: x21 x2 3 0, x2 1 0, x1 0.
Functia obiectiv si cele trei constrangeri de inegalitate sunt definite de
urmatoarele 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 un


punct n multimea fezabila n care (x1 3)2 + (x2 2)2 ia cea mai mica
valoare. Observam ca punctele [x1 x2 ]T cu (x1 3)2 + (x2 2)2 = c sunt
cercuri de raza c cu centrul n [3 2]T . Aceste cercuri se numesc multimile
nivel sau contururile functiei obiectiv avand valoarea c. Pentru a
minimiza c trebuie sa gasim cercul cu cea mai mica raza care intersecteaza
multimea fezabila. Dupa cum se observa din Fig. 1.3, cel mai mic cerc
corespunde lui c = 2 si intersecteaza multimea fezabila n punctul de
optim x = [2 1]T .
5

contururi functie obiectiv

(3,2)
g2

punct optim (2,1)

g1
1

zona fezabila
2

5
5

Figura 1.3: Solutia grafic


a a problemei de optimizare.

1.2. Probleme rezolvate de laborator

19

Functii MATLAB
Pentru cazul n care functia de minimizat (maximizat) nu are o structura
prestabilita sau o forma particulara, pentru rezolvarea problemei de
optimizare (1.2) este disponibila functia MATLAB fmincon ce prezinta
urmatoarea 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 ca
o variabila de tip function handle. Daca metoda de rezolvare a
problemei cere si gradientul functiei, iar optiunea GradObj este
setata on, atunci argumentul fun furnizeaza, n plus, si valoarea
gradientului n punctul x. Daca metoda de rezolvare a problemei
cere Hessiana, iar optiunea Hessian este setata on, atunci
argumentul fun furnizeaza, n plus, si valoarea Hessianei n punctul
x;
matricele si vectorii C, d, A, b, l, u definesc constrangerile liniare cu
structura prezentata n modelul (1.2);
variabila de tip handle nonlcon returneaza constrangerile neliniare
de egalitate si inegalitate reprezentate n (1.2);
x0 reprezinta punctul initial de unde porneste procesul de cautare
al minimului si trebuie furnizat ca un vector din Rn ;
variabila optiuni reprezinta setul de optiuni specific fiecarei rutine
MATLAB. Comanda optiuni=optimset(fmincon) afiseaza setul
de optiuni implicit. Fiecare dintre acestea se poate modifica n
functie de problema de minimizare. De exemplu, pentru setarea
optiunii GradObj pe on, comanda este optiuni.GradObj=on.
Pentru o documentare amanuntita introduceti urmatoarea comanda:
help fmincon
Exemplul 5. Consideram problema de optimizare:
min2 f (x)

xR

s.l.: g(x) 0


= ex1 (4x21 + 2x22 + 4x1 x2 + 2x2 + 1) .
!
(
x1 x2 x1 x2 + 1.5 0
.
x1 x2 10 0

20

Capitolul 1. Functii ale pachetului de optimizare MATLAB

Sa se rezolve local problema utilizand rutina fmincon, cu punctul de


initializare x0 = [1 1]T .
Rezolvare. Se creeaza fisierul objfun.m ce defineste functia obiectiv si
confun.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 interpretarea
acestora ntr-un sens cat mai corect este preocuparea principala din
domeniul statisticii. Problema se formuleaza n urmatorul mod: pe baza
unei 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 date
partial cunoscut. In termeni matematici, aceasta problema presupune
determinarea unei directii de-a lungul careia elementele date (punctele)
tind sa se alinieze, astfel ncat sa se poata prezice zona de aparitie a
punctelor viitoare. S-a constatat ca directia de cautare este data de
vectorul singular al matricei formate din colectia de puncte date, ce poate
fi gasit prin intermediul urmatoarei probleme de optimizare:


1 T T
= x A Ax
maxn f (x)
(1.3)
xR
2
s.l.: g(x) 0 (kxk 1) ,

unde A Rmn reprezinta matricea ale carei coloane [a1 . . . an ] sunt


punctele cunoscute
initial.

 Considerand cazul particular n care se da
1 0.5 0
matricea A =
, sa se rezolve problema precedenta cu ajutorul
0 2 1
functiei fmincon, alegand punctul initial x0 = [1 2 0.5]T .

21

1.2. Probleme rezolvate de laborator


15

10

10
2.5

1.5

0.5

0.5

1.5

2.5

Figura 1.4: Un exemplu de dispersie a datelor n spatiul R2 . Observ


am c
a
punctele se aliniaz
a de-a lungul dreptei ce iese n evidenta
.

Rezolvare. Se creeaza fisierele objfun.m si confun.m pentru functia


obiectiv 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 a


sistemelor liniare afectate de perturbatii reprezinta o tema de cercetare
de actualitate n teoria controlului. Numeroase aplicatii practice necesita
analiza stabilitatii robuste (Fig. 1.5) pentru asigurarea functionarii
corespunzatoare a diferitelor sisteme afectate de zgomot si perturbatii
(e.g. sistemul de viraj al autovehiculelor, sistemul de ghidare al unei
macarale).

22

Capitolul 1. Functii ale pachetului de optimizare MATLAB

Figura 1.5: Exemplu de reglare robust


a n cazul unui sistem cu parametri
afectati de incertitudini.

In general, problema se reduce la studiul stabilitatii unui polinom cu


coeficienti afectati de incertitudini. Consideram ca exemplu urmatorul
polinom:
s3 + (1 + a1 + a2 )s2 + (a1 + a2 + 3)s + (1 + 6a1 + 6a2 + 2a1 a2 ), (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, sau
parametrii 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 poate
reformula ntr-una de optimizare folosind criteriul Hurwitz : un polinom
de gradul 3 de forma
p(s) = s3 + q2 s2 + q1 s + q0
este stabil daca si numai daca q2 q1 q0 > 0 si q0 > 0. De aceea,
consideram marginea maxima de stabilitate data de
= min{1 , 2 },

1.2. Probleme rezolvate de laborator

23

unde 1 si 2 sunt solutiile urmatoarelor probleme de optimizare:


1 = min
a,

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 = min
a,

s.l.: 1 + 6a1 + 6a2 + 2a1 a2 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 utilizand
functia fmincon.
Rezolvare. Pentru a simplifica rezolvarea furnizam secventa de cod
Matlab ce rezolva prima problema de optimizare si determina 1 ,
cea de-a doua rezolvandu-se n mod analog. Consideram urmatoarea
secventa de cod aferenta functiei obiectiv si constrangerilor problemei
de 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)

24

1.2.3

Capitolul 1. Functii ale pachetului de optimizare MATLAB

Programare liniar
a

Pentru cazurile particulare de probleme de optimizare (e.g. functie


obiectiv liniara sau patratica), exista functii Matlab specifice ce rezolva
problemele de optimizare aferente prin intermediul unor algoritmi
dedicati respectivelor clase de probleme.
Functia linprog rezolva probleme de programare liniara, ce vizeaza
minimizarea unei functii obiectiv liniare, n prezenta unui set de
constrangeri liniare. O problema de programare liniara se formuleaza
n general dupa cum urmeaza:
min cT x

xRn

s.l.: Cx d, l x u,
Ax = b,
unde c, l, u Rn , d Rm , b Rp , C Rmn , A Rpn . 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 numar
de n persoane disponibile pentru m sarcini. Valoarea atribuita unei zile
de lucru a persoanei i la o sarcina j este definita de cij , pentru i = 1, . . . , n
si j = 1, . . . , m. Problema se reduce la determinarea repartizarii optime
de sarcini ce maximizeaza valoarea lucrului total. Repartizarea sarcinilor
consta n alegerea valorilor xij , ce reprezinta proportia din timpul
persoanei i consumata pe sarcina j pentru i = 1, . . . , n si j = 1, . . . , m.
Vom avea astfel urmatoarele constrangeri:
m
X
j=1

xij 1,

n
X
i=1

xij 1,

xij 0.

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

25

1.2. Probleme rezolvate de laborator

ca timpul petrecut pe o sarcina sa fie negativ. In concluzie, problema


enuntata anterior are urmatoarea formulare:
!
n X
m
X
f (x)
=
cij xij
min
nm
xR

i=1 j=1

s.l.: Cx d

P
m

xij 1 i = 1, . . . , n

j=1
n
P
xij 1 j = 1, . . . , m
i=1

xij 0 i, j

1 1
0
2 , adica n=m=3.
Fie matricea coeficientilor cij data de 0.1 5
0 1 0.5
Sa se rezolve problema de mai nainte cu ajutorul functiei linprog.
Rezolvare. Initial compunem matricea C si vectorul d ce formeaza
constrangerile 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 importante


probleme ale ingineriei o reprezinta proiectarea filtrelor cu raspuns la
impuls prestabilit. Prin notiunea de filtru ntelegem un sistem dinamic
liniar invariant n timp, care de cele mai multe ori este definit de relatia
de convolutie dintre doua semnale discrete/continue:
y(t) =

u(s)h(t s)ds

y(k) =

i=

u(i)h(k i),

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 continuu
anterior se reprezinta sub forma:
Y () = H()U(), < < ,
unde Y (), H(), U() sunt transformatele Fourier ce corespund functiilor y(t), h(t), u(t).
Problema de sinteza a unui filtru presupune
determinarea configuratiei optime globale a unui bloc (colectie) de filtre
cu functii de tranfer cunoscute (Fig. 1.6), astfel ncat functia de transfer
globala rezultata sa coincida cu una prestabilita. Notand functia de
transfer globala prestabilita cu T (), consideram masurarea calitatii
functiei de transfer pe segmentul [min , max ]. Rezulta astfel urmatoarea
problema de optimizare:
minn

sup

xR min max

|T ()

n1
X

xj Hj ()|,

j=0

unde Hj () reprezinta functiile de transfer aferente filtrelor ce compun


blocul. O versiune mai abordabila este urmatoarea aproximare a
problemei precedente:
min max |T (i )

xRn 1im

n1
X

xj Hj (i )|,

(1.5)

j=0

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 de


minimizare cu functia obiectiv liniara si avand de asemenea constrangeri

27

1.2. Probleme rezolvate de laborator

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


min f (x, t)

xRn ,t

 
x
s.l.: C
d
t

(= t)
|T (i )

n1
X
j=0

xj Hj (i )| t i = 1, . . . , m .

Exercitiul 1. Se considera cazul particular ce cuprinde functiile: T () =


2
2
cos 2 + 3 , H0 () = 1+
, H1() = 1+
, H2 () = 2 + + 1 si vectorul

= [0.1 0.5 1 5 10]. T


inand cont ca valorile i reprezinta componentele
vectorului
, sa se scrie modelul problemei anterioare sub forma standard
a unei probleme de programare liniara si sa se rezolve problema cu
ajutorul functiei Matlab linprog.

1.2.4

Programare p
atratic
a

Functia quadprog rezolva probleme de programare patratica, ce vizeaza


minimizarea unei functii obiectiv patratice, n prezenta unui set de
constrangeri liniare. O problema de programare patratica se formuleaza
n general dupa cum urmeaza:
1 T
x Qx + q T x
xR 2
s.l.: Cx d, l x u,
Ax = b,
minn

unde Q = QT Rnn , q, l, u Rn , d Rm , b Rp , C Rmn , A Rpn .


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 tehnologice
recente, motoarele de cautare (e.g. Google, Yahoo) au devenit un
punct central de interes n optimizare, urmarind dezvoltarea de algoritmi
eficienti ce executa o cautare cat mai rapida. Constatand ca o cautare
eficienta presupune o clasificare cat mai strategica a paginilor web,
rezulta o reducere a problemei de cautare la una de clasificare a acestor

28

Capitolul 1. Functii ale pachetului de optimizare MATLAB

pagini. Problema de clasificare (ranking) se formuleaza usor n termeni


de grafuri ponderate (Fig. 1.7). De aceea, paginile web sunt interpretate
ca noduri ale unui graf, muchiile ca legaturi aferente dintre ele, iar fiecarei
muchii i este asociata o pondere.

Figura 1.7: Exemplu graf orientat

Daca notam cu E matricea de adiacenta a grafului, elementele acesteia


respecta urmatoarea regula: Eij este nenul daca exista o muchie
directionata de la i la j, altfel este nul. Daca tinem cont de faptul ca
graful este ponderat si ca suma ponderilor este egala cu 1, atunci matricea
E va avea suma pe linii egala cu 1. Matematic, problema precedenta
presupune gasirea unui vector propriu x corespunzator valorii proprii 1,
i.e. sa se determine x Rn astfel ncat Ex = x. Reformuland mai
departe problema n termeni de optimizare avem:


1
2
= kEx xk
min f (x)
xRn
2
s.l.: Cx d
(x 0)
!
n
X
Ax = b
xi = 1 .
i=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).

0.1 0 0 0.9
0 0 0.5 0.5

Exercitiul 2. Fie matricea E =


0.2 0 0.2 0.6. Sa se rezolve
0 0 0
1
problema cu ajutorul functiei quadprog, folosind mai ntai doar
constrangeri de egalitate si apoi incluzand si constrangerile de inegalitate.
Ce se observa?

29

1.3. Probleme rezolvate de seminar

1.3

Probleme rezolvate de seminar

1.3.1

Diferentiere multivariabil
a

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


f (x) = x31 x2 + 2x23 x1 x2 x3 ,
g(x) = ex1 x2 + e2x1 1 e2x2 2 .
(i) Sa se determine expresiile gradientilor f (x), g(x).
(ii) Sa se determine expresiile Hessianelor 2 f (x), 2 g(x).
Rezolvare. Pentru o functie diferentiabila de 2 ori f : Rn R, reamintim
definitiile gradientului si Hessianei:

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

.
f (x) = . ,
f (x) = .
.
.
f (x)
2 f (x)
2 f (x)
...
xn
xn x1
x2
n

(i) Expresiile gradientilor functiilor din enunt au forma:

3x21 x2 + 2x23
f (x) = x31 x3 ,
4x3 x1 x2


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


(ii) Expresiile Hessianelor functiilor din enunt au forma:

6x1 x2 3x21 4x3


0 1 ,
2 f (x) = 3x21
4x3 1 4x1

 x x
e 1 2 +4e2x11
ex1x2
2
.
g(x) =
ex1x2
ex1x2 4e2x22

Problema 2. Fie functia multidimensionala h : R3 R2 ,



 2
x2 + x3
.
h(x) = 2
x1 + x2
(i) Determinati expresia Jacobianului h(x).

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)
pentru o functie h : R3 R2 ,
" Din definitia Jacobianului
#


h1 (x)
h1 (x)
h1 (x)
0 2x2 1
x1
x2
x3
i.e. h(x) = h2 (x) h2 (x) h2 (x) , avem h(x) =
.
2x1 1 0
.
x
x
x
1

(ii) Din definitia proprietatii de liniar independenta avem: doi vectori


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


2x1
0
1 = 2x2
0
1
nu poate avea loc daca 6= 0.

1.3.2

Probleme de optimizare generale

Problema 3. Fie urmatoarea problema de optimizare:


min x31 + x32

xR2

s.l.: (x1 + x2 )2 0,
x1 x32 = 1.
(i) Sa se precizeze care sunt constrangerile de egalitate si care sunt
cele 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) =
x1 x32 + 1 = 0.
(ii) Din punctul (i) rezulta ca x1 + x2 = 0 si facand sistem cu cea de-a
doua constrangere, concluzionam ca multimea fezabila este formata din
doua puncte, anume (x1 , x2 ) = (1, 1) si (x1 , x2 ) = (1, 1) . Punctele de
optim global vor fi (x1 , x2 ) = (1, 1) si (x1 , x2 ) = (1, 1), din moment
ce valoarea optima f = 0 este aceeasi pentru ambele.
Problema 4. Fie functia f : n x, f (x) = ln xT Ax, unde n este
o multime, numita multimea simplex, si este data de n = {x Rn :

31

1.3. Probleme rezolvate de seminar


n
P

i=1

xi = 1, xi 0 i = 1, . . . , n}, A Rnn 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 2 f (x).
(ii) Sa se determine constanta Lipschitz a gradientului functiei f .
Rezolvare: (i) Prin calcule simple, obtinem ca expresia gradientului este
2AxT Ax(2Ax)(2Ax)T
2
=
data de f (x) = x2Ax
T Ax , iar a hessianei f (x) =
(xT Ax)2

4Ax
Ax T
2A
xT Ax xT Ax .
xT Ax

(ii) Gradientul este continuu n sens Lipschitz daca urmatoarea


inegalitate are loc:
kf (x) f (y)k2 Lkx yk2 x, y n .
Echivalent, aceasta proprietate se exprima si n termenii matricei
Hessiane:
k2 f (x)k2 L x n .
T

este pozitiv semidefinita, de aceea avem


Obervam ca matricea (2Ax)(2Ax)
(xT Ax)2
urmatoarea marginire a normei Hessianei:
2A
k2 f (x)k k T
k x n .
x Ax
Mai mult, observam ca



X
1 
2
T
Aij xi xj min min Aii kxk =
min x Ax = min
min Aii .
i
i
xn
xn
xn
N
i,j

De aici obtinem o aproximare a constantei Lipschitz corespunzatoare


gradientului functiei din enunt:
k2 f (x)k Nk
Problema 5. Fie P R
arate ca functia patratica:

nn

2A
k = L.
min Aii
i

o matrice simetrica si inversabila. Sa se

1
f (x) = xT P x + xT b
2
are valoare minima (i.e. este marginita inferior) daca si numai daca
P  0 (i.e. este pozitiv semidefinita). Mai mult, n cazul n care este
marginita, aratati ca punctul de minim x este unic si determinat de
expresia x = P 1 b.

32

Capitolul 1. Functii ale pachetului de optimizare MATLAB

Rezolvare. Observam ca
T
 1
1
1
x + P 1 b P x + P 1 b = xT P x + bT x + bT P 1b.
2
2
2

De aici rezulta,

T
 1
1
1
f (x) = xT P x + bT x =
x + P 1 b P x + P 1 b bT P 1 b.
2
2
2

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 1 b si tinand cont de
relatia P u = u, avem:
T
 1
1
x + P 1 b P x + P 1b bT P 1 b
2
2
1 T 1
1 T
= u P u b P b
2
2
1
1 2
= kuk22 bT P 1 b.
2
2

f (x) =

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. Pentru
a arata ultima parte a rezultatului, din reformularea lui f (x) anterioara
avem:
T
 1
1
f (x) =
x + P 1 b P x + P 1 b bT P 1 b.
2
2
T

Observam ca 12 (x + P 1 b) P (x + P 1 b) 0, deci minimul functiei se


atinge atunci cand x + P 1 b = 0.
Problema 6. Fie problema de optimizare :


cT x + d
= T
min f (x)
xRn
e x+f
s.l. Gx h, Ax = b,


cu domf(x) = x Rn : eT x + f > 0 . Aratati ca aceasta problema
poate fi adusa la forma de programare liniara.

1.3. Probleme rezolvate de seminar

33

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


eT x
1
aceasta devine: u(x)
+ f u(x)
= 1 > 0. De asemenea, folosim notatia
1
x
n
y(x) = u(x) R si z(x) = u(x) R. Reformuland functia obiectiv avem:
f (x) =

cT x + d
x
1
= cT
+d
= cT y(x) + dz(x).
u(x)
u(x)
u(x)

Folosind schimbarea de variabila precedenta, putem aduce problema de


minimizare dupa x la una ce presupune minimizarea dupa y(x) si z(x).
Pentru a schimba variabila constrangerilor, mpartim prin u ultimele
doua seturi de egalitati/inegalitati. Astfel, obtinem un LP:
min

yRn ,zR

cT y + dz

s.l.: eT y + f z = 1, Ay = bz
Gy hz.
Problema 7. Fie urmatoarea problema de optimizare:
min 2x21 + x22 x1 x2

xR2

s.l.: 2x

T x1

2, (aT x 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 care
sunt constrangerile de egalitate si care sunt cele de inegalitate.
Rezolvare. Se observa ca functia obiectiv f (x) = 2x21 + x22 x1 x2 este
patratica, i.e.
 T 
T  
1 x1
4 1
x1
.
f (x) =
1 2
x2
2 x2
T

Constrangerea 2x x1 2 este echivalenta cu xT x 1 1, i.e. xT x 2.


Deci prima constrangere este una de inegalitate descrisa de o functie
patratica g1 (x) = xT x 2 0.
Constrangerea (aT x b)2 0 este echivalenta cu aT x b = 0. Deci a
doua constrangere este de egalitate descrisa de o functie liniara h1 (x) =
aT x b = 0.

34

Capitolul 1. Functii ale pachetului de optimizare MATLAB

Constrangerea 5|x1|1 1 este echivalenta cu |x1 | 1 0. Deci a treia


constrangere 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 patra
constrangere este de egalitate, descrisa de o functie liniara h2 (x) = x1 +
x2 = 0.
Problema 8. O functie se numeste monomiala daca se prezinta sub
forma:
f (x) = cxa11 xa22 ...xann ,
n care c > 0, ai R si x Rn++ , i.e. xi > 0 pentru orice i = 1, . . . , n.
Considerand problema de programare geometrica :
min f (x)

xRn

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 de
programare geometrica poate fi scrisa sub forma unui LP.
Rezolvare. Din teoria optimizarii stim ca punctul de optim al unei
probleme de optimizare cu functia obiectiv f (x), este acelasi cu cel al
problemei cu functia obiectiv log f (x). Intr-adevar, n cazul neconstrans
conditiile suficiente de optimalitate pentru problema originala (cu functia
obiectiv f (x)) sunt f (x ) = 0. Observam ca pentru cazul compunerii cu
functia logaritm (cu functia obiectiv log f (x)) conditiile de optimalitate
(x )
se transforma n f
= 0, sau echivalent n f (x ) = 0. Precizam
f (x )
ca pentru cazul constrans are loc o echivalenta logaritmica similara, i.e
avand problema originala:

minn cxa11 xa22 ...xann

xR

bi bi
bi
s.l.: ci x11 x22 . . . xnn 1 i = 1, . . . , m

j
dj dj
ej x11 x22 . . . xdnn = 1 j = 1, . . . , p,

compunand functia obiectiv si constrangerile cu functia logaritm,


obtinem o problema de optimizare cu acelasi punct de optim:

min log(cxa11 xa22 ...xann )

xRn
bi bi
bi
s.l.: log(ci x11 x22 . . . xnn ) 0 i = 1, . . . , m

j
dj dj
log(ej x11 x22 . . . xdnn ) = 0 j = 1, . . . , p.

35

1.4. Probleme propuse

Folosind schimbarea de variabila log xi = yi , observam urmatoarea


reformularea liniara a unei functii monomiale:
f (x) =

log(cxa11

. . . xann )

= log c +

n
X

ai log xi = log c +

i=1

n
X

ai yi .

i=1

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


Problema 9. Fie functia patratica f : R2 R, f (x) = x21 x22 +x1 x2 . Sa
se arate ca functia f are gradient Lipschitz n raport cu norma Euclidiana,
i.e. exista L > 0 astfel ncat:
kf (x) f (y)k2 Lkx yk2 , x, y R2 .
si sa se determine constanta Lipschitz corespunzatoare.
1 T
Rezolvare. Remarc
am ca functia f se poate formula ca f (x) = 2 x Qx,
2 1
. Verificand relatia de continuitate Lipschitz avem:
unde Q =
1 2

kQx Qyk2 = kQ(x y)k2 kQk2 kx yk2, x, y R2 .


Inegalitatea reiese din definitia normei matriceale induse.
constanta Lipschitz este data de L = kQk2 = max (Q).

1.4

Evident,

Probleme propuse

Problema 1. Sa se arate ca problema de optimizare (1.1) este problema


patratica (QP). Evidentiati matricea Hessiana si precizati daca este sau
nu pozitiv definita.
Problema 2. Fie functia neliniara g(x) = 5e2x + cos x 1. Sa se
aproximeze 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/2
si y5 = 1. Sa se rezolve problema de optimizare cu ajutorul functiilor
fminunc si quadprog.
Problema 3. Fie urmatoarea problema de optimizare constransa:
1
kAxk2
xR 2
s.l.: kxk1 1,

maxn

36

Capitolul 1. Functii ale pachetului de optimizare MATLAB

unde A Rmn . Sa se reformuleze problema precedenta ca una patratica


(QP) si sa se rezolve apoi aceasta formulare cu ajutorul functiei Matlab
quadprog.
Problema 4. Sa se calculeze expresiile gradientului si Hessianei
corespunzatoare urmatoarelor functii:
(i) f (x) = x21 x22 2x23 + 2x2 x3 + 3x1 x2
(iii) f (x) = ex1 x2 +ex2 x3 +ex3 x1

(ii) f (x) = x31 + x2 x23

(iv) f (x) = x1 ln x1 +x2 ln x2 +x3 ln x3 .

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


x2 x3 +3x1 x2 are gradientul continuu n sens Lipschitz n raport cu norma
Euclidiana. Sa se determine constanta Lipschitz L.
Problema 6. Se considera urmatoarea problema de optimizare:
min f (x1 , x2 )

xRn

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


x1 0, x2 0.
Sa se traseze grafic multimea fezabila. Pentru urmatoarele functii
obiectiv, 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 }.
2
2
(v) f (x1 , x2 ) = x1 + 9x2 .
Problema 7. Se considera problema de optimizare:
min (x1 4)2 + (x2 2)2

xRn

s.l.: 4x21 + 9x22 36,


x21 + 4x22 = 4.

2x1 3

(i) Sa se reprezinte grafic schema multimii fezabile, multimile izonivel ale


functiei obiectiv si identificati punctul de optim pe grafic.
(ii) Sa se rezolve din nou punctul (i) unde n enuntul problemei
minimizarea se nlocuieste cu maximizarea.
Problema 8. O fabrica furnizeaza patru tipuri de produse. Unul dintre
materialele brute necesare pentru fabricatie se afla n cantitate redusa,
fiind disponibila numai o cantitate R de material. Pretul de vanzare al
produsului i este Si per kilogram. Mai mult, fiecare kilogram de produs i
consuma o cantitate ai de material brut (cel n cantitate redusa). Costul

37

1.4. Probleme propuse

de productie a xi kilograme din produsul i, excluzand costul materialului


n cantitate redusa, este de ki x2i , unde ki > 0 este cunoscut. Sa se dezvolte
un model matematic de optimizare pentru problema si apoi sa se rezolve
cu una din functiile Matlab precizate anterior.
Problema 9. Se presupune ca cererile d1 , . . . , dn pentru un anumit
produs n intervalul a n perioade de timp sunt cunoscute. Cererea n
timpul perioadei j poate fi satisfacuta din cantitatea produsa xj pe
parcursul perioadei sau din stocul magaziei. Orice exces de productie
poate fi stocat n magazie. Cu toate acestea, magazia are o capacitate
limitata 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 program
neliniar.
Problema 10. Intr-o localitate se urmareste amplasarea optima a unui
numar de depozite n vecinatatea magazinelor. Fie un numar de n
magazine, cu pozitii si cereri cunoscute. Magazinul i se afla n pozitia
(ai , bi ) si dispune de o cerere (grad de solicitare a produselor) ri . Cererile
vor fi satisfacute cu ajutorul a m depozite cu capacitati cunoscute.
Folosim urmatoarele notatii: (xi , yi ) reprezinta pozitia necunoscuta a
depozitului si ci este capacitatea depozitului i pentru orice i = 1, . . . , m;
dij este distanta de la depozitul i la magazinul j si wij reprezinta unitatile
transportate de la depozitul i la magazinul j pentru orice i = 1, . . . , m si
j = 1, . . . , n.
Sa se modeleze problema de gasire a pozitiilor optime corespunzatoare
depozitelor. Pentru masurarea distantelor n plan, se poate folosi norma
Euclidiana (norma 2) sau orice alta norma, cu conditia sa fie precizata.
Problema 11. Fie matricele X, Y, Z Rnn . Sa se arate egalitatea:
Tr(XY Z) = Tr(ZXY ) = Tr(Y ZX).
Problema 12. Fie matricea simetrica Q Rnn . Sa se determine
expresia valorilor proprii extreme min si max sub forma valorilor optime
corespunzatoare unor probleme de optimizare.
Problema 13. Fie x Rn , pentru norma kk, definim norma duala:
kxk = min hx, yi. Sa se demonstreze urmatoarele relatii, pentru orice

x Rn :

kyk1

kxk1 = kxk ,

kxk = kxk1 ,

kxk2 = kxk2 .

Capitolul 2
Probleme de optimizare
convex
a
2.1

Preliminarii

Fie problema de optimizare,


min f (x)

xRn

s.l.: gi (x) 0 i = 1, . . . , m
Ax = b.

(2.1)

Daca functia obiectiv f si functiile ce definesc constrangerile de


inegalitate gi sunt convexe atunci problema se numeste problema de
optimizare convexa. Convexitatea detine un rol crucial n optimizare,
deoarece problemele cu aceasta proprietate prezinta trasaturi teoretice
foarte bune (e.g., punctele de optim locale sunt, de asemenea, puncte de
optim 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 convexa
pentru 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,

39

2.1. Preliminarii

i.e. segmentul generat de oricare doua puncte din S este inclus n S


(Fig. 2.1).

x2

x1
x2

x1

Figura 2.1: Exemplu de multime convex


a (st
anga) si multime neconvex
a
(dreapta).


 
x
Rn+1 : kxk t , denumita
Exemplul 11. Fie multimea Ln =
t
si conul Lorentz sau conul de nghetata. Sa se traseze graficul acestei
multimi n Matlab pentru n = 2.
Rezolvare. Figura conului (Fig.
secventa de cod:

2.2) poate fi trasata de urmatoarea

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.

40

Capitolul 2. Probleme de optimizare convexa

Studiul multimilor convexe si al proprietatilor acestora faciliteaza analiza


multimilor fezabile aferente problemelor de tipul (2.1) si a sirurilor
generate de algoritmi cu restrictii la aceste multimi. In continuare vom
introduce si analiza notiunea de functie convexa.

2.1.2

Functii convexe

Definitia 2. Functia f : Rn R se numeste convexa daca domeniul sau


efectiv 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].


2

f(x)=x
1
0.9
0.8
0.7
0.6

f(x1)+(1) f(x2)

0.5

f(x2)

f(x )

0.4
0.3
0.2

0.1
0
1

f( x1+(1)x2)
0.5

x1

0.5

x2

Figura 2.3: Exemplu de functie convex


a f (x) = x2 .

Inegalitatea (2.2) se poate generaliza la un numar p de puncte, purtand


numele de inegalitatea lui Jensen: f este o functie convexa daca si numai
daca:
!
p
p
X
X
i f (xi )
f
i xi
i=1

i=1

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

p
X
i

i = 1.

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 mai
mici 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 restrictia
domeniului sau la o dreapta (care intersecteaza domeniul) este de
asemenea, convexa. Cu alte cuvinte, f este convexa daca si numai daca
oricare ar fi x domf si o directie d, functia g() = f (x + d) este
convexa pe domeniul { R : x + d domf }. Aceasta proprietate este
foarte utila n problemele ce implica teste de convexitate ale functiilor.
Pentru a sublinia legatura dintre notiunile introduse anterior, facem
urmatoarea observatie: orice multime M definita ca multimea subnivel
a unei anumite functii f , i.e. M = {x Rn : f (x) c}, unde c este
o constanta, este convexa daca si numai daca functia f este convexa
(pentru demonstratie vezi [1]).
2
Exemplul
12.

 Fie functia convexa f : R R, definita de f (x) =
2 1
1 T
x + [0.5 1]x. Sa se traseze graficul functiei n Matlab.
x
2
1 0.5

Rezolvare. Graficul functiei (Fig. 2.4) este generat de urmatoarea


secventa de cod (unde am folosit functia gradient(z) pentru a descrie
culoarea, 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 de


optimizare CVX. CVX reprezinta un sistem de modelare a problemelor
de optimizare convexa pe baza limbajului Matlab. CVX realizeaza
transformarea comenzilor Matlab ntr-un limbaj de modelare, cu

42

Capitolul 2. Probleme de optimizare convexa

250
200
150
100
50
10

0
5
50
10

0
5

5
5

10

10

Figura 2.4: Graficul functiei p


atratice
2
2
f (x) = x1 + 1/4x2 x1 x2 1/2x1 + x2 .

posibilitatea de declarare a constrangerilor si functiei obiectiv prin


intermediul sintaxei Matlab standard.
De exemplu, consideram urmatorul model de optimizare convexa:
min kAx bk2

xRn

s.l.: Cx = d, kxk 1.
Urmatoarea secventa de cod genereaza si rezolva o instanta aleatorie a
acestui 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 toolbox
al Matlab-ului);

43

2.2. Pachet CVX

se porneste Matlab-ul; se comuta directorul curent n directorul


unde am realizat dezarhivarea si se executa n consola comanda
cvx_setup.
Remarca 2. In unele cazuri (de cele mai multe ori n Linux) este nevoie
de crearea sau modificarea fisierului startup.m ce elimina necesitatea
ca utilizatorul sa introduca comanda cvx_setup la fiecare pornire a
Matlab-ului.

2.2.2

Elemente de baz
a

Daca instalarea este realizata cu succes, ncepem prin a preciza ca


orice program CVX se scrie n interiorul unei functii Matlab. Pentru
a 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 ca
parametri n problemele de optimizare rezolvate cu CVX. La nceputul
oricarui program CVX se definesc variabilele de decizie si dimensiunile
acestora, 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 si
specificarea dimensiunii variabilei, nainte de a se utiliza n constrangeri
sau n expresia functiei obiectiv. Sintaxa declararii unei variabile poate
fi una din urmatoarele forme:
variable x(10)

variable Y(20,10)

variable Z(5,5,5).

Sunt disponibile o varietate de optiuni aditionale pentru precizarea


structurii matriceale, n cazul n care variabila de decizie este de tip
matrice cu proprietati speciale (simetrica, Toeplitz) e.g.:
variable Y(50,50) symmetric
variable Z(100,100) hermitian toeplitz.

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 precizarea
tipului de problema (e.g. minimizare, maximizare) prin intermediul
cuvintelor 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 folosim
minimize si concava cand folosim maximize. In caz contrar, pachetul
CVX va furniza un mesaj de eroare corespunzator. Constrangerile
suportate de modelele CVX sunt cele de egalitate (liniare) impuse prin
operatorul == si de inegalitate impuse de operatorii <= si >=. Pentru
constrangeri de tip box (lant de inegalitati) este disponibila sintaxa
l<=x<=u.

2.3

Probleme rezolvate de laborator

Exemplul 13. Sa se determine bila de raza maxima (i.e. centrul si


raza ei) din spatiul Euclidian bidimensional, ce poate fi nscrisa ntr-un
poliedru 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:
max

xRn ,rR

s.l.: aTi x + rkai k2 bi i = 1, . . . , n,


unde r reprezinta raza bilei, iar x centrul acesteia. Alegand datele
inegalitatilor liniare, coordonatele centrului si raza bilei dorite sunt
generate 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)

45

2.3. Probleme rezolvate de laborator


Bila de raza maxima inscrisa intrun poliedru 2D
1
0.8
0.6
0.4

x2

0.2
0
0.2
0.4
0.6
0.8
1

1.5

0.5
x1

0.5

Figura 2.5: Bila de raz


a maxim
a nscris
a ntr-un poliedru.

variable x_c(2)
maximize ( r )
a1*x_c + r*norm(a1,2)
a2*x_c + r*norm(a2,2)
a3*x_c + r*norm(a3,2)
a4*x_c + r*norm(a4,2)
cvx_end

<=
<=
<=
<=

b(1);
b(2);
b(3);
b(4);

% 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 apropriat


comportament de cel al unei functii de transfer date Hd () (e.g. Hd () =
ejD ). Sa se realizeze proiectarea filtrului prin intermediul minimizarii
erorii absolute maxime (n norma infinit).

46

Capitolul 2. Probleme de optimizare convexa

Rezolvare. Formularea problemei precedente n termeni de optimizare


conduce la rezolvarea urmatoarei probleme:
min max|H() Hd ()|,

(2.3)

unde H este functia raspunsului n frecventa, iar variabila de decizie


are rolul raspunsului la impuls. O aproximare convenabila a problemei
anterioare presupune extragerea unui set finit m de frecvente i , cu i =
1, . . . , m, si definirea unei matrice A:

1 ej1 e2j1 . . . enj1


1 ej2 e2j2 . . . enj2

A=

...
...
...
...
1 ejm e2jm . . . enjm .
rezultand o aproximare a problemei (2.3), i.e.

min max |Ai x Hd (i )|,

(2.4)

xRn 1im

unde Ai reprezinta linia i a matricei A.


Mai departe, prezentam secventa de cod ce rezolva problema de
optimizare (2.4) si determinam aproximarea optima a functiei de transfer
Hd () = ejD (reprezentata n Fig. 2.6):
1.2
1

h(n)

0.8
0.6
0.4
0.2
0
0.2
0

10
n

15

20

Figura 2.6: Aproximarea optim


a n sens Chebyshev a functiei de transfer
Hd () = ejD .

n = 20; m = 15*n;
w = linspace(0,pi,m); % omega
% Construim un raspuns in frecventa dorit

2.3. Probleme rezolvate de laborator

D = 8.25;
Hdes = exp(-j*D*w);

% valoare intarziere
% 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);

%
%
%
%
A

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)]
= 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

47

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
2.4.1

Probleme rezolvate de seminar


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 de


egalitati 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 prin
urmatoarea 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 defini
sub forma unor poliedre:
(i) S1 = {x Rn : x 0, kxk1 = 1}
(ii) S2 = {x Rn : kxk 1}
(iii) S3 = {x Rn : kxk1 1}.

49

2.4. Probleme rezolvate de seminar

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


(
) (
)
n
n
X
X
S1 = x Rn : x 0,
xi = 1 = x Rn : x 0,
xi = 1
i=1

i=1

= {x R : In x 0, [1 . . . 1]x = 1} ,

unde In reprezinta matricea identitate de ordin n. Ultima formulare


denota forma poliedrala a multimii S1 .
(ii) De asemenea, n cazul multimii S2 , urmand acelasi rationament:


n
S2 = x R : max |xi | 1 = {x Rn : |xi | 1, i = 1, . . . , n}
1in

= {x Rn : 1 xi 1 i = 1, . . . , n}
= {x Rn : xi 1, xi 1, i = 1, . . . , n}

1



In
..
n
x . ,
= xR :
In

obtinem o forma poliedrala.


(iii) Pentru a determina forma poliedrica a multimii S3 definim o multime
poliedrica auxiliara:
)
(
n
X
ti = 1, |xi | ti .
Q = [xT tT ]T R2n :
i=1

Mai departe, definim proiectia unei multimi poliedrice pe un subspatiu de


dimensiuni reduse si folosim aceasta notiune pentru a studia multimea S3 .

Definitia 3. Fie multimea P = {x Rn1 , y Rn2 : Ax + By b},


unde A Rmn1 , B Rmn2 , b Rm . Proiectia multimii P pe subspatiul
variabilelor x este data de:
Px = {x Rn1 : y Rn2 , [xT y T ]T P }.
Proiectia multimii Q pe subspatiul variabilelor x conduce la urmatoarea
serie de echivalente:
n

Qx = {x R : t R
= {x Rn :

n
X
i=1

a..

n
X
i=1

ti = 1, |xi | ti }

|xi | 1} = {x Rn : kxk1 1} = S3 .

50

Capitolul 2. Probleme de optimizare convexa

T
inand cont ca proiectia oricarei multimi poliedrice este o multime poliedrica, concluzionam ca multimea S3 este de tip poliedric.
Problema 3. Fie multimile:

 
x
n+1
n
R
: kxk t numit si con Lorentz sau con de
(i) L =
t
ordinul II;
(ii) S+n = {X S n : X  0} conul semidefinit.
Sa se demonstreze ca multimile precedente sunt conuri auto-duale.
Rezolvare: (i) Din definitia conului dual avem:
Ln = {y Rn : hx, yi 0 x Ln }.
Problema se reduce la a demonstra ca Ln = Ln , ceea ce este echivalent
n
n
n
n
cu satisfacerea simultana a incluziunilor: L
  L si L L .
y1
Aratam acum prima incluziune. Fie y =
Ln , atunci pentru
v
 
x1
orice x =
Ln avem:
t
hx, yi = y1T x1 + vt 0.

(2.5)

Stiind ca x Ln atunci kxk t. Ramane sa demonstram ca kyk v.


Din ipoteza ca (2.5) are loc pentru orice vector x Ln , atunci inegalitatea
 
x
este satisfacuta, de asemenea, pentru un x ales. Alegand x = 1 =
t
 y1 
ky1 k
si nlocuind n (2.5) obtinem:
1

y1T y1
+ v = ky1 k + v 0,
ky1 k

din care rezulta prima incluziune.

 
 
x1
y1
Ln . Din
Ln , x =
Pentru a doua incluziune, fie y =
t
v
inegalitatea Cauchy-Schwartz |hx, yi| kxkkyk rezulta:
y1T x1 + vt > ky1 kkx1 k + vt vt + vt = 0,

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 Ln .
(ii) In mod similar, aratam prin dubla incluziune ca S+n = S+n . Fie Y
S+n , atunci Tr(Y X) 0. Din urmatoarele relatii:
xT Y x = T r(xT Y x) = T r(Y xxT ) = T r(Y X) 0,
se deduce Y S+n . Pentru a doua incluziune, presupunem Y, X matrice
pozitiv semidefinite. Remarcam urmatoarea relatie:
T r(Y X) = T r(Y V T V ) = T r(V Y V T ) 0,

(2.6)

n care am folosit descompunerea valorilor proprii corespunzatoare


matricei X si proprietatea de permutare a functiei matriceale T r().
In concluzie, Y S n datorita relatiei (2.6), de unde reiese a doua
+
incluziune.
Problema 4. Sa se demonstreze ca urmatoarele functii sunt convexe pe
multimile specificate:
(i) f (x) = log x, domf = (0, ).
(ii) f (x) = 21 xT Qx + q T x + r, domf = Rn , Q  0.
T
(iii) f (x, t) = x t x , domf = Rn (0, ).
(iv) f (x) = kAx bk, A Rmn , domf = Rn .
n
(v) f (X) = log det X, domf = S++
.
Rezolvare: (i) Observam ca functia f (x) = log x satisface conditiile de
ordinul II ale convexitatii:
f (x) =

1
> 0 x > 0.
x2

(ii) Hessiana functiei f (x) = 21 xT Qx + q T x + r este data de 2 f (x) = Q.


Observam ca functia este convexa deoarece matricea Q  0 (este pozitiv
semidefinita).
T
(iii) In aceeasi maniera aratam ca functia f (x, t) = x t x este convexa pe
domeniul Rn (0, ]. Din definitia Hessianei rezulta:
 2

In 2xt
2
t
f (x) =
,
T
T
2xt2 2xt3 x
unde cu In am notat matricea identitate de ordin n. Pentru a determina
daca functia ndeplineste conditiile de ordinul II ale convexitatii observam

52

Capitolul 2. Probleme de optimizare convexa

ca:
 
 2

u 2xv
u
2
T T
t
t
= [u v ]
[u v ] f (x)
T
T
u
2xt2 u + 2xt3xv
T T

2
2uT xv 2xT uv 2xT xv 2
= uT u

+
t
t2
t2
t3

2
= 3 t2 uT u 2tuT xv + xT xv 2
t
2
= 3 ktu xvk2 .
t
T
inand cont de domeniul de definitie al functiei, remarcam ca pentru
u
orice vector
, termenul drept din ultima egalitate este pozitiv. De
v
aici este evidenta proprietatea de pozitiv definire a matricei Hessiane
corespunzatoare functiei.
(iv) Deoarece functia kk este nediferentiabila n punctul 0, observam ca
functia f (x) = kAx bk nu este diferentiabila n punctele x ce satisfac
Ax = b. Fie doua puncte din multimea domf pentru care f (x1 ) =
kAx1 bk, f (x2 ) = kAx2 bk. Pentru a arata convexitatea functiei f ,
notam x = x1 + (1 )x2 si deducem sirul de relatii:
f (x ) = f (x1 + (1 )x2 )
= kA (x1 + (1 )x2 ) bk
k(Ax1 b)k + k(1 )(Ax2 b)k
= kAx1 bk + (1 )kAx2 bk
= f (x1 ) + (1 )f (x2 ).
n
(v) Fie functia f (X) = log det X, X S++
. Aratam convexitatea lui
f prin intermediul reducerii domeniului acesteia la o dreapta. Mai exact,
folosim urmatoarea proprietate a functiilor convexe: f este convexa
daca functia scalara ce se obtine din restrictionarea la o dreapta este de
asemenea convexa (conform Remarca 1). Revenind la functia matriceala,
n
consideram matricele X S++
, D S n si aratam ca functia scalara
g(t) = f (X + tD) este convexa, observand urmatoarele egalitati:

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

= log det(X 1/2 X 1/2 + tD)



= log det X 1/2 In + tX 1/2 DX 1/2 X 1/2

53

2.4. Probleme rezolvate de seminar



= log det X 1/2 det In + tX 1/2 DX 1/2 det X 1/2

= log det X det In + tX 1/2 DX 1/2

= log det X log det In + tX 1/2 DX 1/2 .

Pe de alta parte, stiind ca pentru orice matrice A S n , cu spectrul


(A) = {1 , . . . , n }, transformarea B = In + tA, t R, modifica
n
Q
spectrul astfel ncat (B) = {1 + t1 , . . . , 1 + tn } si det B = (1 + ti ).
i=1

Pentru a aplica aceasta proprietate n sirul de relatii precedent, notam


Z = X 1/2 DX 1/2 avand spectrul (Z) = {1 , . . . , n }. Rescriind g(t),
rezulta:
g(t) = log det X log
= log det X

n
Y
(1 + ti )

n
X

i=1

log(1 + ti ).

i=1

Mai departe, observam ca functia h(t) = log(1 + tu) din componenta


celei anterioare, este convexa, deoarece cea de-a doua derivata satisface:
h (t) =

u
0 u R.
(1 + tu)2

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 conjugata
f (y) pentru urmatoarele exemple:
(i) f (x) = ex
(iii)f (x) = 21 xT Qx, Q 0

(ii) f (x) = x log x


n
P
(iv) f (x) = log exi .
i=1

Rezolvare. Definim functia conjugata corespunzatoare functiei f :


f (y) = max hy, xi f (x).
xdomf

In primele doua cazuri monovariabile (i) si (ii), observam ca functia


obiectiv a problemei de maximizare este concava pe domeniul functiei

54

Capitolul 2. Probleme de optimizare convexa

f , de aceea conditiile de optimalitate de ordinul I conduc la urmatoarele


expresii:
(i) f (y) = y log y y,

(ii) f (y) = ey1 .

(iii) In acest caz, conjugata functiei f are forma f (y) = maxn y T x


xR

1 T
x Qx.
2

Datorita proprietatii de convexitate, observam ca solutia


problemei de optimizare este data de x = Q1 y. Inlocuind n expresia
functiei conjugate rezulta f (y) = y T Q1 y 12 y T Q1 y = 12 y T Q1 y.
(iv) Conditiile necesare de optimalitate de ordinul I corespunzatoare
n
P
problemei de maximizare maxn hy, xi log exi se reduc la urmatoarele
xR

i=1

relatii:

exi
n
P x = y i ,
e i

i = 1, . . . , n.

(2.7)

i=1

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


n
P
yi =
numai n cazul n care argumentul functiei conjugate satisface
i=1

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


n
P

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


i=1

functiei conjugate rezulta:

hy, x i log

n
X
i=1

n
n
X
X

xi
exi + log yi
yi log
e =
i=1
n
X

i=1

i=1

yi log yi + log

n
X
i=1

xi

log

n
X
i=1

n
X

exi

i=1

n
X
yi log yi .
yi 1 =

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


n
n
P y log y , daca P y = 1, y 0,
i
i
i
f (y) = i=1
i=1

,
altfel.

i=1

2.4. Probleme rezolvate de seminar

55

Problema 6. Sa se demonstreze ca urmatoarea problema de optimizare


este convexa:
min f (x) = x1 2 + x2 2

xR2

x1
0, g2 (x) = ex1 +x2 1 0
1 + x2 2
h(x) = (x1 x2 1)2 = 0.

s.l.: g1 (x) =

Rezolvare. Pentru a arata convexitatea problemei din enunt:


min f (x)

xR2

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


este suficient sa demonstram convexitatea functiilor f , g1 si g2 , si
liniaritatea functiei h. Observam ca Hessiana functiei f are forma
explicita 2 f (x) = I2 0, unde I2 este matricea identitate de ordinul II.
Deci, functia f este convexa deoarece satisface conditia de convexitate de
x1
ordinul II. In cazul functiei g1 , distingem faptul ca inegalitatea 1+x
2 0
2
este satisfacuta doar n cazul n care x1 0. In concluzie, constrangerea
g1 (x) 0 este echivalenta cu o constrangere liniara (si deci convexa)
x1 0. Pentru inegalitate g2 (x) 0, observam ca este echivalenta
cu x1 + x2 0, i.e. este si aceasta echivalenta cu o constrangere
liniara. Similar, pentru egalitatea definita de functia h, gasim urmatoarea
echivalenta ntre multimi:
{x R2 : h(x) = 0} = {x R2 : x1 x2 = 1},

rezultand o functie liniara n x. In final, putem rescrie problema sub


forma unui QP convex:
min x1 2 + x2 2

xR2

s.l.: x1 0, x1 + x2 0, x1 x2 = 1.
Problema 7. Sa se demonstreze ca urmatoarea problema de optimizare
este convexa:
min f (x) (= log(aT x b))

xR2

s.l.: g1 (x) = ex

Tx

e 0, g2 (x) = (cT x d)2 1 0

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

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 multimea
fezabila definita de constrangeri este convexa. Pentru functia f (x) =
log(aT x b) deducem expresia gradientului si a Hessianei:
f (x) =

1
1
a, 2 f (x) = T
aaT
2
b
(a x b)

aT x

unde avem desigur ca (aT x b)2 > 0. Daca notam y = aT x, observam


ca:
xT aaT x = y T y = kyk22 0,
deci matricea aaT este pozitiv semidefinita. Drept rezultat, 2 f (x)  0
peste ntregul dom f = {x Rn : aT x b > 0}, i.e. satisface
conditiile de convexitate de ordin II si deci functia obiectiv este convexa.
Pentru a arata ca multimea constrangerilor este convexa, este suficient sa
aratam ca functiile din constrangerile de egalitate sunt liniare, iar cele din
constrangerile de inegalitate sunt convexe. Observam ca constrangerea
h(x) = 0 este echivalenta cu egalitatea x1 + 2x2 = 0, a carei functie este
liniara. Pentru g1 (x) 0, observam ca este echivalenta cu xT x 1 0.
Functia xT x 1 este o functie patratica, diferentiabila de doua ori, cu
Hessiana 2I2 0, deci satisface conditiile de convexitate de ordin II si
este implicit convexa. Constrangerea g2 (x) 0 este echivalenta cu:
(
cT x d 1
1 (cT x d) 1
cT x + d 1


   
d
1
cT

T x+
d
1
c


deci aceasta se reduce la o constrangere de inegalitate unde functia este


liniara si implicit convexa.

Problema 8. Sa se determine problema convexa de programare semidefinita ce aproximeaza urmatoarea problema neconvexa:
maxn xT AT Ax
xR

s.l.: kxk2 1,
unde A R

mn

si kxk2 =

n
P

i=1

x2i .

57

2.5. Probleme propuse

Rezolvare. Reamintim ca pentru orice Q Rnn si x Rn , functia


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

T
T
r
A
AX
max
nn
XR

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

Se obtine relaxarea convexa prin renuntarea la constrangerea de egalitate


neliniara rang(X) = 1. In concluzie, avem urmatoarea aproximare
convexa a problemei de optimizare originala:

T
T
r
A
AX
max
nn
XR

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

2.5

Probleme propuse

Problema 1. Sa se determine care dintre urmatoarele functii sunt


convexe, concave sau niciuna dintre cele doua variante.
Sa se
argumenteze rezultatele obtinute.
(i) f (x1 , x2 ) = 2x21 4x1 x2 8x1 + 3x2 ,
(ii) f (x1 , x2 ) = x1 e(x1 +3x2 ) ,
(iii) f (x1 , x2 ) = x21 3x22 + 4x1 x2 + 10x1 10x2 ,
(iv) f (x1 , x2 , x3 ) = 2x1 x2 + 2x21 + x22 + 2x23 5x1 x3 ,
(v) f (x1 , x2 , x3 ) = 2x21 3x22 2x23 + 8x1 x2 + 3x1 x3 + 4x2 x3 .
Problema 2. Sa se determine submultimea din {x R : x > 0} pe care
b
functia f (x) = eax este convexa. Parametrii a, b satisfac a > 0, b 1.
Problema 3. Sa se determine n domeniul axei reale n care functia
f (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:

58

Capitolul 2. Probleme de optimizare convexa

(i) g(x) =

m
P

i fi (x), i > 0,

i=1

(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.
r
P
Problema 6. Sa se demonstreze ca functia f (x) =
i x[i] este convexa
i=1

n x, unde 1 r 0, iar x[n] reprezinta a n-a cea mai mare


componenta din vectorul x.
Problema 7. Determinati functiile conjugate corespunzatoare functiilor:
(i) f (x) = max xi cu domeniul Rn ;
1in

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


p < 0.
 n 1/n
Q
(iii) f (x) = xi
cu domeniul Rn++ ;
i=1

(iv) f (x, t) = log(t2 xT x) cu domeniul {(x, t) Rn R : kxk2 t}.

Problema 8. Sa se demonstreze ca functia:


1

f (x) =
x1

1
x2

1
x3

1
x4

definita pe domeniul n care toti numitorii sunt pozitivi, este convexa si


strict 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
n
P
pentru i = 2, . . . , n si
i = 1. Fie punctele x1 , . . . , xn domf . Sa se
i=1

demonstreze ca are loc inegalitatea:

f (1 x1 + + n xn ) 1 f (x1 ) + + n f (xn ).

59

2.5. Probleme propuse

Problema 10. Sa se arate ca o functie f : R R este convexa daca si


numai daca domeniul domf este convex si

1
1
1
y
z 0,
det x
f (x) f (y) f (z)

pentru orice x, y, z domf si x < y < z.


Problema 11. Sa se arate ca maximul unei functii convexe peste
poliedrul P = conv {v1 , . . . , vk } este atins ntr-unul dintre varfurile
poliedrului, i.e.,
sup f (x) = max f (vi ).
xP

i=1,...,k

Indiciu: Se presupune ca afirmatia este falsa si se utilizeaza inegalitatea


lui Jensen.
Problema 12. Fie o functie convexa f si o functie g definita dupa cum
urmeaza:
f (x)
g(x) = min
.
>0

(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 Rn . O functie omogena se numeste subaditiva
daca satisface, n plus, urmatoarea relatie:
f (x) + f (y) f (x + y).
Sa se demonstreze ca, pentru functiile omogene, subaditivitatea este
echivalenta cu convexitatea.
Problema 14. Fie o multime S nevida, marginita si convexa n Rn si o
functie f definita de:
f (x) = max y T x.
yS

Functia f se numeste functia suport a multimii S.

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 definite
de
S = {x Rn : kAxkp 1} p = 1, 2, ,
unde matricea A este inversabila.

Problema 15. Fie functia convexa f : Rn R. Definim proprietatea


de convexitate tare, enumerand conditiile de ordin 0, I si II (ce depind
de gradul de diferentiabilitate al functiei), ntr-un mod similar cu cele
corespunzatoare cazului convex. Pentru > 0, functia f se numeste
tare convexa n raport cu norma-p daca:
(Conditii de ordinul 0) functia f satisface urmatoarea inegalitate
pentru orice x, y Rn :
f (x + (1 )y) f (x) + (1 )f (y)

(1 )
kx yk2p.
2

(Conditii de ordinul I) functia f este diferentiabila si satisface


urmatoarea inegalitate pentru orice x, y Rn :
f (y) f (x) + hf (x), y xi +

kx yk2p .
2

(Conditii de ordinul II) functia f este diferentiabila de doua ori si


satisface urmatoarea inegalitate pentru orice x Rn :
xT 2 f (x)x kxk2p ,
unde kxkp =

n
P

i=1

xpi

 p1

, 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 satisface
si conditiile de ordin 0.
(ii) Pentru norma 2, orice functie diferentiabila o data si tare
convexa satisface relatia:
hf (x) f (y), x yi kx yk22 .

61

2.5. Probleme propuse

(iii) Functia g(x) = 12 kxk22 este 1-tare convexa n raport cu norma kk2 .
(iv) Functia g(x) = 21 kxk2p este (p 1)-tare convexa n raport cu norma
kkp , pentru p > 1.
(v) Functia g(x) = log n

n
P

xi log xi este 1-tare convexa n raport cu

i=1

norma kk1 pe domeniul {x Rn+ : kxk1 1}.

Problema 16. Fie functia f definita de:


t
f (y, t) = maxn hy, xi kxk2 .
xR
2
Determinati domeniul functiei f si aratati ca expresia acesteia se rescrie
n urmatoarea forma:
(
0,
daca y = 0, t = 0
f (y, t) = kyk2
.
,
dac
a
t
>
0.
2t
Problema 17. Sa se demonstreze ca pentru o matrice simetrica si pozitiv
definita Q Rnn si doi vectori u, v Rn are loc urmatoarea inegalitate:
|uT v| uT Quv T Q1 v.
Problema 18. Fie matricele E, H si F de dimensiuni compatibile si
F T F  I. Sa demonstreze ca pentru orice > 0, avem
EF H + H T F T E T  EE T +

1 T
H H.

Indiciu: Se foloseste inegalitatea (E T F H)T (E T F H)  0.


Problema 19. Fie matricea simetrica M de forma:


A B
M=
,
BT C
n care matricea C este inversabila. Se numeste complementul Schur al
lui M, matricea S = A BC 1 B T . Un rezultat des folosit n teoria
matriceala precizeaza ca urmatoarele relatii sunt echivalente:
(i) M  0 (M este pozitiv semidefinita);

62

Capitolul 2. Probleme de optimizare convexa

(ii) A  0, (I AA )B = 0, C B T A B  0;
(iii) C  0, (I CC )B = 0, A B T C B  0,
unde cu A am notat pseudo-inversa matricei A. Mai mult, daca M 0
obtinem un caz particular al echivalentelor:
(i) M 0 (M este pozitiv definita);
(ii) A 0, C B T A1 B  0;
(iii) C 0, A B T C 1 B  0.
Evidentiem, mai departe, un exemplu de aplicatie al acestui rezultat. Fie
n
functia f : Rn S++
R definita de:
f (x, Y ) = xT Y 1 x.
Sa se demonstreze ca
complementului Schur.

este

convexa

folosind

proprietatile

Capitolul 3
Metode de ordinul I
3.1

Preliminarii

In acest capitol abordam probleme neliniare de optimizare neconstransa


(unconstrained nonlinear programming - UNLP):
(UNLP ) :

min f (x),

xRn

(3.1)

unde functia obiectiv f este de doua ori diferentiabila. Conform


conditiilor de optimalitate necesare pentru problema (3.1), orice punct de
minim local pentru problema (UNLP), x , satisface urmatoarele relatii:
f (x ) = 0,

2 f (x )<0.

In plus, daca pentru un punct y domf avem f (y ) = 0 si 2 f (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 dezvoltarea
algoritmilor eficienti din domeniul optimizarii (vezi [1, 2]). In particular,
conditiile de ordinul I stau la baza unei clase relativ largi de metode de
ordin I (metode ce folosesc evaluarea functiei si informatie de gradient).
In cazul convex, gasirea unui punct ce satisface conditiile de optimalitate
necesare este echivalenta cu rezolvarea problemei de optimizare originale
(deoarece conditiile de ordinul I sunt suficiente). Acest argument
furnizeaza o imagine clara asupra facilitatilor optimizarii convexe fata
de cazurile neconvexe, unde pentru gasirea unui punct minim/maxim
local este necesara rezolvarea conditiilor de ordinul I si de ordin II. Asa
cum se observa din experimentele numerice, desi algoritmii de ordinul

64

Capitolul 3. Metode de ordinul I

I prezinta o complexitate a iteratiei foarte scazuta (n comparatie cu


cei de ordin II) si o convergenta accelerata n regiunile ndepartate de
punctul de optim, atunci cand algoritmul intra n vecinatatea punctului
de optim, viteza acestora scade considerabil. De aceea, gasirea unui
punct de optim cu o acuratete mare este un proces dificil pentru
metodele 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 de
ordin I datorita complexitatii reduse a iteratiilor acestora. In continuare,
prezentam principalele metode de ordin I si exemple de functionare ale
acestora.

3.2
3.2.1

Probleme rezolvate de laborator


Metoda Gradient

Metoda gradient se afla printre primele si cele mai simple metode


dezvoltate n scopul determinarii unui punct critic aflat pe o anumita
curba (Cauchy, 1847). In principiu, metoda gradient reprezinta un
algoritm de ordin I care genereaza un sir de puncte (vectori) x1 , x2 , . . . ,
pornind dintr-un punct initial ales. Structura esentiala a metodei
gradient 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 alegerea
pasului k avem mai multe optiuni:
(i) Alegerea ideala a pasului k la fiecare iteratie presupune ca functia
scalara () = f (xk f (xk )) sa descreasca cat mai mult posibil, i.e:
k = arg min (),
>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

65

3.2. Probleme rezolvate de laborator

cautare, ce includ conditii necesare asupra pasului pentru asigurarea unei


descresteri suficiente a functiei. Conditiile Wolfe reprezinta un exemplu
elocvent 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 constanta
L > 0, putem alege pasul k constant la fiecare iteratie. Daca aplicam
iteratia metodei gradient, din conditia continuitatii functiilor cu gradient
Lipschitz avem:
f (xk+1 ) f (xk ) k (1

L
k ) kf (xk )k2 ,
2

rezultand ca trebuie sa selectam k (0, L2 ), iar pentru o descrestere


optima a functiei, la fiecare iteratie alegem k = L1 .
In exemplul urmator vom implementa metoda gradient pentru prima si
a treia dintre optiunile alegerii pasului k , unde criteriul de oprire va fi
impus de scaderea termenului kf (xk )k sub o precizie data.
Exemplul 15. Fie functia f (x) = (x1 2)4 + (x1 2x2 )2 .
implementeze metoda gradient pentru rezolvarea problemei:
min f (x),

xRn

Sa se
(3.4)

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

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 gradientul
functiei n acel punct. Din moment ce vom cauta pasul ideal la fiecare
iteratie a metodei gradient, va fi necesara o functie ce returneaza valoarea
functiei () = 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 functia
fminsearch. Vom porni de la un punct initial x0 , iar conditia de
oprire a algoritmului va presupune ca norma gradientului sa fie sub o
anumita toleranta impusa eps. Implementarea algoritmului este data de
urmatoarea 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

67

3.2. Probleme rezolvate de laborator

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.6

1.4

1.2

x2

0.8

0.6

0.4
1.2

1.4

1.6

1.8

x1

2.2

2.4

2.6

2.8

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 de
backtracking, se poate nlocui n cod functia fminsearch cu urmatoarea
secventa de cod:

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 care
a fost precizata n sectiunile anterioare, si anume decelerarea ratei de
convergenta pe masura ce algoritmul se apropie de punctul de optim.
In plus, Fig. 3.2 reda rezultatele grafice comparative ale convergentei
metodei gradient cand criteriul de oprire este de forma f (xk ) f sau
kf (xk )k. Observam ca desi criteriul f (xk ) f reflecta mult mai bine
acuratetea punctului curent, acesta este rar folosit n practica, deoarece
valoarea optima nu se cunoaste a priori.
1.8

|| f(xk) ||

0.35

1.6

f(x )f*

k 0.3

1.4

0.25

1.2
1

0.2

0.8
0.15
0.6
0.1

0.4

0.05
0
0

0.2
10

20

30

40

50

60

0
0

10

20

30

40

50

60

Figura 3.2: Comparatia convergentei variantelor metodei gradient (cu


criteriul f (xk ) f n prima figur
a si cu criteriul kf (xk )k n a doua),
pentru pas ideal (linie continu
a) si pas obtinut prin backtracking (linie
punctat
a).

In exemplul urmator, vom implementa metoda gradient cu pas constant


pentru o functie patratica cu gradient Lipschitz, pentru care L =
max (Q).
Exemplul 16. Fie functia patratica:

2.04 2.8 3.3;


1
6
4 x + [1 1 2]x
f (x) = xT 2.8
2
3.3
4 17.25

3.2. Probleme rezolvate de laborator

69

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

Sa se implementeze metoda gradient pentru rezolvarea problemei:


min f (x).

xR3

Rezolvare. Implementarea metodei gradient din cerinta precedenta este


data 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 cea
a problemei anterioare. Sa se comenteze observatiile facute.

70

3.2.2

Capitolul 3. Metode de ordinul I

Metoda gradientilor conjugati

Metoda gradientilor conjugati face parte, de asemenea, din clasa


metodelor de optimizare de ordinul I si reprezinta o metoda iterativa
cu performante deosebite n rezolvarea problemelor patratice. A fost dezvoltata de
catre Hestenes si Stiefel n 1951, n scopul rezolvarii sistemelor de ecuatii
liniare de mari dimensiuni. Deoarece orice problema de rezolvare a unui
sistem de ecuatii liniare/neliniare se poate transforma ntr-o problema
de optimizare patratica, metoda gradientilor conjugati este considerata
o metoda de optimizare. Vom observa ca iteratia are aproximativ
aceeasi complexitate ca si cea a metodei gradient, nsa foloseste un alt
rationament 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 + k dk si dk+1 = rk+1 + k dk .
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 directiilor
conjugate, variantele de alegere a acestora reprezentand elemente
fundamentale ale dezvoltarii de noi metode de directii (gradienti)
conjugate (conjugati). Cea mai des folosita varianta a metodei de directii
conjugate pentru functii patratice este data de
k =

rkT dk
,
dTk 2 f (xk )dk

k =

T
rk+1
2 (f xk )dk
dTk 2 f (xk )dk

Exemplul 17. Sa se determine punctul de optim si valoarea optima a


functiei patratice f : R2 R definita de:
f (x) = 4.5x21 + 5x22 + 3x1 x2 2x1 x2 ,
utilizand metoda gradientilor conjugati cu punctul initial x0 = [0 0]T .
Rezolvare. Rescriem functia f n forma matriceala:
1
f (x) = xT Qx + q T x,
2

71

3.2. Probleme rezolvate de laborator




9 3
unde Q =
, q T = 2 1 . Cunoastem ca pentru a rezolva
3 10
probleme patratice de dimensiune n cu ajutorul metodei gradientilor
conjugati sunt necesare n iteratii ale acestei metode. De aceea, problema
din enunt poate fi rezolvata n doua iteratii de aceasta metoda. Avand
la dispozitie gradientul f (x0 ) si directia d0 , putem calcula:
0 =

f (x0 )T d0
.
dT0 Qd0

Prima iteratie din sirul xk al metodei de gradienti conjugati se calculeaza


pe baza informatiei acumulate pana n momentul k = 1:
x1 = x0 + 0 d0 .
La a doua si ultima iteratie, pentru calculul lui x2 avem nevoie de directia
)T Qd0
d1 = f (x1 ) + 0 d0 , unde 0 = f d(xT1Qd
. In final, pentru calculul lui
0
0

x2 este necesar parametrul 1 =

T
1 ) d1
fd(x
T Qd
1
1

si rezulta:

x2 = x1 1 d1 .
Deoarece metoda gradientilor conjugati are nevoie de doua iteratii n
cazul nostru, iteratia x2 reprezinta solutia problemei de minimizare.
Stiind ca solutia problemei satisface, de asemenea, si sistemul liniar de
ordin II:
Qx + q = 0,
obtinem si un criteriu de verificare pentru solutia returnata de algoritmul
de gradienti conjugati. O implementare n cod Matlab este data de
urmatoarea 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);

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 patratica convexa f : Rn R, metoda gradientilor conjugati converge n
n iteratii. Observam un comportament deosebit al acestei metode,
deoarece n general, majoritatea metodelor cunoscute converg ntr-un
numar infinit de iteratii.

3.3
3.3.1

Probleme rezolvate de seminar


Aproxim
ari p
atratice
2

Problema 1. Fie functia f : R2 R, f (x) = 12 (x21 + x22 )e(x1 x2 ) .


(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 se
verifice ca Hessiana nu este pozitiv definita. Sa se arate ca = 3
este valoarea ntreaga minima pentru care H = 2 f (x0 ) + I 0.
(iii) Fie punctul x0 = [1/2 0]T . Sa se scrie aproximarea patratica
uzuala (serie Taylor) a acestei functii in jurul lui x0 si o aproximare
patratica utilizand n locul Hessianei o matrice 1 I, cu > 0.
Minimizati ambele aproximari.
Rezolvare. (i) Gradientul si Hessiana functiei vor fi:
 3

x1 + x1 (1 + x22 )
(x21 x22 )
f (x) = e
x3 + x2 (1 x21 )

 42 2
2
2
2x1 x2 (x21 + x22 )
2
(x21 x22 ) 2x1+x1 (5+2x2 )+x2 +1
.
f (x) = e
2x42+x22 (2x21 5) x21+1
2x1 x2 (x21 + x22 )
Evident, pentru x = 0 este punct de minim local deoarece satisface
conditiile suficiente de optimalitate:
f (x ) = 0,

2 f (x ) = I2 0.

73

3.3. Probleme rezolvate de seminar

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




 
12 4
3
2
,
, f (x0 ) =
f (x0 ) =
4 1
1

de unde rezulta ca valorile proprii ale lui 2 f (x0 ) sunt 1,2 = 112 233
(13.13, 2.13), i.e. matricea nu este pozitiv definita. Mai mult, observam
ca (2 f (x0 ) + I) 0 pentru = 3 > 2 2.13.
(iii) Pentru punctul x0 = [1/2 0]T vom avea:
5
 19 
1
1
0
2
8
8
4
4
.
, f (x0 ) = e
f (x0 ) = e
0
0 34
Aproximarea n serie Taylor a functiei n jurul punctului x0 = [1/2 0]T
va fi:
1
f (x) f (x0 ) + f (x0 )T (x x0 ) + (x x0 )T 2 f (x0 )(x x0 )
2

1
19 2 3 2
9
9
=e 4
,
x + x x1 +
16 1 4 2 16
64

T
al carei punct de minim este dat de xN
1 = [9/38 0] . Aproximarea cu
1
I are urmatoarea forma:

1
1
f (x) f (x0 ) + f (x0 )T (x x0 ) + (x x0 )T I2 (x x0 )
2

care n acest caz este data de:






1

 x1 1
T
1 
1 1
1
x

1
5
1
2 +
2
x1 2 x2 I2
f (x) = e 4 + e 4 8 0
x2
x2
8
2




1 2
5 1
1
1 1
1
2
4
4
(x1 ) + x2 + e x1
,
= e +
8
2
2
8
2
1

5
1
T
4
de unde rezulta punctul de minim xG
am ca
1 = [ 8 e + 2 0] . Observ
8
G
N
N
G
putem alege =
ncat x1 = x1 , iar f (x1 ) = f (x1 ). In cazul
1 astfel
19e 4

N
G
si xN
general nsa, obtinem puncte xG
1 pentru care f (x1 ) > f (x1 ).
1

3.3.2

Conditii de optimalitate de ordin I

Problema 2. Rezolvati problema de maximizare:


1
max f (x, y) =
.
x,y
(x a)2 + (y a)2 + 1

Sa se discute rezultatul n functie de 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
=0
x
f
y

=0

Explicitand cele doua ecuatii, obtinem:


(
xa = 0

y a = 0.

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


2 0
2
f (a, a) =
.
0 2
si constatam ca punctul (a, a) este punct de maxim, indiferent de valoarea
parametrului a.
Problema 3. Fie functia f (x1 , x2 ) = 11x21 + 20x1 x2 + x22 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:
1
f (x1 , x2 ) = xT Qx + q T x + r
2





1
x1
x1
22 20
= [x1 x2 ]
+ 2,
+ [2 2]
x2
x2
20 2
2
T


2
22 20
, r = 2. Punctele stationare ale
,q =
unde Q =
2
20 2
functiei f sunt solutii ale sistemului:


22x1 + 20x2 2
= 0.
(3.5)
f (x1 , x2 ) = Qx + q =
20x1 + 2x2 2


Un factor ce determina natura punctelor stationare este convexitatea


functiei f . Una din modalitatile de verificare a proprietatii de convexitate

3.3. Probleme rezolvate de seminar

75

presupune 2 f (x) = Q  0, pentru orice x domf . Valorile proprii ale


matricei Q sunt radacinile polinomului caracteristic 2 (22 + 2) +
44 + 400 = 0. Astfel, discutam convexitatea functiei f dupa :
Daca > 100
, functia f este convexa si orice solutie a sistemului
11
(3.5) este un punct de minim global. Rezolvand sistemul, obtinem
1
1
x1 = 11100
(10 ), x2 = 11100
Daca =

100
11

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


200
x2 2 = 0,
11
22x1 + 20x2 2 = 0

20x1 +

In acest caz, f este convexa, dar nu exista punct de minim, i.e. q 6


Im(Q).
, functia f nu este convexa deoarece matricea Q este
Daca < 100
11
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.
(
1
(10 )
x1 = 11100
f (x1 , x2 ) = 0
1

x2 = 11100 .
Pentru a determina un punct de minim, tinem cont de conditia de la
punctul precedent > 100
. Inlocuind valorile lui x1 , respectiv x2 n
11


10
1
= 2,
f
,
11 100 11 100
se determina usor valoarea scalarului .

3.3.3

Metoda gradient

2
1
T
2
Problema 4. Fie
 functia f : R R, f (x) = 2 kAx bk2 + 2x x,
1 1
si b = [0 1]T . Consideram de asemenea problema de
unde A =
1 1
optimizare aferenta: min2 f (x).
xR

(i) Sa se scrie problema de optimizare aferenta ca o problema QP. Sa


se calculeze expresia gradientului si Hessianei functiei obiectiv. Sa
se demonstreze ca functia obiectiv este convexa.

76

Capitolul 3. Metode de ordinul I

(ii) Sa se calculeze punctul de minim global x . Pornind din punctul


initial x0 = [0 1]T , sa se implementeze prima iteratie x1 a metodei
gradient cu pasul 0 = 1. Sa se compare f (x0 ), f (x1 ) si f (x ) si sa
se discute concluzia.
Rezolvare. (i) Pentru a scrie problema anterioara ca o problema QP,
explicitam mai ntai norma din cadrul functiei obiectiv:
1
1
kAx bk22 = (Ax b)T (Ax b)
2
2
1
= (xT AT Ax xT AT b bT Ax + bT b)
2
1
bT b
= xT AT Ax (AT b)T x +
2
2
Formuland 2xT x ca 21 xT 4I2 x avem:
1
min2 xT Qx + q T x + c
xR 2
unde Q = AT A + 4I2 , q = AT b si c = 21 bT b. Se pot determina usor
parametrii:

 

1
6 2
.
, q=
Q=
1
2 6

Deoarece Q este simetrica, expresia gradientului si a Hessianei sunt


definite de:


6x1 + 2x2 1
si 2 f (x) = Q
f (x) = Qx + q =
2x1 + 6x2 1

Functia f este de doua ori diferentiabila, deci putem folosi conditia de


ordin II pentru a arata convexitatea. Mai exact, verficam daca 2 f (x)
0 pentru orice x domf . Valorile proprii ale matricei Q sunt solutii ale
polinomului 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 sunt
suficiente pentru a determina punctul de optim:
f (x ) = Qx + q = 0.

77

3.3. Probleme rezolvate de seminar

Evident, solutia x = Q q este determinata de Q


rezultand:

1
32

6 2
2 6

 

  1
1 6 2 1
1 4
x =
=
= 81
1
32 2 6
32 4
8

Implementarea primei iteratii a metodei gradient presupune calculul


vectorului f (x0 ):
 
1
.
f (x0 ) = Qx0 + q =
5
Astfel, iteratia x1 rezulta:


0
x1 = x0 0 f (x0 ) =
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 ca
aplicarea metodei gradient unei probleme cu functia obiectiv cu gradient
continuu n
 sens Lipschitz (cu constanta L) presupune alegerea pasului
0, L2 . 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 + 3x22 4x1 x2 + x1 ,
punctul initial x0 = [ 81 0]T si directia d0 = [ 15 52 ]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 alegere
ideala a dimensiunii pasului).
Rezolvare. (i) Pentru ca directia dk sa fie directie de descrestere, trebuie
sa satisfaca inegalitatea f (xk )T dk < 0. Din expresia gradientului
functiei f :


8x1 4x2 + 1
f (x) =
,
6x2 4x1
care n punctul x0 este f (x0 ) = [0 1/2]T , observam ca f (x0 )T d0 =
1/5. Deci directia d0 este directie de descrestere.

78

Capitolul 3. Metode de ordinul I

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




 
1 T
8 4
1
T
f (x) = x Qx + q x, unde Q =
si q =
.
4 6
0
2
Explicitam ():
() =

2 T
1
d0 Qd0 + (Qx0 + q)T d0 + xT0 Qx0 + q T x0 ,
2
2

si deducem derivata n 1:
(1) = dT0 Qd0 + (Qx0 + q)T d0 = 0.44.
(iii) Substituind valorile parametrilor din enunt, problema gasirii
dimensiunii ideale a pasului metodei gradient se reduce la minimizarea
unei functii scalare patratice convexe. Rezulta astfel min () = 0.0833
0

si = arg min () = 0.1667. In final, calculam prima iteratie a metodei

gradient:


0.1250
x1 = x0 f (x0 ) =
.
0.0833

Problema 6. Fie problema de minimizare:


min2 f (x) (:= 5x21 + 5x22 x1 x2 11x1 + 11x2 + 11).

xR

(i) Sa se gaseasca punctele critice.


(ii) Sa se demonstreze ca un punct ce satisface conditiile de ordin I
este, de asemenea, punct de minim global.
(iii) Care este rata de descrestere a metodei gradient pentru aceasta
functie ?
   
0
x
, cate iteratii sunt necesare
(iv) Pornind din punctul initial 1 =
0
x2
pentru ca algoritmul sa atinga acuratetea 106 ?
Rezolvare. (i) Punctele critice reprezinta solutiile sistemului f (x) = 0
descris de:
(
10x1 x2 11 = 0
x1 + 10x2 + 11 = 0.

79

3.3. Probleme rezolvate de seminar

Observam ca sistemul are o singura solutie data de perechea (x1 , x2 ) =


(1, 1).
(ii) Observam ca functia f n forma:
1
f (x1 , x2 ) = [x1
2

x2 ]

10 1
1 10



x1
x2

+ [11 11]

x1
x2

+ 11.

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


2

f (x1 , x2 ) =

10 1
1 10

= Q 0.

In concluzie, punctul critic (x , x ) = (1, 1) este punct de minim global.


1
2
(iii) Pentru calculul ratei de descrestere corespunzatoare metodei gradient
explicitam iteratia acesteia:
xk+1 = xk k f (xk )
= xk k (Qxk + q)
= xk k Qxk k q
= (I2 k Q)xk k q,
unde cu I2 am notat matricea identitate de ordin II. Consideram metoda
gradient cu pasul constant dat de k = L1 , unde L reprezinta constanta
de continuitate Lipschitz a gradientului functiei obiectiv.
Reamintim acum relatia de continuitate n sens Lipschitz a gradientului
unei functii diferentiabile: o functie f : Rn R are gradientul continuu
Lipschitz cu constanta L daca
kf (x) f (y)k Lkx yk, x, y Rn .
In cazul functiei din enunt, relatia se reduce la:
kQx Qyk kQkkx yk, x, y R2 ,
deci putem considera constanta Lipschitz L = kQk = max (Q), unde
max (Q) reprezinta valoarea proprie maxima a lui Q. Observand ca n
1
cazul nostru max (Q) =
 11, consideram pasul constant k = 11 .
L=
1
, din conditiile de ordinul I avem Qx = q,
Folosind notatia x =
1

80

Capitolul 3. Metode de ordinul I

de aceea putem reformula iteratia n urmatorul mod:


1
(Qxk + q) x
11
1
= xk (Qxk Qx ) x
11 

1
= I2 Q (xk x )
11
..
.

k
1
= I2 Q (x0 x ).
11

xk+1 x = xk

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


k

1

kxk+1 x k = k I2 Q (x0 x )k
11

k
1
k I2 Q kkx0 x k
11
1
= kI2 Qkk kx0 x k.
11
In concluzie, metoda gradient are rata de descrestere liniara (pentru
1
Qk.
functia din enunt) cu factorul kI2 11
(iv) Din punctul anterior, avem rata de convergenta a sirului generat de
metoda gradient cu pas constant:
kxk x k kI2

1
Qkk kx0 x k.
11

(3.6)

Calculand norma Euclidiana (norma 2), avem:



 1 1 



1
2
11 =
I2 Q = 11
.
1
1



11
11
11
11

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


 k

.
kxk x k 2
11
Pentru ca sirul xk sa se apropie de punctul
de optim x cu acuratetea


2 k
106 , trebuie sa asiguram inegalitatea 2 11
106. In concluzie,

81

3.3. Probleme rezolvate de seminar

prin extragerea logaritmului din ambele parti, avem nevoie de un numar


de iteratii:

2 log 106
k
.
log 11 log 2
Problema 7. Sa se determine extremele functiei f (x1 , x2 ) = x31 x22 (a
x1 x2 ). Pentru ce valori ale lui a, functia f are un punct de maxim
global?
Rezolvare. Obtinem punctele de extrem ale functiei rezolvand sistemul
dat de conditiile de ordin I, i.e. f (x1 , x2 ) = 0. Mai exact, sistemul are
forma:
(
(
3x21 x22 (a x1 x2 ) x31 x22 = 0
x21 x22 (3a 4x1 3x2 ) = 0

2x31 x2 (a x1 x2 ) x31 x22 = 0


x31 x2 (2a 2x1 3x2 ) = 0,
de unde putem deduce trei cazuri diferite:
(
(
(
3a 4x1 3x2 = 0
x1 oarecare
x1 = 0
sau
sau
2a 2x1 3x2 = 0
x2 = 0
x2 oarecare

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


2f
2f
2
=
2x
x
(3a

6x

3x
),
= x31 (2a 2x1 5x2 )
1 2
1
2
x21
x22
2f
2f
=
= x21 x2 (6a 8x1 9x2 ),
x1 x2
x2 x1
Constatam ca n primele doua cazuri, x1 = 0 sau x2 = 0, matricea


0 0
2
f (x1 , x2 ) =
0 0
este nedefinita. Pentru ultimul caz nsa, obtinem x1 =
Astfel, observam ca:
 a a   a4 a3 
2
f
= a9 3 a4 4
,
2 3
4
12

a
2

si x2 =

a
.
3

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


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

i.e. a 23 , 0 .

82

Capitolul 3. Metode de ordinul I

Problema 8. Fie functia f : Rn R convexa si diferentiabila. Sa se


deduca iteratia metodei gradient cu pas constant = 51 prin intermediul
aproximarii Taylor patratice cu Hessiana 5In .
Rezolvare. In orice punct al domeniului acesteia, functia f se poate
aproxima cu o forma patratica dupa cum urmeaza:
f (x) f (
x) + f (
x)T (x x) +

kx xk2 ,
2

oricare ar fi x domf si 0. Precizam ca partea dreapta a expresiei


anterioare se numeste aproximarea patratica a functiei f n punctul x cu
Hessiana 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 minn f (xk ) + f (xk )T (y xk ) +
yR

1
ky xk k2 .
2

Observand ca se presupune minimizarea unei functii convexe,


determinam minimul explicit prin intermediul conditiilor de optimalitate
de ordin I:
1
f (xk ) + (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) = 21 xT x + 21 (aT x)2 . Sa
se deduca numarul de flopi necesari pentru calcularea urmatoarelor
elemente: f (x), f (x), 2 f (x) si 2 f (x)d, unde d Rn este un vector
oarecare.
Problema 2. Pentru urmatoarele functii determinati toate punctele stationare si verificati daca acestea sunt puncte de minim local prin
utilizarea conditiilor suficiente de optimalitate de ordinul II:
(i) f (x) = 3x1 +

100
x1 x2

+ 5x2 ,

83

3.4. Probleme propuse

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


(iii) f =

x1 +x2
.
3+x21 +x22 +x1 x2

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


x0 = [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 punct
x1 utilizand iteratia metodei gradient.
Problema 4. Sa se aplice metoda gradientilor conjugati pentru
minimizarea neconstransa functiei definite n problema rezolvata 5. Sa
se verifice n doua moduri validitatea punctului de optim obtinut.
Problema 5. Fie o matrice Q 0. Sa se demonstreze inegalitatea lui
Kantorovich definita de urmatoarea relatie:
(xT x)2
4max (Q)min (Q)
.

(xT Qx) (xT Q1 x)


[max (Q) + min (Q)]2
Problema 6. Sa se discute valorile parametrului n astfel ncat functia
f (x1 , x2 ) = xn1 + xn2 x1 x2 n sa aiba puncte de extrem local.
Problema 7. Fie functia f (x) = x41 + x1 x2 + (1 + x2 )2 . Definim modelul
patratic:
qf (x; x0 ) = f (x0 ) + hf (x0 ), x x0 i +

1
kx x0 k2 .
2

Se observa ca iteratia metodei gradient cu dimensiunea pasulului este


punctul de minim al formei patratice anterioare, i.e.
x1 = x0 f (x0 )
= arg min2 f (x0 ) + hf (x0 ), y x0 i +
yR

1
ky x0 k2 .
2

(i) Pentru x0 = [0 0]T , sa se calculeze f (x0 ) si 2 f (x0 ) si sa se


demonstreze ca 2 f (x0 ) nu este pozitiv definita.
(ii) Pentru x0 = [1 1]T , sa se calculeze prima iteratie a metodei de
gradient cu pasul = 1.

84

Capitolul 3. Metode de ordinul I

Problema 8. Fie functia f (x) = x21 + 2x22 + 4x1 + 4x2 . Sa se demonstreze


prin inductie ca metoda gradient cu pasul ideal, pornind din x0 = [0 0]T ,
genereaza sirul dat de:
 2

2
3k 
xk+1 =
.
k
13 1
Sa se deduca punctul de minim din sirul rezultat.

Problema 9. Sa se gaseasca punctele critice ale functiei:


f (x) = 2x31 3x21 6x1 x2 (x1 x2 1).
Care din aceste puncte sunt minime locale, maxime locale sau niciuna
din variante?
Problema 10. Pentru problema de optimizare:
min2 4x21 4x1 x2 + 2x22 ,

xR

sa se aplice primele trei iteratii ale metodei gradient cu pasul ales n


mod 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 kek k pentru
orice k, iar f este functia patratica pozitiv definita:
1
f (x) = (x x )T Q(x x )
2
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:
kxk x k

s
+ q k kx0 x k
1q

Capitolul 4
Metode de ordinul II
4.1

Preliminarii

In acest capitol consideram, de asemenea, probleme generale de


optimizare neconstransa de forma (3.1). Daca metodele de ordinul I
expuse n capitolul anterior se bazeaza pe informatia de gradient a
functiei obiectiv, n urmatoarele sectiuni analizam algoritmi ce fac uz n
plus si de informatia de ordinul II, si anume matricea Hessiana a functiei
obiectiv (vezi [1, 3]). In cele ce urmeaza prezentam pe scurt conditiile
de optimalitate necesare si suficiente pentru probleme de optimizare fara
constrangeri (restrictii) (3.1).
Conditiile necesare de optimalitate pentru problemele neconstranse pot fi
enuntate astfel: orice punct de minim local x domf al problemei (3.1)
satisface f (x ) = 0. De asemenea, conditiile necesare de ordinul II se
pot formula dupa cum urmeaza: orice punct de minim local x domf
al problemei (UNLP) satisface:
f (x ) = 0 si 2 f (x )  0.
Atribuim o importanta majora conditiilor de optimalitate suficiente de
ordinul II deoarece reprezinta o modalitate de verificare a naturii unui
punct dat: daca x satisface
f (x ) = 0 si 2 f (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 cu
ajutorul informatiei de gradient, putem argumenta ca cei de ordinul II

86

Capitolul 4. Metode de ordinul II

converg la un punct de minim local ce satisface conditiile de ordinul I si


II, utilizand n plus matricea Hessiana a functiei obiectiv. In continuare,
prezentam principalele metode de ordinul II si analizam comportamentul
acestora pe exemple numerice.
Metoda Newton reprezinta una dintre cele mai vechi metode de
optimizare, dezvoltata initial n scopul aproximarii iterative a solutiilor
ecuatiilor neliniare. Aceasta metoda utilizeaza inversa matricei Hessiane
a functiei obiectiv pentru o convergenta rapida catre un punct de
minim local. Principalul dezavantaj al metodei Newton l reprezinta
instabilitatea provocata de anumiti factori (e.g. initializarea ntr-o
regiune ndepartata de optim, conditionarea matricei Hessiene). Cu toate
acestea, n cazurile bine conditionate cand metoda converge, prezinta o
convergenta mult superioara metodelor de ordinul I. Ideea principala ce
sta la baza metodei Newton o reprezinta aproximarea functiei obiectiv:
pentru functia obiectiv f a problemei (3.1), la iteratia k se construieste
aproximarea patratica f f (aproximarea Taylor de ordinul II) a functiei
obiectiv n punctul curent xk :
1
f(x) = f (xk ) + f (xk )T (x xk ) + (x xk )T 2 f (xk )(x xk ),
2
care se minimizeaza cu scopul obtinerii iteratiei Newton. Daca 2 f (xk )
este pozitiv definita, atunci functia f(x) este convexa. Pe de alta parte,
gradientul functiei f(x) este dat de:
f(x) = 2 f (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 ce
anuleaza gradientul functiei f(x), i.e. f(xk+1 ) = 0, implicit vom obtine
sistemul liniar de ecuatii:
2 f (xk )(xk+1 xk ) = f (xk ),
de unde rezulta iteratia metodei Newton standard:
1
xk+1 = xk 2 f (xk )
f (xk ).

Varianta generala a metodei Newton este data de iteratia:


xk+1 = xk k 2 f (xk )

1

f (xk ),

(4.1)

4.2. Probleme rezolvate de laborator

87

considerand selectarea pasului k prin aceleasi moduri ca la metodele


de ordinul I: line search (ideal), backtracking sau k = constant.
Observam ca metoda Newton standard are dimensiunea pasului unitar
constant, i.e. k = 1.
Daca functia f este patratica strict convexa (i.e. 2 f (x) 0 pentru orice
x), atunci metoda Newton converge ntr-un singur pas catre punctul de
minim. In general, metoda Newton nu converge decat daca initializarea
se realizeaza n vecinatatea punctului de minim. Exista doua motivatii
pentru acest comportament: (i) daca functia obiectiv f este puternic
neliniara atunci f este o aproximare inexacta lui f , de aceea exista
posibilitatea ca f (xk+1 ) > f (xk ); (ii) nu avem garantia ca 2 f (xk ) 0
pe parcursul iteratiilor metodei. Mai exact, daca 2 f (xk ) 6 0 sau
det (2 f (xk )) = 0, atunci este posibil ca f(x) sa nu aiba punct de
minim. Implementarea metodei Newton necesita abordarea a doi factori
importanti:
(i) este necesara implementarea unei reguli de alegere a dimensiunii
pasului k , astfel ncat sa eliminam posibilitatea de crestere a functiei
obiectiv n punctele departate de optim, fapt datorat impreciziei
aproximarii patratice. In cazul n care functia obiectiv nu este convexa,
nsa problema de minimizare admite o solutie, atunci inversa Hessianei
nu este pozitiv definita n mod cert decat n apropierea solutiei;
(ii) daca nu putem asigura ca Hessiana este pozitiv definita n fiecare
punct al sirului {xk }k0 , o abordare des ntalnita presupune nlocuirea
Hessianei cu o matrice Hessiana modificata G = In + 2 f (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 daca
o matrice data este sau nu pozitiv definita este factorizarea Cholesky.

4.2
4.2.1

Probleme rezolvate de laborator


Metoda Newton

Exemplul 18. Sa se implementeze metoda Newton cu cele trei variante


de alegere a dimensiunii pasului (ideal, backtracking, pas unitar constant)
pentru rezolvarea problemei:
min2 f (x) (= (x1 x32 )2 + 3(x1 x2 )4 ).

xR

(4.2)

88

Capitolul 4. Metode de ordinul II

|f(xk)f* |

|| f(xk) ||
4.5

0.25

4
3.5

0.2

3
2.5

0.15

2
0.1

1.5
1

0.05

0.5
0

10

12

14

10

12

14

Figura 4.1: Comparatia convergentei metodei Newton utiliz


and cele trei
optiuni pentru selectarea pasilor: ideal (linie continu
a), backtracking (linie
punctat
a ntrerupt
a) si pas constant unitar (linie ntrerupt
a) pentru problema
(4.2).

Rezolvare. Utilizam functii auxiliare ce returneaza informatii de ordinul


I 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 2 f (x) prin variabile H. Pentru selectarea pasului
ideal, construim functia:
f=alpha_search(alpha,x,d)
ce returneaza f (x + d) n f . De asemenea, pentru metoda backtracking
construim functia:
alpha=alpha_bactrack(x,d).
Conditia de oprire va fi aceeasi ca si n cazul metodei gradient, anume
kf (xk )k < , unde > 0 reprezinta acuratetea dorita. Secventa de cod
ce 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=[];

4.2. Probleme rezolvate de laborator

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]);

89

90

Capitolul 4. Metode de ordinul II


1.6
1.4

x21.2
1
0.8
0.6
0.4

0.6

0.8

x1

1.2

1.4

1.6

Figura 4.2: Graficul punctelor obtinute de metoda Newton cu pas ideal si


liniile 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 trei
optiuni pentru selectarea pasului pot fi observate n Fig. 4.1. In Fig.
4.2 observam punctele obtinute de metoda Newton si curbele de nivel
aferente.

4.2.2

Metode cvasi-Newton

Desi metoda Newton prezinta convergenta patratica, n multe cazuri ea


prezinta dezavantaje din punct de vedere al efortului de calcul datorita
necesitatii calculului derivatelor de ordinul I si a rezolvarii sistemului de
ecuatii (4.1) la fiecare iteratie. Pentru probleme de dimensiuni mari
ce nu pot fi abordate cu metoda Newton au fost dezvoltate metode
de tip cvasi-Newton. Aceasta clasa de metode presupun nlocuirea
matricei Hessiene cu una simetrica pentru care operatia de inversare nu
este costisitoare. Sirul de matrice rezultat permite evitarea calculului
derivatelor de ordinul II si simplifica rezolvarea sistemului de ecuatii
(4.1) necesar determinarii directiei. Un algoritm de tip cvasi-Newton
este definit de urmatoarea schema:

4.2. Probleme rezolvate de laborator

91

Fie punctul initial x0 domf si matricea initiala H0 0. Pentru


k 1, cat timp criteriul de oprire nu este satisfacut, iteram:
1. se calculeaza directia cvasi-Newton dk = Hk1 f (xk );

2. se determina pasul k (e.g. prin metoda de backtracking);

3. se calculeaza urmatoarea iteratie: xk+1 = xk + k dk ;


4. se calculeaza o noua matrice Hk+1 .
Metodele de tip cvasi-Newton difera prin regula de actualizare
a matricei Hk .
Cea mai des utilizata varianta este metoda
Broyden-Fletcher-Goldfarb-Shanno (sau metoda BFGS pe scurt):
Hk = Hk1 +

k kT
Hk1 k Tk Hk1

,
kT k
Tk Hk1 k

unde
k = xk xk1 , k = f (xk ) f (xk1 ).

O alta versiune a metodei BFGS considera actualizarea directa a inversei


matricei Hk :




k Tk
k T
k kT
1
1
Hk1 I T
+ T k.
Hk = I T
k k
k k
k k
Structura algoritmului cvasi-Newton cu actualizare BFGS este definita
de urmatoarea schema:
Selectam un punct initial x0 Rn , o toleranta > 0 si o matrice
H0 Rnn simetrica si pozitiv definita. Cat timp kf (xk )k > ,
1. calculam directia dk = Hk1 f (xk );

2. calculam pasul k = arg min>0 f (xk + dk );


3. calculam noua iteratie xk+1 = xk + k dk si k = k dk ;
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 locala


a metodei Newton si a metodelor de tip cvasi-Newton. Cu toate ca
metodele cvasi-Newton prezinta o complexitate per iteratie mai mica,
rata de convergenta este (super)liniara n timp ce metoda Newton
prezinta o rata de convergenta patratica locala.

92

4.3
4.3.1

Capitolul 4. Metode de ordinul II

Probleme rezolvate de seminar


Metoda Newton si metoda BFGS

Problema 1. Fie problema de optimizare


min f (x)

xRn

unde f : Rn R este patratica, i.e f (x) = 21 xT Qx + q T x. 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 = Q1 q. Retinem ca directia metodei Newton
este d = (f (x))1 f (x), care in cazul patratic va fi:
d = Q1 (Qx + q) = x Q1 q.
Astfel, pentru un punct initial x0 si un pas 0 = 1, vom avea:
x1 = x0 + 0 d0 = x0 x0 Q1 q = Q1 q.
Din moment ce f este convexa, va rezulta automat ca 2 f (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 standard
prin intermediul aproximarii Taylor de ordinul II. Este posibila si o alta
modalitate de a obtine aceasta iteratie?
Rezolvare. Deoarece functia f este diferentiabila de doua ori, n orice
punct al domeniului acesteia x domf , se poate aproxima cu o forma
patratica:
1
f (x) f (
x) + f (
x)T (x x) + (x x)T 2 f (
x)(x x).
2
Precizam ca partea dreapta a expresiei anterioare se numeste aproximarea
Taylor de ordinul II n punctul x a functiei f .
Fie punctul curent xk al metodei Newton, urmatoarea iteratie xk+1 se
determina din minimizarea neconstransa a aproximarii de ordinul II n
punctul xk a functiei obiectiv:
1
xk+1 = arg minn f (xk ) + f (xk )T (y xk ) + (y xk )T 2 f (xk )(y xk ).
yR
2

93

4.3. Probleme rezolvate de seminar

Deoarece functia f este convexa, matricea 2 f (xk ) este pozitiv


semi-definita, deci aproximarea patratica este convexa. Determinam
punctul de minim al acestei aproximari din conditiile de optimalitate
de ordinul I:
2 f (xk )(y xk ) + f (xk ) = 0,
de unde rezulta iteratia:

1
xk+1 = y = xk 2 f (xk )
f (xk ).

O modalitate alternativa de a deduce iteratia Newton este descrisa de


liniarizarea expresiei gradientului functiei obiectiv n punctul curent xk :
f (x) f (
x) + 2 f (
x)(y x),
unde consideram f (
x) si 2 f (
x) cunoscute. Pentru a obtine iteratia
Newton, la momentul k + 1, egalam cu 0 aproximarea liniara a
gradientului, n punctul xk :
f (xk ) + 2 f (xk )(y xk ) = 0,
de unde rezulta:

1
xk+1 = y = xk 2 f (xk )
f (xk ).

Mentionam n plus ca iteratia metodei Newton generale



1
xk+1 = xk k 2 f (xk )
f (xk )

se obtine din minimizarea unei aproximari Taylor patratice de forma:


xk+1 = arg minn f (xk ) + f (xk )T (y xk ) +
yR

1
(y xk )T 2 f (xk )(y xk ).
2k

De asemenea, iteratia metodei gradient xk+1 = xk k f (xk ) se poate


obtine dintr-o aproximare patratica de forma:
xk+1 = arg minn f (xk ) + f (xk )T (y xk ) +
yR

1
ky xk k2 .
2k

94

Capitolul 4. Metode de ordinul II

Problema 3. Fie problema de optimizare neconstransa:


min f (x)

xR2


1 2 5 2
= x1 + x2 + 2x1 x2 + 2x1 + 4x2 .
2
2

(i) Sa se scrie problema ca o problema QP (Quadratic Programming). Sa


se 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 a
acestei metode cu pasul obtinut.
(iv) Sa se implementeze prima iteratie a metodei Newton standard pentru
problema precedenta. Sa se compare punctul x1 al metodei gradient cu
cel al metodei Newton. Ce se observa?
Rezolvare. (i) Prin rescrierea sub forma matriceala a functiei obiectiv
ajungem la forma QP:




1 T 1 2
x + 2 4 x.
f (x) = x
2 5
2
Pentru a determina convexitatea functiei, verficam daca matricea
Hessiana:


1 2
2
f (x) = Q =
2 5
este pozitiv semidefinita. Observam ca minorii principali sunt strict
pozitivi, rezultand ca Hessiana este pozitiv definita.
(ii) Deoarece functia obiectiv este strict convexa, punctul de minim
neconstrans este dat de conditiile de optimalitate de ordinul I:
f (x ) = Qx + q = 0,
 
 
2
2
.
si de unde rezulta solutia unica x =
unde q =
0
4
(iii) Reamintim procedura de selectare a lungimii ideale a pasului:
0 = arg min () = arg min f (x0 f (x0 )).
0

(4.3)

95

4.3. Probleme rezolvate de seminar

 
1
Obtinand directia de gradient d0 = f (x0 ) = Qx0 +q =
, evaluam
1
functia obiectiv:

1
(1 )2 + 5(1 + )2 2(1 2 ) 6 2
2
= 52 2 1.

() = f (x0 f (x0 )) =

Observam ca punctul de minim global neconstrans al functiei () este


= 51 . 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 = 51 . Prima iteratie a
metodei gradient cu pas ideal este data de:
 4 
G
x1 = x0 0 f (x0 ) = 56 .
5
(iv) Metoda Newton standard presupune urmatoarea iteratie:

1
xk+1 = xk 2 f (xk )
f (xk ).

In cazul nostru, functia obiectiv este patratica (implicit de doua ori


diferentiabila) cu Hessiana:


1 2
2
.
f (x) =
2 5
Calculam inversa matricei Hessiene:
 2
1
f (x)
=


5 2
,
2 1

iar primul pas al metodei Newton standard este dat de:


   
  
 2
1
2
5 2 1
1
N
= x .
=

x1 = x0 f (x0 )
f (x0 ) =
0
1
2 1
1

In concluzie, metoda Newton converge pentru aceasta problema ntr-un


singur pas catre punctul de minim.
Problema 4. Fie functia f : R2 R, definita de:
f (x1 , x2 ) =

x41 x42 x31 x32


+

.
4
4
3
3

96

Capitolul 4. Metode de ordinul II

(i) Sa se determine un punct de minim local al problemei:


min f (x)

xR2

(ii) Sa se calculeze prima iteratie a metodei Newton alegand punctul


initial 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:


 2
 3
3x1 2x1
0
x1 x21
2
.
,
f (x) =
f (x) = 3
0
3x22 2x2
x2 x22
Din conditia f (x ) = 0 deducem ca componentele lui x satisfac
conditia x1 , x2 {0, 1}, iar pentru x = [1 1]T avem:
2 f (1, 1) = I2 0,
deci x = [1 1]T este punct de minim strict local.
(ii) Pentru punctul initial x0 = [1 1]T avem:

1 

 
 2

5 0
2
0
0 1
2
0
0
f (x )
= 5
,
f (x ) =
f (x ) =
,
0 1
0
0 1

de unde rezulta directia Newton:

 0  2 
d
d0 = [ f (x )] f (x ) = 10 = 5 .
d2
0
2

Acum, pentru determinarea pasului ideal, trebuie sa calculam () =


f (x0 + d0) pentru functia noastra obiectiv:
1
1
1
1
() = (x1 + d01)4 + (x2 + d02)4 (x1 + d01 )3 (x2 + d02 )3 .
4
4
3
3
2 4 1
2 3 x42 x32
1
) (x1 +
) +
.
= (x1 +
4
5
3
5
4
3
Rezolvam
ecuatia () = 0, de unde obtinem = 5. Astfel, pentru
pasul 0 = 1, respectiv 0 = 5 iteratiile sunt date de:
 
3
1
= x .
x1 = 5 , x1 =
1
1
Evaluand functia obiectiv n cele doua puncte f (3/5, 1) = 0.0211,
f (1, 1) = 0.1667, constatam o descrestere mai buna cu dimensiunea
ideala a pasului.

97

4.3. Probleme rezolvate de seminar

Problema 5. Daca efectuam o actualizare de rang 1 asupra unei matrice


i.e.:
patrate si nesingulare A si notam rezultatul cu A,
A = A + uv T ,
unde a, b Rn , atunci formula Sherman-Morrison-Woodbury are loc:
A1 uv T A1
A1 = A1
.
1 + v T A1 u

(4.4)

Rezolvare. Pentru a verifica aceasta formula, conform definitiei matricei


inverse, avem egalitatea A1 A = In . Astfel, simplu nmultim pe A cu
A1 :


1
T 1
A
uv
A
1
1
(A + uv T )
A A = A
1 + v T A1 u
A1 uv T + A1 u(v T A1 u)v T
= In + A1 uv T
1 + v T A1 u
1
T
A uv + (v T A1 u)A1 uv T
= In + A1 uv T
1 + v T A1 u
T 1
1 + v A u 1 T
A uv = In .
= In + A1 uv T
1 + v T A1 u
Problema 6. Fie functia f : R R, definita de f (x) = (x1)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)
4x(3 x2 )
2
,

f
(x)
=
.
(x2 + 1)2
(x2 + 1)3

Din conditiile de optimalitate va rezulta desigur ca x = 1 este punct


de minim local strict. Utilizand expresiile obtinute ale gradientului si
Hessianei, 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
, d(1) = 0,
4

98

Capitolul 4. Metode de ordinul II

iar n x0 = 0 avem 2 f (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 metoda
Newton standard nu poate fi aplicata. Pentru x0 = 2 avem x1 =
215/4 = 23/4, iar din expresia directiei deducem ca metoda diverge.
Observam ca pentru un punct initial suficient de aproape de punctul de
optim, e.g. x0 = 1.3, metoda Newton converge.
Problema 7. Fie functia f : R2 R, definita de f (x) = x41 + x1 x2 + (1 +
x2 )2 . Sa se descrie performantele metodei Newton aplicata problemei:
min f (x),

xR2

pornind din punctul initial x0 = [0 0]T .


Rezolvare. Calculam expresiile gradientului si Hessianei:




12x21 1
4x31 + x2
2
, f (x) =
f (x) =
1
2
x1 + 2(x2 + 1)
si evaluand aceste expresii n x0 avem:
 




0
0 1
2 1
0
2
0
2
0 1
f (x ) =
, f (x ) =
, ( f (x )) =
.
2
1 2
1 0
Astfel, directia Newton pentru punctul x0 va fi:

2
,
d0 = ( f (x0 )) f (x0 ) =
0
2

iar f (x0 )T d0 = 0. Observam ca aceeasi egalitate este valabila de


asemenea pentru d0 . Astfel, d0 nu este directie de descrestere. In
plus, observam ca f (x0 ) = 1, iar pentru x1 = x0 + d0 = [2 0]T , vom
avea f (x1 ) = 17, iar pentru x1 = x0 d0 vom avea tot f (x1 ) = 17.
Problema 8. O problema fundamentala din domeniul prelucrarii
semnalelor 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 semnalului
adevarat prin intermediul rezolvarii urmatoarei probleme de optimizare:
min kx yk2 +

xRn

n1
X
i=1

|xi+1 xi |,

99

4.3. Probleme rezolvate de seminar

Observam ca desi primul termen ce denota distanta Euclidiana dintre


semnalul adevarat x si cel corupt y este suficient pentru a gasi o
aproximare relativ fidela, se adauga un termen de regularizare descris de
suma diferentelor dintre elementele consecutive ale semnalului x. Acest
termen de regularizare are scopul de a asigura gasirea unei aproximari cat
mai netede, fara variatii bruste ale componentelor. Observam ca functia
obiectiv 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 Hessianei
corespunzatoare noii functii obiectiv de la punctul a), si sa se aplice
un pas al metodei Newton.
Rezolvare. (i) O aproximare neteda (smooth) a problemei din enunt este
data de:
!
n1 

X
p
= kx yk22 +
minn f (x)
2 + (xi+1 xi )2
,
xR

i=1

unde > 0 este suficient de mic.


(ii) Determinam forma explicita a primului pas din metoda Newton.
Reamintim directia Newton: dN = [2 f (x)]1 f (x). Notand (x) =

n1
P p 2
2
+ (xi+1 xi ) , se observa ca gradientul functiei obiectiv

i=1

a problemei de la punctul a) este:

f (x) = 2(x y) + (x).


Mai departe, Hessiana aceleiasi functii este data de: 2 f (x) = 2In +
2 (x). In concluzie, dificultatea se reduce la determinarea formei
explicite a gradientului si matricei Hessiane corespunzatoare functiei .

n1
P p 2
+ u2i , si
Pentru o expunere simplificata, notam g(u) =

observam ca (x) = g(Ax), unde A Rn1n

1 1 0 0 0
0 1 1 0 0

A = ..
.. .. .. ..
.
. . . .
0
0 0 0 1

i=1

data de:

0
0

.. .
.
1

100

Capitolul 4. Metode de ordinul II

Precizam ca sunt suficiente expresiile derivatelor functiei g pentru a le


determina pe cele ale functiei . Astfel, determinam forma explicita a
componentelor acestora:
ui
i g(u) = p
2 + u2i

2ii g(u) = p

2
2 + u2i

Deoarece functia g este separabila, Hessiana acesteia este matrice


diagonala. In final avem:
f (x) = 2(x y) + AT g(Ax)

2 f (x) = 2In + AT 2 g(Ax)A

si observam ca matricea 2 f (x) este superior bidiagonala.


Newton este data de solutia sistemului superior bidiagonal:

Directia

2 f (x)dN = f (x),
ce se rezolva n O(n) operatii.

4.4

Probleme propuse

Problema 1. Pentru urmatoarele doua probleme, sa se determine


punctele de optim si sa se implementeze primii trei pasi ai metodei
Newton standard, i.e. cu pas constant = 1:
(i) min ln(ex + ex ), pornind din x0 = 1 si x0 = 1.1
xR

(ii) min ln x + x, pornind din x0 = 3


xR

Ce se observa dupa primii trei pasi?


Problema 2. Fie urmatoarea problema de optimizare:
min x21 + 100x22

xR2

Sa se implementeze metoda BFGS cu pas optim la fiecare iteratie,


pornind din punctul initial x0 = [1 1]T si matricea initiala H0 = I2 . In
cati pasi converge metoda la punctul de optim?

101

4.4. Probleme propuse

Problema 3. Sa se implementeze primii doi pasi ai metodei DFP


(Davidon-Fletcher-Powell) pentru urmatoarea problema:
2

min2 x21 + 3x22 + e1+x1 +x2

xR

pornind din punctul initial x = [1 1]T si matricea initiala H0 = I2 .


Problema 4. Pentru problema din exercitiul 2 din cadrul problemelor
propuse, sa se implementeze primele trei iteratii ale algoritmului
Fletcher-Reeves de gradienti conjugati pornind din acelasi punct initial
si sa se compare iteratiile acesteia cu cele ale metodei BFGS.
Problema 5. Fie o matrice B Rnn simetrica si doi vectori s, y Rn .
Fie B0 = B si sirul de matrice:
T
k = Bk + (y Bk s)s ,
B
sT s

Bk+1 =

k + B
T
B
k
,
2

pentru orice k > 0. Aratati ca sirul Bk converge la o matrice B+ definita


astfel:
B+ = B +

(y Bs)T s T
(y Bs)sT + s(y Bs)T

ss .
sT s
(sT s)2

Problema 6. Fie functia f convexa ca Hessiana 2 f (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 determine
expresia lungimii unui pas selectat ideal = min f (x + d):
0
m

m
X
P (aT x+bi )
T
(i) f (x) =
log(b ai x).
(ii) f (x) = log
.
e i
i=1

i=1

Problema 8. Descrieti o metoda eficienta de calcul al directiei Newton


corespunzatoare functiei:
f (x) =

m
X
i=1


log xT Qi x bTi x ci ,

unde m n, iar matricele Qi Rnn , Qi 0 au dimensiuni mari si


structura rara.

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
X
i=1

g(xi yi ) +

n1
X
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 2 f (x). Care este numarul
de operatii necesar pentru calcularea directiei Newton n orice punct x?
Problema 10.
neconstransa:

Consideram urmatoarea problema de optimizare


min f (x) (=

xRn

p
X
i=1

gi (Ai x bi ))

unde Ai Rmi n , bi Rmi , mi n, iar gi : Rmi R functii convexe


si de doua ori diferentiabile. Stiind ca Ai au structura rara, calculati
expresia Hessianei si a gradientului lui f si discutati o modalitate
eficienta de implementare a metodei Newton pentru aceasta problema.
Problema 11. Fie functia f (x) = 20 + x21 10cos(2x1 ) + x22
10cos(2x2 ). Sa se implementeze metoda cvasi-Newton (BFGS) cu
alegerea ideala a dimensiunii pasului pentru rezolvarea problemei:
min f (x).

xR2

(4.5)

Sa se rezolve problema (4.5) prin apelarea functiei fminunc si sa se


compare rezultatele obtinute.

Capitolul 5
Probleme de optimizare
constr
ans
a
5.1

Preliminarii

Acest capitol delimiteaza nceputul unei importante parti din teoria


optimizarii, si anume analiza problemelor de optimizare cu restrictii. O
problema de optimizare constransa (cu restrictii) n forma generala este
data prin urmatoarea expresie:
min f (x)

xRn

(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 Rp , se presupun a fi de doua
ori diferentiabile.
Introducem, mai departe, o serie de notiuni caracteristice problemelor de
optimizare constranse. Lagrangianul corespunzator problemei (5.1) este:
L(x, , ) = f (x) + T g(x) + T h(x),
unde Rm , Rp reprezinta multiplicatorii Lagrange asociati
constrangerilor de inegalitate, respectiv de egalitate. Conditiile necesare
de 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

104

Capitolul 5. Probleme de optimizare constrans


a

Rm si Rp astfel ncat:
f (x ) +

m
X
i=1

i gi (x ) +

p
X
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 optimalitate


Karush-Kuhn-Tucker. In cazul nedegenerat, conditiile suficiente de
optimalitate se enunta dupa cum urmeaza: daca x satisface sistemul
KKT iar Hessiana Lagrangianului data de expresia:
2x L(x , , )

= f (x ) +

m
X
i=1

i gi (x ) +

p
X
i=1

i 2 hi (x )

este pozitiv definita pe subspatiul definit de:




M = d : h(x )d = 0, gj (x )T d = 0 j A(x )

(5.2)

unde A(x ) este multimea constrangerilor active, atunci x este un punct


de minim strict local.

5.2

Probleme rezolvate de laborator

In acest subcapitol vom utiliza mediul de programare Matlab pentru


rezolvarea unui numar de exemple de probleme de optimizare constransa.

5.2.1

Formularea unei probleme de optimizare n


form
a standard

Exemplul 19. Un avion cargo are trei compartimente pentru transport


marfuri, pe care le notam C1 , C2 si C3 . Presupunem ca toate cele trei
compartimente sunt limitate din punct de vedere al greutatii si volumului
admis asa cum se specifica n urmatorul tabel:
Compartiment
C1
C2
C3

Limita greutate [t]


10
16
8

Limita volum [m3 ]


6.8
8.6
5.3

105

5.2. Probleme rezolvate de laborator

Pentru a mentine echilibrul avionului, ncarcatura fiecarui compartiment


trebuie sa respecte un raport prestabilit cu limita de greutate
corespunzatoare. Marfurile transportate sunt descrise, n plus, si de
profitul adus transportatorului. In cele ce urmeaza, precizam pentru
fiecare tip de marfa, notat de la M1 la M4 , datele corespunzatoare:
Tip marfa
M1
M2
M3
M4

Total disponibil [t]


18
15
23
12

Volum [m3 /t]


0.48
0.65
0.58
0.39

Profit [$/t]
3100
3800
3500
2850

T
inand cont ca avionul ne permite sa stocam mai multe tipuri de
marfa ntr-un singur compartiment, se doreste determinarea cantitatilor
corespunzatoare fiecarui tip de marfa astfel ncat profitul pentru zbor sa
fie maxim.
(i) Sa se formuleze aceasta problema ca una de programare liniara.
(ii) Sa se rezolve problema liniara rezultata la punctul (i) cu ajutorul
mediului Matlab utilizand functia linprog si limbajul CVX.
Rezolvare. Evident, vectorul variabilelor de decizie pentru aceasta
problema este dat de cantitatile de marfa ce trebuie alocate diferitelor
compartimente. Din moment ce putem stoca mai multe tipuri de marfa
ntr-un singur compartiment, avem posibilitatea de a stoca ntre 1 si
4 tipuri de marfa n fiecare compartiment. Astfel, avem urmatoarea
variabila de decizie:
x = [x11 x12 x13 x14 . . . x34 x44 ]T = {xij }1i3,1j4 ,
unde x R12 , indicele i = 1, . . . , 3 reprezinta numarul compartimentului,
iar j = 1, . . . , 4 reprezinta tipul de marfa. Functia obiectiv este liniara
f (x) = cT x 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 livra
mai mult decat este disponibil). Constrangerile n acest caz au forma:
x11 + x21 + x31 18 pentru primul tip de marfa, x12 + x22 + x32 15
pentru al doilea tip s.a.m.d;
- limitarea masei totale dintr-un compartiment la o cantitate maxima

106

Capitolul 5. Probleme de optimizare constrans


a

admisa, i.e. x11 + x12 + x13 + x14 10, x21 + x22 + x23 + x24 16 etc;
- volumul ncarcaturilor este limitat la o anumita valoare n fiecare
compartiment, 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 fiecare
marfa la valori nenegative: x 0;
- sectiunea din enunt: ncarcaturile din compartimente trebuie sa
aiba acelasi raport cu limitele lor de greutate furnizeaza o serie de
constrangeri de egalitate:
1
(x11 + x12 + x13 + x14 ) =
10
1
(x21 + x22 + x23 + x24 ) =
16

1
(x21 + x22 + x23 + x24 )
16
1
(x31 + x32 + x33 + x34 ) .
8

In final, formularea de programare liniara este definita astfel:


cT x
max
12

xR

s.l.: Ax = b,

Cx d,

unde parametrii A R212 si b R2 cuprind constrangerile de egalitate,


iar cele de inegalitate sunt cuprinse n Cx d unde C R2212 si b R22 .
(ii) Pentru simplitate, furnizam doar codul n limbaj CVX pentru
rezolvarea acestei probleme, deoarece sintaxa rezolvarii cu functia Matlab
linprog 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 convex
a

Exemplul 20. Pentru fiecare din urmatoarele multimi convexe, sa se


calculeze proiectia ortogonala a punctului asociat utilizand CVX:

107

5.2. Probleme rezolvate de laborator

 
3
(i) B = {x R : kxk 2}, x0 =
;
1
2

(ii) E = {x R : (x c) P
 
 
1
4
, x0 =
;
1
4



25 0
(x c) 1}, unde P =
,c =
0 16



0


1.6
0
I3

,
x
=
1.6.
,
b
=
(iii) T = {x R3 : Ax b}, unde A =
0 0
1T3
1.5
1

Sa se figureze grafic multimile, punctele asociate si proiectiile ortogonale


ale acestor puncte.
Rezolvare. In general, calculul proiectiei ortogonale unui punct a0 pe
o multime X se realizeaza prin rezolvarea urmatoarei probleme de
optimizare:
(5.3)
[a0 ](In ,X) = arg min kx a0 k2 .
xX

(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)

108

Capitolul 5. Probleme de optimizare constrans


a

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
Bila B
x0

xB

1
0

1
2

3
4
4

Figura 5.1: Proiectia unui punct exterior pe multime tip bil


a.

(ii) Observam ca multimea E R2 este un elipsoid definit de matricea P


si centrat n punctul (1, 1). Codul CVX pentru determinarea proiectiei
punctului x0 pe multimea E (vezi Fig. 5.2), este redat de urmatoarea
secventa:
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:

109

5.2. Probleme rezolvate de laborator

[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;

Elipsoidul E
x0

xE
4

6
6

Figura 5.2: Proiectia unui punct exterior pe multime tip elipsoid.

(iii) Calcularea proiectiei unui punct x0 pe multimea politopica T (vezi


Fig. 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;

110

Capitolul 5. Probleme de optimizare constrans


a

cvx_end

Figura 5.3: Proiectia unui punct exterior pe multime tip politop.

Pentru a facilita reprezentarea grafica, observam ca multimea T poate


fi reprezentata ca acoperirea convexa a varfurilor (vertex) sale. Astfel,
obtinandu-se proiectia xT a punctului x0 pe multimea T , reprezentarea
grafica 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

111

5.2. Probleme rezolvate de laborator

5.2.3

Metoda Gauss-Newton

Exemplul 21. Consideram urmatoarea problema de optimizare


constransa:
maxn
xR

s.l.:

n
X

xi ln(xi )

i=1

n
X

n
X

xi = 1,

xi ci = m, i = 1, 2, . . . , n,

i=1

i=1

unde ci si m sunt valori cunoscute.


Sistemul KKT al acestei probleme este definit de un sistem neliniar de
ecuatii F (y) = 0, unde vectorul y este compus din variabila primala x si
multiplicatorii Lagrange asociati constrangerilor de egalitate, i.e.
 
x
y=

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 doua
metode enumerate.
Rezolvare. Metoda Gauss-Newton este o metoda destinata rezolvarii de
probleme CMMP neliniare, i.e. de exemplu:
minn

yR

1
kF (y)k2,
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 punct
dat 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, poate
fi determinata ca o solutie a problemei liniare aproximative:
1
yk+1 = arg minn kF (yk ) + J(yk )(y yk )k2 .
yR 2

112

Capitolul 5. Probleme de optimizare constrans


a

Pentru simplitatea expunerii, renotam J(yk ) cu Jk , iar n loc de F (yk )


folosim Fk . Daca presupunem ca JkT Jk este inversabila, atunci rezulta
iteratia metodei Gauss-Newton definita de:
1
yk+1 = arg minn kFk + Jk (y yk )k2
yR 2
1
= yk + arg minn kFk + Jk dk2
dR 2
T
= yk (Jk Jk )1 JkT Fk .
Astfel, n cazul particular n care x R3 , punctul initial este dat de
3 T
] , m = 6 si c = [3 6 9]T , scriem functia Matlab auxiliara cu
x0 = [ 91 73 10
sintaxa [F,J]=Fgauss(y,c,m) ce returneaza n F si J valoarea vectorului
F (y) si a Jacobianului J(y). Utilizam criteriul de oprire kF (y)k < ,
unde este toleranta prestabilita. Astfel, codul Matlab corespunzator
implementarii 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 kF (y)k.
1.4

||F(y )||
k

1.2
1
0.8
0.6
0.4
0.2
0
1

Figura 5.4: Evolutia kF (y)k pentru metoda Gauss-Newton.

Implementarea metodei Newton clasice o lasam ca exercitiu cititorului.

113

5.2. Probleme rezolvate de laborator

5.2.4

Metoda gradientului proiectat

Exemplul 22. Fie problema de optimizare:


min (x1 x2 )2 + 6(x1 x2 )4 + 4x1 + 8x2

xR2

s.l.: 4x1 + 3x2 5,


x1 + x2 = 3.

2x1 + x2 3,

Sa se rezolve problema n Matlab cu metoda gradientului proiectat.


Rezolvare. Metoda gradient proiectat presupune proiectia ortogonala a
unui punct auxiliar (definit de deplasarea n directia antigradientului) pe
multimea constrangerilor notata cu X, i.e.
xk+1 = [xk k f (xk )](In ,X) ,
unde k poate fi ales de exemplu prin metoda backtracking. Definitia
proiectiei ortogonale a unui punct y pe o multime X, notata [y](In ,X) este
data de solutia problemei:
1
[y](In ,X) = arg min kx yk2
x 2
s.l.: x X.

(5.5)

In general, proiectia pe multimea descrisa de:


X = {x Rn : Ax b, Cx = d} ,
se realizeaza observand formularea echivalenta a problemei (5.5):
1 T
x In x (xk )T x
x
2
s.l.: Ax b, Cx = d,

min

ce poate fi abordata, de exemplu, cu functia quadprog din Matlab.


In cazul particular prezentat, multimea constrangerilor este definita de:


X = x R2 : 4x1 + 3x2 5, 2x1 + x2 3, x1 + x2 = 3
Cream functiile auxiliare:
[f,g]=f_proj(x)

f=phi_proj(alpha,x,d),

114

Capitolul 5. Probleme de optimizare constrans


a

unde prima functie returneaza f (x) si f (x), iar cea de-a doua
returneaza f (x + d). Pentru criteriul de oprire, vom folosi kxk xk k <
, unde xk este vectorul xk k f (xk ) proiectat pe multimea
constrangerilor. Astfel, codul Matlab pentru implementarea metodei
gradientului 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].

7
6
5

x24
3
2
1
0
6

x1

Figura 5.5: Puncte obtinute de metoda gradientului proiectat.

115

5.3. Probleme rezolvate de seminar

5.3
5.3.1

Probleme rezolvate de seminar


Problema
dual
a,
conditii
Karush-Kuhn- Tucker

si

puncte

Problema 1. Fie problema de optimizare:


min kAxk

xR2

s.l: kxk1 1, ex1 +x2 = 1, (aT x b)2 1,





2 1
unde A =
, a = [3 4]T si b = 1. Sa se scrie aceasta problema de
1 2
optimizare n forma LP explicita.
 T
a1
si definitia normei
Rezolvare. Daca consideram matricea A =
aT2
infinit, atunci functia obiectiv se poate scrie drept:
 T 
a1
 T


|a1 x|, |aT2 x| .
kAxk =
aT2 x = max
x

Introducem o variabila artificiala t pentru a muta functia obiectiv n


constrangeri, obtinandu-se astfel o problema echivalenta cu cea originala:
min

xR2 ,tR

s.l: |aT1 x| t, |aT2 x| t,

kxk1 1, ex1 +x2 = 1, (aT x b)2 1.

Din definitia modulului, observam ca putem scrie primele doua


constrangeri drept:
(

t aT1 x t
t aT2 x t

T
a1 x t

aT x t
2

1x t

T
a2 x t


A
x t14

A


unde 14 este vectorul de dimensiune 4 cu toate elementele egale cu


1. Daca introducem doua variabile aditionale s1 , s2 , si ne reamintim

116

Capitolul 5. Probleme de optimizare constrans


a

definitia normei 1, putem atunci rescrie constrangerea kxk1 1 drept:

s1 + s2 1
kxk1 1 |x1 | + |x2 | 1 |x1 | s1

|x2 | s2

Observam acum faptul ca egalitatea ex1 +x2 = 1 se reduce simplu la x1 +


x2 = 0, iar constrangerea (aT x b)2 1 se reduce la:
(
aT x b 1
1 aT x b 1
aT x + b 1

Luand astfel o variabila de decizie z = [t x1 x2 s1 s2 ]T , problema noastra


originala se poate rescrie ca un LP:
min5 cT z

zR

s.l Az z = bz
Cz z d z
unde c = [1 0 0 0 0]T , Az

1
1

Cz =
0
0

0
0

= [0 1 1 0 0] si bz = 0, iar


0
2
1
0
0

1
2
0
0
0
0
2 1 0
0

0
1 2 0
0

1
0
0
1
1



1
0 1 0
si dz = 0 .

0
1 0 1 0

0
0
1
0 1

0
0 1 0 1

2
3
4
0
0
0
3 4 0
0

Problema 2. Fie problema de optimizare urmatoare:


min kxk1

xRn

s.l.: Ax = b.

117

5.3. Probleme rezolvate de seminar

(i) Aratati ca aceasta problema se poate reformula ca una de programare


liniara.
(ii) Aduceti problema la forma de programare liniara (LP) standard.
(iii) Determinati problema duala corespunzatoare.
Rezolvare. (i) Utilizand definitia normei 1 obtinem reformularea:
min

xRn

n
X
i=1

|xi |

s.l.: Ax = b.
Mai departe, folosim procedura de reformulare a unei probleme de
optimizare generale ntr-o problema cu functie obiectiv liniara, coborand
n constrangeri componentele sumei:
min

x,tRn

n
X

ti

i=1

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 o
problema de programare liniara:
min

x,tRn

n
X

ti

i=1

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:
min cT x

xRn

s.l.: Ax = b,
x 0.
Pentru a aduce problema de la punctul (i) la forma standard, introducem
un set de variabile virtuale, rescriind fiecare variabila de decizie din
problema de optimizare initiala:

xi = x+
i xi , unde xi 0, xi 0.

118

Capitolul 5. Probleme de optimizare constrans


a

In plus, reformulam inegalitatile n urmatorul mod:


ti xi = s2i1 , unde s2i1 0,
ti + xi = s2i , unde s2i 0,
i = 1, . . . , n.
Cu ajutorul acestei reformulari obtinem o problema de programare liniara
n forma standard:
n
X
ti
minn
+
2n
x ,x ,tR ,sR

i=1

s.l.: ti xi = s2i1 ,
ti + xi = s2i , i = 1, . . . , n,
A(x+ x ) = b,
s 0, x+ 0, x 0, t 0.

+ T

T
unde x+ = [x+
1 . . . xn ] , x = [x1 . . . xn ] .
Mai compact avem:

min cT z

zR5n

s.l.: Dz = d
z 0,

x+
 
x
M

, M Rm5n , N R2n5n .
unde z = , D =
N
t
s
(iii) Pentru a determina problema duala, calculam Lagrangianul asociat
problemei primale:

L(x, t, , , ) =

n
X
i=1

ti + T (Ax b) + + (t x) (t + x)
T

= (e + + )T t + x x + T (Ax b)
T
= (e + + )T t + AT + x T b,

unde vectorul e are componentele egale cu 1. Obtinem functia duala prin


minimizarea Lagrangianului n raport cu variabilele primale:
T
q(, + , ) = minn (e + + )T t + AT + x T b.
x,tR

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. In


concluzie, 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 proiectia


ortogonala a punctului 0 pe subspatiul Ax = b, n raport cu norma 1.
Problema 3. Fie problema de programare liniara:
min 50x1 + 80x2

x1 ,x2

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 si
constrangerile problemei precedente dupa cum urmeaza:
min

x1 ,x2

cT x

s.l.: Ax b, x 0,

 
3 0
6
50
unde c =
, A = 2 4 , b = 10 . In continuare, observam
80
2 5
8
ca Lagrangianul problemei este dat de relatia:
L(x, 1 , 2 ) = cT x + T1 (Ax b) T2 x,
unde 1 R3 , 1 = [11

21

31 ]T , iar 2 R2 .

120

Capitolul 5. Probleme de optimizare constrans


a


Functia duala q(1 , 2 ) = min2 c + AT 1 2 x T1 b ia valori finite
xR

atunci cand c+A 1 2 = 0. De aceea, impunand aceasta constrangere


variabilelor duale, rezulta problema duala:
max
3

1 R ,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

611 + 1021 + 831

s.l.: 311 + 221 + 231 50,


421 + 531 80,
2 0.

Problema 4. Numeroase probleme din statistica, nvatare automata,


recunoastere de imagini/fete, presupun clasificarea de obiecte sau imagini
prin determinarea unui model matematic capabil sa recunoasca si sa
ncadreze ntr-o clasa o instanta noua de obiect/imagine. Una dintre
cele mai renumite tehnici de recunoastere/clasificare este SVM (Support
Vector Machine), ce se formuleaza sub forma unei probleme patratice de
optimizare:
1
kak2
,bR
2

s.l.: ci aT yi b 1, i = 1, . . . , m.

min
n

aR

Variabilele de decizie a, b reprezinta parametrii unui hiperplan de


separare a claselor de obiecte/imagini, asa cum se observa n Fig. 5.6
(vezi [1]). Sa se determine problema duala.

121

5.3. Probleme rezolvate de seminar

Figura 5.6: Hiperplan de separare a dou


a clase de obiecte.

Rezolvare. Lagrangianul problemei este dat de relatia:


n

X 

1
L(x, ) = kak2
i ci (aT yi b) 1 .
2
i=1
Forma explicita a functiei duale:
n

q() =

min

aRn ,bR

X 

1
kak2
i ci (aT yi b) 1 ,
2
i=1

este definita de conditiile de optimalitate de ordin I:

n
X

ci i yi = 0,

i=1

n
X

ci i = 0.

i=1

Ambele relatii se obtin din derivarea Lagrangianului n raport cu a,


respectiv cu b, anularea expresiei rezultate si egalarea cu 0. Deoarece
a doua egalitate asigura ca functia duala ia valori finite, aceasta devine
o constrangere necesara a problemei duale. De aceea, prin substituirea
valorii optime a n expresia Lagrangianului avem:
n
n X
n
n
X
X
1 X
2
T
q() = k
ci i y i k
i ci cj j (yi yj ) +
i
2 i=1
i=1 j=1
i=1
n
n
n
X
X
1 X
2
2
i
ci i y i k +
ci i y i k k
= k
2 i=1
i=1
i=1
n

X
1 X
= k
ci i y i k 2 +
i ,
2 i=1
i=1

122

Capitolul 5. Probleme de optimizare constrans


a

putem obtine problema duala asociata, care observam ca este concava:


n

X
1 X
2
max

k
c

y
k
+
i
i
i
i
Rm
2 i=1
i=1
s.l.:

n
X
i=1

ci i = 0, i 0, i = 1, . . . , n.

Utilizand notatiile = [1 . . . m ]T , c = [c1 . . . cm ]T , e = [1 . . . 1]T si


observand forma patratica a problemei duale obtinem reformularea:
1 T

max
Q eT
Rm
2
s.l.: cT = 0, 0,
unde matricea Q Rn , Q = QT , are elementele Qij = ci cj aTi aj .
Problema 5. Fie problema celor mai mici patrate (CMMP), ce
presupune calculul unei solutii corespunzatoare unui sistem liniar de
ecuatii subdeterminat. Se observa usor ca problema se reduce la
determinarea unui vector de norma minima ce satisface sistemul liniar
studiat:
1
min kxk2
xRn 2
s.l.: Ax = b,
unde A Rmn , b Rm . Sa se calculeze problema duala a problemei de
minimizare.
Rezolvare. Deoarece problema de minimizare prezinta doar constrangeri
de tip egalitate, definim Lagrangianul:
1
L(x, ) = xT x + T (Ax b).
2
Astfel, functia duala este data de solutia problemei urmatoare:
q() = minn
xR

1 T
x x + T (Ax b).
2

Se obtine usor solutia x = AT . Substituind n problema precedenta,


obtinem functia duala patratica concava:
1
q() = T AAT T b.
2

123

5.3. Probleme rezolvate de seminar

In concluzie, problema duala poate fi formulata ca o problema patratica


convexa:
1 T

q = max
AAT T b.
Rm
2
Mai mult decat atat, din conditiile de optimalitate ale problemei duale
avem: q() = AAT b = 0. In cazul n care rang(A) = m, obtinem
= (AAT )1 b si x = AT (AAT )1 b, cu remarca importanta ca x este
solutia clasica CMMP.
Problema 6. Fie problema de optimizare:
1 T
x x
xR 2
s.l.: Ax b,
minn

unde A Rmn , iar rang(A) = m. Sa se determine problema duala si


punctul de optim.
Rezolvare. Pentru determinarea problemei duale calculam Lagrangianul
problemei primale:
1
L(x, ) = xT x + T (Ax b).
2
De asemenea, functia duala este data de:
q() = minn L(x, ) = minn
xR

xR

1 T
x x + T (Ax b).
2

Deoarece functia obiectiv a acestei probleme este convexa, conditiile de


optimalitate de ordin I sunt suficiente pentru determinarea optimului
x () = AT , iar prin substitutia n q() obtinem:
1
q() = T AAT + T (A(AT ) b)
2
1
= T AAT T b.
2
In final, problema duala este definita de:


1 T
T
T

q = max q()
:= AA b .
0
2

(5.6)

124

Capitolul 5. Probleme de optimizare constrans


a

Daca matricea A are rangul maxim (implicit AAT inversabila si pozitiv


definita), observam ca solutia problemei (5.6) este data de:
1
1
= arg min kAT + AT (AAT )1 bk22 = arg min kAT ( + (AAT )1 b)k22 .
0 2
0 2
In concluzie, observam un compromis ntre problema primala si cea
duala: n cazul problemei primale functia obiectiv are o forma
foarte simpla, iar constrangerile reprezinta dificultatea centrala; n
cazul problemei duale, functia obiectiv este relativ complicata, iar
constrangerile au forma simpla.
Problema 7. Fie problema de optimizare constransa:
minn cT x

xR

s.l.

n
X

n
X

xi ln xi

i=1

xi = 1,

i=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 multimea
constrangerilor este convexa. In cazul functiei obiectiv nsa, calculam
matricea Hessiana:
1

x1
0 ... 0
0 1 ... 0

x2
2
f (x) = .
..
..
.
.
.
.
0

...

x1n

si observam ca este negativ semidefinita pe tot domeniul de definitie al


functiei obiectiv domf = Rn+ . In concluzie, functia obiectiv este concava,
rezultand o problema de optimizare neconvexa.
(ii) Indicam o procedura relativ inedita pentru determinarea unui punct
KKT. Si anume, folosim structura problemei observand conditiile de
optimalitate de ordin I:
ci ln xi 1 = 0, i = 1, . . . , n.

125

5.3. Probleme rezolvate de seminar

Aceste conditii furnizeaza punctul de optim neconstrans definit de


componentele xi = eci 1 .
Daca proiectam punctul de optim neconstrans pe hiperplanul:
(
)
n
X
H = x Rn :
xi = 1
i=1

obtinem vectorul y definit de componentele:


X
eci 1
yi = Pn cj 1 0,
yi = 1.
j=1 e
i

In final, verificam daca y obtinut satisface urmatorul sistem KKT:

ci ln yi 1 + i + = 0,

P y = 1, y 0,
i
i
i=1

i 0,

y = 0, i = 1, . . . , n.
i i

Observand ca yi > 0 atunci conditiile de complementaritate impun i =


0 pentru
(ci
Pnoricecji = 1 . . . n. De asemenea, conditia de optimalitate ciP
1)+ln j=1 e 1+ = 0 este satisfacuta daca impunem = ln j ecj .
In aceste conditii, y satisface conditiile KKT, fiind un punct stationar
pentru problema din enunt.
Problema 8. Fie problema de minimizare:
min x2

x1 ,x2 R

s.l.: 1 x21 x22 0.

(i) Determinati punctele KKT pentru aceasta problema.


(ii) Gasiti punctele de minim strict locale.
Rezolvare. (i) Functia Lagrange corespunzatoare functiei obiectiv are
urmatoarea forma:
L(x, ) = x2 + (x21 + x22 1).

126

Capitolul 5. Probleme de optimizare constrans


a

Derivand Lagrangianul n functie de variabilele x1 si x2 rezulta urmatorul


sistem KKT asociat problemei:

2x1 = 0

1 + 2x2 = 0
x21 + x22 1 0

(x2 + x2 1) = 0.
1
2
Prima relatie x1 = 0 impune x1 = 0 sau = 0. Constatam usor
ca pentru = 0, sistemul nu are solutie. De aceea, din x1 = 0 avem
1
si substituind n constrangerea de tip inegalitate obtinem:
x2 = 2
1
1
1 0 2 .
2
4
4
Din moment ce 0, avem 12 . Iar din relatia de complementaritate
avem:
1
42
=0= .
2
4
2
In concluzie, x2 = 1, iar punctele KKT n acest caz sunt definite de:
 
0
si = 12 .
x =
1
(ii) Pentru a arata ca punctul KKT gasit este punct de minim, calculam
mai ntai planul tangent:


M = d : gj (x )T d = 0 j A(x )

unde A(x ) = {j : gj (x ) = 0}. Evident pentru x = [0 1]T ,


constrangerea noastra g(x ) = (x1 )2 + (x2 )2 1 = 0, deci este activa,
iar = 21 0. Gradientul functiei de constrangere este:
 
2x1
(5.7)
g(x) =
2x2

iar g(x ) = [0 2]T . Astfel, planul tangent este:




M = d R2 : d 2 = 0

Pentru ca x sa fie punct de minim strict, atunci 2x L(x , ) trebuie sa


fie pozitiv definita pe M. Printr-un calcul simplu, observam ca:

 

1 0
2
0
2

=
x L(x , ) =
0 1
0 2

127

5.3. Probleme rezolvate de seminar

Deci pentru d M avem:


dT 2x L(x , )d = d21 > 0
si concluzionam ca x = [0 1]T este punct de minim strict local.
Problema 9. Fie problema de optimizare constransa:
1 2
(x1 + x22 )
xR 2
s.l (x1 + x2 1)2 = 0
min2

(i) Sa se arate ca problema este convexa.


(ii) Sa se rezolve sistemul KKT asociat problemei. Verificati daca punctul
obtinut este punct de minim global.
Rezolvare. (i) Functia obiectiv se formuleaza matriceal f (x) = 21 xT I2 x.
Observam ca Hessiana acesteia este pozitiv definita, deci functia obiectiv
este convexa. Pe de alta parte, constrangerea (x1 + x2 1)2 = 0 este
evident echivalenta cu egalitatea liniara x1 +x2 1 = 0. Deoarece singura
constrangere este liniara, avem ca multimea fezabila este convexa.
(ii) Derivand Lagrangianul asociat problemei:
1
L(x, ) = (x21 + x22 ) + (x1 + x2 1)
2
obtinem sistemul KKT:

x1 + = 0
x2 + = 0

x1 + x2 1 = 0

din care rezulta = 21 si x1 = x2 = 12 . Pentru a verifica daca x este


punct de minim strict local, atunci calculam mai ntai planul tangent



M = d R2 : h(x )d = 0 = d R2 : d1 + d2 = 0 .
(5.8)
Remarcand ca:

dT 2 f (x )d = d21 + d22 > 0,

d M,

concluzionam ca x este punct de minim global strict.

128

Capitolul 5. Probleme de optimizare constrans


a

Problema 10. Fie urmatoarea problema:


1
min3 f (x) : = (x21 + x22 + x23 )
xR
2
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 este
un punct regulat, iar din conditiile ale sistemului KKT obtinem:
Optimalitate
x1 + 1 + 2 = 0,
x2 + 1 = 0,
x3 + 1 = 0,

x1

x2

Fezabilitate
+ x3 0, x1 0,
1 0, 2 0,

Complementaritate
1 (x1 + x2 + x3 ) = 0,
2 x1 = 0.

Din conditiile de optimalitate avem x1 = 1 2 , x2 = 1 , x3 = 2 .


Substituind aceste expresii n conditiile de complementaritate rezulta
sistemul:
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 x1 = 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:
min x21 x22

xR2

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 x22 (x1 + x2 ),

129

5.4. Probleme propuse

deci sistemul KKT este dat de:

x L(x , ) = 0,

x x 0,
1
2

0,


(x1 + x2 ) = 0.

Din prima ecuatie a sistemului KKT rezulta:


x1 =

, x2 = .
2
2

Inlocuind n ultima ecuatie si remarcand ca fezabilitatea primala este


satisfacuta, deducem ca poate lua o infinitate de valori.
(ii) Remarcam o expresie neobisnuita a functiei duale:
q() = min2 L(x, ) = min2 x21 x22 (x1 + x2 ) = 0,
xR

xR

de aceea constatam ca problema duala nu este o problema de optimizare


propriu-zisa: max 0.
0

5.4

Probleme propuse

Problema 1. Sa se arate ca x = [1 1/2 1]T este punctul minim global


pentru urmatoarea problema de optimizare:
1 T
x P x + qT x + r
xR 2
s.l.: 1 xi 1, i = 1, 2, 3,
min3

unde

13 12 2
P = 12 17 6 ,
2 6 12

22.0
q = 14.5 ,
13

r = 1.

Problema 2. Sa se determine conditiile necesare si suficiente n cea


mai simpla forma pentru ca x Rn sa reprezinte punctul de optim
corespunzator unei functii convexe diferentiabile f peste multimea de

130

Capitolul 5. Probleme de optimizare constrans


a

tip simplex, i.e.: {x :

n
P

i=1

xi = 1, xi 0, i = 1, . . . , n}.

Problema 3. Sa se nlocuiasca functia obiectiv din problema 1


(Probleme rezolvate) cu kxk si sa se rezolve noua problema.
Problema 4. Sa se determine sistemul KKT pentru urmatoarea
problema de optimizare:
min x21 + x22

xR2

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 punctul
x este optim?
Problema 5. Fie problema de optimizare:
min x41 + x42 + x43 + (x1 + 2x2 4)2

xR3

s.l x1 + x2 + x3 = 1, x 0.
Sa se scrie primul pas al metodei gradient proiectat, pornind din punctul
initial x0 = [1 0 0]T si alegand pasul sk = 1.
Problema 6. Fie problema de optimizare:
min x41 + x42 + (x1 1)2 + (x2 4)2

xR2

s.l x1 + x2 = 16
Sa se scrie aproximarea Taylor de ordin II pentru functia obiectiv si sa
se scrie primul pas al metodei Newton proiectat pornind din punctul
initial x0 = [14 2]T .
Problema 7. Fie problema de optimizare:
min2 x21 + 1

xR

s.l (x 1)(x 4) 0
Sa se determine multimea fezabila, punctul de minim si valoarea minima
pentru aceasta problema. Sa se traseze pe acelasi grafic functia obiectiv,

131

5.4. Probleme propuse

multimea fezabila, punctul de minim si Lagrangianul L(x, ) pentru doua


valori 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 cu
constrangeri de egalitate:
min kAx bk22

xRn

s.l.: Cx = d

unde A Rmn , rang(A) = n, C Rpn , cu rang(C) = p. Sa se


expliciteze conditiile KKT ale acestei probleme si sa se determine
expresia solutiei primale x si a celei duale .
Problema 9. Fie problema de optimizare:
min 3x21 + x22 + 2x23 + 2(x1 + x2 + x3 )

xR2

s.l.: x21 + x22 + x23 = 1


Sa se determine punctele punctele KKT pentru aceasta problema. Care
pereche de puncte i va corespunde punctului de optim?.
Problema 10. Fie problema de optimizare:
min

xRn

n
X

log(ci + xi )

i=1

s.l.: x 0,

n
X
i=1

unde ci reprezinta parametrii cunoscuti.


(i) Sa se determine problema duala.
(ii) Sa se determine un punct KKT.

xi = 1,

Capitolul 6
Metode pentru probleme de
optimizare constr
ans
a
6.1

Preliminarii

Consideram o problema de optimizare NLP generala de urmatoarea


forma:
min f (x)

(6.1)

xRn

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 Rp si respectiv
g : Rn Rm se presupun a fi de doua ori diferentiabile. In acest capitol
vom implementa algoritmi bine cunoscuti pentru rezolvarea acestui tip
de problema de optimizare.

6.1.1

Probleme
egalitate

neconvexe

cu

constr
angeri

de

Consideram mai ntai probleme n care avem doar constrangeri de


egalitate neliniare:
min f (x)

xRn

s.l.: h(x) = 0,

(6.2)

133

6.1. Preliminarii

unde h(x) este o functie neliniara. Pentru acest tip de probleme vom
utiliza metoda Lagrange-Newton, ce se bazeaza esential pe conditiile
KKT:
x L(x, ) = 0, h(x) = 0 L(x, ) = 0,

(6.3)

unde L() este functia Lagrange. Concatenam variabila de decizie x


si multiplicatorul Lagrange ntr-o singura variabila y = [xT T ]T , iar
solutiile problemei (6.2) se gasesc printre radacinile sistemului neliniar
de ecuatii:


x L(x, )
= 0.
F (y) = L(x, ) =
h(x)
Acest sistem poate fi rezolvat prin metoda Newton:
F
F (yk ) +
(yk )(y yk ) = 0 si iteratia yk+1 = yk
y

F
(yk )
y

1

F (yk ).

Daca scriem n termeni de gradienti avem:


x L(xk , k ) + 2x L(xk , k )(x xk ) + h(xk )T ( k ) = 0
h(xk ) + h(xk )(x xk ) = 0,
iar n forma matriceala:

 

 2
x L(xk , k )
x L(xk , k ) h(xk )T x xk
=
h(xk )
0
k
h(xk )
din care obtinem iteratia Lagrange-Newton
xk+1 = xk + dk , k+1 = k + dk ,
unde directiile dxk , dk vor fi desigur solutiile sistemului:
  
 2

x L(xk , k ) h(xk )T dxk
x L(xk , k )
.
=
h(xk )
0
dk
h(xk )

6.1.2

Probleme
egalitate

convexe

cu

constr
angeri

de

In cazul problemelor convexe avand numai constrangeri de egalitate, i.e.:


min f (x)

xRn

s.l.: Ax = b,

(6.4)

134

Capitolul 6.

Metode pentru probleme de optimizare constrans


a

se utilizeaza metoda Newton extinsa, dupa cum urmeaza. In mod


analogic cu metoda Newton pentru probleme neconstranse, nlocuim
functia obiectiv cu aproximarea Taylor de ordin II:
1
minn f(x + d) = f (x) + f (x)T d + dT 2 f (x)d
dR
2
s.l.: A(x + d) = b
Sistemul KKT rezultat pentru problema patratica convexa anterioara
este:

  
 2
f (x)
f (x) AT d
=
0

A
0
| {z }
{z
}
|
K

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 decrementul
Newton:
1/2
D(x) = dT 2 f (x)d
Diferenta dintre f (x) si minimul aproximarii patratice este:

n
o D(x)2
,
f (x) min f(x + d)| A(x + d) = b =
2

deci D(x)
reprezinta o estimare buna pentru f (x) f si poate fi astfel
2
utilizata drept criteriu de oprire, i.e. D(xk ) 2 pentru o precizie > 0
data.

6.1.3

Probleme convexe generale

Revenind la problema generala (6.1) convexa (i.e. functiile f si gi sunt


convexe, iar functia h este liniara de forma h(x) = Ax b), introducem
clasa metodelor de punct interior (numite adesea si metode tip bariera)
pentru rezolvarea acestora. Presupunem ca problema (6.1) este strict
fezabila, anume sa existe un x ncat Ax = b si g(x) < 0. Astfel, conditiile
Slater pentru constrangeri sunt satisfacute, iar drept urmare dualitatea
puternica are loc, i.e. exista un punct dual format din Rm si Rp ,

135

6.1. Preliminarii

care mpreuna cu un x sa satisfaca conditia f (x ) = q( , ). Mai mult,


conditiile KKT au loc:
f (x ) +

m
X
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 KKT


mentionate anterior prin aplicarea metodei Newton asupra unei secvente
de probleme cu constrangeri de egalitate, sau asupra unei secvente de
conditii KKT modificate. In continuare, ne concentram asupra unei astfel
de metode.
Ideea fundamentala ce sta la baza clasei algoritmilor de punct interior este
reformularea problemei (6.1) ca o problema cu constrangeri de egalitate,
prin transferul constrangerilor de inegalitate n functia obiectiv:
min f (x) +
x

m
X
i=1

I (gi (x))

s.l.: Ax = b,

unde I : R R este functia indicator pentru numere nepozitive:


(
0, daca y 0
(6.5)
I (y) =
, daca y > 0.
Prin aceasta reformulare am eliminat constrangerile de inegalitate, nsa
apare problema majora a nediferentiabilitatii noii functii obiectiv. In
acest scop, functia indicator I se aproximeaza cu una diferentiabila:
I (y) = log(y),
unde > 0, numit si parametru de bariera, este un parametru ajustabil
pentru acuratetea aproximarii. Problema noastra originala (6.1) va fi
astfel aproximata cu:
min f (x) + B(x)

xRn

s.l.: Ax = b,

(6.6)

136

Capitolul 6.

Metode pentru probleme de optimizare constrans


a

P
ste bariera logaritmica pentru
unde B(x) = m
i=1 log(gi (x)) se nume
problema (6.1).
Aceasta subproblema reprezinta o aproximare a
problemei originale si poate fi rezolvata prin metoda Newton extinsa.
Notam cu x( ) solutia acestei subprobleme. Mentionam ca gradientul si
Hessiana barierei logaritmice sunt date de urmatoarele relatii:
B(x) =
2 B(x) =

m
X

i=1
m
X
i=1

1
gi (x)
gi (x)
1
1
gi (x)gi (x)T +
2 gi (x).
2
gi (x)
gi (x)

Un concept esential n metodele de punct interior este acela de cale


centrala : 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 calea


centrala: orice punct de pe aceasta cale produce un punct dual fezabil,
si astfel o limita inferioara a lui f . In mod specific, considerand:
i ( ) =

si ( ) =

gi (x( ))

se poate demonstra usor ca perechea ( ) si ( ) este dual fezabila.


Astfel, functia duala q(( ), ( )) este finita, iar:
q(( ), ( )) = f (x( )) +

m
X
i=1

i ( )gi (x (t)) + ( )T (Ax( ) b)

= f (x( )) m.
In mod particular, diferenta de dualitate dintre f si q, asociata cu punctul
x( ) 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 .

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 mk repeta
(a) calculeaza xk+1 = x(k ) ca solutie a problemei (6.6), pornind
din punctul initial xk (warm start);
(b) descreste k+1 = k .
Dupa cum observam, pentru metoda de punct interior un aspect esential
este selectarea unei actualizari corespunzatoare pentru la fiecare pas.

6.2
6.2.1

Probleme rezolvate de laborator


Metoda Lagrange-Newton

Exemplul 23. Fie problema de optimizare neconvexa:


min (x1 6)4 + (x1 4x2 )2

xR2

s.l.: x21 + x22 = 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 x L(x, ) si 2x L(x, ), respectiv h(x) si Jacobianul
h(x). Vom utiliza norma gradientului Lagrangianului pentru criteriul
de 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;

138

Capitolul 6.

Metode pentru probleme de optimizare constrans


a

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 iteratiile
metodei Lagrange-Newton.
1.5
1
0.5

x2

0.5
1
1.5

0.2

0.4

0.6

x1

0.8

1.2

Figura 6.1: Liniile de contur si iteratiile metodei Lagrange-Newton.

6.2.2

Metoda Newton extins


a

Fie problema de optimizare convexa:


min (x1 2)4 + (x1 2x2 )2

xR2

s.l.: Ax = b

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 avea
nevoie de o functie care sa returneze f (x), f (x) si 2 f (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 . Codul
Matlab 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 punctele
obtinute din metoda Newton pentru probleme cu constrangeri de
egalitate cu pasul = 1.

140

Capitolul 6.

Metode pentru probleme de optimizare constrans


a

10
8

x2 6
4
2
0
0

x1

10

Figura 6.2: Liniile de contur si punctele obtinute prin metoda Newton


pentru probleme cu constr
angeri de egalitate convexe.

6.2.3

Metoda de punct interior

Exemplul 24. Fie problema de optimizare convexa:


min (x1 4)4 + (x1 6x2 )2

xR2

s.l.: x21 + x22 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 se
compare rezultatul acestei metode cu rezolvarea problemei n CVX.
Rezolvare. Vom utiliza metoda Newton pentru problemele cu
constrangeri de egalitate (6.6) din cadrul metodei de punct
interior. Astfel, vom avea nevoie din nou de functii care returneaza
f(x) = f (x) + B(x), unde B(x) este functia bariera, f(x) si 2 f(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 . Algoritmul
va fi astfel format din doua bucle, una interna pentru gasirea lui x ( )
cu metoda Newton, iar cealalta externa pentru actualizarea lui . Codul
Matlab al algoritmului va fi astfel:
%Selectam parametrul initial tau,
%sigma pentru actualizarea lui tau, si dimensiunile lui 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 interior
aplicata problemei din enunt.
Exemplul 25. In cadrul acestui exemplu abordam rezolvarea unei
probleme de control optimal pentru un sistem discret:
zt+1 = Az zt + Bu ut ,

(6.8)

unde zt Rnz reprezinta vectorul de stare al sistemului, ut Rnu


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 discret
des ntalnit n laboratoarele de control, si anume pendulul invers. Acest
sistem fizic este compus dintr-un carucior de masa M = 2 kg ce aluneca
unidimensional de-a lungul axei Ox pe o suprafata orizontala, si un
pendul format dintr-o bila de masa m = 0.1 kg aflata la capatul unei
tije de lungime l = 0.5 m considerata imponderabila. Vectorul de stare
al sistemului este z R4 , z = [z 1 z 2 z 3 z 4 ]T , unde z 1 reprezinta

142

Capitolul 6.

Metode pentru probleme de optimizare constrans


a

3
2.5
2
1.5
1

0.5
0

0.5
1
1.5
2

x1

Figura 6.3: Liniile de contur si punctele obtinute prin metoda de punct


interior.

unghiul cu verticala , z 2 este viteza unghiulara, z 3 este deplasarea pe


axa 0x, iar z 4 este viteza pe axa Ox. Dinamica discreta a sistemului este
exprimata prin zt+1 = Az zt + Bu ut unde ut R este intrarea sistemului,
reprezentand o corectie de deplasare orizontala aplicata caruciorului.
Matricele dinamicilor n acest caz sunt:

0.0013
1.0259
0.504 0 0

1.0389
1.0259 0 0
si Bu = 0.0504
Az =
0.0006
0.0006 0.0000 1 0.05
0.025
0.0247 0.0006 0 1

Scopul pendulului invers este sa mentinem tija suficient de aproape de


verticala, anume sa mentinem z 1 = ntr-un interval admisibil centrat
n 0 , i.e. min z 1 max , ce reprezinta constrangeri pe stare ale
sistemului, unde max = min = 0.2 rad. Astfel, formulam problema de
control optimal pe un orizont finit N, cu scopul mentinerii tijei n pozitie
verticala (i.e. referintele sunt ztref = 0 si uref
= 0):
t
min
zt ,ut

N
1
X
t=0

X1
1
R0 u2t +
ztT Q0 zt
2
2
k=1

s.l.: z0 = z, zt+1 = Az zt + Bu ut
min zt1 max t = 0, . . . , N,

(6.9)

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 rezolvam
cu unul din algoritmii prezentati anterior (e.g. metoda de punct interior).
Rezolvare. Pentru reformularea problemei, definim o variabila de decizie
x RN (nz +nu ) care sa cuprinda variabilele de stare si intrare peste ntreg
orizontul de predictie, i.e:


T T
x = uT0 xT1 uT1 z2T . . . uTN 1 zN
.

Din datele problemei (6.9) vor rezulta doua tipuri de constrangeri pentru
problema QP rezultata. Prima categorie de constrangeri va fi cea
de egalitate, rezultata din dinamica sistemului zt+1 = Az zt + Bu ut .
Considerand variabila de decizie aleasa x, vom ncorpora constrangerile
de egalitate rezultate din dinamica sistemului peste tot orizontul de
predictie ntr-o constrangere Ax = b, unde matricea A RN nz N (nz +nu )
va fi formata din componentele bloc corespunzatoare si vectorul b RN nz
va depinde de starea initiala a sistemului:

0
0 ...
0
0
0
Bu Inz
Az z0
0
0
0
0
0
Az Bu Inz . . .

A = ..
..
..
..
..
..
..
.. , b = .. .
.
.
.
.
.
.
.
.
.
0
0
0
0 . . . Az Bu Inz
0

Fiecare linie de blocuri din sistemul Ax = b reprezinta satisfacerea


constrangerilor rezultate din dinamici la un pas t, i.e. prima linie va
asigura ca z1 = Az0 + Bu0 sau rescris Bu0 + Inz z1 = Az0 , a doua linie
va asigura ca Az1 Bu1 + Inz z2 = 0, etc . Considerand ca z R4 ,
constrangerea ca prima componenta a vectorului de stare zt se afla n
intervalul corespunzator, anume min zt1 max poate fi rescrisa ca:




1 0 0 0
max
Cz zt dz , unde Cz =
si dz =
.
1 0 0 0
min

Pentru ntreg orizontul


de forma:

0
0

C = ..
.
0

de predictie vom avea Cx d, unde C si d vor fi


Cz 0 . . . . . . 0
dz

0 0 Cz 0 0
dz
,
d
=

.. .
.. ..
..
.
. 0
. . 0
0 0 . . . 0 Cz
dz

144

Capitolul 6.

Metode pentru probleme de optimizare constrans


a

Functia obiectiv a problemei QP rezultate va fi xT Qx, unde Q este bloc


diagonala, formata din matricele din costurile de etapa pentru stare si
intrare, i.e.:
Q = diag(R0 , Q0 , R0 , Q0 , . . . , R0 , Q0 ).
Problema QP finala va fi de forma:
1
min xT Qx
x 2
s.l.: Ax = b, Cx d.
In Matlab vom implementa doua functii care sa primeasca orizontul
de predictie N si sa genereze matricele si vectorii A, b, C, d si o
functie principala care sa rezolve problema QP finala. Problema poate
fi rezolvata prin metode de punct interior. Pentru un orizont de preditie
N = 70, putem observa n Fig. 6.4 traiectoria unghiului si comanda
rezultate 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.3
100
50

comanda (u)

unghiul ()

0.2
0.1
0

50
100

0.1
0.2
0

10

20

30

40

50

60

70

150
0

10

20

30

40

50

60

70

Figura 6.4: Unghiul pendulului si comanda aferent


a obtinut
a din problema
de control optimal cu orizont de predictie N = 70 folosind metoda de punct
interior.

6.3. Probleme rezolvate de seminar

6.3
6.3.1

145

Probleme rezolvate de seminar


Metoda Newton pentru probleme constr
anse

Problema 1. Fie problema de minimizare neconvexa:


3 2 3 2
x1 + x2 2x1 + x2
xR 2
2
2
s.l.: 3x1 + 2x22 2x1 = 2.
min2

Pornind din punctul initial x0 = [1 0]T si 0 = 1, sa se aplice primul


pas al metodei Lagrange-Newton.
Rezolvare. Observam ca problema se poate rescrie ca o problema QP:
1 T
x Qx + q T x
xR 2
s.l.: h(x) = 0
min2

unde Q = 3I2 , q = [2 1]T , h(x) = 3x21 + 2x22 2x1 2. Se poate


deduce usor ca multimea constrangerilor rezultata este neconvexa. Din
conditiile KKT pentru problema anterioare rezulta sistemul:


x L(x, )
=0
F (y) = L(x, ) =
h(x)
unde y = [xT ]T . Lagrangianul problemei este definit de:
3
3
L(x, ) = x21 + x22 2x1 + x2 + (3x21 + 2x22 2x1 2),
2
2
unde R, rezultand expresia gradientului sau n raport cu x
x L(x, ) = Qx + q + h(x)T . Impreuna cu Jacobianul functiei h(x):


h(x) = 6x1 2 4x2 ,

este determinata expresia operatorului F (y):

3x1 2 + 6x1 2
F (y) = L(x, ) = 3x2 + 1 + 4x2 .
3x21 + 2x22 2x1 2

146

Capitolul 6.

Metode pentru probleme de optimizare constrans


a

Mai departe, din expresia lui F (y) calculam Jacobianul acesteia:

3 + 6
0
6x1 2
F
3 + 4
4x2 .
F (y) =
(y) = 0
y
6x1 2 4x2
0

Acum, pentru y = y0 = [1 0 1]T avem:


3
3 0 4
F (y0 ) = 1 , iar F (y 0) = 0 1 0
1
4
0 0

(6.10)

iar inversa Jacobianului este:

(F (y0 ))1

0 0
= 0 1
1
0
4

1
4

0.

3
16

Astfel, prima iteratie a metodei Lagrange-Newton va fi:


1 5
1

1
4
4
F

(y0 )
F (y0 ) = 0 1 = 1 .
y1 = y0
y
1
15
16
1
16
Problema 2. Fie problema de optimizare convexa:
min 2x21 + 2x22 + 2x1 x2 x1 + x2

xR2

s.l.: x1 x2 = 1
Sa se aplice primul pas al metodei Newton extinse, pornind din punctul
initial x0 = [0 1]T si pasul 0 = 1
Rezolvare. Problema poate fi scrisa ca o problema QP n forma standard:
1 T
x Qx + q T x
xR 2
s.l.: Ax = b
min2

unde:

 


1
4 2
, A = 1 1 , b = 1.
0, q =
Q = f (x) =
1
2 4
2

147

6.3. Probleme rezolvate de seminar

Gradientul functiei va fi desigur





4x1 + 2x2 1
f (x) = Qx + q =
,
2x1 + 4x2 + 1
iar pentru punctul nostru initial:
 
3
f (x0 ) =
.
3
Formam astfel sistemul KKT:
  

 2
f (x)
f (x) AT d
=
,
A
0

0
care pentru punctul nostru initial se rezuma la:

1
4 2
1
d0
3
2 4 1 d20 = 3
1 1 0
0
0
1
 1 
2
de unde rezulta d0 = 1 si x1 = x0 + 0 d0 = 21 .
2
2

6.3.2

Probleme de control optimal

Problema 3. Fie un sistem liniar cu dinamica discreta:


zt+1 = Az zt + Bu ut ,
unde zt Rnz reprezinta vectorul de stare al sistemului, ut Rnu
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 ztref pe stare si uref
t
pe intrare peste un orizont de predictie N. Formulam acum problema
de control optimal de urmarire a referintei pe un orizont finit N, dar cu
satisfacerea unor constrangeri pe stare si intrare, n care utilizam functii
de cost pe etapa patratice:
N
N 1
1X
1X
ref 2
2
min
kzt zt kQz +
kut uref
t kRu
zt ,ut 2
2
t=1
t=0

(6.11)

s.l.: z0 = z, zt+1 = Az zt + Bu ut , lbz zt ubz , Cu ut du ,

148

Capitolul 6.

Metode pentru probleme de optimizare constrans


a

unde kzt ztref k2Qz = (z ztref )T Qz (z ztref ). Sa se reformuleze aceasta


problema ca un QP utilizand doua tehnici: pastrarea vectorului starilor
si eliminarea vectorului starilor.
Rezolvare. Consideram doua moduri de abordare (pentru detalii vezi [1]).
Cazul 1: f
ar
a eliminarea st
arilor
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:


T T
x = uT0 z1T uT1 z2T . . . uTN 1 zN
.

Din problema (6.11) vor rezulta constrangeri de egalitate si de inegalitate.


Constrangerile de egalitate vor rezulta din faptul ca variabilele de stare si
intrare trebuie sa respecte dinamica procesului zt+1 = Az zt + Bu ut peste
ntreg orizontul de predictie. Luand n calcul forma variabilei x, putem
concatena aceste constrangeri ntr-o constrangere de forma Ax = b unde
A RN nz N (nz +nu ) si b RN nz vor fi de forma:

Az z0
0
0 ...
0
0
0
Bu Inz
0
0
0
0
0
Az Bu Inz . . .

,
b
=
A = ..
.. .
..
..
..
..
..
..
..
.
.
.
.
.
.
.
.
.
0
0
0
0
0 . . . Az Bu Inz

Privind constrangerile de inegalitate, observam ca avem constrangeri


de tip box pe stare si constrangeri poliedrale pe intrare. Dorim sa
concatenam toate aceste constrangeri peste ntreg orizontul de predictie
ntr-o singura constrangere de forma Cx d. Constrangerea de tip box
pentru stare poate fi rescrisa ca:
 


I
ubz
z
.
I t
lbz
| {z }
| {z }
Cz

Matricea C si vectorul d vor

Cu 0
0 Cz

C=0 0

0 0
0 0

dz

avea astfel urmatoarea forma:


du
0 0 0
dz
0 0 0

..
. 0 0 si d = .. .

du
0 Cu 0
dz
0 0 Cz

6.3. Probleme rezolvate de seminar

149

In privinta functiei obiectiv, putem lua un vector care sa concateneze


referintele pentru stare si intrare peste ntreg orizontul de predictie:
h
iT
ref T
ref T
ref T
T
xref = (uref
)
(z
)
.
.
.
(u
)
(z
)
.
0
1
N 1
N

Cu x si xref putem rescrie ntregul cost din (7.2) sub forma:


kx xref k2Q = (x xref )T Q(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 )T Q(x xref ) = xT Qx xT Qxref (xref )T Qx + (xref )T Qxref
= xT Qx + (Qxref + QT xref )T x + (xref )T Qxref .

Daca luam q = Qxref + QT xref si ignorand termenul constant


(xref )T Qxref din moment ce nu depinde de variabila x, atunci problema
(7.2) poate fi rescrisa ca urmatorul QP:
1
min xT Qx + q T x
x 2
s.l.: Ax = b, Cx d.
Cazul 2: cu eliminarea st
arilor
Pentru a elimina starile din problema (6.11), utilizam dinamica sistemului
zt+1 = Az zt +Bu ut pentru a exprima starile de-a lungul ntregului orizont
de predictie:
z1 = Az z0 + Bu u0
z2 = Az z1 + Bu u1 = A2z z0 + Az Bu u0 + Bu u1
z3 = Az z2 + Bu u2 = A3z z0 + A2z Bu u0 + Az Bu u1 + Bu u2
..
.
N 1
zN = Az zN 1 + Bu uN 1 = AN
Bu u0 + AzN 2 Bu u1 + +
z z0 + Az
+ A2z Bu uN 3 + Az Bu uN 2 + Bu uN 1

Daca eliminam starile, atunci singurele variabile de decizie raman


T T
intrarile. Notam astfel x = [uT0 . . . uTN 1 ]T si z = [z1T . . . , zN
] , ecuatiile

150

Capitolul 6.

Metode pentru probleme de optimizare constrans


a

+ Ap z0 , unde:
anterioare pot fi scrise sub forma z = ABx

Bu
0
0
0
... 0
Az
2
Az Bu

B
0
0
.
.
.
0
u

Az

2
3
=
Az Bu
Bu
0
... 0
AB
Az Bu
si Ap = Az .

..
..
..
..
..
..
..

.
.
.
.
.
.
.
N 1
N 2
N 3
N 4
Az Bu Az Bu Az Bu Az Bu . . . Bu
AN
z

Daca rescriem constrangerile de tip box pentru stare sub forma Cz zt


dz , precum n cazul unde nu eliminam starile, si le concatenam peste
ntreg orizontul de predictie astfel ncat sa avem Cz z dz , unde Cz =
diag(Cz , Cz , . . . , Cz ) si dz = [dTz dTz . . . dTz ]T , atunci constrangerile de
inegalitate pentru stare se transforma n constrangeri pentru intrare:
+ Ap z0 ) dz
Cz z dz Cz (ABx
x dz Ap z0 .
Cz AB
| {z }
| {z }
=Cx

=dx

Pentru constrangerile de inegalitate pentru intrare luam Cx x dx , unde

matricea este Cx = diag(Cu , Cu , . . . , Cu ) si dx = [dTu dTu . . . dTu ]T .


Concatenam acum cele doua constrangeri ntr-un singura, Cx d, unde:
 
 
Cx
d
C=
si d = x .

Cx
dx

Privind functia obiectiv, definim mai ntai matricea Q


=
= diag(Ru , . . . , Ru ) si apoi
diag(Qz , . . . , Qz ) si de asemenea R
zref = [(z ref )T . . . (z ref )T ]T , xref = [(uref )T . . . (uref )T ]T .
Atunci, observam ca functiile de cost pot fi rescrise:
N

1
1
1X
kzt z ref k2Qu = k
z zref kQ = kABx
+ Ap z0 zref kQ
2 t=1
2
2

1 T T
T QA
p z0 + z T AT Q
ABx

x AB QABx + xT AB
=
0 p
2


1
ABx
+ xT AB
T Q
z ref + termen constant.

(
z ref )T Q
2
De asemenea, avem
N 1
1
1X
kut uref k2Ru = kx xref kR
2 t=0
2


1 T
xT Rx
ref + (xref )T Rx
ref .
x Rx (xref )T Rx
2

151

6.3. Probleme rezolvate de seminar

si R
sunt
Ignorand termenii ce nu contin x si tinand cont ca matricele Q
1 T
T
simetrice, functia obiectiv va fi de forma f (x) = 2 x Qx + q x, unde
+ AB
TQ
AB,
iar vectorul q este dat de expresia:
Hessiana Q = R
T QA
p z0 AB
T Q
z ref Rx
ref .
q = AB
Problema de optimizare finala va fi un QP fara constrangeri de egalitate:
1
min xT Qx + q T x
x 2
s.l.: Cx d.
Problema 5. Consideram sistemul dublu

0

z = Az z + Bu u, cu Az =
0

integrator:

 
0
1

, Bu = 1 ,
0
M

unde z 1 si z 2 reprezinta pozitia si respectiv viteza unui corp de masa M.


Considerand M = 1, o perioada de esantionare t = 1 si folosing metoda
Euler de discretizare, se obtine urmatorul sistem liniar discret:


 
1 1
0
zt+1 = Az z + Bu u, cu Az =
, Bu =
.
0 1
1
Consideram de asemenea restrictii de tip box pe intrare:
1 u 1
si cost patratic pe etapa de forma:
kzt k2Q0 , kut k2R0 ,

unde Q0 = 0.1I2 , R0 = 1.

Sa se aduca problema de control optimal cu orizont de predictie N = 2


la o problema QP prin pastrarea starilor si respectiv prin eliminarea lor
pornind din starea initiala z0 = [1 1]T .
Rezolvare. Pentru aceasta problema observam ca referintele pentru stari
ztref si intrari uref
sunt 0. Pentru cazul cand pastram starea n variabila
t
de decizie, avem urmatoarea problema de optimizare QP convexa:
1
min xT Qx
x 2
s.l.: Ax = b, Cx d,

152

Capitolul 6.

Metode pentru probleme de optimizare constrans


a

unde matricele si vectorii corespunzatori problemei sunt dati de:


u0
1
0
0
0
z1

0 0.1I2 0
0
, x = R6 ,
Q=
u1
0
0
1
0
z2
0
0
0 0.1I2

2
0
1
0
0 0 0

1 0
1
0 0 0
1 ,
,
b
=
A=
0
0 1 1 0 1 0
0
0
0 1 1 0 1

1
1 0 0 0 0 0
1
1 0 0 0 0 0

C=
0 0 0 1 0 0 , d = 1 .
1
0 0 0 1 0 0

Pentru cazul cand eliminam starile din variabila de decizie, avem


urmatoarea problema de optimizare QP convexa:
1 T
x Qx + q T x
xR 2
s.l.: Cx d,
min2

unde matricele si vectorii corespunzatori problemei sunt

1
0
1 1
0 0

= 1 0 , Ap = 0 1 , C = 1 0 ,
AB
0
1 2
1 0
1
0 1
0 1
1 1

 
u0
T
(0.1I4 )AB
= 1.3
, Q = I2 + AB
x=
0.1
u1
 
T (0.1I4 )Ap z0 = 0.5 .
q = AB
0.1

dati de:

1
1

d=
1 ,
1

0.1
,
1.1

Problema 6. Fie matricea A Rmn , m n, cu rang maxim pe linii.


Pentru orice matrice Q Rnn , ce satisface xT Qx > 0, oricare ar fi
x Ker(A), x 6= 0, sa se arate ca matricea:


Q AT
A 0
este nesingulara (inversabila).

153

6.4. Probleme propuse

Rezolvare. Reamintim definitia subspatiului kernel(A):


kernel(A) = {x Rn : Ax = 0}.
O formulare echivalenta a proprietatii de inversabilitate pentru o matrice
patratica implica ca singura solutie a sistemului:


Q AT
y = 0,
(6.12)
A 0
sa fievectorul
cu elementele 0. Daca partitionam solutiile sistemului prin

u
y=
, ramane de aratat ca singurele instante ale vectorilor u si v ce
v
satisfac sistemul (6.12) sunt nule. Din (6.12) avem:
Qu + AT v = 0, Au = 0.
A doua ecuatie indica u kernel(A). Inmultind la stanga n prima
ecuatie cu uT obtinem:
uT Qu + uT AT v = 0.

(6.13)

T
inand cont ca u kernel(A), iar n enunt am presupus ca uT Qu > 0,
concluzionam (6.14) este imposibil de satisfacut pentru orice u 6= 0. Pe
de alta parte, considerand u = 0 si v 6= 0, prima ecuatie a sistemului
(6.12) devine:
AT v = 0.
(6.14)
Deoarece matricea A are rang maxim pe linii, matricea AT are rang
maxim pe coloane, singurul vector ce satisface AT v = 0 este v = 0. In
concluzie, am aratat ca singurul vector ce satisface sistemul (6.12) este
vectorul nul.

6.4

Probleme propuse

Problema 1. Ce se ntampla daca aplicam metoda bariera urmatoarei


probleme:
min x2

xR2

s.l.: x1 x2 , 0 x2 .

154

Capitolul 6.

Metode pentru probleme de optimizare constrans


a

Problema 2. Fie problema:


min f (x) (= x2 + 1)
xR

s.l.: 2 x 4.
Sa se gaseasca punctele KKT pentru aceasta problema, functia de
bariera logaritmica B(x) corespunzatoare si sa se traseze grafic f (x) si
f (x) + B pentru mai multe valori ale lui .
Problema 3. Fie o problema convexa de forma:
min f (x)

xRn

s.l.: gi (x) 0 i = 1, . . . , m,
n care gi sunt de doua ori diferentiabile. Definim functia de bariera
m
X
1
inversa inv (x) =

si calea centrala din aceasta functie


g
(x)
i
i=1
drept punctele x(t) = arg min tf (x) + inv (x). Sa se demonstreze ca
x

tf (x) + inv (x) este o functie convexa n x, pentru orice t > 0. Sa se


arate de asemenea cum se poate construi o variabila duala fezabila din
x(t).
Problema 4. Consideram din nou problema convexa definita n ecuatia
(6.1) la care mai adaugam o constrangere:
min f (x)

xRn

s.l.: g(x) 0, Ax = b, xT x r 2 ,
unde r R, gi sunt convexe si de doua ori diferentiabile, iar A Rpn cu
rang(A) = p < n. Fie B(x) functia de bariera logaritmica pentru aceasta
problema. Sa se gaseasca un > 0 astfel ncat 2 (f (x) + B(x))<In
pentru orice x fezabil si > 0.
Problema 5. Consideram problema convexa definita n ecuatia (6.4),
unde adaugam un termen patratic functiei obiectiv:
min f (x) + (Ax b)T Q(Ax b)

xRn

s.l.: Ax = b,

155

6.4. Probleme propuse

unde Q<0. Este pasul metodei Newton extinse, d, acelasi pentru aceasta
problema 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 2 f (x) > 0,
iar Lagrangianul L(x, ) pentru aceasta problema are un punct de minim
unic. Sa se demonstreze ca daca exista un K astfel ncat:


2
T 1

f (x) A
K,

A
0


2

atunci functia duala q este puternic concava in , cu 2 q()  K1 Ip .


Problema 7. Pentru problema neconvexa urmatoare:
5 2 5 2
x + x + 3x1 x2 + x1 + x2
xR
2 1 2 2
s.l: x21 + 2x22 2x2 = 2,
min2

sa se aplice prima iteratie a metodei Lagrange-Newton, pornind din


punctul initial x0 = [1 1]T si 0 = 1.
Problema 8. Fie problema:
min x41 + x42 + 2x21 x22

xR2

s.l: x1 + x2 = 0,
Sa se gaseasca un punct initial fezabil si sa se implementeze prima
iteratie a metodei Newton extinsa cu un pas 0 > 0 selectat la alegere.
Problema 9. Fie problema:
min Tr(X) log det(X)

XRnn

s.l: X 0, Xs = y,
unde X Rnn este variabila, y, s Rn sunt date, iar sT y = 1.
Observam ca functia B(x) = log det(X) este bariera logaritmica pentru
conul matricelor pozitiv semidefinite S+n . Sa se determine conditiile KKT
pentru aceasta problema. Sa se verifice ca punctul optim este:
X = I + yy T

1
sT s

ssT .

156

Capitolul 6.

Metode pentru probleme de optimizare constrans


a

Problema 10. Pentru problema convexa:


5 2 5 2
x + x + x1 x2
xR
2 1 2 2
s.l: 4x1 + x2 = 16, x21 + x22 20,
min2

aplicati prima iteratie a metodei bariera pornind din punctul fezabil x0 .

Capitolul 7
Aplicatii din inginerie
In acest capitol prezentam o serie de aplicatii ale metodelor si claselor
de probleme de optimizare descrise n materialul anterior. In sectiunile
ce urmeaza definim probleme reale din diferite domenii ale ingineriei,
analizam modelele matematice ale acestora si n final, selectam si
aplicam fiecarui caz o metoda de optimizare numerica adecvata rezolvarii
problemei respective.

7.1

Control optimal

Teoria optimizarii se afla n stransa legatura cu teoria sistemelor


si controlului, ambele domenii vizand convergenta traiectoriei\sirului
generat catre anumite referinte sau puncte de optim. De aceea, multe
probleme din teoria sistemelor se pot formula si rezolva sub forma
problemelor de optimizare. Daca teoria controlului presupune analiza
stabilitatii si reglarea proceselor dinamice, controlul optimal propune
n plus, realizarea celor doua obiective mentinand la minimum un
anumit criteriu si satisfacand constrangeri fizice de fezabilitate. De
exemplu, daca urmarim reglarea si mentinerea nivelului de lichid dintr-un
rezervor, trebuie sa tinem cont de debitul maxim admisibil, performantele
senzorilor de nivel, puterea pompei hidraulice etc. De aceea, procesul de
reglare vizat trebuie sa ia n calcul si limitele componentelor fizice. Fie
un sistem neliniar cu dinamica discreta:
zt+1 = (zt , ut ),

(7.1)

n care zt Rnz reprezinta vectorul de stare al sistemului, ut Rnu


reprezinta vectorul de intrari ale sistemului si functia : Rn Rm Rn

158

Capitolul 7. Aplicatii din inginerie

descrie dinamica sistemului. Un caz particular de sistem dinamic este cel


liniar zt+1 = Az zt + Bu ut , unde matricele Az Rnz nz si Bu Rnz nu .
Consideram de asemenea constrangeri de inegalitate liniare pe stare si
intrare, e.g. de forma:
lbz zt ubz , Cu ut du

t 0,

unde Cu Rni nz si du Rni . Asa cum am precizat anterior, n general


se doreste minimizarea unui criteriu (e.g. combustibil, energie, lucru
mecanic etc.) odata cu stabilizarea sistemului. Cunoscand starea initiala
z0 , definim problema de control optimal prin urmatoarea problema de
optimizare constransa:
N

N 1

X
1X
2
min
kzt ztref k2Qt +
kut uref
t kRt
zt ,ut 2
t=1
t=0
s.l: z0 = z, zt+1 = (zt , ut )
lbz zt ubz , Cu ut du

(7.2)

t = 0, . . . , N 1,

unde presupunem cunoscuta starea initiala a sistemului z0 = z si definim


kz z ref k2Q = (z z ref )T Q(z z ref ). Parametrul N se numeste orizont
de predictie. Mai mult, presupunem ca matricele Qt si Rt sunt pozitiv
definite pentru orice t si ztref si respectiv uref
reprezinta anumite referinte
t
impuse peste orizontul de predictie pentru starea si intrarea sistemului.
Pe scurt, problema de control optimal presupune determinarea unui sir
de intrari (ut )0tN 1 care, aplicate sistemului (7.1), vor conduce starea
(zt )0tN pe o traiectorie dorita. Se observa ca problema de control
optimal se poate reformula ca o problema de optimizare (e.g. in cazul
sistemului liniar avem o problema patratica standard, vezi capitolul
anterior) 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 algortimilor


de optimizare si control este robotul E-Puck (vezi Fig. 7.1). Acest
sistem robotic reprezinta un ansamblu electronic mobil ce suporta
implementarea numerica si experimentarea cu algoritmi de optimizare
de complexitate relativ ridicata. Mai exact, structura mecanica a
robotulului E-Puck este sustinuta de doua motoare pas-cu-pas atasate

159

7.1. Control optimal

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, camera
video 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 de
algoritmi numerici. In acest subcapitol consideram un model simplificat
al robotului E-Puck, si anume cel restrictionat doar la deplasarea nainte
(fara a considera posibilitatea de deplasare napoi). Modelul dinamic
simplificat este liniar, continuu si este definit de urmatoarele ecuatii:
ru1 ru2
+
2
2
= ru1 ru2 ,
2l
2l

y =

n care y reprezinta distanta parcursa n directia nainte, unghiul


de viraj, r raza rotilor, l distanta de la roata la centrul de greutate
al robotului, iar u1 si u2 reprezinta viteza unghiulara a primei roti si
respectiv, a celei de-a doua roti.Pentru
a respecta consistent

  a notatiilor,
u
y
si intrarea cu u = 1 . Mai departe,
notam starea sistemului cu z =
u2

rescrierea modelului anterior va avea urmatoarea forma:


u u,
z = Az z + B
r

r
22
2
u = 2r
n care Az = 0 R
si B
. In scopul efectuarii de
2lr
2l
experimente numerice, discretizam sistemul liniar continuu definit de
modelul anterior. Una dintre metodele cele mai vechi si mai simple este

160

Capitolul 7. Aplicatii din inginerie

metoda Euler de discretizare, ce presupune aproximarea derivatei unei


functii diferentiabile f (t) cu urmatoarea expresie:
df
f (t + t) f (t)
(t)
,
dt
t
unde intervalul t se determina n functie de viteza de evolutie a
procesului. Obtinem aproximarea discreta a modelului robotului, data
de urmatoarea relatie de recurenta:

u ut ,
zt+1 = I2 tAz zt + tB

n care I2 este matricea identitate de ordin 2. Alegand t = 0.5 s,


obtinem sistemul dinamic si matricele sistemului de forma:
zt+1 = Az zt + Bu uu ,

1
unde Az = I2 Az ,
2

1
Bu = B
u.
2

Un exemplu simplu de problema de control optimal poate fi definit


de urmarirea unei traiectorii sinusoidale pe o suprafata plana de catre
robotul E-Puck. In acest caz, definim traiectoria discreta ztref =
(ytref , tref )T ce se doreste a fi urmarita. Caracteristica discreta a referintei
impune esantionarea functiei sinus continue cu o anumita perioada T (n
simulari am considerat T = 0.1). Acuratetea cu care robotul urmareste
o curba sinusoidala variaza n functie de perioada de esantionare a
functiei sinus, orizontul de predictie considerat si de constrangerile
aplicate problemei de control optimal. In cel mai simplu caz, consideram
ca 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 ca
referinta este definita de sirul propriu-zis de puncte, deoarece marimile
xt si sin xt difera de marimile starii sistemului date de distanta parcursa
ytref si unghiul de orientare tref . Pentru a realiza conversia marimilor
facem urmatoarele observatii:
observam ca orice punct de pe graficul functiei sin x se afla la un
unghi = arctan cos x fata de orizontala;
distant
pa 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:
p

ztref = (ytref , tref ) =
(xt+1 xt )2 + (sin xt+1 sin xt )2 , arctan cos xt ,
uref
= 0.
t

161

7.1. Control optimal

Problema de control optimal pentru un orizont de predictie N = 2 devine:


i
1h
ref
ref T
ref
ref T
min
(z1 z1 ) Q1 (z1 z1 ) + (z2 z2 ) Q2 (z2 z2 ) + (7.3)
zt ,ut 2

1 T
u0 R0 u0 + uT1 R1 u1
2
s.l.:
z0 = z, z1 = Az z0 + Bu u0 , z2 = Az z1 + Bu u1 ,
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. la
fiecare pas se masoara/estimeaza starea sistemului si se rezolva problema
de control optimal cu orizont finit enuntata anterior; se obtine o secventa
de N intrari optimale, dar se aplica doar primele Nc N intrari din
aceasta secventa, dupa care procedura se repeta. Metoda de control
bazata pe principiul orizontului alunecator se numeste control predictiv
(MPC - Model Predictive Control ). Rescriem compact problema de
control optimal pentru starea initiala z0 = z si orizont de predictie N = 2
sub forma unei probleme de optimizare patratica convexa:
1 T
x Qx + q T x
xR 2
s.l.: Ax = b, Cx d,

(7.4)

min8

unde matricele si vectorii corespunzatori problemei sunt dati de:



u0
z1

x=
u1 ,
z2

R0 0
0 0
0 Q1 0 0

Q=
0 0 R1 0 ,
0 0
0 Q2

0


Q1 z1ref
A
z
z
0
, b =
,
q=

0
0

Q2 z2ref


Bu I2
0
0
,
A=
0
Az Bu I2

I2
I2
C=
0
0

0 0
0 0
0 I2
0 I2

umax
0

0
, d = umin .
umax
0
umin
0

Exercitiul 3. Sa se rezolve problema patratica convexa (7.4) cu metoda


de punct interior.

162

Capitolul 7. Aplicatii din inginerie

Rezolvare. Reamintim ca primul pas din metoda de punct interior


presupune transformarea echivalenta a problemei (7.4) ntr-una fara
constrangeri de inegalitate:
8

min8

xR

X
1 T
x Qx + q T x
log(Ci x di )
2
i=1

(7.5)

s.l. Ax = b,

unde Ci reprezinta linia i a matricei C.


propriu-zis:

Apoi, aplicam algoritmul

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 metodei
de 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)

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 la


fiecare pas problema de control optimal se rezolva cu metoda de punct
interior pentru probleme convexe, sunt prezentate n Fig. 7.2. Se observa
o urmarire buna a traiectoriei impuse robotului. In cea de-a doua figura
reprezentam traiectoria optima a intrarilor peste orizontul de simulare.

164

Capitolul 7. Aplicatii din inginerie


1.5

Pozitia z
Referinta

Traiectorie

1
0.5
0
0.5
1
1.5
0

20

40
60
Numar iteratii

80

100

0.8
viteza unghiulara 1
viteza unghiulara 2

0.6
Intrari optime (u1, u2)

0.4
0.2
0

0.2
0.4
0.6
0

20

40

60

80

100

Figura 7.2: Traiectoria robotului folosind tehnica de control optimal cu


orizont alunec
ator: evolutia st
arilor sistemului (st
anga) si a intr
arilor
optimale (dreapta).

7.1.2

Control optimal aplicat unei instalatii cu


patru rezervoare

In acest subcapitol, consideram o instalatie cu patru rezervoare


interconectate, prezentata n Fig. 7.3, dispusa cu doua pompe de
propulsie a apei. Modelul matematic corespunzator instalatiei este

165

7.1. Control optimal

neliniar, dat de urmatoarele ecuatii diferentiale:


dh1
dt
dh2
dt
dh3
dt
dh4
dt

a1 p
2gh1 +
S
a2 p
=
2gh2 +
S
a3 p
2gh3 +
=
S
a4 p
=
2gh4 +
S
=

a4 p
2gh4 +
S
a3 p
2gh3 +
S
(1 a )
qa ,
S
(1 b )
qb ,
S

a
qa ,
S
b
qb ,
S

unde functiile h1 , h2 , h3 , h4 reprezinta dinamicile nivelurilor lichidului n


rezervoare, cu rolul de stari ale sistemului, iar qa , qb reprezinta debitele
de intrare, cu rolul de comenzi (intrari). Pentru conformitate cu
subcapitolul 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 alege


perioada de esantionare t = 5 s, deoarece procesul este unul lent.
Pentru o prezentare simplificata, scriem compact sistemul neliniar discret
prin intermediul urmatoarelor notatii: zt+1 = (zt ) + Bu ut , unde

z1 5aS1 2gz1 + 5aS4 2gz4


z2 5a2 2gz2 + 5a3 2gz3
S
,
S
: R4 R4 , (z) =

z3 5aS3 2gz3
5a4
z4 S 2gz4

166

Capitolul 7. Aplicatii din inginerie

5a
S

0
Bu =
5(1a )
S

0
5b
S

0
5(1b )
S

Valorile parametrilor din cadrul modelului se pot identifica experimental


prin diferite tehnici. Valorile aproximative identificate n laborator sunt
prezentate n Tabelul 7.1. Formulam o problema de control optimal
Parametri S
a1
a2
a3
a4
a b
Valori 0.02 5.8e5 6.2e5 2e5 3.6e5 0.58 0.54
Unitate m2
m2
m2
m2
m2
Tabelul 7.1: Parametrii procesului cu patru rezervoare.

pentru modelul neliniar al instalatiei, considerand un orizont de predictie


N si referinte pentru intrare si stare date ztref si uref
t :
N
N 1
1X
1X
ref 2
2
min
kzt zt kQ0 +
kut uref
t kR0
zt ,ut 2
2
t=1
t=0

s.l.:

z0 = z,

(7.6)

zt+1 = (zt ) + Bu ut t = 0, . . . , N 1.

Observam ca problema de optimizare neconvexa ce rezulta din problema


de control optimal fara eliminarea starilor (7.6) are forma:
1 T
x Qx + q T x
xR6N 2
s.l.: h(x) = 0,
min

(7.7)

n care matricea Q, vectorul q si functia h sunt definiti n aceeasi maniera


ca 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:

1
min
(z1 z1ref )T Q0 (z1 z1ref ) + (z2 z2ref )T Q0 (z2 z2ref ) +
zt ,ut 2

1 T
u0 R0 u0 + uT1 R0 u1
2
s.l. z0 = z, z1 = (z0 ) + Bu u0 ,
z2 = (z1 ) + Bu u1 ,

167

7.2. Problema Google

unde zt R4 si ut R2 , iar ztref R4 este o referinta dorita pentru


nivelurile din cele patru rezervoare. Aceasta problema de control optimal
se rescrie ca o problema de optimizare de forma (7.7), unde:


0
R0 0
0 0
u0
ref

z1
, Q = 0 Q0 0 0 , q = Q0 z1 ,
x=

0 0 R0 0
u1
0
ref
0 0
0 Q0
z2
Q0 z2


(z0 ) z1 + Bu u0
12
8
h : R R , h(x) =
.
(z1 ) z2 + Bu u1
Reamintim ca metoda Lagrange-Newton presupune rezolvarea sistemului
de ecuatii:
Qx + q + h(x)T = 0
h(x) = 0,

(7.8)

cu metoda Newton clasica de rezolvare a sistemelor neliniare. Mai exact,


fie sistemul de ecuatii neliniare F (x) = 0, metoda Newton presupune
liniarizarea acestuia n punctul curent xk si rezolvarea sistemului liniar
rezultat n x, i.e.
F (xk ) + F (xk )(x xk ) = 0.
Algoritmul de rezolvare a problemei de control optimal a fost
implementat pe un PLC Siemens din Laboratorul de Optimizare si
Control Distribuit al UPB. In Fig. 7.4 consideram doua referinte pentru
fiecare rezervor, fiecare constanta pe o anumita perioada de timp. Se
observa ca sistemul urmareste foarte bine aceste referinte prin strategia
de control optimal folosind principiul de orizont alunecator (i.e. control
predictiv).

7.2

Problema Google

Internetul este dominat progresiv de motoare de cautare, n sprijinul


selectiei si gasirii surselor de informatii cu relevanta maxima. Unul dintre
cele mai vechi si eficiente motoare de cautare este Google, care se afla
n continua dezvoltare pe masura ce progresele n domeniul algoritmilor

168

Capitolul 7. Aplicatii din inginerie


level(cm)

h1
sh1
h4
sh4

40

35

30

25

20

15
0

500

1000
time(seconds)

1500

level(cm)
40

1800

h2
sh2
h3
sh3

35

30

25

20

15

10
0

500

1000
time(seconds)

1500

1800

Figura 7.4: Traiectoria nivelului de ap


a din cele patru rezervoare.

avanseaza. Tehnica folosita de Google pentru cautarea si clasificarea


paginilor web se numeste PageRank, iar pasul central din aceasta tehnica
presupune clasificarea (ranking-ul) unui numar urias de pagini web. In
acest fel, rezulta o lista ordonata de site-uri n sensul descrescator al
relevantei n legatura cu subiectul cautat.
Datorita conexiunilor permanente dintre paginile web n reteaua
internet-ului, putem sa reprezentam structura legaturilor dintre pagini
prin intermediul unui graf ponderat orientat. Nodurile grafului reprezinta
paginile, iar muchiile au rolul link-urilor. Ponderea pij (corespunzatoare
muchiei dintre nodurile i si j) reprezinta probabilitatea ca la o navigare
aleatorie n reteaua de pagini sa se ajunga din pagina i n pagina j.
In plus, putem atribui grafului o matrice de adiacenta E Rnn , cu
componenta Eij 6= 0 daca ntre nodurile i si j exista muchie, iar Eij 6= 0
daca nodurile i si j nu sunt legate de o muchie. Numarul de muchii din
graf 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

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 Rmn se numeste stocastica pe linii daca
are elemente nenegative (i.e. Eij 0), iar suma pe fiecare linie este egala
cu 1. O matrice E Rmn se numeste stocastica pe coloane daca are
elemente nenegative (i.e. Eij 0), iar suma pe fiecare coloana este egala
cu 1.
Deoarece componentele nenule ale matricei de adiacenta E au rolul de
probabilitati, acestea sunt nenegative, iar matricea E este stocastica pe
coloane. Forma algebrica a problemei Google se reduce la a gasi vectorul
propriu corespunzator valorii proprii maxime 1, adica solutia urmatorului
sistem liniar supus constrangerilor:
(
Ex = x
eT x = 1, x 0.
Problema rezolvarii acestui sistem se poate formula usor n termeni de
optimizare:


1
2
min f (x)
= kEx xk
(7.9)
xRn
2
s.l.: eT x = 1, x 0,
unde e = [1 . . . 1]T , matricea E Rnn este rara (elementele au valori
preponderent nule). Observam ca problema rezultata este constransa,
nsa daca alegem un parametru > 0 suficient de mare, putem obtine
o formulare echivalenta fara constrangeri folosind functia de penalitate
patratica:


1
T
2
2
= kEx xk + (e x 1) .
min F (x, )
(7.10)
xRn
2
2

170

Capitolul 7. Aplicatii din inginerie

Pe baza teoremei Peron-Frobenius, observam ca putem elimina


constrangerile de inegalitate x 0, deoarece solutia optima globala a
problemei 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 deoarece
au 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 : eT x = 1, x 0} este multimea numita simplex si
> 0 este un pas constant. Rezultatele obtinute sunt prezentate n
Fig. 7.6 si 7.7. Se observa o convergenta rapida n ambele metode. De
asemenea, observam ca metoda de penalitate produce o solutie optima
pentru problema originala pentru valori relativ mici ale parametrului de
penalitate .
Exercitiul 5. Fie o matrice E data cu proprietatile descrise anterior.
Sa se rezolve prima formulare (7.9) cu ajutorul metodei de gradient
proiectat, iar cea de-a doua (7.10) cu metoda gradient pentru cazul
neconstrans.
Rezolvare. Deoarece multimea fezabila este descrisa de o combinatie
de inegalitati\egalitati liniare, nu putem deduce proiectia ortogonala
a unui punct pe aceasta multime n mod explicit. De accea, n
implementare folosim functia Matlab quadprog pentru a obtine o
proiectie aproximativa.
Consideram urmatoarea functie Matlab ce primeste ca argument
matricea de adiacenta E si rezolva problema de optimizare prin metoda
gradientului proiectat:
function [x]=google(E,eps)
[m n]=size(E);
if (m~=n)
error(Dimensiunile matricii nu sunt compatibile!);
end

171

7.2. Problema Google

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.7

0.6

f(x ) f*

0.5

0.4

0.3

0.2

0.1

0
0

10

15

20

25

Iteratii

Figura 7.6: Convergenta metodei gradient proiectat aplicat


a unei probleme
Google de dimensiune n = 50 n termeni de valorile functiei obiectiv.

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

173

7.3. Clasificarea de imagini


0.7

0.8

0.6

0.7
0.6

0.3
0.2

0.5

=10

0.4

=15

f(xk) f

0.4

=30

0.3

=50

0.2

0.1
0
0

=5

f(x ) f*

0.5

0.1
0.5

1.5

2
2.5
Iteratii (k)

3.5

0
0

x 10

(a)

2
3
Iteratii (k)

5
4

x 10

(b)

Figura 7.7: Convergenta metodei gradient pentru problema Google cu


n = 103 , = 50 n termeni de valorile functiei obiectiv (a). Dependenta
convergentei metodei gradient de parametrul aplicat
a problemei Google pe
3
n = 10 (b).

7.3

Clasificarea de imagini

Tehnicile de clasificare si nvatare automata sunt notiuni centrale n


domeniul statisticii, calculatoarelor, prelucrarii semnalelor etc. Ambele
se ocupa n mod fundamental cu problema recunoasterii tiparelor (pattern
recognition) prin dezvoltarea de modele matematice ce suporta o etapa
preliminara de antrenare (experienta), pe baza careia realizeaza operatii
de clasificare/regresie de obiecte si functii. O parte din numeroasele
aplicatii 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 unui
model matematic ce separa doua sau mai multe clase de obiecte cu o

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 obiect


necunoscut, se introduc datele obiectului n modelul matematic, iar la
iesire se primeste id-ul clasei din care face parte. In cele mai simple
cazuri, modelul matematic cautat este reprezentat de un hiperplan H =
{y Rn : aT y = b} caracterizat de parametrii a Rn si b R. De aceea,
problema se reduce la a gasi parametrii optimi (a, b) care sa separe cat
mai bine clasele de obiecte (vezi Fig. 7.8). In termenii teoriei optimizarii,
problema se formuleaza dupa cum urmeaza:
1
kak2
aR ,bR
2

s.l.: ci aT yi b 1 i = 1, . . . , m,
min
n

(7.11)

unde a si b reprezinta parametrii hiperplanului, iar ci indica clasa din


care face parte obiectul yi . Variabilele de decizie x = [aT b]T reprezinta
parametrii unui hiperplan de separare a claselor de obiecte/imagini, asa
cum se observa n Fig. 7.8. Problema de optimizare convexa patratica
avand numai constrangeri de inegalitate (7.11) o rezolvam prin metoda
de punct interior aplicata problemelor convexe (CP).
In continuare, exemplificam o aplicatie practica a tehnicii SVM prin
problema recunoasterii cifrei 7 dintr-o imagine. Se cunoaste ca orice
imagine poate fi reprezentata sub forma unei serii de pixeli, unde fiecare
pixel la randul sau este definit de o valoare (e.g. ntre 0 256) data
de culoarea acestuia. Pentru a simplifica exemplul, consideram imagini
mono-colore compuse din 49 de pixeli, n care pixelii sunt reprezentati de
niveluri de gri cu valori ntre 0 si 5 (vezi Fig. 7.9). In etapa de initializare
a tehnicii SVM se fixeaza o multime de antrenare compusa din diferite

175

7.3. Clasificarea de imagini

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 a
II-a de obiecte). Deoarece aceasta etapa se mai numeste si antrenare, se
cunoaste pentru fiecare imagine clasa din care face parte. Fiecarei imagini
i i se asociaza un vector de 49 de componente (fiecare componenta luand
valori ntregi ntre 0 si 5) si un parametru c ce reprezinta indexul clasei din
care face parte imaginea respectiva (daca c = 1 atunci imaginea contine
cifra 7, daca c = 1 atunci imaginea este aleatorie). Pe baza acestei
multimi de antrenare, urmarim realizarea unui hiperplan de separare a
acestor 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 prezentat


anterior. Sa se testeze eficienta solutiei (hiperplanului) obtinute prin
evaluarea ratei de succes n recunoasterea cifrei 7.
Rezolvare. Alegem un set de imagini ale cifrei 7(vezi Fig. 7.9 (a)) si un
set de imagini aleatorii (vezi Fig. 7.9 (b)) ce reprezinta multimea de

176

Capitolul 7. Aplicatii din inginerie

antrenare a hiperplanului de separare. Transformam aceste imagini n


vectori de pixeli cum am descris nainte, ce pot fi introdusi ntr-o functie
Matlab si folositi n rezolvarea problemei (7.11). Urmatoarea secventa
de cod rezolva problema SVM pe baza multimii de antrenare date de
vectorii 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

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

178

Capitolul 7. Aplicatii din inginerie

test n clasele aferente:


(
< 0, atunci imaginea data de y nu contine cifra 7
aT y b
> 0, atunci imaginea data de y contine cifra 7.
In cazul punctelor considerate n secventa de cod precedenta, tragem
urmatoarele concluzii:
daca testam hiperplanul cu diferite imagini aleatorii cu densitate
mare de pixeli gri (vezi Fig. 7.10) si respectiv, imagini cu cifra
7 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 mica
si respectiv, imagini cu cifra 7 transformata n diverse moduri
(translatie la stanga/dreapta, nclinare etc.) atunci rezulta o rata
de succes de 52%.

Figura 7.10: Exemple de imagini aleatorii cu densitate ridicat


a de pixeli
gri.

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 ce
contin cifra 7, (ii) numarul relativ mic de imagini de antrenare (cu cat
multimea de antrenare contine mai multe puncte, cu atat hiperplanul
rezultat este mai eficient). In concluzie, am obtinut un hiperplan de
separare ce recunoaste cu o anumita rata de succes imagini ce contin sau
nu cifra 7.

Bibliografie
[1] I. Necoara. Metode de Optimizare Numerica. Editura Politehnica
Press, 2013.
[2] D.G. Luenberger. Linear and nonlinear programming. Kluwer, 1994.
[3] J. Nocedal and S. Wright. Numerical Optimization. Springer Verlag,
2006.

S-ar putea să vă placă și