Sunteți pe pagina 1din 54

Algoritmul simplex dual

Considerm problema de programare liniar n forma standard:

inf c f x | A x b, x 0

sup b f u | A
u c

i duala ei,
unde
Fie

(P)
(D)

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

B o baz optim a problemei (P). Avem:

Notm:
n plus,

x B 1 b 0

(primal-admisibilitatea lui B)

cBf B 1 A c

(condiia de optimalitate a lui B)

u f cB B 1

u f A c

z cBf x cBf B 1 b u

b.

Cursul 6

u admisibil pentru (D)


u optim pentru (D).
(teorema de dualitate tare)

Matricea de baz B se numete dual admisibil, dac

cBf B 1 A c
Teorem (optim): Dac baza B este primal i dual admisibil, atunci ea
este optim pentru problemele (P) i (D).
Algoritmul simplex primal:

i=0

B(i) dual

Determin B(i)
primal admisibil

admisibil ?
nu

i i+1

nu

da

B(i) optim !

(P) are optim


( ) ?
STOP
da

Cursul 6

Algoritmul simplex dual:

B(i) primal

Determin B(i)
dual admisibil

i=0

da

admisibil ?

B(i) optim !

nu

i i+1

(D) are optim


(+ ) ?

nu

da

Teorem (domeniu vid).


component

xi 0,

nu are soluie.

Demonstraie.
Definim vectorul:

Fie

STOP

B o baz dual admisibil. Dac exist o

pentru care

yij 0, j 1, n,

atunci problema (P)

Notm u f cB B 1 i Bi1 linia i a lui B1.

u f u Bi1 , R, 0.
Cursul 6

Pentru orice

j 1, n, avem:

u ff A j u

A j Bi1 A j z j yij z j c j
zj

yij

B dual admis.

deci, 0, u este o soluie admisibil pentru problema (D).


Valoarea funciei obiectiv este:

u f b u

b Bi1 b z xi

lim u f b z lim xi .

Problema (D) are optimul + i din T.F.D. rezult c (P) nu are soluie.
(q.e.d.)

Cursul 6

Teorem (schimbarea bazei): Fie B As1 As2 L Asm


o baz dual
admisibil i componenta x 0, pentru care exist j R cu y 0.
rj

Dac alegem indicele k R astfel nct

z j c j
zk ck
min
jR
yrk
yrj

yrj 0

B% As1 L Asr 1 Ak Asr1 L Asm este o baz dual


1
1
%
admisibil, pentru care z% c f B

c
B

b z.
%
B
B
atunci, matricea

Demonstraie. Evident, yrk 0. Din Lema substituiei rezult c


matrice nesingular.
Trebuie artat c

j 1, n,

B% este o

f
1
j
%
z%

A
c j 0.
j
j
B%

Cursul 6

Din formulele de schimbare a bazei avem:

z%
j cj zj cj

B fiind dual admisibil, rezult:

zk ck yrj
yrk

c j 0, j 1, n .

Dac yrj 0, evident z%


j c j 0.
Dac yrj 0, avem:

zj cj

z%
j c j yrj
0

yrj

zk ck

0.

yrk
0

Deci, B% este dual admisibil.

Din formula de schimbare a valorii funciei obiectiv obinem:

zk ck

z% z
x
yrk

z.

(q.e.d.)

0
Cursul 6

Paii algoritmului simplex dual

Pasul 0. Se determin (dac exist?!) o baz dual admisibil B i se


calculeaz B1.

Pasul 1. Se calculeaz

x B 1 b, z cBf x , Y B 1 A, z

f
cf cB Y c
0f .

Pasul 2. (test de optimalitate) Dac x 0, atunci s-a obinut valoarea


optim z , i soluia optim de baz xB x , xR 0. STOP.
Pasul 3. (test domeniu vid) Dac xi 0 pentru care yij 0, j 1, n,
atunci problema (P) nu are soluie. STOP.
Pasul 4. (schimbarea bazei) Dac xr 0 i j R cu yrj 0, se
determin k R astfel nct
z j c j

zk ck
min
yrj 0 .
jR
yrk
y
rj

Se formeaz B% B \ A r
i se revine la Pasul 1.
s

U Ak , se calculeaz inversa B%1 Er B 1


Cursul 6

Tabloul simplex standard

Y B 1 A

x B x
z

cB x B

cj

ck

xj

xk

c s i x s i x i

c sr x s r x r

z c

y ij

y rj

y ik

z csi xi
i 1

zj cj

y rk

z j c j csi yij c j
i 1

zk ck

Cursul 6

Exempl
e.
Considerm
problema:

inf 2 x1 x2 x3 3 x4 2 x5
x1 2 x2 x3 x4 3x5

3 x1 x2 2 x3 3 x4 x5

10

2 x1 x2 2 x3 x4 3 x5

5
8

xi 0, i 1,5.

Tabloul simplex pentru B A1 A2 A3 este:

x1 x2 x3

x4

x1

2
5

x2

2
3

61
15

7
5

59
15

17
5

x3

2
5

x5

x1

x2

x3

x4

x5

x1

14
45

2
15

8
15

x5

2
9

1
3

1
3

13
5

x3

209
45

13
15

8
15

12
5

67
15

4
5

2
5

21
5

Baza B este dual admisibil !


dar nu este i primal admisibil.
Cursul 6

x1

x2

x3

x4

x5

x1

x2 x3 x4 x5

x1

14
45

2
15

8
15

x2

7
3

15
2

x5

2
9

1
3

1
3

x5

5
2

x3

209
45

13
15

8
15

x3

20
3

13
2

67
15

4
5

0 1 0

21
5

19
3

54 215
63

min 2 , 8 min
6
6,

15
15

Baz primal &


dual admisibil !

Soluia optim

Cursul 6

10

inf 2 x1 3 x2 x3 6 x4 3 x5 3x6

Considerm problema:

x1 x2 3x3

2 x5 3x6

3 x2 2 x3 x4
2 x1 x2

2 x6

3 x4 x5 x6

xi 0, i 1, 6.

Tabloul simplex pentru B A1 A3 A6 este:


x

x1

x2

x4

x5

x6

3
2

8
11

x1

5
22

x3

1
22

21
22

1
2

6
11

6
11

25
22

17
2

x6

5
22

x3

19
22

5
11
5
11

7
11

0
1

19
172
19
19 17
22
min
,

min
,

5
3
5
5 3
22 2

Baza B este dual admisibil !


dar nu este i primal admisibil.

Cursul 6

11

x
x2

x1

x2 x3

22
5

x4
33
5

x5

x6

16
5

x2

x1

x2

x3

4
29

11
29

33
29

x4

x5

x6

7
29

13
29

x3 1

21
5

29
5

13
5

x4

5
29

21
29

5
29

x6

12
5

18
5

11
5

x6

18
29

6
29

18
29

17
29

14
5

72
29

169
29

14
29

135
29

0
2

19
5

x1

17
5

x2

x3

x4 x5 x6

x5

4
7

11
7

29
7

33
7

x4

3
7

10
7

13
7

16
7

x6

2
7

15
7

157
7

36
7

17
7

5
7

92
7

135
7

Cursul 6

Baz primal &


dual admisibil !

Soluia optim

12

Algoritmul simplex adaptat


pentru problema de transport
x11

x12

x1n

a1

x21

x22

x2n

a2

Marf disponibil

m Depozite
xm1
b1

xm2
b2

n Beneficiari

xmn

am
Matricea
costurilor

bn

Marf solicitat

Cursul 6

c11

c1n

cm1

cmn
13

min cij xij

Modelul matematic:

Costul total

i 1 j 1

x
j 1

ij

n raport cu

x
i 1

ij

ai , i 1, m ,

Cantitatea disponibil
(oferta)

bj ,

Cantitatea solicitat
(cererea)

j 1, n ,

xij 0, i 1, m , j 1, n .
Condiia natural de existen a unei soluii admisibile este:

Oferta
m

Cererea
n

a x x b
i 1

i 1 j 1

ij

j 1

i 1

ij

j 1

bj
Cursul 6

14

min cij xij

Forma standard a problemei de transport:


n

ij

j 1

n raport cu

ij

i 1

i 1 j 1

ai , i 1, m ,

(PT)

bj ,

j 1, n ,

xij 0, i 1, m , j 1, n .
Teorem. (PT) are o soluie admisibil dac i numai dac

ai 0, i 1, m ; b j 0, j 1, n ;
Demonstraie.

Rezult imediat:

a b .
i 1

xij 0, i 1, m , j 1, n ,
m

ai

i 1

xij

i 1 j 1
j 1

j 1

ij

ij b j .
i 1
j 1

ai 0
bj 0

bj

ai
Cursul 6

15

Dac

i 1

j 1

i 1 j 1

S 0 ai b j 0 xij 0, i, j.
ab
S > 0 este suficient s lum xij i j 0, i 1, m , j 1, n .
S
m
m ab
m
bj
i j
xij
ai b j , j 1, n .

S i 1
i 1
i 1 S
n
n ab
ai n
i j
xij
b j ai , i 1, m .
(q.e.d.)

S j 1
j 1
j 1 S

Observaie. Putem considera mereu


m

S ai b j xij 0.

Notm
Dac

c
i 1 j 1

ij

cij 0 , i 1, m , j 1, n .

xij cij xij xij cij xij S


i 1 j 1

pentru max cij , 0


1 i m
1 j n

i 1 j 1

c x
i 1 j 1

ij ij

i 1 j 1

= constant

(PT) are optim finit !


Cursul 6

16

Structura matricei restriciilor:


x11

x12

x1n

x21

x22

x2n

xm1

= a2

xmn

= a1
1

xm2

= am
= b1

= b2
1

= bn

Teorema. Rangul matricei este = m + n 1.


Demonstraie. Rangul este < m + n .
i atunci,

c
e
r
e
r
e
a

Se elimin linia m + 1

det A11 , A21 ,L , Am 1,1 Am1 , Am 2 ,L , Amn 1 0.


Cursul 6

o
f
e
r
t
a

(q.e.d.)

17

Determinarea unei soluii iniiale de baz


Metoda colului de N V.

da

ai ai xij

xij min ai , b j

i j 1

Stop

ai 0

b j b j xij

da

nu

nu

i i 1

j j 1

i jm n

13

Exemplu.

17
11
19
7

18

Cursul 6

16

10

18

Determinarea unei soluii iniiale de baz


Metoda colului de N V.

da

ai ai xij

xij min ai , b j

i j 1

Stop

Exemplu.

ai 0

b j b j xij

da

nu

nu

i i 1

j j 1

i jm n

x11

13
17
11
19

18

Cursul 6

16

10

19

Determinarea unei soluii iniiale de baz


Metoda colului de N V.

da

ai ai xij

xij min ai , b j

i j 1

Stop

Exemplu.

ai 0

b j b j xij

da

nu

nu

i i 1

j j 1

i jm n

6
17
11
19

18

Cursul 6

16

10

20

Determinarea unei soluii iniiale de baz


Metoda colului de N V.

da

ai ai xij

xij min ai , b j

i j 1

Stop

Exemplu.

ai 0

b j b j xij

da

nu

nu

i i 1

j j 1

i jm n

x12

6
17
11
19

18

Cursul 6

16

10

21

Determinarea unei soluii iniiale de baz


Metoda colului de N V.

da

ai ai xij

xij min ai , b j

i j 1

Stop

Exemplu.

ai 0

b j b j xij

da

nu

nu

i i 1

j j 1

i jm n

0
17
11
19

12

Cursul 6

16

10

22

Determinarea unei soluii iniiale de baz


Metoda colului de N V.

da

ai ai xij

xij min ai , b j

i j 1

Stop

Exemplu.

ai 0

b j b j xij

da

nu

nu

i i 1

j j 1

i jm n

x22

17
11
19

12

Cursul 6

16

10

23

Determinarea unei soluii iniiale de baz


Metoda colului de N V.

da

ai ai xij

xij min ai , b j

i j 1

Stop

Exemplu.

ai 0

b j b j xij

da

nu

nu

i i 1

j j 1

i jm n

12

5
11
19

Cursul 6

16

10

24

Determinarea unei soluii iniiale de baz


Metoda colului de N V.

da

ai ai xij

xij min ai , b j

i j 1

Stop

Exemplu.

ai 0

b j b j xij

da

nu

nu

i i 1

j j 1

i jm n

6
12

0
x23

5
11
19

Cursul 6

16

10

25

Determinarea unei soluii iniiale de baz


Metoda colului de N V.

da

ai ai xij

xij min ai , b j

i j 1

Stop

Exemplu.

ai 0

b j b j xij

da

nu

nu

i i 1

j j 1

i jm n

6
12

0
5

0
11
19

Cursul 6

16

10

26

Determinarea unei soluii iniiale de baz


Metoda colului de N V.

da

ai ai xij

xij min ai , b j

i j 1

Stop

Exemplu.

ai 0

b j b j xij

da

nu

nu

i i 1

j j 1

i jm n

6
12

0
5

x33

11
19

Cursul 6

16

10

27

Determinarea unei soluii iniiale de baz


Metoda colului de N V.

da

ai ai xij

xij min ai , b j

i j 1

Stop

Exemplu.

ai 0

b j b j xij

da

nu

nu

i i 1

j j 1

i jm n

6
12

0
5

7
19

Cursul 6

16

10

28

Determinarea unei soluii iniiale de baz


Metoda colului de N V.

da

ai ai xij

xij min ai , b j

i j 1

Stop

Exemplu.

ai 0

b j b j xij

da

nu

nu

i i 1

j j 1

i jm n

6
12

0
5
4

0
x34

7
19

Cursul 6

16

10

29

Determinarea unei soluii iniiale de baz


Metoda colului de N V.

da

ai ai xij

xij min ai , b j

i j 1

Stop

Exemplu.

ai 0

b j b j xij

da

nu

nu

i i 1

j j 1

i jm n

6
12

0
5
4

0
7

0
19

Cursul 6

10

30

Determinarea unei soluii iniiale de baz


Metoda colului de N V.

da

ai ai xij

xij min ai , b j

i j 1

Stop

Exemplu.

ai 0

b j b j xij

da

nu

nu

i i 1

j j 1

i jm n

6
12

0
5
4

Cursul 6

0
7

x44

19

10

31

Determinarea unei soluii iniiale de baz


Metoda colului de N V.

da

ai ai xij

xij min ai , b j

i j 1

Stop

Exemplu.

ai 0

b j b j xij

da

nu

nu

i i 1

j j 1

i jm n

6
12

0
5
4

Cursul 6

0
7

10

10

32

Determinarea unei soluii iniiale de baz


Metoda colului de N V.

da

ai ai xij

xij min ai , b j

i j 1

Stop

Exemplu.

ai 0

b j b j xij

da

nu

nu

i i 1

j j 1

i jm n

6
12

0
5
4

Cursul 6

0
7

x45

10

10

33

Determinarea unei soluii iniiale de baz


Metoda colului de N V.

da

ai ai xij

xij min ai , b j

i j 1

Stop

Exemplu.

ai 0

b j b j xij

da

nu

nu

i i 1

j j 1

i jm n

6
12

0
5
4

Cursul 6

0
7

10

34

Determinarea unei soluii iniiale de baz


Metoda colului de N V.

da

ai ai xij

xij min ai , b j

i j 1

Stop

Exemplu.

ai 0

b j b j xij

da

nu

nu

i i 1

j j 1

i jm n

6
12

13
5
4

18

Cursul 6

17
7

11

10

16

10

19

35

Determinarea unei soluii iniiale de baz


Metoda costului minim.
I 1, 2,K , m

cij min

J 1, 2,K , n

rI , kJ

ai ai xij

xij min ai , b j

crk

b j b j xij

I I \ i

nu

da
?

da

Stop

ai 0

I J

J J \ j

nu

Exemplu.
5

13

17

11

19
7

Matricea costurilor
Cursul 6

18

16

10

36

Determinarea unei soluii iniiale de baz


Metoda costului minim.
I 1, 2,K , m

cij min

J 1, 2,K , n

rI , kJ

ai ai xij

xij min ai , b j

crk

b j b j xij

I I \ i

nu

da
?

da

Stop

ai 0

I J

J J \ j

nu

Exemplu.
13

11

19

x24

Matricea costurilor
Cursul 6

18

16

17

10

37

Determinarea unei soluii iniiale de baz


Metoda costului minim.
I 1, 2,K , m

cij min

J 1, 2,K , n

rI , kJ

ai ai xij

xij min ai , b j

crk

b j b j xij

I I \ i

nu

da
?

da

Stop

ai 0

I J

J J \ j

nu

Exemplu.
13

11

19

16

Matricea costurilor
Cursul 6

18

10

38

Determinarea unei soluii iniiale de baz


Metoda costului minim.
I 1, 2,K , m

cij min

J 1, 2,K , n

rI , kJ

ai ai xij

xij min ai , b j

crk

b j b j xij

I I \ i

nu

da
?

da

Stop

ai 0

I J

J J \ j

nu

Exemplu.
x13

13

11

19

16

Matricea costurilor
Cursul 6

18

10

39

Determinarea unei soluii iniiale de baz


Metoda costului minim.
I 1, 2,K , m

cij min

J 1, 2,K , n

rI , kJ

ai ai xij

xij min ai , b j

crk

b j b j xij

I I \ i

nu

da
?

da

Stop

ai 0

I J

J J \ j

nu

Exemplu.
9

11

19

16

Matricea costurilor
Cursul 6

18

10

40

Determinarea unei soluii iniiale de baz


Metoda costului minim.
I 1, 2,K , m

cij min

J 1, 2,K , n

rI , kJ

ai ai xij

xij min ai , b j

crk

b j b j xij

I I \ i

nu

da
?

da

Stop

ai 0

I J

J J \ j

nu

Exemplu.
5

4
16

1
11

x41
7

Matricea costurilor
Cursul 6

19
18

10

41

Determinarea unei soluii iniiale de baz


Metoda costului minim.
I 1, 2,K , m

cij min

J 1, 2,K , n

rI , kJ

ai ai xij

xij min ai , b j

crk

b j b j xij

I I \ i

nu

da
?

da

Stop

ai 0

I J

J J \ j

nu

Exemplu.
5

4
16

1
11

7
0

Matricea costurilor
Cursul 6

12
18

10

42

Determinarea unei soluii iniiale de baz


Metoda costului minim.
I 1, 2,K , m

cij min

J 1, 2,K , n

rI , kJ

ai ai xij

xij min ai , b j

crk

b j b j xij

I I \ i

nu

da
?

da

Stop

ai 0

I J

J J \ j

nu

Exemplu.
5

x15
16

4
1
11

7
0

Matricea costurilor
Cursul 6

12
18

10

43

Determinarea unei soluii iniiale de baz


Metoda costului minim.
I 1, 2,K , m

cij min

J 1, 2,K , n

rI , kJ

ai ai xij

xij min ai , b j

crk

b j b j xij

I I \ i

nu

da
?

da

Stop

ai 0

I J

J J \ j

nu

Exemplu.
5

4
16

0
1
11

7
0

Matricea costurilor
Cursul 6

12
18

44

Determinarea unei soluii iniiale de baz


Metoda costului minim.
I 1, 2,K , m

cij min

J 1, 2,K , n

rI , kJ

ai ai xij

xij min ai , b j

crk

b j b j xij

I I \ i

nu

da
?

da

Stop

ai 0

I J

J J \ j

nu

Exemplu.
5

9
x22

4
16

0
1
11

7
0

Matricea costurilor
Cursul 6

12
18

45

Determinarea unei soluii iniiale de baz


Metoda costului minim.
I 1, 2,K , m

cij min

J 1, 2,K , n

rI , kJ

ai ai xij

xij min ai , b j

crk

b j b j xij

I I \ i

nu

da
?

da

Stop

ai 0

I J

J J \ j

nu

Exemplu.
5

9
1

4
16

0
0
11

7
0

Matricea costurilor
Cursul 6

12
17

46

Determinarea unei soluii iniiale de baz


Metoda costului minim.
I 1, 2,K , m

cij min

J 1, 2,K , n

rI , kJ

ai ai xij

xij min ai , b j

crk

b j b j xij

I I \ i

nu

da
?

da

Stop

ai 0

I J

J J \ j

nu

Exemplu.
5

9
1

4
16

0
x35

7
0

Matricea costurilor
Cursul 6

11
12

17

47

Determinarea unei soluii iniiale de baz


Metoda costului minim.
I 1, 2,K , m

cij min

J 1, 2,K , n

rI , kJ

ai ai xij

xij min ai , b j

crk

b j b j xij

I I \ i

nu

da
?

da

Stop

ai 0

I J

J J \ j

nu

Exemplu.
5

9
1

4
16

0
6

7
0

Matricea costurilor
Cursul 6

5
12

17

48

Determinarea unei soluii iniiale de baz


Metoda costului minim.
I 1, 2,K , m

cij min

J 1, 2,K , n

rI , kJ

ai ai xij

xij min ai , b j

crk

b j b j xij

I I \ i

nu

da
?

da

Stop

ai 0

I J

J J \ j

nu

Exemplu.
5

9
1

4
16

0
6

Matricea costurilor
Cursul 6

x42

17

5
12

49

Determinarea unei soluii iniiale de baz


Metoda costului minim.
I 1, 2,K , m

cij min

J 1, 2,K , n

rI , kJ

ai ai xij

xij min ai , b j

crk

b j b j xij

I I \ i

nu

da
?

da

Stop

ai 0

I J

J J \ j

nu

Exemplu.
5

9
1

4
16

0
6

Matricea costurilor
Cursul 6

12

5
0

50

Determinarea unei soluii iniiale de baz


Metoda costului minim.
I 1, 2,K , m

cij min

J 1, 2,K , n

rI , kJ

ai ai xij

xij min ai , b j

crk

b j b j xij

I I \ i

nu

da
?

da

Stop

ai 0

I J

J J \ j

nu

Exemplu.
9

x32

Matricea costurilor
Cursul 6

12

4
16

0
0

5
0

51

Determinarea unei soluii iniiale de baz


Metoda costului minim.
I 1, 2,K , m

cij min

J 1, 2,K , n

rI , kJ

ai ai xij

xij min ai , b j

crk

b j b j xij

I I \ i

nu

da
?

da

Stop

ai 0

I J

J J \ j

nu

Exemplu.
9

Matricea costurilor
Cursul 6

12

4
16

0
0

0
0

52

Determinarea unei soluii iniiale de baz


Metoda costului minim.
I 1, 2,K , m

cij min

J 1, 2,K , n

rI , kJ

ai ai xij

xij min ai , b j

crk

b j b j xij

I I \ i

nu

da
?

da

Stop

ai 0

I J

J J \ j

nu

Exemplu.
9

Matricea costurilor
Cursul 6

12

18

4
16

13
17

11
19

16

10

53

Determinarea unei soluii iniiale de baz


7

6
12

Metoda colului de N V.
Costul total = 193

13
5
4

17
7

11

10

19

Metoda costului minim.


Costul total = 137

18

16

10

Matricea costurilor
Cursul 6

12

18

4
16

13
17

11
19

16

10

54

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