Documente Academic
Documente Profesional
Documente Cultură
Metode Optimizare Numerica
Metode Optimizare Numerica
Metode Optimizare Numerica
Culegere de probleme
Ion Necoar
a
Dragos Clipici
Andrei P
atrascu
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:
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.
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
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
.
.
.
.
.
.
.
.
.
132
132
132
133
134
137
137
138
140
145
Cuprins
6.4
145
147
153
179
10
Cuprins
Capitolul 1
Functii ale pachetului de
optimizare MATLAB
1.1
Preliminarii
12
1.1.1
Mediul Matlab
13
1.2
1.2.1
14
15
xR
= ex1 (4x21 + 2x22 + 4x1 x2 + 2x2 + 1) .
16
17
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)
1.2.2
Minimizare constr
ans
a
xRn
s.l.: Cx d, g(x) 0,
Ax = b, h(x) = 0,
l x u,
(1.2)
18
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 .
(3,2)
g2
g1
1
zona fezabila
2
5
5
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
21
10
10
2.5
1.5
0.5
0.5
1.5
2.5
22
23
24
1.2.3
Programare liniar
a
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
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
u(s)h(t s)ds
y(k) =
i=
u(i)h(k i),
26
sup
xR min max
|T ()
n1
X
xj Hj ()|,
j=0
xRn 1im
n1
X
xj Hj (i )|,
(1.5)
j=0
27
xRn ,t
x
s.l.: C
d
t
(= t)
|T (i )
n1
X
j=0
xj Hj (i )| t i = 1, . . . , m .
1.2.4
Programare p
atratic
a
28
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
29
1.3
1.3.1
Diferentiere multivariabil
a
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
3x21 x2 + 2x23
f (x) = x31 x3 ,
4x3 x1 x2
ex1 x2 + 2e2x1 1
.
g(x) =
ex1 x2 2e2x2 2
30
1.3.2
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
i=1
nn
2A
k = L.
min Aii
i
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
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
f (x) =
33
cT x + d
x
1
= cT
+d
= cT y(x) + dz(x).
u(x)
u(x)
u(x)
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
34
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:
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,
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
log(cxa11
. . . xann )
= log c +
n
X
ai log xi = log c +
i=1
n
X
ai yi .
i=1
1.4
Evident,
Probleme propuse
maxn
36
xRn
xRn
2x1 3
37
x Rn :
kyk1
kxk1 = kxk ,
kxk = kxk1 ,
kxk2 = kxk2 .
Capitolul 2
Probleme de optimizare
convex
a
2.1
Preliminarii
xRn
s.l.: gi (x) 0 i = 1, . . . , m
Ax = b.
(2.1)
2.1.1
Multimi convexe
39
2.1. Preliminarii
x2
x1
x2
x1
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:
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
40
2.1.2
Functii convexe
(2.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
i=1
p
X
i
i = 1.
41
2.2
Pachet CVX
42
250
200
150
100
50
10
0
5
50
10
0
5
5
5
10
10
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
43
2.2.2
Elemente de baz
a
variable Y(20,10)
variable Z(5,5,5).
44
2.3
xRn ,rR
45
x2
0.2
0
0.2
0.4
0.6
0.8
1
1.5
0.5
x1
0.5
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;
46
(2.3)
A=
...
...
...
...
1 ejm e2jm . . . enjm .
rezultand o aproximare a problemei (2.3), i.e.
(2.4)
xRn 1im
h(n)
0.8
0.6
0.4
0.2
0
0.2
0
10
n
15
20
n = 20; m = 15*n;
w = linspace(0,pi,m); % omega
% Construim un raspuns in frecventa dorit
D = 8.25;
Hdes = exp(-j*D*w);
% valoare intarziere
% raspuns in frecventa dorit
%
%
%
%
%
%
%
%
%
A
47
48
subplot(2,1,2); plot(w,angle(H));
axis([0,pi,-pi,pi]); xlabel(w), ylabel(faza H(w));
2.4
2.4.1
i = 1, . . . , m, j = 1, . . . , p}
= {x Rn : Ax = b, Cx d}.
49
i=1
= {x R : In x 0, [1 . . . 1]x = 1} ,
= {x Rn : 1 xi 1 i = 1, . . . , n}
= {x Rn : xi 1, xi 1, i = 1, . . . , n}
1
In
..
n
x . ,
= xR :
In
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
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)
y1T y1
+ v = ky1 k + v 0,
ky1 k
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,
51
(2.6)
1
> 0 x > 0.
x2
52
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:
= log det X 1/2 In + tX 1/2 DX 1/2 X 1/2
53
= 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 .
n
Y
(1 + ti )
n
X
i=1
log(1 + ti ).
i=1
u
0 u R.
(1 + tu)2
54
1 T
x Qx.
2
i=1
relatii:
exi
n
P x = y i ,
e i
i = 1, . . . , n.
(2.7)
i=1
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 =
,
altfel.
i=1
55
xR2
x1
0, g2 (x) = ex1 +x2 1 0
1 + x2 2
h(x) = (x1 x2 1)2 = 0.
s.l.: g1 (x) =
xR2
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
56
1
1
a, 2 f (x) = T
aaT
2
b
(a x b)
aT x
d
1
cT
T x+
d
1
c
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
s.l.: T r(X) = 1.
2.5
Probleme propuse
58
(i) g(x) =
m
P
i fi (x), i > 0,
i=1
f (x) =
x1
1
x2
1
x3
1
x4
f (1 x1 + + n xn ) 1 f (x1 ) + + n f (xn ).
59
1
1
1
y
z 0,
det x
f (x) f (y) f (z)
i=1,...,k
60
(1 )
kx yk2p.
2
kx yk2p .
2
n
P
i=1
xpi
p1
, 1 p .
Sa se demonstreze ca:
61
(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
i=1
1 T
H H.
62
(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
min f (x),
xRn
(3.1)
2 f (x )<0.
64
3.2
3.2.1
65
(3.2)
(3.3)
L
k ) kf (xk )k2 ,
2
xRn
Sa se
(3.4)
66
67
plot(t,norme_gradienti(t),k,LineWidth,2);
hold off
figure(2)
hold on
plot(t,valori_functie(t),k,LineWidth,2);
hold off
%Pentru trasarea liniilor de contur si evolutia
%metodei gradient, avem urmatoarele
%instructiuni
[x1,x2]=meshgrid([1.2:0.01:2.8],[0.4:0.01:1.6]);
z=(x1-2).^4+(x1-2.*x2).^2;
figure(3)
hold on
contour(x1,x2,z,valori_functie);
plot3(puncte_iteratie(1,:),puncte_iteratie(2,:),...
valori_functie,r);
scatter3(puncte_iteratie(1,:),puncte_iteratie(2,:),...
valori_functie,filled);
hold off
1.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
68
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
69
Figura 3.3: Progresul metodei gradient pornind dintr-un punct initial ales
aleatoriu, spre punctul de optim.
xR3
70
3.2.2
rkT dk
,
dTk 2 f (xk )dk
k =
T
rk+1
2 (f xk )dk
dTk 2 f (xk )dk
71
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
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
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
2 f (x ) = I2 0.
73
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
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
74
=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
75
100
11
20x1 +
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
76
77
1
32
6 2
2 6
1
1 6 2 1
1 4
x =
=
= 81
1
32 2 6
32 4
8
0
x1 = x0 0 f (x0 ) =
4
78
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
gradient:
0.1250
x1 = x0 f (x0 ) =
.
0.0833
xR
79
x2 ]
10 1
1 10
x1
x2
+ [11 11]
x1
x2
+ 11.
f (x1 , x2 ) =
10 1
1 10
= Q 0.
80
xk+1 x = xk
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)
.
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
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
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
82
kx xk2 ,
2
1
ky xk k2 .
2
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
x1 +x2
.
3+x21 +x22 +x1 x2
1
kx x0 k2 .
2
1
ky x0 k2 .
2
84
xR
s
+ q k kx0 x k
1q
Capitolul 4
Metode de ordinul II
4.1
Preliminarii
86
1
f (xk ),
(4.1)
87
4.2
4.2.1
xR
(4.2)
88
|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
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
x21.2
1
0.8
0.6
0.4
0.6
0.8
x1
1.2
1.4
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
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
91
k kT
Hk1 k Tk Hk1
,
kT k
Tk Hk1 k
unde
k = xk xk1 , k = f (xk ) f (xk1 ).
92
4.3
4.3.1
xRn
93
1
(y xk )T 2 f (xk )(y xk ).
2k
1
ky xk k2 .
2k
94
xR2
1 2 5 2
= x1 + x2 + 2x1 x2 + 2x1 + 4x2 .
2
2
(4.3)
95
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 )) =
5 2
,
2 1
x1 = x0 f (x0 )
f (x0 ) =
0
1
2 1
1
.
4
4
3
3
96
xR2
0 2
d
d0 = [ f (x )] f (x ) = 10 = 5 .
d2
0
2
97
(4.4)
2(x2 1)
4x(3 x2 )
2
,
f
(x)
=
.
(x2 + 1)2
(x2 + 1)3
x4 1
.
2x(3 x2 )
15
, d(1) = 0,
4
98
xR2
xRn
n1
X
i=1
|xi+1 xi |,
99
i=1
i=1
1 1 0 0 0
0 1 1 0 0
A = ..
.. .. .. ..
.
. . . .
0
0 0 0 1
i=1
data de:
0
0
.. .
.
1
100
2ii g(u) = p
2
2 + u2i
Directia
2 f (x)dN = f (x),
ce se rezolva n O(n) operatii.
4.4
Probleme propuse
xR2
101
xR
Bk+1 =
k + B
T
B
k
,
2
(y Bs)T s T
(y Bs)sT + s(y Bs)T
ss .
sT s
(sT s)2
i=1
m
X
i=1
log xT Qi x bTi x ci ,
102
n
X
i=1
g(xi yi ) +
n1
X
i=1
(xi+1 xi )2
xRn
p
X
i=1
gi (Ai x bi ))
xR2
(4.5)
Capitolul 5
Probleme de optimizare
constr
ans
a
5.1
Preliminarii
xRn
(5.1)
104
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.
= f (x ) +
m
X
i=1
i gi (x ) +
p
X
i=1
i 2 hi (x )
(5.2)
5.2
5.2.1
105
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
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
xR
s.l.: Ax = b,
Cx d,
5.2.2
107
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
(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
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
109
[x1,x2]=meshgrid(-6:0.1:6,-6:0.1:6);
y=Pinv*xc; const=xc*Pinv*xc;
z=x1.^2*Pinv(1,1)+x2.^2*Pinv(2,2)+2.*x1.*x2*Pinv(1,2)-...
2*(x1*y(1)+x2*y(2))+const;
d=(z<=1); ellipse1=[]; ellipse2=[];
for i=1:size(d,1)
for j=1:size(d,2);
if(d(i,j)==1)
ellipse1=[ellipse1; x1(i,j)];
ellipse2=[ellipse2; x2(i,j)];
end
end
end
figure(1)
hold on
axis([-7 7 -7 7]); scatter(ellipse1,ellipse2,+);
plot(x0(1),x0(2),ro,LineWidth,2);
plot(xE(1),xE(2),r+,LineWidth,2);
legend(Elipsoidul E,x_0,x_E); hold off;
Elipsoidul E
x0
xE
4
6
6
110
cvx_end
111
5.2.3
Metoda Gauss-Newton
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
yR
1
kF (y)k2,
2
(5.4)
112
||F(y )||
k
1.2
1
0.8
0.6
0.4
0.2
0
1
113
5.2.4
xR2
2x1 + x2 3,
(5.5)
min
f=phi_proj(alpha,x,d),
114
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
115
5.3
5.3.1
si
puncte
xR2
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
xR2 ,tR
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
116
s1 + s2 1
kxk1 1 |x1 | + |x2 | 1 |x1 | s1
|x2 | s2
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
xRn
s.l.: Ax = b.
117
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
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,
119
AT + = 0,
,+ ,
e + + = 0
AT + = 0
+ 0, 0.
x1 ,x2
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
Functia duala q(1 , 2 ) = min2 c + AT 1 2 x T1 b ia valori finite
xR
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.
1 R3 ,2 R2
min
n
aR
121
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
n
X
ci i yi = 0,
i=1
n
X
ci i = 0.
i=1
X
1 X
= k
ci i y i k 2 +
i ,
2 i=1
i=1
122
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.
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
123
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
xR
1 T
x x + T (Ax b).
2
q = max q()
:= AA b .
0
2
(5.6)
124
xR
s.l.
n
X
n
X
xi ln xi
i=1
xi = 1,
i=1
x 0,
x1
0 ... 0
0 1 ... 0
x2
2
f (x) = .
..
..
.
.
.
.
0
...
x1n
125
ci ln yi 1 + i + = 0,
P y = 1, y 0,
i
i
i=1
i 0,
y = 0, i = 1, . . . , n.
i i
x1 ,x2 R
126
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 )
=
x L(x , ) =
0 1
0 2
127
x1 + = 0
x2 + = 0
x1 + x2 1 = 0
d M,
128
x1
x2
Fezabilitate
+ x3 0, x1 0,
1 0, 2 0,
Complementaritate
1 (x1 + x2 + x3 ) = 0,
2 x1 = 0.
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
x L(x , ) = 0,
x x 0,
1
2
0,
(x1 + x2 ) = 0.
, x2 = .
2
2
xR
5.4
Probleme propuse
unde
13 12 2
P = 12 17 6 ,
2 6 12
22.0
q = 14.5 ,
13
r = 1.
130
n
P
i=1
xi = 1, xi 0, i = 1, . . . , n}.
xR2
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
xRn
s.l.: Cx = d
xR2
xRn
n
X
log(ci + xi )
i=1
s.l.: x 0,
n
X
i=1
xi = 1,
Capitolul 6
Metode pentru probleme de
optimizare constr
ans
a
6.1
Preliminarii
(6.1)
xRn
6.1.1
Probleme
egalitate
neconvexe
cu
constr
angeri
de
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)
F
(yk )
y
1
F (yk ).
6.1.2
Probleme
egalitate
convexe
cu
constr
angeri
de
xRn
s.l.: Ax = b,
(6.4)
134
Capitolul 6.
A
0
| {z }
{z
}
|
K
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
135
6.1. Preliminarii
m
X
i=1
i gi (x ) + AT = 0
g(x ) 0, Ax = b
i gi (x ) = 0
0.
m
X
i=1
I (gi (x))
s.l.: Ax = b,
xRn
s.l.: Ax = b,
(6.6)
136
Capitolul 6.
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)
(6.7)
si ( ) =
gi (x( ))
m
X
i=1
= 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,
137
6.2
6.2.1
xR2
138
Capitolul 6.
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
6.2.2
xR2
s.l.: Ax = b
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.
10
8
x2 6
4
2
0
0
x1
10
6.2.3
xR2
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)
142
Capitolul 6.
3
2.5
2
1.5
1
0.5
0
0.5
1
1.5
2
x1
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
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)
143
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
0
0
C = ..
.
0
Cz 0 . . . . . . 0
dz
0 0 Cz 0 0
dz
,
d
=
.. .
.. ..
..
.
. 0
. . 0
0 0 . . . 0 Cz
dz
144
Capitolul 6.
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
6.3
6.3.1
145
3x1 2 + 6x1 2
F (y) = L(x, ) = 3x2 + 1 + 4x2 .
3x21 + 2x22 2x1 2
146
Capitolul 6.
3 + 6
0
6x1 2
F
3 + 4
4x2 .
F (y) =
(y) = 0
y
6x1 2 4x2
0
3
3 0 4
F (y0 ) = 1 , iar F (y 0) = 0 1 0
1
4
0 0
(6.10)
(F (y0 ))1
0 0
= 0 1
1
0
4
1
4
0.
3
16
(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
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
(6.11)
148
Capitolul 6.
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
Cu 0
0 Cz
C=0 0
0 0
0 0
dz
du
0 0 0
dz
0 0 0
..
. 0 0 si d = .. .
du
0 Cu 0
dz
0 0 Cz
149
150
Capitolul 6.
+ 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
=dx
Cx
dx
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
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 Q0 = 0.1I2 , R0 = 1.
152
Capitolul 6.
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
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
153
(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
xR2
s.l.: x1 x2 , 0 x2 .
154
Capitolul 6.
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) =
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
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
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.
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
(7.1)
158
t 0,
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,
7.1.1
159
y =
160
1
unde Az = I2 Az ,
2
1
Bu = B
u.
2
161
(7.4)
min8
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
162
min8
xR
X
1 T
x Qx + q T x
log(Ci x di )
2
i=1
(7.5)
s.l. Ax = b,
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
164
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
7.1.2
165
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
z3 5aS3 2gz3
5a4
z4 S 2gz4
166
5a
S
0
Bu =
5(1a )
S
0
5b
S
0
5(1b )
S
s.l.:
z0 = z,
(7.6)
zt+1 = (zt ) + Bu ut t = 0, . . . , N 1.
(7.7)
167
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)
7.2
Problema Google
168
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
169
170
171
e=ones(n,1);
%%%% Dac\u a matricea E nu este stochastica pe coloane,
%%%% se creaza o noua matrice care
%%%% indeplineste aceasta proprietate.
if (norm(sum(E,1).^(-1)-e)>0.0001)
inv=diag(sum(E,1).^(-1));
E=E*inv;
end
I=eye(n); x=5*rand(n,1); x=x/sum(x);
crit_stop=norm(E*x-x);
L=norm(E-I);
while (crit_stop>eps)
%%% Se calculeaza gradientul %%%%
grad=(E-I)*(E-I)*x;
%%% Se calculeaza pasul metodei gradient %%%%
d=x-(1/L)*grad;
%%% Se proiecteaza pe mul\c timea fezabila%%%%
[grad_proj]=quadprog(eye(n),-d,[],[],e,1,zeros(n,1));
x=grad_proj;
%%% Criteriul de oprire %%%%
crit_stop=norm(E*x-x);
end end
0.7
0.6
f(x ) f*
0.5
0.4
0.3
0.2
0.1
0
0
10
15
20
25
Iteratii
172
173
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)
7.3
Clasificarea de imagini
174
(7.11)
175
imagini ce contin variante ale cifrei 7 (ce fac parte din clasa I de obiecte)
si imagini aleatorii complet diferite de cifra 7 (ce fac parte din clasa 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.
176
177
178
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.