Sunteți pe pagina 1din 9

Programare liniar n numere ntregi

Considerm problema:

inf c f x A x b, x Rn , xk Z, k
K
unde:

A Rmn , b Rm , c Rn , rang A m n.

K 1, 2,K , n
K 1, 2,K , n
Notaii:

1, 2,K , n

(P*)

Problem de programare liniar mixt


Problem de programare liniar
n numere ntregi

P0 x Rn A x b, x 0

Evident,

P * x P0 xk Z, k K

P0 P *

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

Propoziie. Fie x P0 soluia optim a lui (P0). Dac


este soluie optim i pentru problema (P*).

x P *, atunci x

P0 P *

Demonstraie.
Avem:

c f x inf c x x
P0 inf c f x x P * c f x
Pe de alt parte,

Rezult,

c f x inf c x x
P * . (q.e.d.)

x P *

Soluia optim.

Algoritm: metoda planelor de seciune.


da

i=0

Rezolv (Pi )

c x inf c x
f

xPi

Determin

x P *

Stop

nu

Pi 1 Pi I i
x Pi 1

ii+1
Observaie:

P0 P1 L Pi Pi1 L P *.
Cursul 9

Determinarea planelor de seciune (Gomory).


Considerm problema (P*) n care K 1, 2,K , n .
Fie B o baz optim pentru (Pi ) i presupunem c sk B ,

xsk xk ykj x j

Avem:

jR

xk xk f k 0
ykj ykj f kj

Introducem notaiile:

Rezult,

xsk Z.

unde 0 f k 0 1,
unde 0 f kj 1.

xsk xk ykj x j f k 0 f kj x j 0 1.
jR

Dar, x P *
n plus, avem:

jR

f
jR

Se adaug restricia:

kj

x j 0 & f k 0 0,1

f x
jR

kj

fk 0 .

Cursul 9

Observaie. Soluia de baz corespunztoare lui


adugat. ntr-adevr,

xB
x
x
0
xR

x nu verific restricia

0 f kj x j f k 0 0 .

Contradicie!

jR

Prin urmare, putem defini:

Pi 1 Pi I i x Pi

f x
jR

kj

y i 1 f k 0 , y i 1

Exist o soluie optim Z


Algoritmul se termin ntr-un
numr finit de pai:
Nu exist soluii n Z

Cursul 9

Implementare.
Fie B(i) o baz optim pentru (Pi ). Pentru (Pi+1 ) considerm matricea:

B i

B i 1 f
0

Bi 11

Bi 1 0

0f 1

Matricea B(i+1) este dual admisibil pentru (Pi+1 ) :

1
1
b
x i

B
B
0

i
i b i
i
1
x i 1 B i 1 b i 1

0
f

0f 1
f
f
k 0

k0


k0

j
j
1

A
Y

B
0
i
i
i

Y ij1 Bi 11 A ji 1
0f 1 f f
kj

kj
j

Y
i
i 1
i
f
j
z j c j cB i1 Y i 1 c j cB i , 0
cj zj cj 0
f
k 0

i
x
i 1
i 1
i
f
z
cB i1 x
cB i , 0

f
k 0

Cursul 9

Tabloul simplex:

x si

xj

xp

y i 1

x i

x sk

x k f k0

y i 1

y ij

y ip

y kj f kj

y kp f kp

f k0

f kj

f kp

zj cj

zp cp

Cursul 9

min 2x1 x2

Exemplu.

n raport cu

x1
x1
2 x1

x2
x2

1
3

x1 , x2 Z

Rezolvare grafic:

Cursul 9

Rezolvarea cu algoritmul ciclic al lui Gomory:

x x 1 x 2 x 3 x 4 x 5

x1 x2 x3 x4 x5

7
2

1
2

x3 1 1 1

x3

x4 3

x4

1
2

1
2

x5 5

x1

5
2

1
2

5 0

0 1

x1 x2 x3 x4 x5

x1 x2 x3 x4 x5 y

x3

1 1 1

x3

1 1 1 0

x2

1
2

1
2

x2

1
2

1
2

x1

5
2

1
2

x1

5
2

1
2

11
2

0 1

1
2

1
2

1
2

11
2

0 1

1
2

Cursul 9

x1 x2 x3 x4 x5 y

x3

1 1 1 0

x2

1
2

1
2

x1

5
2

1
2

11
2

0 1

x1 x2 x3 x4 x5

y
1
2

x3

1 1 0

x2

0 1

1
2

x1

1
2

x5

1 2

1
2

5 0

0 1 0 1

Cursul 9