Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1....

106
Programarea neliniară

Transcript of Programarea neliniarăgheorghe-grigoras.ieeia.tuiasi.ro/MOPEI/Programarea Neliniara.pdf · 3 1....

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Î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

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

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

• 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

||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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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).