II.

METODE SIMPLEX PENTRU MODELE LINIARE
1. Algoritmul simplex primal. Descriere.

Pentru rezolvarea modelelor liniare, au apărut, începând cu 1948, mai multe metode, dintre care amintim: metoda simplex cu variantele sale, metoda Kantorovici, metoda relaxării. Dintre toate metodele apărute în literatura de specialitate, cea mai răspândită este cea elaborată de G. B. Dantzig. Algoritmul propus de Dantzig permite determinarea unei soluţii admisibile de bază optime, dacă există, prin examinarea parţială dirijată a mulţimii soluţiilor admisibile de bază; mai precis, vor fi testate o parte din soluţiile admisibile de bază. În mod empiric, pe baza unor experienţe de calcul efectuate timp de 10 ani, s-a stabilit că soluţia optimă, dacă există, se obţine după cel mult 3m iteraţii (m = rangA). Fiecare dintre aceste noi iteraţii constă în găsirea unei noi soluţii admisibile de bază căreia îi corespunde o valoare mai bună a funcţiei obiectiv decât în situaţia 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 corespunzătoare bazei B1 = (as )s∈J B1 , în raport cu care se va explicita sistemul de restricţii X B = B1
1

( )
(X )

−1

⋅ b − B1

( )

−1

⋅ RX R , unde
T

(B )
X1.

1 −1

⋅ b = (X )
not

B1

≥ 0 . Elementele vectorului

B1

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

sunt

valorile variabilelor bazice, deci, componentele nenegative ale vectorului

Teorema 1: Criteriul de îmbunătăţire a unei soluţii admisibile de bază
Fie problema de programare liniară (P), B1 o bază în R m şi X 1 soluţia admisibilă de bază corespunzătoare ei. Dacă pentru un indice j ∈ J − J B , f j − c j < 0 şi există cel puţin un indice s ∈ J B astfel încât
1

y sj > 0 , atunci X 1 poate fi înlocuită printr-o soluţie admisibilă de bază X 2

cel puţin la fel de bună, în sensul f ( X 1 ) ≤ f ( X 2 ) . Soluţia admisibilă
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 daţi de relaţiile:

1

II.1.1 şi II.1.2

f 1 − c1 =

min { f j − c j | f j − c j < 0 } j∈J − J B

⎧x ⎫ xk ⎪ ⎪ = min ⎨ s y sj > 0⎬ . B⎪y y kl s ∈ J ⎩ sj ⎪ ⎭

Teorema 2: Testul de optimalitate

O soluţie 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

Observaţia 1 : Dacă există X SAB astfel încât să fie identificate relaţiile

II.1.3 - numite criteriu de optimalitate - atunci [max] f ( x) << +∞ .
Observaţia 2: Relaţia

II.1.4

f j − c j ≤ 0 , ∀j ∈ J

este criteriu de optimalitate dacă se cere minimizarea funcţiei liniare f.
Observaţia 3: f s − c s = 0 , ∀s ∈ J B , unde J B reprezintă mulţimea indicilor

variabilelor bazice.
Corolar: Soluţia 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 soluţie admisibilă de bază a problemei considerate există un indice l ∈ J − J B astfel încât f l − cl ≤ 0 şi y sl ≤ 0 , ∀s ∈ J B , atunci (P) are optim infinit.
Observaţia 4: Pentru problemele cu funcţia obiectiv [min] f , criteriul de

recunoaştere a optimului nemărginit (teorema 3) este:
∃l ∈ J − J B astfel încât f l − cl > 0 şi y sl ≤ 0 , ∀s ∈ J B .

Din enunţul 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 său de optim.

î.. ∀s ∈ J B ∃l ∈ J − J B a. f k − ck = 0 1. k ∈ 1. f l − cl < 0 şi y sl ≤ 0 . ∀j ∈ {1.. Forma standard AX = b .î... f l − cl > 0 şi y sl ≤ 0 . ∀s ∈ J B [min] ∀j ∈ J B f j −cj < 0.î.a m ) şi R = (a m +1 . n} şi ∃l ∈ J − J B a. n} şi ∀j ∈ J f j −cj = 0... B f j − c j ≥ 0 . m} X (1) = ⎜ R ⎜ ⎟ x =0 ⎝ ⎠ . B ∃k ∈ J − J B a. ∀j ∈ {1. f k − ck = 0 f j − c j ≤ 0 .b) Schema de rezolvare prin algoritmul simplex – primal: Modelul matematic.. [max] f ( X ) = cX rangAm×n = m < n ... ∃bk > 0 . m Se generează o SAB X (1) → B = (a1 . J B = {1. X ≥ 0 .... ∀j ∈ J − J B ∃k ∈ J − J B a.î.. [max] ∀j ∈ J − J f j −cj = 0.a n ) ⇒ ⎛ x B = B −1b = x B ⎞ ⎟ .Analiza economico-matematică a unor modele liniare Concluziile celor trei teoreme sunt sistematizate în tabelul următor: Soluţie optimă finită ([opt]f<< ∞ ) unic multiplă determinată Optim infinit f j −cj > 0. b ≥ 0 ..

sau ⎪ ≤ 0 . pentru a j vector nebazic. X = ⎜ ⎜ 0 ⎟ ⎠ ⎝ * NU (∃) vector nebazic cu componentele negative şi diferenţa strict negativă? ( ∃l ∈ J şi DA \ J B a. Problema admite soluţie optimă finită ⎛ B −1 b ⎞ ⎟ f 0 = [max] f . n DA STOP. pentru ∀a j vector bazic ⎪ −1 B • f j − c j = c ⋅ B ⋅ a j − c j care este ⎨≥ 0 . pentru a vector nebazic j ⎩ B −1 • f0 = c ⋅ B ⋅ b fj − cj ≥ 0 ∀j = 1.Metode simplex pentru modele liniare Calculează: ⎧ 0 . f l − cl < 0 y sl ≤ 0 . Problema admite optim nemărginit (1) .î. ∀s ∈ I STOP.

. . .a m ) → (a1 . unde (a1 .Analiza economico-matematică a unor modele liniare (1) NU Se aplică: • criteriul de intrare în bază (C.. y kr y ij ⋅ y kr − y kj ⋅ y ir pentru i ∈ J B \ {r} y kr ... se aplică una dintre formulele: x i := y ij := x i ⋅ y kr − x k ⋅ y ir .I. dacă atunci..E. pentru j∈J . Se trece la ( 2) X SAB . ar a luat locul lui ak .a k −1 a k a k +1 . ⎧x ⎫ x min ⎨ s ⎬ = k y sr > o y y kr s∈I ⎩ sr ⎭ raport unic...a m ) ⇒ J B := J B \ {k} U {r} Se calculează componentele vectorilor în noua bază: 1) Elementele din linia pivotului. linia k: f X (1) ≤ f X ( 2 ) ( ) ( ) ( ) x k y k1 y . 3) Pentru orice altă componentă care nu a fost calculată la 1) sau 2).. în noua bază.. kn y kr y kr y kr ..a k −1 a r a k +1 .B): f j −c j <0 min {f j − c j } = f r − c r . ar va avea componentele lui ak . • criteriul de eliminare din bază (C..B): Observaţii: - a k va fi eliminat de a r .dacă raportul nu este unic determinat. 2) Vectorii care se menţin în bază îşi menţin componentele. se lucrează cu problema perturbată sau se aplică metoda lexicografică pentru a stabili ce vector va fi eliminat... y kr > 0 este pivotul iteraţiei.

. dacă problema admite optim finit. unic determinat Specific acestui prim exemplu. rezultă că după un număr finit de paşi acest procedeu iterativ se opreşte dacă nu apare fenomenul de ciclare. să ducă la creşterea valorii funcţiei scop. introdus în bază. Observaţia 6: Prin algoritmul simplex sunt examinate numai soluţiile admisibile de bază.c) Aplicaţii ale algoritmului simplex În continuare vom exemplifica aplicarea algoritmului în trei modele distincte.Metode simplex pentru modele liniare Observaţia 5: m • numărul soluţiilor admisibile de bază este cel mult C n . Observaţia 7: Prin trecerea de la o SAB la o alta cel puţin la fel de bună în χ care sensul dat de tipul de optim al funcţiei f ( X ) . Procedura de iterare a algoritmului simplex se opreşte atunci când nu va mai exista nici un vector care. Din punct de vedere geometric se ajunge la punctul de extrem al mulţimii optimizează funcţia scop. y kr Observaţia 8: Când scopul este de a minimiza funcţia obiectiv. algoritmul se modifică. cel puţin la fel de bună în sensul dat de optimul funcţiei. în sensul maximizării funcţiei (− f ) . Model liniar cu optim finit. 1. este că prin aducerea la forma standard apar m vectori care formează o bază în spaţiul bunurilor. • trecerea de la o iteraţie la alta presupune trecerea de la o SAB la o altă soluţie admisibilă de bază. care va fi studiat. se realizează o creştere a acesteia cu xk ( f r − cr ) .

2 1 0 0 1⎥ ⎦ a 2 a3 a 4 a5 a 6 . 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 .6 ⎧ x1 + 2 x2 + x4 = 680 ⎪ ⎨2 x1 + x2 + 4 x3 + x5 = 800 ⎪2 x + 2 x + x + x = 900 2 3 6 ⎩ 1 x j ≥ 0.Analiza economico-matematică a unor modele liniare Etapa 0: Se consideră un model simplificat al unui proces de fabricare a trei produse.3 cu forma standard: [max] f = 20 x1 + 16 x2 + 17 x3 + 0 x4 + 0 x5 + 0 x6 II. x j ≥ 0.1. ∀j = 1.6 . Etapa 1: Generarea unei soluţii admisibile de start. ∀j = 1. Pasul 1 • Se scrie matricea A şi se verifică apoi condiţia rangA3×6 = 3 < 6 : ⎡1 A = ⎢2 ⎢ ⎢2 ⎣ a1 2 0 1 0 0⎤ 1 4 0 1 0⎥ ⎥ şi rangA = 3 < 6.

7 ⎢0 1 0⎥ ⋅ ⎜ x 5 ⎟ = ⎜ 800 ⎟ − ⎢2 1 4⎥ ⋅ ⎜ x 2 ⎟ ⎥ ⎢ ⎥ ⎢ ⎢0 0 1⎥ ⎜ x 6 ⎟ ⎜ 900 ⎟ ⎢2 2 1 ⎥ ⎜ x 3 ⎟ ⎦ ⎝ ⎠ ⎠ ⎣ ⎦ ⎝ ⎠ ⎝ ⎣ Se stabileşte SAB de start: ⎛0⎞ ⎛ 680 ⎞ ⎜ ⎟ ⎜ ⎟ not B R ⎜ 800 ⎟ = X şi X = ⎜ 0 ⎟ . important pentru rapiditatea găsirii soluţiei optime este ca A să conţină o matrice unitate.1. .Metode simplex pentru modele liniare • Se scrie baza de start şi se deduce soluţia admisibilă de bază (SAB) de start: B1 = (a 4 a5 a 6 ) = I 3 este baza de start formată din vectorii B1 unitate a4 . Aşadar. de unde rezultă ⎜x ⎟ ⎝ 3⎠ explicitarea sistemului în raport cu baza B1 : ⎡1 0 0⎤ ⎛ x 4 ⎞ ⎛ 680 ⎞ ⎡1 2 0⎤ ⎛ x1 ⎞ ⎜ ⎟ ⎟ ⎜ ⎟ ⎜ II. X ⎛ x4 ⎞ ⎜ ⎟ = ⎜ x5 ⎟ . ⎜x ⎟ ⎝ 6⎠ X R1 ⎛ x1 ⎞ ⎜ ⎟ = ⎜ x2 ⎟ . a5 şi a6 . T Observaţia 9: Nu are importanţă ce coloane ale matricii A sunt vectori liniar independenţi în R m . sau ⎜0⎟ ⎜ 900 ⎟ ⎝ ⎠ ⎝ ⎠ X SAB = (0 0 0 680 800 900 ) .

⎜0⎟ ⎝ ⎠ f5 = c ⋅ I B −1 3 f6 = c ⋅ I B −1 3 ⎛0⎞ ⎜ ⎟ ⋅ a 6 = (0 0 0 ) ⋅ I 3 ⋅ ⎜ 0 ⎟ = 0 .Analiza economico-matematică a unor modele liniare Pasul 2 ⎛ 680 ⎞ ⎟ ⎜ = (0 0 0 ) ⋅ ⎜ 800 ⎟ = 0 . ⎜1⎟ ⎝ ⎠ f2 = c ⋅ I B −1 3 f3 = c ⋅ I B −1 3 f4 = c ⋅ I B −1 3 ⎛1⎞ ⎜ ⎟ ⋅ a 4 = (0 0 0 ) ⋅ I 3 ⋅ ⎜ 0 ⎟ = 0 . ⎜ 2⎟ ⎝ ⎠ ⎛0⎞ ⎜ ⎟ ⋅ a3 = (0 0 0 ) ⋅ I 3 ⋅ ⎜ 4 ⎟ = 0 . ⎜ 2⎟ ⎝ ⎠ ⎛ 2⎞ ⎜ ⎟ ⋅ a 2 = (0 0 0 ) ⋅ I 3 ⋅ ⎜ 1 ⎟ = 0 . şi corespund unei baze. ⎜0⎟ ⎝ ⎠ ⎛0⎞ ⎜ ⎟ ⋅ a5 = (0 0 0 ) ⋅ I 3 ⋅ ⎜ 1 ⎟ = 0 . ⎜1⎟ ⎝ ⎠ De obicei. care au cel mult m + 4 linii şi n + 4 coloane. ⎜ 900 ⎟ ⎠ ⎝ f0 = f (X ) = c ⋅ X 1 B B = (c 4 c5 c6 ) ⋅ X B f1 = c ⋅ I B −1 3 ⎛1⎞ ⎜ ⎟ ⋅ a1 = (0 0 0 ) ⋅ I 3 ⋅ ⎜ 2 ⎟ = 0 . calculele implicate de aplicarea algoritmului simplex sunt organizate în tabelele simplex. În continuare va fi dat tabelul corespunzător bazei de start. .

6 ⇒ se trece la Pasul 4. n ? NU STOP. j = 1. DA [max] f = +∞ ∃l ∈ J − J astfel încât f l − cl < 0 şi y sl ≤ 0 .3 şi f j −cj = 0 .1.II.1. j = 4.2. Pasul 4 Se verifică dacă problema admite optim infinit (teorema 3): STOP.1 cj → cB 0 0 0 B a4 a5 20 a1 16 a2 17 a3 0 4 1 0 0 a4 0 a5 0 1 0 0 Ø 0 a6 0 0 1 0 Ø XB 680 800 900 0 ρ 680/1 800/2 (minim) 900/2 1 2 2 0 2 1 2 0 1 0 0 0 Ø a6 fj f j −cj -20 -16 -17 Pasul 3 Este verificat testul de optimalitate (vezi teorema 2)? DA f j − c j ≥ 0 .5. f j − c j < 0 . ∀s ∈ J ? B B NU Pasul 5 Din T.1 se observă că nu există vector nebazic (a1 componentele negative şi pentru care f l − cl < 0 . ∀j = 1. X 1 este soluţia optimă a problemei şi f 0 valoarea maximă a funcţiei obiectiv. II. Pasul 4 Pentru problema de faţă.Metode simplex pentru modele liniare T. a2 a3 ) cu toate .

X 2 . . 2 . Operaţia 1: Se aplică criteriul de intrare în bază: C. ceea ce este echivalent cu a spune că noua SAB are m componente strict pozitive. deci. B B [min ] f s∈J ⎭ a kl ⎭ s∈J ⎩ a sl ⎩ y sl pentru X 1.B ⎯[max] f → minB f j − c j f j − c j < 0 = f l − cl ⇒ al va intra în ⎯⎯ j∈J − J ( ) ( ) { } bază. { } de unde rezultă că a1 va intra în noua bază (l=1). = ⎬= 2 ⎭ 2 2 a 21 ⎩ 1 ⎩ a11 a 21 a33 ⎭ a 2 va fi eliminat şi a 21 = 2 este pivotul iteraţiei. de unde rezultă că a k va fi eliminat. rezultă că soluţia testată. . în general. pe care îl vom colora în tabel. .I. ρ = xk .16. 2 .Analiza economico-matematică a unor modele liniare Pasul 5 Dacă algoritmul nu se opreşte la Pasul 3 sau Pasul 4. trebuie să se treacă la o nouă SAB. Rapoartele calculate se trec în ultima coloană din tabelul II. avem: Operaţia 1: j =1. în sensul că f X 1 ≤ f X 2 . Pentru aceasta se vor executa două operaţii. X 1 . . 3 min f j − c j f j − c j < 0 = min{− 20. cel puţin la fel de bună ca X 1 .B → ρ = min ⎨ s y sl > 0⎬ = min ⎨ s a sl > 0⎬ = k .1.1. iar y kl devine y kl pivotul iteraţiei. Operaţia 2: Se aplică criteriul de eliminare din bază: [max ] f ⎫ b ⎫ ⎧b ⎧x C. ⎧b b b ⎫ ⎧ 680 800 900 ⎫ 800 b2 Operaţia 2: min ⎨ 1 . nu este optimală. Se va presupune că pivotul este unic. 3 ⎬ = min ⎨ ⇒ . sau. În cazul nostru.17} = −20 = f1 − c1 .E.

. vectorii a 4 . la pivotul iteraţiei... Aceste calcule ce vor fi trecute în tabelul T. Se vor scrie vectorii nebazici şi X în noua bază..II.1. a 6 îşi menţin componentele.E. Se trece la un nou tabel simplex. atunci el îşi menţine componentele (a1 . iau valorile 800 2 1 4 0 1 0 . .Metode simplex pentru modele liniare Cele trei rapoarte se trec în ultima coloană a tabelului T. 2 2 2 2 2 2 2 Formulele de trecere de la o iteraţie la alta pot fi sistematizate direct în tabelul simplex: . ak ak +1 .1.. am ) . iar vectorul a1 va avea componentele lui a 5 din iteraţia 1. . a k −1 al a k +1 . a n ) şi J B2 = ( J B1 − {k}) U {l} . Pasul 6 Conform teoremei 1.B – în ultima coloană. y kl . iteraţia 2. dacă vectorul ak este eliminat din bază de către al .II. .. elementele din linia 2. . .. se va trece “/ “ sau “-“ .. Astfel. se trece de la soluţia admisibilă de bază X 1 la soluţia admisibilă de bază X 2 ce corespunde bazei B2 dedusă din B1 prin înlocuirea vectorului a k cu vectorul al : B2 = (a1 . pe acel loc. dacă un raport nu se poate calcula – în sensul dat de C.3 – iteraţia 2 a algoritmului simplex – sunt efectuate în conformitate cu calculele implicate de metoda eliminării complete: B • Dacă un vector se menţine în bază. iteraraţia precedentă. • Elementele din linia vectorului al se obţin împărţind elementele din linia vectorului a k .2).1.II. În particular.. atunci acesta îi ia componentele (vezi tabelul T.1.

. . 0 0 a kl . . . 0 . b a k −1 ⋅a kl . k + 1l . . 0 0 0 c1 1l a ij ⋅ a kl − a kj ⋅ a il a kl B ∀j ∈ J − J 2 0 a kl . . . . . cj aj . b ⋅a am m . .II. 0 . fl − c l . 1 − . fn − c n . fm fm − c m f m +1 − c m +1 fl fn . . . . . c k −1 a k −1 ck ak a 1l − a kl c k +1 a k +1 . 0 . 1 . km + 1 a kl . 1 . . c k −1 . .1. k − 1l k +1 a a kl k − 1l a kl b cl al a . cn an B b ⋅a a1 1 kl X B ρ −b ⋅a k . . a . ml kl a kl fj fj − c j f0 f1 f1 − c 1 . . . a k kl kn a kl b c k +1 a k +1 k +1 ⋅a kl −b ⋅a k .T. . −b ⋅a k . 0 − a 1 k + 1l a kl . . . . −b ⋅a k . . . . 0 fk fk − c k . cl al . . 0 .2 cj → c B c1 a1 . . cm . . . 0 . 0 . . . . cm am c m +1 a m +1 . 0 . 1 a kl 0 .

Pentru exemplul numeric de mai înainte. se revine la pasul 2.Metode simplex pentru modele liniare După efectuarea calculelor. obţinem: 680 ⋅ 2 − 800 ⋅1 = 280 2 XB 900 ⋅ 2 − 800 ⋅ 2 = 100 2 1 • prima componentă 2 2 y12 := 1 2 ⋅ 2 − 1⋅1 2 a2 • a treia componentă 2 2 1 2 y 32 := 2 ⋅ 2 − 2 ⋅1 2 .

motiv pentru care algoritmul se opreşte.1. sunt date în tabelul II. până la oprirea algoritmului.3: T.Analiza economico-matematică a unor modele liniare Rezultatele calculelor pentru exemplul numeric propus. .3 cj → cB 0 20 B 20 16 17 0 0 0 XB 280 400 100 8000 a1 a 2 0 1 0 20 Ø 3/2 1/2 1 10 -6 0 0 1 16 Ø a3 -2 2 -3 40 23 5/2 7/2 -3 22 5 a 4 a5 1 0 0 0 Ø 1 0 0 0 Ø -1/2 1/2 -1 10 10 1 1 -1 4 4 a6 0 0 1 0 Ø -3/2 -1/2 1 6 6 ρ 280/3/ 2 400/2 100/2 a4 a1 a6 Iteraţia 2 0 fj f j −cj 0 20 16 ≥ 0 ? NU Iteraţia 3 a4 a1 a2 fj f j −cj 130 350 100 8600 0 1 0 20 Ø ≥ 0 ? DA ⇒ STOP În linia test f j − c j este verificat criteriul de optimalitate.II. modelul liniar admiţând soluţie optimă finită.1.

numit şi tabel optimal. Modelul liniar cu optim nemărginit Considerăm următorul program liniar [max] f = x1 + 2 x2 + 2 x3 + x4 1 ⎧ ⎪ x1 − x3 + x4 = 1 ⎨ 2 ⎪ x 2 + x3 − x 4 = 1 ⎩ x j ≥ 0 .Metode simplex pentru modele liniare Citirea soluţiei: Baza optimă Variabile bazice Valori optimale 130 350 100 Valori optimale 0 0 0 T a4 a1 a2 x4 x1 x2 Variabile nebazice x3 x5 x6 Soluţia optimă X * = (350 100 0 130 0 0) este: • unic determinată.4 . pentru că numărul componentelor strict pozitive este egal cu rangA=3. j = 1. deoarece f j − c j > 0 . • nedegenerată. • [max] f = 8600 = f 0 în ultimul tabel. pentru ∀a j nebazic.

1 a4 a2 fj 2 3 8 2 2 6 5 f j −cj ≥ 0 ? NU. ⎜1⎟ ⎝ ⎠ ⎡1 0 − 1 1 / 2 ⎤ A=⎢ ⎥ ⎣0 1 1 − 1 ⎦ . T Calculele implicate de aplicarea algoritmului sunt sistematizate în următorul tabel simplex: cj → cB 1 2 B 1 2 2 1 XB 1 1 3 a1 1 0 1 Ø a2 0 1 2 Ø 0 1 2 Ø a3 -1 1 1 -1 -2 -1 -4 -6 a4 1/2 -1 -3/2 -5/2 1 0 1 Ø ρ 1/(1/2) - a1 a2 fj f j −cj 1 2 ≥ 0 ? NU. Th.3? DA .Analiza economico-matematică a unor modele liniare Vom studia natura sa aplicând algoritmul propus de Dantzig. şi anume. Th. a1 a 2 a3 a4 rang A=2<4 şi ⎡1 0⎤ B=⎢ ⎥ = (a1 ⎣0 1 ⎦ a 2 ) . Deoarece ⎛1⎞ b=⎜ ⎟>0. X SAB = (1 1 0 0 ) . ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎣ ⎦ ⎝ 2⎠ ⎣ ⎦ ⎝ 4⎠ ⎝ ⎠ evidenţiază o SAB de start. rezultă că scrierea canonică a sistemului de restricţii ⎡1 0⎤ ⎛ x1 ⎞ ⎡− 1 1 / 2⎤ ⎛ x3 ⎞ ⎛1⎞ ⎢0 1⎥ ⋅ ⎜ x ⎟ + ⎢ 1 − 1 ⎥ ⋅ ⎜ x ⎟ = ⎜1⎟ .3? - NU ⇒ Th.

şi anume a 3 .Metode simplex pentru modele liniare În ultima linie există un vector nebazic. pentru care ⎧ y = −2 < 0 Th . [max] f = 1 ⋅ x1 + 2 x 2 + 2 x3 + 1 ⋅ x 4 [min]g = u1 + u 2 1 ⎧ ⋅ 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 u1 ∈ R u2 ∈ R u1 + 0 ⋅ u 2 ≥ 1 1⋅ u2 ≥ 2 (− 1) ⋅ u1 + u 2 ≥ 2 1 ⋅ u1 − u 2 ≥ 1 2 u2 d 1 : u1 = 1 d 2 : u2 = 2 d 4 : u2 = d 3 : u 2 = u1 + 2 O 1 u1 − 1 2 u1 .3 f 3 − c 3 < 0 şi ⎨ 13 ⇒ STOP: [max] f = +∞ ⎩ y 23 = −1 < 0 Vom investiga natura programului dual.

Fan) Se consideră un model matematic sub forma sa standard: ⎧ AX = b ⎪ II. care să verifice simultan cele 4 restricţii. dacă o problemă de programare liniară are optim infinit. u i ∈ R . după aducerea la forma standard. 2. W. vom analiza cazul în care matricea A. bk ≥ 0 .2. Generarea SAB prin metode particulare În continuare. i = 1. în matricea A din modelele matematice corespunzătoare unor procese reale nu apare complet I m .1 ⎨ X ≥ 0 şi rang Am× n = m < n . D. . Este aceasta o afirmaţie general valabilă? Răspunsul îl vom afla în următorul capitol. folosind numai algoritmul simplex primal. • Metoda bazei artificiale. Chaines.2.1). nu conţine o bază unitate din spaţiul R m . ∃k ∈ I a. atunci duala sa nu are soluţie.2 . b ≥ 0 . Pentru a genera o soluţie admisibilă de bază a problemei date. Să reţinem că. În general. Nu există (u1 u 2 ) .î. Cooper.Analiza economico-matematică a unor modele liniare Din rezolvarea grafică a problemei duale. se observă că χ = Φ . Prin această metodă se urmăreşte generarea unei SAB pentru (II. ⎪[max] f ( X ) = cX ⎩ Presupunem că matricea A nu conţine o bază unitate de ordinul m. se poate alege una din variantele: • Scrierea explicită a sistemului de restricţii în raport cu o bază din R m . dacă acest lucru este posibil. a) Metoda bazei artificiale (1953 A. dacă acest lucru este posibil. • Metoda celor două faze.

2 ⎨ X ≥ 0. i ∈1. X a = x n +1 .2. rezultă soluţia de start: ⎧ X =0 X SAB ⎨ . X a ≥ 0 . ⎩X a = b Pentru a exemplifica parcurgerea acestei etape. Din scrierea X a = b − AX . m . I m este matricea unitate de ordin m.3 ⎡1 4 3⎤ ⎛ 6⎞ .Metode simplex pentru modele liniare Metoda bazei artificiale presupune parcurgerea următoarelor etape: Etapa 1 Se extinde problema prin introducerea a m variabile artificiale care vor fi penalizate în funcţia obiectiv: ⎧ AX + I m X a = b ⎪ II. considerăm modelul liniar: [max] f = 3 x1 + 2 x2 + 4 x3 ⎧ x1 + 4 x2 + 3 x3 = 6 ⎨ ⎩ 2 x1 + x2 + x3 = 4 x j ≥ 0 .. variabile artificiale. ⎜ ⎟ ⎣2 1 1⎦ ⎝ ⎠ a1 a2 a3 . unde A = ⎢ ⎥ . ⎪[max] f = CX − αX a ⎩ a a unde α >> 0 .x n + m ( ) T este a vectorul coloană cu componentele xn +i . rangA=2<3.. j ∈1. b = ⎜ 4 ⎟ .

avem f j − c j ≥ 0 . ∀i = 1. apare baza B = (a 4 ⎣2 1 1 0 1⎦ a a x4 = 6 . n + m . Dacă se cere [min] f . ideal ar fi ca în soluţia optimă toate variabilele artificiale să aibă valoarea 0. problema extinsă admite soluţie optimă finită. a a atunci ele vor fi penalizate cu coeficienţi foarte mari: α xn +1 + . Deoarece se cere maximizarea lui f. care permite scrierea soluţiei de start a1 a 2 a 3 a 4 a 5 pentru problema extinsă: x1 = x2 = x3 = 0 . k ∈ N * . k < ∞ . cu ( ) α >> 0 . Observaţia 1: Valoarea funcţiei obiectiv este o valoare foarte mică ( bi ≥ 0 . pentru ca algoritmul simplex să le elimine din bază.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ă: a a [max] f = 3 x1 + 2 x2 + 4 x3 − α ( x4 + x5 ) a ⎧ x1 + 4 x2 + 3 x3 + x4 = 6 ⎨ a ⎩ 2 x1 + x2 + x3 + x5 = 4 . . Variabilele artificiale au fost “penalizate” în funcţia obiectiv cu coeficienţi foarte mici.5 ⎡1 4 3 1 0 ⎤ A=⎢ ⎥ . Presupunem că după k iteraţii. ceea ce s-ar traduce printr-o comportare nerentabilă în raport cu tipul de optim. m şi α >> 0 ). x5 = 4 şi f va fi (−6α − 4α ) < 0 . + xn+ m . deci.. j = 1. j ∈1.. Etapa 2: Se aplică algoritmul simplex problemei extinse. α >> 0 În noua matrice x j ≥ 0 . a5 ) .

Teorema 2 Dacă II.. atunci ea va fi optimă şi pentru II. anumită iteraţie există ( f j − c j )(α ) < 0 pentru cel puţin doi indici. Orice soluţie optimă a problemei extinse care nu conţine nici o variabilă artificială strict pozitivă este soluţie optimă şi pentru problema iniţială. s-a obţinut o bază formată numai cu vectori din A (fără vectori artificiali). în acest caz.2.2. Să presupunem că la o Observaţia 3: Să presupunem că algoritmul s-a oprit la iteraţia k ∈ N * . diferenţele f j − c j vor fi funcţii liniare de α .1 se obţine considerând numai valorile optimale ale variabilelor x1 . xn .Metode simplex pentru modele liniare La baza discuţiei ce va urma. După oprirea algoritmului. cel mai mare coeficient pozitiv). Va intra în noua bază vectorul al dacă ( f l − cl )(α ) va avea cel mai mic coeficient negativ (respectiv. stau următoarele teoreme: Teorema 1 Dacă II. se discută natura problemei iniţiale după cum urmează: Cazul 1: Soluţia optimă a problemei extinse nu conţine nici o variabilă artificială cu valoare strict pozitivă ⇒ soluţia optimă a problemei II.1 are soluţie optimă finită.2. r < k .2.2. pentru [min] f .2. k < +∞ .. SAB corespunzătoare acestei baze . după înlăturarea variabilelor artificiale. Reciproca este adevărată..2 are funcţia obiectiv nemărginită. şi că la iteraţia r ∈ N * . problema iniţială nu are soluţie. Cazul 2: În soluţia optimă există cel puţin o variabilă artificială cu valoare strict pozitivă.1 are funcţia obiectiv nemărginită. Observaţia 2: Deoarece funcţia obiectiv este de forma (CX − αX a ) . relativ la existenţa sau nonexistenţa soluţiei optime a problemei iniţiale. atunci şi II..

se aplică algoritmul simplex primal pentru problema originară. Se continuă problema prin aplicarea algoritmului simplex primal cj c B → B 3 a1 2 a2 4 a3 −α a4 −α a5 B a4 a5 fj fj X ρ −α −α 6 4 − 10α 1 2 − 3α 4 1 − 5α 3 1 − 4α 1 0 −α 0 1 −α 6/4 4/1 −cj a2 − 3α − 3 − 5α − 2 − 4α − 4 Ø 1/4 -1/4 1/ 2 + α / 4 Ø 0 1 −α ≥ 0 ∀j ? NU 6 2 2 −α 3/2 5/2 1/4 5/4 1 0 2 Ø 1 0 2 Ø 10/7 -2/7 24/7 20/7 3/4 1/4 3/ 2 −α / 4 a5 fj fj − 5α / 2 + 3 1 / 2 − 5α / 4 − 5 / 2 − 5α / 4 −cj a2 a1 − 5 / 2 − 5α / 4 1 / 2 + 5α / 2 Ø -1/5 4/5 2 2 +α ≥ 0 ∀j ? NU 10/7 10 2 3 1 2 8 0 1 3 Ø 7/10 1/5 2 -2 1 0 24 Ø 3/10 -1/5 0 α fj fj −cj a3 a1 ≥ 0 ∀j ? NU 4 3 10/7 12/7 76/7 0 1 3 Ø 3/7 -2/7 6/7 6/7 +α -2/7 6/7 10/7 10 / 7 + α fj fj −cj ≥ 0 ⇒ DA STOP . componentele sale nu vor mai fi calculate la următoarele iteraţii. Practic. dacă a fost eliminat un vector artificial din bază. Observaţia 4: În general. Nu se recomandă acest lucru atunci când se cere soluţia optimă a dualei sau se pune problema postoptimizării modelului.Analiza economico-matematică a unor modele liniare este o SAB pentru problema iniţială. la această etapă.

I. Iteraţia 2 C. 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. * x1 = ⎛ 12 problema iniţială admite soluţia optimă finită X * = ⎜ ⎝7 [max] f = 76 . x 3 = . . Conform unei teoreme enunţată anterior în acest capitol. variabilele artificiale au fost eliminate şi dispunem acum de o bază a problemei iniţiale: (a 2 . Rezolvarea problemei. x 2 = 1 . fără comentarii.Metode simplex pentru modele liniare • Exemplificarea observaţiei 2: Iteraţia 1 C.5 . toate variabilele artificiale au 7 7 valori nule. -4}=-5 ⇒ a 2 eliminat. x 5 = 0 .B: min{-5/4. x 2 = 0 .3 [min] f = 5 x1 + x2 + 2 x3 ⎧ x1 + 2 x2 + x3 − x4 = 6 ⎪ ⇒ forma standard ⎨ 3x2 + 4 x3 = 20 . La iteraţia a 3-a. x 4 = 0 . ⎪ x + 2 x − x = 18 3 5 ⎩ 2 x j ≥ 0. j = 1.B: min{− 3α − 3. cu x1 = 2 .I. a1 ) . x 3 = 0 . j = 1.4α . 10 12 * * * * . • Exemplificarea observaţiei 1: în soluţia optimă a problemei extinse. − 5α − 2. -1/4}=-5/4 ⇒ a1 va intra în bază. 7 0 10 ⎞ ⎟ 7⎠ T şi Considerăm acum un alt exemplu pentru a aplica metoda şi în cazul în care se impune minimizarea funcţiei scop. -5.4} = − 5α − 2 = f 2 − c2 sau min{-3.

α >> 0. dar a1 ∈ B3 . rang A=3< 5. B = ⎢0 1 0⎥ nu 3 ⎢ ⎥ ⎢0 1 2 0 − 1⎥ ⎣ ⎦ ⎜ 18 ⎟ ⎢0 0 1 ⎥ ⎝ ⎠ ⎣ ⎦ a1 a 2 a3 a 4 a5 poate fi formată numai cu coloane din A. ⎧ 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 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 2 1 −1 B = (a1 a6 a7 ) ⇒ X SAB ⎛ x2 ⎞ ⎛ 0 ⎞ ⎜ ⎟ ⎜ ⎟ ⎜ x3 ⎟ ⎜ 0 ⎟ = ⎜ x4 ⎟ = ⎜ ⎟ ⎜ ⎟ ⎜0⎟ ⎜ x5 ⎟ ⎜ 0 ⎟ ⎜ ⎟ ⎝ ⎠ ⎝ ⎠ XR . Etapa 1: Forma extinsă: a a [min] f = 5 x1 + x2 + 2 x3 + αx4 + αx7 . b = ⎜ 20 ⎟ > 0 .Analiza economico-matematică a unor modele liniare ⎡1 2 1 − 1 0 ⎤ ⎛6⎞ ⎡1 0 0 ⎤ ⎜ ⎟ A = ⎢0 3 4 0 0 ⎥ ⎢ ⎥ .

b) Metoda celor două faze (1954. x6 = 0 .2. Wolfe) Se menţin ipotezele de lucru de la metoda bazei artificiale.B. x 5 = 0 . * * * * * x3 = 5 . x2 = 0 . A. x 4 = 0 . problema propusă spre rezolvare este fără soluţie. . Ca şi la metoda precedentă. x7 = 8 . Conform teoremei 2. sau informaţia că problema nu are soluţii ceea ce ar putea indica o modelare greşită a procesului economic. P.Metode simplex pentru modele liniare Tabelul simplex: cj → B 5 a1 1 a2 2 a3 0 a4 0 a5 α a6 α a7 c B B a1 a4 a7 fj fj X ρ 5 6 20 18 30 + 38α 1 0 0 5 Ø 2 3 1 4α + 10 4α + 9 1 4 2 6α + 5 6α + 3 -1 0 0 -5 -3 -1 0 0 -5 -5 0 0 -1 −α −α 0 1 0 α 0 0 1 α 6/1 20/4 (min) 18/2 α α [min] f ≤ 0 ∀j ? NU −cj a1 a3 a7 fj Ø -1/4 1/4 -1/2 − 3/ 4 −α / 2 − 3 / 4 − 3α / 2 Ø 0 0 1 α 5 2 α 1 5 8 15 + 8α 1 0 0 5 Ø 5/4 3/4 -1/2 31 / 4 − α / 2 27 / 4 − α / 2 0 1 0 2 Ø 0 0 -1 −α −α [min] f ≤ 0 ∀j ? ⇒ STOP DA fj −cj Ø * * Problema extinsă admite soluţia optimă finită x1 = 1 .1 ori de câte ori calculul direct al unei astfel de soluţii este dificil datorită dimensiunilor problemei (m şi/sau n foarte mari). Aceste două metode pun la dispoziţia utilizatorului procedee generale de generare a soluţiilor admisibile de bază. care are o variabilă artificială bazică cu valoare strict pozitivă. se urmăreşte generarea unei SAB pentru II. Dantzig. Orden. G.

xn +i . o SAB de start pentru II. Se aplică algoritmul simplex primal problemei auxiliare. i =1 m La această fază obiectivul va fi minimizarea sumei variabilelor articiale din restricţii.2. Atunci.1. II..5 [min]W = ∑ xn +i . aplicând algoritmul simplex-primal problemei auxiliare: II.4 X ≥ 0 .2.bm ) . II.2. T unde xn+i este variabila artificială adăugată numai părţii stângi a restricţiei i . după ce au fost eliminate variabilele artificiale. X a ≥ 0 . dacă este posibil. indiferent de tipul de optim al problemei considerate. Din II.2.2. n + m .. deci există o SAB care verifică criteriul de optimalitate: w j − c j ≤ 0 .x n + m ) = (b1 . min W = 0 Faza 2: Se revine la AX = b DA ⎧ ⎪ X ≥0 ⎨ ⎪[max] f ( X ) = CX ⎩ NU STOP II.3 A ⋅ X + B ⋅ (x n +1 . Se trece la rezolvarea ei prin metoda simplex primal cu SAB de start dată de soluţia optimă a problemei auxiliare. i = 1..Analiza economico-matematică a unor modele liniare Metoda celor două faze constă în parcurgerea următoarelor etape: Faza 1: Scopul acestei etape este de a obţine. X SAB = ⎨ ⎩X a = b Admitem că aceasta are soluţie optimă finită. iar B este matricea unitate de ordinul m=rangA.1 nu are soluţii .2... ∀j = 1. m .3 rezultă că variabilele artificiale bazice sunt în SAB de start: ⎧ X =0 ..

Existenţa unei astfel de soluţii atrage în mod necesar [min]W=0. j = 1. rangA=2<5. b = ⎜ ⎟ .Metode simplex pentru modele liniare La baza metodei stau următoarele afirmaţii: Tema 1: Orice soluţie admisibilă de bază a problemei II. . .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. Să exemplificăm numeric aplicarea acestei metode. Întrucât matricea A nu ⎜9⎟ ⎝ ⎠ a1 a 2 a3 a 4 a5 conţine 2 vectori unitari care să formeze baza unitate în R 2 . cu forma standard .1 este SAB a problemei auxiliare cu X a = 0 . vom aplica metoda celor două faze.2. j = 1. Tema 2: Orice soluţie admisibilă de bază a problemei extinse pentru care W=0 este o SAB a problemei iniţiale.5 ⎡1 2 3 − 1 0 ⎤ A=⎢ ⎛8⎞ ⎥ ⎣3 4 1 0 − 1⎦ . Considerăm modelul liniar: [min] f = 50 x1 + 25 x2 + 30 x3 ⎧ x1 + 2 x2 + 3 x3 ≥ 8 ⎨ ⎩3 x1 + 4 x2 + x3 ≥ 9 x j ≥ 0.

Se aplică algoritmul simplex-primal: cj c B → B 0 a1 0 a2 0 a3 0 a4 0 a5 1 a6 1 a7 B a6 a7 fj fj X ρ 1 1 8 9 17 1 3 4 4 2 4 6 6 0 1 0 Ø 0 1 0 Ø 3 1 4 4 5/2 1/4 5/2 5/2 1 0 0 Ø -1 0 -1 -1 -1 0 -1 -1 -2/5 1/10 0 0 0 -1 -1 -1 1/2 -1/4 1/2 1/2 1/5 -3/10 0 0 1 0 1 Ø 1 0 1 Ø 0 1 1 Ø 8/2 8/4 −cj a6 a2 fj ≤ 0 ∀j = 1.7 B = (a 6 ⎛1 0⎞ a7 ) = ⎜ ⎟ ⎜ 0 1 ⎟ . [min]W=0 ⇒ se trece la faza 2. rezultă ⎠ ⎝ ⎡1 2 3 − 1 0 1 0⎤ A=⎢ ⎥ ⎣3 4 1 0 − 1 0 1⎦ . ⎨ ⎩3x1 + 4 x2 + x3 − x5 + x7 = 9 x j ≥ 0. x4 = x5 = x6 = x7 = 0 . 7 ? DA ⇒ STOP. 7 ? NU. Deoarece a1 a2 a3 a4 a5 a6 a7 T X SAB : X = 0.Analiza economico-matematică a unor modele liniare Faza 1: Se construieşte problema auxiliară [min]W = x6 + x7 ⎧ x1 + 2 x2 + 3 x3 − x4 + x6 = 8 . * * Problema extinsă are soluţie optimă finită: x1 = 0 . 7 ? NU. . 1 0 7/2 9/4 7/2 -1/2 3/4 -1/2 -1/2 7/5 9 fj −cj a3 a2 fj ≤ 0 ∀j = 1. x2 = 19 / 10 . X a = (8 9 ) . j = 1. * * * * * x3 = 7 / 5 . 0 0 7/5 19/10 0 -1/5 4/5 0 0 fj −cj ≤ 0 ∀j = 1.

deoarece variabila x7 .5 14 -36 25 Ø 30 Ø -9. [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.Metode simplex pentru modele liniare Observaţie: Coloana lui a 7 nu ne mai interesează. Faza 2: Se revine la funcţia obiectiv din modelul originar.5 -1. Se testează optimalitatea sa: cj B → B 50 25 30 0 a4 0 a5 1/5 -3/10 c B X a1 a2 a3 1 0 1 1 a3 a2 fj fj 7/5 19/10 -1/5 4/5 0 1 -2/5 1/10 89. Idem pentru a 6 . j = 1. i = 1. odată eliminată din bază.5 -9. ⎠ cu [min]f=89. Vom continua studiul modelului matematic prin scrierea dualei: [max]g = 8u1 + 9u 2 ⎧ u1 + 3u 2 ≤ 50 ⎪ .5 -1.3 .5 . pentru care duala este ⎨2u1 + 4u 2 ≤ 25 ⎪ 3u + u ≤ 30 2 ⎩ 1 u i ≥ 0. 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 x j ≥ 0.5 ? DA ⇒ −cj STOP T 19 ⎛ Problema admite soluţia optimă finită X SAB = ⎜ 0 10 ⎝ 7 5 ⎞ 0 0⎟ . nu va mai fi reintrodusă ulterior.2 . cu X SAB ⎛ x1 ⎞ ⎛ 0 ⎞ ⎜ ⎟ ⎜ ⎟ ⎜ x2 ⎟ ⎜19 / 10 ⎟ = ⎜ x3 ⎟ = ⎜ 7 / 5 ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ x4 ⎟ ⎜ 0 ⎟ ⎜x ⎟ ⎜ ⎟ ⎝ 5⎠ ⎝ 0 ⎠ obţinută prin eliminarea variabilelor auxiliare din soluţia optimă găsită la faza 1. j = 1.5 ≤ 0 ∀j = 1.5.

rang A=3<5.Analiza economico-matematică a unor modele liniare Stabilim soluţia optimă a dualei (dacă există). T Se aplică algoritmul simplex-primal: cj → B 8 a1 9 a2 0 a3 0 a4 0 a5 c B B a3 a4 a5 fj fj X ρ 0 0 0 50 25 30 0 1 2 3 0 -8 3 4 1 0 -9 0 1 0 9 Ø 0 1 0 9 Ø 1 0 0 0 Ø 1 0 0 0 Ø 1 0 0 0 Ø 0 1 0 0 Ø 3/4 1/4 -1/4 9/4 9/4 -4/5 3/10 -1/10 19/10 19/10 0 0 1 0 Ø 0 0 1 0 Ø 1/5 -1/5 2/5 7/5 7/5 50/3 25/4 30/1 −cj a3 a2 a5 fj ≥ 0 ∀j = 1. X SAB = (0 0 50 25 30 ) . ⎢3 ⎣ ⎪ 3u + u + u = 30 5 ⎩ 1 2 a1 ui ≥ 0. [max]g = 8u1 + 9u 2 ⎡1 ⎧ u1 + 3u 2 + u3 = 50 A = ⎢2 ⎪ ⎢ ⎨2u1 + 4u 2 + u 4 = 25 .5 0 0 1 8 Ø a1 fj fj −cj ≥ 0 ∀j = 1. 5 ? 0 9 0 125/4 25/4 95/4 175/4 -1/2 1/2 5/2 9/2 -7/2 25/2 19/2 fj −cj a3 a2 0 9 8 26 3/2 19/2 89. i = 1.5 a4 3 1 0 0⎤ ⎛ 50 ⎞ ⎜ ⎟ 4 0 1 0⎥ ⎥ . 1 0 0 1⎥ ⎦ ⎜ 30 ⎟ ⎝ ⎠ a 2 a3 a 4 a5 ⎡1 0 0⎤ B = ⎢0 1 0⎥ = (a3 ⎢ ⎥ ⎢ ⎣0 0 1 ⎥ ⎦ a5 ) .5 ? DA ⇒ STOP . Forma standard a dualei va evidenţia o bază unitate în R 3 . Într-adevăr. b = ⎜ 25 ⎟ > 0 .

.. dar nu este un sistem de m vectori liniar independenţi... în spaţiul bunurilor R m ..1 dacă numărul valorilor variabilelor bazice strict pozitive este cel mult (m-1) unde m=rangA.... Din punct de vedere geometric.. B −1b are cel puţin o componentă egală cu zero şi toate celelalte strict pozitive ⇒ valorile variabilelor bazice X B = B −1b . a m ) : (a1 b) a2 . Soluţiile admisibile de bază degenerate se pot obţine în două moduri: 1) În sistemul de restricţii scris sub forma explicită X B + B −1 RX R = B −1b . strict pozitive. * * u 4 = u 5 = 0 şi [max]g = 89. vectorul b nu formează un sistem de vectori liniar independenţi cu orice combinaţie de (m-1) vectori din A..1 rezultă că X SAB are componentele ( x1 .Metode simplex pentru modele liniare * * * Duala admite soluţia optimă finită: u1 = 3 / 2 .3. u 2 = 19 / 2 . deci T este SAB degenerată. Vectorul b poate fi scris în mod unic în baza (a1 II..2. a m ) este o bază în Rm . . u 3 = 36 . Degenerare şi ciclare în probleme de programare liniară Definiţie: X se numeşte SAB degenerată pentru II.1 a1 x1 + a 2 x2 + . 3. sunt în număr de cel mult (m-1).3. acest lucru înseamnă că b trece printr-un vârf al poliedrului conex al restricţiilor AX = b . 2) Există cazul în care. a m−1 a2 .xm −1 0. Să presupunem că (a1 a 2 .5 = [min] f ..0 ) ... Din II. + a m −1 xm−1 + a m ⋅ 0 = b .

⎟ . d1 . prin înlocuirea coordonatelor sale în forma standard. Dacă înlocuim soluţia optimă în forma standard. 8 4 Observaţie: Şi prin A trec trei drepte. în R 2 . x 4 = 3 .Analiza economico-matematică a unor modele liniare Rezolvarea următorului model matematic. x5 = 0 . x 2 = . ne va furniza o interpretare geometrică a conceptului de degenerare: [max] f = x1 + 4 x 2 ⎧ − 2 x1 + x 2 ≤ 1 ⎪ − 2 x + 5x ≥ 5 ⎪ 1 2 . se obţine o SAB degenerată. ∀j = 1. prin care trec trei drepte ⎝8 4⎠ care definesc mulţimea convexă (simplexul) a soluţiilor admisibile. x3 = 0 . ∀j = 1. Să presupunem că unei probleme de programare liniară degenerată i se caută soluţia optimă aplicând metoda simplex. d 2 şi x1 = 0 . deci. se obţine un program optim * degenerat: x1 = 3 * 7 * * * * .2 x2 2 B 1 -5/2 -1/2 O 3 C A [max] f = x1 + 4 x 2 ⎧ − 2 x1 + x 2 + x3 = 1 ⎪ − 2x + 5x − x = 5 ⎪ 1 2 4 .6 d1 d2 d3 x1 ⎛3 7⎞ Valoarea maximă este atinsă în B⎜ . cu forma standard ⎨ 2 x1 + 3 x 2 ≤ 6 ⎪ ⎪− 14 x1 + 11x 2 ≤ 14 ⎩ x j ≥ 0. x 6 = 0 . . ⎨ 2 x1 + 3 x 2 + x5 = 6 ⎪ ⎪− 14 x1 + 11x 2 + x6 = 14 ⎩ x j ≥ 0. la o anumită iteraţie. şi.

II. toate componentele sale y sl .B.1 cj cB c1 ck cr B c1 a1 … cl al y1l … … cn an XB x1 … ρ x1 / y11 … a1 … ak … xk … y kl … xk / y kl … min ar … xr … y rl … xr / y rl … cm am fj f j −cj xm y ml xm / y ml Decizia va fi luată după parcurgerea următorilor paşi: . vector situat pe una din liniile rapoartelor minime de valori egale. vectorul al . a) Metoda lexicografică Presupunem că la iteraţia p ∈ N * .Metode simplex pentru modele liniare raportul ρ min nu este unic determinat. Metoda perturbaţiilor (A. l ∈ J .3. Chanes) şi metoda lexicografică (B. s ∈ I . sunt strict pozitive şi ⎧ xs ⎫ xk x = r . Dantzig şi P. Wolfe) sunt două metode ce nu înlătură degenerarea. ⎬= y rl ⎩ y sl ⎭ y kl ρ k = ρ r = min ⎨ s| y > 0 sl Se pune întrebarea: care din cei doi vectori va fi eliminat. ci creează posibilitatea continuării algoritmului prin înlăturarea arbitrariului în determinarea vectorului ce va fi eliminat din bază. a k sau a r ? T. trebuie să intre în bază.

. . . poate să se revină la baza iteraţiei p. . .. După cel mult n operaţii se poate stabili vectorul care trebuie eliminat...Analiza economico-matematică a unor modele liniare Pasul 1 Se împart elementele liniei k. această metodă prezintă dezavantajul că. p ∈ N * . după un anumit număr de iteraţii.. Se împart elementele liniei r la eventualul element pivot y rl ... rl −1 . Va fi eliminat din bază vectorul situat în linia pivotului... În foarte puţine cazuri... Pivotul iteraţiei va fi numitorul raportului minim. Observaţie: În cazul programării pe calculator. şi se aşează sub celelalte rapoarte în ordinea dată de coloanele tabelului simplex: xk y k1 y k 2 y y y .. începând cu xk . Operaţia 2: k := k + 1 ⇒ Operaţia 1.... y kl y kl y kl y kl y kl y kl y y y x r y r1 y r 2 . . se va elimina din bază vectorul cu cel mai mic indice. rn . la eventualul element pivot y kl . kl −1 .. STOP. kl . rl .. y rl y rl y rl y rl y rl y rl Pasul 2 Operaţia 1 Se compară rapoartele din a doua coloană: y k 1 y r1 = ? y kl y rl DA NU Se trece la Operaţia 2. kn ..

3 3 3 3 3 3 10 15 = 2 3 1 2 ⇒ se elimină vectorul a 4 . Pasul 1 10 15 = . . Aşadar. . Dar. T Completând primul tabel. j = 1. 2 2 2 2 2 2 15 2 3 1 0 1 . . ne este sugerată ⎣2 3 1 0 1⎦ soluţia de a1 a 2 a3 a 4 a5 start pentru algoritmul simplex-primal. X SAB = (0 0 0 10 15) .3.2 ⎨ 1 ⎩2 x1 + 3 x 2 + x3 + x5 = 15 x j ≥ 0 . .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 . . . cj cB 2 3 B 3 2 4 2 3 XB 10 15 65 a1 1 2 8 5 a2 2 3 13 11 a3 1 1 5 1 a4 1 0 2 Ø a5 0 1 3 Ø ρ 10/2 15/3 a4 a5 fj f j −cj [min ] f ≤ 0 ∀j = 1. se va observa în formula criteriului de eliminare din bază că minimul nu este unic. . Într-adevăr. .5 ⎡1 2 1 1 0 ⎤ După scrierea matricii A = ⎢ ⎥ . II. care vector va fi eliminat? 2 3 Pasul 2 O1: 10 1 2 1 1 0 . O2: < 2 3 Pivotul iteraţiei este 2.5 ? NU Se observă că: max ( f j − c j ) = 11 = f 2 − c2 ⇒ a 2 va intra în noua f j − c j >0 bază. . rangA=2<5.

de forma: [max] f = ∑ c j x j j =1 n II. unde b(ε ) = b + ∑ ε j a j .4 ∑ (x m s =1 s + ε s as + ) j = m +1 ∑ε n j a j = b(ε ) . j = 1.3.Analiza economico-matematică a unor modele liniare cj c B 3 2 4 2 3 B X 5 0 B a1 1/2 1/2 2 -1 a2 1 0 2 Ø a3 1/2 -1 -1 -5 a4 1/2 -3 -5 -7 a5 0 1 2 Ø 2 3 a4 a5 fj f j −cj 10 ≤ 0 ∀j = 1. b) Metoda perturbaţiilor Vom exemplifica această metodă pe modelul precedent. la o problemă perturbată.3.3 ∑ a j x j + ∑ε ja j = b + ∑ε ja j j =1 j =1 j =1 n n n x j ≥ 0. Pasul 1 Fie ε ∈ (0. j =1 n .5 ⇒ STOP Soluţia optimă este degenerată.3. Se va trece de la II.3 se mai pot scrie: II. n Dacă soluţia admisibilă de bază corespunde bazei formată din primii m vectori. Variabila bazică x5 are valoarea zero.1) arbitrar de mic.3.2. atunci restricţiile din II.

5 + +ε 2 + + ⎟ ⎜ 2 2 2 3 3 3⎟ ⎝ ⎠ Pentru ε suficient de mic.3. 5 + a 4 va fi eliminat. ⎟ ⎟ ⎠ În particular: ρ = min⎜ ⎜ ⎛ 10 + ε 4 + ε + 2ε 2 + ε 3 15 + ε 5 + 2ε + 3ε 2 + ε 3 ⎞ ⎟= . 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 ⎜ ⎜ ⎝ ⎞ ⎟ ⎟ ⎟. .Metode simplex pentru modele liniare În particular.2 avem scrierea ⎛10 ⎞ ⎛1⎞ ⎛ 2⎞ ⎛ 1⎞ ⎛1⎞ ⎛ 0 ⎞ ⎛ 10 + ε + 2ε 2 + ε 3 + ε 4 ⎞ b(ε ) = ⎜ ⎟ + ε 1 ⎜ ⎟ + ε 2 ⎜ ⎟ + ε 3 ⎜ ⎟ + ε 4 ⎜ ⎟ + ε 5 ⎜ ⎟ = ⎜ ⎜15 ⎟ ⎜ 2⎟ ⎜ 3⎟ ⎜ 1⎟ ⎜0⎟ ⎜ 1 ⎟ ⎜15 + 2ε + 3ε 2 + ε 3 + ε 5 ⎟ ⎟ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠ b a1 a2 a3 a4 a5 Pasul 2 Prin modificarea de la pasul 1 s-a obţinut o problemă nedegenerată. pentru II. Presupunem că al este vectorul ce va face parte din noua bază (se acceptă ipotezele expuse la metoda lexicografică). ε 2 +ε 2 + ε3 2 + ε4 2 < 5+ ε3 ε5 2ε +ε2 + + ⇒ 3 3 3 Observaţia 1: Metodele au fost date în cazul în care raportul minim este realizat pentru doi indici s ∈ I . dar se pot aplica şi în situaţia în care se pot elimina mai mult de doi vectori din bază. ⎟ 2 3 ⎝ ⎠ ⎛ ε 2ε ε3 ε4 ε3 ε5 ⎞ = min⎜ 5 + + ε 2 + + .

Notăm cu x1 cantitatea de nafta. Preţurile unitare ale sortimentelor sunt de 30$ barilul de nafta. 40$ barilul de benzină de 88 şi 50$ barilul de benzină de 92. . Să determinăm ce cantităţi se amestecă astfel încât valoarea amestecului rezultat să fie maximă. Cantitatea de benzină de 92 trebuie să reprezinte cel puţin 50% din întregul amestec. de aceea. dacă amestecăm benzina de 92 cu benzina de 88 şi cu nafta o facem pentru a obţine benzină de 92.8 . iar nafta trebuie să fie cuprinsă între 25% şi 30% din întregul amestec. Acest amestec este de multe ori condiţionat de cantităţile de care dispunem din fiecare produs. ∀j = 1. Restricţiile privind disponibilul sunt: x1 ≤ 100 x 2 ≤ 90 − 3 x1 + x 2 + x3 ≤ 0 . cu x 2 cantitatea de benzină de 92 şi cu x3 cantitatea de benzină de 88. aşa cum se va vedea şi din exemplul următor: Se doreşte realizarea unui amestec din trei tipuri de benzină.Analiza economico-matematică a unor modele liniare Observaţia 2: Se poate trece de la o SAB degenerată la o SAB cu valorile variabilelor bazice strict pozitive (nedegenerată). Se înţelege că avem analizele de laborator ale tuturor produselor şi cunoaştem caracteristicile chimice ale produselor pe care le amestecăm. 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.

Metode simplex pentru modele liniare

Calculele implicate de aplicarea algoritmului simplex primal sunt prezentate în tabelul următor: cj cB
0 0 0 0 0 B 4 5 3 0 0 0 0 0

XB
100 90 0 0 0 0

a1
1 0 -3 7 1 0 -4

a2
0 1 1 -3 -1 0 -5 0 0 1 0 0 5 Ø 0 0 1 0 0 50 Ø 0 0

a3
0 0 1 -3 1 0 -3 0 -1 1 0 2 5 2 1/3 -1/3 0 -2/3 4/3 -4/3 -13/3 0 0

a4
1 0 0 0 0 0 Ø 1 0 0 0 0 0 Ø 1 0 0 0 0 0 Ø 1 0

a5
0 1 0 0 0 0 Ø 0 1 0 0 0 0 Ø -1/3 1/3 1 2/3 2/3 19/3 19/3 -1/2 1/2

a6
0 0 1 0 0 0 Ø 0 -1 1 3 1 5 5 1/3 -1/3 0 7/3 1/3 -4/3 -4/3 1/4 -1/4

a7
0 0 0 1 0 0 Ø 0 0 0 1 0 0 Ø 0 0 0 1 0 0 Ø 0 0

a8
0 0 0 0 -1 0 Ø 0 0 0 0 1 0 Ø 0 0 0 0 1 0 Ø -1/4 1/4

ρ
90 0 -

a4 a5

a6 a7 a8 fj f j −cj

0 0 5 0 0

a4 a5 a2 a7

100 90 0 0 0 0

1 3 -3 -2 -2 -15 -19

100 30 -

a8 fj fj −c

0 4 5 0 0

a4 a1 a2 a7

70 30 90 60 60 570

0 1 0 0 0 40 Ø

210 45

a8 fj f j −cj

0 4

a4 a1

55 45

0 1

220 -

Analiza economico-matematică a unor modele liniare

5 0 3

a2 a7

90 90 45 765

0 0 0 4 Ø

1 0 0 5 Ø

0 0 1 3 Ø

0 0 0 0 Ø

1 1 1/2 17/2 17/2

0 5/2 1/4 -1/4 -1/4

0 1 0 0 Ø 0

0 1/2 3/4 13/4 13/4

36 180

a3 fj f j −cj

cj cB
0 4 5 0 3 B

4

5

3

0

0

0

0

XB
46 54 90 36 36 774

a1
0 1 0 0 0 4 Ø

a2
0 0 1 0 0 5 Ø

a3
0 0 0 0 1 3 Ø

a4
1 0 0 0 0 0 Ø

a5
-3/5 3/5 1 2/5 2/5 43/5 43/5

a6
0 0 0 1 0 0 Ø

a7

a8

a4 a1 a2 a6

-1/10 -3/10 1/10 3/10 0 2/5 0 1/5

a3 fj f j −cj

-1/10 7/10 1/10 33/10 1/10 33/10

După câteva iteraţii, obţinem soluţia 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 obţine 180 de barili cu valoarea totală de 774 ⋅ 10 dolari. Preţul unui baril de amestec va fi de 42$. Benzina nafta va reprezenta 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ă, deşi la iteraţia 2 soluţia admisibilă de bază este degenerată, la următoarea iteraţie soluţia admisibilă devine nedegenerată.

c) Ciclare Dacă valoarea funcţiei scop nu se modifică pe parcursul câtorva iteraţii succesive, este posibil să apară fenomenul de ciclare, adică să se revină la una dintre soluţiile admisibile de bază prin care s-a trecut deja.

Metode simplex pentru modele liniare

Degenerarea este o condiţie necesară, dar nu şi suficientă, de ciclare. Deşi foarte multe procese economice sunt modelate prin programe liniare cu soluţii admisibile de bază degenerate, la nici una până acum nu a apărut fenomenul de ciclare. E. Beale [] a găsit şi a publicat un astfel de model.
[min] f = − 3 1 x 4 + 20 x 5 − x 6 + 6 x 7 4 2

1 ⎧ ⎪ 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 Prezentăm în continuare rezultatele – sub formă de tabel – a şapte iteraţii. Se va observa că primul tabel coincide cu ultimul.

cj

0

0

0

-3/4

20

-1/2

6

cB
0 0 0

B

XB
0 0 1 0

a1
1 0 0 0 Ø

a2
0 1 0 0 Ø

a3
0 0 1 0 Ø

a4
1/4 1/2 0 0 3/4

a5
-8 -12 0 0 -20

a6
-1 -1/2 1 0 1/2

a7
9 3 0 0 -6

ρ
0 0 -

a1 a2 a3

fj
f j −cj

Analiza economico-matematică a unor modele liniare cj 0 0 0 -3/4 20 -1/2 6 c B B XB 0 0 1 0 a1 4 -2 0 -3 -3 a2 0 1 0 0 Ø a3 0 0 1 0 Ø a4 1 0 0 -3/4 Ø a5 -32 4 0 24 4 a6 -4 3/2 1 3 7/2 a7 36 -15 0 -27 -33 ρ 0 - -3/4 0 0 a4 a2 a3 fj f j −cj cj 0 0 0 -3/4 20 -1/2 6 c B B X 0 0 1 0 B a1 -12 -1/2 0 -1 -1 a2 8 1/4 0 -1 -1 a3 0 0 1 0 Ø a4 1 0 0 -3/4 Ø a5 0 1 0 20 Ø a6 8 3/8 1 3/2 2 a7 -84 15/4 0 -12 -18 ρ 0 0 1 -3/4 20 0 a4 a5 a3 fj f j −cj cj 0 0 0 -3/4 20 -1/2 6 c B B XB 0 0 1 0 a1 -3/2 1/16 3/2 2 2 a2 1 -1/8 -1 -3 -3 a3 0 0 1 0 Ø a4 1/8 -3/64 -1/8 -1 -1/4 a5 0 1 0 20 Ø a6 1 0 0 -1/2 Ø a7 -21/2 3/16 ρ 0 -1/2 20 0 a6 a5 a3 fj f j −cj 21/2 2/21 9 3 .

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ă decât cele alese anterior putem ajunge la . deşi criteriul de intrare în bază ne-a dat posibilitatea de a alege între două variabile.Metode simplex pentru modele liniare cj 0 0 0 -3/4 20 -1/2 6 c B B XB 0 0 1 0 a1 2 1/3 -2 1 1 a2 -6 -2/3 6 -1 -1 a3 0 0 1 0 Ø a4 -5/2 -1/4 5/2 -1/4 1/2 a5 56 16/3 -56 4 -16 a6 1 0 0 -1/2 Ø a7 0 1 0 6 Ø ρ 0 0 - -1/2 6 0 a6 a7 a3 fj f j −cj cj 0 0 0 -3/4 20 -1/2 6 c B B X 0 0 1 0 B a1 1 0 0 0 Ø a2 -3 1/3 0 2 2 a3 0 0 1 0 Ø a4 -5/4 1/6 0 1 7/4 a5 28 -4 0 -24 -44 a6 1/2 -1/6 1 -1 -1/2 a7 0 1 0 6 Ø ρ 0 1 0 6 0 a1 a7 a3 fj f j −cj cj 0 0 0 -3/4 20 -1/2 6 cB 0 0 0 B XB 0 0 1 0 a1 1 0 0 0 Ø a2 0 1 0 0 Ø a3 0 0 1 0 Ø a4 1/4 1/2 0 0 3/4 a5 -8 -12 0 0 -20 a6 -1 -1/2 1 0 1/2 a7 9 3 0 0 -6 ρ 4 0 - a1 a2 a3 fj f j −cj În tabelele precedente.

evitând în acest fel ciclarea. aşa cum se vede din următoarele două iteraţii: cj cB 0 -3/4 0 B 0 0 0 -3/4 20 -1/2 6 XB 0 0 1 0 a1 1 0 0 0 Ø a2 -1/2 2 0 -3/2 -3/2 0 a3 0 0 1 0 Ø 0 a4 0 1 0 -3/4 Ø -3/4 a5 -2 -24 0 18 -2 20 a6 -3/4 -1 1 3/4 5/4 -1/2 a7 15/2 6 0 -9/2 -21/2 6 ρ 1 a1 a4 a3 fj f j −cj cj 0 c B B X 1 1 B a1 1 0 0 0 Ø a2 -1/2 2 0 -3/2 -3/2 a3 3/4 1 1 -5/4 -5/4 a4 0 1 0 -3/4 Ø a5 -2 -24 0 18 -2 a6 0 0 1 -1/2 Ø a7 15/2 6 0 -9/2 -21/2 T 0 -3/4 -1/2 a1 a4 a6 3/4 fj f j −cj -5/4 Astfel. 4. Ideea de bază este de a reţine datele iniţiale.Analiza economico-matematică a unor modele liniare soluţia optimă. soluţia optimă este dată de X = (3 / 4 0 0 1 0 1 0 ) . Deşi în problemele practice nu s-a observat fenomenul de ciclare. folosind matricea sistemului de restricţii se va construi . teoretic există posibilitatea de a apărea şi. este bine să cunoaştem o cale de a-l evita. Algoritmul simplex revizuit Acest algoritm este o formă “revizuită” a algoritmului simplex primal. ca urmare. valoarea minimă a funcţiei obiectiv fiind f ( X ) = −5 / 4 . care se recomandă a fi folosită atunci când rezolvarea modelului matematic se face cu ajutorul calculatorului. apoi.

4.n (R ) . X ∈ R n . ⎩ AX = b X ≥ 0. se vor calcula c B B −1 . X B = B −1b şi f j − c j .1: min f 1 ( x) = x 0 ⎧ x − cX = 0 II. rangA = m ≤ n b ∈ R m . unde a k k ⎜b⎟ ⎜ a ⎟ ⎝ ⎠ ⎝ k ⎠ este coloana k din matricea A. . Vectorul termenilor liberi ⎛− c ⎞ ⎛0⎞ pentru problema completată este b1 = ⎜ ⎟ . se construieşte “completata” problemei II. unde A∈ M m. în funcţie de care se ia decizia de a opri algoritmul sau de a-l continua trecând la o soluţie admisibilă de bază mai bună. R ⎟ ⎠ unde A = (B R ) .1 {AX = b X ≥0 . Notăm a 1 = ⎜ k ⎟ . Se observă că rangA1 = m + 1 .4. matricea sistemului de restricţii va fi: A1 = ⎜ ⎜0 B ⎝ − cR ⎞ ⎟. x 0 ∈ R ⎛ 1 − cB Aici. Pentru aplicarea algoritmului simplex revizuit.2 ⎨ 0 .4.Metode simplex pentru modele liniare o matrice inversă. c. Considerăm problema de programare liniară la forma standard min f ( x) = cX II.

Este uşor de B1 = ⎜ ⎜0 B ⎟ ⎠ ⎝ ⎛1 u B ⎞ B B −1 ⎟ verificat că B1−1 = ⎜ ⎜ 0 B −1 ⎟ .4.4.1.II.2. ⎝ ⎠ Tabelul simplex revizuit va avea următoarea formă: Variabilele de bază B1−1 1 B1−1b1 f B B1−1 a 1 * k f kB − c k x0 u B = c B B −1 0 XB B −1 XB y kB = B −1 a k * Ultima coloană va apărea în momentul când se trece la îmbunătăţirea soluţiei curente.1: .Analiza economico-matematică a unor modele liniare Dacă B B este bază primal admisibilă pentru II. Etapele algoritmului simplex revizuit sunt prezentate în schema logică S. atunci ⎛1 − c ⎞ ⎟ este bază primal admisibilă pentru II.4. unde u = c B .

B1 . B1−1 a 1j 1 Schema logică S.II. c ∈ R n Se determină o bază primal admisibilă pentru problema II. ⎝ ⎠ Alegem k astfel încât f j −c j >0 max ( f jB − c j ) = f kB − c k > 0 . şi se formează noua bază primal admisibilă. B y ik y rk ~ Se înlocuieşte coloana a cu coloana a .AX = b . NU Se alege r după regula: min B i| yik xiB x rB = B .1 şi se calculează apoi B1 .4. u B . Se calculează B1−1b1 . B1−1 a 1j .4. b ∈ R m . [max] f (x ) = cX Datele iniţiale: rangAm×n = m ≤ n . Problema admite soluţie optimă finită f B j − c j ≤ 0 DA ∀j = 1. B1−1b1 . k ⎠ ⎝ k −c ⎞ y kB ≤ 0 ? DA STOP Problema are optim ( − ∞ ). B ⎛ f B k ⎟ Se completează ultima coloană din tabel cu vectorul B1−1 a 1 = ⎜ B k k ⎜ y = B −1 a ⎟ . u B . n NU ⎛ B −1b ⎞ ⎟ f 0 = [min] f . X B = ⎜ ⎜ 0 ⎟. X ≥ 0 .1 STOP. r k ~ ~ ~ .

∀i = 1. Dacă f jB − c j ≤ 0 . se trece la Pasul 2. u B = c B B −1 . Dacă nu. se trece la Pasul 3. B1 . ∀j ∈ R . B f j −c j >0 Se calculează y kB = B −1 a k . Pas 2 Alegem k astfel încât max ( f jB − c j ) = f kB − c k > 0 . n}− B = R ⇒ soluţie optimă.. xiB x rB = B . Să rezolvăm cu algoritmul simplex revizuit următoarea 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 . 1 Dacă nu.Analiza economico-matematică a unor modele liniare Pas 0 Se determină B bază primal admisibilă şi se calculează: B −1 . Dacă y kB ≤ 0 . . şi se formează noua bază primal admisibilă. ∀j ∈ { . Pas 1 Se calculează f jB − c j = u B a j − c j .2 . Se înlocuieşte coloana a r cu i| yik y B y rk ik ~ coloana a k . f B . Se revine la Pas 3 Alegem r după regula: min B Pasul 1.. problema are optim nemărginit ( − ∞ ). X B ..

5 ⎛1 2 1 0 ⎜ ⎜ 0 1 −1 1 Aşadar. 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⎞ ⎟ . Scriem “completata” problemei de mai sus: ) [min]g = x 0 ⎧ x 0 − (−2 x1 − x 2 ) = 0 ⎪x − x + x = 4 ⎪ 1 2 3 . ∀i = 1. aducem. R ⎟ ⎠ Completăm tabelul simplex revizuit. b1 = ⎜ ⎟ = ⎜ ⎟ .5 B = I3 = a3 ( a4 a 5 .Metode simplex pentru modele liniare În primul rând. ⎜ − 1 2 0 0 1⎟ ⎪− x + 2 x + x = 6 2 5 ⎝ ⎠ ⎩ 1 x i ≥ 0 . 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 . ∀i = 1. Variabilele de bază B1−1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 B1−1b1 0 4 18 6 x0 x3 x4 x5 . evident fără ultima coloană: u B = c B B −1 = (0 0 0 ) ⋅ I 3 = (0 0 0 ) . ⎜ 8 ⎟ ⎜b⎟ ⎟ B ⎠ ⎜ ⎟ ⎝ ⎠ ⎜16 ⎟ ⎝ ⎠ B ⎛1 − c B Observaţie: După reordonare putem obţine chiar A1 = ⎜ ⎜0 B ⎝ − cR ⎞ ⎟. Matricea restricţiilor este A = ⎜ 3 − 1 0 1 0 ⎟ . ⎨ ⎪3 x1 − x 2 + x 4 = 18 ⎪− x1 + 2 x 2 + x5 = 6 ⎩ x i ≥ 0 .

pentru j = 1 avem: ⎛2⎞ ⎜ ⎟ ⎛1⎞ ⎜ ⎟ − c1 ⎞ ⎜1⎟ B ⎛ −1 − c1 = 1 u ⎜ ⎜ a ⎟ = (1 0 0 0)⎜ 3 ⎟ = 2 > 0 . ⎬ = . desigur. ⎟ ⎝ 2 ⎠ ⎜ 2⎟ ⎜ ⎟ ⎝ ⎠ ⎜ 2⎟ ⎝ ⎠ f 2B ( ) Soluţia curentă nu este optimă şi nici cazul optim nemărginit nu este îndeplinit. după aceleaşi reguli care se aplică tabelului simplex obişnuit. Completăm tabelul de mai sus cu ultima coloană: Variabilele de bază B1−1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 B1−1b1 0 4 18 6 B1−1 a11 2 1 3 -1 x0 x3 x4 x5 ⎧ 4 18 ⎫ 4 Deoarece min ⎨ . f 1B − c1 = 2 > 1 = f 2B − c 2 . ⎟ ⎝ 1 ⎠ ⎜ − 1⎟ ⎜ ⎟ ⎝ ⎠ ⎜ − 1⎟ ⎝ ⎠ f 1B ( ) iar pentru j = 2 . Pivotul ⎩1 3 ⎭ 1 este. B a1 = ⎜ 3 ⎟ . . ⎝ j ⎠ R = {1. Aşadar.2} . variabila x 3 va ieşi din bază. În cazul nostru. calculăm f jB − c j = (1 u B )⎜ ⎜ a ⎟ . Deoarece. valoarea aflată în căsuţa colorată. Tabelul simplex revizuit următor se obţine din cel precedent. variabila x1 va intra în noua bază. adică 1. ⎛1⎞ ⎜ ⎟ ⎛ − 1⎞ ⎜ ⎟ − c2 ⎞ ⎜ − 1⎟ B ⎛ −1 − c2 = 1 u ⎜ ⎜ a ⎟ = (1 0 0 0 )⎜ − 1⎟ = 1 > 0 . Trecem la schimbarea bazei.Analiza economico-matematică a unor modele liniare ⎛− c j ⎞ ⎟ Pentru ∀j ∈ R . B a 2 = ⎜ − 1⎟ .

Cum min ⎨ . ⎬ = . ⎛ 0⎞ ⎜ ⎟ ~ − c3 ⎞ ⎜1⎟ B ⎛ − c3 = 1 u ⎜ ⎜ a ⎟ = (1 − 2 0 0 )⎜ 0 ⎟ = −2 < 0 . rezultă că variabila x 4 iese din bază. . ⎟ ⎝ 3 ⎠ ⎜ ⎟ ⎜ 0⎟ ⎝ ⎠ f 3B ~ ( ) Singura variabilă care poate intra în bază este x 2 . ⎛ 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). cu noua bază avem: Variabilele de bază 0 ~ B1−1 1 -2 0 0 0 0 1 ~ B1−1b1 -8 4 6 10 ~ B1−1 a12 * 3 -1 2 1 x 0 1 0 x1 0 -3 1 x4 0 1 0 x5 * Ultima coloană se va completa ulterior. ⎩2 1 ⎭ 2 Pivotul este 2.Metode simplex pentru modele liniare Astfel. f 2B ~ ⎛1⎞ ⎜ ⎟ ~ − c2 ⎞ ⎜ − 1⎟ B ⎛ − c2 = 1 u ⎜ ⎜ a ⎟ = (1 − 2 0 0 )⎜ − 1⎟ = 3 > 0 (soluţia curentă ⎟ ⎝ 2 ⎠ ⎜ ⎟ ⎜2⎟ ⎝ ⎠ ( ) nu este optimă). Completăm ultima ⎧ 6 10 ⎫ 6 coloană.

unde baza este acum notată B1 : Variabilele de bază ~ ~ B1−1 0 0 0 1 ~ ~ B1−1b1 -17 7 3 7 ~ ~ B1−1 a13 ** 5/2 -1/2 -3/2 5/2 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. ⎛0⎞ ⎜ ⎟ ~ ~ ⎜0⎟ B f 4 − c4 = (1 5 / 2 − 3 / 2 0)⎜ ⎟ = −3 / 2 < 0 . f 3B ~ ~ ⎛ 0⎞ ⎜ ⎟ ⎜1⎟ − c 3 = (1 5 / 2 − 3 / 2 0)⎜ ⎟ = 5 / 2 > 0 (soluţia curentă nu este 0 ⎜ ⎟ ⎜ 0⎟ ⎝ ⎠ optimă).Analiza economico-matematică a unor modele liniare ~ ~ Următorul tabel simplex revizuit. Se observă imediat că singura variabilă care poate ieşi din bază este ˆ x5 . La această iteraţie baza curentă este notată prin B1 . Pivotul este 5/2. . 1 ⎜ ⎟ ⎜0⎟ ⎝ ⎠ Variabilă care intră în bază este x 3 . Completăm ultima coloană. ⎛ − 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).

relativ la problema primală şi la duala sa. Din exemplificarea aplicării algoritmului simplex revizuit. 5. rezultă că soluţia curentă. unică şi nedegenerată. prin reducerea volumului de infomaţii stocate. Algoritmul simplex dual Când s-a aplicat algoritmul simplex primal s-a apelat – pe tot parcursul algoritmului – la soluţii admisibile de bază (SAB) şi regulile sale au fost stabilite impunându-se condiţia de nenegativitate a variabilelor din model.Metode simplex pentru modele liniare Variabilele de bază ˆ B1−1 1 0 0 0 0 0 0 1 -1 2/5 1/5 -1/5 -1 1/5 3/5 2/5 ˆ B1−1b1 -24 42/5 36/5 14/5 x0 x1 x2 x3 Cum f 4B ˆ ⎛0⎞ ⎜ ⎟ ⎜0⎟ − c 4 = (1 0 − 1 − 1)⎜ ⎟ = −1 < 0 şi 1 ⎜ ⎟ ⎜0⎟ ⎝ ⎠ f 5B ˆ ⎛ 0⎞ ⎜ ⎟ ⎜ 0⎟ − c5 = (1 0 − 1 − 1)⎜ ⎟ = −1 < 0 . . 0 ⎜ ⎟ ⎜1⎟ ⎝ ⎠ T x = (42 / 5 36 / 5 14 / 5 0 0) este optimă. • Datele reţinute la o iteraţie sunt suficiente pentru a obţine toate informaţiile dorite. rezultă următoarele: • Memoria calculatorului este eficient folosită.

până când este atinsă valoarea optimă. pornind de la o soluţie de bază care nu respectă . Conceptul de bază cu care se operează este cel de soluţie dual realizabilă (SDR).condiţia de nenegativitate. ar rezulta că soluţia este optimă. Acest algoritm poate fi privit ca dualul algoritmului simplex-primal. dacă toate variabilele ar avea valori pozitive. când restricţiile sunt cu precădere de forma “ ≥ ”.total sau parţial .Analiza economico-matematică a unor modele liniare Cu ajutorul teoriei dualităţii se poate formula un nou algoritm de rezolvare a problemelor de programare liniară. stabilirea unei soluţii dual-admisibile este greu de realizat. cum este verificat criteriul de optimalitate. şi anume. valorile funcţiei scop descresc când aceasta se cere maximizată şi cresc când se cere minimizată. . sau când aceasta se obţine prin modificarea unor caracteristici numerice din model. În general. deoarece. Definiţie: Se numeşte soluţie dual realizabilă a unei probleme de programare liniară o soluţie de bază care are cel puţin o componentă strict negativă şi care verifică criteriul de optimalitate al modelului liniar. Algoritmul simplex-dual este o procedură de explorare orientată a soluţiilor dual-admisibile până la obţinerea soluţiei optime sau până la evidenţierea faptului că problema nu admite soluţii. motiv pentru care acest algoritm se aplică atunci când o soluţie dual realizabilă se poate stabili cu un volum mic de calcule. Aplicarea sa presupune cunoaşterea unei soluţii dual-realizabile (sau dual-admisibile) dar nu şi admisibile. Pentru algoritmul simplex dual. algoritmul simplex dual. deoarece reflectă aplicarea acestuia la problema duală. dacă programul liniar admite soluţie optimă finită.

∀j = 1. 1 X B1 ≥ 0 şi ∃f k − c k < 0 . ∀j = 1. Există cel puţin o variabilă bazică cu valoare strict negativă şi f j − c j ≥ 0 . B1 ≥ 0 şi f j − c j ≥ 0 . n ∃x k < 0 a. se va continua cu algoritmul simplex-primal. ● Se formează B1 Se calculează elementele noului tabel. X 2. ⎫ ⎪ ⎬ (C. n ⇒ . s| x s < 0 STOP Problema este fără soluţii.î. după regulile aplicate în cazul algoritmului simplex primal. ⎪ ⎭ ⎧ f j −cj f k − ck ⎪ = min ⎨ j | ylj < 0 y lk ⎪ y lj ⎩ ● Înlocuieşte vectorul a l cu a k .B).Metode simplex pentru modele liniare [max] f Schema de desfăşurare a algoritmului simplex-dual. după efectuarea calculelor se ajunge la una din situaţiile: 1. ● Elimină din bază vectorul ● Alege al . 3.I.. X B = B −1b = (x1 ..x m ) ≥ 0 T f j − c j = c B B −1 a j − c j ≥ 0 .î DA y kj ≥ 0 .. n NU ● Alege xl = min{x s } (C.. Problema admite soluţie optimă finită.B). ∀j = 1.E. Dacă nu apare fenomenul de ciclare.. ∀j = 1. k ∈ { . când se cere este următoarea: ● Modelul matematic se aduce la forma standard ● Se stabileşte o SDR: ∃B ∈ M n (R ) a. n ⇒ STOP.. n} ⇒ s-a generat o SAB. având ca pivot elementul y lk < 0 .

f k − ck > 0 [min]) funcţia şi [min]) şi X ≥ 0 ⇒ programul liniar are soluţie optimă finită. X R = 0. (pt. s ∈ J B şi y sj ≥ 0 . [min] f j −cj ≤ 0 . [max]). [max] f j −cj ≥ 0 .B. [min] şi f k − ck > 0 . s ∈ J B . (pt. respectiv dacă B Pt. SDR. [max]). cu ak nebazic. [max] f k − c k < 0 . y sk ≤ 0 . deoarece s-a generat o Algoritmul continuă cu simplex primal.E. respectiv atunci se continuă pentru cel puţin o valoare s ∈ J .Analiza economico-matematică a unor modele liniare Observaţie: Cele două criterii de eliminare şi respectiv de intrare în bază. respectiv ∃xs < 0 . sub această formă. sunt invariante la tipul de optim. respectiv f j − c j ≤ 0 ∀j ∃a k f k − ck < 0 y sk ≤ 0 .B. X R = 0 ∃x s < 0 . Pivot Criterii pentru schimbarea bazei ylk > 0 a) b) C. [min]) f j − c j ≥ 0 ∀j (pt. variabilă X SDR : X B = B −1 ⋅ b . ∀s (pt. se vor sumariza principalele lor elemente după cum urmează: Algoritmul simplex primal Soluţie de start.B. ∀j . Se pt. Pentru o mai bună înţelegere a modalităţilor de operare a celor doi algoritmi duali. a) Dacă soluţie care respectiv [min]) ⇒ programul optimă finită. pentru cel puţin o valoare continuă cu simplex primal. program cu nemărginită. obiectiv Dacă pt. ∀s ∈ J B .E.I. ∀x s Obs: bazică a) Dacă şi (pt. Se cu simplex dual. .B C. f s − c s = 0 . se continuă Pt. şi ∃xs < 0 . deoarece s-a generat o SAB. b) Dacă [max]). B bază curentă Algoritmul simplex dual X SAB : X B = B −1 ⋅ b ≥ 0 . [max]: ∃f k − ck < 0 şi y sk > 0 pt. [max]) sau (pt. ∀s (pt. ylk < 0 a) b) C. atunci se ∃xs ≥ 0 . s∈J B . ⇒ ∀j ⇒ programul liniar nu are soluţie.î. STOP b) Dacă f j − c j ≤ 0 ∀j are pentru nebazic şi f j − c j ≥ 0 ∀j B (pt. [min]: ∃f k − c k > 0 şi y sk > 0 Dacă pt. continuă cu simplex primal.I. C. s ∈ J f j − c j ≥ 0 ∀j f j − c j ≤ 0 ∀j B a.

vom da câteva exemple numerice.6 ⎛ 4 −1 −1 1 0 0⎞ ⎜ ⎟ După scrierea matricii A = ⎜ − 2 1 − 1 0 1 0 ⎟ . j = 1. T .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 . Soluţie: ● Se schimbă sensul primelor două restricţii: [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. Exemplul 1 Să se găsească soluţia 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.Metode simplex pentru modele liniare Pentru a înţelege mai bine modul de aplicare a algoritmului simplexdual. care nu respectă condiţia de nenegativitate. ⎪ − x + x − 2x + x = 3 1 2 3 6 ⎩ xi ≥ 0. rangA=3<6.3 . precum şi diferenţele faţă de aplicarea algoritmului simplex-primal. ∀i ∈ 1. ⎜ −1 1 − 2 0 0 1⎟ ⎝ ⎠ se constată că bazei (a 4 a5 a 6 ) îi corespunde o soluţie bazică X = (0 0 0 − 2 − 6 3) .

⇒ a1 va fi al doilea ● Se efectuează calculele implicate de scrierea vectorilor b şi a j .I.−6} = −6 ⇒ a5 părăseşte baza. Conform schemei de rezolvare vor fi efectuate următoarele operaţii: ● Se verifică dacă în liniile valorilor strict negative ale variabilelor bazice există şi componente strict negative. Răspunsul fiind afirmativ. deoarece verifică criteriul de optimalitate.6 . .Criteriul de eliminare din bază (C.B): ⎧ f −c f − c3 ⎫ ⎧−6 −6⎫ −6 min ⎨ 1 1 .6 ? DA a4 a5 a6 fj f j −cj Soluţia bazică construită este dual realizabilă. ⎬ = min ⎨ ⎬= y 23 ⎭ ⎩ − 2 −1 ⎭ − 2 ⎩ y 21 vector al noii baze şi (-2) pivotul.6 în noua bază (a 4 a1 a 6 ) şi a diferenţelor f j − c j . 3 . Criteriul de intrare în bază (C. j = 1.Analiza economico-matematică a unor modele liniare Pentru a stabili dacă satisface criteriul de optimalitate. trebuie construit primul tabel de tip simplex: cj → cB 0 0 0 B 6 5 6 0 0 0 XB -2 -6 3 0 a1 4 -2 -1 0 -6 a2 -1 1 1 0 5 a3 -1 -1 -2 0 -6 a4 1 0 0 0 Ø a5 0 1 0 0 Ø a6 0 0 1 0 Ø ≤ 0 ∀j = 1.B): min{− 2. se vor aplica cele două criterii: . j = 1.E.

-3 fiind singura componentă strict negativă din linia vectorului eliminat.6 ? DA .B: a3 va înlocui vectorul a 4 . Se va efectua o nouă pivotare.I. ca urmare se vor aplica criteriile algoritmului simplex-dual: C.Metode simplex pentru modele liniare Calculele sunt prezentate în tabelul de mai jos: cj → 6 5 6 0 0 0 c 0 6 0 B B XB -14 3 6 18 a1 0 1 0 6 Ø a2 1 -1/2 1/2 -3 -8 a3 -3 1/2 -3/2 3 -3 a4 1 0 0 0 Ø a5 2 1/2 -1/2 -3 -3 a6 0 0 1 0 Ø a4 a1 a6 fj f j −cj ≤ 0 ∀j = 1. cj → 6 5 6 0 0 0 cB 6 6 0 B XB 14/3 2/3 13 32 a1 0 1 0 6 Ø a2 -1/3 -1/3 0 -4 -9 a3 1 0 0 6 Ø a4 -1/3 1/6 -1/2 -1 -1 a5 -2/3 -1/6 -3/2 -5 -5 a6 0 0 1 0 Ø a3 a1 a6 fj f j −cj ≤ 0 ∀j = 1.B: -14 unică ⇒ a 4 eliminat.6 ? DA Noua soluţie de bază se menţine dual realizabilă.E. C.

● Mai întâi 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 .6 . Să se scrie duala programului liniar dat. j = 1. ⎠ Observaţie: Spre deosebire de algoritmul simplex primal. ∀j ∈ 1. unde valoarea funcţiei obiectiv scade – în cazul problemelor de minim – de la o iteraţie la alta. deci algoritmul ⎛2 X* = ⎜ ⎝3 0 se 14 3 opreşte. [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.6 . Să se afle soluţia sa optimă X aplicând algoritmul simplex dual. ⎪4 x + x + 2 x + x = 175 2 3 6 ⎩ 1 x j ≥ 0.Analiza economico-matematică a unor modele liniare Din acest ultim tabel rezultă: X B ≥ 0 . ∀j ∈ 1. Soluţie: . de la 0 la 18. Problema T admite soluţia optimă finită ⎞ 0 0 13 ⎟ cu [min] f = 32 . până la valoarea minimă. şi apoi la 32).3 Aflati soluţia optimă. în algoritmul simplex dual valoarea funcţiei obiectiv creşte până la valoarea minimă admisibilă (în cazul studiat. f j − c j ≤ 0 .

∀j = 1.6 .6 ? NU 6 3 0 x3 x1 x6 20 25 35 195 0 1 0 3 Ø 1/7 17/7 -9 58/7 43/7 fj f j −cj ≥ 0 ∀j = 1. Baza optimă este dată T de B = (a3 a1 B a 6 ) . corespunzătoare iteraţiilor parcurse până la aflarea soluţiei optime: cj → cB 0 0 0 B 3 2 6 0 0 0 XB 105 70 175 0 x1 1 2 4 0 -3 x2 3 5 1 0 -2 3/4 17/4 -1/2 9/2 5/2 1 0 0 6 Ø x3 4 1 2 0 -6 1 0 0 6 Ø 2/7 -1/7 0 9/7 9/7 x4 1 0 0 0 Ø 1/4 -1/4 -1/2 3/2 3/2 -1/7 4/7 -2 6/7 6/7 x5 0 1 0 0 Ø 0 1 0 0 Ø 0 0 1 0 Ø x6 0 0 1 0 Ø ≥ 0 ∀j = 1.6 ? DA Se observă că f j − c j ≥ 0 .6 ? NU 0 0 1 0 Ø x4 x5 x6 fj f j −cj 6 0 0 x3 x5 x6 fj f j −cj 105/4 175/4 490/4 315/2 1/4 7/4 7/2 3/2 -3/2 ≥ 0 ∀j = 1. a cărei inversă −1 ⎡ 2 / 7 − 1 / 7 0⎤ = ⎢− 1 / 7 4 / 7 0⎥ ⎢ ⎥ ⎢ 0 − 2 1⎥ ⎣ ⎦ .Metode simplex pentru modele liniare Rezolvarea acestei probleme este complet prezentată prin cele 3 tabele simplex de mai jos. deci programul liniar admite soluţia optimă finită X * = (25 0 20 0 0 35) .

din R 3 .3 [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. ca urmare toate restrictiile dualei vor fi înmulţite 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.Analiza economico-matematică a unor modele liniare poate fi citită în dreptul vectorilor care au format baza iniţială. .6 Din forma standard: u i ≥ 0.6 rezultă că matricea A conţine matricea unitate. ∀j ∈ 1.6 . ∀i ∈ 1. cu semn schimbat. ∀i ∈ 1. ∀i ∈ 1. ● Se construieşte 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.

⎜ x* ⎟ ⎜ 1/ 7 0 − 2 / 7 ⎟ ⎜ − 20 ⎟ ⎠ ⎠ ⎝ ⎝ ⎝ 3⎠ 6 7 0 43 ⎞ 0⎟ .6 -1/4 -3/4 -1/4 -105/4 -105/4 ≤ 0 ∀j = 1. prin algoritmul simplex dual.6 1/7 -1/7 -2/7 -20 -20 ≤ 0 ∀j = 1. este prezentată mai jos: cj → 105 70 175 0 0 0 c B B X B u1 -1 -3 -4 0 -105 u2 -2 -5 -1 0 -70 -7/4 -17/4 1/4 105/4 u3 -4 -1 -2 0 -175 -7/2 -1/2 1/2 105/2 u4 1 0 0 0 Ø 1 0 0 0 Ø -4/7 -17/7 1/7 -25 -25 u5 0 1 0 0 Ø 0 1 0 0 Ø 0 1 0 0 Ø u6 0 0 1 0 Ø ≤ 0 ∀j = 1.Metode simplex pentru modele liniare Rezolvarea problemei. 7 ⎠ . Soluţia optimă a dualei este ⎛9 U* = ⎜ ⎝7 Se verifică uşor că * ⎛ x1 ⎞ ⎛ − 4 / 7 0 1 / 7 ⎞ ⎛ − 25 ⎞ ⎜ *⎟ ⎟ ⎟ ⎜ ⎜ (70 0 15)⎜ − 17 / 7 1 − 1 / 7 ⎟ = ⎜ 0 ⎟ = −⎜ x2 ⎟ .6 0 0 0 u4 u5 -3 -2 -6 0 u6 fj f j −cj 0 0 105 u4 u5 u1 fj -3/2 5/2 3/2 315/2 0 0 1 105 Ø f j −cj 70 0 105 -175/4 -243/4 1 0 0 70 Ø 2 -8 0 140 -210 u2 u5 u1 fj 6/7 43/7 9/7 195 0 0 1 105 Ø f j −cj Se observă imediat că [max] f = [min]g = 195 .

dacă este posibil. SAB sau/şi SDR prin explicitarea sistemului de restricţii în raport cu bazele (a1 . Soluţie: . Admite soluţie optimă finită? Justificaţi răspunsul. c) Ce legătură există între SAB generată la punctul a) şi problema duală? d) Să se rezolve problema dată cu ajutorul algoritmului simplex-dual. ⎩ x1 + 2 x 2 + x3 − x5 = 20 x j ≥ 0. Probleme pentru fixarea cunoştinţelor [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. ⎜ 20 ⎟ ⎝ ⎠ .5 ⎛2 1 0 −1 0 ⎞ • Matricea sistemului de restricţii: A = ⎜ ⎜ 1 2 1 0 − 1⎟ . [min] f = 3 x1 + 5 x 2 + 4 x3 ⎧2 x1 + x 2 − x 4 = 12 a) • Forma standard: ⎨ . b) Să se scrie duala sa. ∀j = 1.Analiza economico-matematică a unor modele liniare 6. ⎟ ⎝ ⎠ ⎛ 12 ⎞ • Vectorul termenilor liberi: b = ⎜ ⎟ . a3 ) . a 2 ) şi (a 2 .3 a) Să se genereze. ∀j = 1.

3 . X = ⎜ x 4 ⎟ .1 cu B −1 ⎛ x3 ⎞ ⎛ 1 0 ⎞ ⎛ x1 ⎞ ⎛ 2 / 3 − 1 / 3 ⎞ ⎛ 0 − 1 0 ⎞ ⎜ ⎟ ⎛ 2 / 3 − 1 / 3 ⎞ ⎛ 12 ⎞ ⎜ ⎜ 0 1 ⎟ ⋅ ⎜ x ⎟ + ⎜ − 1 / 3 2 / 3 ⎟ ⋅ ⎜ 1 0 − 1⎟ ⋅ ⎜ x 4 ⎟ = ⎜ − 1 / 3 2 / 3 ⎟ ⋅ ⎜ 20 ⎟ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎝ ⎠ ⎝ 2⎠ ⎝ ⎠ ⎝ ⎠ ⎜x ⎟ ⎝ ⎠ ⎝ ⎠ ⎝ 5⎠ .6.1 ⎜ ⎜ ⎟ ⎟ ⎜ 1 2 ⎟ ⋅ ⎜ x ⎟ + ⎜ 1 0 − 1⎟ ⋅ ⎜ x 4 ⎟ = ⎜ 20 ⎟ . Sistemul de ⎜x ⎟ ⎝ 2⎠ ⎜x ⎟ ⎝ 5⎠ restricţii scris sub forma canonică relativ la B este ⎛ x3 ⎞ ⎛ 2 1 ⎞ ⎛ x1 ⎞ ⎛ 0 − 1 0 ⎞ ⎜ ⎟ ⎛ 12 ⎞ II.Metode simplex pentru modele liniare Pentru baza determinată de coloanele 1 şi 2 din matricea A . x2 = . şi anume x1 = funcţiei obiectiv va fi 4 28 . rezultă R = (a3 a 4 a5 ) . obţinem: =⎜ 3 1 2 ⎟ ⎜− ⎜ ⎟ ⎝ 3 3 ⎠ Prin înmulţirea relaţiei II. pentru care valoarea 3 3 152 . B = (a1 a 2 ) . ⎟ ⎜ ⎟ ⎜ ⎠ ⎜x ⎟ ⎝ ⎠ ⎝ ⎠ ⎝ 2⎠ ⎝ ⎝ 5⎠ 1⎞ ⎛ 2 − ⎟ ⎜ 3 ⎟ . X B ⎛ x3 ⎞ ⎜ ⎟ ⎛ x1 ⎞ R = ⎜ ⎟ . x3 = x 4 = x5 = 0 . sau ⎛ x3 ⎞ ⎛ x1 ⎞ ⎛ − 1 / 3 2 / 3 1 / 3 ⎞ ⎜ ⎟ ⎛ 4 / 3 ⎞ ⎜ ⎟+⎜ ⎟ ⎜ ⎟ ⎜ x ⎟ ⎜ 2 / 3 1 / 3 − 2 / 3 ⎟ ⋅ ⎜ x 4 ⎟ = ⎜ 28 / 3 ⎟ .6. ⎠ ⎜x ⎟ ⎝ ⎠ ⎝ 2⎠ ⎝ ⎝ 5⎠ ⎛ 4/3 ⎞ Deoarece B −1b = ⎜ ⎜ 28 / 3 ⎟ > 0 se poate construi o soluţie admisibilă ⎟ ⎝ ⎠ de bază.

⎠ ⎜x ⎟ ⎝ ⎠ 1 3 4 5 ⎝ 3⎠ ⎝ ⎩ ⎝ 5⎠ ⎛ 12 ⎞ Se observă că B −1b = ⎜ ⎟ nu are toate componentele pozitive. B = ⎜ ⎜ ⎟ ⎜ 2 1 ⎟ . dar ar fi dual . conduce la următoarea ⎟ ⎝ ⎠ ⎝ ⎠ explicitare a sistemului de restricţii ale problemei: ⎛ x1 ⎞ ⎛ 1 0 ⎞ ⎛ x 2 ⎞ ⎛ 2 − 1 0 ⎞ ⎜ ⎟ ⎛ 12 ⎞ ⎜ ⎜ 2 1 ⎟ ⋅ ⎜ x ⎟ + ⎜ 1 0 − 1⎟ ⋅ ⎜ x 4 ⎟ = ⎜ 20 ⎟ . vectorul X 1 = (0 12 − 4 0 0 ) T nu poate fi SAB. ⎜ − 4⎟ ⎝ ⎠ Dacă se vor anula variabilele nebazice x1 = x 4 = x5 = 0 şi cele bazice vor lua valorile x 2 = 12 .Analiza economico-matematică a unor modele liniare Baza generată de coloanele 2 şi 3 din matricea sistemului de ⎛ 1 0⎞ ⎛1 0⎞ −1 restricţii. În aceste condiţii. cu inversa B = ⎜ − 2 1 ⎟ . x3 = −4 . prin înmulţirea cu B −1 : ⎛ x1 ⎞ ⎛ x 2 ⎞ ⎛ 1 0 ⎞ ⎛ 2 − 1 0 ⎞ ⎜ ⎟ ⎛ 1 0 ⎞ ⎛ 12 ⎞ ⎜ ⎟+⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ x ⎟ ⎜ − 2 1 ⎟ ⋅ ⎜ 1 0 − 1⎟ ⋅ ⎜ x 4 ⎟ = ⎜ − 2 1 ⎟ ⋅ ⎜ 20 ⎟ . ⎠ ⎝ ⎠ ⎜x ⎟ ⎝ ⎠ ⎝ ⎠ ⎝ 3⎠ ⎝ ⎝ 5⎠ După efectuarea calculelor apare scrierea explicită a sistemului de restricţii în raport cu baza (a 2 a3 ) din spaţiul bunurilor: ⎛ x1 ⎞ ⎧2 x1 + x 2 − x 4 = 12 ⎛ x 2 ⎞ ⎛ 2 − 1 0 ⎞ ⎜ ⎟ ⎛ 12 ⎞ ⎜ ⎟+⎜ ⎜ ⎟ ⎟ ⎜ x ⎟ ⎜ − 3 2 − 1⎟ ⋅ ⎜ x 4 ⎟ = ⎜ − 4 ⎟ sau ⎨− 3 x + x + 2 x − x = −4 . ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎝ ⎠ ⎝ 3⎠ ⎝ ⎠ ⎜x ⎟ ⎝ ⎠ ⎝ 5⎠ de unde rezultă. se va obţine o soluţie a problemei care are două componente nenule (rangA=2) şi vectorii ataşaţi variabilelor bazice sunt liniar independenţi ( a 2 şi a3 formează baza).

Se va verifica acest lucru: cj → cB 5 3 B 3 5 4 0 0 XB 12 -4 48 a1 2 -3 1 -2 a2 1 0 5 0 a3 0 1 3 0 a4 -1 2 1 1 a5 0 -1 -3 -3 a2 a3 fj f j −cj Deoarece f 4 − c 4 > 0 . ⎛ 2 ⎞ Observaţie: În tabel. ∀j = 1. ⎟ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠ b) Construim acum duala problemei din enunţ. de unde rezultă duala ⎨u1 + 2u 2 ≤ 5 → u2 ⎪0 ⋅ u + u ≤ 4 1 2 ⎩ u1 . ⎛ 2⎞ ⎛1⎞ ⎛0⎞ ⎛ 2 ⎞ a1 = ⎜ ⎟ = 2a 2 − 3a3 = 2 ⋅ ⎜ ⎟ − 3 ⋅ ⎜ ⎟ = ⎜ ⎜1⎟ ⎜ 2⎟ ⎜ 1 ⎟ ⎜ 4 − 3⎟ . Se observă că orice cuplu (u1 . vectorul ⎜ ⎟ trecut în coloana lui a1 reprezintă ⎜ − 3⎟ ⎝ ⎠ scrierea acestuia în baza (a 2 a3 ) . u 2 ≥ 0 → u1 .Metode simplex pentru modele liniare realizabilă dacă ar verifica criteriul de optimalitate. u 2 ) care verifică primele două restricţii ale problemei duale. este doar soluţie pentru modelul scris sub forma standard. Într-adevăr. Mulţimea soluţiilor admisibile ale acestei probleme este dată de intersecţia dintre semiplanele . vectorul X = (0 12 − 4 0 0 ) T nu este soluţie dual realizabilă. [min] f = 3 x1 + 5 x 2 + 4 x3 ⎧2 x1 + x 2 ≥ 12 ⎨ ⎩ x1 + 2 x 2 + x3 ≥ 20 x j ≥ 0. o verifică şi pe a treia.3 [max]g = 12u1 + 20u 2 ⎧2u1 + u 2 ≤ 3 ⎪ .

⇒ ⎨ 7 ⎪u 2 = 3 ⎩ d) Soluţia de start pentru algoritmul simplex-dual este o soluţie dual realizabilă (SDR). Se observă că matricea A conţine matricea unitate de ordinul 2 cu semnul schimbat: B = (−1)(a 4 a5 ) . ⎜0⎟ ⎝ ⎠ ⎛0⎞ f 2 = c B B −1 a 2 = (3 5)⎜ ⎟ = 5 . Atunci (vezi teorema programării liniare). u 2 ≥ 0 . acestei baze îi corespunde un sistem de restricţii saturate. cel puţin una strict negativă. şi este o mulţime mărginită şi convexă. şi anume.Analiza economico-matematică a unor modele liniare determinate de inecuaţiile: 2u1 + u 2 ≤ 3 . ⎟ ⎜ ⎟⎜ ⎟ ⎜ ⎟ ⎝ ⎠⎜ x ⎟ ⎝ ⎠⎝ 5 ⎠ ⎝ ⎠ ⎝ 3⎠ Vectorul X1 de componente x1 = x 2 = x3 = 0 . restricţiile cu termenii liberi 3 şi 5: ⎧2u1 + u 2 = 3 ⎨ ⎩u1 + 2u 2 = 5 1 ⎧ ⎪ u1 = 3 . are două componente nenule (rangA=2). u1 + 2u 2 ≤ 5 şi u 2 ≤ 4 . c) Fie baza dată de coloanele 1 şi 2 din matricea sistemului de restricţii ale problemei primale: B = (a1 a 2 ) . ⎜1⎟ ⎝ ⎠ În problema duală. Restricţiile scrise sub forma standard se vor înmulţi 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 ⎞ ⎜ ⎜ − 1 − 2 − 1⎟⎜ x 2 ⎟ + ⎜ 0 1 ⎟⎜ x ⎟ = ⎜ − 20 ⎟ . în condiţiile u1 . problema admite soluţie optimă finită. şi corespunde . Atunci ⎛1⎞ f1 = c B B −1 a1 = (3 5)⎜ ⎟ = 3 . x 4 = −12 şi x5 = −20 verifică sistemul de restricţii din forma standard.

|-4/-1|)=|-5/-2| ⇒ a 2 ia locul lui a5 . y 22 = −2 este pivot.Metode simplex pentru modele liniare bazei B = (a 4 a5 ) . ∀j ∈ 1. cj X 1 va fi SDR dacă ar satisface criteriul de optimalitate. • CEB: a 4 eliminat ⎛ − 1/ 2 − 5 / 2 • CIB: min⎜ ⎜ − 3 / 2 . ∀j ∈ 1.5 ⇒ X 2 este SDR. − 1/ 2 ⎝ ⎞ − 1/ 2 ⎟= ⎟ − 3/ 2 . -20)=-20 ⇒ eliminăm vectorul a5 . în linia vectorului eliminat toate componentele sunt pozitive? NU ⇒ aplicăm CIB. • CIB: min(|-3/-1|. Se aplică • CEB: min(-12. Iteraţia 2: Deoarece f j − c j ≤ 0 . ⎠ .5 ⇒ X 1 este SDR . Să verificăm acest lucru: 3 5 4 0 0 cB 0 0 B XB -12 -20 0 a1 -2 -1 0 -3 a2 -1 -2 0 -5 0 1 5 0 0 1 5 0 a3 0 -1 0 -4 1/2 1/2 5/2 -3/2 -1/3 2/3 7/3 -5/3 a4 1 0 0 0 1 0 0 0 -2/3 1/3 -1/3 -1/3 a5 0 1 0 0 -1/2 -1/2 -5/2 -5/2 1/3 -2/3 -7/3 -17/3 a4 a5 fj f j −cj 5 3 a4 a2 fj f j −cj a1 a2 fj -2 10 50 -3/2 1/2 5/2 -1/2 5 3 4/3 28/3 152/3 1 0 3 0 f j −cj algoritmul simplex dual: Iteraţia 1: Deoarece f j − c j ≤ 0 . |-5/-2|.

atenţie. ∀i = 1. u 2 = − . şi se află la intersecţia semiplanelor definite de aceste restricţii. în dreptul vectorilor ce au format prima bază (ca în tabelul simplexului-primal). Aşa cum ştim.2 Soluţia grafică: În primul rând vom reprezenta grafic mulţimea . soluţiilor admisibile ale problemei. cu semnul impus în modelul dualei: u i ≥ 0. ⎟ ⎝ ⎠ Observaţia 2: Valorile optime ale variabilelor dualei se citesc în linia f j din ultimul tabel. în dreptul vectorilor ce au format prima bază. Semiplanul determinat de prima restricţie a problemei este cel mărginit de dreapta d 1 şi care nu conţine originea. Semiplanul determinat de a doua restricţie este determinat de d 2 şi nu conţine originea. În fine. 3 3 Problema 2 Să se rezolve grafic şi printr-o metodă simplex următorul 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. dar. vom reprezenta mai întâi dreptele d1 : x1 + x 2 = 4 . elementele vor fi luate cu ⎛ 2 / 3 − 1 / 3⎞ semn schimbat: B −1 = ⎜ ⎜ − 1/ 3 2 / 3 ⎟ . Pentru a găsi semiplanele şi apoi interesecţia acestora. ∀j ∈ 1. semiplanul determinat de cea de-a treia restricţie este mărginit de d 3 şi nu .Analiza economico-matematică a unor modele liniare Observaţia 1: Matricea B −1 se citeşte din ultimul tabel. d 2 : −2 x1 + x 2 = 3 şi d 3 : 3 x1 + x 2 = 5 .2 1 7 * * ⇒ u1 = − . mulţimea soluţiilor admisibile este generată de restricţiile programului liniar de mai sus.

⎟ . ⎟ şi C ⎜ .Metode simplex pentru modele liniare include originea. este 5 ⋅ 2 19 67 + 3⋅ = . Astfel. găsim coordonatele punctelor A. este foarte uşor de realizat faptul că C ⎜ . şi ⎨ ⎩3 x1 + x 2 = 5 ⎩ 3 x1 + x 2 = 5 ⎛ 1 11 ⎞ ⎛ 2 19 ⎞ ⎛1 7⎞ anume: A⎜ . ⎟ . B⎜ . Dacă notăm d1 I d 2 = {A} . ⎟ reprezintă punctul de ⎝5 5 ⎠ minim. valoarea minimă a funcţiei. ⎛ 2 19 ⎞ Astfel. prin rezolvarea sistemelor de ecuaţii ⎨ 1 . Valoarea funcţiei obiectiv în acest punct. d 1 I d 3 = {B} şi ⎧ x + x2 = 4 d 2 I d 3 = {C} . porţiunea haşurată din ⎝2 2⎠ ⎝3 3 ⎠ ⎝5 5 ⎠ grafic reprezintă mulţimea soluţiilor admisibile. ⎩− 2 x1 + x 2 = 3 ⎧ x1 + x 2 = 4 ⎧− 2 x1 + x 2 = 3 şi ⎨ . Se ştie faptul că soluţia optimă se găseşte într-unul din vârfurile mulţimii soluţiilor admisibile. B şi C. 5 5 5 x2 d2 C A B d1 x1 O d3 .

apoi algoritmul simplex primal (punctul b)). Cunoscând toate aceste date. Aducem mai întâi problema la forma standard: [min] f = 5 x1 + 3 x 2 ⎧ x1 + x 2 − x3 = 4 ⎪ ⎨− 2 x1 + x 2 − x 4 = 3 . ⎝5 5 ⎠ Soluţie analitică: Vom utiliza algoritmul simplex dual (punctul a)). se vede că prima paralelă care intersectează mulţimea soluţiilor admisibile ale problemei este ⎛ 2 19 ⎞ cea care trece prin C ⎜ . a5 .Analiza economico-matematică a unor modele liniare Observaţie: Acelaşi lucru ar fi fost observat cu uşurinţă şi dacă am fi construit dreapta de nivel corespunzătoare funcţiei obiectiv. ⎟ şi se află la cea mai mică distanţă de origine. d : 5 x1 + 3 x 2 = 0 . putem trece la aplicarea algoritmului menţionat anterior: . Ducând paralele la această dreaptă. vom înmulţi mai întâi fiecare [min] f = 5 x1 + 3 x 2 ⎧ − x1 − x 2 + x3 = −4 ⎛ −1 −1 1 0 0⎞ ⎜ ⎟ ⎪ restricţie cu (− 1) : ⎨ 2 x1 − x 2 + x 4 = −3 . ∀j ∈ 1. ∀j ∈ 1.5 a) Pentru a aplica algoritmul simplex dual. O astfel de bază este formată din vectorii a3 . a 4 .5 Baza de start pentru algoritmul simplex dual trebuie să fie dual admisibilă. cu A = ⎜ 2 − 1 0 1 0 ⎟ . ⎪ 3x + x − x = 5 2 5 ⎩ 1 x j ≥ 0. ⎪− 3 x − x + x = −5 ⎜ − 3 −1 0 0 1⎟ 1 2 5 ⎝ ⎠ ⎩ x j ≥ 0.

Din tabelul optimal obţinem cel puţin două informaţii: • funcţia de eficienţă are valoarea minimă * • soluţia optimă are componentele: x1 = * x5 = 0 . x3 = .Metode simplex pentru modele liniare cj cB 0 0 0 B 5 3 0 0 0 XB -4 -3 -5 0 a1 -1 2 -3 0 -5 a2 -1 -1 -1 0 -3 -2/3 -5/3 1/3 5/3 -4/3 0 1 0 3 Ø a3 1 0 0 0 Ø 1 0 0 0 Ø 1 0 0 0 Ø a4 0 1 0 0 Ø 0 1 0 6 Ø -2/5 -3/5 -1/5 -4/5 -4/5 a5 0 0 1 0 Ø -1/3 2/3 -1/3 -1/3 -1/3 -3/5 -2/5 -1/5 -1/5 -11/5 a3 a4 a5 fj f j −cj 0 0 5 ≤ 0 ∀j ? DA ⇒ SDR a3 a4 a1 fj -7/3 -19/3 5/3 25/3 0 0 1 5 Ø f j −cj 0 3 5 ≤ 0 ∀j ? DA ⇒ SDR a3 a2 a1 fj 1/5 19/5 2/5 67/5 0 0 1 5 Ø f j −cj ≤ 0 ∀j ? DA ⇒ soluţie optimă Prima bază admisibilă (a3 a2 a1 ) este şi bază optimă pentru 67 . în cazul în care se impune rezolvarea prin algoritmul simplex primal. x2 = . deoarece această formă ne sugerează folosirea metodei bazei artificiale (sau metoda celor două faze). b) Să reluăm modelul de la forma standard. x 4 = 0 . 5 2 19 1 * * * . 5 5 5 modelul studiat. .

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 cj 5 3 0 0 0 . α a6 1 0 0 α 0 1 0 α 0 0 1 cB α B XB 4 3 5 14 α a1 1 -2 3 2α 2 α -5 a2 1 1 1 3α 3 α -3 0 1 0 3 Ø 0 1 0 3 Ø 0 1 0 3 Ø a3 -1 0 0 -α -α -1 0 0 -α -α -1/3 -2/3 5/3 a4 0 -1 0 -α -α 1 -1 1 -α -α 1/3 -1/3 -2/3 a5 0 0 -1 -α -α 0 0 -1 -α -α 0 0 -1 -α -α -1/5 -2/5 -3/5 -11/5 -11/5 a 7 a8 α α a6 a7 a8 fj α Ø -1 0 0 α Ø α Ø 0 0 1 α 3 f j −cj a6 a2 a8 1 3 2 3 α +9 3 -2 5 8α 8 α -5 α fj f j −cj 5 3 α Ø α Ø 0 0 1 α a1 a2 a8 1/3 11/3 1/3 (58+ α )/3 1 0 0 5 Ø fj f j −cj 5 3 0 (5 α -11)/3 (2-2 α )/3 (5 α -11)/3 (2-2 α )/3 0 0 1 0 Ø 1/5 -3/5 -2/5 -4/5 -4/5 α Ø a1 a2 a3 2/5 19/5 1/5 67/5 1 0 0 5 Ø fj f j −cj .

Metode simplex pentru modele liniare Prin rezolvarea acestui model liniar prin cei doi algoritmi am vrut să evidenţiem. comportarea duală a acestora în ceea ce priveşte atingerea minimului funcţiei 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 . încă o dată.

Sign up to vote on this title
UsefulNot useful