Sunteți pe pagina 1din 22

Laborator/Seminar 7

Aplicatii
1 Introducere
In acest laborator prezentam o serie de aplicatii reale ale metodelor si claselor
de probleme de optimizare descrise in materialul anterior.
In sectiunile ce urmeaza enumeram probleme reale din diferite domenii ale in-
gineriei, modelele matematice ale acestora si in nal, selectam si aplicam ecarui
caz o metoda adecvata rezolvarii problemei respective.
2 Control Optimal
Teoria optimizarii se aa in stransa legatura cu teoria sistemelor si controlu-
lui, ambele domenii vizand convergenta traiectoriei\variabilelor de decizie 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 in plus, realizarea celor doua obiective
mentinand la minim un anumit criteriu si satisfacand constrangeri zice de
fezabilitate. De exemplu, daca urmarim reglarea si mentinerea nivelului de
lichid dintr-o instalatie cu 4 rezervoare, 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 in calcul si limitele componentelor
zice.
In general, e sistemul liniar discret:
z
t+1
= A
z
z
t
+ B
u
u
t
, (1)
unde z
t
R
n
z
reprezinta vectorul starilor sistemului la momentul t, iar u
t
R
n
u
reprezinta vectorul intrarilor aplicate sistemului la momentul t.
Asa cum am precizat anterior, in general se doreste minimizarea unui cri-
teriu (e.g. combustibil, energie, lucru mecanic etc.) o data cu stabilizarea sis-
temului. Cunoscand starea initiala z
0
, denumim Problema de Control Optimal
urmatoarea problema de optimizare constransa:
min
z
t
,u
t
1
2
N

t=1
z
T
t
Q
t
z
t
+
1
2
N1

t=0
u
T
t
R
t
u
t
s.l. z
t+1
= Az
t
+ Bu
t
, t = 0, . . . , N 1, (2)
l u
t
v, t = 0, . . . , N 1,
1
unde z
t
R
n
z
, u
t
R
n
u
,, matricile Q
t
, R
t
sunt simetrice pozitiv denite, iar
l, v R
m
. Parametrul N se numeste orizont de predictie si observam ca pentru
un orizont de predictie mai mare, avem mai multe grade de libertate pentru a
conduce sistemul (sirul starilor) pe o traiectorie dorita.
Pe scurt, Problema de Control Optimal presupune determinarea unui sir de
intrari (u
t
)
0tN
care aplicate sistemului (1), vor conduce starea (z
t
)
0tN
pe
o traiectorie dorita.
Se observa usor ca Problema de Control Optimal se poate reformula ca o
problema patratica standard (vezi Laboratorul 6) si de asemenea, se rezolva cu
metode concepute pentru aceasta clasa de probleme (e.g. Metoda de Gradient
Proiectat, Metoda Newton Proiectat, Metoda Bariera, etc.).
2.1 Control Optimal aplicat unui robot E-Puck
O aplicatie des intalnita, simpla si favorabila pentru testele algoritimilor de op-
timizare si control este robotul E-Puck (vezi Fig. 2.1); acest sistem robotic
reprezinta un ansamblu mobil ce suporta implementarea numerica si experi-
mentarea cu algoritmi de optimizare de complexitate relativ ridicata. Robotul
E-Puck dispune de dispozitiv de comunicatie Bluetooth (folosit in simularea
sistemelor de tip retea), microcontroller, senzori infrarosu, camera video (rez.
640 480), senzor ultrasunete etc.
Un exemplu de test simplu si ecient al unei metode de optimizare cunoscute
este Problema Rendez-Vous: pentru o repartizare initiala a unui colectiv de
roboti pe o suprafata plana, sa se determine traiectoria optima a ecarui robot
pana la un punct comun de intalnire. Aceasta problema se formuleaza usor in
termeni de optimizare, si poate denita ca un suport de test pentru diferiti
algoritmi.
Figure 1: Robot e-Puck.
Chiar si pentru cele mai simple probleme ce implica sisteme multi-robot,
modelul matematic al unui robot este crucial in proiectarea de algoritmi nu-
merici. Modelul E-Puck restrictionat doar la deplasarea inainte este neliniar,
denit de urmatoarele ecuatii:
y =
r

1
2
+
r

2
2

=
r

1
2l

r

2
2l
,
2
unde y reprezinta pozitia, unghiul de viraj, r raza rotilor, iar
1
si
2
reprezinta
unghiul primei roti si respectiv, celei de-a doua roti.
Pentru a respecta consistenta notatiilor, notam starea sistemului cu z =
_
y

_
si u =
_

2
_
. Mai departe, rescrierea modelului de mai sus va avea urmatoarea
forma:
z = A
z
z + B
u
u,
unde A
z
= 0 si B
u
=
_
r
2
r
2
r
2l

r
2l
_
Pentru a putea sa efectuam experimente numerice, avem nevoie de dis-
cretizarea sistemului liniar continuu de mai sus. Una dintre metodele cele mai
vechi si mai simple este Metoda Euler de discretizare, ce presupune aproximarea
derivatei unei functii diferentiabile f(t) cu urmatoarea expresie:
df
dt

f(t + t) f(t)
t
,
unde intervalul t se determina in functie de viteza de evolutie a procesului.
Alegand t = 0.5 secunde, obtinem aproximarea discreta data de urma-
toarea recurenta:
z
t+1
=
_
I
2

1
2
A
z
_
z
t
+
1
2
B
u
u
t
,
unde I
2
este matricea identitate de ordin 2.
Un exemplu simplu de Problema de Control Optimal poate denit de
urmarirea unei traiectorii sinusoidale pe o suprafata plana de catre robotul E-
Puck. In acest caz, observam existenta unei z
ref
= (y
ref
,
ref
)
T
ce se doreste a
urmarita si este denita la momentul k de z
ref
= (d, sin y
k
).
Alegand orizontul de predictie N = 2, Problema de Control Optimal ce
rezulta din urmarirea traiectoriei sinusoidale, se poate enunta astfel:
min
z
t
,u
t
1
2
_
z
T
1
Q
1
z
1
+ z
T
2
Q
2
z
2
_
+
1
2
_
u
T
0
R
0
u
0
+ u
T
1
R
1
u
1
_
s.l. z
1
=

A
z
z
0
+
1
2
B
u
u
0
z
2
=

A
z
z
1
+
1
2
B
u
u
1
,
v
min
u
0
v
max
v
min
u
1
v
max
,
unde

A
z
= I
2
.
Intentionam aplicarea Metodei Bariera pe modelul de mai sus rescriind com-
pact problema:
min
x
1
2
x
T
Hx
s.l. Ax = b (3)
Cx d,
3
unde
x =
_

_
z
1
z
2
u
0
u
1
_

_
, H =
_

_
Q
1
0 0 0
0 Q
2
0 0
0 0 R
0
0
0 0 0 R
1
_

_
, A =
_
I
2
0
1
2
B
u
0

A
z
I
2
0
1
2
B
u
_
,
b =
_

A
z
z
0
0
_
, C =
_

_
0 0 I
2
0
0 0 I
2
0
0 0 0 I
2
0 0 0 I
2
_

_
, d =
_

_
v
max
v
min
v
max
v
min
_

_
.
Exercitiu 1. Rezolvati problema (3) cu Metoda Bariera.
Proof. Reamintim ca primul pas din Metoda Bariera presupune transformarea
echivalenta a problemei (3) intr-una fara inegalitati:
min
x
1
2
x
T
Hx
1
t
8

i=1
log(F
i
x g
i
) (4)
s.l. Cx = d,
unde F
i
reprezinta linia i a matricii F.
Apoi, aplicam algoritmul propriu-zis:
1. Se dau un punct initial x = x
0
strict fezabil, t = t
0
> 0, > 1, toleranta
> 0 si parametrul m numarul de inegalitati.
2. Cat timp m/t repeta:
(a) Calculeaza x

(t) ca solutie a problemei (4).


(b) Actualizeaza x = x

(t).
(c) Actualizeaza t = t,
Functia Matlab de mai jos rezolva problema (3) cu ajutorul Metodei Bariera:
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=[];
A=[-eye(4);eye(4)];
b=[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)))];
4
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)
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(-A*u+b))
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
2.2 Control Optimal aplicat unei instalatii cu 4 rezervoare
In aceasta subsectiune, consideram o instalatie cu 4 rezervoare interconectate
prezentata in Fig. 5, dispusa cu 2 pompe de propulsie a apei. Modelul matem-
atic corespunzator instalatiei este neliniar, dat de urmatoarele ecuatii diferen-
5
20 40 60 80 100
Numar iteratii

Pozitia z
Referinta
Figure 2: Traiectoria robotului stabilita de solutie Problemei de Control Opti-
mal.
tiale:
dh
1
dt
=
a
1
S
_
2gh
1
+
a
4
S
_
2gh
4
+

a
S
q
a
,
dh
2
dt
=
a
2
S
_
2gh
2
+
a
3
S
_
2gh
3
+

b
S
q
b
,
dh
3
dt
=
a
3
S
_
2gh
3
+
(1
a
)
S
q
a
,
dh
4
dt
=
a
4
S
_
2gh
4
+
(1
b
)
S
q
b
,
unde functiile h
1
, h
2
, h
3
, h
4
reprezinta dinamicile nivelelor lichidului in rezer-
voare, cu rolul de stari ale sistemului, iar q
a
, q
b
reprezinta debitele de intrare,
cu rolul de comenzi (intrari). Pentru consistenta cu sectiunea anterioara, vom
renota nivelul h
i
cu z
i
pentru i = 1, . . . , 4, iar debitele (q
a
, q
b
) cu (u
1
, u
2
).
Figure 3: Structura instalatiei 4-tank.
Pentru discretizare, utilizam Metoda Euler pentru care putem alege t = 5
6
secunde, deoarece procesul 4-tank este unul lent. De aici rezulta urmatorul
model discret al procesului:
z
1
t+1
= z
1
t

5a
1
S
_
2gz
1
t
+
5a
4
S
_
2gz
4
t
+
5
a
S
u
1
t
,
z
2
t+1
= z
2
t

5a
2
S
_
2gz
2
t
+
5a
3
S
_
2gz
3
t
+
5
b
S
u
2
t
,
z
3
t+1
= z
3
t

5a
3
S
_
2gz
3
t
+
5(1
a
)
S
u
1
t
,
z
4
t+1
= z
4
t

5a
4
S
_
2gz
4
t
+
5(1
b
)
S
u
2
t
.
Pentru o prezentare simplicata, mai departe rescriem compact sistemul de mai
sus prin intermediul urmatoarei notatii: z
t+1
= (z
t
) + B
u
u
t
, unde
: R
4
R
4
, (x) =
_

_
x
1

5a
1
S

2gx
1
+
5a
4
S

2gx
4
x
2

5a
2
S

2gx
2
+
5a
3
S

2gx
3
x
3

5a
3
S

2gx
3
x
4

5a
4
S

2gx
4
_

_
B
u
=
_

_
5
a
S
0
0
5
b
S
5(1
a
)
S
0
0
5(1
b
)
S
_

_
.
Valorile parametrilor din cadrul modelului se pot identica experimental prin
diferite tehnici. Valorile aproximative identicate in laborator sunt prezentate
in tabelul 1.
Parametri S a
1
a
2
a
3
a
4

0
a

0
b
Valori 0.02 5.8e5 6.2e5 2e5 3.6e5 0.58 0.54
Unitate m
2
m
2
m
2
m
2
m
2
Table 1: Parametrii procesului cu 4 rezervoare.
In directia formularii unei Probleme de Control Optimal pentru modelul
neliniar al instalatiei, consideram orizontul de predictie N = 2 si obtinem o
problema de optimizare asemanatoare cu problema (2), cu diferenta ca avem
constrangeri neliniare de egalitate:
min
z
t
,u
t
1
2
_
z
T
1
Q
1
z
1
+ z
T
2
Q
2
z
2
_
+
1
2
_
u
T
0
R
0
u
0
+ u
T
1
R
1
u
1
_
s.l. z
1
= (z
0
) + B
u
u
0
z
2
= (z
1
) + B
u
u
1
,
unde z
t
R
4
, u
t
R
2
. Structura constrangerilor limiteaza clasa de metode ce
rezolva acest tip de problema. O alegere clasica este Metoda Newton-Lagrange
pentru constrangeri neliniare de egalitate. Observam ca functia obiectiv din
Problema de Control Optimal se poate aduce la forma patrica rezultad:
min
x
1
2
x
T
Hx (5)
s.l. h(x) = 0,
7
unde am folosit urmatoarele notatii:
x =
_

_
z
1
z
2
u
0
u
1
_

_
, H =
_

_
Q
1
0 0 0
0 Q
2
0 0
0 0 R
0
0
0 0 0 R
1
_

_
,
h : R
12
R
8
, h(x) =
_
(z
0
) z
1
+ B
u
u
0
(z
1
) z
2
+ B
u
u
1
_
.
Exercitiu 2. Rezolvati problema (5) cu metoda Newton-Lagrange.
Proof. Reamintim ca Metoda Newton-Lagrange presupune rezolvarea sistemului
de ecuatii:
Hx +h(x)
T
= 0 (6)
h(x) = 0,
cu Metoda Newton clasica de rezolvare a sistemelor neliniare.
Fie sistemul de ecuatii neliniare F(x) = 0, Metoda Newton presupune
liniarizarea acestuia in punctul curent x
k
si rezolvarea sistemului liniar rezultat,
i.e.
F(x
k
) +F(x
k
)(y x
k
) = 0.
Functia Matlab de mai jos rezolva sistemul (6) cu ajutorul Metodei Newton-
Lagrange:
function []=tank_Newton(Q,R,eps)
%%% Verificam daca matricile introduse ca argument au
%%% dimensiuni compatibile
[m n]=size(Q);
if ((m~=4)||(n~=4))
error(Dimensiunile matricii Q sunt incompatibile!);
end
[m n]=size(R);
if ((m~=2)||(n~=2))
error(Dimensiunile matricii Q sunt incompatibile!);
end
%%% Verificam daca matricile introduse ca argument sunt
%%% pozitiv definite
if (min(eig(Q))<=0)
error(Matricea Q nu este pozitiv definita!);
end
if (min(eig(R))<=0)
error(Matricea R nu este pozitiv definita!);
end
%%% Compunem matricea H si initializam parametrii
8
H=blkdiag(Q,Q,R,R);
x0=randn(4,1);
x=randn(12,1);
miu=randn(8,1);
S=0.02;
a1=5.8*10^(-5);
a2=6.2*10^(-5);
a3=2*10^(-5);
a4=3.6*10^(-5);
g=9.8;
gamma_a=0.58;
gamma_b=0.54;
alfa1=(5*a1*g)/(S*sqrt(2*g));
alfa2=(5*a2*g)/(S*sqrt(2*g));
alfa3=(5*a3*g)/(S*sqrt(2*g));
alfa4=(5*a4*g)/(S*sqrt(2*g));
B=[(5*gamma_a)/S 0;0 (5*gamma_b)/S;5*(1-gamma_a)/S 0;...
0 5*(1-gamma_b)/S];
[f h Jacob_f Jacob_h]=aux(x,x0);
%%%% Consideram criteriul de oprire egal
%%%% cu norma sistemului de rezolvat
crit_stop=norm([H*x+Jacob_h*miu; h]);
while(crit_stop>eps)
[f h Jacob_f Jacob_h]=aux(x,x0);
Hess_Lagrangian=H;
Hess_Lagrangian(1:4,1:4)=Hess_Lagrangian(1:4,1:4)+diag([miu(5)*alfa1/sqrt(x(1)^3),...
miu(6)*alfa2/sqrt(x(2)^3),...
(miu(7)-miu(6))*alfa3/sqrt(x(3)^3)...
(miu(8)-miu(5))*alfa4/sqrt(x(4)^3)]);
A=[Hess_Lagrangian Jacob_h;Jacob_h zeros(8)];
b=[-H*x; h];
y=A\b;
x=x+y(1:12);
miu=y(13:20);
crit_stop=norm([H*x+Jacob_h*miu; h])
end
In implementare am folosit functia aux unde am colectat functiile auxiliare
ale metodei:
function [f h Jacob_f Jacob_h]=aux(x,x0)
a1=5.8*10^(-5);
a2=6.2*10^(-5);
a3=2*10^(-5);
a4=3.6*10^(-5);
9
g=9.8;
S=0.02;
gamma_a=0.58;
gamma_b=0.54;
alfa1=(5*a1*g)/(S*sqrt(2*g));
alfa2=(5*a2*g)/(S*sqrt(2*g));
alfa3=(5*a3*g)/(S*sqrt(2*g));
alfa4=(5*a4*g)/(S*sqrt(2*g));
B=[(5*gamma_a)/S 0;0 (5*gamma_b)/S;5*(1-gamma_a)/S 0;...
0 5*(1-gamma_b)/S];
f0=[x0(1)-((5*a1*sqrt(2*g*x0(1)))/S)+((5*a4*sqrt(2*g*x0(4)))/S);...
x0(2)-((5*a2*sqrt(2*g*x0(2)))/S)+((5*a3*sqrt(2*g*x0(3)))/S);...
x0(3)-((5*a3*sqrt(2*g*x0(3)))/S);...
x0(4)-((5*a4*sqrt(2*g*x0(4)))/S)];
f=[x(1)-((5*a1*sqrt(2*g*x(1)))/S)+((5*a4*sqrt(2*g*x(4)))/S);...
x(2)-((5*a2*sqrt(2*g*x(2)))/S)+((5*a3*sqrt(2*g*x(3)))/S);...
x(3)-((5*a3*sqrt(2*g*x(3)))/S);...
x(4)-((5*a4*sqrt(2*g*x(4)))/S)];
h=[f0-x(1:4)+B*x(9:10);f-x(5:8)+B*x(11:12)];
Jacob_f= [1-((5*a1*g)/(S*sqrt(2*g*x(1)))) 0 0 ((5*a4*g)/(S*sqrt(2*g*x(4))));...
0 1-((5*a2*g)/(S*sqrt(2*g*x(2)))) 0 ((5*a3*g)/(S*sqrt(2*g*x(3))));...
0 0 1-((5*a3*g)/(S*sqrt(2*g*x(3)))) 0 ;...
0 0 0 1-((5*a4*g)/(S*sqrt(2*g*x(4))))];
Jacob_h= [-eye(4) zeros(4) B zeros(4,2);...
Jacob_f -eye(4) zeros(4,2) B];
end
3 Problema valorilor proprii
Proprietatile oricarei matrici patratice sunt denite fundamental de spectrul
acesteia (setul de valori proprii). Complexitatea calcularii spectrului a ridicat
probleme pe termen lung in domeniul algebrei liniare. Majoritatea algoritmilor
ce trateaza problema calcularii spectrului unei matrici patratice sunt metode
iterative (e.g. Algoritmul QR). Insa, in anumite cazuri, experimentele numerice
indica o ecienta vizibil mai ridicata a abordarii prin intermediul problemelor
de optimizare.
O tehnica des folosita pentru calcularea intregului spectru a unei matrici si-
metrice presupune calcularea valorii proprii maxime, reducerea spectrului prin
operatia de deatie si apoi, reiterarea intregului proces pana la eliminarea tu-
turor valorilor proprii. Problema calcularii valorii proprii maxime a unei matrici
simetrice A R
nn
, se poate formula prin urmatoarea problema neconvexa si
neconstransa:
max
xR
n
,x=0
x
T
Ax
x
T
x
. (7)
10
500 1000 1500 1800
time(seconds)

h1
sh1
h4
sh4
500 1000 1500 1800
time(seconds)

h2
sh2
h3
sh3
Figure 4: Curba nivelului de apa din rezervoare.
Ilustram, in continuare, utilitatea algoritmilor ecienti in problemele valo-
rilor proprii si observam din nou conexiunea teoriei sistemelor cu cea a opti-
mizarii. Fie clasa particulara de sisteme liniare discrete (1) denita de sistemele
liniare pozitive. Pentru a sprijini denitia sistemelor liniare pozitive, introducem
notiunea de matrice nenegativa.
Denitie 1. O matrice A R
nn
se numeste nenegativa, daca pentru orice
x R
n
ce satisface x 0 avem ca Ax 0.
Pe baza acestei denitii putem introduce notiunea de sistem pozitiv.
Denitie 2. Un sistem liniar discret, se numeste pozitiv, daca matricea de stare
A din denitia (1) este matrice nenegativa.
Principalele aplicatii ale controlului sistemelor pozitive se regasesc in urma-
toarele domenii: economie, biologie, probabilistica, retelistica (modele ce includ
protocolul TCP), controlul tracului, probleme de sincronizare si control in retele
wireless, etc.
Analiza stabilitatii sistemelor pozitive liniare se verica prin calcularea valo-
rilor proprii extreme corespunzatoare spectrului matricii de stare. Observam ca
functia obiectiv din cadrul problemei (7) este neconvexa, iar punctele stationare
(vectori ce satisfac conditiile de ordin I) sunt date de vectorii proprii ai matricii
A. Presupunand ca matricea A are n vectori proprii distincti, orice metoda
de ordin I sau II va converge la unul dintre acesti vectori proprii. Din acest
motiv, apar dicultati in a garanta ca metoda aleasa de noi converge la vectorul
propriu maximal al matricii A. Insa, se pot observa proprietati exceptionale
ale matricilor nenegative in legatura cu vectorul propriu maximal. Din gen-
eralizarea teoremei Perron-Frobenius se poate deduce usor ca vectorul propriu
maximal al unei matrici nenegative este singurul din setul de vectori proprii ce
11
are componente nenegative. In concluzie, daca adaugam un set de constrangeri
x 0 problemei (7), putem garanta ca pana si metodele de ordin I pot converge
la punctul de maxim global (vectorul propriu maximal).
Deoarece subspatiul invariant denit de vectorii proprii ai unei matrici este
liniar, pentru a garanta o solutie nita a problemei (7) rezolvam urmatoarea
problema de optimizare neconvexa si constransa:
max
xR
n
x
T
Ax
x
T
x
(8)
s.l. e
T
x = 1, x 0.
Punctul de optim (global) al acestei probleme reprezinta vectorul propriu core-
spunzator valorii proprii maxime a matricii A, iar valoarea optima este data de
valoarea proprie maxima a matricii A.
Exercitiu 3. Fie scalarul > 0, aplicati metoda gradient proiectat pe versiunea
modicata a modelului (8):
max
xR
n
x
T
Ax
x
T
x
+ (e
T
x 1)
2
(9)
s.l. x 0.
Remarca 1. Diferenta dintre problemele (8) si (9) este penalizarea constrangerii
de egalitate cu parametrul . Aceeasi tehnica a fost folosita si in Exercitiul 5.
Rezolvare. Deoarece multimea fezabila a problemei (8) este simpla, proiectia
pe aceasta multime se poate obtine analitic. Mai exact, e un vector x R
n
,
proiectia pe multimea vectorilor cu elemente nenegative Q = {y R
n
: y 0}
este data de:
P
Q
(x) = [max{0, x
1
} . . . max{0, x
n
}]
T
.
Pentru a aplica forma standard metoda gradient proiectat, aducem modelul
(8) la forma unei probleme de minimizare observand urmatoarea echivalenta:
max
xR
n
,x=0
x
T
Ax
x
T
x
min
xR
n
,x=0
x
T
x
x
T
Ax
.
Mai departe, pentru un > 0 sucient de mare, obtinem urmatoarea serie de
echivalente:
_
max
xR
n
x
T
Ax
x
T
x
e
T
x = 1, x 0

_
min
xR
n
x
T
x
x
T
Ax
e
T
x = 1, x 0.

_
min
xR
n
x
T
x
x
T
Ax
+ (e
T
x 1)
2
x 0.
(10)
Prezentam secventa de cod ce implementeaza metoda gradient aplicata ul-
timei formulari din seria de echivalente (10):
function [x]=gp_eigen(A,gamma,eps)
[m n]=size(A);
if (m~=n)
error(Matricea nu este patratica!);
end
if (length(A(A<0))>0)
12
error(Matricea nu este nenegativa!);
end
e=ones(n,1);
x=2*rand(n,1);
fstar=max(abs(eig(A)));
conditie=eps+1;
condvec=[];
L=100*n;
while (conditie>eps)
grad=(2*x)/(x*A*x) - ((2*norm(x)^2*A*x)/((x*A*x)^2)) + gamma*(e*x-1)*e;
x=x-(1/L)*grad;
x=max(zeros(n,1),x);
conditie=fstar - (x*A*x)/norm(x)^2;
condvec=[condvec conditie];
end
figure;
plot(1:length(condvec),condvec,LineWidth,2);
end
0.5 1 1.5 2 2.5 3 3.5 4
x 10
4 Iteratii

=1
=5
=10
=50
=150
Figure 5: Convergenta metodei de gradient proiectat pentru diferite valori ale
parametrului .
4 Problema Google
Internetul este dominat progresiv de motoare de cautare, in sprijinul selectiei si
gasirii surselor de informatii cu relevanta maxima. Unul dintre cele mai vechi
si eciente motoare de cautare este Google, care se aa in continua dezvoltare
pe masura ce progresele in domeniul algoritmilor avanseaza. Tehnica folosita de
Google pentru cautarea si clasicarea paginilor web, se numeste PageRank, iar
pasul central din aceasta tehnica presupune clasicarea (ranking-ul) unui numar
13
urias de pagini web. In acest fel, rezulta o lista ordonata de site-uri in sensul
descrescator al relevantei in legatura cu subiectul cautat.
Datorita conexiunilor permanente dintre paginile web in reteaua Internet-
ului, ne permitem sa schitam grosier structura legaturilor dintre pagini prin
intermediul unui graf ponderat orientat. Nodurile grafului reprezinta paginile,
iar muchiile au rolul link-urilor. Ponderea p
ij
(corespunzatoare muchiei dintre
nodurilei si j) reprezinta probabilitatea ca la o navigarea aleatoare in reteaua
de pagini sa se ajunga din pagina i in pagina j. In plus, putem atribui grafului
o matrice de adiacenta E R
nn
, cu componenta E
ij
= 0 daca intre nodurile i
si j exista muchie, iar E
ij
= 0 daca nodurile i si j nu sunt legate de o muchie.
Numarul de muchii din graf se reecta in numarul de elemente nenule ale matricii
E; de aceea, pentru un graf rar (cu putine muchii), matricea de adiacenta va
rara (va contine preponderent zero-uri).
Figure 6: Exemplu graf orientat.
Pentru a explora mai indeaproape proprietatile matricii de adiacenta rezul-
tate din graful paginilor web, introducem urmatoarele notiuni:
Denitie 3. O matrice A R
mn
se numeste stochastica pe linii daca are
elemente nenegative (i.e. A
ij
0), iar suma pe ecare linie este egala cu 1.
Denitie 4. O matrice A R
mn
se numeste stochastica pe coloane daca are
elemente nenegative (i.e. A
ij
0), iar suma pe ecare coloana este egala cu 1.
Deoarece componentele nenule ale matricii de adiacenta E au rolul de prob-
abilitati, acestea sunt nenegative, iar matricea E este stochastica pe coloane.
Exercitiu 4. Sa se motiveze si sa se interpreteze proprietatea de stochasticitate
pe coloane a matricii E.
Forma algebrica a Problemei Google se reduce la a gasi o solutie a urma-
torului sistem liniar:
_

_
Ex = x
e
T
x = 1
x 0.
O observatie importanta este echivalenta dintre sistemul liniar din forma
algebrica de mai sus si cautarea vectorului propriu maximal corespunzator ma-
tricii de adiacenta E. De unde rezulta ca problema gasirii solutiei sistemului se
14
poate formula usor in termeni de optimizare:
min
xR
n
1
2
Ex x
2
(11)
s.l e
T
x = 1, x 0,
unde e = [1 . . . 1]
T
, matricea E R
nn
este rara (elementele au valori prepon-
derent nule) .
Observam ca problema rezultata este constransa, insa daca alegem un parametru
> 0 sucient de mare, putem enunta formularea echivalenta neconstransa:
min
xR
n
1
2
Ex x
2
+

2
(e
T
x 1)
2
. (12)
Datorita dimensiunii foarte mari ale ambelor probleme, ne orientam catre algo-
ritmi de ordin I cu o complexitate cat mai scazuta per iteratie.
Exercitiu 5. Fie o matricea E data cu proprietatile descrise mai sus; rezolvati
prima formulare (11) cu ajutorul metodei de gradient proiectat, iar cea de-a
doua (12) 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 in mod explicit. De accea, in 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
e=ones(n,1);
%%%% Daca 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 %%%%
15
grad=(E-I)*(E-I)*x;
%%% Se calculeaza pasul metodei gradient %%%%
d=x-(1/L)*grad;
%%% Se proiecteaza pe multimea fezabila%%%%
[grad_proj]=quadprog(eye(n),-d,[],[],e,1,zeros(n,1));
x=grad_proj;
%%% Criteriul de oprire %%%%
crit_stop=norm(E*x-x);
end
end
0 5 10 15 20 25
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
Iteratii
f
(
x
k
)


f
*
Figure 7: Curba de convergenta a metodei de gradient proiectat aplicata unei
probleme Google cu parametrii n = 50.
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);
%%%% Daca 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
16
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
1000 2000 3000 4000 5000 6000 7000
Iteratii
1 2 3 4 5
x 10
4 Iteratii

=5
=10
=15
=30
=50
(a) (b)
Figure 8: (a) Curba de convergenta a metodei de gradient pentru Problema
Google cu n = 100, = 50; (b) Dependenta convergentei metodei gradient de
parametrul aplicata Problemei Google n = 100.
5 Invatare automata\Clasicare
Tehnicile de invatare automata si clasicare sunt notiuni centrale in domeniul
statisticii, calculatoarelor, prelucrarii semnalelor etc. Ambele se ocupa in mod
17
fundamental cu problema recunoasterii tiparelor (pattern recognition) prin dez-
voltarea de modele matematice ce suporta o etapa preliminara de antrenare
(experienta), pe baza careia realizeaza operatii de clasicare/regresie de obiecte
si functii.
O mica parte din numeroasele aplicatii ale acestor tehnici cuprinde:
1. Recunoasterea email-urilor de tip spam sau malware
2. Recunoasterea vocii\fetei
3. Compresia cantitatilor uriase de date
4. Detectia de tipare in cadrul unei imagini.
5. Recunoasterea scrisului de mana.
Figure 9: Hiperplan de separare a doua clase de obiecte.
Una dintre cele mai renumite tehnici de recunoastere/clasicare este SVM -
Support Vector Machine. Aceasta tehnica presupune determinarea unui model
matematic ce separa doua sau mai multe clase de obiecte cu o anumita acu-
ratete. In vederea clasicarii sau recunoasterii unui obiect necunoscut, se intro-
duc datele obiectului in 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 = {x R
n
: w
T
x = b} caracterizat de parametrii
w si b. De aceea, problema se reduce la a gasi cei mai buni parametri (w, b)
care se separa cat mai bine clasele de obiecte.
Fie setul de puncte recunoscute a priori x
i
, i = 1, . . . , m, (descrise in
gura de punctele de culoare albastra si rosie). Termenul recunoscute denota
ca pentru ecare punct x
i
cunoastem clasa din care face parte. Daca luam ca
exemplu Figura 2 putem argumenta ca se cunoaste un parametru auxiliar c
i
cu
valoarea +1 daca obiectul x
i
este de culoare rosie, iar c
i
= 1 daca obiectul
este de culoare albastra.
In termenii teoriei optimizarii, problema se formuleaza dupa cum urmeaza:
min
wR
n
,bR
1
2
w
2
(13)
s.t. c
i
_
w
T
x
i
b
_
1, i = 1, . . . , m,
unde w si b reprezinta parametrii hiperplanului, iar c
i
indica clasa din care
face parte obiectul x
i
. Variabilele de decizie w, b reprezinta parametrii unui
18
hiperplan de separare a claselor de obiecte/imagini asa cum se observa in gura
3.
In continuare, exemplicam o aplicatie practica a tehnicii SVM prin prob-
lema recunoasterii cifrei 7 dintr-o imagine. Se cunoaste ca orice imagine poate
reprezentata sub forma unei serii de pixeli, unde ecare pixel la randul sau
este denit de o valoare (e.g. intre 0 256) data de culoarea acestuia.
Pentru a simplica exemplul, consideram imagini mono-colore compuse din
49 de pixeli, in care pixelii sunt reprezentati de nivele de gri cu valori intre
0 5. In etapa de initializare a tehnicii SVM se xeaza o multime de antrenare
compusa din diferite imagini ce contin variante ale cifrei 7 (ce fac parte din
clasa 1) si imagini aleatoare complet diferite de cifra 7 (ce fac parte din clasa
2). Deoarece, aceasta etapa se mai numeste si antrenare, se cunoaste pentru
ecare imagine clasa din care face parte.
Fiecarei imagini i se asociaza un vector de 49 de componente (ecare com-
ponenta luand valori intregi intre 0 si 5) si un parametru c ce reprezinta indexul
clasei din care face parte imaginea respectiva (daca c = 1 atunci imaginea con-
tine cifra 7, daca c = 1 atunci este imagine aleatoare). Pe baza acestei multimi
de antrenare, urmarim realizarea unui hiperplan de separare a acestor clase.
Figure 10: Exemplu de multime de antrenare.
Exercitiu 6. Rezolvati problema SVM (13) in contextul prezentat mai sus.
Testati ecienta solutiei (hiperplanului) obtinute prin evaluarea ratei de succes
in recunoasterea cifrei 7.
Rezolvare. Alegem un set de imagini ale cifrei 7(vezi Fig. 11(a)) si un set de
imagini aleatoare (vezi Fig. 11(b)) ce reprezinta multimea de antrenare a hiper-
planului de separare.
19
(a)
(b)
Figure 11: Multimea de antrenare a modelului matematic de separare: (a)
Imagini ce fac parte din clasa 1; (b) Imagini din clasa 2.
Transformam aceste imagini in vectori de pixeli cum am descris mai sus, ce
pot introdusi intr-o functie Matlab si folositi in rezolvarea problemei (13). Ur-
matoarea 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 multimea 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)];
20
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 multimea 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
%% 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);
21
C2*w-b*ones(7,1)<=-ones(7,1);
cvx_end
end
Pentru a testa solutia gasita (w

, b

) prin rezolvarea problemei (13), calculam


pentru punctele de test valoarea hiperplanului:
w
T
y b
_
< 0, atunci imaginea data de y nu contine cifra 7
> 0, atunci imaginea data de y contine cifra 7.
Pentru punctele considerate in secventa de cod de mai sus, tragem urma-
toarele concluzii:
daca testam hiperplanul cu diferite imagini aleatoare cu densitate mare
de pixeli gri (vezi Fig. 12) si respectiv, imagini cu cifra 7 transformata in
diverse moduri (translatie la stanga/dreapta, inclinare etc.) atunci rezulta
o rata de succes (recunoastere corecta) de 80%.
daca pentru testare consideram imagini aleatoare cu densitate mica (vezi
Fig. 11(b)) si respectiv, imagini cu cifra 7 transformata in diverse mod-
uri (translatie la stanga/dreapta, inclinare etc.) atunci rezulta o rata de
succes de 52%.
Motivatia ratei de succes in al doilea caz este data de doi factori: (i)similaritatea
ridicata intre 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 ecient). Din
Figure 12: Exemple de imagini aleatoare cu densitate ridicata de pixeli gri.
aceste concluzii observam ca am obtinut un hiperplan de separare obtinut ce
recunoaste cu o anumita rata de succes imagini ce contin sau nu cifra 7.
22

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