Sunteți pe pagina 1din 16

Universitatea Valahia Targoviste

Facultatea de Inginerie Electrica

PROIECT

STUDENT: Covaci Alexandra Gabriela


Specializare: Automatica IV

Cuprins
Metoda celei mai rapide coborari...............................................................................3
Algoritmul metodei celei mai rapide coborari..........................................................5
Exemplu de program in Matlab............................................................................... 7
Example si concluzii................................................................................................... 8

Metodaceleimairapidecoborari.
Algoritmulmetodeiceleimairapidecoborari

Metodaceleimairapidecoborari
Metodaceleimairapidecoborarieste o particularitate a metodeigradientului in care lungimea
pasului de cautare se face pe baza relatiei:
,
Stabilirea lui

(1)

pe baza relatiei de mai sus nu este intotdeauna posibila. Mai mult,

esteposibilcalimitainferioarapentrurelatia (1) sa nu fie accesibilapentru diverse valori ale


indicelui k. in practica,

se determinaca o valoare care aproximeaza sufficient de bine conditia

(1). In acestsens, esteposibilcavaloarea

sa se determine cu conditia:
,

(2)

sau :
, 0<
Marimile

(3)

din (2) si (3) caracterizeaza eroarea fata de conditia (1); astfel incat, cu cat

apropie mai mult de zero, iar

se

de unitate, cu atat eroarea de evaluare in raport cu (1) estemai

mica.
Trebuieremarcatcadirectia de antigradientasigura o foartebunaevolutiedoar in
vecinatateapunctului de lansare a procedurii de cautare. In acesteconditii, dacavireza de variatie a
functieieste mare, atunci in punctual
mult de directia precedent (

, directiaantigradient (

poate diferi foarte

.
3

Din acestmotiv, stabilireaparametrului

nu impuneasigurarearelatiei (1) cu o mare fidelitate.

In practica, de multeori ne limitam in alegereapasului

astfelincatsaasigurammonotonia

fara a cauta optimizarea pasului de cautare. Astfel, pentruiteratiak :


(4)
In cadrul fiecarei iteratii, se evalueaza modul in care evolueaza crieteriul si in functie de aceasta
evolutie se modifica pasul astfel:

Daca

, evolutiaestecorespunzatoaresi se incearcamodificarea in

senscrescator in ideeaaccelerariiconvergentei.

Daca

inseamna ca lungimea pasului de cautareesteprea mica

incatdiferentele nu suntsesizabile sic a si in cazul precedent, marimlungimeapasului de


cautare.

In sfarsit, daca

, lungimeapasului de cautareesteprea mare,

aproximarealiniara care sta la bazatehnicilor de gradient nu estecorespunzatoare sic a


atare, lungimeapasuluitrebuiediminuatasirejectandvaloareaobtinuta
din

, reluam iteratia

Daca functia obiectiv

este de clasa

si daca
,

satisfice conditia Lipschitz:


(5)

In care constanta L estecunoscuta, atuncilungimeapasului de cautare in tehnica de gradient poate


fi aleasa de forma:
, in care
si

, reprezinta doi parametric de metoda, daca alegem

, obtinem metoda de gradient cu o lungime a pasului de cautare

Daca constanta L este mare, lungimea pasului va fi mica si convergenta este extreme de lenta.

Abordareateoretica a problemeiconvergenteialgoritmilor de tip gradient se porneste de la


premizaoptimizariiprocedurii iterative in forma:
,
Proceduranelimitatasi care conduce la un sir
se opreste in conditia de STOP:
valori formeaza un sir

(6)

. inrealitate, cum vomvedea ulterior, algoritmul


, cu apriori impus. Considerand ca succesiunea de

, problema care se pune este daca acest sir este convergent catre

Solutia de minim a problemei initiale, decidaca se asiguraconvergentacatremultimeapunctelor de


minim:
(7)
saualtfelspus, dacasuntindepliniteconditiile:
,

(8)

Asigurareaconvergenteiimpunepelangaconditiileimpuseprinformulareaproblemei oserie de
restrictiisuplimentaredestul de duresifoartegreu de evaluat.
Fie

de clasa

si pentru care gradientul functiei satisface

conditia Lipschitz:
,
In acesteconditii, sirul

(9)

construit iterative in forma:


(10)

pentru care lungimeapasilor

respecta:
,

(11)

unde

pentru orice initializare

, asigura

.
In plus, daca

este convexa si daca

reprezinta valoarea de minim atunci pentru

:
,

(12)

Dacaconsideramcaacesterestrictiisuntsatisfacute, conditia de oprire a


algoritmuluisivalidareasolutieivafi

Algoritmulmetodeiceleimairapidecoborari
Etapa de initializare: Fie

conditia de STOP. Alegem

coditia de initializare, k=1

, algoritmul se oprestesi

reprezintasolutia de minim. Daca

si trecem la etapa de baza.


Etapa de baza: Daca
nu,

si se determina

Construim

.
si se reia etapa de baza.

Interpretareageometrica.
Putem da o interpretaregeometrica intuitive legata de constructa iterative a solutiei,
utilizandalgoritmulceleimairapidecoborari.Astfel, punctul
si

determinat in conditiile:
se aflapedreapta

inpunctul de tangent a acesteidrepte cu conturul de izonivel

sidreapta

este perpendicular pe conturul de izonivel

Vomconsidera o parametrizare a curbei de izonivel de forma


pentru

, iar

pentru

si deci

. in aceste conditii:

.
In particular, pentru

obtinem:

si in felulacestarezultacadirectia de gradient (sauantigradient) este perpendicular pe

in punctul

.
Reamintimca

se determina cu conditia:

Prinurmare, directia de gradient


perpendicular pe

, rezulta ca

si

sunt perpendicular si cum


este tangent curbei

este

Considerentelegeometriceprezentatesuntaplicatepecurbele de izonivel din figura 1.a si1.b :

Figura 1: interpretareageometrica a constructiei iterative

Este evidenta o comportaremaibunapentrucazul a.)in care curbele de


izonivelsuntapropiateunorcontururicirculare. Pentrusituatiaprezentata in cazul b.), in care
aparcontururialungitecesemnificafaptulca o serie de
variabilemodificamaiputerniccriteriuldecatcelelalte, comportareaimplica un zig-zagprelungit in
care eficientacautariiesteelativ mica.

Exemplu de program in Matlab


Mai josvoiprezentadescrierea in meta-limbaj a celuimaisimplualgoritm de gradient.
Date de intrare: (toleranta suficienta),

(punct initial)

Repeta
1. Se determinadirectia de cautare la pasuli (data de versorulasociatgradientului):
, unde +/- corespundmaximizarii/minimizarii
2. Se allege arbitrar

, pasul de deplasarepedirectia

3. Se calculeazanoulpunct de evaluare a gradientului:


8

Panacand

Se observacaalgoritmul de maisusnecesitacunoasterea a priori a tipului de extreme cautat (maxim


sau minim).Implementarea in Matlab se poate face sub forma uneifunctii care primeste punctual
de start al cautarii, x0 (la cazul general acestaeste un vector) sitolerantadorita, epsilon,
sireturneazavaloarea de extreme a uneifunctii (la cazul general, vectoriale) cunoscute, x,
sinumarul de iteratii in care s-a obtinutaceasta, nr_it. S-autilizat o variabilalocala, itermax, pentru
a fortaiesirea din ciclaredacaextremul nu poate fi gasit.
function [x,nr_it]=opt_grad(x0,epsilon)
nr_it=1;x_curent=x0;itermax=1500;%numar maxim de itera_ii
h=0.001; %varia_ieutilizatancalcululgradientului
p=0.001;%se alege un pas constant de deplasare
for k=1:n,
v=zeros(1,n);v(k)=1;
grad_curent(k)=(f1(x0+h/2*v)-f1(x0-h/2*v))/h;
end;
while (norm(grad_curent)>=epsilon)&(nr_it<=itermax),
%implementareaformulei (2.29) folosind (2.28);
%pentru o func_ie de maximizat se nlocuieste cu +
x_viitor=x_curent-p*grad_curent/norm(grad_curent);
for k=1:n,
v=zeros(1,n);v(k)=1;
grad_viitor(k)=(f1(x_viitor+h/2*v)-f1(x_viitor-h/2*v))/h;
end;
x_curent=x_viitor;
grad_curent=grad_viitor;
nr_it=nr_it+1;
end;
x=x_curent;

Functia de maisus face uz de apellfunctieiMatlabnorm, care


calculeazanormavectorialasaumatriciala; earealizeazaminimizareauneifunctii care trebuiesa se
afle in fisierulf1.m; in particular eapoate fi o functiescalara:
function y=f1(x)
y=5*x^2+2*x+13;

Valoarea in care se atingeminimulacesteifunctiieste 0.2, care se obtinedupa un numar de


iteratiimaimicsaumai mare, depinzand de conditiainitialasi de pasul de deplasare ales. Intradevar, apelul:
[x,nr_it]=opt_grad(1,1e-3)

producerezultatele:
9

x =

-0.2000

nr_it =

1201

iarapelul:
[x,nr_it]=opt_grad(-1,1e-3)

aredreptrezultat:
x =
-0.2000
nr_it =
801

Numarul mare de iteratii se datoreazafolosiriiunui pas foartemic (p=0.001); folosireaunuiastfel


de pas se justifica in cazulextremelorabrupte, undecomponentelegradientului au variatiimari.

Example siconcluzii
Pentruailustracomportareaalgoritmuluiceleimairapidecoborarivoiprezenta in
continuarecatevaexemple.
Consideramfunctia:

continuasi derivate in

. Ne propunemstabilireaminimuluiacesteifunctiiutilizandtehnica de

gradient.Evaluareava fi facutautilizandmetodaceleimairapidecoborariimplementata in
Matlabprinsubrutinagrad1.m.
Subrutinaspecificata a fostrulatapentru o initializare
precizieiimpuse

pentru treivalori ale

, pentru k=1,2,3.

Rezultateleobtinute in urmarulariiprogramelorprecunsidurataprocesariipentrufiecarecaz in parte


suntprezentatesintetic in tabelulurmator:
Precizia

Solutia de
minim

Valoareafuctieiobiectiv

Timpnecesarp
rocesarii

Numar de
iteratii
10

0.321 sec.

11

0.861 sec.

27

1.883 sec.

81

8.352 sec.

335

Tabel 1: rezultateleutilizariitehnicii de tip gradient

Pentruexemplulconsiderat se observa o bunacomportare in privintacorecteisolutionaripentru o


precizieconvenabila.Astfel, pentruconditia de stop
fata de solutiareala

obtinemsolutia

. Crestereaexagerata a preciziei conduce la o

imbunatatirenesemnificativa a rezultatelor in daunacresteriisemnificative a timpului de calcul. In


acestsens, in figura 2 esteprezentatgraficuldependenteitimpilor de calcul in functie de
preciziaimpusa.
Din graphic reieseclarca o precizieexagerata conduce la untimp de calcul extreme de mare.

Figura 2.Dependentatimp de calcul-precizie


In figura 3 esteprezentatadependentadistanteipunctului de lucru in a k-a iteratie in raport cu
punctual de minim real. Cum precizamsi in prezentareateoreticaeste evident caproceduraaplicata
are o eficientaridicata in fazainitiala a algoritmuluicanddistanta in raport de minimul real este
relative mare.
11

Rafinarearezultatelorpentruasigurareapreciziei se face in pasimici care insaconnsumatimp de


calcul.

Figura 3.Dependentapunct de lucru optim


Deficintaalgoritmului anterior remarcatapoate fi vizualizatasi in graficul care
reprezintaevolutiaprocesului de cautare a punctului de minim.
Pentrucazulanalizat, in conditiileuneiprecizii

, graficulevolutieiesteprezentat in figura 4.

Se observa cu usurintacadupa circa patruiteratiicautarea se face intr-un zig-zagprelungit extreme


de inefficient.

12

Figura 4.Graficulevolutieicatreoptim
Consideram in continuarefunctia de douavariabile:

pentru care gradientul se evalueazaimediat in forma:

Curbele de izonivelpentrufunctia considerate suntprezentate in figura 5. Din


aluraacestorcurberezultacafunctia considerate nu esteunimodalapentru
prezentandmaimultepuncte de extreme. Ne propunemstabilireaunui minim local utilizandtehnica
de tip gradient.
Subrutinagrad1.mimplementeazaalgoritmul de cautarepropus.

13

Figura 5.Curbele de izonivelpentrufunctia considerate


Considerandconditiainitiala

pentru o precizie

convergent in 4 iteratii in punctual de minim local

algoritmul este
. initializarea

impusa a fixat punctual de plecare intr-o regiune a spatiului pentru care solutia obtinuta
constituie un atractor stabil. O alta solutie de minim local sau sa genereze blocarea algoritmului.
In urmatorulexemplu, consideramdreptfunctieobiectivfucntiaRosenbrock:

pentru care gradientuleste de forma:

Pentru o initializarearbitrara

si o precizie impusa

asigurata in 3929 iteratii. Solutia aproximatapentruproblemapropusaeste

convergenta este
,

14

. Valoarea de minim obtinuta pentru functia obiectiv este

Evolutia in procesul de cautare este prezentata in figura 6.

Figura 6.Evolutia in procesul de cautare


Legat de problemaprezentata, putem face catevaobservatii de ordin general:

Conditia de stop popusa in tehnicile de gradient este cu multmairelevantadecat in


cazulmetodelor de cautaredirecta. In cazulproblemeipropuse, pentru o precizie de 1%
obtinem o solutiefoarteapropiata de solutiareala.
Pentruobtinereauneisolutiiconvenabilenumarul de iteratiieste in general cu multmaimic in
raport cu metodele de cautaredirecta.
In cazulfunctiei considerate evolutia in procesul de cautareurmeazauntraseu curios in
cadrulcareiaexistapuncte care apparent sunt situate la o distantamai mare fata de optim in
raport cu punctul initial.
Acestlucruaparemai evident dacareluamalgoritmulpropuspentru o initializare
. Obtinem o aproximare a solutiei de optim
de iteratii la o valoare a functieiobiectiv

,
in 11320

. Succesiuneapunctelor de

test esteprezentata in figura 7.

15

Figura 7.Succesiuneapunctelor de test

16

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