Sunteți pe pagina 1din 20

c 

 


 

• 
  



’ 

Cu toate că programarea liniară constituie un instrument de reprezentare a realităţii foarte comod


şi puternic, totuşi fenomenele lumii reale nu sunt liniare. Acesta a constituit principala justificare
a efortului de cercetare referitor la extinderea şi dezvoltarea tehnicilor proprii programării liniare
la problemele neliniare.

•  al acestui proiect realizează o prezentare succintă a domeniului programării neliniare,


enumerând principalele clase de probleme neliniare şi unele exemple de probleme din lumea
reală, care pot fi modelate utilizând programarea neliniară. În •  domeniul este restrâns
la clasa de probleme convexe, pentru care sunt trecute în revistă principalele pachete software
care le rezolvă. • 

 şi descriu metoda de punct interior, aplicată la clasa problemelor
de programare pătratică, respectiv la clasa celor de optimizare cu restricţii liniare, în fiecare caz
fiind prezentat şi algoritmul realizat în MATLAB.

În 
 sunt listate sursele celor două programe MATLAB, iar în finalul proiectului este
prezentată   .



















•   
         


•  

In cadrul acestui domeniu, se diferenţiază 5 clase de probleme neliniare.

1) Ê 

   


Au forma generală:

Să se determine ‰ r   care minimizează valoarea funcţiei

 ·  ( 1 ,  2 ,...,   )
minimul fiind luat dupa toţi  r   în care funcţia  este definită.

2) Ê 

 





 






În această clasă un loc deosebit îl ocupă problemele de programare pătratică în care funcţia
obiectiv este un polinom de gradul doi în variabilele sale:


 ( 1 ,  2 ,...,   )   0  Î    Î     .
 1 1   

Importanţa problemelor de programare pătratică este motivată prin următoarele aspecte:



ü modelează cu suficientă acurateţe multe situaţii practice;
ü se rezolvă prin metode derivate din metoda simplex într-un număr finit de paşi;
ü rezolvarea multor probleme cu restricţii liniare şi funcţie obiectiv neliniară se poate reduce la
rezolvarea unei secvenţe de probleme de programare pătratică ale căror funcţii obiectiv
aproximează din ce în ce mai bine obiectivul neliniar original.

3) Ê    

Au următoarele caracteristici:

ü funcţie obiectiv 


 dacă aceasta se minimizează (echivalent: funcţie obiectiv
  dacă aceasta se maximizează);
ü restricţiile 
  sunt de forma   (  ) m 0 în care   este o funcţie 

(echivalent cu   (  ) À 0 cu   funcţie  );
i

ü eventualele restricţii
  sunt  
, cerinţă motivată prin aceea că funcţiile liniare
sunt singurele funcţii simultan convexe şi concave.

Problemele convexe au următoarele proprietăţi fundamentale:


ü mulţimea soluţiilor admisibile este 
;
ü funcţia obiectiv admite cel mult un optim (minim sau maxim)  ; automat acesta va fi
un optim   şi va reprezenta optimul problemei;
ü dacă optimul 


  al funcţiei obiectiv nu este o soluţie admisibilă, atunci
optimul 
 se găseşte cu necesitate pe 
 mulţimii A.

Importanţa acestei clase de probleme este covârşitoare. Într-adevăr:

ü programarea convexă include programarea liniară ;


ü în acest domeniu a fost depus cel mai mare efort de cercetare şi s-au obţinut cele mai
puternice rezultate 


(cum ar fi teoria dualităţii neliniare, condiţiile de optimalitate
Kuhn ± Tucker) şi  
(metode şi algoritmi de optimizare);
ü întregul formalism matematic al teoriei economice moderne se bazează pe ipotezele de
convexitate.

4) Ê      




Se caracterizează prin faptul că funcţia obiectiv  ca şi funcţiile   din restricţii sunt 
  
în
sensul următoarei definiţii:

Funcţia  ( 1 ,  2 ,...,   ) se numeşte 


   dacă ea se poate scrie ca o sumă de funcţii, fiecare
de câte o singură variabilă:

 ( 1 ,  2 ,...,   )   1 ( 1 )   2 (  2 )  ...    (   ) .

Separabilitatea este importantă prin aceea că uşurează optimizarea. De exemplu, optimizarea unei
funcţii separabile fără restricţii se reduce la optimizarea independentă a termenilor.

5) Ê     

Această clasă reuneşte problemele care nu satisfac ipotezele de convexitate. Ele sunt dificile în
primul rând din cauza faptului că au mai multe minime locale. După cum s-a mai spus, metodele
actuale pot determina un asemenea optim, dar nu garantează că optimul găsit este cel global. Din
fericire, există câteve tipuri de probleme neconvexe, utile în practică, ce pot fi rezolvate fără
dificultăţi deosebite prin metode speciale. Printre aceste tipuri, se numără problemele de
programare   . 

  

Programarea matematică neliniară are aplicabilitate în domenii variate: electricitate, mecanică,


chimie, biologie etc.

Exemple de probleme din domeniul electric:


ü proiectarea unui transformator/circuit electric
ü planificarea puterii electrice statice
ü compactizarea circuitelor în sensul plasării cipurilor
ü calculul distribuţiei electronilor pe o sferă conductoare.

Exemple de probleme din domeniul mecanic:

ü optimizarea formei unei came


ü optimizarea traiectoriei unui corp greu plasat în camp gravitaţional
ü determinarea formei unui lanţ de densitate uniformă, de lungime dată
ü optimizarea strunjirii unui arbore.

Exemple de probleme din domeniul chimic:

ü proiectarea unui reactor chimic


ü calculul echilibrului chimic optim
ü optimizarea procesului de separare printr-o membrană cu n straturi
ü optimizarea proceselor de alchilare
ü calculul unui amestec chimic optim
ü probleme de separare şi amestec (blending)
ü optimizarea procesului de combustie a propanului în aer.

Exemple de probleme din domeniul economic:

ü problema investiţiilor.

Exemplu numeric: Optimizarea compoziţiei unui amestec chimic


18
min Î (   ) 2
 ·1

1 9  2 14 3  4 · 0
1 10  2 15 3 5 · 0
1 11  2 16 3  6 · 0
1 12  2 17 3  7 · 0
1 13  2 18 3 8 · 0
 4  5   6   7  8 1 · 0
9  10  11  12  13 1 · 0
14  15  16  17  18 1 · 0
14 66,67  4 · 0
15 50 5 · 0
16 0,015 6 · 0
17 100 7 · 0
18 33,338 · 0.


























•            

Domeniul programării convexe a cunoscut o dezvoltare remarcabilă în ultimii ani, atat din punct
de vedere teoretic, cat şi al aplicaţiilor software proiectate pentru rezolvarea acestor probleme. In
Tabelele 1 şi 2 sunt prezentate principalele pachete software destinate acestui domeniu, grupate
în funcţie de dimensiunea problemelor rezolvate.
 

Ê  Ê   


DUALQP Programare pătratică strict convexă Goldfarb-Idnani cu factorizarea
Cholesky
IQP Programare pătratică cu matrice simetrică, Strategia mulţimii active Murray cu
posibil nedefinită factorizarea Bunch-Kaufman a
matricelor simetrice
MINQ Programare pătratică nedefinită Căutare de-a lungul coordonatelor
cu paşi de minimizare pe subspaţii
QLD Programare pătratică cu matrice simetrică şi Factorizare Cholesky
pozitiv definită
QPAKO Programare pătratică convexă cu matrice Metoda Wolfe
diagonală
SOLQP Programare pătratică standard cu matrice Punct admisibil interior, sistem
simetrică şi matrice a restricţiilor rară KKT, punct de optim
 !

"
 #
 
#
""
  


 
 
Ê  Ê   


BQPD Programare pătratică în forma generală, în Strategia mulţimii active
care variabilele şi restricţiile pot fi dublu
mărginite
LOQO Programare pătratică de forma Metoda primal-duală de punct
1 interior cu căutare liniară
min   $      
2
    
  
LSSOL Programare pătratică a celor mai mici pătrate, Strategia mulţimii active
inclusiv a problemelor de programare liniară,
cu matrice densă
MOSEK Programare pătratică cu restricţii funcţii Tehnologii de calcul cu matrice rare
pătratice
QHOPDM Programare pătratică Metoda primal-duală de punct
interior cu corecţii multiple, două
tehnici de factorizare Cholesky,
algoritmul gradului minim şi
algoritmul umplerii minime locale
QPABO Programare pătratică convexă Metoda primal-duală de punct
interior
QPOPT Programare pătratică (convexă sau Metoda mulţimii active
neconvexă) sau de programare liniarăâ cu
matrice dense
 !

"
 #
 

#
"
# "#


•                 


    

Metodele de punct interior au fost introduse de Karmarkar (1984). Imediat s-a constatat o
legătură formală foarte stransă între acestea şi clasicile metode barieră, ceea ce a condus la
reconsiderarea metodelor barieră atat din punctul de vedere al teoriei, cat şi al aspectelor
computaţionale. Fundamental pentru metodele de punct interior este definirea unei familii
continuu parametrizate a unor soluţii aproximative a problemei, care converg asimptotic la soluţia
exactă a acesteia. Când parametrul barieră îşi atinge limita, drumul către soluţie urmăreşte o
traiectorie netedă, ³traiectoria barieră´. Fiecare iteraţie a ³metodei de urmărire a traiectoriei´
construieşte un pas, care urmăreşte această traiectorie, deplasandu-se atat către, cat şi de-a lungul
aceateia. Problemele tehnice, computaţionale, derivă din cele asociate metodei barieră.

Problemele de programare sunt formulate de obicei ca probleme de minimizare:

1 
min  %    
2
 À  (3.1)
 À 0,


unde  r   , este o matrice  - dimensională, iar % o matrice simetrică  - dimensională.

In metodele de punct interior pentru programarea liniară o poziţie specială o are problema duală.
Ca atare, şi în acest caz vom utiliza o tehnică de construcţie a problemei duale a lui (3.1). Modul
cel mai direct de construcţie a dualei se bazează pe legătura care există între dualitate şi condiţiile
de optimalitate de ordinul întai pentru problema barieră asociată. Vom începe prin a scrie

problema barieră asociată lui (3.1). Pentru acestea, să considerăm variabilele ecart  r , în
restricţiile din (3.1), cu care scriem următoarea problemă barieră:

1   #
min  %      Î log    Î log  
2  ·1  ·1 (3.2)
  · .

Pentru această problemă, introducem funcţia Lagrange:


1   #
' (  , , & ) ·  %      Î log    Î log    &  (    ).
2  ·1  ·1

Condiţiile de optimalitate de primul ordin ale problemei barieră (3.2) se obţin prin anularea
derivatelor funcţiei Lagrange în raport cu toate variabilele ( şi &:

  
·     * 1

& · 0


 
·   ) 1
& · 0


  
·     · 0.
&

1
Introducand vectorul  · 
, condiţiile de optimalitate de ordinul întai se pot scrie sub
formă compactă:

 ·
 &   % · 

,
·

+ )
· 
,

unde ´(,(+ şi ) sunt matrice diagonale ale căror elemente sunt componentele vectorilo ((& şi
respectiv . Din ultimele două condiţii de mai sus se observă că problema duală implică vectorul
 ± dimensional al variabilelor , care sunt complementare variabilelor primale , precum şi
vectorul # ± dimensional al variabilelor &, care sunt complementare variabilelor ecart primale .
Datorită acestor condiţii de complementaritate, rezultă că variabilele & şi  sunt nenegative în
problema duală. De asemenea, pentru a stabili legătura dintre condiţiile de optimalitate şi
problema duală, trebuie ca a doua relaţie din condiţiile de mai sus să fie restricţia problemei
duale. Deci restricţiile problemei duale sunt:

 &   % · 
& ,  À 0.

Este interesant de notat faptul că restricţiile problemei duale implică vectorul  ± dimensional ,
care pare să aparţină problemei primale. Interpretarea corectă este că variabilele  care apar în
duală, în principiu, nu au nici o legătură cu variabilele  care apar în primală, cu excepţia faptului
că în punctul de optim ele sunt egale.

Pentru a scrie obiectiv a problemei duale vom utiliza teorema slabă de dualitate. In această
teoremă presupunem că dispunem de o soluţie admisibilă primală ( ,  ) şi de o soluţie admisibilă
duală ( , &,  ) . Atunci:
&  (  ) · &  (   ) ·    &  

şi

( & )   · (   å Ô )   ·        å   Ô.

Deoarece &  (  ) · (  & )  , rezultă:

0 m &   å    ·    å   Ô    & ·
 1   1 
·     å   Ô      &    Ô .
 2   2 
1 
Din această inegalitate rezultă că funcţia obiectiv a problemei duale este   &   Ô. Problema
2
duală a lui (3.1) este:
1 
max   &   %,
2
 &    % ·  (3.3)
& ,  À 0.

La fel ca în cazul programării liniare, şi pentru programarea pătratică legătura fundamentală


dintre problema primală (3.1) şi cea duală (3.3) este dată de teorema ecarturilor complementare.

 

# "
 # 
 
(" 
 ( ‰, ‰)  



"# 
 
#  #  -  
 ( ‰, &‰, ‰)   


 "# 


# " ("  

  
  .

 & ‰  ‰ å  ‰  ‰ · 0, 

 ( ‰, ‰) 

   # 
 
#  #  - ( ‰, &‰, ‰) 

   #


# " /

‘ 


Intr-adevăr, fie ( ,  ) o soluţie primal admisibilă şi ( Ö , &,  ) o soluţie dual admisibilă. Putem
scrie:

&  (  ) · (  & )   .

Din condiţiile de optimalitate se obţine:



&  (  ) · &  ( å  ) ·   å &   ,
şi respectiv

(  & )   · (   % )   ·          %.

Comparand aceste două relaţii şi ţinand seama de faptul că atat &   , cat şi    sunt nenegative,
rezultă:

0 m &   å    ·    å   Ô    &.
Fie deci ( ,  ) o soluţie admisibilă. Teorema de dualitate slabă aplicată lui ( ,  ) , din punctul de
vedere al primalei şi al lui ( ‰, &‰, ‰) (din punctul de vedere al dualei arată că:

     ‰ %   &‰ À 0.

Dar, în punctul de optim ( ‰, ‰) inegalitatea de mai sus este chiar egalitate:

   ‰ å  ‰ Ô ‰   &‰ · 0.

Combinand aceste două relaţii de mai sus, se obţine:

   ‰ å  ‰ Ô‰ m    å  ‰  Ô.

Acest rezultat este interesant prin el însuşi, dar trebuie arătat că funcţia obiectiv primală evaluată
în 0 nu este mai mare decat valoarea ei în x, adică:

1  1
  ‰ å  ‰ Ô‰ m    å   Ô.
2 2

Acest lucru este foarte uşor de arătat. Pornind de la membrul stang al inegalităţii de mai sus, se
obţine:

1  1 
  ‰ å  ‰ %‰ ·    ‰ å  ‰ % ‰  ‰ %‰ m
2 2
1 
m    å  ‰ %  ‰ %‰ ·
2
1 1 1
·    å   %    % å  ‰ %   ‰ % ‰
2 2 2
1 1
·    å   %  (   ‰)  % (   ‰).
2 2

Dar, din ipotezele teoremei, matricea Q este pozitiv semidefinită, astfel încat, din inegalitatea de
mai sus, rezultă:
1  1
  ‰ å  ‰ Ô‰ m    å   Ô.
2 2

Cum  este un punct primal admisibil, rezultă că 0 (împreună cu 0) constituie o soluţie optimă
pentru problema primală. O analiză similară arată că &0 (împreună cu 0 şi 0) formează o soluţie
optimă pentru problema duală.

După modul în care sunt rezolvate condiţiile de optimalitate asociate problemei barieră, pentru
problema de programare pătratică, la fel ca în cazul programelor liniare, se pot dezvolta metode
de punct interior de urmărire a traiectoriei: # 1" 
( 
"1
 sau 
"1

 "
 " 
. In continuare vom considera abordarea primal-duală din cadrul
metodelor de urmărire a traiectoriei, rămanand ca în capitolul următor să considerăm abordarea
predictor-corector pentru optimizarea cu restricţii liniare.

Cu aceste precizări, în cele ce urmează vom dezvolta metoda primal-duală de punct interior
pentru problema de programare pătratică (3.1). Intr-adevăr, condiţiile de optimalitate de ordinul
întai sunt:

& å   Ô · 

·

*
·

+ )
· 
.

Se înlocuieşte punctul ( , , & ,  ) cu (    ,    , &   & ,     ) pentru a obţine următorul
sistem algebric neliniar, a cărui soluţie furnizează direcţia de deplasare (  ,  ,  & ,   ) :
 
  & å    Ô    ·   &   å Ô 2
 
     ·    å  
  
  å *   å  *  
· 
 *

) & å +  å  + )


· 
 + )
,

unde  şi ! sunt reziduurile primale şi respectiv cele duale. In continuare, dacă se elimină
termenii neliniari (pătratici), se obţine următorul sistem algebric liniar pentru direcţia
(   ,    ,  & ,    ) :
#%
 & å    Ô  · 2
#
     · $
" "
   å *   · 
 *

) & å +  · 
 + )
.

Rezolvand acest sistem, obţinem direcţia de deplasare căutată. Putem reduce acest sistem, în
sensul variabilelor    şi   . Intr-adevăr, din ultimele două ecuaţii ale sistemului de mai sus
obţinem:
  · ´ 1 ( 
´ ,
,   )
(3.4)
  · + 1 ( 
+ )
) & )

Cu acestea, variabilele   şi  & se determină ca soluţii ale 


 
 :

&' &
  ( * 1 å Ô )        ' &  * 1
å Ô 
 & ± ± ·  & ±. (3.5)
 + 1 ) ±   &     å +

1
±

Astfel, din (3.4) şi (3.5) putem determina direcţia de deplasare din punctul curent considerat.
Lungimea pasului se determină exact ca în cazul liniar, prin calculul deplasării maxime
admisibile penalizată cu un factor  r (0,1) .

Cu acestea, o nouă estimaţie (   ,   , &  ,   ) a variabilelor este definită sub forma:

  ·     , &  · &   (  & ,


  ·      ,   ·    (   ,
unde  şi  ‘ sunt lungimile paşilor de deplasare din spaţiul primal, respectiv dual, alese astfel
încat să se menţină pozitivitatea variabilelor ((&şi , adică  ·  Ö şi  ‘ ·  Ö ‘ , unde:

Ü 
 
   
   
 · min min ,     0
, min ,      0

,

   
 
 
    

Ü 
 
   
 &  
 ‘ · min min ,     0
, min ,  &   0

, (3.6)

 
   
  & 
 


şi  r (0,1) este factorul de mentinere a iteraţiei curente în interioirul domeniului de


admisibilitate (de obicei  · 0,9995 ).

Cu acestea se poate prezenta următorul algoritm de punct interior, primal-dual de urmărire a


traiectoriei pentru programarea pătratică.

  Ê
Ê  
1 Se consideră o aproximaţie iniţială  0 · ó 0  0 & 0  0

, unde
 0  0,  0  0, & 0  0,  0  0. Se pune m · 0.
2 Se testează un criteriu de oprire a iteraţiilor.
3 Se calculează reziduurile primale şi duale:
 ·   m   m , ‘ ·   & m  m  % m .
4 Se calculează saltul de dualitate:  ·  )  å & ) .
5 Se determină valoarea parametrului barieră:

 · , unde  r (0,1) este un parametru de modificare al lui  .
åV
6 Se rezolvă sistemul KKT redus:
*+ *
  ( * 1 å Ô )        + &  * 1
å Ô 
 * ± ± ·  * ±.
 + 1 ) ±   &     å +

1
±
7 Se determină direcţiile:
  · * 1 ( 
 *
  )
  · + 1 ( 
 + )
 ) & ).
8 Se alege  m r (0,1) şi se pun  ·  m Ö şi  ‘ ·  m Ö ‘ , unde  şi  ‘ sunt cei daţi
de ().
9 Se calculează noua aproximaţie  m 1 ·  m 1  m 1 & m 1  m 1 ! , unde  m 1 ·  m    ,
 m å1 ·  m å   , & m å1 · & m å  & ,  m å1 ·  m å   , iar  · min{ ,  ‘ } . Se pune
m · m  1 şi se continuă cu pasul 2.

6

Să considerăm problema:

}
min 10 1  6 3 12  22 2 32  4 1  2 6 1 3
3 1   2  2 3 16
 2  33 12
0   ,  · 1,2,3.

Algoritmul PCIPLC, realizat în MATLAB, iniţializat în punctul  0 · 1 1 1! ,  0 · 1 1! ,


& 0 · 1 1! ,  0 · 1 1 1! şi 30 · 1 1! furnizează rezultatele din Tabelul 3.
 
 
*   1 2 3
1 1.0000 1.0000 1.0000
2 1.2918 1.4973 0.6627
3 1.6279 2.2293 0.7728
4 1.4693 2.4248 0.5674
5 1.3365 2.5394 0.4314
6 1.2627 2.5407 0.3934
7 1.2669 2.5330 0.4003
8 1.2667 2.5334 0.4000
Evoluţia variabilelor problemei , · 0,1;  m · 0,99995

Referitor la criteriul de oprire a iteraţiilor, ca şi în cazul liniar, evident că trebuie considerat saltul
relativ de dualitate. Dacă saltul relativ la dualitate este mai mic decat o toleranţă de oprire a
iteraţiilor, atunci algoritmul este oprit. Se observă că termenul pătratic din funcţia obiectiv nu
joacă un rol important în cadrul algoritmului.

Implementarea practică a modelelor de punct interior suferă din cauza prezenţei liniilor sau
coloanelor dense în matricea restricţiilor. Aceasta face să fie preferată rezolvarea sistemului KKT
redus (), ceea ce implică utilizarea unui software care poate trata sisteme de ecuaţii liniare
algebrice nedefinite. Prezenţa termenului pătratic în funcţia obiectiv constituie un motiv în plus
de a prefera rezolvarea sistemului (). In acest scop, vom continua reducerea sistemului (3.5) în
sensul obţinerii ecuaţiilor normale. Există două posibilităţi.

(1) Din (3.5) putem obţine imediat


 
 # 
 4 #  #  prin rezolvarea primei
ecuaţii în privinţa lui   :
- -
  · ( * 1 å Ô ) 1   . &  * 1
å Ô  .  & ! .

Atunci, din a doua ecuaţie din (3.5) deducem imediat ecuaţiile normale (în forma primală):

1
( ´ ´,  % ) 1   + 1 ) ! & ·    + 1

 ( ´ 1 ,  % ) 1 (  & ´ 1
 % ) .

Se observă că matricea coeficienţilor ecuaţiilor normale în forma primală are tiparul zero/nonzero
dat de matricea ( ‘  % ) 1  , unde ‘ este o matrice diagonală. Dacă % este diagonală, ne
plasăm în situaţia programării liniare. Dar, dacă % este o matrice nediagonală, cu o structură
oarecare, atunci structura de matrice rară a lui ( ‘  % ) 1  este total ruinată.

(2) Tot din (3.5) putem obţine imediat


 
# 
4# " , prin rezolvarea celei de
a doua ecuaţii în privinţa lui  & :

1
 & · +)    + 1
  ! ,

şi apoi eliminarea lui din prima ecuaţie, pentru a obţine:

( ´ 1,  %  +) 1 )   ·   ´ 1
 %  +) 1 (   + 1
) .

In această situaţie, tiparul zero/nonzero al matricei coeficienţilor ecuaţiilor normale în forma


duală este dat de matricea   % , matrice care poate fi mult mai rară decat
( ‘  % ) 1  . Totuşi, în acest caz avem de rezolvat un sistem  ± dimensional, faţă de cazul
ecuaţiilor normale în forma primală, în care dimensiunea sistemului este # (în general mai mică
decat ).

Aceste observaţii justifică utilizarea sistemului KKT redus în implementările practice ale
algoritmului QPD. In capitolul următor vom extinde aceste consideraţii la clasa problemelor mai
generale decat programarea pătratică, şi anume optimizarea cu restricţii liniare.
•                
   

Extinderea metodelor de punct interior de urmărire a traiectoriei la cazul problemelor cu restricţii


liniare este foarte naturală şi se poate face pentru toate cele trei moduri de abordare a urmăririi
traiectorieiîn sensul: primal-dual, predictor-corector sau predictor-corector de ordin superior.
Pentru această clasă de probleme vom considera metoda predictor-corector.

Fie problema de optimizare cu restricţii liniare, într-o formă mai generală:

min  (  )
/
· (4.1)
0m m

unde  :   î  este o funcţie convexă, cel puţin de două ori continuu diferenţiabilă pe
  ,  r  # şi unde este posibil ca anumite componente ale lui  sa fie å p . Matricea este
V - dimensională, cu elemente numere reale. Adăugand variabilele ecart  À 0 şi considerand
funcţia barieră logaritmică, din () obţinem următoarea familie de probleme:

 V
min  (  )   log     log  
 ·1  ·1
0
 · . , (4.2)
å·

parametrizată după  À 0 , care tinde la 0.

Condiţiile necesare de ordinul întai pentru un punct staţionar al lagrangeanului asociat problemei
(4.2) sunt:
2
·
å·
23
& å   1 ·  (  ) (4.3)
*
·

) 5
· 
,

unde ´( ,( ), 5 sunt matrice diagonale cu elementele   ,   ,   , 3  (  · 1,...,  ) . Fixand


parametrul  la o valoare pozitivă, putem rezolva sistemul (4.3) în privinţa variabilelor
, , & ,  , 3. Deoarece aceşti vectori depind de parametrul barieră  , din (4.3) obţinem o familie
de soluţii parametrizată de  . Traiectoria barieră asociată problemei (4.1) se defineşte ca
mulţimea tuturor vectorilor (  ),  (  ), & (  ),  (  ), 3(  ) care satisfac relaţiile (4.3).
Pentru rezolvarea sistemului algebric neliniar (4.3), vom aplica metoda lui Newton. Astfel,
presupunand că dispunem de o estimaţie curentă  ·   &  3! a soluţiei lui (4.3), pentru care
67( 67( 67( 367( putem calcula noua estimaţie     , unde   ·      &    3! este
soluţia următorului sistem neliniar:

(    ) · 
(     )  (     ) · 
4
 ( &   & )  (     ) ( 3   3) ·  (    ) (4.4)
( ´   ´ )( ,   , )
· 

()   ) )(5   5 )
· 
,

în care  * ,  ) ,   ,  5 sunt matrice diagonale cu elementele    ,    ,    ,  3  (  · 1,...,  ).

Considerand  de două ori continuu diferenţiabilă, din (4.4) se obţine imediat:

  ·  
     ·   
 2  ( )     &     3 ·  (  )  &  3  (4.5)
´   ,  · 
´,
 ´ ,

) 3  5  · 
)5
 ) 5
.

Diferenţa esenţială dintre (4.5) şi sistemul din cadrul programării liniare este prezenţa matricei
hessian a funcţiei obiectiv.

Ideea metodei predictor-corector de urmărire a traiestoriei pentru rezolvarea lui (4.1) este de a
soluţiona sistemul liniar (4.5) 4"
 
.

In prima etapă, "



"
, se consideră  · 0 şi se ignoră termenii pătratici  ´ ,
şi  ) 5

, rezolvandu-se sistemul algebric liniar:


6 6
  ·   
  å   ·     
6 67
 2  ( )  å 7  & å     5 ·  (  )  &å5  (4.6)
*  å   ·  *

) 5 å 5  ·  )5
,

în privinţa direcţiei afine (de predicţie)   ·      &    3 ! .

În a doua etapă, "


 

, aceste direcţii sunt utilizate pentru a calcula o nouă estimaţie a
parametrului barieră  , precum şi pentru a aproxima termenii pătratici neglijaţi în prima etapă.
Pentru calculul parametrului barieră, vom utiliza aceeaşi strategie ca în cazul liniar. Dacă am
considera un pas în direcţia afină dată de (4.6), atunci lungimea pasului de deplasare se determină
prin utilizarea testului rapoartelor standard. Astfel, calculăm:


 
   
   
XÖ · min min ,     0
, min ,   x   0

,

  
  
  
  


 
   
 3  
X֑ · min min ,     0
, min ,  3   0

, (4.7)

  
  
  3
  


şi considerăm X ·  XÖ şi X ‘ ·  X֑ , unde  r (0,1) este un parametru de atenuare a blocării


(anulării) unei variabile (de obicei  · 0,9995 ).

Valoarea complementarităţii care ar rezulta dacă am considera un pas în direcţia afină   ? este:

Ö · (   X   )  (   X ‘   )  (   X   )( 3  X ‘  3 ). (4.8)

Atunci parametrul barieră este calculat conform relaţiei:

 Ö
2
  Ö 
 
A ±  ± ,     3 À 1
    3 

 ·  (4.9)
   3
 

A 2
,       3  1,


unde  r (0,1) este un parametru care permite modificarea lui  .

Cu această valoare a lui  se rezolvă sistemul algebric liniar:

  · 0
      · 0
 2  (  )        &     3 · 0 (4.10)
´    ,   · 
  ´   ,

)   3  5    · 
 )  5
,

în privinţa direcţiei de centrare    ·       &      8  !Œ , cu care calculăm direcţia de


deplasare   ·   ? å    din cadrul algoritmului predictor-corector.

Cu acestea am precizat calculul direcţiei de deplasare în cadrul metodei predictor-corector ca o


combinaţie a direcţiei de predictie şi a direcţiei de corectie. Acum trebuie să specificăm modul de
calcul al lungimii pasului de deplasare de-a lungul acestei direcţii. Pentru aczul optimizării cu
restricţii liniare, la fel ca în programarea liniară, nu apar probleme complicate. Simplul test al
rapoartelor standard ne permite determinarea lungimii pasului astfel încat toate variabilele să se
menţină strict pozitive. Lungimile paşilor se calculează separat în spaţiul primal şi cel dual ca:
 ·  Ö şi  ‘ ·  Ö ‘ , unde Ö şi Ö ‘ sunt calculaţi conform relaţiilor:

9 

9 

Ö ; · min min
: :
,    0
, min ,    0

,

    


   

<

< 

< 
>
=

Ö 2 · min min
= >
,    0
, min > ,   0

, (4.11)

    

    

şi  r (0,1) este factorul de mentinere a iteraţiei curente în interiorul domeniului de admisibilitate


(de obicei  · 0,9995 ).

Cu acestea se poate prezenta următorul algoritm al metodei predictor-corector de urmărire a


traiectoriei pentru optimizarea cu restricţii liniare.

  ÊÊ
Ê  
1 Se consideră o aproximaţie iniţială  0 · ó 0  0 & 0  0 30 , unde


0 ? 0,  0 ? 0, & 0 ? 0,  0 ? 0 ., G0 ? 0 . Se pune m · 0.
2 Se testează criteriul de oprire a iteraţiilor:
|  (  m ) Œ  m   Œ & m å  Œ Gm |
m ’,
1å |  (  m )   (  m ) Œ  m å  Œ & m   Œ Gm |
unde ’ este o toleranţă pozitivă, suficient de mică, prespecificată.
3 Se rezolvă sistemul algebric liniar () în privinţa direcţiei afine   .
4 Se consideră A m · min(A ,  m  m   m 3m ) , care se introduce în locul lui A din formula
() de calcul al parametrului barieră  .
5 Se rezolvă sistemul algebric liniar () în privinţa direcţiei de centrare determină valoarea
parametrului barieră    .
6 Se consideră:
  ·    ? å     ,   & ·   & ? å  &  ,
  ·    ? å    ,    ·   ? å     ,  G ·   G ? å   G  .
7 Se alege  m r (0,1) şi se pune  ·  m Ö şi  ‘ ·  m Ö ‘ , unde Ö şi Ö ‘ sunt
calculaţi conform formulelor ().
8 Se calculează noua estimaţie  m å1 , a soluţiei:
 m å1 ·  m å  @   ,  m å1 ·  m å  A   , & m å1 · & m å  2  & ,  m å1 ·  m å  2   ,
Gm å1 · Gm å  2  G . Se pune m · m å 1 şi se continuă cu pasul 2.

6
Să considerăm problema:

 1 
min  12   22  32 1  3   3  4 1 3  2  3 4 
 
 
 
 
1 2 3 4

 2 
1  2  2  3   4  5 · 5
3 1   2  2 3 4  6 · 4
2  4 3  7 · 1,5
0  10,  · 1,...,7.

Algoritmul PCIPLC, realizat în MATLAB, iniţializat în punctul 0 · 0,5x 0,5! ,  0 · 1x 1! ,


& 0 · 1 1 1! ,  0 · 1x 1! şi 30 · 1x 1! furnizează rezultatele din Tabelul 4.

 
 
Nr. 1 2 3 4 5 6 7
0 0,5000 0,5000 0,5000 0,5000 0,5000 0,5000 0,5000
1 0,4062 0,9733 0,2753 0,0000 0,6015 0,3721 0,1322
2 0,6930 0,0000 0,6386 0,9946 1,2389 0,9208 0,6960
3 0,5632 0,2830 0,5901 0,8810 1,1740 1,1153 0,8372
4 0,2738 0,6497 0,6317 0,9351 2,4850 2,5131 1,8328
5 0,2674 0,7846 0,5150 0,6103 2,0147 1,9717 1,3391
6 0.8646E-1 1,0009 0,1677 0,2352 2,5086 2,6393 0,1718
7 0.4963E-1 0,9693 0,1329 0.6709E-1 2,8115 2,6828 0.1264E-2
8 0.4429E-1 0,9661 0,1334 0.1106E-1 2,8787 2,6450 0.1493E-4
9 0.4421E-1 0,9654 0,1336 0.2562E-3 2,8909 2,6348 0.6450E-7
10 0.4421E-1 0,9654 0,1336 0,0000 2,8912 2,6346 0.404E-10
18
Evoluţia variabilelor problemei A · 0,1;  m · 0,99995; ’ · 10

După cum se observă, algoritmul este rapid convergent la soluţia optimă. Computaţional, paşii
cei mai delicaţi sunt 3 şi 5, care constă în rezolvarea sistemelor algebrice liniare () şi (). O dată ce
matricea acestor sisteme este factorizată, aceasta poate fi utilizată pentru calculul celor două
direcţii: de predicţie şi de corecţie. In acest caz, al minimizării funcţiei  în prezenţa restricţiile
liniare, apare o complicaţie în plus dată de evaluarea hessianului 2  (  ) în iteraţia curentă.
Lungimea pasului de deplasare nu implică probleme de calcul deosebite, fiind asemănatoare
situaţiei din programarea liniară.


º   

Karmarkar, Narendra (1984).


 8
3 &#  #
 !#  '
  ##
,
Combinatorica, Vol 4, no. 4, pp. 373±395.

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