Sunteți pe pagina 1din 11

Metoda punctului interior

4. METODA PUNCTULUI INTERIOR


4.1. Varianta barieră

Considerăm problema de programare nelineară:


z(x1 , x2 ,..., xn )  min(max)!
(4.1)
fi ((x1 , x2 ,..., xn )  0, i  1,2,...,m

Pentru această problemă am studiat mai multe metode de rezolvare:


 Metoda multiplicatorilor Kuhn-Tucker
 Metoda funcţiilor de penalizare
 Metoda programării pătratice succesive
Primele două metode (ne referim la varianta iterativă a metodei Kuhn-Tucker) au un
mare dezavantaj: se porneşte de la o soluţie care încalcă restricţiile şi care este modificată
treptat astfel încât restricţiile să fie respectate. În cazul metodei Kuhn-Tucker se adaugă sau se
incrementează treptat multiplicatorii λ, iar în cazul funcţiilor de penalizare se ajustează
coeficienţii de penalizare.
Dezavantajele acestor două metode sunt
 Modificarea soluţiei se face treptat din zona restricţiilor încălcate către limita lor.
Rezultă că o soluţie acceptabilă se obţine abia după ce toate restricţiile sunt
respectate.
 Numărul de iteraţii este mare, practic fiind obligatorie trecerea în limita restricţiilor.

Pe de altă parte, metoda programării pătratice este aplicabilă numai în situaţia în care
funcţia obiectiv poate fi aproximată printr-o formă pătratică în jurul valorii optime, iar
convergenţa este asigurată dacă funcţia este convexă.

Metoda punctului interior modifică metoda funcţiilor de penalizare prin adoptarea unei
funcţii de penalizare diferită, care nu acceptă valori în afara restricţiilor, iar penalizarea
funcţiei obiectiv creşte o dată cu apropierea, din interior de restricţii. Realizarea acestor
deziderate se face prin funcţia de penalizare:
n

P([ X ])  ln( fi X (4.2)


 i1
Funcţia obiectiv de tip Lagrange, va fi:
(4.3)
X   zX     PX 
Exemplu: Să considerăm problema:
1
 
z(x, y)   x 2  y 2  min!
2
x2

Funcţia de tip Lagrange va fi:


1
 
(x, y)   x 2  y 2    lnx  2 (4.4)
2
Întrucât, pe măsura ce ne apropiem de extrem, este necesar ca ε → 0, se preferă varianta
echivalentă cu t=1/ε, t → ∞:

Tehnici de optimizare în energetică Pag 1


.
Metoda punctului interior

X   t  zX   PX  (4.3)

Se defineşte calea centrală şirul de soluţii:

X (t)  X | t  z([ X ]  P([ X ])  min!


*
(4.5)

Paşii de rezolvare:
1. Stabileşte contorul de iteraţii k=1. Se iniţializează t la o valoare mică (0-10)
2. Se determină [X*] din minimizarea funcţiei Φ (rel. 4.3). Se va utiliza metoda
NEWTON pentru rezolvarea ecuaţiilor de extrem:

 0, i  1,2,..., n
xi
3. Se incrementează t cu o relaţie de forma:
t k1  t k  , α > 1
4. Se verifică testul de convergenţă:
X  X 1  
k k

5.

Dacă acesta este satisfăcut, algoritmul se opreşte.
k=k+1 şi se trece la pct. 2

Exemple
1. Se consideră problema:
1

z(x, y)   x 2  y 2  min! 
2
x2
Funcţia de penalizare este:
P(x, y)   ln(x  2)
Iar funcţia Φ va fi:
t

x, y  t  z(x, y)  P(x, y)   x 2  y 2  ln(x  2) 
 1  2
tx
(
 x, y)  x2
 ty 
 
Şi hessianul: 
t 1 
 0
H(x, y)   x  22 
 
 0 t 
S-a scris hessianul pentru a rezolva sistemul de ecuaţii
(x, y)  0
prin metoda Newton, adică:
 x 
 
(x, y)   x 0 , y 0  H x 0 , y 0  y
 

0 
 
 x 
 y

 H x 0 , y 0
1

  x 0 , y 0  
 

Tehnici de optimizare în energetică Pag 2


.
Metoda punctului interior

 x1   x 0  x
 1   0  
y y y
     
Evident că rezolvarea sistemului de mai sus se face iterativ. Precizia impusă pentru
rezolvarea ecuaţiilor de extrem este ca   0.01 Se alege ca punct de plecare punctul
interior x0 = 2.5, y0=1. Precizia de convergenţă |[Xk]-[Xk-1]|<0.005
Rezultatele obţinute sunt prezentate în tabelul de mai jos:

Iteraţ x y t Nr. Φ(x,y) z(x,y)


ia iteraţii
k Newton
0 2.5 1 3.625
1 2.414 0 1 2 3.796 2.913
2 2.225 0 2 5 6.442 2.475
3 2.118 0 4 6 11.109 2.243
4 2.061 0 8 7 19.788 2.123
5 2.031 0 16 8 36.473 2.062
6 2.016 0 32 9 69.163 2.031
7 2.008 0 64 10 133.854 2.016
8 2.004 0 128 11 262.546 2.008
Este importantă alegerea valorii iniţiale a lui t. Pentru valori apropiate de optim se pot lua
valori mai mari, iar pentru valori mai depărtate de optim trebuie luate valori mai mici. Se
observă că t este dublat în fiecare iteraţie. Pe de altă parte se observă că numărul de iteraţii
Newton necesare pentru rezolvarea sistemului de ecuaţii de extrem pentru funcţia Φ creşte cu
creşterea lui t. Valoarea minimă a funcţiei Φ creşte cu iteraţia datorită creşterii lui t, dar nu în
aceeaşi măsură în care creşte t.

2. Se consideră problema:
z(x, y)  6  (x  2  y  1)2  (x  2  y  4)2  max!
x0
y0
xy2
Funcţia de penalizare este:
P(x, y)   ln(x)  ln( y)  ln(2  x  y)
Iar funcţia Φ va fi:

x, y  t  z(x, y)  P(x, y)  t  6  (x  2  y 1)2  (x  2  y  4)2 
 ln(x)  ln( y)  ln(2  x  y)
Se observă că funcţia de penalizare s-a luat cu – deoarece problema este de maxim.
   4  x  10   1  1 
x
( x, y)  t   2  x  y 
  1 1
 16  y  12
    
 y 2  x  y 

Şi hessianul:

Tehnici de optimizare în energetică Pag 3


.
Metoda punctului interior

1  1 1 
 4
0  x 2  x  y2 2  x  y 2

2
H(x, y)  t    16 1 1 1 
 0   
  2
 2  x  y 
2
y 2 2  x  y 
Precizia impusă pentru rezolvarea ecuaţiilor de extrem este ca   0.01 Se alege ca
punct de plecare punctul interior x0 = 0.2, y0=0.1. Precizia de convergenţă |[Xk]-[Xk-1]|<0.002
Rezultatele obţinute sunt prezentate în tabelul de mai jos:
Iteraţ x y t Nr. Φ(x,y) z(x,y)
ia iteraţii
k Newton
0 0.2 0.1 -10.36
1 1.682 0.059 1 6 -4.235 -0.58
2 1.804 0.032 2 6 -4.382 0.139
3 1.887 0.017 4 6 -3.614 0.543
4 1.937 0.008 8 7 -0.908 0.762
5 1.967 0.004 16 8 5.758 0.878
6 1.983 0.002 32 9 20.40 0.938
7 1.991 0.001 64 10 51.03 0.969
8 1.996 0 128 11 113.649 0.984
9 1.998 0 256 12 240.267 0.992
10 1.999 0 512 13 494.882 0.996

3. Să se rezolve problema:
z(x, y)  x 2  e x  y 2  e  y  max!
x0
y0
xy2
Funcţia de penalizare este:
P(x, y)   ln(x)  ln( y)  ln(2  x  y)
Iar funcţia Φ va fi:

x, y  t  z(x, y)  P(x, y)  t  x 2  e x  y 2  e y 
 ln(x)  ln( y)  ln(2  x  y)
  
e x, y)  t  x (2 x) x   1 
( 1 
 2  xy

 xy  
1 y  (2  y)  e 1
   
 2  x  y 
y

 
 x 2  4  x  2  e x 0 
H(x, y)  t   
 0  
y 2  4  y  2  e y 
1 1 1 
 2 
  x
2 1 x  y 2
1 2  x  1y
2

 
Tehnicide optimizare în energetică  Pag 4
.
Metoda punctului interior
 y 2 2  x  y 2 
2  x  y 2

Tehnici de optimizare în energetică Pag 5


.
Metoda punctului interior

Precizia impusă pentru rezolvarea ecuaţiilor de extrem este ca


  0.01 Se alege ca
punct de plecare punctul interior x0 = 0.5, y0=0.6. Precizia de convergenţă |[Xk]-[Xk-1]|<0.005
Rezultatele obţinute sunt prezentate în tabelul de mai jos:
Iteraţ x y t Nr. Φ(x,y) z(x,y)
ia iteraţii
k Newton
0 0.5 0.6 0.349
1 0.803 0.803 3 5 0.363 0.578
2 0.863 0.863 6 3 2.181 0.628
3 0.915 0.915 12 4 6.098 0.670
4 0.951 0.951 24 5 14.349 0.699
5 0.974 0.974 48 6 31.377 0.716
6 0.986 0.986 96 7 66.034 0.726
7 0.993 0.993 192 8 135.991 0.731
8 0.996 0.996 384 9 276.572 0.733
9 0.998 0.998 768 10 558.415 0.734

4.2. Varianta bazată pe condiţiile Kuhn-Tucker

Este o variantă de rezolvare a problemei (4.1) care porneşte de la condiţiile Kuhn-Tucker


(2.91), scrise sub forma:
z m   0, j  1,2,..., n
x  f
i
j  i  x
i1
j
i  si  0, i  1,2,..., m (4.6)
fi X   si  0, i  1,2,...,
m
În funcţie de felul restricţiilor şi de extremul urmărit, având în vedere tabelul 2.1, putem scrie:

Tabelul 4.1
Semnul multiplicatorilor λ şi a variabilelor ecart în funcţie de felul restricţiilor de tip
inegalitate:
Extrem min max Var.
Restricţie ecart
 i  0 i  0 si  0
i ·si  0 i·si  0
 i  0 i  0 si  0
i ·si  0 i·si  0

Dacă rezolvăm sistemul (4.6) prin metoda Newton, atunci rezultă sistemul: S  
Hx f T     s 
Tehnici de optimizare în energetică Pag. 6
Metoda punctului interior

S  e
f  x s   f  s
(4.7)

Tehnici de optimizare în energetică Pag. 7


Metoda punctului interior

unde [HΦ] reprezintă hessianul funcţiei Lagrange (matricea derivatelor de ordinul 2 în raport
cu variabilele x1, x2,...,xn), [S] o matrice care are pe diagonală variabilele ecart, s i, i=1,2,..,m,
[Λ] o matrice care are pe diagonală multiplicatorii, λi, i=1,2,..,m, iar [e]=[1 1 1]T.
Pentru a fi respectate condiţiile din tabelul 4.1, referitoare la produsele λ·s, literatura
recomandă ca în ecuaţiile referitoare la aceste variabile (ecuaţiile 2 din 4.7), să se adauge un
termen care să conducă la soluţiile dorite:
S   s  S  e  / t  (4.8)
e
unde t > 0 reprezintă variabila utilizată în varianta barieră, iar σ € (0,1) sau σ € (-1,0), având
acelaşi semn cu produsul i ·si din tabelul 4.1.
Sistemul (4.7) se mai scrie:  
H  f T 0  x   
   
f  0 I       f   s  (4.9)
 0 S   s   
    S  e  e
 
t
Paşii de lucru în acest caz:
1. Se determină expresiile analitice a elementelor matricelor [HΦ], f , .
2. Se iniţializează variabilele problemei: [X]=[X0], [λ] = [λ0] = 0, [s] = [s0]= - [f0], şi
contorul de iteraţii Newton, k=1
3. Se stabilesc valori iniţiale pentru σ şi t şi precizia de rezolvare, ε.
4. Se rezolvă sistemul (4.9) şi se determină [Δxk], [Δλk], [Δsk]
5. Se modifică variabilele problemei:
[Xk] = [Xk-1]+ [Δxk]
[λk] = [λk-1]+ [Δλk]
[sk] = [sk-1]+ [Δsk]
6. Se verifică testul de convergenţă:
|[Xk] - [Xk-1]| < ε
Dacă este satisfăcut, algoritmul se opreşte.
7. Se incrementează k=k+1 şi se trece la pct. 4.

Exemple
1. Se consideră problema:
1
 
z(x, y)   x 2  y 2  min!
2
x2
Funcţia lui Lagrange:
1
 
(x, y,  )  z      x 2  y 2    (x  2)
2
f
Gradientul funcţiei:
x   
 
 y 
 
f   1 0
Hessianul funcţiei lui Lagrange:
1 0
H   
0 1
Tehnici de optimizare în energetică Pag. 8
Metoda punctului interior
 
Se stabileşte ca punct de pornire:
x=3, y=1, λ=0.

Tehnici de optimizare în energetică Pag. 9


Metoda punctului interior

Se consideră restricţia cu variabilă ecart sub forma: f-s=0, adică (x-2-s)=0.


Rezultatele pe iteraţii, sunt date în tabelul următor:
Iteraţia x y σ/t λ s
Newto
n
0 3 1 0 1
1 1.5 0 1.5 1.5 -0.5
2 2.25 0 0 2.25 0.25
3 2.025 0 0 2.025 0.025
4 2 0 0 2 0.0003
Se obţine zmin = z(2,0) = 2.
Se remarcă că valoarea σ/t este esenţială în prima iteraţie, dacă valoarea aleasă nu este bună,
numărul de iteraţii poate creşte foarte mult.

2. Să se rezolve problema:
z(x, y)  6  (x  2  y  1)2  (x  2  y  4)2  max!
x0
y0
xy2
Funcţia lui Lagrange:
(x, y, )  z     6  (x  2  y 1)2  (x  2  y  4)  1  x 
f
 2  y  3  (x  y  2)
Gradientul funcţiei:
  4  x  10  1  3 
 16  y 12  2  3 
 
 1 0 
 
f    0 1
 1 1

Hessianul funcţiei
 4 lui0Lagrange:

H 
0 
  16
Se stabileşte ca punct de pornire:
x = 0.5, y = 0.5, λ1 = 0, λ2 = 5, λ3 = 0, s1 = 0.5, s2 = 0.5, s3 = 1
Rezultatele pe iteraţii sunt date în tabelul următor.
Iteraţia x y σ/t λ1 λ2 λ3 s1 s2 s3
Newto
n
0 0.5 0.5 0 5 0 0.5 0.5 1
1 2 -0.038 2 0 13.38 2 2 -0.038 0.038
2 1.998 0.002 0 0 14.04 2.007 1.998 0.002 0
3 2 0 0 0 14 2 2 0 0
zmax= z(2,0) = 1
Se constată că pe parcursul iteraţiilor Newton variabilele ecart au şi valori negative.

Tehnici de optimizare în energetică Pag. 10


Metoda punctului interior

3. Să se rezolve problema:
z(x, y)  x 2  e x  y 2  e y  max!
x0
y0
xy2
Funcţia lui Lagrange:
(x, y, )  z     x 2  e x  y 2  e y  1  x 
f
 2  y  3  (x  y  2)
Gradientul funcţiei:
 x  e x  (x  2)  1  3 
   y 
y  e  ( y  2)     
 2 3
1 0 
f    0  
 1 
1
1

Hessianul funcţiei
(x 2 lui4 Lagrange: 
 x  2)  e x 0
H 
 
 0 ( y 2  4  y  2)   y 
e
Se stabileşte ca punct de pornire:
x = 0.6, y = 0.6, λ1 = 0, λ2 = 0, λ3 = 0, s1 = 0.6, s2 = 0.6, s3 = 0.8
Rezultatele pe iteraţii sunt date în tabelul următor.
Iteraţia x y σ/t λ1 λ2 λ3 s1 s2 s3
Newto
n
0 0.6 0.6 0 0 0 0.6 0.6 0.8
1 0.93 0.93 0.363 0 0 0.454 0.93 0.93 0.139
2 0.988 0.988 0 0 0 0.373 0.988 0.988 0.025
3 1 1 0 0 0 0.368 1 1 0

zmax = z(1,1) = 0.736

Varianta este rapid convergentă, singura problemă mai delicată fiind configurarea σ/t în prima
iteraţie. În restul iteraţiilor nu mai este necesară.

Tehnici de optimizare în energetică Pag. 11

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