Sunteți pe pagina 1din 77

II.

METODE SIMPLEX PENTRU MODELE LINIARE


1. Algoritmul simplex primal. Descriere.

Pentru rezolvarea modelelor liniare, au aprut, ncepnd cu 1948,


mai multe metode, dintre care amintim: metoda simplex cu variantele sale,
metoda Kantorovici, metoda relaxrii. Dintre toate metodele aprute n
literatura de specialitate, cea mai rspndit este cea elaborat de
G. B. Dantzig.
Algoritmul propus de Dantzig permite determinarea unei soluii
admisibile de baz optime, dac exist, prin examinarea parial dirijat a
mulimii soluiilor admisibile de baz; mai precis, vor fi testate o parte din
soluiile admisibile de baz. n mod empiric, pe baza unor experiene de
calcul efectuate timp de 10 ani, s-a stabilit c soluia optim, dac exist, se
obine dup cel mult 3m iteraii (m = rangA). Fiecare dintre aceste noi
iteraii const n gsirea unei noi soluii admisibile de baz creia i
corespunde o valoare mai bun a funciei obiectiv dect n situaia
precedent.
1.a) Teoreme fundamentale ale algoritmului simplex primal
Se consider o problem de programare liniar sub form standard:
AX = b , unde A M m n (R ) , rangA = m < n ; b 0 i i I a.. bi 0

(P)

X 0
[max] f ( x) = CX

Analiza economico-matematic a unor modele liniare

Fie X 1 o SAB corespunztoare bazei B1 = (as )sJ B1 , n raport cu care


1

( )

b B1

(X )

B1

= ( x1 , x 2 , ...., xm )

se va explicita sistemul de restricii X B = B1

(B )

1 1

b = (X )
not

B1

0 . Elementele vectorului

( )

RX R , unde
T

sunt

valorile variabilelor bazice, deci, componentele nenegative ale vectorului


X1.

Teorema 1: Criteriul de mbuntire a unei soluii admisibile de baz


Fie problema de programare liniar (P), B1 o baz n R m i X 1
soluia admisibil de baz corespunztoare ei. Dac pentru un indice
1

j J J B , f j c j < 0 i exist cel puin un indice s J B astfel nct

y sj > 0 , atunci X 1 poate fi nlocuit printr-o soluie admisibil de baz X 2

cel puin la fel de bun, n sensul f ( X 1 ) f ( X 2 ) . Soluia admisibil


1

X 2 corespunde bazei B 2 dedus din B1 prin nlocuirea lui ak , k J B , cu


1

al , l J J B . Indicii l i k sunt dai de relaiile:

II.1.1

f 1 c1 =

min { f j c j | f j c j < 0 }
jJ J B

i
II.1.2

xk
= min s y sj > 0 .
y kl s J B y sj

Teorema 2: Testul de optimalitate

O soluie admisibil de baz, X , a problemei (P) este optim dac i numai


dac
II.1.3

f j c j 0 , j J .

Metode simplex pentru modele liniare

Observaia 1 : Dac exist X SAB astfel nct s fie identificate relaiile

II.1.3 - numite criteriu de optimalitate - atunci [max] f ( x) << + .


Observaia 2: Relaia

II.1.4

f j c j 0 , j J

este criteriu de optimalitate dac se cere minimizarea funciei liniare f.


Observaia 3: f s c s = 0 , s J B , unde J B reprezint mulimea indicilor

variabilelor bazice.
Corolar: Soluia optim X * este unic determinat dac

II.1.5

f j c j > 0 , j J J B (adic, oricare j pentru care a j este

nebazic).
Teorema 3: Testul de optim infinit

Dac pentru o soluie admisibil de baz a problemei considerate


exist un indice l J J B astfel nct f l cl 0 i y sl 0 , s J B ,
atunci (P) are optim infinit.
Observaia 4: Pentru problemele cu funcia obiectiv [min] f , criteriul de

recunoatere a optimului nemrginit (teorema 3) este:


l J J B astfel nct f l cl > 0 i y sl 0 , s J B .

Din enunul teoremei rezult c o problem de programare liniar


are optim infinit dac exist un vector nebazic cu toate componentele
nenegative ( al = ( y sl )s , y sl 0 , s ), pentru care f l cl nu satisface
criteriul de optimalitate al tipului su de optim.

Analiza economico-matematic a unor modele liniare

Concluziile celor trei teoreme sunt sistematizate n tabelul urmtor:


Soluie optim finit ([opt]f<< )
unic
multipl
determinat

f j cj > 0,
j J J
f j cj = 0,
B

[max]

j J
f j cj = 0,
B

[min]

j J B
f j cj < 0,
j J J

f j c j 0 , j {1,.., n}
i

k J J B a..
f k ck = 0
f j c j 0 , j {1,.., n}
i

k J J B a..
f k ck = 0

Optim infinit

l J J B a..
f l cl < 0 i
y sl 0 , s J B
l J J B a..
f l cl > 0 i
y sl 0 , s J B

1.b) Schema de rezolvare prin algoritmul simplex primal:


Modelul matematic.
Forma standard
AX = b , X 0 , [max] f ( X ) = cX

rangAmn = m < n , b 0 , bk > 0 , k 1, m

Se genereaz o SAB

X (1) B = (a1 ...a m ) i R = (a m +1 ...a n )


x B = B 1b = x B
, J B = {1,..., m}
X (1) =
R

x =0

Metode simplex pentru modele liniare

Calculeaz:

0 , pentru a j vector bazic

1
B
f j c j = c B a j c j care este 0 , pentru a j vector nebazic, sau
0 , pentru a vector nebazic
j

B
1
f0 = c B b

fj cj 0

DA

j = 1, n

STOP. Problema admite soluie


optim finit

B 1 b

f 0 = [max] f ; X =

NU

() vector nebazic cu
componentele negative i diferena
strict negativ?
( l J
i

\ J B a.. f l cl < 0
y sl 0 , s I

(1)

DA

STOP.
Problema admite
optim nemrginit

Analiza economico-matematic a unor modele liniare

(1)
NU
Se aplic:
criteriul de intrare n baz (C.I.B):

min {f j c j } = f r c r ;

f j c j <0

criteriul de eliminare din baz (C.E.B):

x x
min s = k
y sr > o y
y kr
sI sr

raport unic.

Observaii:
-

a k va fi eliminat de a r ;
y kr > 0 este pivotul iteraiei;

- dac raportul nu este unic determinat, se lucreaz cu problema perturbat sau se aplic
metoda lexicografic pentru a stabili ce vector va fi eliminat.
Se trece la

( 2)
X SAB

, unde

) (

f X (1) f X ( 2 )

(a1 ...a k 1 a k a k +1 ...a m ) (a1 ...a k 1 a r a k +1 ...a m )

J B := J B \ {k} U {r}
Se calculeaz componentele vectorilor n noua baz:
1) Elementele din linia pivotului, linia k:

x k y k1
y
,
,...., kn
y kr y kr
y kr

2) Vectorii care se menin n baz i menin componentele; dac


atunci, n noua baz,

ar

va avea componentele lui

ar

a luat locul lui

ak ,

ak ;

3) Pentru orice alt component care nu a fost calculat la 1) sau 2), se aplic una dintre
formulele:

x i :=

y ij :=

x i y kr x k y ir
,
y kr
y ij y kr y kj y ir

y kr

pentru

i J B \ {r}

, pentru

jJ

Metode simplex pentru modele liniare

Observaia 5:

numrul soluiilor admisibile de baz este cel mult C nm ;


trecerea de la o iteraie la alta presupune trecerea de la o SAB la o alt
soluie admisibil de baz, cel puin la fel de bun n sensul dat de optimul
funciei; rezult c dup un numr finit de pai acest procedeu iterativ se
oprete dac nu apare fenomenul de ciclare.
Observaia 6: Prin algoritmul simplex sunt examinate numai soluiile

admisibile de baz. Procedura de iterare a algoritmului simplex se oprete


atunci cnd nu va mai exista nici un vector care, introdus n baz, s duc la
creterea valorii funciei scop, dac problema admite optim finit. Din punct
de vedere geometric se ajunge la punctul de extrem al mulimii

care

optimizeaz funcia scop.


Observaia 7: Prin trecerea de la o SAB la o alta cel puin la fel de bun n

sensul dat de tipul de optim al funciei f ( X ) , se realizeaz o cretere a


acesteia cu

xk
( f r cr ) .
y kr

Observaia 8: Cnd scopul este de a minimiza funcia obiectiv, algoritmul

se modific, n sensul maximizrii funciei ( f ) .


1.c) Aplicaii ale algoritmului simplex
n continuare vom exemplifica aplicarea algoritmului n trei modele
distincte.

Model liniar cu optim finit, unic determinat


Specific acestui prim exemplu, care va fi studiat, este c prin
aducerea la forma standard apar m vectori care formeaz o baz n spaiul
bunurilor.

Analiza economico-matematic a unor modele liniare

Etapa 0:

Se consider un model simplificat al unui proces de fabricare a trei


produse, prin utilizarea limitat a trei resurse:
[max] f = 20 x1 + 16 x2 + 17 x3
x1 + 2 x2 680

2 x1 + x2 + 4 x3 800
2 x + 2 x + x 900
2
3
1

x j 0, j = 1,3
cu forma standard:

[max] f = 20 x1 + 16 x2 + 17 x3 + 0 x4 + 0 x5 + 0 x6
x1 + 2 x2 + x4 = 680

2 x1 + x2 + 4 x3 + x5 = 800
2 x + 2 x + x + x = 900
2
3
6
1

II.1.6

x j 0, j = 1,6
Etapa 1: Generarea unei soluii admisibile de start.
Pasul 1 Se scrie matricea A i se verific apoi condiia

rangA36 = 3 < 6 :
1
A = 2
2
a1

2 0 1 0 0
1 4 0 1 0
i rangA = 3 < 6.
2 1 0 0 1
a 2 a3 a 4 a5 a 6

Metode simplex pentru modele liniare

Se scrie baza de start i se deduce soluia admisibil de baz (SAB)


de start: B1 = (a 4

a5

a 6 ) = I 3 este baza de start format din vectorii

unitate a4 , a5 i a6 . Aadar, X

B1

x4

= x5 ,
x
6

R1

x1

= x2 , de unde rezult
x
3

explicitarea sistemului n raport cu baza B1 :

1 0 0 x 4 680 1 2 0 x1


II.1.7 0 1 0 x 5 = 800 2 1 4 x 2
0 0 1 x 6 900 2 2 1 x 3
Se stabilete SAB de start:
0
680

not B
R
800 = X i X = 0 , sau
0
900

X SAB = (0 0 0 680 800 900 ) .


T

Observaia 9: Nu are importan ce coloane ale matricii A sunt vectori

liniar independeni n R m ; important pentru rapiditatea gsirii soluiei


optime este ca A s conin o matrice unitate.

Analiza economico-matematic a unor modele liniare

Pasul 2

f0 = f (X ) = c X
1

= (c 4

c5

c6 ) X

1
3

1

a1 = (0 0 0 ) I 3 2 = 0 ,
2

f2 = c I

1
3

2

a 2 = (0 0 0 ) I 3 1 = 0 ;
2

f3 = c I

1
3

0

a3 = (0 0 0 ) I 3 4 = 0 ,
1

f4 = c I

1
3

1

a 4 = (0 0 0 ) I 3 0 = 0 ;
0

f5 = c I

1
3

0

a5 = (0 0 0 ) I 3 1 = 0 ,
0

f6 = c I

1
3

0

a 6 = (0 0 0 ) I 3 0 = 0 .
1

f1 = c I
B

680

= (0 0 0 ) 800 = 0 ;
900

De obicei, calculele implicate de aplicarea algoritmului simplex sunt


organizate n tabelele simplex, care au cel mult m + 4 linii i n + 4 coloane,
i corespund unei baze. n continuare va fi dat tabelul corespunztor bazei
de start.

Metode simplex pentru modele liniare

T. II.1.1

cj

20

16

17

a1

a2

a3

a4

a5

a6

1
2

2
1

0
4

1
0

0
1

0
0

680/1
800/2 (minim)
900/2

cB
0
0

a4
a5

XB
680
800

a6

900

fj

f j cj

-20 -16 -17

Pasul 3 Este verificat testul de optimalitate (vezi teorema 2)?

DA

f j c j 0 , j = 1, n ?

STOP. X 1 este soluia optim


a problemei i f 0 valoarea
maxim a funciei obiectiv.

NU

Pasul 4

Pentru problema de fa, f j c j < 0 ,

j = 1,2,3 i

f j cj = 0 ,

j = 4,5,6 se trece la Pasul 4.


Pasul 4 Se verific dac problema admite optim infinit (teorema 3):
STOP.
DA

[max] f = +

NU

Pasul 5

l J J astfel nct f l cl < 0 i y sl 0 , s J ?


B

Din T.II.1.1 se observ c nu exist vector nebazic (a1


componentele negative i pentru care f l cl < 0 .

a2

a3 ) cu toate

Analiza economico-matematic a unor modele liniare

Pasul 5 Dac algoritmul nu se oprete la Pasul 3 sau Pasul 4,

rezult c soluia testat, X 1 , nu este optimal, deci, trebuie s se treac la o

( ) ( )

nou SAB, X 2 , cel puin la fel de bun ca X 1 , n sensul c f X 1 f X 2 .


Pentru aceasta se vor executa dou operaii.
Operaia 1: Se aplic criteriul de intrare n baz:

C.I.B [max]
f minB f j c j f j c j < 0 = f l cl al va intra n
jJ J

baz.
Operaia 2: Se aplic criteriul de eliminare din baz:
[max ] f
b

b
x
C.E.B = minB s y sl > 0 = minB s a sl > 0 = k ,
[min ] f
sJ
a kl
sJ a sl
y sl

pentru

X 1,

xk
, de unde rezult c a k va fi eliminat, iar y kl devine
y kl

sau, n general, =

pivotul iteraiei. Se va presupune c pivotul este unic, ceea ce este


echivalent cu a spune c noua SAB are m componente strict pozitive.
Rapoartele calculate se trec n ultima coloan din tabelul II.1.1.
n cazul nostru, avem:
Operaia 1:

min f j c j f j c j < 0 = min{ 20, - 16, - 17} = 20 = f1 c1 ,

j =1, 2 , 3

de unde rezult c a1 va intra n noua baz (l=1).


b b b
680 800 900 800 b2
Operaia 2: min 1 , 2 , 3 = min

,
,
=
=
2
2
2
a 21
1
a11 a 21 a33
a 2 va fi eliminat i a 21 = 2 este pivotul iteraiei, pe care l vom colora n
tabel.

Metode simplex pentru modele liniare

Cele trei rapoarte se trec n ultima coloan a tabelului T.II.1.1; dac


un raport nu se poate calcula n sensul dat de C.E.B n ultima coloan,
pe acel loc, se va trece / sau - .
Pasul 6 Conform teoremei 1, se trece de la soluia admisibil de
baz X 1 la soluia admisibil de baz X 2 ce corespunde bazei B2 dedus

din B1 prin nlocuirea vectorului a k cu vectorul al :


B2 = (a1 ... a k 1

al

a k +1 ... a n ) i J B2 = ( J B1 {k}) U {l} .

Se trece la un nou tabel simplex. Se vor scrie vectorii nebazici i


X n noua baz. Aceste calcule ce vor fi trecute n tabelul T.II.1.3
iteraia 2 a algoritmului simplex sunt efectuate n conformitate cu
calculele implicate de metoda eliminrii complete:
B

Dac un vector se menine n baz, atunci el i menine componentele


(a1 ... ak ak +1 ... am ) ; dac vectorul ak este eliminat din baz de
ctre al , atunci acesta i ia componentele (vezi tabelul T.II.1.2). n
particular, vectorii a 4 , a 6 i menin componentele, iar vectorul a1 va avea
componentele lui a 5 din iteraia 1.
Elementele din linia vectorului al se obin mprind elementele din linia
vectorului a k , iteraraia precedent, la pivotul iteraiei, y kl . Astfel,
elementele din linia 2, iteraia 2, iau valorile

800 2 1 4 0 1 0
, , , , , , .
2 2 2 2 2 2 2

Formulele de trecere de la o iteraie la alta pot fi sistematizate direct n


tabelul simplex:

T.II.1.2
cj
c

X
b a

c1

a1

kl

c1

b a
k

k +1

a k 1

b a
kl

a k 1

a
1l
a
kl

k 1l

a
kl

.
.
.

cm

am

k +1

b a
kl

k + 1l

kl

cj

cl

aj

al

cn

an

a kl

B
j J J 2

k 1l
a
kl

a ij a kl a kj a il

al

a k +1

a m +1

a k +1

1l

c k +1

am

ak

a1

kl

cl

.
.

c k +1

.
b

c k 1

c m +1

ck

cm

c k 1

kl

.
.
.

kl

. .

km + 1
a
kl

kn
a
kl

k + 1l
a
kl

.
b a
m

kl

b a
k

ml

a
kl

fj

f1

f0

fj

f1

c
j

fk
fk c

fl

fm
fm

f m +1

m +1

fl
c

fn

fn
c

Metode simplex pentru modele liniare

Dup efectuarea calculelor, se revine la pasul 2. Pentru exemplul


numeric de mai nainte, obinem:

680 2 800 1
= 280
2
XB

900 2 800 2
= 100
2

prima component

y12 :=

2 2 11
2

y 32 :=

2 2 2 1
2

1
2

a2
a treia component

2
2

1
2

Analiza economico-matematic a unor modele liniare

Rezultatele calculelor pentru exemplul numeric propus, pn la


oprirea algoritmului, sunt date n tabelul II.1.3:

T.II.1.3

Iteraia 2

cj

20

XB

a1 a 2

a3

a 4 a5

a6

17

cB

a4

280

3/2

-2

-1/2

20

a1
a6

400

1/2

1/2

280/3/
2
400/2

100

-3

-1

100/2

8000

20

10

40

10

-6

23

10

130

5/2

-3/2

350

7/2

-1/2

100

-3

-1

8600

20

16

22

fj
f j cj
0
20
16

Iteraia 3

16

a4
a1
a2
fj
f j cj

0 ? NU

0 ? DA STOP

n linia test f j c j este verificat criteriul de optimalitate, motiv


pentru care algoritmul se oprete, modelul liniar admind soluie optim
finit.

Metode simplex pentru modele liniare

Citirea soluiei:
Baza optim

Variabile bazice

Valori optimale

a4
a1
a2

x4
x1
x2

130

Variabile nebazice

x3
x5
x6

350
100
Valori optimale
0
0
0

Soluia optim X * = (350 100 0 130 0 0) este:


T

unic determinat, deoarece f j c j > 0 , pentru a j nebazic;


nedegenerat, pentru c numrul componentelor strict pozitive este egal cu

rangA=3.
[max] f = 8600 = f 0 n ultimul tabel, numit i tabel optimal.
Modelul liniar cu optim nemrginit

Considerm urmtorul program liniar


[max] f = x1 + 2 x2 + 2 x3 + x4
1

x1 x3 + x4 = 1

2
x2 + x3 x4 = 1
x j 0 , j = 1,4

Analiza economico-matematic a unor modele liniare

Vom studia natura sa aplicnd algoritmul propus de Dantzig.


1
b = > 0 ,
1

Deoarece

1 0
B=
= (a1
0 1

1 0 1 1 / 2
A=

0 1 1 1 ,
a1 a 2 a3
a4

rang

A=2<4

a 2 ) , rezult c scrierea canonic a sistemului de restricii

1 0 x1 1 1 / 2 x3 1
0 1 x + 1 1 x = 1 ,

2
4
evideniaz o SAB de start, i anume, X SAB = (1 1 0 0 ) .
T

Calculele implicate de aplicarea algoritmului sunt sistematizate n


urmtorul tabel simplex:

cB

a1
a2
fj

cj

XB

a1

a2

a3

a4

-1

1/2

1/(1/2)

-1

-3/2

-1

-5/2

-2

-1

-4

-6

f j cj
1
2

a4
a2
fj

f j cj

0 ? NU; Th.3?

NU

0 ? NU; Th.3? DA

Th.1

Metode simplex pentru modele liniare

n ultima linie exist un vector nebazic, i anume a 3 , pentru care


y = 2 < 0 Th .3
f 3 c 3 < 0 i 13
STOP: [max] f = +
y 23 = 1 < 0
Vom investiga natura programului dual.
[max] f = 1 x1 + 2 x 2 + 2 x3 + 1 x 4

x4 = 1
1 x1 + 0 x2 + ( 1) x3 +
2

0 x1 + 1 x2 + 1 x3 + (1) x4 = 1
x1 0
x2 0
x3 0
x4 0

u2

[min]g = u1 + u 2

u1 R
u2 R
u1 + 0 u 2 1
1 u2 2

( 1) u1 + u 2 2
1
u1 u 2 1
2

d 1 : u1 = 1

d 2 : u2 = 2

d 4 : u2 =
O

d 3 : u 2 = u1 + 2

1
u1 1
2
u1

Analiza economico-matematic a unor modele liniare

Din rezolvarea grafic a problemei duale, se observ c = . Nu


exist (u1 u 2 ) , u i R , i = 1,2 , care s verifice simultan cele 4 restricii.
S reinem c, dac o problem de programare liniar are optim infinit,
atunci duala sa nu are soluie. Este aceasta o afirmaie general valabil?
Rspunsul l vom afla n urmtorul capitol.

2. Generarea SAB prin metode particulare

n continuare, vom analiza cazul n care matricea A, dup aducerea


la forma standard, nu conine o baz unitate din spaiul R m . n general, n
matricea A din modelele matematice corespunztoare unor procese reale nu
apare complet I m . Pentru a genera o soluie admisibil de baz a problemei
date, dac acest lucru este posibil, se poate alege una din variantele:
Scrierea explicit a sistemului de restricii n raport cu o baz din R m .
Metoda celor dou faze.
Metoda bazei artificiale.

a) Metoda bazei artificiale (1953 A. Chaines, W. Cooper, D. Fan)


Se consider un model matematic sub forma sa standard:
AX = b

II.2.1 X 0
i rang Am n = m < n , b 0 , k I a.. bk 0 .
[max] f ( X ) = cX

Presupunem c matricea A nu conine o baz unitate de ordinul m.


Prin aceast metod se urmrete generarea unei SAB pentru (II.2.1), dac
acest lucru este posibil, folosind numai algoritmul simplex primal.

Metode simplex pentru modele liniare

Metoda bazei artificiale presupune parcurgerea urmtoarelor etape:

Etapa 1 Se extinde problema prin introducerea a m variabile artificiale care


vor fi penalizate n funcia obiectiv:
AX + I m X a = b

II.2.2 X 0, X a 0
,
[max] f = CX X
a

unde >> 0 , I m este matricea unitate de ordin m, X a = x na+1 ...x na+ m

este

vectorul coloan cu componentele xna+i , i 1, m , variabile artificiale. Din


scrierea X a = b AX , rezult soluia de start:
X =0
X SAB
.
X a = b

Pentru a exemplifica parcurgerea acestei etape, considerm modelul


liniar:
[max] f = 3 x1 + 2 x2 + 4 x3
x1 + 4 x2 + 3 x3 = 6

2 x1 + x2 + x3 = 4
x j 0 , j 1,3

1 4 3
6
, unde A =
, b = , rangA=2<3.

2 1 1
4
a1

a2

a3

Analiza economico-matematic a unor modele liniare

1 0
Se constat c baza B =
nu poate fi format cu ajutorul unor vectori
0 1
din A, motiv pentru care se trece la forma extins:
[max] f = 3 x1 + 2 x2 + 4 x3 ( x4a + x5a )
x1 + 4 x2 + 3 x3 + x4a = 6

a
2 x1 + x2 + x3 + x5 = 4

>> 0

noua

matrice

x j 0 , j 1,5

1 4 3 1 0
A=
, apare baza B = (a 4
2 1 1 0 1

a5 ) , care permite scrierea

soluiei de start a1 a 2 a 3 a 4 a 5 pentru problema extins: x1 = x2 = x3 = 0 ,


x4a = 6 , x5a = 4 i f va fi (6 4 ) < 0 .

Observaia 1: Valoarea funciei obiectiv este o valoare foarte mic ( bi 0 ,


i = 1, m i >> 0 ). Deoarece se cere maximizarea lui f, ideal ar fi ca n
soluia optim toate variabilele artificiale s aib valoarea 0. Variabilele
artificiale au fost penalizate n funcia obiectiv cu coeficieni foarte mici,
pentru ca algoritmul simplex s le elimine din baz. Dac se cere [min] f ,

atunci ele vor fi penalizate cu coeficieni foarte mari: xna+1 + ... + xna+ m , cu

>> 0 , ceea ce s-ar traduce printr-o comportare nerentabil n raport cu


tipul de optim.
Etapa 2: Se aplic algoritmul simplex problemei extinse. Presupunem c
dup k iteraii, k N * , k < , avem f j c j 0 , j = 1, n + m , deci,
problema extins admite soluie optim finit.

Metode simplex pentru modele liniare

La baza discuiei ce va urma, relativ la existena sau nonexistena


soluiei optime a problemei iniiale, stau urmtoarele teoreme:

Teorema 1 Dac II.2.1 are soluie


optim finit, atunci ea va fi optim
i pentru II.2.2. Orice soluie optim
a problemei extinse care nu conine
nici o variabil artificial strict
pozitiv este soluie optim i pentru
problema iniial, dup nlturarea
variabilelor artificiale.

Teorema 2 Dac II.2.1 are


funcia obiectiv nemrginit, atunci i II.2.2 are
funcia obiectiv nemrginit.
Reciproca este adevrat.

Dup oprirea algoritmului, se discut natura problemei iniiale dup


cum urmeaz:

Cazul 1: Soluia optim a problemei extinse nu conine nici o variabil


artificial cu valoare strict pozitiv soluia optim a problemei II.2.1 se
obine considernd numai valorile optimale ale variabilelor x1 ,..., xn .

Cazul 2: n soluia optim exist cel puin o variabil artificial cu valoare


strict pozitiv; n acest caz, problema iniial nu are soluie.
Observaia 2: Deoarece funcia obiectiv este de forma

(CX X a ) ,

diferenele f j c j vor fi funcii liniare de . S presupunem c la o

anumit iteraie exist ( f j c j )( ) < 0 pentru cel puin doi indici. Va intra
n noua baz vectorul al dac ( f l cl )( ) va avea cel mai mic coeficient
negativ (respectiv, pentru [min] f , cel mai mare coeficient pozitiv).

Observaia 3: S presupunem c algoritmul s-a oprit la iteraia k N * ,


k < + , i c la iteraia r N * , r < k , s-a obinut o baz format numai cu

vectori din A (fr vectori artificiali). SAB corespunztoare acestei baze

Analiza economico-matematic a unor modele liniare

este o SAB pentru problema iniial. Practic, la aceast etap, se aplic


algoritmul simplex primal pentru problema originar.
Observaia 4: n general, dac a fost eliminat un vector artificial din baz,
componentele sale nu vor mai fi calculate la urmtoarele iteraii. Nu se
recomand acest lucru atunci cnd se cere soluia optim a dualei sau se
pune problema postoptimizrii modelului.
Se continu problema prin aplicarea algoritmului simplex primal
cj

a1

a2

a3

a4

a5

a4

6/4

a5

4/1

fj

10

3 3

5 2

4 4

1/4

3/4

1/4

5/4

1/4

-1/4

3/ 2 / 4

1/ 2 + / 4

5 / 2 5 / 4 1 / 2 + 5 / 2

fj

cj

a2

3/2

a5

5/2

fj
fj

5 / 2 + 3 1 / 2 5 / 4

cj

5 / 2 5 / 4

0 j ?
NU

0 j ?
NU

a2

7/10

3/10

-1/5

10/7

a1

1/5

-1/5

4/5

10

fj

-2

2 +

fj

cj

a3

10/7

10/7

3/7

-2/7

a1

12/7

-2/7

-2/7

6/7

fj

76/7

24/7

24

6/7

10/7

20/7

6/7 +

10 / 7 +

fj

cj

0 j ?
NU

0 DA
STOP

Metode simplex pentru modele liniare

Exemplificarea observaiei 2:

Iteraia

C.I.B:

min{ 3 3, 5 2, - 4 - 4} = 5 2 = f 2

c2

sau

min{-3, -5, -4}=-5 a 2 eliminat.

Iteraia 2 C.I.B: min{-5/4, -1/4}=-5/4 a1 va intra n baz.


La iteraia a 3-a, variabilele artificiale au fost eliminate i dispunem acum
de o baz a problemei iniiale: (a 2 , a1 ) , cu x1 = 2 , x 2 = 1 , x 3 = 0 .
Exemplificarea observaiei 1: n soluia optim a problemei extinse,
10
12
, x 2* = 0 , x 3* = , x 4* = 0 , x 5* = 0 , toate variabilele artificiale au
7
7
valori nule. Conform unei teoreme enunat anterior n acest capitol,
x1* =

12
problema iniial admite soluia optim finit X * =
7
[max] f =

10

76
.
7

Considerm acum un alt exemplu pentru a aplica metoda i n cazul


n care se impune minimizarea funciei scop. Rezolvarea problemei, fr
comentarii, este redat n cele ce urmeaz:
[min] f = 5 x1 + x2 + 2 x3
x1 + 2 x2 + x3 6

3x2 + 4 x3 = 20
x + 2 x 18
3
2
x j 0, j = 1,3

[min] f = 5 x1 + x2 + 2 x3
x1 + 2 x2 + x3 x4 = 6

forma standard 3x2 + 4 x3 = 20


.
x + 2 x x = 18
3
5
2
x j 0, j = 1,5

Analiza economico-matematic a unor modele liniare

1 2 1 1 0
6
1 0 0

A = 0 3 4 0 0
, rang A=3< 5, b = 20 > 0 , B3 = 0 1 0 nu
0 1 2 0 1
18
0 0 1

a1 a 2 a3 a 4 a5
poate fi
format numai cu coloane din A, dar a1 B3 .

Etapa 1:
Forma extins:
[min] f = 5 x1 + x2 + 2 x3 + x4a + x7a ; >> 0.
x1 + 2 x 2 + x 3 x 4 = 6
1

a
A = 0
3 x 2 + 4 x 3 + x 6 = 20
,
x + 2 x x + x a = 18
0
3
5
7
2
a1
x j 0, j = 1,7

2 1 1

0 0
3 4 0 0 1 0

1 2 0 1 0 1
a 2 a3 a 4 a5 a6 a7
0

x1 6

X = x6 = 20
x 18
7
B

B = (a1

a6

a7 ) X SAB

XR

x2 0

x3 0
= x4 =
0
x 5 0

Metode simplex pentru modele liniare

Tabelul simplex:
cj

a1

a2

a3

a4

a5

a6

a7

a1

-1

6/1

a4

20

20/4 (min)

a7

18

-1

18/2

fj

30 + 38

4 + 10

6 + 5

-5

[min] f

4 + 9

6 + 3

-3

fj

cj

a1

5/4

-1

-1/4

a3

3/4

1/4

a7

-1/2

-1

-1/2

fj

15 + 8

-5

3/ 4 / 2

-5

fj

cj

31 / 4 / 2
27 / 4 / 2

3 / 4 3 / 2

0 j ?

NU

[min] f
0 j ?
STOP

DA

Problema extins admite soluia optim finit x1* = 1 , x2* = 0 ,


x3* = 5 , x 4* = 0 , x 5* = 0 , x6* = 0 , x7* = 8 , care are o variabil artificial
bazic cu valoare strict pozitiv. Conform teoremei 2, problema propus
spre rezolvare este fr soluie.

b) Metoda celor dou faze (1954, G.B. Dantzig, A. Orden, P. Wolfe)


Se menin ipotezele de lucru de la metoda bazei artificiale. Ca i la
metoda precedent, se urmrete generarea unei SAB pentru II.2.1 ori de
cte ori calculul direct al unei astfel de soluii este dificil datorit
dimensiunilor problemei (m i/sau n foarte mari). Aceste dou metode pun
la dispoziia utilizatorului procedee generale de generare a soluiilor
admisibile de baz, sau informaia c problema nu are soluii ceea ce ar
putea indica o modelare greit a procesului economic.

Analiza economico-matematic a unor modele liniare

Metoda celor dou faze const n parcurgerea urmtoarelor etape:

Faza 1: Scopul acestei etape este de a obine, dac este posibil, o SAB de
start pentru II.2.1, aplicnd algoritmul simplex-primal problemei auxiliare:
II.2.3 A X + B (x n +1 ...xn +i ...x n + m ) = (b1 ...bm ) ,
T

unde xn+i este variabila artificial adugat numai prii stngi a restriciei i
, i = 1, m , iar B este matricea unitate de ordinul m=rangA.
II.2.4 X 0 , X a 0 ,
m

II.2.5 [min]W = xn +i .
i =1

La aceast faz obiectivul va fi minimizarea sumei variabilelor


articiale din restricii, indiferent de tipul de optim al problemei considerate.
Din II.2.3 rezult c variabilele artificiale bazice sunt n SAB de start:
X =0
. Se aplic algoritmul simplex primal problemei auxiliare.
X SAB =
X a = b

Admitem c aceasta are soluie optim finit, deci exist o SAB care
verific criteriul de optimalitate: w j c j 0 , j = 1, n + m .
Atunci,

min W = 0

NU

STOP
II.2.1 nu are soluii

Faza 2: Se revine la
AX = b
DA

X 0

[max] f ( X ) = CX

Se trece la rezolvarea ei
prin metoda simplex
primal cu SAB de start
dat de soluia optim a
problemei auxiliare, dup
ce au fost eliminate
variabilele artificiale.

Metode simplex pentru modele liniare

La baza metodei stau urmtoarele afirmaii:

Tema 1: Orice soluie admisibil de baz a problemei II.2.1 este SAB a


problemei auxiliare cu X a = 0 . Existena unei astfel de soluii atrage n mod
necesar [min]W=0.

Tema 2: Orice soluie admisibil de baz a problemei extinse pentru care


W=0 este o SAB a problemei iniiale.
S exemplificm numeric aplicarea acestei metode. Considerm
modelul liniar:
[min] f = 50 x1 + 25 x2 + 30 x3
x1 + 2 x2 + 3 x3 8

3 x1 + 4 x2 + x3 9

, cu forma standard

x j 0, j = 1,3
[min] f = 50 x1 + 25 x2 + 30 x3
x1 + 2 x2 + 3x3 x4 = 8

3 x1 + 4 x2 + x3 x5 = 9

x j 0, j = 1,5
1 2 3 1 0
A=
8

3 4 1 0 1 , b = , rangA=2<5. ntruct matricea A nu


9
a1 a 2 a3 a 4 a5
conine 2 vectori unitari care s formeze baza unitate n R 2 , vom aplica
metoda celor dou faze.

Analiza economico-matematic a unor modele liniare

Faza 1: Se construiete problema auxiliar


[min]W = x6 + x7
x1 + 2 x2 + 3 x3 x4 + x6 = 8
,

3x1 + 4 x2 + x3 x5 + x7 = 9

1 2 3 1 0 1 0
A=

3 4 1 0 1 0 1 . Deoarece
a1 a2 a3

x j 0, j = 1,7
B = (a 6

1 0
, rezult
a 7 ) =
0 1

a4

a5

a6 a7

X SAB : X = 0, X a = (8 9 ) . Se aplic
T

algoritmul simplex-primal:
0

a1

a2

a3

a4

a5

a6

a7

-1

8/2

-1

8/4

17

-1

-1

-1

-1

7/2

-1/2

5/2

-1

1/2

7/5

9/4

3/4

1/4

-1/4

7/2

-1/2

5/2

-1

1/2

-1/2

5/2

-1

1/2

7/5

-1/5

-2/5

1/5

19/10

4/5

1/10

-3/10

cj
c

a6

a7
fj
fj

a2
fj
fj

cj
a3

a2
fj
fj

cj
a6

cj

0 j = 1, 7 ? NU.

0 j = 1, 7 ? NU.

0 j = 1, 7 ? DA STOP.

Problema extins are soluie optim finit: x1* = 0 , x2* = 19 / 10 ,


x3* = 7 / 5 , x4* = x5* = x6* = x7* = 0 ; [min]W=0 se trece la faza 2.

Metode simplex pentru modele liniare

Observaie: Coloana lui a 7 nu ne mai intereseaz, deoarece variabila x7 ,


odat eliminat din baz, nu va mai fi reintrodus ulterior. Idem pentru a 6 .
Faza 2: Se revine la funcia obiectiv din modelul originar. Problema de
rezolvat va fi:
[min] f = 50 x1 + 25 x2 + 30 x3
x1 + 2 x2 + 3x3 x4 = 8

3 x1 + 4 x2 + x3 x5 = 9

cu

X SAB

x j 0, j = 1,5

x1 0

x2 19 / 10
= x3 = 7 / 5

x4 0
x

5 0

obinut prin

eliminarea variabilelor auxiliare din soluia optim gsit la faza 1. Se


testeaz optimalitatea sa:
cj

50

25

30

a1

a2

a3

a4

a5

a3

7/5

-1/5

-2/5

1/5

a2

19/10

4/5

1/10

-3/10

fj

89,5

14

25

30

-9,5

-1,5

-36

-9,5

-1,5

fj

cj

0 j = 1,5 ? DA

19

Problema admite soluia optim finit X SAB = 0


10

7
5

STOP
T

0 0 ,

cu [min]f=89,5.
Vom continua studiul modelului matematic prin scrierea dualei:

[min] f = 50 x1 + 25 x2 + 30 x3
x1 + 2 x2 + 3 x3 8 u1

3 x1 + 4 x2 + x3 9 u 2
x j 0, j = 1,3

[max]g = 8u1 + 9u 2
u1 + 3u 2 50

, pentru care duala este 2u1 + 4u 2 25


3u + u 30
2
1
u i 0, i = 1,2

Analiza economico-matematic a unor modele liniare

Stabilim soluia optim a dualei (dac exist). Forma standard a


dualei va evidenia o baz unitate n R 3 . ntr-adevr,
[max]g = 8u1 + 9u 2

1
u1 + 3u 2 + u3 = 50
A = 2

2u1 + 4u 2 + u 4 = 25 ,
3
3u + u + u = 30
5
1 2
a1
ui 0, i = 1,5

1 0 0
B = 0 1 0 = (a3
0 0 1

a4

3 1 0 0
50

4 0 1 0
, rang A=3<5, b = 25 > 0 ,
1 0 0 1
30

a 2 a3 a 4 a5

a5 ) , X SAB = (0 0 50 25 30 ) .
T

Se aplic algoritmul simplex-primal:


cj

a1

a2

a3

a4

a5

a3

50

50/3

a4

25

25/4

a5

30

30/1

fj

-8

-9

fj

cj

0 j = 1, 5 ?

a3

125/4

-1/2

3/4

a2

25/4

1/2

1/4

25/2

a5

95/4

5/2

-1/4

19/2

fj

175/4

9/2

9/4

-7/2

9/4

fj

cj

a3

26

-4/5

1/5

a2

3/2

3/10

-1/5

a1

19/2

-1/10

2/5

fj

89,5

19/10

7/5

19/10

7/5

fj

cj

0 j = 1,5 ? DA

STOP

Metode simplex pentru modele liniare

Duala admite soluia optim finit: u1* = 3 / 2 , u 2* = 19 / 2 , u 3* = 36 ,


u 4* = u 5* = 0 i [max]g = 89,5 = [min] f .

3. Degenerare i ciclare n probleme de programare liniar


Definiie: X se numete SAB degenerat pentru II.2.1 dac
numrul valorilor variabilelor bazice strict pozitive este cel mult (m-1) unde
m=rangA.
Soluiile admisibile de baz degenerate se pot obine n dou moduri:
1) n sistemul de restricii scris sub forma explicit X B + B 1 RX R = B 1b ,

B 1b are cel puin o component egal cu zero i toate celelalte strict


pozitive valorile variabilelor bazice X B = B 1b , strict pozitive, sunt
n numr de cel mult (m-1).
2) Exist cazul n care, n spaiul bunurilor R m , vectorul b nu formeaz un
sistem de vectori liniar independeni cu orice combinaie de (m-1)
vectori din A. Din punct de vedere geometric, acest lucru nseamn c b
trece printr-un vrf al poliedrului conex al restriciilor AX = b . S
presupunem

(a1

a 2 ... a m1

(a1
b)

a2

... a m )

este

baz

Rm ,

dar

nu este un sistem de m vectori liniar

independeni. Vectorul b poate fi scris n mod unic n baza

(a1

a2

... a m ) :

II.3.1 a1 x1 + a 2 x2 + ... + a m 1 xm1 + a m 0 = b .


Din II.3.1 rezult c X SAB are componentele ( x1 ....xm 1 0....0 ) , deci
T

este SAB degenerat.

Analiza economico-matematic a unor modele liniare

Rezolvarea urmtorului model matematic, n R 2 , ne va furniza o


interpretare geometric a conceptului de degenerare:
[max] f = x1 + 4 x 2

[max] f = x1 + 4 x 2

2 x1 + x 2 1
2 x + 5x 5

1
2
, cu forma standard

x
+
x
2
3
1
2 6

14 x1 + 11x 2 14

2 x1 + x 2 + x3 = 1
2x + 5x x = 5

1
2
4
.

2
x
3
x
x
+
+
1
2
5 = 6

14 x1 + 11x 2 + x6 = 14

x j 0, j = 1,2

x j 0, j = 1,6
x2

d1
d2

2
B
1

C
A

-5/2
-1/2

d3

x1

3 7
Valoarea maxim este atins n B , , prin care trec trei drepte
8 4
care definesc mulimea convex (simplexul) a soluiilor admisibile. Dac
nlocuim soluia optim n forma standard, se obine un program optim
degenerat: x1* =

3 * 7 *
, x 2 = , x3 = 0 , x 4* = 3 , x5* = 0 , x6* = 0 .
8
4

Observaie: i prin A trec trei drepte, d1 , d 2 i x1 = 0 , deci, prin nlocuirea


coordonatelor sale n forma standard, se obine o SAB degenerat.
S presupunem c unei probleme de programare liniar degenerat i
se caut soluia optim aplicnd metoda simplex, i, la o anumit iteraie,

Metode simplex pentru modele liniare

raportul min nu este unic determinat. Metoda perturbaiilor (A. Chanes) i


metoda lexicografic (B.B. Dantzig i P. Wolfe) sunt dou metode ce nu
nltur degenerarea, ci creeaz posibilitatea continurii algoritmului prin
nlturarea arbitrariului n determinarea vectorului ce va fi eliminat din
baz, vector situat pe una din liniile rapoartelor minime de valori egale.

a) Metoda lexicografic
Presupunem c la iteraia p N * , vectorul al , l J , trebuie s intre
n baz, toate componentele sale y sl , s I , sunt strict pozitive i
xs xk
x
= r .
=
y rl
y sl y kl

k = r = min
s| y > 0
sl

Se pune ntrebarea: care din cei doi vectori va fi eliminat, a k sau a r ?


T.II.3.1

cB
c1
ck
cr

cm

cj

c1

cl

XB

a1

al

cn

an

a1

x1

y1l

x1 / y11

ak

xk

y kl

xk / y kl

ar

xr

y rl

xr / y rl

am

xm

y ml

xm / y ml

fj
f j cj

Decizia va fi luat dup parcurgerea urmtorilor pai:

min

Analiza economico-matematic a unor modele liniare

Pasul 1 Se mpart elementele liniei k, ncepnd cu xk , la eventualul element


pivot y kl . Se mpart elementele liniei r la eventualul element pivot y rl , i se
aeaz sub celelalte rapoarte n ordinea dat de coloanele tabelului simplex:
xk y k1 y k 2
y
y
y
,
,
,..., kl 1 , kl ,...., kn ;
y kl y kl y kl
y kl y kl
y kl
y
y
y
x r y r1 y r 2
,
,
,..., rl 1 , rl ,...., rn .
y rl y rl y rl
y rl y rl
y rl

Pasul 2
Operaia 1 Se compar rapoartele
din a doua coloan:
y k 1 y r1
=
?
y kl
y rl

DA

Se trece la
Operaia 2.

NU

STOP. Pivotul iteraiei va fi numitorul


raportului minim. Va fi eliminat
din baz vectorul situat n linia pivotului.

Operaia 2: k := k + 1 Operaia 1.
Dup cel mult n operaii se poate stabili vectorul care trebuie
eliminat.

Observaie: n cazul programrii pe calculator, se va elimina din baz


vectorul cu cel mai mic indice. n foarte puine cazuri, aceast metod
prezint dezavantajul c, dup un anumit numr de iteraii, poate s se
revin la baza iteraiei p, p N * .

Metode simplex pentru modele liniare

Fie problema:
[min] f ( X ) = 3 x1 + 2 x2 + 4 x3 + 2 x4 + 3 x5
x + 2 x2 + x3 + x 4 = 10
.
II.3.2 1
2 x1 + 3 x 2 + x3 + x5 = 15

x j 0 , j = 1,5
1 2 1 1 0
Dup scrierea matricii A =
, rangA=2<5, ne este sugerat
2 3 1 0 1
soluia de

a1 a 2 a3 a 4 a5
start

pentru

algoritmul

simplex-primal,

X SAB = (0 0 0 10 15) .
T

Completnd primul tabel, se va observa n formula criteriului de eliminare


din baz c minimul nu este unic. ntr-adevr,

cj

cB

XB

a1

a2

a3

a4

a5

a4

10

10/2

a5

15

15/3

fj

65

13

[min ] f

11

0 j = 1,5 ? NU

f j cj

Se observ c: max ( f j c j ) = 11 = f 2 c2 a 2 va intra n noua


f j c j >0

baz. Dar,
Pasul 1

10 15
= . Aadar, care vector va fi eliminat?
2
3

10 1 2 1 1 0
, , , , ,
2 2 2 2 2 2
15 2 3 1 0 1
, , , , ,
3 3 3 3 3 3

10 15
=
2
3
1 2
se elimin vectorul a 4 .
O2: <
2 3
Pivotul iteraiei este 2.

Pasul 2 O1:

Analiza economico-matematic a unor modele liniare

cj
c

2
3

a1

a2

a3

a4

a5

a4
a5

1/2

1/2

1/2

1/2

-1

-3

fj

10

-1

-5

-1

-5

-7

f j cj

0 j = 1,5 STOP

Soluia optim este degenerat. Variabila bazic x5 are valoarea


zero.

b) Metoda perturbaiilor
Vom exemplifica aceast metod pe modelul precedent.
Pasul 1 Fie (0,1) arbitrar de mic. Se va trece de la II.3.2, la o problem
perturbat, de forma:
n

[max] f = c j x j
j =1

II.3.3

j =1

j =1

j =1

a j x j + ja j = b + ja j
x j 0, j = 1, n

Dac soluia admisibil de baz corespunde bazei format din primii


m vectori, atunci restriciile din II.3.3 se mai pot scrie:

II.3.4

(x
m

s =1

+ s as +

j = m +1

unde b( ) = b + j a j .
j =1

a j = b( ) ,

Metode simplex pentru modele liniare

n particular, pentru II.3.2 avem scrierea


10
1
2
1
1
0 10 + + 2 2 + 3 + 4

b( ) = + 1 + 2 + 3 + 4 + 5 =
2
3
5
15
2
3
1
0
1 15 + 2 + 3 + +

a1

a3

a2

a5

a4

Pasul 2 Prin modificarea de la pasul 1 s-a obinut o problem nedegenerat.


Presupunem c al este vectorul ce va face parte din noua baz (se accept
ipotezele expuse la metoda lexicografic). Vom aplica acum criteriul de
eliminare din baz:
n

x s + s + j y sk
j = m +1
= min
s| y sk >0
y sk

n particular:
10 + 4 + + 2 2 + 3 15 + 5 + 2 + 3 2 + 3
=
,
2
3

= min


2
3 4
3 5
= min 5 + + 2 + + ,5 +
+ 2 + +
2
2
2
3
3
3

Pentru suficient de mic, 5 +

+ 2 +

3
2

4
2

< 5+

3 5
2
+2 + +

3
3
3

a 4 va fi eliminat.

Observaia 1: Metodele au fost date n cazul n care raportul minim este


realizat pentru doi indici s I , dar se pot aplica i n situaia n care se pot
elimina mai mult de doi vectori din baz.

Analiza economico-matematic a unor modele liniare

Observaia 2: Se poate trece de la o SAB degenerat la o SAB cu valorile


variabilelor bazice strict pozitive (nedegenerat), aa cum se va vedea i din
exemplul urmtor:
Se dorete realizarea unui amestec din trei tipuri de benzin. Acest
amestec este de multe ori condiionat de cantitile de care dispunem din
fiecare produs. Se nelege c avem analizele de laborator ale tuturor
produselor i cunoatem caracteristicile chimice ale produselor pe care le
amestecm, de aceea, dac amestecm benzina de 92 cu benzina de 88 i cu
nafta o facem pentru a obine benzin de 92. Cantitatea de benzin de 92
trebuie s reprezinte cel puin 50% din ntregul amestec, iar nafta trebuie s
fie cuprins ntre 25% i 30% din ntregul amestec.
Preurile unitare ale sortimentelor sunt de 30$ barilul de nafta, 40$
barilul de benzin de 88 i 50$ barilul de benzin de 92. S determinm ce
cantiti se amestec astfel nct valoarea amestecului rezultat s fie maxim.
Notm cu x1 cantitatea de nafta, cu x 2 cantitatea de benzin de 92 i
cu x3 cantitatea de benzin de 88. Restriciile privind disponibilul sunt:
x1 100
x 2 90
3 x1 + x 2 + x3 0 .
7 x1 3x 2 3 x3 0
x1 x 2 + x3 0
Forma standard este:
[max] f = 4 x1 + 5 x 2 + 3 x3
x1 + x 4 = 100
x + x = 90
5
2
3 x1 + x 2 + x3 + x6 = 0
7 x 3 x 3 x + x = 0
2
3
7
1
x1 x 2 + x3 + x8 = 0
x j 0, j = 1,8

Metode simplex pentru modele liniare

Calculele implicate de aplicarea algoritmului simplex primal sunt


prezentate n tabelul urmtor:
cj

cB

XB

a1

a2

a3

a4

a5

a6

a7

a8

100

a4
a5

90

90

a6

-3

a7

-3

-3

-1

a8

-1

fj

-4

-5

-3

f j cj
0
0
5
0
0

a4
a5

100

100

90

-1

-1

30

a2
a7

-3

4
5
0
0

a8

-2

fj

-15

-19

70

1/3

-1/3

1/3

210

30

-1/3

1/3

-1/3

90

7/3

45

a4
a1
a2
a7

60

-2/3

2/3

a8

60

4/3

2/3

1/3

fj

570

40

50

-4/3

19/3

-4/3

-13/3

19/3

-4/3

55

-1/2

1/4

-1/4

220

45

1/2

-1/4

1/4

f j cj
0

fj c
0

-2

a4
a1

Analiza economico-matematic a unor modele liniare

90

a2
a7

90

5/2

1/2

36

a3

45

1/2

1/4

3/4

180

13/4

fj

17/2

-1/4

17/2

-1/4

13/4

cj

a7

a8

765

f j cj

cB

XB

a1

a2

a3

a4

a5

a6

a4
a1
a2
a6

46

-3/5

54

3/5

90

36

2/5

2/5

1/5

4
5
0
3

-1/10 -3/10
1/10 3/10

a3

36

2/5

-1/10 7/10

fj

774

43/5

1/10 33/10

43/5

1/10 33/10

f j cj

Dup cteva iteraii, obinem soluia care recomand amestecarea a


x1 = 54 barili nafta, x 2 = 90 barili de benzin de 92 i x3 = 36 barili de

benzin de 88. Astfel, se vor obine 180 de barili cu valoarea total de


774 10 dolari. Preul unui baril de amestec va fi de 42$. Benzina nafta va
54
100 = 30% din amestec, benzina auto de 92 va reprezenta
180
50% din amestec, iar benzina auto de 88 reprezint 30% din amestec.
Se observ astfel c, dei la iteraia 2 soluia admisibil de baz este

reprezenta

degenerat, la urmtoarea iteraie soluia admisibil devine nedegenerat.

c) Ciclare
Dac valoarea funciei scop nu se modific pe parcursul ctorva
iteraii succesive, este posibil s apar fenomenul de ciclare, adic s se
revin la una dintre soluiile admisibile de baz prin care s-a trecut deja.

Metode simplex pentru modele liniare

Degenerarea este o condiie necesar, dar nu i suficient, de ciclare. Dei


foarte multe procese economice sunt modelate prin programe liniare cu
soluii admisibile de baz degenerate, la nici una pn acum nu a aprut
fenomenul de ciclare. E. Beale [] a gsit i a publicat un astfel de model.
[min] f =

3
1
x 4 + 20 x 5 x 6 + 6 x 7
4
2

x1 + 4 x 4 8 x 5 x 6 + 9 x 7 = 0

x + 1 x 12 x 1 x + 3x = 0 .
5
6
7
2 2 4
2
x + x = 1
6
3
x j 0 , j = 1,6
Prezentm n continuare rezultatele sub form de tabel a apte
iteraii. Se va observa c primul tabel coincide cu ultimul.

cj

-3/4

20

-1/2

cB

XB

a1

a2

a3

a4

a5

a6

a7

a1
a2
a3

1/4

-8

-1

1/2

-12

-1/2

fj

3/4

-20

1/2

-6

0
0

f j cj

Analiza economico-matematic a unor modele liniare

-3/4
0
0

cj

-3/4

20

-1/2

XB

a1

a2

a3

a4

a5

a6

a7

a4
a2
a3

-32

-4

36

-2

3/2

-15

fj

-3

-3/4

24

-27

-3

7/2

-33

-3/4

20

-1/2

a1

a2

a3

a4

a5

a6

a7

-84
15/4

f j cj

cj

-3/4

a4

-12

20

a5

-1/2

1/4

3/8

a3

fj

-1

-1

-3/4

20

3/2

-12

-1

-1

-18

f j cj

0
1

cj

-3/4

20

-1/2

XB

a1

a2

a3

a4

a5

a6

a7

-1/2

a6

-3/2

1/8

-21/2

20

a5

1/16

-1/8

-3/64

3/16

a3

3/2

-1

-1/8

21/2 2/21

fj

-3

-1

20

-1/2

-3

-1/4

f j cj

Metode simplex pentru modele liniare

cj

-3/4

20

-1/2

XB

a1

a2

a3

a4

a5

a6

a7

-1/2

a6

-6

-5/2

56

a7

1/3

-2/3

-1/4

16/3

a3

-2

5/2

-56

fj

-1

-1/4

-1/2

-1

1/2

-16

-3/4

20

-1/2

a1

a2

a3

a4

a5

a6

a7

f j cj

cj

X
0

-3

-5/4

28

1/2

a1
a7

1/3

1/6

-4

-1/6

a3

fj

-24

-1

7/4

-44

-1/2

f j cj

cj

-3/4

20

-1/2

cB

XB

a1

a2

a3

a4

a5

a6

a7

a1
a2
a3

1/4

-8

-1

1/2

-12

-1/2

fj

3/4

-20

1/2

-6

0
0

f j cj

n tabelele precedente, dei criteriul de intrare n baz ne-a dat


posibilitatea de a alege ntre dou variabile, am ales ntotdeauna prima
variabil din partea de sus a tabelelor. Dac ns vom alege la un moment
dat alte variabile care ies din baz dect cele alese anterior putem ajunge la

Analiza economico-matematic a unor modele liniare

soluia optim, evitnd n acest fel ciclarea, aa cum se vede din


urmtoarele dou iteraii:
cj

-3/4

20

-1/2

cB

XB

a1

a2

a3

a4

a5

a6

a7

a1
a4
a3

-1/2

-2

-3/4

15/2

-24

-1

fj

-3/2

-3/4

18

3/4

-9/2

-3/2

-2

5/4

-21/2

-3/4
0

f j cj
cj

0
-3/4
-1/2

-3/4

20

-1/2

a1

a2

a3

a4

a5

a6

a7

a1
a4
a6

3/4

-1/2

3/4

-2

15/2

-24

fj

-5/4

-3/2

-5/4

-3/4

18

-1/2

-9/2

-3/2

-5/4

-2

-21/2

f j cj

Astfel, soluia optim este dat de X = (3 / 4 0 0 1 0 1 0 ) ,


T

valoarea minim a funciei obiectiv fiind f ( X ) = 5 / 4 .


Dei n problemele practice nu s-a observat fenomenul de ciclare,
teoretic exist posibilitatea de a aprea i, ca urmare, este bine s
cunoatem o cale de a-l evita.

4. Algoritmul simplex revizuit


Acest algoritm este o form revizuit a algoritmului simplex
primal, care se recomand a fi folosit atunci cnd rezolvarea modelului
matematic se face cu ajutorul calculatorului. Ideea de baz este de a reine
datele iniiale, apoi, folosind matricea sistemului de restricii se va construi

Metode simplex pentru modele liniare

o matrice invers, se vor calcula c B B 1 , X B = B 1b i f j c j , n funcie


de care se ia decizia de a opri algoritmul sau de a-l continua trecnd la o
soluie admisibil de baz mai bun.

Considerm problema de programare liniar la forma standard


min f ( x) = cX

II.4.1

{AX = b

X 0

unde A M m,n (R ) , rangA = m n b R m , c, X R n .


Pentru aplicarea algoritmului simplex revizuit, se construiete
completata problemei II.4.1:
min f 1 ( x) = x 0
x cX = 0
II.4.2 0
.
AX = b
X 0, x 0 R
1 cB
Aici, matricea sistemului de restricii va fi: A1 =
B
0

cR
,
R

unde A = (B R ) . Se observ c rangA1 = m + 1 . Vectorul termenilor liberi


c
0
pentru problema completat este b1 = . Notm a 1k = k , unde a k
b
ak

este coloana k din matricea A.

Analiza economico-matematic a unor modele liniare

Dac

este baz primal admisibil pentru II.4.1, atunci

1 c
este baz primal admisibil pentru II.4.2. Este uor de
B1 =

0
B

1 u B
, unde u B = c B B 1 .
verificat c B11 =
1
0 B
Tabelul simplex revizuit va avea urmtoarea form:
Variabilele de baz

x0

B11
1

u B = c B B 1

B11b1
f

B11 a 1k *
f kB c k

0
XB
B 1
XB
y kB = B 1 a k
* Ultima coloan va aprea n momentul cnd se trece la mbuntirea
soluiei curente.

Etapele algoritmului simplex revizuit sunt prezentate n schema logic


S.II.4.1:

Datele iniiale:

AX = b , X 0 , [max] f (x ) = cX

rangAmn = m n , b R m , c R n
Se determin o baz primal admisibil pentru problema
II.4.1 i se calculeaz apoi B1 , B11b1 , u B , B11 a 1j

Schema logic
S.II.4.1

B
j

STOP. Problema admite soluie


optim finit

c j 0 DA

B 1b
.
f 0 = [min] f ; X B =

j = 1, n
NU

Alegem k astfel nct

max
( f jB c j ) = f kB c k > 0 .
B

f j c j >0

k
.
Se completeaz ultima coloan din tabel cu vectorul B11 a 1k = B k
1
y
B
a k
=
k

y kB 0 ?

STOP
Problema are optim ( ).

DA

NU

Se alege r dup regula: min


B
i| yik

xiB x rB
=
.
y ikB y rkB

Se nlocuiete coloana a cu coloana a , i se formeaz noua baz primal

admisibil, B1 . Se calculeaz B11b1 , u B , B11 a 1j .

Analiza economico-matematic a unor modele liniare

Pas 0 Se determin B baz primal admisibil i se calculeaz: B 1 , X B ,


f B , u B = c B B 1 .

Pas 1 Se calculeaz f jB c j = u B a j c j , j R .
Dac f jB c j 0 , j {1,.., n} B = R soluie optim.
Dac nu, se trece la Pasul 2.

Pas 2 Alegem k astfel nct max


( f jB c j ) = f kB c k > 0 .
B
f j c j >0

Se calculeaz y kB = B 1 a k . Dac y kB 0 , problema are optim


nemrginit ( ). Dac nu, se trece la Pasul 3.
xiB x rB
= B . Se nlocuiete coloana a r cu
i| yik y B
y rk
ik
~
coloana a k , i se formeaz noua baz primal admisibil, B1 . Se revine la

Pas 3 Alegem r dup regula: min


B

Pasul 1.
S rezolvm cu algoritmul simplex revizuit urmtoarea problem de
programare liniar:
[min] f = 2 x1 x 2
x1 x 2 4

3 x1 x 2 18
x + 2 x 6
2
1
x i 0 , i = 1,2

Metode simplex pentru modele liniare

primul

rnd,

aducem,

problema

la

forma

standard:

[min] f = 2 x1 x 2
x1 x 2 + x 3 = 4
1 1 1 0 0

3 x1 x 2 + x 4 = 18 . Matricea restriciilor este A = 3 1 0 1 0 ,


1 2 0 0 1
x + 2 x + x = 6
2
5

1
x i 0 , i = 1,5

B = I3 = a3

a4

a 5 . Scriem completata problemei de mai sus:

[min]g = x 0
x 0 (2 x1 x 2 ) = 0
x x + x = 4
1
2
3
.

3 x1 x 2 + x 4 = 18
x1 + 2 x 2 + x5 = 6
x i 0 , i = 1,5
1 2 1 0

0 1 1 1
Aadar, A1 =
0 3 1 0

0 1 2 0

0 0

0 0 1 cR
=
1 0 0 R

0 1

0

4
c
0
, b1 = = .

8
b
B

16

B

1 c B
Observaie: Dup reordonare putem obine chiar A1 =
B
0

cR
.
R

Completm tabelul simplex revizuit, evident fr ultima coloan:


u B = c B B 1 = (0 0 0 ) I 3 = (0 0 0 ) .
B11

Variabilele de baz

x0
x3
x4
x5

B11b1

18

Analiza economico-matematic a unor modele liniare

c j
. n cazul nostru,
Pentru j R , calculm f jB c j = (1 u B )

aj

R = {1,2} . Aadar, pentru j = 1 avem:

f 1B

2

1

c1
1
B
1
= (1 0 0 0) = 2 > 0 , B a1 = 3 ,
c1 = 1 u
3
a1
1


1

iar pentru j = 2 ,

f 2B

1

1

c2
1
B
1
= (1 0 0 0 ) = 1 > 0 , B a 2 = 1 .
c 2 = 1 u
1
a2
2


2

Soluia curent nu este optim i nici cazul optim nemrginit nu este


ndeplinit. Trecem la schimbarea bazei. Deoarece, f 1B c1 = 2 > 1 = f 2B c 2 ,
variabila x1 va intra n noua baz.
Completm tabelul de mai sus cu ultima coloan:
B11

Variabilele de baz

B11b1

B11 a11

x0
x3

x4
x5

18

-1

4 18 4
Deoarece min , = , variabila x 3 va iei din baz. Pivotul
1 3 1
este, desigur, valoarea aflat n csua colorat, adic 1. Tabelul simplex
revizuit urmtor se obine din cel precedent, dup aceleai reguli care se
aplic tabelului simplex obinuit.

Metode simplex pentru modele liniare

Astfel, cu noua baz avem:


~
B11

Variabilele de baz

~
B11b1

~
B11 a12
*

-2

x
0
1
0
x1
0
-3
1
x4
0
1
0
x5
* Ultima coloan se va completa ulterior.

f 2B

-8

-1

10

1

~
c2
1
B
= (1 2 0 0 ) = 3 > 0 (soluia curent
c 2 = 1 u
1
a2

2

nu este optim).
1 0 0 1 1


~ 1
B a 2 = 3 1 0 1 = 2 (rezult de aici c nu avem optim
1 0 1 2 1

infinit),

f 3B

0

~
c3
1
B
= (1 2 0 0 ) = 2 < 0 .
c 3 = 1 u
0
a3

0

Singura variabil care poate intra n baz este x 2 . Completm ultima


6 10 6
coloan. Cum min , = , rezult c variabila x 4 iese din baz.
2 1 2
Pivotul este 2.

Analiza economico-matematic a unor modele liniare

~
~
Urmtorul tabel simplex revizuit, unde baza este acum notat B1 :
Variabilele de baz

1
5/2
-3/2
x0
0
-1/2
1/2
x1
0
-3/2
1/2
x2
0
5/2
-1/2
x5
** Ultima coloan se va completa ulterior.

~
~

f 3B

~
~
B11b1

~
~
B11 a13 **

-17

5/2

-1/2

-3/2

5/2

~
~
B11

0

1
c 3 = (1 5 / 2 3 / 2 0) = 5 / 2 > 0 (soluia curent nu este
0

0

optim).
1 / 2 1 / 2 0 1 1 / 2
~

~ 1
B a 3 = 3 / 2 1 / 2 0 0 = 3 / 2 (rezult de aici c nu avem
5 / 2 1 / 2 1 0 5 / 2

optim infinit),
0

~
~
0
B
f 4 c4 = (1 5 / 2 3 / 2 0) = 3 / 2 < 0 .
1

0

Variabil care intr n baz este x 3 . Completm ultima coloan.


Se observ imediat c singura variabil care poate iei din baz este
x5 . Pivotul este 5/2. La aceast iteraie baza curent este notat prin B1 .

Metode simplex pentru modele liniare

B11

Variabilele de baz

x0
x1
x2
x3

Cum f 4B

f 5B

B11b1

-1

-1

-24

2/5

1/5

42/5

1/5

3/5

36/5

-1/5

2/5

14/5

0

0
c 4 = (1 0 1 1) = 1 < 0 i
1

0

0

0
c5 = (1 0 1 1) = 1 < 0 , rezult c soluia curent,
0

1

x = (42 / 5 36 / 5 14 / 5 0 0) este optim, unic i nedegenerat.


T

Din exemplificarea aplicrii algoritmului simplex revizuit, rezult


urmtoarele:
Memoria calculatorului este eficient folosit, prin reducerea volumului de

infomaii stocate.
Datele reinute la o iteraie sunt suficiente pentru a obine toate

informaiile dorite, relativ la problema primal i la duala sa.


5. Algoritmul simplex dual

Cnd s-a aplicat algoritmul simplex primal s-a apelat pe tot


parcursul algoritmului la soluii admisibile de baz (SAB) i regulile sale
au fost stabilite impunndu-se condiia de nenegativitate a variabilelor din
model.

Analiza economico-matematic a unor modele liniare

Cu ajutorul teoriei dualitii se poate formula un nou algoritm de


rezolvare a problemelor de programare liniar, pornind de la o soluie de
baz care nu respect - total sau parial - condiia de nenegativitate, i
anume, algoritmul simplex dual. Conceptul de baz cu care se opereaz este
cel de soluie dual realizabil (SDR).
Definiie: Se numete soluie dual realizabil a unei probleme de

programare liniar o soluie de baz care are cel puin o component strict
negativ i care verific criteriul de optimalitate al modelului liniar.
Algoritmul simplex-dual este o procedur de explorare orientat a
soluiilor dual-admisibile pn la obinerea soluiei optime sau pn la
evidenierea faptului c problema nu admite soluii. Aplicarea sa presupune
cunoaterea unei soluii dual-realizabile (sau dual-admisibile) dar nu i
admisibile, deoarece, dac toate variabilele ar avea valori pozitive, cum este
verificat criteriul de optimalitate, ar rezulta c soluia este optim. n
general, stabilirea unei soluii dual-admisibile este greu de realizat, motiv
pentru care acest algoritm se aplic atunci cnd o soluie dual realizabil se
poate stabili cu un volum mic de calcule, cnd restriciile sunt cu precdere
de forma , sau cnd aceasta se obine prin modificarea unor
caracteristici numerice din model. Acest algoritm poate fi privit ca dualul
algoritmului simplex-primal, deoarece reflect aplicarea acestuia la
problema dual.
Pentru algoritmul simplex dual, valorile funciei scop descresc cnd
aceasta se cere maximizat i cresc cnd se cere minimizat, pn cnd este
atins valoarea optim, dac programul liniar admite soluie optim finit.

Metode simplex pentru modele liniare

[max] f

Schema de desfurare a algoritmului simplex-dual, cnd se cere


este urmtoarea:
Modelul matematic se aduce la forma standard
Se stabilete o SDR:

B M n (R ) a.. X B = B 1b = (x1 ....x m ) 0


T

f j c j = c B B 1 a j c j 0 , j = 1, n

x k < 0 a.

DA

y kj 0 , j = 1, n

STOP

Problema
este fr
soluii.

NU
Alege xl = min{x s } (C.E.B);
s| x s < 0

Elimin din baz vectorul

al ;

f j c j
f k ck
= min
j | ylj < 0
y lk
y lj
nlocuiete vectorul a l cu a k ;
Alege

(C.I.B);

Se formeaz B1

Se calculeaz elementele noului tabel; dup regulile aplicate n cazul algoritmului


simplex primal, avnd ca pivot elementul y lk < 0 . Dac nu apare fenomenul de
ciclare, dup efectuarea calculelor se ajunge la una din situaiile:
1. X

B1

0 i f j c j 0 , j = 1, n STOP. Problema admite soluie

optim finit.
2.

X B1 0 i f k c k < 0 , k {1,.., n} s-a generat o SAB, se va continua

cu algoritmul simplex-primal.
3. Exist cel puin o variabil bazic cu valoare strict negativ i f j c j 0 ,

j = 1, n

Analiza economico-matematic a unor modele liniare

Observaie: Cele dou criterii de eliminare i respectiv de intrare n baz,


sub aceast form, sunt invariante la tipul de optim.
Pentru o mai bun nelegere a modalitilor de operare a celor doi
algoritmi duali, se vor sumariza principalele lor elemente dup cum
urmeaz:
Algoritmul simplex primal
Soluie de
start,
B baz
curent

Algoritmul simplex dual

X B = B 1 b 0 ;

X SAB :

X R = 0;
f s c s = 0 , x s
Obs:

variabil

f j c j 0 j

[min]) programul
optim finit.
STOP

a k
f k ck < 0

nebazic

b) Dac

[max]),

respectiv

y sk 0 ,

program
cu
nemrginit.

are

soluie

pentru

(pt. [min])

(pt.

[min]) i
X 0 programul
liniar are soluie optim finit.
b) Dac

xs < 0 , s J B

[min])

funcia

(pt. [max]),

care

f k ck > 0

f k ck < 0

(pt. [max]) sau

f j c j 0 j

respectiv

y sj 0 ,

programul liniar nu are soluie.

obiectiv
Dac pt. [max]

Pt. [max]:

a..

f j c j 0 j

(pt. a) Dac

y sk 0 , s (pt.

s (pt.

(pt. [max]),

f j c j 0 j

respectiv

x s < 0 , s J
f j c j 0 j
f j c j 0 j

bazic
a) Dac

X SDR : X B = B 1 b ; X R = 0

y sk > 0

pt.

f j cj 0 ,

f j cj 0 ,

[min]

respectiv

j ,

xs < 0 , s J B ,

atunci se continu
pentru cel puin o valoare s J . Se cu simplex dual, deoarece s-a generat o
Algoritmul
continu cu simplex primal.
SDR.
se continu
Pt. [min]: f k c k > 0 i y sk > 0 Dac pt. [max] f k c k < 0 , respectiv
dac
B

pentru cel puin o valoare


continu cu simplex primal.

sJ B .

Se pt. [min]
i

f k ck > 0 ,

cu

xs 0 , s J B ,

ak nebazic,
atunci

se

continu cu simplex primal, deoarece s-a


generat o SAB.
Pivot
Criterii
pentru
schimbarea
bazei

ylk > 0
a)
b)

ylk < 0
C.I.B.
C.E.B.

a)
b)

C.E.B
C.I.B.

Metode simplex pentru modele liniare

Pentru a nelege mai bine modul de aplicare a algoritmului simplexdual, precum i diferenele fa de aplicarea algoritmului simplex-primal,
vom da cteva exemple numerice.

Exemplul 1 S se gseasc soluia optim a modelului liniar:


[min] f = 6 x1 + 5 x2 + 6 x3
4 x1 + x2 + x3 2

2 x1 x2 + x3 6
x + x 2 x 3
2
3
1

x j 0, j = 1,3

Soluie:
Se schimb sensul primelor dou restricii:
[min] f = 6 x1 + 5 x 2 + 6 x3

4 x1 x 2 x3 2

2 x1 + x 2 x3 6
x + x 2x 3
1
2
3

x j 0, j = 1,3
Se aduce problema la forma standard
[min] f = 6 x1 + 5 x 2 + 6 x3
4 x1 x 2 x3 + x 4 = 2

2 x1 + x 2 x3 + x5 = 6 .
x + x 2x + x = 3
1
2
3
6

xi 0, i 1,6
4 1 1 1 0 0

Dup scrierea matricii A = 2 1 1 0 1 0 , rangA=3<6,


1 1 2 0 0 1

se constat c bazei (a 4 a5 a 6 ) i corespunde o soluie bazic


X = (0 0 0 2 6 3) , care nu respect condiia de nenegativitate.
T

Analiza economico-matematic a unor modele liniare

Pentru a stabili dac satisface criteriul de optimalitate, trebuie


construit primul tabel de tip simplex:
cj

cB

XB

a1

a2

a3

a4

a5

a6

-2

-1

-1

a4
a5

-6

-2

-1

a6

-1

-2

fj

-6

-6

f j cj

0 j = 1,6 ? DA

Soluia bazic construit este dual realizabil, deoarece verific


criteriul de optimalitate. Conform schemei de rezolvare vor fi efectuate
urmtoarele operaii:
Se verific dac n liniile valorilor strict negative ale variabilelor
bazice exist
i componente strict negative. Rspunsul fiind afirmativ, se vor aplica cele
dou criterii:
- Criteriul de eliminare din baz (C.E.B): min{ 2,6} = 6 a5 prsete
baza.
-

Criteriul

de

intrare

f c
f c3
6 6 6
min 1 1 , 3
,
= min
=
y 23
2 1 2
y 21

baz

(C.I.B):

a1 va fi al doilea

vector al noii baze i (-2) pivotul.


Se efectueaz calculele implicate de scrierea vectorilor b i a j ,
j = 1,6 n noua
baz (a 4

a1

a 6 ) i a diferenelor f j c j , j = 1,6 .

Metode simplex pentru modele liniare

Calculele sunt prezentate n tabelul de mai jos:

0
6
0

cj

XB

a1

a2

a3

a4

a5

a6

a4
a1
a6

-14

-3

-1/2

1/2

1/2

1/2

-3/2

-1/2

fj

18

-3

-3

-8

-3

-3

f j cj

0 j = 1,6 ? DA

Noua soluie de baz se menine dual realizabil, ca urmare se vor aplica


criteriile algoritmului simplex-dual:
C.E.B: -14 unic a 4 eliminat;
C.I.B: a3 va nlocui vectorul a 4 , -3 fiind singura component strict
negativ din linia vectorului eliminat.
Se va efectua o nou pivotare.
cj

a1

a2

a3

a4

a5

a6

cB

XB

a3

14/3

-1/3

-1/3

-2/3

a1
a6

2/3

-1/3

1/6

-1/6

13

-1/2

-3/2

fj

32

-4

-1

-5

-9

-1

-5

f j cj

0 j = 1,6 ?
DA

Analiza economico-matematic a unor modele liniare

Din acest ultim tabel rezult: X B 0 ; f j c j 0 , j = 1,6 , deci


algoritmul
2
X* =
3

se
0

14
3

oprete.

Problema

admite

soluia

optim

finit

0 0 13 cu [min] f = 32 .

Observaie: Spre deosebire de algoritmul simplex primal, unde valoarea


funciei obiectiv scade n cazul problemelor de minim de la o iteraie la
alta, pn la valoarea minim, n algoritmul simplex dual valoarea funciei
obiectiv crete pn la valoarea minim admisibil (n cazul studiat, de la 0
la 18, i apoi la 32).
[max] f = 3 x1 + 2 x 2 + 6 x3
x1 + 3x 2 + 4 x3 105

Exemplul 2 Se consider programul liniar: 2 x1 + 5 x 2 + x3 70


4 x + x + 2 x 175
2
3
1

x j 0, j 1,3
Aflati soluia optim. S se scrie duala programului liniar dat. S se
afle soluia sa optim X aplicnd algoritmul simplex dual.
Soluie:

Mai nti aducem problema la forma standard:


[max] f = 3 x1 + 2 x 2 + 6 x3
x1 + 3 x 2 + 4 x3 + x 4 = 105

2 x1 + 5 x 2 + x3 + x5 = 70 .
4 x + x + 2 x + x = 175
2
3
6
1
x j 0, j 1,6

Metode simplex pentru modele liniare

Rezolvarea acestei probleme este complet prezentat prin cele


3 tabele simplex de mai jos, corespunztoare iteraiilor parcurse pn la
aflarea soluiei optime:
cj

cB

XB

x1

x2

x3

x4

x5

x6

105

x4
x5

70

x6

175

fj

-3

-2

-6

f j cj
6

x3

105/4

1/4

3/4

1/4

0 j = 1,6 ?
NU
0

x5

175/4

7/4

17/4

-1/4

x6

490/4

7/2

-1/2

-1/2

fj

315/2

3/2

9/2

3/2

-3/2

5/2

3/2

2/7

-1/7

-1/7

4/7

-2

f j cj
6
3
0

x3

20

1/7

x1
x6

25
35

-9

fj

195

58/7

9/7

6/7

43/7

9/7

6/7

f j cj

17/7

0 j = 1,6 ?
NU

0 j = 1,6 ?
DA
Se observ c f j c j 0 , j = 1,6 , deci programul
liniar admite

soluia optim finit X * = (25 0 20 0 0 35) . Baza optim este dat


T

de B = (a3

a 6 ) , a crei invers

a1
B

2 / 7 1 / 7 0
= 1 / 7 4 / 7 0
0
2 1

Analiza economico-matematic a unor modele liniare

poate fi citit n dreptul vectorilor care au format baza iniial.


Se construiete duala:
[max] f = 3 x1 + 2 x 2 + 6 x3

[min]g = 105u1 + 70u 2 + 175u 3

x1 + 3 x 2 + 4 x3 105 u1
u1 + 2u 2 + 4u 3 3

2 x1 + 5 x 2 + x3 70 u 2 3u1 + 5u 2 + u 3 2
4 x + x + 2 x 175 u
4u + u + 2u 6
2
3
3
2
3
1
1
x j 0, j 1,6

u i 0, i 1,3

Din forma standard:

[min]g = 105u1 + 70u 2 + 175u 3


u1 + 2u 2 + 4u 3 u 4 = 3

3u1 + 5u 2 + u 3 u 5 = 2
4u + u + 2u u = 6
2
3
6
1
u i 0, i 1,6
rezult c matricea A conine matricea unitate, din R 3 , cu semn schimbat,
ca urmare toate restrictiile dualei vor fi nmulite cu ( 1) :
[min]g = 105u1 + 70u 2 + 175u 3
u1 2u 2 4u 3 + u 4 = 3

3u1 5u 2 u 3 + u 5 = 2
4u u 2u + u = 6
1
2
3
6

u i 0, i 1,6

Metode simplex pentru modele liniare

Rezolvarea problemei, prin algoritmul simplex dual, este prezentat


mai jos:
cj

0
0
0

105

70

175

u1

u2

u3

u4

u5

u6

-3

-1

-2

-4

-2

-3

-5

-1

u4
u5

u6

-6

-4

-1

-2

fj

-105

-70

-175

0 j = 1,6

-7/4

-7/2

-1/4

-1/2

-3/4

-1/4

f j cj
0
0
105

u4
u5
u1
fj

-3/2
5/2

0
105

u2
u5
u1
fj

-17/4

3/2

1/4

1/2

315/2

105

105/4

105/2

-105/4

-175/4 -243/4

-105/4 0 j = 1,6

-4/7

1/7

-8

-17/7

-1/7

-2/7

f j cj
70

6/7
43/7

9/7

1/7

195

105

70

140

-25

-20

-210

-25

-20 0 j = 1,6

f j cj

Se observ imediat c [max] f = [min]g = 195 . Soluia optim a


dualei este
9
U* =
7

6
7

43

0 .
7

Se verific uor c
x1*
4 / 7 0 1 / 7 25

(70 0 15) 17 / 7 1 1 / 7 = 0 = x2* .


x*
1/ 7
0 2 / 7 20

Analiza economico-matematic a unor modele liniare

6. Probleme pentru fixarea cunotinelor


[min] f = 3 x1 + 5 x 2 + 4 x3
2 x + x 2 12
Problema 1 Se consider modelul liniar: 1
x1 + 2 x 2 + x3 20

x j 0, j = 1,3
a) S se genereze, dac este posibil, SAB sau/i SDR prin explicitarea
sistemului de restricii n raport cu bazele (a1 , a 2 ) i (a 2 , a3 ) .
b) S se scrie duala sa. Admite soluie optim finit? Justificai rspunsul.
c) Ce legtur exist ntre SAB generat la punctul a) i problema dual?
d) S se rezolve problema dat cu ajutorul algoritmului simplex-dual.
Soluie:

[min] f = 3 x1 + 5 x 2 + 4 x3
2 x1 + x 2 x 4 = 12
a) Forma standard:
.
x1 + 2 x 2 + x3 x5 = 20
x j 0, j = 1,5
2 1 0 1 0
.
Matricea sistemului de restricii: A =
1 2 1 0 1
12
Vectorul termenilor liberi: b = .
20

Metode simplex pentru modele liniare

Pentru baza determinat de coloanele 1 i 2 din matricea A ,


B = (a1 a 2 ) , rezult R = (a3 a 4 a5 ) , X

x3

x1
R
= , X = x 4 . Sistemul de
x2
x
5

restricii scris sub forma canonic relativ la B este


x3
2 1 x1 0 1 0 12
x 4 = .
+
II.6.1
1 2 x 2 1 0 1 x 20
5

Prin nmulirea relaiei II.6.1 cu B 1

1
2

3 , obinem:
= 3
1
2

3 3

x3
1 0 x1 2 / 3 1 / 3 0 1 0 2 / 3 1 / 3 12

+

x 4 =

0 1 x 2 1 / 3 2 / 3 1 0 1 x 1 / 3 2 / 3 20
5
, sau
x3
x1 1 / 3 2 / 3 1 / 3 4 / 3
+
x 4 =
.
x 2 2 / 3 1 / 3 2 / 3 x 28 / 3
5

4/3
> 0 se poate construi o soluie admisibil
Deoarece B 1b =
28 / 3
de baz, i anume x1 =
funciei obiectiv va fi

4
28
, x2 =
, x3 = x 4 = x5 = 0 , pentru care valoarea
3
3

152
.
3

Analiza economico-matematic a unor modele liniare

Baza generat de coloanele 2 i 3 din matricea sistemului de


1 0
1 0
, conduce la urmtoarea
, cu inversa B 1 =
restricii, B =
2 1
2 1
explicitare a sistemului de restricii ale problemei:
x1
1 0 x 2 2 1 0 12

+
x 4 = ,
2 1 x3 1 0 1 x 20
5

de unde rezult, prin nmulirea cu B 1 :


x1
x 2 1 0 2 1 0 1 0 12
+

x 4 =
.
x3 2 1 1 0 1 x 2 1 20
5

Dup efectuarea calculelor apare scrierea explicit a sistemului de


restricii n raport cu baza (a 2

a3 ) din spaiul bunurilor:

x1
2 x + x 2 x 4 = 12
x 2 2 1 0 12
+
x 4 = sau 1
.
x3 3 2 1 x 4
3 x1 + x3 + 2 x 4 x5 = 4
5

12
Se observ c B 1b = nu are toate componentele pozitive.
4
Dac se vor anula variabilele nebazice x1 = x 4 = x5 = 0 i cele bazice vor
lua valorile x 2 = 12 , x3 = 4 , se va obine o soluie a problemei care are
dou componente nenule (rangA=2) i vectorii ataai variabilelor bazice
sunt liniar independeni ( a 2 i a3 formeaz baza). n aceste condiii,
vectorul X 1 = (0 12 4 0 0 )

nu poate fi SAB, dar ar fi dual

Metode simplex pentru modele liniare

realizabil dac ar verifica criteriul de optimalitate. Se va verifica acest


lucru:
cj

cB

XB

a1

a2

a3

a4

a5

a2
a3

12

-1

-4

-3

-1

fj

48

-3

-2

-3

f j cj

Deoarece f 4 c 4 > 0 , vectorul X = (0 12 4 0 0 )

nu este

soluie dual realizabil, este doar soluie pentru modelul scris sub forma
standard.
2
Observaie: n tabel, vectorul trecut n coloana lui a1 reprezint
3
scrierea

acestuia

baza

(a 2 a3 ) .

ntr-adevr,

2
1
0 2
.
a1 = = 2a 2 3a3 = 2 3 =
1
2
1 4 3
b) Construim acum duala problemei din enun.
[min] f = 3 x1 + 5 x 2 + 4 x3
2 x1 + x 2 12

x1 + 2 x 2 + x3 20
x j 0, j = 1,3

[max]g = 12u1 + 20u 2

2u1 + u 2 3

, de unde rezult duala u1 + 2u 2 5


u2
0 u + u 4
1
2

u1 , u 2 0

u1

Se observ c orice cuplu (u1 , u 2 ) care verific primele dou


restricii ale problemei duale, o verific i pe a treia. Mulimea soluiilor
admisibile ale acestei probleme este dat de intersecia dintre semiplanele

Analiza economico-matematic a unor modele liniare

determinate de inecuaiile: 2u1 + u 2 3 , u1 + 2u 2 5 i u 2 4 , n


condiiile u1 , u 2 0 , i este o mulime mrginit i convex. Atunci (vezi
teorema programrii liniare), problema admite soluie optim finit.
c) Fie baza dat de coloanele 1 i 2 din matricea sistemului de restricii ale
problemei
primale: B = (a1

a 2 ) . Atunci

1
f1 = c B B 1 a1 = (3 5) = 3 ,
0
0
f 2 = c B B 1 a 2 = (3 5) = 5 .
1
n problema dual, acestei baze i corespunde un sistem de restricii saturate,
i anume, restriciile cu termenii liberi 3 i 5:
2u1 + u 2 = 3

u1 + 2u 2 = 5

u1 = 3
.

7
u 2 =
3

d) Soluia de start pentru algoritmul simplex-dual este o soluie dual


realizabil (SDR).
Se observ c matricea A conine matricea unitate de ordinul 2 cu
semnul schimbat: B = (1)(a 4 a5 ) . Restriciile scrise sub forma standard
se vor nmuli cu (-1):
2 x1 x 2 + x 4 = 12

x1 2 x 2 x3 + x5 = 20
apoi se va scrie sistemul sub forma matriceal:
x1
2 1 0 1 0 x 4 12

x 2 +
=
.
1 2 1 x 0 1 x5 20
3

Vectorul

X1

de componente

x1 = x 2 = x3 = 0 ,

x 4 = 12

x5 = 20 verific sistemul de restricii din forma standard, are dou


componente nenule (rangA=2), cel puin una strict negativ, i corespunde

Metode simplex pentru modele liniare

bazei B = (a 4

a5 ) .

X 1 va fi SDR dac ar satisface criteriul de

optimalitate. S verificm acest lucru:


cj

cB

XB

a1

a2

a3

a4

a5

a4
a5

-12

-2

-1

-20

-1

-2

-1

fj

-3

-5

-4

-2

-3/2

1/2

-1/2

10

1/2

1/2

-1/2

50

5/2

5/2

-5/2

-1/2

-3/2

-5/2

4/3

-1/3

-2/3

1/3

28/3

2/3

1/3

-2/3

152/3

7/3

-1/3

-7/3

-5/3

-1/3

-17/3

f j cj
5
3

a4
a2
fj
f j cj

5
3

a1
a2
fj

f j cj

Iteraia 1: Deoarece f j c j 0 , j 1,5 X 1 este SDR . Se aplic


algoritmul simplex dual:
CEB: min(-12, -20)=-20 eliminm vectorul a5 ; n linia vectorului
eliminat toate componentele sunt pozitive? NU aplicm CIB.
CIB: min(|-3/-1|, |-5/-2|, |-4/-1|)=|-5/-2| a 2 ia locul lui a5 , y 22 = 2
este pivot.

Iteraia 2: Deoarece f j c j 0 , j 1,5 X 2 este SDR.


CEB: a 4 eliminat
1/ 2 5 / 2
CIB: min
,
3 / 2 1/ 2

1/ 2
=
.
3/ 2

Analiza economico-matematic a unor modele liniare

Observaia 1: Matricea B 1 se citete din ultimul tabel, n dreptul


vectorilor ce au format prima baz, dar, atenie, elementele vor fi luate cu
2 / 3 1 / 3
.
semn schimbat: B 1 =
1/ 3 2 / 3

Observaia 2: Valorile optime ale variabilelor dualei se citesc n linia f j


din ultimul tabel, n dreptul vectorilor ce au format prima baz (ca n tabelul
simplexului-primal), cu semnul impus n modelul dualei: u i 0, i = 1,2
1
7
u1* = , u 2* = .
3
3

Problema 2 S se rezolve grafic i printr-o metod simplex urmtorul


program liniar:
[min] f = 5 x1 + 3 x 2
x1 + x 2 4

2 x1 + x 2 3
3x + x 5
2
1

x j 0, j 1,2
Soluia grafic: n primul rnd vom reprezenta grafic mulimea

soluiilor admisibile ale problemei. Aa cum tim, mulimea soluiilor


admisibile este generat de restriciile programului liniar de mai sus, i se
afl la intersecia semiplanelor definite de aceste restricii. Pentru a gsi
semiplanele i apoi interesecia acestora, vom reprezenta mai nti dreptele
d1 : x1 + x 2 = 4 , d 2 : 2 x1 + x 2 = 3 i d 3 : 3 x1 + x 2 = 5 .

Semiplanul determinat de prima restricie a problemei este cel


mrginit de dreapta d 1 i care nu conine originea. Semiplanul determinat
de a doua restricie este determinat de d 2 i nu conine originea. n fine,
semiplanul determinat de cea de-a treia restricie este mrginit de d 3 i nu

Metode simplex pentru modele liniare

include

originea.

Dac

notm

d1 I d 2 = {A} ,

d 1 I d 3 = {B}

x + x2 = 4
d 2 I d 3 = {C} , prin rezolvarea sistemelor de ecuaii 1
,
2 x1 + x 2 = 3

x1 + x 2 = 4
2 x1 + x 2 = 3
i
, gsim coordonatele punctelor A, B i C, i

3 x1 + x 2 = 5
3 x1 + x 2 = 5
1 11
2 19
1 7
anume: A , , B , i C , . Astfel, poriunea haurat din
2 2
3 3
5 5
grafic reprezint mulimea soluiilor admisibile. Se tie faptul c soluia
optim se gsete ntr-unul din vrfurile mulimii soluiilor admisibile.
2 19
Astfel, este foarte uor de realizat faptul c C , reprezint punctul de
5 5
minim. Valoarea funciei obiectiv n acest punct, valoarea minim a funciei,
este 5

2
19 67
+ 3 =
.
5
5
5
x2
d2
C

A
B
d1
x1
O

d3

Analiza economico-matematic a unor modele liniare

Observaie: Acelai lucru ar fi fost observat cu uurin i dac am fi


construit dreapta de nivel corespunztoare funciei obiectiv,
d : 5 x1 + 3 x 2 = 0 . Ducnd paralele la aceast dreapt, se vede c prima

paralel care intersecteaz mulimea soluiilor admisibile ale problemei este


2 19
cea care trece prin C , i se afl la cea mai mic distan de origine.
5 5
Soluie analitic: Vom utiliza algoritmul simplex dual (punctul a)), apoi

algoritmul simplex primal (punctul b)).

Aducem mai nti problema la forma standard:


[min] f = 5 x1 + 3 x 2
x1 + x 2 x3 = 4

2 x1 + x 2 x 4 = 3 .
3x + x x = 5
2
5
1
x j 0, j 1,5
a) Pentru a aplica algoritmul simplex dual, vom nmuli mai nti fiecare
[min] f = 5 x1 + 3 x 2
x1 x 2 + x3 = 4
1 1 1 0 0

restricie cu ( 1) : 2 x1 x 2 + x 4 = 3 , cu A = 2 1 0 1 0 .
3 x x + x = 5
3 1 0 0 1
1
2
5

x j 0, j 1,5
Baza de start pentru algoritmul simplex dual trebuie s fie dual
admisibil. O astfel de baz este format din vectorii a3 , a 4 , a5 .
Cunoscnd toate aceste date, putem trece la aplicarea algoritmului
menionat anterior:

Metode simplex pentru modele liniare

cj

cB

XB

a1

a2

a3

a4

a5

a3

-4

-1

-1

a4
a5

-3

-1

-5

-3

-1

fj

-5

-3

f j cj
0

a3

-7/3

-2/3

-1/3

a4
a1
fj

-19/3

-5/3

2/3

5/3

1/3

-1/3

25/3

5/3

-1/3

-4/3

-1/3

f j cj
0

a3

1/5

-2/5

-3/5

a2
a1
fj

19/5

-3/5

-2/5

2/5

-1/5

-1/5

67/5

-4/5

-1/5

-4/5

-11/5

f j cj

Prima baz admisibil (a3

a2

0 j ?
DA SDR

0 j ?
DA SDR

0 j ?
DA soluie optim

a1 ) este i baz optim pentru

modelul studiat. Din tabelul optimal obinem cel puin dou informaii:
funcia de eficien are valoarea minim

67
;
5

soluia optim are componentele: x1* =

2
19
1
, x 2* =
, x3* = , x 4* = 0 ,
5
5
5

x5* = 0 .
b) S relum modelul de la forma standard, deoarece aceast form ne
sugereaz folosirea metodei bazei artificiale (sau metoda celor dou
faze), n cazul n care se impune rezolvarea prin algoritmul simplex
primal.

Analiza economico-matematic a unor modele liniare

[min] f = 5 x1 + 3 x 2 + x6 + x7 + x8
x1 + x 2 x3 + x6 = 4

Forma extins este: 2 x1 + x 2 x 4 + x7 = 3


3x + x x + x = 5
2
5
8
1

x j 0, j 1,8

cB

cj

XB

a1

a2

a3

a4

a5

a6

a 7 a8

a6

-1

a7

-2

-1

a8

-1

14

2 -5

3 -3

fj

f j cj
a6

-1

-1

a2
a8

-2

-1

-1

3 +9

8 -5

1/3

-1/3

1/3

11/3

-2/3

-1/3

1/3

5/3

-2/3

-1

(58+ )/3

(5 -11)/3 (2-2 )/3

(5 -11)/3 (2-2 )/3

fj
f j cj
5
3

a1
a2
a8

fj
f j cj
5
3
0

a1
a2
a3

2/5

1/5

-1/5

19/5

-3/5

-2/5

1/5

-2/5

-3/5

fj

67/5

-4/5

-11/5

-4/5

-11/5

f j cj

Metode simplex pentru modele liniare

Prin rezolvarea acestui model liniar prin cei doi algoritmi am vrut s
evideniem, nc o dat, comportarea dual a acestora n ceea ce privete
atingerea minimului funciei f :
f 01 = 14
Algoritmul
simplex primal

f 02 = 3 + 9
f 03 = (58 + ) / 3
[min] f = 67 / 5

Algoritmul
simplex dual

f 02 = 25 / 3
f 01 = 0

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