Sunteți pe pagina 1din 4

Ministerul Educaiei i Tineretului al RM

Facultatea CIM
Catedra ATI
Lucrarea de laborator Nr.1
la disciplina Cercetari Operationale
Varianta 11
Tema: Optimizarea neconditionata
A efectuat stud. !r. TI"#$% Tihon Vitali
A &erificat lect. superior Catruc Mariana
C'iin(u %#1#
Obiectivele lucrrii:
Studierea metodelor de optimizare neliniar far restricii.
Definirea i utilizarea unor proceduri pentru minimizarea funciilor cu ajutorul
metodei gradientului i a metodelor de direcie conjugate cu eroare mai mic
E=0.00001
Analiza rezultatelor obinute inclusi! stabilirea tipului minimului" local sau global.
S se compare rezultatele lu#nd in consideraie numrul de iteraii e!alurile pentru
funcie i gradient.
Sarcina lucrrii:
Sa se determine minimul global al functiei "
f$%&'=a%
(
)(%&)b&
(
*(%*+&
a=+ , b=1.
f$%&'=+%
(
)(%&)&
(
*(%*+&.
Pasii algoritmilor:
1)Metoda Gradientului cu fractionarea pasului:
Pasul1: Se alege -. /$01'0 /$01. Se recomanda -=1 . /$0.010.1' 0=0.1,
Pasul2:Se calculeaza 2$-'=3$4'* -5f$%$4'' si f$2$-''.
Pasul3:Se !erifica inegalitatea f$2$- ''*f$3$4''6=* - .75f$%$4''7(. Daca inegalitatea este
ade!arata atunci -4= -in caz contrar -= 08 - si se trece la pasul (.
2)Metoda Hestenes-Stiefel:
Pasul1:Se alege apro%imatia initiala 3$0' / 9 arbitrara si se calculeaza 5f$3$0''.
:erificamdaca 5f$3$0''=0 atunci S;<= solutia 38=3$0',in caz contrar se !a alege
d$0'=* 5f$3$0''4=0.
Pasul2:Se determina -$4'=*$ 5f$3$4''d$4''>$Ad$4'd$4''.
Pasul3:Se determina %$4)1'=%$4') -48d$4' si se calculeaza 5f$3$4)1''.Daca
5f$3$4)1''=0 atunci S;<= %8=%$4)1' in caz contrar se trece la pasul urmator.
Pasul4:Se calculeaza d$4)1'=* 5f$3$4)1'')$ 75f$3$4)1'' 7('>$ 75f$%$4''7('8d$4'
4=4)1 si se trece la =asul(.
Rezultatele:
Analiza rezultatelor:
A!em la dispozitie ( metode cu ajutorul carora determinam minimul global al functiei.
Ambele obtin apro%imati! acelasi rezultat intr*un timp foarte mic in cazul functiei pe care o
a!em. ?nsa daca comparam numarul de iteratiiobser!am ca metoda gradientului cu
fractionarea pasului con!erge lent. Aceasta inseamna ca pentru functii mari aceasta metoda
nu !a mai fi utila deoarece !a a!ea ne!oie de mai mult timp pentru a gasi solutia. ?n asa fel
algoritmul @estenes*Stiefel !a fi mai rapid.
Concluzie: Efectuind aceasta lucrare de laborator am insusit ( metode de cautare a
minimului functiei si anume Aetoda Bradientului cu fractionarea pasului si metoda
@estenes*Stiefel.Am facut cunostinta cu pasii necesari spre a gasi solutia si am obtinut
rezultatele. ?nsa cind comparam ele putin difera.Se poate de spus ca unul este mai reusit decit
altulinsa trebuie sa tinem cont si de functia pe care o a!em. Deci ambii algoritmi au atit
plusuri cit si minusuri unul fata de altul.
Listingul programului:
Cinclude 6iostream.DE
Cinclude 6conio.DE
Cinclude 6matD.DE
class <=;?A?2A9E
F
public"
float G$float % float &',
!oid ?H=I;$!oid',
!oid B9AD?EH;$!oid',
!oid AE;<DAJB9AD?EH;IKI?$!oid',
!oid AKB<9?;AIKJ@ES;EHESJS;?EGEK$!oid',
pri!ate"
float abAKGABAAADEK;AE=S3L(M2L(MBL(M,
N,
float <=;?A?2A9E""G$float % float &'
F
return a8%8%)(8%8&)b8&8&*(8%*+8&,
N
!oid <=;?A?2A9E""?H=I;$!oid'
F
cout66O?ntrodu parametrul a" O, cinEEa,
cout66O?ntrodu parametrul b" O, cinEEb,
N
!oid <=;?A?2A9E""B9AD?EH;$!oid'
F
BL0M=(8a83L0M)(83L1M*(,
BL1M=(83L0M)(8b83L1M*+,
N
!oid <=;?A?2A9E""AE;<DAJB9AD?EH;IKI?$!oid'
F
int H=0,
float A4,
AKGA=0.1, BAAA=0.1, DEK;A=0.1,
3L0M=1, 3L1M=1, E=S=0.00001,
B9AD?EH;$',
PDile$sQrt$BL0M8BL0M)BL1M8BL1M'E=E=S'
F
))H,
AKGA=0.1,
2L0M=3L0M*AKGA8BL0M,
2L1M=3L1M*AKGA8BL1M,
PDile$$G$2L0M2L1M'*G$3L0M3L1M''E*DEK;A8AKGA8$BL0M8BL0M)BL1M8BL1M''
F
AKGA8=BAAA,
2L0M=3L0M*AKGA8BL0M,
2L1M=3L1M*AKGA8BL1M,
N
A4=AKGA,
3L0M=3L0M*A48BL0M,
3L1M=3L1M*A48BL1M,
B9AD?EH;$',
N
cout66ORnAE;<DA B9AD?EH;IKI? SI G9AS;?<HA9EA =ASIKI?"O,
cout66ORn=unctul are urmatoarele coordonate $%&'" O663L0M66O O663L1M66endl,
cout66O:aloarea functiei f$%'=O66G$3L0M3L1M'66endl,
cout66OHumarul de iteratii H=O66H66endl,
N
!oid <=;?A?2A9E""AKB<9?;AIKJ@ES;EHESJS;?EGEK$!oid'
F
int H=04=0,
float A4B1L(M=F0NdL(M31L(M,
3L0M=1, 3L1M=1,
B9AD?EH;$',
PDile$$BL0MT=0UUBL1MT=0''
F
))H,
if$4))==0'F dL0M=*BL0M, dL1M=*BL1M, N
else F
dL0M=dL0M8$BL0M8BL0M)BL1M8BL1M'>$B1L0M8B1L0M)B1L1M8B1L1M'*BL0M,
dL1M=dL1M8$BL0M8BL0M)BL1M8BL1M'>$B1L0M8B1L0M)B1L1M8B1L1M'*BL1M,
N,
A4=*$BL0M8dL0M)BL1M8dL1M'>$(8a8dL0M8dL0M)V8dL0M8dL1M)(8b8dL1M8dL1M',
31L0M=3L0M, 31L1M=3L1M, B1L0M=BL0M, B1L1M=BL1M,
3L0M=3L0M)A48dL0M,
3L1M=3L1M)A48dL1M,
if$3L0M==31L0MUU3L1M==31L1M'brea4,
B9AD?EH;$',
N
cout66ORnAKB<9?;AIK @ES;EHES*S;?EGEKO,
cout66ORnSoordonatele punctului $%&'" O663L0M66O O663L1M66endl,
cout66O:aloarea functiei f$%'=O66G$3L0M3L1M'66endl,
cout66OHumarul de iteratii H=O66H66endl,
N
!oid main$'
F
clrscr$',
<=;?A?2A9E ob,
cout66ORnKucrarea de laborator Hr.1RnRnO,
ob.?H=I;$',
ob.AE;<DAJB9AD?EH;IKI?$',
ob.AKB<9?;AIKJ@ES;EHESJS;?EGEK$',
getcD$',
N

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