Professional Documents
Culture Documents
1 Introducere
Problemele de optimizare,
min f(x)
x2R
s.l. gi(x) 0; i = 1; : : : ; m;
(1)
Ax b = 0;
in care functia obiectiv f si functiile ce de nesc constrangerile de inegalitate gi
sunt convexe se numesc probleme de optimizare convexe. Convexitatea detine
un rol crucial, deoarece problemele cu aceasta proprietate prezinta trasaturi
teoretice \foarte bune" (e.g., punctele de minim locale sunt, de asemenea, puncte
de minim globale); si ceea ce este mai important, pot rezolvate numeric in mod e
cient, ceea ce nu este valabil pentru problemele neconvexe.
1.1
Multimi convexe
X2
2
1
x
3
1.2
Functii convexe
n
)x2)
f(x1) + (1
2
)f(x2);
f(x)+(1 ) f(y))
f( x+(1 )y)
0.6
0.4
0.2
0.2
0.4
0.6
0.8
ixi)if(xi)
f(
i=1
=1
Xi
X
pentru orice xi 2 domf and i 2 [0; 1]; i i = 1.
P
Interpretarea geometrica a
convexa, e doua puncte din domeniul sau x; y 2 domf, atunci valorile func-tiei
evaluate in punctele din intervalul [x; y] sunt mai mici decat cele a ate pe
segmentul cu capetele (x; f(x)) si (y; f(y)).
convexi tatii es te foarte si mpla. Pentr u o functie
R !R
[ 0:5 1]x, Trasati gra cul functiei in Matlab.
; f(x) =
1
2
xT
2 1 x+
1 0:5
z=x.^2+0.25*(y.^2)-x.*y-0.5*x+y;
surf(x,y,z,gradient(z))
end
250
200
150
100
50
0
10
5
50
10
0
5
10
10
Pachet CVX
s.t. Cx = d
kxk1 1:
Urmatoarea secventa de cod genereaza si rezolva o instanta aleatoare a
aces-tui 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.1
Instalare
2.2
Preliminarii
2.3
Elemente de baza
Variabilele CVX se declara folosind comanda variable si speci carea dimensiunii variabilei, inainte de a se utiliza in constrangeri sau in expresia functiei
obiectiv. Sintaxa declararii are urmatoarea forma:
variable x(10)
variable Y(20,10)
variable Z(5,5,5)
Sunt disponibile o varietate de optiuni aditionale pentru precizarea structurii
matriceale, in cazul in care variabila de decizie este de tip matrice,e.g.
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 e convexa cand folosim
minimize si concava cand folosim maximize.
Constrangerile suportate de modelele CVX sunt cele de egalitate (liniare)
impuse prin operatorul ==, inegalitate impuse de prin operatorii <= si prin operatorul >=. Pentru constrangeri de tip box (lant de inegalitati) este disponibila
sintaxa l<=x<=u.
Exemplu 3. Determinati bila de raza maxima (i.e. centrul si raza) din spatiul
Euclidian bidimensional, ce poate inscrisa intr-un poliedru descris de inegalitati liniare.
T
Rezolvare. In cazul general, ind dat setul de inegalitati liniare a i x bi, formularea problemei in termeni de optimizare este data de:
max
x2R ;r2R
s.t. a i x + rkaik2
bi; 8i = 1; : : : ; n;
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
unde H este functia raspunsului in frecventa, iar variabila de decizie are rolul
raspunsului la impuls.
O aproximare abordabila a problemei de mai sus presupune extragerea
unui set nit m de frecvente !i; i = 1; : : : ; m, si rezolvarea problemei,i.e.
min
!
max H(!
[0; ] 1 i
)
i
mj
(! ) ;
d
ij
n = 20;
m = 15*n;
w = linspace(0,pi,m)'; % omega
7
%******************************************************************** % Construim un
raspuns in frecventa dorit
%********************************************************************
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);
%*********************************************************************
% Rezolvam problema minimax de proiectare a filtrului
%*********************************************************************
% A reprezinta matricea folosita la calculul raspunsului in frecventa
% A(w,:) = [1 exp(-j*w) exp(-j*2*w) ... exp(-j*n*w)]
A = exp( -j*kron(w,[0:n-1]) );
% formularea optimala a filtrului Chebyshev
cvx_begin
variable h(n,1)
minimize( max( abs( A*h - Hdes ) ) )
cvx_end
% verificam daca problema a fost rezolvata cu succes
disp(['Problem is ' cvx_status])
if ~strfind(cvx_status,'Solved') h = [];
end
%*********************************************************************
% Generam figurile aferente filtrului
%*********************************************************************
% figura raspunsului la impuls pentru filtrul FIR
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])
8
legend('optimizat','dorit','Location','SouthEast') % faza
subplot(2,1,2)
plot(w,angle(H)) axis([0,pi,-pi,pi])
xlabel('w'), ylabel('faza H(w)')
Exercitii rezolvate
1. Fie multimea S descrisa de
n
S = fx 2 R : a i x bi; c j x = dj ; i = 1; : : : ; m; j = 1; : : : ; pg =
n
fx 2 R : Ax b; Cx = dg:
Aratati ca multimea este convexa.
Rezolvare. Se arata ca pentru orice x1; x2 2 S si 2 [0; 1] rezulta x1 + (1
)x2 2 S.
Daca x1; x2 2 S atunci avem
Ax
1
(
b; Cx1 = d
b;
Ax2
Cx2
= d:
)Ax2
b + (1
)Cx2 = d + (1
)b = b
)d = d:
S1 = fx 2 R : x 0; xi = 1g
i=1
= fx 2 R : x 0; xi = 1g
i=1
S1 = fx 2 R : max jxij 1g
1 i n
= fx 2 R : jxij 1; 8i = 1; : : : ; ng
n
n
= fx 2 R : 1 xi 1; 8i = 1; : : : ; ng = fx 2 R
: xi 1; xi 1; 8i = 1; : : : ; ng
1
In
.3
n
= fx 2 R :
In x
2 .. g;
617
45
unde In reprezinta matricea identitate de ordin n.
3. Fie multimile
x
n+1
Ln = fy 2 R : hx; yi 0; 8x 2 Ln:
Problema se reduce la a demonstra ca Ln = Ln. Ceea ce este
n n
n n
10
x
t1
2 Ln avem:
T
hx; yi = y1 x1 + vt 0:
Stiind ca x 2 Ln atunci kxk t. Ramane sa demonstram ca kyk v.
(2)
Din ipoteza ca (2) are loc pentru orice vector x 2 Ln, atunci inegalitatea
x1
t
y1
k yk
ky1k + v = ky1k + v 0;
din care rezulta prima incluziune.
y1 x1 + vt > ky1kkx1k + vt
x
t1
2 Ln .
Din
vt + vt = 0;
deci Y 2 S+ .
Pentru a doua incluziune, presupunem Y; X matrici pozitiv semide nite.
Remarcam urmatoarea relatie:
Tr(Y X) = Tr(Y V
V ) = Tr(V Y V
) 0;
(3)
Y 2 S+
; domf = R
m n
(0; 1):
n
; domf = R :
domeniul R
2x
2x x
t2
[u v ]
f(x)
T T
= [u v ]
2xv
t T xv
2x
tT
x u
2
T
=t u u
=
2 t2
+T
2u xv 2x uv 2x xv
2 T
T
T 2
3 t u u 2tu xv + x xv
= t 3 ktu xvk :
Tinand cont de domeniul de de nitie al functiei, remarcam ca pentru orice
u
vector
)x2)
= kA ( x1 + (1
)x2) bk
)f(x2):
(e) Fie functia f(X) = log det X; X 2 S++ : Aratam convexitatea lui f prin
intermediul reducerii domeniului acesteia la o dreapta.
Mai exact, folosim urmatoarea proprietatea a functiilor convexe, pe care
o enuntam pentru cazul scalar (cu toate ca aceasta se pastreaza si in
12
= log det X
1=2
= log det X
In + tX
1=2
det In + tX
DX
1=2
1=2
1=2
DX
DX
1=2
1=2
1=2
1=2
det X
1=2
DX
1=2
:
n
= log det X
unde A 2 R
=1
(1 + t i)
iY
log(1 + t i):
Xi
Mai departe, observam ca functia h(u) = log(1 + tu) din componenta celei
de mai sus, este convexa, deoarece cea de-a doua derivata satisface
00
(u) =
(1 + t i)
0; 8u 2 R:
2
max x A Ax
x2R
s.l. kxk2
m n
si kxk2
= si=1 xi 2.
1;
P
13
n n
, functia Tr(Q)
Rezolvare. Reamintim ca pentru orice Q
2 R si x 2 R
T
T
satisface relatia: Tr(x
Qx) = Tr(Qxx ). Pe baza acestei relatii, problema
de mai sus se scrie sub urmatoare forma echivalenta:
max
X2R
Tr A AX
n n
max Tr A AX
X2R
n n
s.l. Tr(X) = 1:
Exercitii propuse
1. Precizati care dintre urmatoarele functii este convexa, concava sau
niciuna dintre variante. Argumentati.
2
8x1 + 3x2;
3x 2
1)?
4. Fie functiile convexe f1; : : : ; fm : R ! R. Aratati ca urmatoarele compuneri ale acestora sunt convexe:
(a) g(x) =
Pm
i=1
ifi(x); i > 0;
K = fx 2 R : x 0g:
(a) Aratati ca multimea K este un con.
(b) Sa se determine conul dual.
r
0 si x[n] reprezinta a n -
1=n
n
cu domeniul R++ ;
i=1 xi
Q
2
(d) f(x; t) = log(t
++
x x) cu domeniul f(x; t) 2 R
R : kxk2
tg.
8. Aratati ca functia:
1
f(x) =
1
x1
1
x2
x4
0; i = 1; : : : ; k si
i=1
f( 1x1 + + nxn)
1f(x1) + + nf(xn):
0;
11. Aratati maximum-ul unei functii convexe peste poliedrul P = conv fv1; : : : ;
vkg este atins intr-unul dintre varfurile poliedrului, i.e.,
sup f(x) = max f(vi):
i=1;:::;k
x2P
f( x)
>0
(a) Aratati ca functia g este omogena, i.e. g(tx) = tg(x) pentru orice t 0.
(b) Aratati ca daca o functie h este omogena si h(x) f(x) pentru orice x,
atunci avem h(x) g(x) pentru orice x.
15
Qp = fx 2 R : kAxkp 1g ; p = 1; 2; 1;
unde matricea A este inversabila.
n
f( x + (1
)y)
f(x) + (1
)f(y)
(1
) x
y :
kp
k
2
(ii) Conditii ordin 1 : functia f este diferentiabila si satisface
urmatoarea inegalitate pentru orice x; y 2 R
n
2
r f(x)
n
unde kxkp =
ordin n.
Aratati ca:
i=1
In;
xp
i
16
hrf(x) rf(y); x yi kx yk 2:
1
(c) Functia g(x) = 2 kxk 2 este 1-tare convexa in raport cu norma k k2.
1
2
(d) Functia g(x) = 2 kxk p este (p 1)-tare convexa in raport cu norma
k kp, pentru p > 1.
n
P
i=1
1g.
2
kxk :
daca y = 0; t = 0
:
; daca t > 0:
ky2kt
n n
and u; v 2 R we have
ju vj u Quv Q v:
18. Fie matricile E; H and F de dimensiuni compatibile si F
ca pentru orice > 0, avem
T
EFH + H F
EE +
T
F I. Aratati
H H:
T
FH) ( E
FH) 0:
M=
BT
(b) A 0; (I AA )B = 0; C B A B 0;
y
(c) C 0; (I CC )B = 0; A B C B 0;
y
(b) A 0; C B A B 0;
T
(c) C 0; A B C B 0:
Evidentiem, mai departe, un exemplu de aplicatie al acestui rezultat. Fie
n
f(x; Y ) = x Y
x:
min f(x) = x1 + x2
x2R
x1
g(x) =
1+
x22
2
h(x)
= (x1 + x2) = 0:
0 sa
1+x2
fx 2 R : h(x) = 0g fx 2 R : x1 + x2 = 0g;
rezultand o functie liniara in x.
In nal, putem rescrie problema sub forma unui QP:
2
min x1 + x2
x2R
x1
0
x1 + x2 = 0:
18
min max a x + bi
n
x2R 1 i m
Ax 0 x
0
max a i x + bi t
1 i m
Ax 0
x 0:
max ai M; j = 1; : : : ; n:
1 i n
a i x + bi t; i = 1; : : : ; m
Ax 0
x 0:
x
Daca folosim notatiile y =
standard:
,c=
si di = 1 obtinem o forma LP
min c y
y2Rn+1
d i y + bi 0; i = 1; : : : ; m
Ax 0
x 0:
19
:= c x + d
min f(x)
x2R
eT x + f
Gx h
Ax = b;
cu domf(x) =
x 2 R : e x + f > 0 . Aratati
ca aceasta problema
u(x)
c x+d
f(x) =
2R
u(x)
si z(x) =
1
u(x)
2 R.
+d
=c
u(x)
x
u(x)
= c y(x) + dz(x)
u(x)
.
Folosind schimbarea de variabila, putem aduce problema de minimizare
dupa x la una ce presupune minimizarea dupa y(x) si z(x).
Pentru a
schimba variabila constrangerilor, impartim prin u ultimile doua seturi de
egalitati/inegalitati. Astfel, obtinem:
T
min c y + dz
n
y2R ;z2R
e y + fz = 1
Gy hz
Ay = bz:
a 1 a2
1 2
:::x
an
(4)
gi(x) 1; i = 1 : m
hi(x) = 1; i = 1 : p:
(5)
(6)
f(x
cx
n
i
8
>
a1 a2
x
1 2
cix 1 x
>
<
d1
ex
>
an
n
b i
d2
x2
1 i=1:m
: : : xnn
>
:::x
: : : xn
dn
= 1 j = 1 : p;
:
compunand functia obiectiv si constrangerile cu functia logaritm,
obtinem o problema cu acelasi punct de optim:
min log(cxa1 x a2
x2R
8
>
>
log(cix
>
b1 b2
2
log(ej x1
<
>
x2
:::x
an
ni
: : : xn n )
0 i=1:m
: : : xn
dn
)
=0
j = 1 : p:
:
Folosind schimbarea de variabila log xi = yi, observam reformularea
func-tiilor monomiale:
a
f(x) = log(cx 1 : : : x n )
n
= log c +
X=1
ai log xi
= log c +
=1
aiyi:
21