![Page 1: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/1.jpg)
Programarea neliniară
![Page 2: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/2.jpg)
Programareaneliniară
Programarea convexă
Programarea liniară
Ierarhizarea problemelor de optimizare
![Page 3: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/3.jpg)
3
1. Introducere
Instoric:
• Harold William Kuhn (1925 - )
(Condiţiile necesare şi suficiente pentru soluţia optimală a
problemelor de programare neliniară - 1951, teoria jocurilor)
• Albert William Tucker (1905-1995)
(Condiţiile necesare şi suficiente pentru soluţia
optimală a problemelor de programare neliniară –
1951, teoria jocurilor)
![Page 4: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/4.jpg)
min (max) F(X)
gi(X) (, , =) bi, i = 1,…,m
X = (x1,…, xn)t vectorul n-dimensional al variabilelor
de optimizare
F (X) – funcţia obiectiv;
gi(X) restricţiile modelului matematic;
bi – vectorul termenilor liberi.
Modelul matematic general al unei
probleme de programare liniară
![Page 5: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/5.jpg)
Programarea neliniară fără restricţii
• Pentru funcţiile obiectiv cu o singură variabilă pentru determinarea soluţiei optime se folosesc derivatele de ordinul 1 şi 2.
• Pentru funcţiile cu mai multe variabile pentru determinarea soluţiei optime se folosesc gradientul şi matricea Hessiană.
• Gradientul unei funcţii reprezintă derivata de ordinul 1 în raport cu toate variabilele, iar matricea Hessiană este reprezentată de derivatele de ordinul 2.
![Page 6: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/6.jpg)
Gradientul unei funcţii
Pentru o funcţie F definită în raport cu
variabilele x1, x2, …, xn, gradientul este definit
astfel:
nx
F
x
F
x
FF
21
Exemplu:2
31
3
21 )(3)(215 xxxxF
31
2
2
2
3 6)(6)(315 xxxxF
![Page 7: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/7.jpg)
Matricea Hessiană
• Matricea Hessiană (2) a unei funcţii
F(x1, x2, …, xn) este definită astfel:
2
2
2
2
1
2
2
2
2
2
2
12
2
1
2
21
2
2
1
2
2
nnn
n
n
x
F
xx
F
xx
F
xx
F
x
F
xx
F
xx
F
xx
F
x
F
F
![Page 8: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/8.jpg)
Matricea Hessiană
• Exemplu:
2
31
3
21 )(3)(215 xxxxF
13
2
3
2
606
0120
600
xx
x
x
F
31
2
2
2
3 6)(6)(315 xxxxf F
![Page 9: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/9.jpg)
Condiţiile de optimalitate
• Optimizarea fără restricţii – problemă de calcul cu mai multe variabile. PentruY=F(X), punctul de optim va fi punctul în care F '(X) =0 iar F''(X) îndeplineștecondițiile privind derivata de ordinul al II-lea.
• Punctul de minim îndeplineşte condiţiile:
F'(X) =0 şi F''(X) >0.
• Punctul de maxim îndeplineşte condiţiile:
F '(X) =0 and F''(X) <0.
![Page 10: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/10.jpg)
Concavitatea şi derivata de ordinul II
F’’(x)<0 F”(x)>0 F”(x)<0 F”(x)>0
Maxim local şi global
Max local
Minim local Minim local şi global
![Page 11: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/11.jpg)
Mulţimi convexe
Definiţie: O mulţime S n
este convexă dacă orice punct
de pe segmentul de dreaptă care uneşte oricare două puncte
x1, x2 S aparţine mulţimii S. Din punct de vedere
matematic putem scrie:
x0 = lx1 + (1–l)x2 S pentru l [0, 1].
x1
x2
x1
x1x2
x2
![Page 12: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/12.jpg)
12
Mulţimi convexe şi concave
ConvexeConcave
![Page 13: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/13.jpg)
Mulţimi convexe
Intersecţia unui număr oricât de mare de mulţimi convexe este o mulţime
covexă.
![Page 14: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/14.jpg)
14
max (x1-x2)
- x12-x2 ≥ 1
x1+x2 ≤ 3
- x1+x2 ≥ 2
x1≥ 0, x2 ≥ 0
• Muţimea admisibilă a
soluţiilor nu este un poliedru
convex.
• Soluţia optimă nu se găseşte
în vârful unui poliedru
convex
Exemplu:
Mulţime admisibilăFuncţia obiectiv
Soluţia optimă
![Page 15: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/15.jpg)
15
Funcţie obiectiv neliniară cu restricţii liniare.
Deși mulţimea admisibilă
este un poliedru convex,
soluția optimă nu se
găseşte într-unul din
vârfurile acestui poliedru.
Există şi situaţii în care soluția optimă se găseşte în interiorul
Mulţimii admisibile.
Soluţia
optimă
Funcţia obiectiv
Mulţime
admisibilă
![Page 16: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/16.jpg)
S = {(x1, x2) : (0.5x1 – 0.6)x2 ≤ 1
2(x1)2 + 3(x2)
2 ≥ 27; x1, x2 ≥ 0}
Exemplu de mulţime admisibilă
neconvexă
x1
x2
![Page 17: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/17.jpg)
S Rn Mulţime convexă
F :S R este o funcţie convexă dacă
Dacă este valabilă inegaliatatea atunci funcţia F(X)
este strict convexă.
F(lx1 +(1l)x2) lF(x1) + (1l)F(x2), 0 l 1
F
x1 x2lx1 +(1l)x2
F(x1)
F(x2)lF(x1)) + (1l)F(x2)
c(F(lx1 +(1l)x2))
Funcţie convexă
![Page 18: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/18.jpg)
Programarea convexă
Fie S = { X n
: gi(X) bi, i = 1,…,m }
Definiţie: Dacă gi(X) este o funcţie convexă pentru orice i =
1,…,m atunci S este o mulţime convexă.
Teorema programării convexe: Fie x n
şi F(X) o funcţie
convexă definită pe o muţime convexă de restricţii S. Dacă
există o soluţie finită pentru problema:
min { F (X) : X S }
Atunci toate punctele de optim local sunt şi puncte de optim
global. Dacă F(X) este strict convexă, punctul de optim este
unic.
![Page 19: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/19.jpg)
Max F (x1,…,xn)
gi(x1,…,xn) bi
i = 1,…,m
x1 0,…,xn 0
Este o problemă de
programare convexă
dacă F este concavă şi
fiecare restricţie gi este
convexă.
Programarea convexă
Min F (x1,…,xn)
gi(x1,…,xn) bi
i = 1,…,m
x1 0,…,xn 0
este o problemă de
programare convexă
dacă F este convexă şi
fiecare restricţie gi este
convexă.
![Page 20: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/20.jpg)
Să se construiască un cilindru (având şi părţile
superioară şi inferioară) având un volum maxim,
astfel încât suprafața sa să nu depăşească o coală
de tablă de dimensiune s.
max V(r,h) = pr2h
2pr2 + 2prh = s
r 0, h 0
r
h
Există mai multe moduri de abordare a acestei probleme.
Unul dintre acestea determină înăţimea h din restricţia
de suprafață și înlocuişte expresia obţinută în funcția
obiectiv.
Exemplu:
![Page 21: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/21.jpg)
h =s 2pr 2
2prVolumul = V = pr2
[ s 2pr 2
2pr] =
rs
2 pr 3
dV
dr= 0 r = (
s
6p)1/2
h = s
2pr r = 2(
s
6p)1/2
V = pr 2h = 2p (s
6p)3/2
r = (s
6p)1/2
h = 2(s
6p)1/2
Este soluţia obţinută soluţie optimă?
Soluţia
![Page 22: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/22.jpg)
V(r ) = rs
2 pr 3
dV(r)
dr=
s
2 3pr 2
d2V(r )
dr 2 6pr
d2V
dr 2 0 pentru orice r 0
V(r ) este concavă pentru orice r 0 astfel încât soluţia
obţinută reprezintă maximul global.
Testul de convexitate
![Page 23: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/23.jpg)
TeoremeTeorema 1.
Pentru o funcţie F(X), derivabilă pe o mulţime convexă, sunt valabileurmătoarele afirmaţii echivalente:
1.F(X) este convexă;
2.F(X2) – F(X1) ≥ (F(X1), X2 – X1), oricare ar fi X2, X1 Sadică valoarea funcţiei F(X) creşte pe direcţia gradientului F(X1).(X, Y) este produsul scalar al vectorilor X şi Y.
3.Produsul scalar (F(X+ld), d) este nedescrescător în raport cu l.
4.Matricea Hessiană este semi-pozitiv definită pentru toate puncteleX S, adică:
(d, H(X)∙d) ≥ 0
În cazul funcţiilor strict convexe, pentru punctele 2 şi 3 sunt valabile doar inegalităţile
![Page 24: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/24.jpg)
Teorema 2.
Orice punct de minim local este şi punct de minim global. Dacă funcţia F(X) este strict convexă atunci soluţia optimală (dacă există) este unică.
Teorema 3.
Se consideră următoarea problemă de programare convexă:
min (F(X)), X S
unde: S este mulţimea admisibilă de soluţii (este o mulţime convexă);F(X) – derivabilă şi convexă;
X* reprezintă o soluţie a problemei convexe de mai sus dacă şi numai dacă sunt adevărateurmătoarele :
(F(X*), X – X*) ≥ 0, oricare ar fi X S
In cazul în care X R, iar restricţiile lipsesc relaţia devine:
F(X*) ≥ 0
Dacă F(X) este derivabilă şi convexă iar muţimea este strict convexă, atunci X* este unic.
Teorema 3 prezintă condiţiile necesare şi suficiente pentru un punct de minim.
![Page 25: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/25.jpg)
Programarea neliniară convexă fără restricţii
Se consideră următoarea problemă de programare convexă:
min (F(X)), X S ≡ Rn
Condiţiile necesare şi suficiente ca un punct X* să fie unminim local şi global sunt:
F(X*) = 0 şi (d, H(X)d) ≥ 0
iar pentru un minim global unic, acestea sunt:
F(X*) = 0 şi (d, H(X)d) > 0
Notaţii: g(k) = F(X(k)), H(k) = 2F(X(k))
![Page 26: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/26.jpg)
În general, pentru rezolvarea unei probleme deprogramare neliniară se foloseşte relaţia iterativă:
X(k+1) = X(k) + l(k) ∙d(k)
unde:d(k) Rn – reprezintă o direcţie de deplasare în iteraţiak din punctul curent X(k);l(k) – scalar ce reprezintă lungimea pasului de deplasare în iteraţia curentă.
Programarea neliniară convexă fără restricţii
![Page 27: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/27.jpg)
1. Metodele de optimizare diferă prin
procedurile concrete de alegere a parametrilor
d(k) şi l(k).
2. Având în vedere reducerea efortului de calcul
privind implementarea procedurii iterative, în
fiecare etapă, informaţia disponibilă pentru
obţinerea direcţiei d(k) şi a pasului l(k) este strict
limitată la valorile funcţiei şi a primei sale
derivate.
OBSERVAŢII:
![Page 28: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/28.jpg)
Proceduri pentru alegerea pasului
de deplasare
Determinarea pasului de deplasare l(k) constituie
o parte critică a metodelor de optimizare din
cadrul programării neliniare.
O valoare prea mică a pasului conduce la un
număr mare de iteraţii în procesul de optimizare,
deci la creşterea timpului de calcul, iar o valoare
prea mare poate conduce la oscilaţii în jurul
minimului şi deci, din nou, la creşterea timpului
de calcul.
![Page 29: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/29.jpg)
• Gradientul este întotdeauna perpendicular pe normala la suprafaţa funcţiei obiectiv.
•După fiecare iteraţie noua direcţie a gradientului este întotdeauna perpendiculară pe direcția din iteraţia anterioară.
•În consecință, iteraţiile au tendința de a asigura o deplasare în zig-zag într-un mod foarte ineficient.
![Page 30: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/30.jpg)
Metode de alegere optimală a pasului de deplasare
Aceste metode urmăresc determinarea pasului l(k)
Din condiţia realizării minimului funcţiei F(X)
pe direcţia d(k) :
lll FdXFdXF kkkkk minmin
Dacă se face ipoteza că funcţia F(l) este netedă,
metodele cele mai eficiente se bazează pe
aproximarea acesteia printr-o funcţie polinomială
de gradul 2, al cărei minim se poate calcula uşor.
0, 2012
2 CCCCF ll cu minimul
2
1
2C
Ck l
![Page 31: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/31.jpg)
Metoda 1
Pentru determinarea coeficienţilor C0 , C1 și C2
sunt necesare trei valori ale funcţiei respective
în punctele l1 , l2 şi l3 , expresia finală fiind:
213
2132321
22
213
21
232
23
221
2
1
llllll
lllllll
FFF
FFFk
- Corectitudinea minimului depinde de aproximarea
polinomială;
- Eficienţa procesului de optimizare depinde foarte
mult de alegerea valorilor l2 şi l3 (pentru l1 se ia,
de regulă, o valoare nulă).
![Page 32: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/32.jpg)
Metoda 2
Constă în folosirea valorii funcţiei şi a derivateiacesteia în punctul curent X(k) precum şi a valorii
funcţiei într-un punct învecinat, (X(k) + λ(k)·d(k)).
kXFFFC 000 l
kkn
j
kjk
j
n
j jdg
dg
X
XF
FC ,limlim
10
1
00
1
l
l
ll lll
kkk dXFXFF l 11
Dacă aceste relaţii se introduc în expresia polinomialăa funcţiei F(λ) se va obţine:
2
012
,
l
l FdgFC
kk
![Page 33: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/33.jpg)
Metoda 2
Constă în folosirea valorii funcţiei şi a derivateiacesteia în punctul curent X(k) precum şi a valorii
funcţiei într-un punct învecinat, (X(k) + λ(k)·d(k)).
kXFFFC 000 l
kkn
j
kjk
j
n
j jdg
dg
X
XF
FC ,limlim
10
1
00
1
l
l
ll lll
kkk dXFXFF l 11
Dacă aceste relaţii se introduc în expresia polinomialăa funcţiei F(λ) se va obţine:
2
012
,
l
l FdgFC
kk
![Page 34: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/34.jpg)
Metoda 2
Introducând expresiile corespunzătoare coeficienţilorC1 şi C2 în relaţia de minim se obţine:
kk
kk
kkk
dg
FFdgFF
dg
,
11
2
1
,
,
2
1
1001
2
l
l
l
ll
Metoda 3
Metoda se bazează pe descompunerea în serii Taylor a funcţiei F, din care se vor reţine primii doi termeni:
kkkkkkkk dHddgXFdXF ,5,0, 2lll
![Page 35: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/35.jpg)
Metoda 3
Se derivează relaţia în raport cu l şi se anulează:
0,,
,
, kkk
kkk
kkk dHd
dHd
dgl
Pentru aplicarea acestei metode trebuie să sedispună de valorile derivatei şi a hessianului
funcţiei F în punctul X(k).
![Page 36: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/36.jpg)
Metode de explorare directă
Plecând de la un interval iniţial [a0, b0] care conţinevaloarea optimă l*, metodele de explorare directă
reduc iterativ intervalul în care se găseşte l* până
când este satisfăcută o condiţie de oprire.
Reducerea se face prin eliminarea simultană sausuccesivă a unor subintervale pentru care există
certitudinea că nu pot conţine valoarea optimă l*.
Aplicarea reducerii se bazează pe unimodalitateafuncţiei (are un singur extrem în interval).
![Page 37: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/37.jpg)
Metode pentru rezolvarea problemelor de
optimizare convexă fără restricţii
Metode de ordinul 0 care folosesc valorile funcţieiîn punctul curent şi vecinătăţi;
Metode de ordinul 1 care folosesc şi derivata de ordinul 1 (gradientul);
Metode de ordinul 2 care folosesc derivatele de ordinul
1 şi 2 (hessianul).
![Page 38: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/38.jpg)
Metode de ordinul 0
Avantaje:
- nu sunt necesare expresiile analitice ale
derivatei funcţiei obiectiv F(X).
- nu există condiţii referitoare la continuitatea
şi derivabilitatea funcţiei F(X).
- printr-o alegere corespunzătoare a criteriilor
de stop, se poate evita terminarea iteraţiilor
într-un punct de inflexiune.
Dezavantaj:
- au o viteză de convergenţă scăzută.
![Page 39: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/39.jpg)
Metodele de ordinul 0
Au la bază relaţia iterativă :
Stabilirea noii direcţii de explorare se face pe baza
unei serii de evaluări a funcţiei obiectiv F(X), într-o
manieră specifică fiecărei metode, iar lungimea
paşilor l(k) este proprie fiecărei metode.
...,3,2,1,)()()()1( kdXX kkkk l
![Page 40: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/40.jpg)
Optimizarea ciclică de-a lungul axelor de coordonate
În cadrul metodei se face o explorareunidimensională pe direcţii care coincid cu axele de
coordonate.
În relaţia iterativă direcţiile d(k) sunt succesiv axelesistemului ortogonal de coordonate:
tntt ddd 1...000,...,0...010,0...001 110
Paşii l(k) pe direcţiile respective sunt determinaţi cu
una din metodele prezentate.
Procesul iterativ se va încheia când va fi îndeplinit
criteriul de stop impus în n iteraţii.
Dacă suprafeţele respective prezintă o vale sau o
creastă care nu este paralelă cu axele de coordonate,
metoda nu poate fi aplicată.
![Page 41: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/41.jpg)
Exemplu numeric
Să se determine minimul funcţiei:
)44min()( 221 2
xxXF
folosind metoda de optimizare ciclică de-a lungul axelor de
coordonate, indicându-se ca punct de pornire X0 = [5, 4].
Iteraţia 1
Se face deplasarea pe direcţia d(0) = [1 0]t, astfel încât
pentru determinarea unei noi aproximaţii se va utiliza
relaţia iterativă:
4
5
0
1
4
5 0000)0()1( l
ll dXX
![Page 42: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/42.jpg)
Pentru determinarea lungimii pasului de deplasare λ(0), se
introduc valorile x1(1) şi x2
(1), în expresia funcţiei obiectiv F:
Exemplu numeric
8510444)5()( )0(2)0(22)0()0( llllF
În continuare se face derivata expresiei F(λ(0)) în raport cu
λ(0) şi se anulează.
50102 )0()0(
)0(
)0(
lll
lF
Valoarea pasului de deplasare se introduce în relaţia
iterativă obţinându-se astfel valoarea noii aproximaţii X(1):
ttxxX 40)1(2
)1(1
)1(
![Page 43: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/43.jpg)
Exemplu numeric
Iteraţia 2
Se face deplasarea pe direcţia d(1) = [0 1]t, astfel încât
pentru determinarea unei noi aproximaţii se va utiliza
relaţia iterativă:
1
111)1()2(
4
0
1
0
4
0
lll dXX
Pentru determinarea lungimii pasului de deplasare λ(1), se
introduc valorile x1(2) şi x2
(2), în expresia funcţiei obiectiv F:
1584440)( )1(2)1(21)1( llllF
În continuare se face derivata expresiei F(λ(1)) în raport cu
λ(1) şi se anulează.
4082 )0()1(
)1(
)1(
lll
lF
![Page 44: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/44.jpg)
Exemplu numeric
Valoarea pasului de deplasare se introduce în relaţia
iterativă obţinându-se astfel valoarea noii aproximaţii X(2):
ttxxX 00)2(2
)2(1
)2(
![Page 45: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/45.jpg)
Metoda direcţiilor conjugate
Fie o funcţie obiectiv care are o expresie pătratică de forma:
DXXCXXF t 2
1
În cadrul acestei metode se pleacă dint-un punct iniţial X(0)
şi se face o deplasare pe direcţia d(0), presupusă
deocamdată arbitrară,
)0()0()0(1 dXX l
unde pasul l(0) se determină cu una din metodele indicate
anterior.
![Page 46: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/46.jpg)
Metoda direcţiilor conjugate
Următoarea direcţie de deplasare se va determina din
următoarea condiţie de conjugare:
10,0,
0, 01
njidCd
dCd
ji
Folosirea direcţiilor conjugate asigură găsirea minimului
unei funcţii pătratice de n variabile în n iteraţii, deplasarea
în interiorul fiecarei iteraţii făcându-se pe o direcţie
conjugată cu cea din iteraţia precedentă.
![Page 47: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/47.jpg)
Exemplu numeric
Să se determine minimul funcţiei:
folosind metoda direcţiilor conjugate, indicându-se ca
punct de pornire X0 = [5, 4].
)44min()( 22
21 xxXF
Iteraţia 1
Se face deplasarea pe o direcţie arbitrară d(0) = [d(0)1 d(0)
2].
Pentru a evidenţia acest lucru se consideră o direcţie
oarecare:
t
d
2
3
2
10 10 d
![Page 48: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/48.jpg)
Mărimea pasului de deplasare se va face cu ajutorul relaţiei:
kkk
kkk
dHd
dg
,
,l
t
t
XXX
XF
X
XFg 21
21
82
80
02
2
22
2
2
2
212
211
X
XF
XX
XF
XX
XF
X
XF
CH
033,5
2
3
2
1
80
02
2
3
2
1
2
3
2
13210
0
t
t
l
Exemplu numeric
![Page 49: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/49.jpg)
Noua aproximaţie se va calcula utilizând relaţia iterativă:
358,0
484,2
2
3
2
1)033,5(
4
500)0()1(
t
dXX l
Iterația 2
Se determină direcţia de deplasare d(1). Aceasta trebuie
să fie conjugată cu direcţia d(0), adică trebuie să fie
satisfăcută relaţia:
0
2
3
2
1
80
0212
11
dd
Exemplu numeric
![Page 50: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/50.jpg)
La condiţia de conjugare se mai adaugă condiţia de vector
de modul unitate pentru d(1) dată de relaţia:
112
11
12
11
tdddd
Rezolvarea sistemului format din ultimele două ecuaţii ne
va conduce la găsirea direcţiei de deplasare d(1) = [d(1)1 d(1)
2].
]t:
td 1428,09897,01
Pentru determinarea valorii pasului de deplasare λ(1) se
va calcula gradientul funcţiei în punctul X(1): ttg 864,29868,4358,0.8484,2.21
5096,2
1428,0
9897,0
80
021428,09897,0
1428,09897,0864,2968,41
t
t
l
Exemplu numeric
![Page 51: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/51.jpg)
Exemplu numeric
Valorile pasului de deplasare şi a direcţiei se vor
introduce în relaţia iterativă obţinându-se:
0
0
1428,0
9897,05096,2
358,0
484,22X
![Page 52: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/52.jpg)
5/14/2016
METODE DE ORDINUL 1
Pentru determinarea direcţiei şi a pasului de deplasare, metodele de ordinul unu apelează la calculul derivatelor de ordinul unu.
pentru o funcţie obiectiv F(X) continuă şi derivabilă, gradientul într-un punct curent X(k) reprezintă vectorul derivatelor parţiale de ordinul unu în punctul respectiv.
Acest vector este ortogonal la conturul lui F(X) ce trece prin punctul X(k).
Direcţia gradientului corespunde celei mai rapide creşteri a lui F(X), ceea ce permite utilizarea ei pentru maximizare sau a direcţiei opuse, pentru minimizare.
![Page 53: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/53.jpg)
Metoda gradientului simplu
Metoda gradientului simplu este cea mai simplă metodă de
ordinul 1 pentru minimizarea unei funcții de mai multe
variabile.
Metoda are la bază relaţia de recurenţă:
unde direcţia d(k) = -F(X(k))
5/14/2016
Avantaj: simplu de aplicat
Dezavantaj: convergenţa lentă.
...,3,2,1,)()()()1( kdXX kkkk
![Page 54: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/54.jpg)
Metoda gradientului simplu
5/14/2016
• Gradientul este întotdeauna perpendicular pe normala la suprafaţa funcţiei obiectiv.
•După fiecare iteraţie noua direcţie a gradientului este întotdeauna perpendiculară pe direcția din iteraţia anterioară.
•În consecință, iteraţiile au tendința de a asigura o deplasare în zig-zag într-un mod foarte ineficient.
![Page 55: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/55.jpg)
Metoda gradientului conjugat
În cadrul metodei gradientului conjugat noua direcţie de
deplasare poate fi determinată dacă se utilizează o
combinaţie între gradientul calculat în punctul X(k) şi
direcţia precedentă,
...,2,1,1 kdgd kkkk
00 gd
Există mai multe variante ale metodelor de gradienţi conjugaţi, acestea deosebindu-se prin modul de determinare a parametrului scalar β(k):
![Page 56: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/56.jpg)
11 ,
,
kk
kkk
gg
gg
11
1
,
,
kk
kkkk
gg
ggg
11
1
,
,
kkk
kkkk
dgg
ggg
•metoda Fletcher-Reeves:
•metoda Polak-Ribière:
•metoda Hestenes-Stiefel:
![Page 57: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/57.jpg)
Metode ale gradinetului conjugat
• Minimul unei funcţii pătratice F(X) poate fi determinat în cel mult n iteraţii, convergenţa lor fiind bună.
• Se pleacă din 3 puncte diferite;
• Minimul se obţine în exact 3 iteraţii
5/14/2016
![Page 58: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/58.jpg)
Exemplu:
Să se minimizeze funcţia:
min F(x1, x2, x3) = (x1)2 + x1(1 – x2) + (x2)
2 – x2x3 + (x3)2 + x3
folosind metoda gradientului simplu.
Se consideră aproximaţia iniţială:
0
0
00X
5/14/2016
![Page 59: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/59.jpg)
10000001)0(2)( 00 XFd
122)1(2)( 3232121 xxxxxxxXF
101101
101000 01 X
In continuare se detemină valoarea lui0
5/14/2016
Se calculează gradientul şi se determină direcţia de deplasare:
![Page 60: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/60.jpg)
2)(4)( 0
0
1
d
Xdf
)()(00)1)(()()( 0200201 XF
)(2)(2 020
21
420 2)(4 0
5/14/2016
Pentru determinarea lungimii pasului de deplasare λ(0), se introduc valorile x1
(1) şi x2(1), în expresia funcţiei obiectiv F:
În continuare se face derivata expresiei F(λ(0)) în raport cu λ(0) şi se anulează.
![Page 61: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/61.jpg)
101000 01 X
2
10
2
1000
2
10
2
11X
5/14/2016
Valoarea pasului de deplasare se introduce în relaţia iterativă obţinându-se astfel valoarea noii aproximaţii X(1):
Se determină noua direcţie de deplasare:
110
2
10
2
1011)( 11 XFd
0101 d
![Page 62: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/62.jpg)
0102
10
2
1 12
X
2
1
2
1 1
Se determină noua aproximaţie:
5/14/2016
2
1
4
1
2
1)()(1
2
1
4
1)( 12112
XF
21)( 121
Pentru determinarea lungimii pasului de deplasare λ(1), se introduc valorile x1
(2) şi x2(2), în expresia funcţiei obiectiv F:
![Page 63: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/63.jpg)
5/14/2016
În continuare se face derivata expresiei F(λ(1)) în raport cu λ(1) şi se anulează.
1)(2)( 1
1
1
d
XdF1)(2 1 2
11
Valoarea pasului de deplasare se introduce în relaţia iterativă obţinându-se astfel valoarea noii aproximaţii X(2):
0102
10
2
1 12
X
0
2
10
2
10
2
1
2
1
2
1
2
12X
![Page 64: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/64.jpg)
11
2
1
2
11
2
1
2
111)( 22 XFd
2
10
2
12d
2
10
2
1
2
1
2
1
2
1 23 X
)1(
2
1
2
1)1(
2
1 22 5/14/2016
Se determină noua direcţie de deplasare:
Se determină noua aproximaţie:
![Page 65: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/65.jpg)
2
3)1(
)( 2
2
3
d
XdF
4
1)1(
2
3)1(
2
1)( 2223 XF
212
2
3)1( 2
5/14/2016
Pentru determinarea lungimii pasului de deplasare λ(2), se introduc valorile x1
(3) şi x2(3), în expresia funcţiei obiectiv F:
În continuare se face derivata expresiei F(λ(2)) în raport cu λ(2) şi se anulează.
![Page 66: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/66.jpg)
2
10
2
1
2
1
2
1
2
1 23 X
4
10
4
1
2
1
2
1
2
1
4
3
2
1
4
33X
5/14/2016
Se determină noua aproximaţie:
![Page 67: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/67.jpg)
0
2
100
2
10)( 33 XFd
0
2
10
4
3
2
1
4
3 34 X
4
3)1(
2
1
4
3 3
5/14/2016
Se determină noua direcţie de deplasare:
![Page 68: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/68.jpg)
08
9)1(
2
1)( 3
3
4
d
XdF
2
3)(
2
3)1(
4
1)( 3234 XF
4
53
5/14/2016
Pentru determinarea lungimii pasului de deplasare λ(3), se introduc valorile x1
(4) şi x2(4), în expresia funcţiei obiectiv F:
Se determină noua aproximaţie:
0
8
50
4
3
2
1
4
34X
4
3
8
9
4
34X
![Page 69: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/69.jpg)
8
5
4
3
8
5
8
5
4
3
8
5)( 44 XFd
8
5
4
3
8
5
4
3
8
9
4
3 45 X
)
2
53(
4
1)
2
3(
4
3)
2
53(
4
1 444
5/14/2016
Se determină noua direcţie de deplasare:
Se determină noua aproximaţie:
![Page 70: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/70.jpg)
032
43
16
73)( 4
4
5
d
dF x
64
51
32
43)(
32
73)( 4245 XF
146434
5/14/2016
Pentru determinarea lungimii pasului de deplasare λ(4), se introduc valorile x1
(5) şi x2(5), în expresia funcţiei obiectiv F:
Se determină noua aproximaţie:
8
5
4
3
8
5
146
43
4
3
8
9
4
35X
1168
1091
73
66
1168
10915X
![Page 71: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/71.jpg)
Se verifică dacă criteriul de convergenţă este satisfăcut:
||F(X5)||:
584
21
584
35
584
21)( 5XF
0786.0584
21584
35584
21)(222
5 XF
5/14/2016
![Page 72: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/72.jpg)
||F(X5)|| = 0.0786, are o valoare foarte mică, apropiată
de 0, astfel încât:
1168
1091
73
66
1168
1091X
este foarte aproape de valoare
de optim, obţinută analitic: 111* x
5/14/2016
![Page 73: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/73.jpg)
5/14/2016
METODE DE ORDINUL 2
Metode de tip Newton
Utilizarea gradientului ca direcţie de explorare esteconformă cu aproximarea liniară a funcţiei obiectiv îndezvoltarea acesteia în serie Taylor. Practic se poateadopta o aproximare pătratică de forma:
)()()()()()( ,2
1,)( kkkkkk dHdXgXFXF
Minimul se obţine prin derivarea expresiei în raport cu componentele lui d(k) şi anularea derivatelor respective:
)()()( 1 kkk gHd
Relaţia care stă la baza determinării direcţiei se introduce în formula iterativă rezultând:
)()()()()1( 1 kkkkk gHXX
![Page 74: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/74.jpg)
Metoda Newton
În cazul unor funcţii obiectiv pătratice, minimul va fi atins
încă din prima iteraţie, pentru λ(0) = 1.
Observaţii:
- Aplicare metodei Newton cere ca matricea H(k) să fie
pozitiv definită la fiecare iteraţie.
- Convergenţa metodei în apropierea optimului va fi
sensibil mai bună decât a metodelor de ordinul 1.
- disponibilitatea derivatelor de ordinul doi permite
verificarea condiţiilor de suficienţă a optimului.
5/14/2016
![Page 75: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/75.jpg)
Metoda Newton
Metoda Newton – 18 iteraţii Metoda gradientului conjugat – 98 iteraţii
5/14/2016
![Page 76: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/76.jpg)
Metoda Newton
5/14/2016
Dezavantaje:
-volumului de calcul necesar obţinerii derivatelor de ordinul doi şi pentru inversarea matricei H(k).
-din cauza condiţiei H(k) > 0 pot apărea situaţii în care metoda nu poate fi aplicată (cazurile în care F(X) este liniară pe anumite porţiuni, iar H(k) = 0).
- pot apărea unele cazuri în care F(X(k+1)) > F(X(k)), deşi H(k) > 0, aproximaţia pătratică fiind valabilă doar într-o
zonă foarte limitată.
![Page 77: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/77.jpg)
Metoda Newton
Exemplul 1.
Să se determine minimul funcţiei:
)44min()( 221 2
xxXF
folosind metoda Newton, indicându-se ca punct de pornireX(0)= [5, 4], iar λ(0) = 1.
Se calculează gradientul şi hesianul funcţiei F(X):
t
t
xxx
XF
x
XFg 21
21
82
80
02
2
22
2
2
2
212
211
x
XF
xx
XF
xx
XF
x
XF
CH
0
0
32
10
80
02
4
51
)0()0()0()1( 1
gHXX
![Page 78: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/78.jpg)
Exemplul 2.
Să se determine minimul funcţiei:
f(x1, x2, x3) = (x1)2 + x1(1 – x2) + (x2)
2
– x2x3 + (x3)2 + x3
Se calculează gradientul:
12212),,( 3232121321 xxxxxxxxxxf
5/14/2016
![Page 79: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/79.jpg)
Matricea Hessiană:
210
121
012
)(2xf
Matricea Hessiană inversată:
43
21
41
211
21
41
21
43
210
121
012
)(
1
12xf
5/14/2016
![Page 80: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/80.jpg)
Se alege punctul iniţial de pornire:
0
0
00
x
Se calculează valoarea gradientului în
punctul curent:
100000100)( 0 xf
101)( 0 xf
5/14/2016
![Page 81: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/81.jpg)
Se scrie relaţia iterativă pentru determinarea
noii aproximaţii:1
1 0 2 0 0( ) ( )
3 1 14 2 40 1
1 1 0 1 02 2
0 131 14 2 4
f f
x x x x
1
1
11
x
5/14/2016
![Page 82: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/82.jpg)
Se calculează gradientul funcţiei în noua
aproximaţie:
000121121112)( 1 xf
Deoarece valoarea gradientului este 0,
metoda a fost convergentă.
5/14/2016
![Page 83: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/83.jpg)
Metode cvasiNewton
Acestea din urmă au fost elaborate în scopul evitării
principalelor dezavantaje ale metodelor Newton referitoare
la inversarea matricei hessiene în fiecare iteraţie.
Metodele quasi-Newton au la bază relaţia de recurenţă,
)()()1( )(~ kkkk gHXXk
)(~ kH1)( kHunde matricea reprezintă o aproximaţie lui
.
Relaţia iterativă de mai sus poate fi considerată ca fiind relaţia fundamentală care stă la baza metodelor ce utilizează derivatele.Cel mai performant algoritm din această categorie de metode este algoritmul Davidson-Fletcher-Powell.
![Page 84: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/84.jpg)
Algoritmul Davidson-Fletcher-Powell
5/14/2016
Caracteristic acestui algoritm este faptul că modificarea matricei la fiecare iteraţie este facută astfel încât pentru o funcţie pătratică de n variabile, în limita a niteraţii, matricea să devină egală cu matricea .
Iniţial, matricea se alege ca fiind matricea unitate In, astfel încât prima iteraţie decurge după metoda gradientului. Ulterior se face o modificare treptată de la direcţia gradientului la cea a metodei Newton, reuşindu-se astfel combinarea avantajelor aferente celor două metode.
)(~ kH
)(~ kH1)( kH
)(~ kH
),(
]~
[]][][~
[
),(
]][[~~~
)()()(
)()()()(
)()(
)()()()()()()1(
kkk
tktkkk
kk
tkkkkkkk
gHg
HggH
gX
XXHBAHH
![Page 85: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/85.jpg)
Algoritmul Davidson-Fletcher-Powell
5/14/2016
unde:
)()1()( kkk XXX )()1()( kkk ggg
,
Rolul matricei A(k) este de a asigura convergenţa lui către , în timp ce matricea B(k) are rolul anulării treptate a efectului alegerii iniţiale, adică a matricei unitate.
Pentru cazul funcţiilor obiectiv pătratice direcţiile utilizate de algoritmul Davidon-Fletcher-Powell sunt direcţii conjugate.
)(~ kH1)( kH
![Page 86: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/86.jpg)
Algoritmul Davidson-Fletcher-Powell
5/14/2016
Algoritmul evoluează satisfăcător dacă se îndeplinesc următoarele condiţii:
- eroarea în evaluarea componentelor gradientului g(k) nu este prea mare (în cazul derivării numerice);
- Matricea nu este singulară. În situaţia în care aceasta este aproape de singularitate una din soluţiile propuse constă în reiniţializarea ei cu matricea unitate (există şi alte posibilitaţi).
)(~ kH
![Page 87: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/87.jpg)
Algoritmul Davidson-Fletcher-Powell
5/14/2016
Exemplu numeric:
Să se determine minimul funcţiei:
folosind metoda Davidson-Fletcher-Powell, indicându-seca punct de pornire X(0)= [6, 5].
Se calculează gradientul iar hesianul funcţiei este matriceaunitate :
22
21 )3()2(4min)( xxXF
4
32
)3(2
)2(8
)(2
1)(
kXX
k
x
xg
)0(
)0()0(
)1(
2
)1(
1)1(
45
326
4
32
10
01
5
6
x
xX
![Page 88: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/88.jpg)
5/14/2016
Pentru determinarea lungimii pasului de deplasare λ(0), se introduc valorile x1
(1) şi x2(1) în expresia funcţiei obiectiv F,
se face derivata în raport cu λ(0), după care se anulează:
Valoarea noii aproximaţii este:
051465)( )0(
)0(
)1(
xF1264,0)0(
494,4
955,1
4
321264,0
5
6)1(X
Iterația 2
988,2
36,0)1(g
506,0
045,4)1(X
012,1
36,32)1(g
![Page 89: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/89.jpg)
Se calculează matricea :
5/14/2016
)1(~H
001,10147,0
0147,01554,0
012,1
36,32012,136,32
10
01
0012,1
036,32
10
01
012,1
36,32506,0045,4
00
506,0045,4
0506,0
0045,4
10
01)1(H
),(
]~
[]][][~
[
),(
]][[~~~
)()()(
)()()()(
)()(
)()()()()()()1(
kkk
tktkkk
kk
tkkkkkkk
gHg
HggH
gX
XXHBAHH
![Page 90: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/90.jpg)
5/14/2016
În continuare se poate calcula noua aproximaţie X(2):
unde λ(1) = 0,4984 a fost determinat în mod similar ca λ(0).
Deaorece:
calculele sunt terminate.
3
2
494,4
36,0
0010,10147,0
0147,01554,0
494,4
955,1 )1(
)2(
2
)2(
1)2( X
XX
tg 00)2(
![Page 91: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/91.jpg)
5/14/2016
PROGRAMAREA NELINIARĂ CU RESTRICŢII
![Page 92: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/92.jpg)
5/14/2016
GENERALITĂŢI
Soluţia optimă trebuie să fie aleasă în mod obligatoriu în interiorul domeniului admisibil pentru vectorul variabilelor de optimizare X = [x1, x2, ..., xn].
Problema care trebuie rezolvată se referă la determinarea valorii variabilelor care asigură extremul unei funcţii obiectiv:
în prezenţa restricţiilor:
)...,,,(min)(min 21 nxxxFXF
mixxxg ni ,,1,0)...,,,( 21
njx j ,,1,0
![Page 93: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/93.jpg)
Condiţiile Kuhn-Tucker (K-T)
Condiţiile care trebuie să fie satisfăcute pentru un optim cu
restricţii, local sau global au fost determinate de K-T având
ca punct de plecare modelele clasice ale multiplicatorilor lui
Lagrange.
A. Condiţiile K-T pentru cazul gi(X)
Funcţia Lagrange asociată problemei PN cu restricţii
(prezentată anterior), în care F(X) şi gi(X) au derivate parţiale
de ordinul întâi, în raport cu xj, j = 1, …, n, respectiv gi(X)
sunt doar restricţii de egalitate, are următoarea formă:
5/14/2016
m
i
ii XgxFx1
)()(),(
unde λi, i = 1, ..., m, sunt multiplicatorii Lagrange.
![Page 94: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/94.jpg)
Condiţiile Kuhn-Tucker (K-T)
Un punct extrem al funcţiei Φ(X, λ), care poate fi punctul de
minim, se poate obţine prin anularea derivatelor de ordinul 1:
5/14/2016
m
i j
ii
jj
njx
Xg
x
XF
x
X
1
,,1,0)()(),(
miXgX
i
i
,,1,0)(),(
Relaţiile reprezintă condiţiile necesare dar nu şi suficiente pentru minim. Dacă funcţia obiectiv F(X) este convexă, iar restricţiile sunt liniare atunci este asigurată şi suficienţa.
Concluzie:Minimul funcţiei F(X), în prezenţa restricţiilor de egalitate gi(X) = 0, este obţinut pentru acele valori ale lui X care minimizează fără restricţii funcţia auxiliară Φ(X, λ).
![Page 95: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/95.jpg)
Condiţiile Kuhn-Tucker (K-T)
ALGORITM:
1. Se aleg iniţial valori pentru λi, i = 1, ..., m;
2. Se rezolvă sistemul
de n ecuaţii cu n necunoscute.
3. Soluţiile determinate care depind de valorile lui λi sunt
introduse în cele m restricţii.
4. Dacă restricţiile nu sunt satisfăcute, se aleg alte valori
pentru λi, i = 1, ..., m, până când cele (n+m) ecuaţii vor fi
satisfăcute de valorile alese.
5/14/2016
m
i j
ii
jj
njx
Xg
x
XF
x
X
1
,,1,0)()(),(
![Page 96: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/96.jpg)
Condiţiile Kuhn-Tucker (K-T)
B. Condiţiile K-T pentru cazul gi(X) ≤ 0
Utilizând variabile auxiliare, wi, i = 1, ..., m, inegalităţile se pot
transforma în egalităţi:
Funcţia Lagrange asociată problemei PN cu restricţii are
forma:
care conduce la un punct extrem dacă sunt îndeplinite
condiţiile:
miwXg ii ,,1,02
m
i
iii XgwXFwX1
2,,
![Page 97: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/97.jpg)
Condiţiile Kuhn-Tucker (K-T)
Deoarece mărimile wi sunt variabile auxiliare, acestea pot fi
eliminate.
gi(X) = 0, independent de i, numai dacă wi = 0.
A treia relaţie poate fi rescrisă, ţinînd cont de relaţia a doua:
nj
x
Xg
x
XF
x
wX
j
im
i
i
jj
,,1,0,,
1
miwXg
wXii
i
,,1,0,, 2
miw
w
wXii
i
,,1,02,,
miXgii ,,1,0
![Page 98: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/98.jpg)
Condiţiile Kuhn-Tucker (K-T)
Condiţiile necesare pentru un punct de minim local şi global.
În situaţia în care F(X) şi gi(X) sunt convexe, relaţiile ne dau
minimul global.
nj
x
Xg
x
XF
x
wX
j
im
i
i
jj
,,1,0,,
1
miXgii ,,1,0
miXgi ,,1,0
mii ,,1,0
condiţiile Kuhn-Tucker
![Page 99: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/99.jpg)
Condiţiile Kuhn-Tucker (K-T)
Observaţii
Semnul multiplicatorilor λi, i = 1, ..., m, se schimbă în funcţie
de natura optimului căutat şi de semnul restricţiilor.
Condiţiile Kuhn-Tucker ne indică faptul că pentru o restricţie care nu este activă, de tipul:
multiplicatorul λi = 0.
i
n
j
jji bxa 1
![Page 100: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/100.jpg)
Metode ale programării neliniare cu restricţii
5/14/2016
Metodele programării neliniare cu restricţii se împart în două mari categorii:
- metode ale direcţiilor admisibile; - metode ale funcţiilor penalizare.
A.Metode ale direcţiilor admisibile
Sunt concepute astfel încât să folosească tehnici de minimizare fără restricţii, dar în acelaşi timp să considere şi restricţiile de inegalitate.
În acest sens se alege un punct iniţial X(0) şi o direcţie astfel încât o deplasare mică de-a lungul ei să nu modifice restricţiile, iar funcţia obiectiv F(X) să se îmbunătăţească.
![Page 101: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/101.jpg)
Metode ale programării neliniare cu restricţii
5/14/2016
Direcţia de deplasare care satisface prima cerinţă se numeşte direcţia admisibilă.
Astfel, plecând din punctul iniţial X(0), pe direcţia d(0) = – F(X(0)), se obţine X(1).
Procedeul se repetă până în momentul în care este imposibil să se mai găsească o direcţie admisibilă.
![Page 102: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/102.jpg)
Metode ale programării neliniare cu restricţii
5/14/2016
B. Metode ale direcţiilor admisibile
Problema minimizări funcţiei F(X) în prezenţa restricţiilor gi(X) ≥ 0, i = 1, 2, ..., m, poate fi abordată prin definirea unei funcţii de penalizare de tipul:
0,
0,0
y
yy
şi considerarea minimizării funcţiei fără restricţii:
XgXFX i
m
i
1
![Page 103: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/103.jpg)
Metode ale programării neliniare cu restricţii
5/14/2016
Observaţii
Dacă toate restricţiile gi(X) ≥ 0 sunt satisfăcute, al doilea termen nu contribuie cu nimic la valoarea lui Ψ(X).
Dacă avem o resticție de tipul gi(X) < 0, atunci φ(gi) = ∞ şi vom fi departe de minim.
Al doilea termen din suma respectivă penalizează orice încălcare a restricţiilor.
![Page 104: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/104.jpg)
Metode ale programării neliniare cu restricţii
5/14/2016
Dificultăţi în abordare
Există situaţii pentru care trebuie aleasă o funcţie de penalizare mai puţin rigidă, care să prezinte proprietăţile de regularitate necesară. De exemplu, atunci când funcţia obiectiv prezintă discontinuităţi.O alegere a unei funcţii de tipul:
este mai potrivită. Ea este continuă şi are derivată continuă pentru toate valorile lui y. Această metodă nu este foarte eficientă în toate cazurile.
0
0,02 yy
yy
![Page 105: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/105.jpg)
Metode ale programării neliniare cu restricţii
5/14/2016
Metoda Fiacco-McCormick
Pentru a evita dificultăţile întâlnite anterior, metoda determină punctul de minim optimul dinspre interiorul mulţimii restricţiilor. Se defineşte funcţia,
Minimul acestei funcţii trebuie să se realizeze în interiorul mulţimii de restricţii deoarece pe această frontieră este îndeplinită condiția:
Punctul de minim depinde de r0 şi va fi notat X(r0). Metoda prezintă interes mai ales atunci când avem de considerat restricţii puternic neliniare, eliminând complet mişcarea de-a lungul frontierelor mulţimii restricţiilor.
m
i i
rXg
rXFrXZ1
0,1
,
0, 0 XgrXZ i
![Page 106: Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1. Introducere Instoric: • Harold William Kuhn (1925- ) (Condiţiile necesare şi suficiente](https://reader034.vdocuments.mx/reader034/viewer/2022042806/5f71de019d24056e8930681c/html5/thumbnails/106.jpg)
Metode ale programării neliniare cu restricţii
5/14/2016
ALGORITM
1.Se alege r0 > 0 şi X(0) în interiorul mulţimii de restricţii. Se consideră problema minimizării fără restricţii a funcţieiZ(X, r).
2.Se repetă acest proces de minimizare pentru un şir de valori {r}={r0 > r1 > r2 > ... > rk > 0}.Prin micşorarea lui r, influenţa termenului al doilea, care penalizează apropierea de frontiera mulţimii restricţiilor,se reduce şi efortul în minimizarea a funcției Z(X, r) se concentrează asupra lui F(X).
Şirul {X(r0), X(r1), ...} se poate apropia din ce în ce mai mult de frontiera mulţimii restricţiilor, dacă aceasta este avantajos pentru micşorare funcției F(X).