Sunteți pe pagina 1din 24

Probleme de optimizare liniară

O problemă de optimizare constă din minimizarea sau maximizarea


unei anumite funcţii - numită funcţie obiectiv - în prezenţa unor
restricţii care trebuie satisfăcute.
Este suficient să studiem doar probleme de minimizare, deoarece
inf  f  x  | x  P    sup  f  x  | x  P 
Fie   R n şi   R.
Tipuri de restricţii în raport cu felul problemei de optimizare:

minimizare maximizare

concordantă neconcordantă concordantă neconcordantă


f x   f x   f x   f x  

Cursul 2 1
Forma generală:
Conţine toate tipurile de restricţii şi variabile care pot apărea.
inf c1f  x1  c2f  x2  c3f  x3 
în raport cu
 A11  x1  A12  x2  A13  x3  b1 concordante
A  x  A  x  A  x  b egalitate
 21 1 22 2 23 3 2

 A31  x1  A32  x2  A33  x3  b3 neconcordante
 x1  0 x3  0
mi n j n
Datele problemei: Aij  R , bi  R mi , c j  R j , 1  i  3, 1  j  3.

Necunoscutele problemei sunt grupate în trei variabile vectoriale:


x1  are componente nenegative;
n
x j  R j , 1  j  3, x2  oarecare;
x3  are componente nepozitive.

Cursul 2 2
Forma standard:
Conţine restricţii egalitate şi variabile nenegative.

inf c f  x A  x  b, x  0

Datele problemei: A  R mn , b  R m , c  R n .

Forma canonică:
Conţine restricţii concordante şi variabile nenegative.
inf c f  x A  x  b, x  0
Datele problemei: A  R mn , b  R m , c  R n .

Cursul 2 3
Forma mixtă:
Conţine restricţii concordante şi egalitate, şi variabile nenegative.

 f A1  x  b1 
inf c  x , x  0
 A2  x  b2 
 A1  R m1n , b1  R m1
Datele problemei:  m2 n
, c  Rn .
 2
A  R , b2  R m2

Formele problemelor de programare liniară sunt echivalente!

Alegerea formei  în funcţie de necesităţi:


 forma standard pentru algoritmi;
 forma canonica pentru dualitate.

Cursul 2 4
Transformări echivalente:
 Sensul unei inegalităţi se schimbă prin înmulţire cu – 1.
 Transformarea unei inegalităţi într-o ecuaţie:
 f  x    f x y  
 f , y0
  x     x y  
f

variabila y se numeşte variabilă ecart (slack variable).


 Transformarea unei ecuaţii în inegalităţi:

  f
x  
f x     f
  x  
 O variabilă nepozitivă x  0  x   x  0.

 O variabilă oarecare xR  x  x  x ,


unde x   0, x   0.

Cursul 2 5
Exemplu. inf 2 x1 3 x2  x3 5 x4

3 x1 2 x2  x3 2 x4  3
x1 3x2 2 x3  x4  2
2 x1  x2 2 x3 3 x4  5

x1  0, x2  0, x3  R, x4  0

Transformarea la forma standard:

inf 2 x1 3 x '2  x '3  x ''3 5 x4 0 x5 0 x6

3 x1 2 x '2  x '3  x ''3 2 x4  x5  3


x1 3x '2 2 x '3 2 x ''3  x4  2
2 x1  x '2 2 x '3 2 x ''3 3 x4  x6  5

x1  0 x '2  0 x '3  0 x ''3  0 x4  0 x5  0 x6  0

x '2   x2  0 x3  x '3  x ''3


x '3  0, x ''3  0

Cursul 2 6
Teorema fundamentală a programări liniare
Considerăm problema de programare liniară în forma standard:
inf c f  x | A  x  b, x  0 (P)
Fără a restrânge generalitatea, presupunem: rang  A   m  n.
Vectorul v  R se va numi soluţie admisibilă a problemei (P), dacă
n

A  v  b, v  0.
O soluţie admisibilă v  R este o soluţie optimă a problemei (P), dacă
n

oricare ar fi soluţia admisibilă y , avem: c  v  c  y.


f f

Teoremă:
1. Dacă problema (P) are o soluţie admisibilă, atunci ea are şi o
soluţie admisibilă de bază.
2. Dacă problema (P) are o soluţie optimă, atunci ea are şi o
soluţie optimă de bază.

Cursul 2 7
Demonstraţie.
Fie v  R o soluţie admisibilă a problemei (P).
n

v   v1 , v2 ,..., vk , 0,..., 0  , vi  0,
f
Considerăm i  1, k.
 k  0  v  0 este evident o soluţie de bază.
 k  1. Dacă  A1
, A 2
,..., A k
 sunt liniar independente, atunci
v este o soluţie admisibilă de bază. k
Dacă A , A ,..., A  sunt liniar dependente,
1 2 k
 yi  R, i  1, k ,  yi  0,
i 1

k
astfel încât: i 1
A yi  0.
i

Considerăm: y  R , y   y1 , y2 ,..., yk , 0,..., 0  . Rezultă:


n f

y  0, şi A  y  0 .
Definim vectorul: x     v   y,   R.

Avem: A  x     A   v   y   A  v   A  y  A  v  b,

deci, x    este o soluţie a sistemului A  x  b pentru orice   R.

Cursul 2 8
Deoarece xi     0, i  k  1, n, avem:
x     0  xi     vi   yi  0, pentru i  1, k .
v v
  i dacă yi  0,   i dacă yi  0.
yi yi
Definim:   vi 
 1i  k 
max y  0  dacă există yi  0,
    yi
i


 dacă nu există yi  0,
  vi 
 min  yi  0  dacă există yi  0,
    1i  k  yi 

 dacă nu există yi  0,

deci,     ',  ''  x     0, adică este soluţie admisibilă.


Observaţie: cel puţin una dintre valorile  ',  '' este finită!
Pentru 0  finit  ',  ''   i0 , 1  i0  k , astfel încât vi0  0 yi0  0.
Deci, vectorul x  0  este o soluţie admisibilă a problemei (P) şi are
cel mult  k  1 componente nenule.

Cursul 2 9
Fie v  R o soluţie optimă a problemei (P) cu vi  0, i  1, k .
n

Raţionăm analog ca în cazul precedent: …

Dacă   sunt liniar dependente, există un interval astfel


1 2 k
A , A ,..., A
încât     ',  ''  x     v   y este soluţie admisibilă.
Din relaţia: cf  v  cf  x    c f  v   c f  y
rezultă:     ,   avem  c f  y  0.
Observaţie: Deoarece    0,    0  c f  y  0.
În caz contrar, luând    sign c f  y   c f  y  0,
contradicţie!
Deci, c f  x     c f  v , adică,     ',  '' , x    este optimă.
Pentru 0  finit  ',  ''   i0 , 1  i0  k , astfel încât vi0  0 yi0  0.

Deci, vectorul x  0  este o soluţie optimă a problemei (P) şi are cel


mult  k  1 componente nenule. (q.e.d.)

Cursul 2 10
În general, mulţimea soluţiilor admisibile a problemei (P) este
infinită, spre deosebire de cea a soluţiilor admisibile de bază,
care are cel mult C mn elemente. Importanţa teoremei
fundamentale a programării liniare constă în aceea că, pentru
determinarea unei soluţii optime, dacă ea există, căutarea este
redusă de la o mulţime infinită, la una finită, fiind suficientă
investigarea doar a soluţiilor de bază.

Cursul 2 11
Teoremele algoritmului simplex
Considerăm problema de programare liniară în forma standard:
inf c f  x | A  x  b, x  0 (P)
mn
unde A  R , b  R , c  R ,
m n
rang  A   m  n.

Considerăm matricea de bază B  As1 As2 ... Asm . 
Partiţionăm matricea A   B R  şi obţinem:

A x  b  xB  B 1  b  B 1  R  xR  x   Y j x j
jR

unde am notat: x  B 1  b  R m şi Y j  B 1  A j , 1  j  n.
Poziţia indicelui si  B  s1 , s2 ,..., sm  o notăm locB  si   i.
Pe componente, sistemul se scrie:

xsi  xi   yij x j , si  B , i  locB  si  .


jR

Cursul 2 12
 xB   x   B 1b 
Soluţia de bază corespunzătoare lui B : x   
x 0
 R    0 
1
Matricea de bază B se numeşte primal admisibilă, dacă B  b  0.
Funcţia obiectiv se poate exprima astfel:
  f
z  c  x  c  xB  c  xR  c   x   Y x j   cR  xR 
f f f f j
B R
 B

 jR 
 cBf  x    cBf  Y j  c j  x j  z    z j  c j  x j
jR jR

unde am notat: z  cBf  x , z j  cBf  Y j , 1  j  n.


Teoremă (optim): Fie B o bază primal admisibilă. Dacă z j  c j  0,  
pentru orice j R , atunci baza B este optimă.
Demonstraţie. Pentru orice soluţie admisibilă v  R avem:
n

 
z  cf  v  z   z j  c j v j  z . (q.e.d.)
jR

Cursul 2 13
Teoremă (optim infinit): Fie B o bază primal admisibilă. Dacă există
un indice k R , astfel încât  zk  ck   0, şi Y  B  A  0,
k 1 k

atunci problema (P) are optimul (-)infinit.


Demonstraţie. Fie   R,   0. Definim vectorul:
 xB     x  Y k 
x      , unde e locR  k 
 R nm
 x      elocR k  
 R  este vector unitar.
Se verifică fără dificultate că: x     0,
A  x     B  xB     R  xR     b   Ak   Ak  b.
Rezultă,    0, x   este soluţie admisibilă pentru (P).

Funcţia obiectiv este: c f  x     cBf  xB     cRf  xR    


 cBf   x  Y k    ck  z    zk  ck 

Deoarece  zk  ck   0, rezultă: lim c f  x     . (q.e.d.)


 

Cursul 2 14
Observaţie.

În condiţiile Teoremei de optim infinit, baza B defineşte o soluţie nenulă


 Aa xsistemului 
 0, x  omogen
0 :
 vB  Y k

vR , v  
n

 v  elocR k  
 R 
Acest vector reprezintă o direcţie (rază) de-a lungul căreia soluţiile admisibile

 xB 
x       v sunt nemărginite.
 0R 
Vectorul v se mai numeşte direcţia spre (–)infinit, şi împreună cu soluţia de
bază, pentru   0,   , descrie o muchie nemărginită a domeniului de
admisibilitate.

Cursul 2 15
27 3
x  8 8
  
y  5
8
5
8

Cursul 2 16
Lema (substituţiei): Fie 
B  As1 As2  Asm  R mm nesingulară şi 
vectorul A  R , k  B  s1 , s2 ,..., sm . Considerăm matricea:
k m


B  As1  Asr 1 Ak Asr 1  Asm . 
Y k  B 1 Ak   y1k , y2 k ,..., ymk  .
f
Notăm vectorul
Au loc următoarele afirmaţii:

. det B  0  yrk  0, unde r  locB  sr  .

 Pentru yrk  0, avem: B 1  Er    B 1


f
 y y 1 y y     
unde    1k ,..., r 1, k , , r 1, k ,..., mk   
 yrk yrk yrk yrk yrk 
  yik
1  
 yrk 
 
Er     e1  e r 1  e r 1  em       ,
 1 
 0  
 yrk 
ei  R m este vector unitar cu 1 in pozitia i.
    

Cursul 2 17
m

A j y jk
s
Demonstraţie. Din notaţia Y k  B 1 Ak rezultă: A  B  Y 
k k

 Fie det B  0.
j 1

Prin absurd, yrk  0  coloanele lui B liniar dependente. Contradicţie!


Fie acum yrk  0.
Prin absurd, det B  0  are coloanele liniar dependente. Deci, există
m


m
A j  j  Ak r  0.
s
 j  R,   j  0, astfel încât
j 1 j 1, j  r

Avem: r  0. În caz contrar obţinem det B  0. Contradicţie!

Înlocuind pe Ak şi regrupând termenii, obţinem:


m

 A
sj
 j  y jk r   Asr yrk r  0,
j 1, j  r

adică o combinaţie liniară de coloane ale matricei B care este egală cu zero
şi deci toţi coeficienţii trebuie să fie nuli. Dar, yrk r  0. Contradicţie!

Cursul 2 18
 Coloanele lui B şi B coincid pentru j  r. Avem deci,
A j  B  e j , j  r.
s

m
A  A j y jk
k s
Deoarece yrk  0, din relaţia rezultă:
j 1
m
  y jk  k 1
A   A   B 
sj
 A
sr

j 1, j  r  yrk  yrk


Prin urmare, putem scrie:

B  B Er    B 1  Er    B 1. (q.e.d.)

Cursul 2 19
Teoremă (schimbarea bazei): Fie B  A 1 A 2  A m o bază  s s s

primal admisibilă. Presupunem că există k R , astfel încât  zk  ck   0
1
şi vectorul Y  B  A are cel puţin un element pozitiv.
k k

Dacă alegem indicele sr  B , locB  sr   r , astfel încât

xr  xi 
 min  yik  0  ,
yrk 1i  m  yik 

atunci, matricea 
B  As1  Asr 1 Ak Asr 1  Asm  este o bază primal
admisibilă, pentru care z  cBf  B 1  b  cBf  B 1  b  z .

Demonstraţie. Evident, yrk  0. Din Lema substituţiei rezultă că B este o


matrice nesingulară.

Trebuie arătat că B 1  b  0.

Cursul 2 20
B 1  b  Er    B 1  b  Er    x 

      
    
 yik   y
 1       xi  ik xr 
 yrk   xi   yrk 
     
     
      
 1   xr   xr 
 0      
 yrk     yrk 
       
  
xr xr
Evident,  0. Dacă yik  0,  xi  yik  0.
yrk yrk
xr  xi xr 
Dacă yik  0,  xi  yik  yik     0.

yrk 0  yik yrk 
  
0

Cursul 2 21
Ţinând seama că pentru k  B avem loc   k   r , obţinem:
B

z  cBf B 1  b  cBf  Er    B 1  b  cBf  Er    x 

   
 
  yik
1  
 yrk 
 

  , csi , , ck ,        x 
 1 
 0  
 yrk 
    

Cursul 2 22
 csi yik ck 
  , csi , ,   ,   x 
 ir yrk yrk 

  xr x
 csi xi   csi yik  ck   csr xr  csr yrk r 
ir  ir  yrk yrk

 
m  m  x x
 csi xi   csi yik  ck  r  z   zk  ck  r  z .
  y    yrk
      
i 1 i 1

rk
0 
z  zk  0

(q.e.d.)

Cursul 2 23
Paşii algoritmului simplex
 Pasul 0. Se determină (dacă există?!) o bază primal admisibilă B şi se
calculează B–1.
 Pasul 1. Se calculează
x  B 1  b  0, z  cBf  x , Y  B 1  A, z f  c f  cBf  Y  c f .
 Pasul 2. (test de optimalitate) Dacă z  c  0, atunci s-a obţinut valoarea
optimă z , şi soluţia optimă de bază xB  x , xR  0. STOP.

 Pasul 3. (test de optim infinit) Dacă  k R pentru care zk  ck  0 şi Y k  0,


atunci problema are optim (-)infinit. STOP.

 Pasul 4. (schimbarea bazei) Se alege k R cu zk  ck  0 şi de determină


sr  B , loc  sr   r , astfel încât
xr  x 
 min  i yik  0  .
yrk 1i  m  yik 
Se formează matricea B  B \ A r  A , se calculează inversa
s k

B 1  Er    B 1 şi se revine la Pasul 1.

Cursul 2 24

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