Sunteți pe pagina 1din 9

Programare liniară în numere întregi

Considerăm problema:


inf c f  x A  x  b, x  R n , xk  Z, k  K  1, 2, , n  (P*)

unde: A  R mn , b  R m , c  R n , rang  A   m  n.


  K Ø 1, 2, , n Problemă de programare liniară mixtă

K  1, 2, , n Problemă de programare liniară


în numere întregi
P0  x  R n A  x  b, x  0
Notaţii: Evident, P0  P *
P *  x  P0 xk  Z, k  K 
Putem considera problemele:
(P0) inf c f  x x  P0  Se rezolvă cu algoritmul simplex.

(P*) inf c f  x x  P * Trebuie elaborată o metodă!

Cursul 9 1
Propoziţie. Fie x P0 soluţia optimă a lui (P0). Dacă x P *, atunci x
este soluţie optimă şi pentru problema (P*).

Demonstraţie. P0  P *
Avem:
c f  x  inf c f  x x  P0   inf c f  x x  P *  c f  x
Pe de altă parte, x P *
Rezultă, c f  x  inf  c f  x x  P * . (q.e.d.)

Algoritm: metoda planelor de secţiune. Soluţia optimă. Stop

da
Determin
Rezolv (Pi )
Pi 1  Pi  i 
?
i=0 c  x  inf c  x
f f x P * nu
xPi
x  Pi 1
i←i+1
Observaţie: P0  P1    Pi  Pi1    P *.

Cursul 9 2
Determinarea planelor de secţiune (Gomory).

Considerăm problema (P*) în care K  1, 2, , n.

Fie B o bază optimă pentru (Pi ) şi presupunem că  sk  B , xsk  Z.


Avem: xsk  xk   ykj x j
jR

Introducem notaţiile: xk   xk   f k 0 unde 0  f k 0  1,


ykj   ykj   f kj unde 0  f kj  1.

Rezultă, xsk   xk     ykj  x j  f k 0   f kj x j  0  1.


jR jR

Dar,  x P * Z Z
În plus, avem: f jR
kj x j  0 & f k 0   0,1

Se adaugă restricţia:   f  x
jR
kj j   fk 0 .

Cursul 9 3
Observaţie. Soluţia de bază corespunzătoare lui x nu verifică restricţia
adăugată. Într-adevăr,
 xB   x 
x   0     f kj  x j   f k 0  0 . Contradicţie!
 xR   0  jR

Prin urmare, putem defini:


 
Pi 1  Pi  i    x  Pi   f  x kj j  yi 1   f k 0 , yi 1  0 
 jR 

Există o soluţie optimă  Z


Algoritmul se termină într-un
număr finit de paşi:
Nu există soluţii în  Z

Cursul 9 4
Implementare.

Fie B(i) o bază optimă pentru (Pi ). Pentru (Pi+1 ) considerăm matricea:
 Bi  0  Bi 1 0 
Bi 1  f  Bi 11 
0
 1  0f 1 
 
Matricea B(i+1) este dual admisibilă pentru (Pi+1 ) :

1
 B 1
i  0   b i    B 1
i   bi 
  xi  
xi 1  Bi 1  bi 1       0
 0f 1    f    f    f 
   k0   k0   k0 
1
 B 1
i  0   A j
i 
  Y j
i 

Yi 1  Bi 1 Ai 1  
j j
  
 0f 1    f    f 
   kj   kj 
 j

 
i 1 Yi  i 
z j  c j  cBi1 Yi 1  c j  cBi  , 0 
f j f
  cj  zj  cj  0
 f 
 k0 
 i  
 
z i 1  cBf i1 x i 1  cBf i  , 0 
x
  fk 0 
  z
i 

Cursul 9 5
Tabloul simplex:

x xj xp y i 1 
   
x si x i  y ij  y ip  0
   
x sk x k   f k0  y kj   f kj  y kp   f kp  0
   
y i 1   f k0   f kj   f kp  1

z  zj  cj  zp  cp  0

Cursul 9 6
Exemplu. min 2x1  x2 
 x1  x2  1
în raport cu x1  x2  3 x1 , x2  Z 
2 x1  5
Rezolvare grafică:

Cursul 9 7
Rezolvarea cu algoritmul ciclic al lui Gomory:

x x 1 x 2 x 3 x 4 x 5 x x1 x2 x3 x4 x5
7 1
x3 1  1 1 1 0 0 x3 2
0 1 1 0 2
1 1
x4 3 1 1 0 1 0 x4 2
0 1 0 1 2
5 1
x5 5 2 0 0 0 1 x1 2
1 0 0 0 2
0 2 1 0 0 0 5 0 1 0 0 1

x x1 x2 x3 x4 x5 x x1 x2 x3 x4 x5 y
x3 3 0 0 1 1 1 x3 3 0 0 1 1 1 0
1 1 1 1
x2 2
0 1 0 1 2
x2 2
0 1 0 1 2
0
5 1 5 1
x1 2
1 0 0 0 2
x1 2
1 0 0 0 2
0
 11 1 1 1
2
0 0 0 1 2
y 2
0 0 0 0 2
1
 11 1
2
0 0 0 1 2
0

Cursul 9 8
x x1 x2 x3 x4 x5 y x x1 x2 x3 x4 x5 y
x3 3 0 0 1 1 1 0 x3 2 0 0 1 1 0 1
2
1 1
x2 2
0 1 0 1 2
0 x2 1 0 1 0 1 0 1
5 1
x1 2
1 0 0 0 2
0 x1 2 1 0 0 0 0 1
1 1
y 2
0 0 0 0 2
1 x5 1 0 0 0 0 1 2
 11 1
2
0 0 0 1 2
0 5 0 0 0 1 0 1

Cursul 9 9

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