Sunteți pe pagina 1din 357

I.

FORMA GENERALĂ A PROBLEMEI


DE PROGRAMARE LINIARĂ. DEFINIŢII
ŞI PROPRIETĂŢI FUNDAMENTALE

Acest paragraf are rolul de a fixa notaţiile necesare formulării


problemelor de optimizare liniară şi de a reaminti cititorilor concepte şi
rezultate remarcabile din programarea liniară.

1. a) Forma generală. Forme echivalente.

⎧n
⎪∑ aij x j ≥ bi , i = 1, m1 , m1 ∈ N
⎪ j =1
⎪⎪ n
I.1.1 ⎨∑ aij x j = bi , i = m1 + 1, m2 , m1 ≤ m2 ∈ N .
⎪ j =1
⎪n
⎪∑ aij x j ≤ bi , i = m2 + 1, m, m2 ≤ m ∈ N
⎪⎩ j =1
n
Observaţie: ∑a ij x j ≤ (≥ )bi , pentru un i fixat, reprezintă un hiperplan cu
j =1
n
frontiera d i : ∑ aij x j = bi . Dacă i ia toate valorile posibile, se obţine un
j =1

poliedru convex din spaţiul n-dimensional cu n + 1 vârfuri, care reprezintă


un simplex. Orice punct al simplexului verifică simultan restricţiile I.1.1.
Întreaga teorie pe care o vom dezvolta este stabilită sub condiţia
fundamentală a non-negativităţii, condiţie care este impusă a priori în quasi-
totalitatea problemelor economice

I.1.2 x j ≥ 0 , ∀j ∈ 1, n .
Analiza economico-matematică a unor modele liniare

Problema generală de optimizare liniară se formulează astfel: în


mulţimea soluţiilor sistemului de restricţii I.1.1 şi a condiţiei de
nenegativitate I.1.2, să se găsească cel puţin o soluţie care optimizează
funcţia scop (funcţia obiectiv, economică) I.1.3:

n n
I.1.3 [max] f = ∑ c j x j sau [min] f = ∑ c j x j .
j =1 j =1

Din punct de vedere matematic, ea poate fi încadrată în clasa


problemelor de extrem legat în care restricţiile pot fi ecuaţii şi/sau inecuaţii
liniare.

⎛ a11 ... a1 j ... a1n ⎞


⎜ ⎟
⎜ .... ..... ⎟
Notaţii: Am×n = ⎜ ai1 ... aij ... ain ⎟ , cu liniile
⎜ ⎟
⎜ .... .... ⎟
⎜a ... a mn ⎟⎠
⎝ m1 ... a mi

⎛ a1 j ⎞
⎜ ⎟
⎜ ... ⎟
α i = (ai1 ... aij ... ain ) ∀i ∈ 1, m , şi coloanele a j = ⎜ aij ⎟ ∀j ∈ 1, n ;
⎜ ⎟
⎜ ... ⎟
⎜a ⎟
⎝ mj ⎠

⎛ x1 ⎞ ⎛ b1 ⎞
⎜ ⎟ ⎜ ⎟
⎜ ... ⎟ ⎜ ... ⎟
X = ⎜ x j ⎟ ; b = ⎜ b j ⎟ ; c = (c1 ... c j ... c n ) ; J = {1,..., n} , I = {1,..., m}.
⎜ ⎟ ⎜ ⎟
⎜ ... ⎟ ⎜ ... ⎟
⎜x ⎟ ⎜b ⎟
⎝ n⎠ ⎝ m⎠
Forma generală a problemei de programare liniară. Definiţii şi proprietăţi fundamentale

Scrierea vectorială a formei generale a problemei de programare liniară:

⎧α i X ≥ bi , i = 1, m1
⎪⎪
I.1.1' ⎨α i X = bi , i = m1 + 1, m2 ,

⎪⎩α i X ≤ bi , i = m2 + 1, m
I.1.2' X ≥ 0,
I.1.3' [opt ] f = cX .

Formele matriceale echivalente pentru problema de programare liniară sunt:


Forma standard Forma canonică
AX = b AX ≤ b AX ≥ b
X ≥0 X ≥0 X ≥0
[opt ] f = cX [max] f = cX sau [min ] f = cX

Forma mixtă
⎧α i X ≥ bi , i ∈ I 1 ⊂ I

⎩α i X = bi , i ∈ I \ I 1
X ≥0
[opt ] f = cX

În forma canonică apar numai restricţii concordante cu tipul de


optim al funcţiei economice. Următorul tabel sistematizează relaţiile dintre
aceste elemente ale modelului:

Optim
maxim minim
Restricţie
≤ Concordantă. Nonconcordantă.
≥ Nonconcordantă. Concordantă.

Trecerea de la o formă la alta este posibilă prin folosirea


următoarelor operaţii:

(O1) [min] f ( x ) = −[max](− f (x )) ;


Analiza economico-matematică a unor modele liniare

⎧α X ≤ bi
(O2) α i X = bi , i ∈ I ⇔ ⎨ i ;
⎩α i X ≥ bi
(O3) α i X ≤ bi , i ∈ I → α i X + x n +i = bi ;
α i X ≥ bi , i ∈ I → α i X − x n +i = bi ,

unde - în ambele cazuri - x n +i ≥ 0 se numeşte variabilă de ecart sau variabilă


de compensare. Aceste variabile au întotdeauna coeficientul 0 în funcţia
obiectiv.

(O4) Dacă x j ∈ R * , atunci x j = x +j − x −j , unde x +j , x −j ∈ R + se numesc


variabile slack (variabile de abatere). În general, x + = max(0, x) şi
x − = max(0,− x) .

1. b) Baze. Tipuri de soluţii.

Se consideră o problemă de programare liniară (P.L.) scrisă sub


forma standard:

I.1.1.b) AX = b , rangA=m<n, b ≥ 0 şi ∃i ∈ I astfel încât bi > 0 ,


I.1.2.b) X ≥ 0 ,
I.1.3.b) [max] f = cX .

• Vectorul b este numit vectorul resurselor.


• Matricea A este numită matricea coeficienţilor tehnologici. Aceştia sunt
stabiliţi de către specialişti din domeniul procesului economic studiat. Din
punctul nostru de vedere, interesează datele de intrare şi de ieşire şi
exprimarea matematică a legăturilor dintre ele.
Forma generală a problemei de programare liniară. Definiţii şi proprietăţi fundamentale

Problemei de mai sus i se pot asocia două spaţii:


• Spaţiul R m , care conţine în particular vectorii coloană a1 ,..., a n ai matricei
A, este numit spaţiul bunurilor. Din sistemul acestor vectori coloană se pot
extrage sisteme de cel mult C nm vectori liniar independenţi.
• Spaţiul R n , care conţine, în particular, vectorul X, îl vom numi spaţiul
activităţilor. Un punct X = (x1 ,..., x n )
T
reprezintă, din punct de vedere
matematic, o soluţie a sistemului I.1.1. În acest spaţiu vom defini
următoarele tipuri de soluţii:

X = ( x1 ,.., x s ,.., x m ) este soluţie a problemei dacă x1 ,...., x n verifică


T
D1
sistemul de restricţii AX = b .

D2 Se numeşte soluţie admisibilă (posibilă, program) a problemei


considerate un ansamblu de valori x1 ,...., x n ale variabilelor x1 ,...., x n care
satisfac restricţiile şi condiţiile de nenegativitate. Altfel spus, componentele
sale satisfac condiţiile de funcţionalitate şi de nenegativitate. Mulţimea
acestor soluţii admisibile se va nota cu χ.

D 3 Se numeşte bază a sistemului AX = b orice bază a spaţiului bunurilor


R m . Se deduce uşor că se pot forma cel mult C nm baze (de exemplu, dacă
n = 20 şi m = 10 ar rezulta limita superioară egală cu 25 ⋅ 10 4 ).

( )
Considerăm B = a j1 ,..., a jk ,..., a jm , unde a j1 ,..., a jk ,..., a jm sunt m
vectori liniar independenţi, j k ∈ J , k ∈ 1, m . Atunci x j1 ,..., x jk ,...x jm sunt
variabilele bazice şi rangA=m. Variabilele x j , j ∈ J \ { j1 ,..., j m } se vor
numi variabile nebazice, relativ la baza B; numărul lor este (n − m ) .
D 4 Vom numi SAB (soluţie admisibilă de bază) corespunzătoare bazei
( )
B = a j1 ,..., a jk ,..., a jm un ansamblu de valori ale variabilelor x1 ,...., x n care
îndeplinesc condiţiile:

- AX = b şi X ≥ 0 .
Analiza economico-matematică a unor modele liniare

(
- Valorile variabilelor bazice sunt pozitive x jk ≥ 0, ∀k ∈ 1, m şi ale celor)
nebazice sunt nule (x j = 0, ∀j ∈ J \ { j1 ,..., j m }) .
Dacă SAB conţine exact m = rangA componente strict pozitive,
atunci ea se numeşte nedegenerată, iar în caz contrar, se numeşte soluţie
degenerată.

Presupunem că primii m vectori ai matricii A formează o bază şi


introducem notaţiile:

Terminologie Scriere vectorială Scriere pe coordonate


Bază B (a1 ....a m )
Matrice nebazică R (a m+1 ....a n )
Variabile bazice
XB (x1 ,..., xm )T
Variabile nebazice
XR (x m+1 ,..., x n )T

⎛XB⎞
Sistemul de restricţii AX = b admite scrierea: (B R )⎜⎜ R ⎟⎟ = b ,
⎝X ⎠
echivalentă cu forma canonică a sistemului de
−1 −1
restricţii: X = B ⋅ b − B ⋅ R ⋅ X , din care rezultă o soluţie admisibilă de
B R

bază:
⎧⎪ X B = B −1 ⋅ b not
⎨ R , dacă B −1 ⋅ b = X B ≥ 0 .
⎪⎩ X = 0

D 5 O SAB care optimizează funcţia de eficienţă f se numeşte soluţie


optimă (SO). Notată X * , ea reprezintă coordonatele extremului absolut.
Observaţii: • Vectorii corespunzători variabilelor bazice sunt liniari
independenţi.
• Un vector oarecare din R m se exprimă în mod unic ca o combinaţie liniară
de vectori bazici.
Forma generală a problemei de programare liniară. Definiţii şi proprietăţi fundamentale

1. c) Teoremele fundamentale ale programării liniare

Se consideră o problemă de programare liniară scrisă sub forma


standard (în paragraful anterior au fost date operaţiile cu ajutorul cărora
orice problemă de programare liniară poate fi adusă la această formă):
I.1.1.c) AX = b ,
I.1.2.c) X ≥ 0 ,
I.1.3.c) [max] f = cX , cu
I.1.4.c) rangA=m<n, b ≥ 0 şi ∃i ∈ I astfel încât bi > 0 .
Din punct de vedere matematic, determinarea soluţiei optime, dacă
există, pentru
I.1.1.c) – I.1.3.c), în condiţiile I.1.4.c), înseamnă determinarea extremului
absolut atunci când legăturile care există între variabilele problemei sunt
exprimate prin ecuaţii şi/sau prin inecuaţii.
Teoremele ce urmează vor preciza dacă există sau nu soluţii
admisibile pentru problema considerată, şi legătura lor cu anumite puncte
ale mulţimii χ= {X AX = b, X ≥ 0}. Rezultatele sunt utile în rezolvarea
problemelor de programare liniară.

Teorema 1: Mulţimea soluţiilor admisibile ale problemei I.1.1.c) – I.1.3.c)


formează o mulţime convexă.

În general, mulţimea χ este un tronson convex, numit şi simplex.


Observaţie: Un tronson convex are, prin definiţie, un număr finit de puncte
de extrem şi orice punct al mulţimii poate fi exprimat ca o combinaţie
liniară convexă a acestora.

Teorema 2: Se consideră problema I.1.1.c) – I.1.3.c) în condiţiile I.1.4.c) şi


fie χ mulţimea soluţiilor sale admisibile. Atunci:
i) Dacă χ este nevidă şi mărginită, o soluţie optimă a problemei
corespunde unui punct de extrem.
ii) Dacă χ este nevidă şi nemărginită, atunci funcţia obiectiv are valoare
optimă infinită.
iii) Dacă χ este vidă, atunci problema nu are soluţii.
Analiza economico-matematică a unor modele liniare

( )
Teorema 3: Dacă sistemul de vectori a j1 ...a jm este liniar independent în
spaţiul bunurilor Rm şi a j1 x j1 + ... + a jm x jm = b , atunci
(
X = 0...x j1 ...x jm ...0 )
T
este punct de extrem (vârf) al poliedrului convex χ.
Reciproca este de asemenea adevărată.

n
Teorema 4: O funcţie liniară f ( X ) = ∑ c j x j , unde X ∈ χ , convexă, îşi
j =1

atinge valoarea optimă, dacă aceasta există, într-un punct de extrem (vârf) al
mulţimii χ.

Teorema 5: Dacă f ( X ) ia valoarea optimă în mai mult de un punct de


extrem al mulţimii χ, atunci ea are aceeaşi valoarea pe toată mulţimea
convexă generată de aceste puncte.

2 a) Problema duală

În algebra formală, oricărui model liniar cu funcţia scop


[max] f ([min ] f ) îi corespunde un model liniar cu funcţia obiectiv
[min ]g ([max]g ) .
Fiind dată problema de programare liniară
[opt ] f = cX
AX ≤ b sau AX = b sau AX ≥ b
X ≥0
se poate formula un alt model liniar utilizând elementele {A, b, c}, cu alte
semnificaţii matematice. Problema dată iniţial o vom numi problema
primală (P.P), iar cea obţinută în urma unui procedeu ce va fi dat, se va
numi problema duală (P.D). Ele se pot deduce reciproc pe baza unor
corespondenţe, oricare ar fi forma sub care se prezintă primala.
Forma generală a problemei de programare liniară. Definiţii şi proprietăţi fundamentale

DUALITATE – Legături formale

Elementele problemei primale Elementele problemei duale


[max]f /[ min]f [min]g / [max]g
m este numărul restricţiilor independente m este numărul variabilelor duale
u1 ,..., u i ,..., u m
n este numărul variabilelor primale n este numărul restricţiilor
x1 ,..., x j ,..., x n
A ∈ M m×n este matricea coeficienţilor AT matricea coeficienţilor tehnologici
tehnologici; rangA=m
b1 ,..., bm componentelor termenului liber bi , i ∈ 1, m , coeficientul lui u i în
b funcţia obiectiv g:
g = u1b1 + ... + u m bm
c = (c1 ,.., c j ,.., c n ) sunt coeficienţii c1 ,.., c j ,.., c n sunt termenii liberi ai
n restricţiilor
variabilelor în f: f = ∑cj xj
j =1

n • max( f ) ui ≥ 0
∑a
j =1
ij x j ≤ bi ⇒
• min( f ) ui ≤ 0
n

∑a
j =1
lj x j = bl ul ∈ R

n • max( f ) up ≤ 0
∑a
j =1
pj x j ≥ bp ⇒
• min( f ) up ≥ 0
Analiza economico-matematică a unor modele liniare

Cazul general al construirii dualului unui program liniar

[max] f = 15 x1 + 20 x 2 + 18 x3

conc
3 x1 + 2 x 2 + 1x3 ≤ 820 → u1 ≥ 0
[max] f
nonc
7 x1 + 1x 2 + 11x3 ≥ 400 → u 2 ≤ 0
[max] f
eg.
20 x1 + 17 x2 + 3 x3 = 680 → u3 ∈ R
[max] f

[min]g = 820u1 + 400u2 + 680u3


Ineg. conc. cu [min]g
x1 ≥ 0 3u1 + 7u 2 + 20u 3 ≥ 15
Ecuaţie
x2 ∈ R 2u1 + u 2 + 17u 3 = 20
Ineg. nonc.
x3 ≤ 0 cu [min]g u1 + 11u 2 + 3u 3 ≤ 18

Determinate de condiţiile
impuse asupra variabilelor
primalei şi de tipul de optim
al dualei.

Caz particular: Probleme duale simetrice


Diagrama lui Tucker pentru problemele duale simetrice:

[max] f = cX [min]g = Ub
(P.P.) {AX≤b şi (P.D.) {UA ≥ c
X ≥0 U ≥0
Forma generală a problemei de programare liniară. Definiţii şi proprietăţi fundamentale

Problema primală
Variabile x1 ≥ 0 x2 ≥ 0 … xn ≥ 0 Relaţii Disponibi
l
u1 ≥ 0 a11 a12 … a1n ≤ b1
u2 ≥ 0 a 21 a 22 … a2n ≤ b2
Problema … … … … … … …
duală um ≥ 0 a m1 am2 … a mn ≤ bm
Relaţii ≥ ≥ … ≥ ↓
[min]g
Venituri c1 c2 … cn → [max
unitare

2. b)Teoremele fundamentale ale dualităţii

Teorema 1: Valoarea funcţiei de eficienţă din problema de maxim nu poate


depăşi valoarea funcţiei de eficienţă din problema de minim, pentru orice
cuplu de soluţii admisibile ale celor două probleme duale:
f ( X SAB ) ≤ g (U SAB ) .

Teorema 2: Dacă X * şi U * este un cuplu de soluţii admisibile de bază a


problemelor duale (P.P.) şi (P.D.) care verifică relaţia cX * = U *b , atunci
X * este soluţie optimă pentru (P.P.) şi U * este soluţie optimă pentru (P.D).

Teorema 3: Fiind dat un cuplu de probleme duale, una şi numai una din
următoarele afirmaţii este adevărată:
i) Cele două probleme au soluţii admisibile. În acest caz, ele admit şi
soluţii optime finite şi valorile optime ale funcţiilor obiectiv coincid.
ii) Una din probleme are soluţii admisibile, cealaltă nu. În acest caz,
prima are optim nemărginit, iar duala sa nu are soluţii.
iii) Nici una din probleme nu are soluţii.
Analiza economico-matematică a unor modele liniare

Teorema 4: Fiind dat un cuplu de probleme duale, o condiţie necesară şi


suficientă pentru ca o soluţie admisibilă X * (sau U * ) să fie optimă este să
existe o soluţie admisibilă U * (sau X * ) a dualei sale, astfel încât
cX * = U *b .

Următorul tabel sumarizează aceste teoreme:

P.D. \ P.P. → S.O.F Fără soluţie Optim nemărginit



S.O.F *
Fără soluţie * *
Optim nemărginit *

3. Rezolvarea modelelor liniare în spaţiul bunurilor R 2+

Metodele de rezolvare a problemelor de programare liniarǎ sunt


diferite de cele din analiza matematicǎ pentru problemele de extreme cu
legǎturi. Ele ţin seama de particularitǎţile modelului liniar şi au la bazǎ
teoremele enunţate în primul paragraf. În continuare vor fi studiate modele
liniare în care n=2, ale cǎror extreme se ating în vârfurile unui poligon
convex (tronson) din plan. Metoda graficǎ, la care ne vom referi, este o
metodǎ cu aplicabilitate limitatǎ de posibilitatea reprezentǎrii mulţimii χ în
spaţiul activitǎţilor, mai precis de numărul variabilelor. Sperăm ca prin
aceste exemple să se înţeleagă ideile de bază ale metodelor ce vor fi expuse
în capitolul următor. Subliniem faptul că metoda grafică se poate aplica şi în
cazul n=3, dar, pe lângă faptul cǎ se poate pierde claritatea şi capacitatea de
analiză a reprezentării geometrice, metoda poate să implice un volum mare
de operaţii elementare. În acest caz, sau atunci când n ≥ 3, se utilizează
metode de tip simplex, însă independent de numărul variabilelor, procesul
de căutare a soluţiei optime are loc în spaţiul R n printre vârfurile
poliedrului definit de restricţiile modelului. Pentru început se vor puncta
Forma generală a problemei de programare liniară. Definiţii şi proprietăţi fundamentale

câteva aspecte deosebit de utile, desprinse din proprietăţile soluţiilor unui


model liniar:
• Fiecare soluţie de bază corespunde unui punct extrem al mulţimii
convexe χ ≠ Φ .
• Fiecărui punct de extrem îi corespunde un sistem de m vectori liniar
independenţi în R m .
• Există un punct extrem al mulţimii χ , nevidă şi mărginită, în care
funcţia economică îşi atinge optimul său.
Etapele principale de aplicare a metodei grafice în cazul n=2 sunt:
Etapa 1: Separarea planului în regiuni determinate de restricţiile modelului.
Se verifică dacă sistemul format din restricţiile modelului şi condiţia
de nenegativitate sunt compatibile sau nu, deci se obţin informaţii despre χ:
DA ⇒ Problema nu admite soluţii.
χ = Φ?
NU ⇒ Etapa 2.
Etapa 2: Mulţimea soluţiiilor admisibile χ este o mulţime convexă, nevidă,
care poate fi:
[max ] f → [max ] f = +∞ .
• Nemărginitǎ
[min ] f → Etapa 3.
• Mărginită ⇒ Etapa 3.
Etapa 3: Fiecărui punct ( x1 , x 2 ) ∈ χ îi corespunde o anumită valoare a
funcţiei obiectiv f = c1 x1 + c 2 x 2 . Pentru stabilirea celui în care îşi atinge
valoarea optimă se procedează astfel:
• Se calculează coordonatele vârfurilor poligonului convex χ.

• Se construieşte familia- fascicolul - de drepte


(Dα )α∈R : c1 x1 + c2 x2 = α .
Această familie are următoarele proprietăţi:
- Toate dreptele sunt paralele.
Analiza economico-matematică a unor modele liniare

- Toate soluţiile admisibile ( x1 , x2 ) ∈ χ care se află pe aceeaşi dreaptă


dau aceeaşi valoare funcţiei f .
- Cu cât dreapta este mai depărtată de originea axelor de coordonate,
cu atât valorile lui f vor fi mai mari, dar interesează numai cele
care au cel puţin un punct comun cu χ.
• Se cercetează distanţele de la dreptele c1 x1 + c2 x2 = α care trec prin
vârfurile lui χ şi dreapta (D0 ) ; pentru [max ] f se alege cea mai depărtată de
(D0 ) , iar pentru [min ] f cea mai apropiată de (D0 ) . Practic, se deplasează
(D0 ) paralel cu ea însăşi până când atinge cea mai mare distanţă ([max ] f )
faţă de poziţia sa iniţială şi trece prin cel puţin un vârf al trosonului χ.
Deoarece modelele de programare liniară diferă nu numai de la un
proces la altul, ci şi în cadrul unuia şi aceluiaşi proces, datorită unor
modificări de ordin tehnologic şi/sau a cerinţelor modelului social-economic
în care îşi desfăşoară activitatea, este dificil să se elaboreze modele
generale. Totuşi, în ciuda varietăţii problemelor obţinute prin modelarea
unor procese economice, se pot formula unele tipuri de modele, cum ar fi
cele de elaborare a unui program optim de producţie, probleme de transport,
probleme de amestec, etc. În continuare sunt date exemple din câteva
domenii ale activităţii economice.

Exemplul 1: În cadrul unei uzine se găsesc disponibile capacităţi de


producţie relativ mici care ar trebui folosite, cunoscut fiind faptul că aceste
resurse sunt nestocabile. S-a luat decizia de a fabrica două produse P1 , P2 a
căror tehnologie foloseşte capacităţile disponibile. La punctul de turnare,
capacitatea disponibilă este de 40h, iar randamentele orare sunt 3, respectiv
2 pentru P1 , P2 . Capacitatea de aşchiere poate asigura prelucrarea a 100 piese
tip P1 sau P2 în aceeaşi unitate de timp sau combinaţii ale acestor produse
în limita acestui număr. La linia de montaj se pot realiza cel puţin 30 de
piese P1 şi 20 piese P2 , dar nu mai mult de 55 piese P1 şi 60 piese P2 .
Forma generală a problemei de programare liniară. Definiţii şi proprietăţi fundamentale

Cheltuielile de producţie au fost evaluate la 40 şi 45 unităţi monetare pentru


un produs P1 , repectiv P2 . Să se găsească numărul de produse de tip P1 ,
respectiv P2 ce se pot realiza cu cheltuieli minime în aceste condiţii.
Soluţie: Notăm cu x1 şi x 2 numărul de produse de tipul P1 , respectiv P2 ce
se pot fabrica şi cu f funcţia economică a cheltuielilor totale. Ţinând seama
de condiţiile impuse de procesul tehnologic şi de nivelurile resurselor
disponibile, putem scrie:

I.3.1 [min ] f = 40 x1 + 45 x 2
[min ] f = 40 x1 + 45 x2
⎧ x1 x 2
⎪ 3 + 2 ≤ 40
⎪⎪
I.3.2 ⎨ x1 + x 2 ≤ 100 , cu forma standard
⎪ x1 ≥ 30

⎪⎩ x 2 ≥ 20
⎧2 x1 + 3 x 2 + x3 = 240
⎪ x + x + x = 100
⎪ 1 2 4

⎪ x1 − x5 = 30
⎪⎩ x 2 − x6 = 20

I.3.3 x j ≥ 0, j = 1,2 x j ≥ 0, j = 1,6


Observaţie: Nu s-a folosit, deocamdată, informaţia despre limitele
superioare ale numerelor de piese de tip P1 (55), respectiv P2 (60).

Etapa 1: Stabilirea compatibilităţii relaţiilor I.3.2 şi I.3.3:


Restricţii Semiplane Frontiere
2 x1 + 3 x 2 ≤ 240
x1 + x 2 ≤ 100
x1 ≥ 30
x 2 ≥ 20
Analiza economico-matematică a unor modele liniare

S1 = {(x1 , x2 ) 2 x1 + 3 x2 ≤ 240} (d1 ) : 2 x1 + 3x2 = 240


S 2 = {( x1 , x2 ) x1 + x2 ≤ 100} (d 2 ) : x1 + x2 = 100
S3 = {( x1 , x2 ) x1 ≥ 30} (d3 ) : x1 = 30
S 4 = {( x1 , x2 ) x2 ≥ 20} (d 4 ) : x 2 = 20

Reprezentând grafic semiplanele date de restricţiile anterioare


(figura I.3.1), intersecţia lor, notată S, este chiar mulţimea soluţiilor
4
modelului cercetat: S = I S i .
i =1

x2

100 Figura I.3.1


80

B
F

( D0 ) G E C
(d 4 )
20 A
D
x1
O 30 100 120
(d1 )
(d 3 ) (d 2 )

Mulţimea soluţiilor admisibile se obţine din operaţia:

S I {(x1 , x2 ) x1 ≥ 0, x2 ≥ 0} ,
Forma generală a problemei de programare liniară. Definiţii şi proprietăţi fundamentale

care, conform notaţiilor introduse în primul paragraf, reprezintă χ. Ea apare


ca o mulţime nevidă şi mărginită, cu patru puncte de extrem A, B, C, D, ce
vor corespunde unor soluţii admisibile de bază. Despre orice punct
(x0 , y 0 ) ∈ χ putem afirma următoarele:
• ( x0 , y 0 ) poate fi exprimat ca o combinaţie liniară convexă a unor puncte
de extrem. De exemplu, coordonatele oricărui punct ( x0 , y 0 ) ∈ [AB ] admit
scrierea:
x0 = λx A + (1 − λ )x B
λ ∈ [0,1] .
y 0 = λy A + (1 − λ ) y B
1
Astfel, pentru λ = se obţin coordonatele punctului G ∈ (d 3 ) :
2
1 ⎛ 1⎞ 1 1
xG = ⋅ 30 + ⎜1 − ⎟ ⋅ 30 = 30 şi y G = ⋅ 20 + ⋅ 60 = 40 .
2 ⎝ 2⎠ 2 2
• Valoarea funcţiei economice f variază în raport cu poziţia lui ( x0 , y 0 ) în χ.
x F = 50
x E = 40 xG = 30
⇒ f E= 3400 ; ⇒ f G = 3000 ; 140 ⇒ f F = 4100 .
y E = 40 y G = 40 yF =
3
Etapa 2: χ ≠ Φ şi mărginită. Conform teoremei 2i), paragraful 1.c), modelul
liniar admite cel puţin o soluţie optimă finită.

Etapa 3: Din familia de drepte (Dα ) : 40 x1 + 45 x 2 = α , α ∈ R se trasează


dreapta D0 şi distanţele de la aceasta la vârfurile poliedrului.
Analiza economico-matematică a unor modele liniare

Valoarea minimă a lui f va fi stabilită după completarea tabelului sinteză:


T.I.3.1
Valorile
Vârf Coordonate SAB funcţiei
economice
x1 = 30 x1 = 30 x3 = 120 x5 = 0
A 2850 [min] f
x 2 = 20 x2 = 20 x 4 = 50 x6 = 0
x1 = 30 x1 = 30 x3 = 0 x5 = 0
B 5250
x 2 = 60 x2 = 60 x4 = 10 x6 = 40
x1 = 60 x1 = 60 x3 = 0 x5 = 30
C 5700
x2 = 40 x2 = 40 x4 = 0 x6 = 20
x1 = 80 x1 = 80 x3 = 20 x5 = 50
D 5600
x2 = 20 x2 = 20 x4 = 0 x6 = 0

Valoarea minimă a funcţiei cheltuielilor de producţie este atinsă în


vârful A, de unde rezultă structura optimă, în condiţiile date, a programului
de fabricaţie:
x1* = 30 produse P1 ,
x 2* = 20 produse P2 .
Valorile variabilelor de abatere din soluţia optimă oferă informaţii
importante în ceea ce priveşte folosirea resurselor. În cazul studiat avem:
x1* x 2* x3*
2 x1* + 3 x 2* + x3* = 240 ⇔ + + = 40 ⇒
3 2 6
30 20 120
⇒ + + = 40 ⇒ rămân nefolosite 20h.
3 2 6
Ore
Ore consumate disponibile.
prin programul
optim.

x1* + x 2* + x 4* = 100 ⇒ 50 + x 4* = 100 ⇒


Cât se Cât se putea
prelucrează. prelucra.
Forma generală a problemei de programare liniară. Definiţii şi proprietăţi fundamentale

⇒ x 4* = 50 reprezintă numărul de produse P1 , P2 sau combinaţii ale


acestora care se mai pot prelucra.
Vom încerca să modificăm programul de fabricaţie astfel încât
capacitatea utilajului să fie consumată, pe cât posibil, integral. În acest scop
se va alege varianta de mărire a numărului de piese ce pot fi realizate la linia
de montaj, fără a atinge limitele superioare impuse 55, respectiv 60, de
exemplu varianta

[min] f = 40 x1 + 45 x 2
⎧ x1 x2
⎪ 3 + 2 ≤ 40
⎪⎪
⎨ x1 + x2 ≤ 100
⎪40 ≤ x1 ≤ 55

⎪⎩50 ≤ x2 ≤ 60
x j ≥ 0, j = 1,2
Conform restricţiilor problemei mulţimea χ este nevidă şi mărginită.
În următoarea figură este reprezentată această mulţime şi (D0 ) : 40 x1 + 45 x 2 = 0

x2

100
Figura I.3.2

80
60

50
B' (d 4 )
A' C'
C

( D0 ) (d 3 )
O 40 55 100 120
x1
(d1 )
(d 2 )
Analiza economico-matematică a unor modele liniare

Se constată că valoarea minimă a funcţiei f se obţine atribuind


variabilelor x1 şi x 2 coordonatele punctului A', cel mai apropiat de (D0 ) :
x1* = 40
şi [min ] f = 3850 .
x 2* = 50
Prin modificările aduse modelului iniţial s-a înregistrat o creştere a
cheltuielilor de fabricaţie, dar numărul produselor fabricate a crescut de la
30 la 40 pentru P1 şi de la 20 la 50 pentru P2 şi, ceea ce este mai important,
capacităţile de producţie sunt folosite mai eficient.
Într-adevăr:
⎛ 40 50 ⎞ 5
x3* = 40 − ⎜ + ⎟ = h
⎝ 3 2⎠ 3 .
x4 = 100 − (40 + 50 ) = 10h
*

Exemplul 2: Un mic întreprinzor vrea să lanseze pe piaţă un extensor.


Pentru realizarea acestui produs este nevoie de trei materii prime, şi anume,
lemn, fier şi fibră elastică. Producătorul selectează două proiecte de modele,
conform sumei pe care poate s-o investească. În tabelul următor sunt date
consumurile specifice din fiecare resursă pentru fiecare tip de extensor,
precum şi cantităţile maxime de resurse pe care le poate achiziţiona
producătorul.
T.I.3.2
Cantităţi
Consumuri specifice
maximale
Resursă PI PII (kg)
Lemn 0,1 0,2 45
Fier 0,3 0,25 75
Fibră elastică 0,3 0,1 66

Din vânzarea unui extensor de tip PI poate obţine un profit de 60


u.m, iar din comercializarea unui extensor de tip PII, un profit de 54 u.m. Să
se afle cantităţile din fiecare resursă pe care trebuie să le achiziţioneze
producătorul pentru a-şi realiza un profit maxim.
Forma generală a problemei de programare liniară. Definiţii şi proprietăţi fundamentale

Soluţie: Pentru a obţine produsele finite trebuie achiziţonate materiile


prime:
• Lemn într-o cantitate notată x1 kg.
• Fier într-o cantitate notată x 2 kg.
• Fibră elastică într-o cantitate notată x3 kg.
Utilizând elementele şi dependenţele date în T.I.3.2 se poate scrie
modelul liniar:
[max] f = 60 x1 + 54 x 2 [max] f = 60 x1 + 54 x 2
⎧0,1x1 + 0,2 x 2 ≤ 45 ⎧0,1x1 + 0,2 x 2 + x3 = 45
⎪ ⎪
⎨0,3 x1 + 0,25 x 2 ≤ 75 , cu forma standard ⎨0,3 x1 + 0,25 x 2 + x 4 = 75 .
⎪0,3 x + 0,1x ≤ 66 ⎪0,3 x + 0,1x + x = 66
⎩ 1 2 ⎩ 1 2 5

x j ≥ 0, j = 1,2 x j ≥ 0, j = 1,5
Pentru a rezolva geometric problema, reprezentăm în spaţiul x1Ox 2
mulţimea soluţiilor admisibile χ:

x2

660

Figura I.3.3

300

225
A B
( D0 )
C

O 220 250 450


(d1 ) x1
(d 3 ) (d 2 )
Analiza economico-matematică a unor modele liniare

Soluţia optimă a problemei se află foarte simplu analizând următorul tabel


sinteză:

T.I.3.3
Vâr Coordonate SAB Valorile funcţiei
f economice
O x1 = 0 x1 = 0 x3 = 45
x5 = 66 0
x2 = 0 x2 = 0 x4 = 75
A x1 = 0 x1 = 0 x3 = 0
x5 = 43,5 12150
x 2 = 225 x 2 = 225 x 4 = 18,75
B x1 = 750 / 7 x1 = 750 / 7 x3 = 0 109800
x5 = 117 / 7 = 15685,7
x 2 = 1200 / 7 x 2 = 1200 / 7 x 4 = 0 7
[max] f
C x1 = 200 x1 = 200 x3 = 13
x5 = 0 15240
x 2 = 60 x 2 = 60 x4 = 0

Coordonatele vârfului B dau cea mai mare valoare funcţiei f :


750 1200
[max] f = 60 x1* + 54 x 2* = 60 ⋅
+ 54 ⋅ ≈ 15685,67 unităţi monetare.
7 7
Cum produsele sunt bunuri indivizibile, rezultatul trebuie dat în numere
naturale, deci:

⎡ 750 ⎤
x1 = ⎢ = 107
⎣ 7 ⎥⎦
şi f = 15654 .
⎡1200 ⎤
x2 = ⎢ = 171
⎣ 7 ⎥⎦

Părţile fracţionare ale valorilor optimale ale variabilelor bazice x1 şi


x 2 , şi anume {x1 } ≈ 0,14 , {x 2 } ≈ 0,42 , sunt suficient de mici pentru a nu
justifica încercarea de a mări partea întreagă cu o unitate. O astfel de mărire
poate provoca nerespectarea unor restricţii. Să justificăm afirmaţia:
0,1 ⋅ 107 + 0,2 ⋅ 172 = 45,1 < 45 (Fals)
Forma generală a problemei de programare liniară. Definiţii şi proprietăţi fundamentale

Variabila de compensare x5 = 117 / 7 ≈ 16,7 indică partea din


disponibilul resursei trei (fibră elastică) ce nu va fi consumată în procesul de
fabricaţie optimal. Dacă se merge pe soluţia suboptimală x1 = 107 ,
x 2 = 171 , atunci:
x5 = 66 − (0,3 ⋅ 107 + 0,1 ⋅ 171) = 16,8 .
Din interpretarea variabilelor de ecart rezultă că primele două
resurse sunt consumate integral prin planul optim.

Presupunem ca investitorul dispune de o sumă de bani pe care s-o


investească în achiziţionarea a încă 20 kg lemn şi 25 kg fier. Vrem să
verificăm dacă noul program de fabricaţie se supune unor restricţii de
vânzări: x1 ∈ [100,120] , x 2 ∈ [170,200] . În modelul matematic iniţial se
modifică, pentru început, numai b1 şi b2 , primii doi termeni liberi:

[max] f = 60 x1 + 54 x 2
⎧0,1x1 + 0,2 x 2 ≤ 65

I.3.4 ⎨0,3 x1 + 0,25 x 2 ≤ 100
⎪0,3 x + 0,1x ≤ 66
⎩ 1 2

x j ≥ 0, j = 1,2

Intersecţia semiplanelor I.3.4 din primul cadran este mulţimea


convexă, nevidă şi mărginită reprezentată în figura care urmează de
suprafaţa şi frontiera poligonului OABCD.
Analiza economico-matematică a unor modele liniare

x2
660

Figura I. 1.3.4

400
325
A
B

( D0 ) C

(d )
'
1
D
220
(d ) x1
O 333,3 '
650
2
(d 3 )

Se calculează elementele tabelului sinteză:


T.I.3.4
Vârf Coordonate SAB Valorile funcţiei
economice
A x1 = 0 x1 = 0 x3 = 0 17550
x5 = 33,5
x 2 = 325 x 2 = 325 x 4 = 18,75
B x1 = 750 / 7 x1 = 750 / 7 x3 = 0
x5 = 47 / 7 147600/7=21085,7
x 2 = 1900 / 7 x 2 = 1900 / 7 x4 = 0 [max] f
C x1 = 1300 / 9 x1 = 1300 / 9 x3 = 47 / 9 62720/3=20906,67
x5 = 0
x 2 = 680 / 3 x 2 = 680 / 3 x4 = 0

D x1 = 220 x1 = 220 x3 = 43 13200


x5 = 0
x2 = 0 x2 = 0 x 4 = 34
Forma generală a problemei de programare liniară. Definiţii şi proprietăţi fundamentale

Soluţia optimă în numere întregi,


⎡ 750 ⎤ ⎡1900 ⎤
x1 = ⎢ ⎥ = 107, x 2 = ⎢ = 271 , nu respectă ambele restricţii impuse
⎣ 7 ⎦ ⎣ 7 ⎥⎦
vânzării, ca urmare, trebuie regândită modelarea procesului. Se va extinde
modelul cu restricţiile de vânzări:
100 ≤ x1 ≤ 120
,
170 ≤ x 2 ≤ 200
care vor fi scrise conform canoanelor programării liniare şi anume:
x1 ≤ 120
x1 ≥ 100
I.3.5
x 2 ≤ 200
x 2 ≥ 170
În figura I.3.5 este reprezentată mulţimea soluţiilor admisibile,
patrulaterul ABCD, care apare ca intersecţia semiplanelor date de restricţiile
I.3.4 şi I.3.5, din primul cadran.
x2

660

Figura I.3.5

400

325

200 A D
170 B C

O 100 200 220 333 650 x1


Analiza economico-matematică a unor modele liniare

În acest caz, tabelul sinteză este următorul:


T.I.3.5
Vârf Coordonate Valorile funcţiei
economice
A x1 = 100
16800
x 2 = 200
B x1 = 100
15180
x 2 = 170
C x1 = 120
16380
x 2 = 170
D x1 = 120
18000
x 2 = 200 [max] f

Programul optim x1* = 120 ∈ N , x 2* = 200 ∈ N va aduce un profit de


18000u.m, dacă toate produsele vor fi vândute.

Exemplul 3: La o secţie din cadrul unei uzine metalurgice trebuie să se


elaboreze un program optim pentru executarea a două tipuri de produs P1 şi
P2. Într-o anumită perioadă T, secţia are disponibile trei utilaje: cuptorul de
recoacere, agregatul de decapare şi un laminor finisor. Fiecare din aceste
utilaje are un anumit fond de timp disponibil pentru cele două piese.
Consumurile de timp pentru fiecare produs şi fondul de timp disponibil sunt
date în tabelul T.I.3.6.
T.I.3.6
Consumuri specifice
(ore/tonă) Fond de timp
Utilaj
disponibil (ore)
P1 P2
Cuptor de recoacere 5 3 2100
Agregat de decapare 1/2 2 550
Laminor finisor 3 5 1500

Veniturile unitare au fost evaluate la 15 şi 20 unităţi monetare pentru


o tonă de produs P1, repectiv P2. Programul se consideră optim dacă asigură
un venit total maxim în condiţiile date.
Forma generală a problemei de programare liniară. Definiţii şi proprietăţi fundamentale

Soluţie: Pentru a stabili programul optim de fabricaţie este necesar ca în


primul rând să se elaboreze modelul matematic. Să notăm cu x1 , x 2
cantităţile de produse P1 respectiv P2 care urmează să fie executate conform
indicatorilor cantitativi prezentaţi în T.I.3.6. Valorile variabilelor x1 , x 2
depind de fondul de timp disponibil şi de consumurile specifice. Aceste
dependenţe sunt exprimate matematic astfel:
Consum de timp pentru Disponibil care nu
programul ( x1 , x 2 )
Utilaj
trebuie depăşit
Cuptor de recoacere 5 x1 + 3 x 2 ≤ 2100
1
Agregat de decapare x1 + 2 x 2 ≤ 550
2
Laminor finisor 3 x1 + 5 x 2 ≤ 1500
La condiţiile de corelare a variabilelor x1 , x 2 cu posibilităţile de
producţie limitate vor fi adăugate restricţiile naturale x1 ≥ 0, x 2 ≥ 0. Din
mulţimea valorilor posibile ale variabilelor x1 , x 2 care satisfac restricţiile şi
condiţia de nenegativitate va fi aleasă accea care maximizează funcţia venit
total: [max ] f = 15 x1 + 20 x 2 .
Poblema căutării soluţiei optime revine la rezolvarea programului liniar:
[max] f = 15 x1 + 20 x 2
⎧5 x1 + 3 x 2 ≤ 2100
⎪1

I.3.6 ⎨ x1 + 2 x 2 ≤ 550 cu forma standard I.3.7
⎪2
⎪⎩3 x1 + 5 x 2 ≤ 1500
x j ≥ 0, j = 1,2
[max] f = 15 x1 + 20 x 2
⎧5 x1 + 3 x 2 + x3 = 2100
⎪1

⎨ x1 + 2 x 2 + x 4 = 550
⎪2
⎪⎩3 x1 + 5 x 2 + x5 = 1500
x j ≥ 0, j = 1,5
Analiza economico-matematică a unor modele liniare

Din exemplele prezentate rezultă că, în descrierea formală a oricărui


proces economic care urmăreşte găsirea unui program optimal, se parcurg
etapele :
• Exprimarea programului cu ajutorul variabilelor.
• Exprimarea matematică a restricţiilor impuse de procesul
tehnologic, condiţionări logice,etc.
• Fixarea scopului şi scrierea funcţiei scop care va servi drept
criteriu de alegere a soluţiei optime dintre soluţiile admisibile.
• Formularea problemei de programare liniară ca o problemă de
căutare a extremului cu legături.
Reprezentând grafic în planul x1 O x 2 mulţimea convexă χ =
poligonul OABCD a soluţiilor admisibile corespunzătoare modelului I.3.6
se obţine:

x2

700

Figura I.3.6
300
B E
275 A
C
1100
D 500
O 420
(d1 ) (d3 ) (d 2 ) x1
Forma generală a problemei de programare liniară. Definiţii şi proprietăţi fundamentale

Tabelul sinteză

Valorile funcţiei
Vârf Coordonate SAB
economice
x1 = 0 x1 = 0 x3 = 2100
O ; ; x5 = 1500 0
x2 = 0 x 2 = 0 x 4 = 550
x1 = 0 x1 = 0 x3 = 1275
A ; ; x5 = 125 5500
x 2 = 275 x 2 = 275 x 4 = 0
x1 = 500 / 7 x1 = 500 / 7 x3 = 6800 / 7 43500
; ; x5 = 600 ≈ 6214,28
B
x 2 = 1800 / 7 x 2 = 1800 / 7 x 4 = 0 7

x1 = 375 x1 = 375 x3 = 0
C ; ; x5 = 0 7125
x 2 = 75 x 2 = 75 x 4 = 425 / 2 [max] f
x1 = 420 x1 = 420 x3 = 0
D ; ; x5 = 240 6300
x2 = 0 x2 = 0 x 4 = 340

permite aflarea soluţiei optime, şi anume, cea corespunzătoare vârfului C.

Ţinând seama de semnificaţia constantelor şi variabilelor modelului,


planul optim de fabricaţie presupune realizarea a x1* = 375 t din produsul P1
şi a x 2* = 75 t din produsul P2. Venitul obţinut este 7125 unităţi monetare.

Să analizăm restricţiile prin prisma acestei soluţii:

Cât timp se consumă Fond de timp Cât nu se consumă din


Utilaj prin programul optim disponibil fondul de timp
disponibil
Cuptor de recoacere
* *
5 x1 + 3x 2 = 2100 h 2100h x3* = 0
1 * * 675 425
Agregat de decapare x1 + 2 x 2 = h 550h x 4* = = 212,5 h
2 2 2
Laminor finisor
* *
3 x1 + 5 x 2 = 1500 h 1500h x5* = 0
Analiza economico-matematică a unor modele liniare

Dacă perioada T considerată nu este prea mare şi dacă presupunem


că în această perioadă nu se modifică tehnologia produselor sau nu se
înlocuiesc utilajele, ipoteza că toţi indicatorii sunt constanţi pe perioada
menţionată este acceptabilă.

Exemplul 4: O secţie poate prelucra, în timpul unei perioade de cinci zile,


produsele P1 şi P2 , folosind două categorii de materii prime M 1 , M 2 .
Consumurile specifice, veniturile unitare şi disponibilităţile de materii prime
sunt date în T.I.3.7.

T.1.3.7
Consumuri specifice Venituri
Produse
M1 M2 unitare
P1 2u.c1 4 u.c 3 u.m.

P2 5u.c 1 u.c 5 u.m.


Disponibil 16u.c 11 u.c

Să se determine programul optim de fabricaţie în ipoteza că există


suficiente capacităţi de producţie la care trebuie prelucrate piesele.

Soluţie:

• Modelul matematic
Venituri Venit
aşteptate total
SECŢIE
2 u.c M 1 , 4 u.c M 2 3x1
x1 produse P1
⇒ [max] f = 3 x1 + 5 x 2
5 u.c M 1 , 1 u.c M 2 5x 2
x 2 produse P2

⎧2 x1 + 5 x 2 ≤ 16

⎩4 x1 + x 2 ≤ 11
x j ≥ 0, j = 1,2

1
Unităţi convenţionale = u.c.
Forma generală a problemei de programare liniară. Definiţii şi proprietăţi fundamentale

[max] f = 3 x1 + 5 x 2
⎧2 x1 + 5 x 2 + x3 = 16
• Forma standard: ⎨ .
⎩4 x1 + x 2 + x 4 = 11
x j ≥ 0, j = 1,4
• Mulţimea soluţiilor admisibile corespunzătoare modelului elaborat:

x2
11
Figura I.3.7

(d 2 )

16/5 A
B
(d1 ) x1
C
O 11/4 9

• Tabelul sinteză:

Vârf Coordonate SAB f (SAB )


x1 = 0 x1 = 0 x3 = 16
O 0
x2 = 0 x 2 = 0 x 4 = 11
x1 = 0 x1 = 0 x3 = 0
A 16
x 2 = 16 / 5 x 2 = 16 / 5 x 4 = 39 / 5
x1 = 13 / 6 x1 = 13 / 6 x3 = 0 109
B
= 18,1(6)
x2 = 7 / 3 x2 = 7 / 3 x4 = 0 6
[max] f = 18,17u.m.
x1 = 11 / 4 x1 = 11 / 4 x3 = 21 / 2 33
C = 8,25
x2 = 0 x2 = 0 x4 = 0 4

• Interpretarea economică a soluţiei optime:


Presupunând că cele două produse nu sunt indivizibile, prin
programul optim se prevede prelucrarea a x1* = 13 / 6 unităţi convenţionale
Analiza economico-matematică a unor modele liniare

din P1 şi x 2* = 7 / 3 unităţi convenţionale din P2 , şi se consumă integral cele


două materii prime. Se obţine un venit total maxim de 18,17 unităţi
monetare.
Pentru înţelegerea analizei economice a programelor liniare vom da
în continuare un exemplu de astfel de analiză.
Pentru început se construieşte duala modelului elaborat:
[max] f = 3 x1 + 5 x 2

2 x1 + 5 x 2 ≤ 16 u1 ≥ 0

4 x1 + 1x 2 ≤ 11 u2 ≥ 0

[min]g = 16u1 + 11u 2

x1 ≥ 0 2u1 + 4u 2 ≥ 3

x2 ≥ 0 5u1 + u 2 ≥ 5
Soluţia grafică a dualei rezultă din figura următoare, în care χ este
nevidă, convexă şi nemărginită.

x2
Figura I.3.8
D
5

(d 2 )
(d1 )
3/4
E
O 1 F x1
3/2
Forma generală a problemei de programare liniară. Definiţii şi proprietăţi fundamentale

Completarea tabelului sinteză necesită scrierea formei standard a


problemei duale:

[min ]g = 16u1 + 11u 2


⎧2u1 + 4u 2 − u 3 = 3

⎩5u1 + u 2 − u 4 = 5
u i ≥ 0, i = 1,4

Tabelul sinteză al dualei este:

Vârf Coordonate SAB f (SAB )


u1 = 0 u1 = 0 u 3 = 17
D 55
u2 = 5 u2 = 5 u4 = 0
17 109
u1 = = 18,1(6)
u1 = 17 / 8 8 u3 = 0 6
E
u2 = 5 / 8 5 u4 = 0
u2 =
8
3 u3 = 0
u1 = 3 / 2 u1 =
F 2 5 24
u2 = 0 u4 = [min]g = 18,1(6) =
u2 = 0 2

Prin rezolvarea acestor două probleme duale s-a verificat prima


afirmaţie a teoremei fundamentale a dualităţii.
Să presupunem că managerul speră să-şi îmbunătăţească deciziile
prin modificarea unor disponibile. Vom verifica cum se modifică funcţia
venit total, f , dacă disponibilul din M 1 creşte cu o unitate.
Analiza economico-matematică a unor modele liniare

Ca urmare trebuie rezolvat modelul modificat:

[max] f = 3 x1 + 5 x 2
⎧2 x1 + 5 x 2 ≤ 16 + 1
⎨ ,
⎩4 x1 + x 2 ≤ 11
x j ≥ 0, j = 1,2

căruia îi corespunde forma standard:

[max] f = 3 x1 + 5 x 2
⎧2 x1 + 5 x 2 + x3 = 16 + 1

⎩4 x1 + x 2 + x 4 = 11
x j ≥ 0, j = 1,4
• Mulţimea soluţiilor admisibile este OA 1 B 1 C şi este reprezentată
mai jos:
x2

11
Figura I.3.9.

(d 2 )
A1
3,4
B1

(d1 )
8,5

O C 11/4 x1
Forma generală a problemei de programare liniară. Definiţii şi proprietăţi fundamentale

• Tabelul sinteză:

Vârf Coordonate SAB f (SAB )


x1 = 0 x1 = 0 x3 = 17 0
O
x2 = 0 x 2 = 0 x 4 = 11
x1 = 0 x1 = 0 x3 = 0 17
A1
x 2 = 17 / 5 x 2 = 17 / 5 x 4 = 38 / 5
B1 x1 = 19 / 9 x1 = 19 / 9 x3 = 0 172/9=19,1(1)

x 2 = 23 / 9 x 2 = 23 / 9 x 4 = 0 [max] f = 19,1(1)
x1 = 11 / 4 x1 = 11 / 4 x3 = 23 / 2 55/4=13,75
C
x2 = 0 x2 = 0 x4 = 0

⎛ 172 109 17 ⎞
Un calcul simplu şi anume o diferenţă ⎜ − = ⎟ ne permite
⎝ 9 6 8⎠
să tragem o concluzie care este adevărată în general, nu numai în acest caz
particular: "dacă decidentul măreşte disponibilul din resursa 1 cu o unitate,
valoarea implicită a acelei unităţi este egală cu creşterea corespunzătoare a
valorii optimale a venitului total". Această creştere corespunde valorii
optime a variabilei dualei modelului iniţial, care a fost corespondenta
17
restricţiei cu disponibilul modificat, şianume u1* = .
19
Am stabilit că o unitate de materie primă M 1 participă cu
17/8=2,125 unităţi monetare la venitul total. Se poate mări acest disponibil
oricât de mult şi venitul să crească continuu? Pentru a afla răspunsul, se va
exprima disponibilul din b1 ca o funcţie liniară de parametru α ∈ R + :
[max] f = 3 x1 + 5 x 2
⎧2 x1 + 5 x 2 ≤ 16 + α
⎨ , α ∈ R *+
⎩4 x1 + x 2 ≤ 11
x j ≥ 0, j = 1,2
Analiza economico-matematică a unor modele liniare

În figura de mai jos sunt reprezentate mulţimi de soluţii admisibile


pentru diferite valori ale lui α după cum urmează:
• α = 0 ⇒ χ este reprezentată de OABC.
• α = 14 ⇒ χ este reprezentată de OA1 B1C ⊃ OABC .
• α = 39 ⇒ χ este reprezentată de OA2 C ⊃ OA1 B1C ⊃ OABC .

x2
Figura I.3.10

11

(d )
1
4

(d ) 3
1
A1
B1

16/5 (d )1
2

A B

(d )
1
1

C x1
O 11/4 8

Se observă că, dacă α ≥ 39 , atunci mulţimea soluţiilor posibile este


OA2 C şi soluţia optimă: x1* = 0, x 2* = 11, x3* = α − 39, x 4 = 0 . Valoarea
optimă a funcţiei venit total este 55 oricare ar fi α ≥ 39 . De aici rezultă că,
Forma generală a problemei de programare liniară. Definiţii şi proprietăţi fundamentale

dacă este posibilă mărirea disponibilului resursei M 1 , atunci ea nu trebuie să


depăşească valoarea 39, deoarece s-ar imobiliza inutil fonduri băneşti.

Exemplul 5: Folosindu-se metoda grafică să se stabilească natura modelului


[max] f = 6 x1 + 4 x 2
⎧2 x1 + 3 x 2 ≤ 17

⎨ x1 + x 2 ≤ 7

⎩3 x1 + 2 x 2 ≤ 18
x j ≥ 0, j = 1,2
Soluţie:
• Mulţimea soluţiilor admisibile
(d1 ) 2 x1 + 3x 2 = 17 ; (d 2 ) x1 + x 2 = 7 ; (d 3 ) 3 x1 + 2 x 2 = 18 ;
(D0 ) 6 x1 + 4 x 2 = 0
x2

9
(d 2 ) Figura I.3.11
7

17/3
A

( D0 )
B
(d1 )
C 17/2
O 6 7 x1
(d 3 )
Analiza economico-matematică a unor modele liniare

Tabelul sinteză este:


T.I.3.8
Vârf Coordonate SAB f (SAB )
O x1 = 0 x1 = 0 x3 = 17 0
x5 = 18
x2 = 0 x2 = 0 x4 = 7
x1 = 0 x1 = 0 x3 = 0 68/3=22,(6)
A x5 = 2 / 3
x 2 = 17 / 3 x 2 = 17 / 3 x4 = 4 / 3
x1 = 4 x1 = 4 x3 = 0 36
B x5 = 0
x2 = 3 x2 = 3 x4 = 0
x1 = 6 x1 = 6 x3 = 5 36
C x5 = 0
x2 = 0 x2 = 0 x4 = 1

Modelele prezentate până acum au admis toate soluţie finită unică,


deoarece în toate cazurile, familia de drepte (Dα ) nu era paralelă cu nici o
latură a poligonului convex nevid OABC. În cazul de faţă, una din laturile
acestui poligon, şi anume, BC, este paralelă cu dreapta (D0 ) ; în realitate,
frontiera celei de-a treia restricţii face parte din familia
(Dα ) : 6 x1 + 4 x2 = α , α ∈ R . Ori de câte ori apare această particularitate,
modelul liniar poate admite o infinitate de soluţii optime care vor fi
coordonatele tuturor punctelor situate pe segmentul de frontieră care apare
ca latură în χ. Din punct de vedere algebric orice combinaţie liniară convexă
a vârfurilor B şi C este un punct situat pe latura BC , deci ne poate conduce
la o soluţie optimă:
x1* = λx1B + (1 − λ ) x1C
, λ ∈ [0,1] .
x 2* = λx 2B + (1 − λ ) x 2C
1 1 1 3
În particular pentru λ = se obţine: x1* = ⋅ 4 + ⋅ 6 = 5 , x 2* = şi
2 2 2 2
[max] f = 36 .
Forma generală a problemei de programare liniară. Definiţii şi proprietăţi fundamentale

În practică acest caz este foarte interesant deoarece din mulţimea


convexă a soluţiilor optime se poate alege cea care corespunde unui criteriu
de eficienţă diferit de cel considerat în model. Dacă soluţia optimă
reprezintă un program de fabricaţie, decidentul poate alege un program
diversificat în care valorile variabilelor corespund unui plan de desfacere
profitabil.

4. Probleme propuse pentru fixarea cunoştinţelor

Problema 1 După calcularea timpului necesar întreţinerii curente a


utilajului U212, s-a constat că rămâne un fond de timp disponibil de 20h.
S-a propus realizarea a două produse indivizibile. Informaţiile necesare
elaborării modelului matematic sunt sistematizate în următorul tabel:

Produse Numărul Preţ Randament Capacitate Unitate


produselor de orar de desfacere convenţională
vânzare
P1 x1 125 u.m. 50 400 3 × 1 produs P1
P2 x2 117 u.m. 25 500 2 × 1 produs P2

Să se determine varianta optimă a planului de fabricaţie a celor două


produse astfel încât preţul total de vânzare să fie maxim, să nu fie depăşită
capacitatea de depozitare de 1500 unităţi convenţonale şi numărul de
produse de tipul P1 să reprezinte cel puţin 25% din întreaga fabricaţie.
Soluţie:
• Modelul matematic este
[max] f = 125 x1 + 117 x 2
Analiza economico-matematică a unor modele liniare

⎧1 1
⎪ 50 x1 + 25 x 2 ≤ 20 ⇔ x1 + 2 x 2 ≤ 1000

⎪ x1 ≤ 400

⎨ x 2 ≤ 500
⎪3 x + 2 x ≤ 1500
⎪ 1 2

⎪ 25
⎪⎩ x 2 ≥ 100 ( x1 + x 2 ) ⇔ − x1 + 3 x 2 ≥ 0
x j ≥ 0, j = 1,2
Deoarece un termen liber are valoare zero, pot exista soluţii
admisibile degenerate.

• Forma standard:
[max] f = 125 x1 + 117 x 2
⎧ x1 + 2 x 2 + x3 = 1000
⎪ x + x = 400
⎪⎪ 1 4

⎨ x 2 + x5 = 500
⎪3 x + 2 x + x = 1500
⎪ 1 2 6

⎪⎩− x1 + 3 x 2 − x7 = 0
x j ≥ 0, j = 1,7
• Reprezentarea grafică a mulţimii χ:

(d1 ) : x1 + 2 x2 = 1000
(d 2 ) : x1 = 400
(d 3 ) : x2 = 500
(d 4 ) : 3x1 + 2 x 2 = 1500
(d 5 ) : − x1 + 3x 2 = 0
(D0 ) : 125 x1 + 117 x2 = 0
Forma generală a problemei de programare liniară. Definiţii şi proprietăţi fundamentale

x2
Figura I.3.12

750

(d 2 )
(d 3 )
500 A

( D0 )
C
(d1 )
(d 5 ) D

O 400 500 1000 x1


(d 4 )

• Tabelul sinteză:

Vârf Coordonate SAB f (SAB )


x1 = 0 x1 = 0 x3 = 1000 x5 = 500
O x7 = 0 0
x2 = 0 x 2 = 0 x 4 = 400 x6 = 1500
x1 = 0 x1 = 0 x3 = 0 x5 = 0
A x7 = 1500 58.500 u.m.
x 2 = 500 x 2 = 500 x 4 = 400 x6 = 500
x1 = 250 x1 = 250 x3 = 0 x5 = 125 75.125 u.m.
B x7 = 875
x 2 = 375 x 2 = 375 x 4 = 150 x6 = 0 [max] f
x1 = 400 x1 = 400 x3 = 300 x5 = 350
C x7 = 50 67.550 u.m.
x 2 = 150 x 2 = 150 x 4 = 0 x6 = 0
x1 = 400 1100
x1 = 400 1000 x5 =
400 x3 = 3
D x2 = 400 3 x7 = 0 65.600 u.m.
3 x2 = 812
3 x4 = 0 x6 =
3
Analiza economico-matematică a unor modele liniare

Se observă că apar două soluţii admisibile de bază degenerate şi anume


cele corespunzătoare vârfurilor A şi O.
• Interpretarea economică a soluţiei optime:

Valori optimale Semnificaţii economice


x1* = 250 Structura planului optim de fabricaţie.
x = 375
*
2
Fondul de timp disponibil al utilajului este
x3* = 0 consumat integral.
x 4* = 150 Se mai pot desface cel mult 150 produse P1
x = 125
*
5 şi cel mult 125 produse P2 .
x6* = 0 Capacitatea de depozitare este complet folosită.
Numărul produselor de tip P2 depăşeşte cu 875/4,
25% din întraga fabricaţie:
x7* = 875
25
375 ≥ (250 + 375) .
100

Problema 2 Se consideră programul:


[max] f = c1 x1 + 2 x 2
⎧ x1 + 2 x 2 ≤ 6
⎨ .
⎩ x1 + x 2 ≤ 5
x j ≥ 0, j = 1,2
a) Notaţi variabilele de ecart cu x3 , respectiv x4 . Gasiţi domeniul de
definiţie pentru c1 astfel ca baza (a 2 a 4 ) să fie optimală. Fixaţi
marginea inferioară, justificând economic limitarea, în ipoteza că
prin programul liniar se cere structura optimă a programului de
fabricaţie.
b) În dualul programului atribuiţi valoarea 1 lui c1 şi adăugaţi restricţia
(
6u1 + u2 ≥ 3 . Ce relaţii pot exista între f ( X S . A. B. ) şi g U S' . A. B. ? )
Forma generală a problemei de programare liniară. Definiţii şi proprietăţi fundamentale

Soluţie:
• Forma standard:
[max] f = c1 x1 + 2 x2
⎧ x1 + 2 x2 + x3 = 6
⎨ .
⎩ x1 + x2 + x4 = 5
x j ≥ 0, j = 1,4
• Reprezentarea grafică a mulţimii soluţiilor admisibile :
(d1 ) : x1 + 2 x2 = 6
(d 2 ) : x1 + x 2 = 5
x2

Figura I.3.13

A
3

O C 6 x1
d1

d2
● Tabelul sinteză:
Vârf Coordonate SAB f (SAB )
A x1 = 0 x1 = 0 x3 = 0 6

x2 = 3 x2 = 3 x4 = 2
B x1 = 4 x1 = 4 x3 = 0 4c1 + 2
x2 = 1 x2 = 1 x4 = 0
C x1 = 5 x1 = 5 x3 = 1 5c1
x2 = 0 x2 = 0 x4 = 0
Analiza economico-matematică a unor modele liniare

Se explicitează sistemul de restricţii în raport cu baza (a2 a4 ) :


⎛ 2 0 ⎞⎛ x 2 ⎞ ⎛ 6 ⎞ ⎛1 1 ⎞⎛ x1 ⎞
⎜⎜ ⎟⎟⎜⎜ ⎟⎟ = ⎜⎜ ⎟⎟ − ⎜⎜ ⎟⎟⎜⎜ ⎟⎟ ⇒
⎝ 1 1 ⎠⎝ x 4 ⎠ ⎝ 5 ⎠ ⎝1 0 ⎠⎝ x3 ⎠

⎛ 1 ⎞ ⎛ 1 ⎞
⎛ x2 ⎞ ⎜ 2 0 ⎟⎛ 6 ⎞ ⎜
2
0 ⎟⎛1 1 ⎞⎛ x ⎞
⎜⎜ ⎟⎟ = ⎜ ⎟⎜⎜ ⎟⎟ − ⎜ ⎟⎜⎜ ⎟⎟⎜⎜ 1 ⎟⎟
⎝ x 4 ⎠ ⎜⎜ − 1 5
1 ⎟⎟⎝ ⎠ ⎜⎜ −
1
1 ⎟⎟⎝ 1 0 ⎠⎝ x3 ⎠
⎝ 2 ⎠ ⎝ 2 ⎠
adică,
⎛ 1 1 ⎞
⎛ x2 ⎞ ⎛ 3 ⎞ ⎜ 2 ⎟
2 ⎟⎛⎜ x1 ⎞⎟ .
⎜⎜ ⎟⎟ = ⎜⎜ ⎟⎟ − ⎜
⎝ x4 ⎠ ⎝ 2 ⎠ ⎜⎜ − 1 1 ⎜ ⎟
− ⎟⎟⎝ x3 ⎠
⎝ 2 2⎠
Dacă x1 = 0 , x2 = 3 , x3 = 0 şi x 4 = 2 se obţine soluţia admisibilă de
bază corespunzătoare vârfului A. Baza (a 2 a 4 ) este optimală dacă
⎧6 ≥ 4c1 + 2
[max] f = f ( A) = 6 şi ⎨ ⇔ c1 ≤ 1 .
⎩6 ≥ 5c1
Din considerente economice, c1 poate reprezenta un profit unitar, aşadar,
c1 ∈ (0,1]
Problema duală se scrie conform regulilor cunoscute şi rezultă:
[min ]g = 6u1 + 5u2
⎧u1 + u2 ≥ c1

⎩2u1 + u2 ≥ 2
ui ≥ 0 , i = 1,2
Forma generală a problemei de programare liniară. Definiţii şi proprietăţi fundamentale

După înlocuirea lui c1 cu valoarea impusă şi extinderea modelului cu


restricţia 6u1 + u2 ≥ 3 , se obţine modelul

[min ]g = 6u1 + 5u 2 [min ]g = 6u1 + 5u 2


⎧u1 + u 2 ≥ 1 ⎧u1 + u 2 − u 3 = 1
⎪ ⎪
⎨2u1 + u 2 ≥ 2 cu forma standard ⎨2u1 + u 2 − u 4 = 2 .
⎪6u + u ≥ 3 ⎪6u + u − u = 3
⎩ 1 2 ⎩ 1 2 5

u i ≥ 0 , i = 1,2 u i ≥ 0 , i = 1,5

Figura I.3.14

x2

3 D

2
E

O 1 F x1
d1
d3
d2

Se observă că mulţimea convexă a soluţiilor admisibile este nevidă


şi nemărginită.
Analiza economico-matematică a unor modele liniare

Tabelul sinteză al problemei duale este:

Vârf Coordonate SAB f (SAB )


D u1 = 0 u1 = 0 u3 = 2
u5 = 0 15
u2 = 3 u2 = 3 u4 = 1
E u1 = 1 / 4 u1 = 1 / 4 u 3 = 3 / 4
u5 = 0 9
u2 = 3 / 2 u2 = 3 / 2 u4 = 0
F u1 = 1 u1 = 1 u3 = 0
u5 = 0 6 [min]g
u2 = 0 u2 = 0 u4 = 0

Observaţie: Pentru c1 = 1 se obţin [min]g = [max] f = 6 , dar şi alte


rezultate interesante privind relaţiile dintre soluţiile admisibile de bază ale
celor două probleme duale.

⎛ 0⎞
⎜ ⎟
⎜3⎟
X S . A.B = ⎜ ⎟ soluţie optimă pentru c1 = 1
A

0
⎜ ⎟
A ⇔ ⎜ 2⎟
⎝ ⎠
[max] f = f ( A) = 6

U SD. A.B = (0 2 2 1 0 ) f ( A) ≤ g (D )
D ⇔
g (D ) = 15

f ( A ) ≤ g (E )
U SE. A.B = (1 / 4 3 / 2 3 / 4 0 0 )
E ⇔
g (E ) = 9
f ( A) ≤ g ( F )
F ⇔ U SF. A.B = (1 0 0 0 3)
g (F ) = 6

Valoarea funcţiei de eficienţă care se cere minimizată, calculată în


orice soluţie admisibilă de bază a respectivului model, depăşeşte sau este cel
Forma generală a problemei de programare liniară. Definiţii şi proprietăţi fundamentale

puţin egală cu valoarea funcţiei de eficienţă a dualei sale în orice soluţie


admisibilă de bază a acesteia.

Problema 3 a) Să se rezolve:

[opt ] f = 5 x1 + 6 x 2
⎧ 2 x1 + 7 x 2 ≥ 4
⎪ 3x + x ≥ 2
⎪⎪ 1 2

⎨ 5 x1 + 3 x 2 ≤ 15 .
⎪ 2 x − x ≥ −2
⎪ 1 2

⎪⎩− x1 + 2 x 2 ≥ −2
x1 , x 2 ≥ 0
Soluţie:
• Se aduce problema la forma în care termenii liberi sunt toţi pozitivi:

[opt ] f = 5 x1 + 6 x 2 [opt ] f = 5 x1 + 6 x 2
⎧ 2 x1 + 7 x 2 ≥ 4 ⎧ 2 x1 + 7 x 2 − x3 = 4
⎪ 3x + x ≥ 2 ⎪ 3x + x − x = 2
⎪⎪ 1 2 ⎪⎪ 1 2 4

⎨5 x1 + 3 x 2 ≤ 15 , apoi se scrie sub forma standard ⎨5 x1 + 3 x 2 + x5 = 15 .


⎪− 2 x + x ≤ 2 ⎪− 2 x + x + x = 2
⎪ 1 2
⎪ 1 2 6

⎪⎩ x1 − 2 x 2 ≤ 2 ⎪⎩ x1 − 2 x 2 + x7 = 2
x1 , x 2 ≥ 0 x j ≥ 0, ∀j = 1,7
Analiza economico-matematică a unor modele liniare

• Rezolvarea în spaţiul activităţilor:

x2

Figura I.3.15

5
(d 4 )

C
B1
(d 2 )
B2
2 B

B3 B4 (d 5 )

A
7
4 D
E x1
-1 O 2 2 3
3
(d1 )
-1

(d 3 )

Se observă că mulţimea χ este nevidă, mărginită şi convexă. În acest


caz, funcţia liniară f îşi atinge valoarea minimă, dar şi cea maximă, într-unul
din vârfurile poligonului ABCDE, care reprezintă exact mulţimea soluţiilor
admisibile χ.
Forma generală a problemei de programare liniară. Definiţii şi proprietăţi fundamentale

Vârf Coordonate Valoarea funcţiei Valori optime


obiectiv
x1 = 10 / 19 98 ⇒ [min] f = 5,16
A = 5,16
x 2 = 8 / 19 19 x1* = 10 / 19
x1 = 0 12 x 2* = 8 / 19
B
x2 = 2
x1 = 9 / 11 285 ⇒ [max] f = 25,90
C = 25,90
x 2 = 40 / 11 11 x1* = 9 / 11
x1 = 36 / 13 210 x 2* = 40 / 11
D = 16,15
x 2 = 5 / 13 13
x1 = 2 10
E
x2 = 0

Dacă se înlocuieşte condiţia de nenegativitate cu cea de integritate


nenegativă,
x1 , x 2 ∈ Z + ,
atunci mulţimea soluţiilor admisibile, χ I este mulţimea nevidă

χ I = {B, B1 , B 2 , B 3 , B 4 , E},
care nu este convexă. În acest caz simplu, soluţia optimă se stabileşte prin
investigarea tuturor punctelor mulţimii soluţiilor admisibile, după cum
urmează:

Vârf Coordonate Valoarea funcţiei Valori optime


obiectiv
X1 = 0
B
X2 = 2 12
X1 = 1 ⇒ [max] f = 23
B1
X2 = 3 23
X1 = 1 x1* = 1
B2
X2 = 2 17
X1 = 1 x 2* = 3
B3 11
X2 = 1 ⇒ [min] f = 11
X1 = 2
B4 16
X2 = 1 x1* = 1
X1 = 2
E
X2 = 0 10 x 2* = 1
Analiza economico-matematică a unor modele liniare

b) Să se rezolve aceeaşi problemă prin extinderea modelului cu restricţia:


Cazul I: x 2 ≤ 3 şi se cere [max ] f .
• Mulţimea soluţiilor admisibile χ1 este reprezentată în figura ce urmează:

x2

5
Submulţimea convexă (CC 1 C 2 )
(d 4 )
eliminată de x 2 ≤ 3

C
(d 6 ) Figura I.3.16
3
C1 C2

B 2

(d 5 )

A
D
7/4
2 x1
-1 3 3
O 2 E (d1 )
-1 (d 2 ) (d 3 )
Forma generală a problemei de programare liniară. Definiţii şi proprietăţi fundamentale

Cazul II: x1 + 2 x 2 ≥ 2 şi se cere [min ] f .


Multimea soluţiilor admisibile χ2:

x2

(d 4 )

C
Submulţimea convexă (AA 1 E )

(d 2 ) eliminată de x1 + 2 x 2 ≥ 2

(d 6 ) (d 5 )
1 D
A1
A x1
O E
(d1 )
(d 3 )
Analiza economico-matematică a unor modele liniare

• Tabelul sinteză pentru ambele cazuri:

Valoarea
Vârf Coordonate funcţiei Valori optime Observaţii
obiectiv
x1 = 10 / 19
A 98 / 19 ⇒ [min] f = 98 / 19 Se menţine faţă
x 2 = 8 / 19 de modelul
x1* = 10 / 19 iniţial.
x1 = 0
B 12 x 2* = 8 / 19
x2 = 2
x1 = 1 / 2
C1 41 / 2
x2 = 3
⇒ [max] f = 24 Valoarea
x1 = 6 / 5 maximă pe noul
C2 24 x1* = 6 / 5 domeniu este
x2 = 3 mai mică.
x 2* = 3
x1 = 36 / 13
D 210 / 13
x 2 = 5 / 13
x1 = 2
E 10
x2 = 0
x1 = 2 / 5 ⇒ [min] f = 34 / 5 Valoarea
A1 34 / 5 minimă creşte
x2 = 4 / 5 x1* = 2 / 5 faţă de modelul
iniţial.
x1 = 0 x 2* = 4 / 5
B 12
x2 = 2
x1 = 9 / 11 ⇒ [max] f = 285 / 11 Valoarea
C 285 / 11 maximă se
x 2 = 40 / 11 x1* = 9 / 11 menţine faţă de
x1 = 36 / 13 x 2* = 40 / 11
modelul iniţial.
D 210 / 13
x 2 = 5 / 13
x1 = 2
E 10
x2 = 0

În general, este adevărat că dacă mulţimea χ intersectată cu un


semiplan ai1 x1 + ai 2 x 2 ≤ bi îşi pierde o porţiune convexă, atunci:
- valoarea lui [max] f se menţine sau scade;
- valoarea lui [min] f se menţine sau creşte.
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
( ) −1
( )
⋅ b − B1
−1
⋅ RX R , unde

(B ) ⋅ b = (X ) (X )
not
= ( x1 , x 2 , ...., xm )
1 −1 B1 B1 T
≥ 0 . Elementele vectorului sunt
valorile variabilelor bazice, deci, componentele nenegative ale vectorului
X1.

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
1
j ∈ J − J B , f j − c j < 0 şi există cel puţin un indice s ∈ J B astfel încât

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ă


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 daţi de relaţiile:

II.1.1 f 1 − c1 = min { f j − c j | f j − c j < 0 }


j∈J − J B
şi
xk ⎧⎪ x ⎫⎪
II.1.2 = min ⎨ s y sj > 0⎬ .
y kl s ∈ J B ⎪⎩ y 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.
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ă Optim infinit
determinată
f j −cj > 0, f j − c j ≥ 0 , ∀j ∈ {1,.., n}
∃l ∈ J − J B a.î.
∀j ∈ J − J B
şi
[max] f l − cl < 0 şi
f j −cj = 0, ∃k ∈ J − J B a.î.
f k − ck = 0 y sl ≤ 0 , ∀s ∈ J B
∀j ∈ J B

f j −cj = 0, f j − c j ≤ 0 , ∀j ∈ {1,.., n}
∃l ∈ J − J B a.î.
∀j ∈ J B şi
[min] f l − cl > 0 şi
f j −cj < 0, ∃k ∈ J − J B a.î.
f k − ck = 0 y sl ≤ 0 , ∀s ∈ J B
∀j ∈ J − J B

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

Modelul matematic.
Forma standard
AX = b , X ≥ 0 , [max] f ( X ) = cX
rangAm×n = 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 ⎞
X (1) = ⎜⎜ ⎟ , J B = {1,..., m}

⎝ x =0
R

Metode simplex pentru modele liniare

Calculează:
⎧ 0 , pentru ∀a j vector bazic
−1 ⎪
• f j − c j = c ⋅ B ⋅ a j − c j care este ⎨≥ 0 , pentru a j vector nebazic, sau
B

⎪ ≤ 0 , pentru a vector nebazic


⎩ j
−1
• f0 = c ⋅ B ⋅ b
B

STOP. Problema admite soluţie


fj − cj ≥ 0 DA optimă finită
⎛ B −1 b ⎞
∀j = 1, n f 0 = [max] f ; X = ⎜⎜
*


⎝ 0 ⎠

NU

(∃) vector nebazic cu


componentele negative şi diferenţa DA
strict negativă? STOP.
Problema admite
( ∃l ∈ J \ J B a.î. f l − cl < 0 optim nemărginit
şi y sl ≤ 0 , ∀s ∈ I

(1)
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

⎧x ⎫ x
• criteriul de eliminare din bază (C.E.B): min ⎨ s ⎬ = k raport unic.
y sr > o y y kr
s∈I ⎩ sr ⎭
Observaţii:
- a k va fi eliminat de a r ;
- y kr > 0 este pivotul iteraţiei;
- 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ă:
x k y k1 y
1) Elementele din linia pivotului, linia k: , ,...., kn ;
y kr y kr y kr
2) Vectorii care se menţin în bază îşi menţin componentele; dacă ar a luat locul lui ak ,
atunci, în noua bază, ar va avea componentele lui ak ;
3) Pentru orice altă componentă care nu a fost calculată la 1) sau 2), se aplică una dintre
formulele:
x i ⋅ y kr − x k ⋅ y ir
x i := , pentru i ∈ J B \ {r}
y kr
y ij ⋅ y kr − y kj ⋅ y ir
y ij := , pentru j∈J
y kr
Metode simplex pentru modele liniare

Observaţia 5:
• numărul soluţiilor admisibile de bază este cel mult C nm ;
• trecerea de la o iteraţie la alta presupune trecerea de la o SAB la o altă
soluţie admisibilă de bază, cel puţin la fel de bună în sensul dat de optimul
funcţiei; rezultă că după un număr finit de paşi acest procedeu iterativ se
opreşte dacă nu apare fenomenul de ciclare.

Observaţia 6: Prin algoritmul simplex sunt examinate numai soluţiile


admisibile de bază. Procedura de iterare a algoritmului simplex se opreşte
atunci când nu va mai exista nici un vector care, introdus în bază, să ducă la
creşterea valorii funcţiei scop, dacă problema admite optim finit. Din punct
de vedere geometric se ajunge la punctul de extrem al mulţimii χ care
optimizează funcţia scop.

Observaţia 7: Prin trecerea de la o SAB la o alta cel puţin la fel de bună în


sensul dat de tipul de optim al funcţiei f ( X ) , se realizează o creştere a
xk
acesteia cu ( f r − cr ) .
y kr

Observaţia 8: Când scopul este de a minimiza funcţia obiectiv, algoritmul


se modifică, în sensul maximizării funcţiei (− f ) .

1.c) Aplicaţii 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 spaţiul
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
⎩ 1 2 3

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

II.1.6 ⎨2 x1 + x2 + 4 x3 + x5 = 800 .
⎪2 x + 2 x + x + x = 900
⎩ 1 2 3 6

x j ≥ 0, ∀j = 1,6

Etapa 1: Generarea unei soluţii admisibile de start.

Pasul 1 • Se scrie matricea A şi se verifică apoi condiţia


rangA3×6 = 3 < 6 :

⎡1 2 0 1 0 0⎤
A = ⎢⎢2 1 4 0 1 0⎥⎥
şi rangA = 3 < 6.
⎢⎣2 2 1 0 0 1⎥⎦
a1 a 2 a3 a 4 a5 a 6
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

⎛ x4 ⎞ ⎛ x1 ⎞
⎜ ⎟ ⎜ ⎟
unitate a4 , a5 şi a6 . Aşadar, X B1
= ⎜ x5 ⎟ , X R1
= ⎜ x2 ⎟ , de unde rezultă
⎜x ⎟ ⎜x ⎟
⎝ 6⎠ ⎝ 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 stabileşte SAB de start:

⎛ 680 ⎞ ⎛0⎞
⎜ ⎟ not B ⎜ ⎟
⎜ 800 ⎟ = X şi X = ⎜ 0 ⎟ , sau
R

⎜ 900 ⎟ ⎜0⎟
⎝ ⎠ ⎝ ⎠
X SAB = (0 0 0 680 800 900 ) .
T

Observaţia 9: Nu are importanţă ce coloane ale matricii A sunt vectori


liniar independenţi în R m ; important pentru rapiditatea găsirii soluţiei
optime este ca A să conţină o matrice unitate.
Analiza economico-matematică a unor modele liniare

Pasul 2

⎛ 680 ⎞
⎜ ⎟
f0 = f (X ) = c ⋅ X
1 B B
= (c 4 c5 c6 ) ⋅ X B
= (0 0 0 ) ⋅ ⎜ 800 ⎟ = 0 ;
⎜ 900 ⎟
⎝ ⎠
⎛1⎞
⎜ ⎟
f1 = c ⋅ I
B −1
3 ⋅ a1 = (0 0 0 ) ⋅ I 3 ⋅ ⎜ 2 ⎟ = 0 ,
⎜ 2⎟
⎝ ⎠
⎛ 2⎞
⎜ ⎟
f2 = c ⋅ I
B −1
3 ⋅ a 2 = (0 0 0 ) ⋅ I 3 ⋅ ⎜ 1 ⎟ = 0 ;
⎜ 2⎟
⎝ ⎠
⎛0⎞
⎜ ⎟
f3 = c ⋅ I
B −1
3 ⋅ a3 = (0 0 0 ) ⋅ I 3 ⋅ ⎜ 4 ⎟ = 0 ,
⎜1⎟
⎝ ⎠
⎛1⎞
⎜ ⎟
f4 = c ⋅ I
B −1
3 ⋅ a 4 = (0 0 0 ) ⋅ I 3 ⋅ ⎜ 0 ⎟ = 0 ;
⎜0⎟
⎝ ⎠
⎛0⎞
⎜ ⎟
f5 = c ⋅ I
B −1
3 ⋅ a5 = (0 0 0 ) ⋅ I 3 ⋅ ⎜ 1 ⎟ = 0 ,
⎜0⎟
⎝ ⎠
⎛0⎞
⎜ ⎟
f6 = c ⋅ I
B −1
3 ⋅ a 6 = (0 0 0 ) ⋅ I 3 ⋅ ⎜ 0 ⎟ = 0 .
⎜1⎟
⎝ ⎠

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 corespunzător bazei
de start.
Metode simplex pentru modele liniare

T. II.1.1
cj → 20 16 17 0 0 0
cB B XB a1 a2 a3 a4 a5 a6 ρ
0 a4 680 1 2 0 1 0 0 680/1
0 a5 800 2 1 4 0 1 0 800/2 (minim)
0 a6 900 2 2 1 0 0 1 900/2
fj 0 0 0 0 0 0 0
f j −cj -20 -16 -17 Ø Ø Ø

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

STOP. X 1 este soluţia optimă


DA
a problemei şi f 0 valoarea
f j − c j ≥ 0 , ∀j = 1, n ? maximă a funcţiei 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 = +∞
∃l ∈ J − J astfel încât f l − cl < 0 şi y sl ≤ 0 , ∀s ∈ J ?
B B

NU Pasul 5

Din T.II.1.1 se observă că nu există vector nebazic (a1 a2 a3 ) cu toate


componentele negative şi pentru care f l − cl < 0 .
Analiza economico-matematică a unor modele liniare

Pasul 5 Dacă algoritmul nu se opreşte la Pasul 3 sau Pasul 4,


rezultă că soluţia testată, X 1 , nu este optimală, deci, trebuie să se treacă la o
nouă SAB, X 2 , cel puţin la fel de bună ca X 1 , în sensul că f X 1 ≤ f X 2 . ( ) ( )
Pentru aceasta se vor executa două operaţii.

Operaţia 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
j∈J − J

bază.

Operaţia 2: Se aplică criteriul de eliminare din bază:

[max ] f ⎧x ⎫ ⎧b ⎫ b
C.E.B → ρ = minB ⎨ s y sl > 0⎬ = minB ⎨ s a sl > 0⎬ = k , pentru X 1,
[min ] f s∈J
⎩ y sl ⎭ s∈J ⎩ a sl ⎭ a kl
xk
sau, în general, ρ = , de unde rezultă că a k va fi eliminat, iar y kl devine
y kl
pivotul iteraţiei. 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:

Operaţia 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
Operaţia 2: min ⎨ 1 , 2 , 3 ⎬ = min ⎨ , , ⎬= = ⇒
⎩ a11 a 21 a33 ⎭ ⎩ 1 2 2 ⎭ 2 a 21
a 2 va fi eliminat şi a 21 = 2 este pivotul iteraţiei, 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 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 ... 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


B
X în noua bază. Aceste calcule ce vor fi trecute în tabelul T.II.1.3 –
iteraţia 2 a algoritmului simplex – sunt efectuate în conformitate cu
calculele implicate de metoda eliminării complete:

• Dacă un vector se menţine în bază, atunci el îşi menţine componentele


(a1 ... ak ak +1 ... am ) ; dacă vectorul ak este eliminat din bază de
către al , atunci acesta îi ia componentele (vezi tabelul T.II.1.2). În
particular, vectorii a 4 , a 6 îşi menţin componentele, iar vectorul a1 va avea
componentele lui a 5 din iteraţia 1.
• Elementele din linia vectorului al se obţin împărţind elementele din linia
vectorului a k , iteraraţia precedentă, la pivotul iteraţiei, y kl . Astfel,
800 2 1 4 0 1 0
elementele din linia 2, iteraţia 2, iau valorile , , , , , , .
2 2 2 2 2 2 2

Formulele de trecere de la o iteraţie la alta pot fi sistematizate direct în


tabelul simplex:
T.II.1.2
cj → c1
. c k −1 ck c k +1
. cm c m +1
. cj
. cl
. cn

c
B
B X
B
a1 . a k −1 ak a k +1 . am a m +1 . aj . al . an ρ
. . 0 0 . 0 0
b ⋅a −b ⋅a a a ij ⋅ a kl − a kj ⋅ a il
1 kl k 1l 1l
c1 a1 −
a a
kl kl a kl
. . . . . . . . B .
. . . ∀j ∈ J − J 2
.
. . 1 0 . 0 0
b ⋅a −b ⋅a a
k +1 k − 1l k − 1l
c k −1 a k −1 kl k

a a
kl kl
. . . 0 . . . . . 1 .
b 1 a a
cl al k km + 1 kn
a a a
kl a
kl kl kl
. . 0 1 . 0 0
b ⋅a −b ⋅a a
k +1 k + 1l k + 1l
c k +1 a k +1 kl k

a a
kl kl
. . . . . . . . .
. . .
.
. . 0 . 0 . 1 0
b ⋅a −b ⋅a
m kl k ml
cm am
a
kl

fj f1
. . fk
. . fm fl fn
f0
. 0 fk − c
0 . . . . .
fj − f1 − fm − f m +1 − fl − fn −
k
c c c c c c
j 1 m m +1 l n
Metode simplex pentru modele liniare

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


numeric de mai înainte, obţinem:

680 ⋅ 2 − 800 ⋅1
= 280
2
XB

900 ⋅ 2 − 800 ⋅ 2
= 100
2

1 2
2 ⋅ 2 − 1⋅1
y12 :=
• prima componentă 2
1
2
a2

• a treia componentă 2 ⋅ 2 − 2 ⋅1
2 1 y 32 :=
2

2 2
Analiza economico-matematică a unor modele liniare

Rezultatele calculelor pentru exemplul numeric propus, până la


oprirea algoritmului, sunt date în tabelul II.1.3:

T.II.1.3
cj → 20 16 17 0 0 0

cB B
XB a1 a 2 a3 a 4 a5 a6 ρ

0 a4 280 0 3/2 -2 1 -1/2 0 280/3/


2
20 a1 400 1 1/2 2 0 1/2 0 400/2
Iteraţia 2
0 a6 100 0 1 -3 0 -1 1 100/2

fj 8000 20 10 40 0 10 0

f j −cj Ø -6 23 Ø 10 Ø ≥ 0 ? NU

0 a4 130 0 0 5/2 1 1 -3/2


20 a1 350 1 0 7/2 0 1 -1/2
16 a2 100 0 1 -3 0 -1 1
Iteraţia 3 8600 20 16 22 0 4 6
fj
f j −cj Ø Ø 5 Ø 4 6 ≥ 0 ? DA ⇒ STOP

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


pentru care algoritmul se opreşte, modelul liniar admiţând soluţie optimă
finită.
Metode simplex pentru modele liniare

Citirea soluţiei:

Baza optimă Variabile bazice Valori optimale


a4 x4 130
a1 x1 350
a2 x2 100
Variabile nebazice Valori optimale
x3 0

x5 0

x6 0

Soluţia 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ă numărul componentelor strict pozitive este egal cu
rangA=3.
• [max] f = 8600 = f 0 în ultimul tabel, 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
⎪⎩ x2 + x3 − x4 = 1
x j ≥ 0 , j = 1,4
Analiza economico-matematică a unor modele liniare

Vom studia natura sa aplicând algoritmul propus de Dantzig.


⎡1 0 − 1 1 / 2 ⎤
⎛1⎞ A=⎢ ⎥
Deoarece b = ⎜⎜ ⎟⎟ > 0 , ⎣0 1 1 − 1 ⎦ , rang A=2<4 şi
⎝1⎠
a1 a 2 a3 a4
⎡1 0⎤
B=⎢ ⎥ = (a1 a 2 ) , rezultă că scrierea canonică a sistemului de restricţii
⎣0 1 ⎦

⎡1 0⎤ ⎛ x1 ⎞ ⎡− 1 1 / 2⎤ ⎛ x3 ⎞ ⎛1⎞
⎢0 1⎥ ⋅ ⎜⎜ x ⎟⎟ + ⎢ 1 − 1 ⎥ ⋅ ⎜⎜ x ⎟⎟ = ⎜⎜1⎟⎟ ,
⎣ ⎦ ⎝ 2⎠ ⎣ ⎦ ⎝ 4⎠ ⎝ ⎠

evidenţiază o SAB de start, şi anume, X SAB = (1 1 0 0 ) .


T

Calculele implicate de aplicarea algoritmului sunt sistematizate în


următorul tabel simplex:

cj → 1 2 2 1

cB B
XB a1 a2 a3 a4 ρ

1 a1 1 1 0 -1 1/2 1/(1/2)
2 a2 1 0 1 1 -1 -

fj 3 1 2 1 -3/2

f j −cj Ø Ø -1 -5/2 ≥ 0 ? NU; Th.3? NU ⇒ Th.1

1 a4 2 2 0 -2 1 -
2 a2 3 2 1 -1 0 -

fj 8 6 2 -4 1

f j −cj 5 Ø -6 Ø ≥ 0 ? NU; Th.3? DA


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 [min]g = u1 + u 2
⎧ 1
⎪1 ⋅ x1 + 0 ⋅ x2 + (− 1) ⋅ x3 + ⋅ x4 = 1 u1 ∈ R
⎨ 2 u2 ∈ R
⎪⎩0 ⋅ x1 + 1 ⋅ x2 + 1 ⋅ x3 + (−1) ⋅ x4 = 1
u1 + 0 ⋅ u 2 ≥ 1
x1 ≥ 0 1⋅ u2 ≥ 2
x2 ≥ 0
x3 ≥ 0
(− 1) ⋅ u1 + u 2 ≥ 2
1
x4 ≥ 0 ⋅ u1 − u 2 ≥ 1
2

u2 d 1 : u1 = 1

d 2 : u2 = 2

1
d 4 : u2 = u1 − 1
2
O u1
d 3 : u 2 = u1 + 2
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 restricţii.
Să reţinem că, dacă o problemă de programare liniară are optim infinit,
atunci duala sa nu are soluţie. Este aceasta o afirmaţie general valabilă?
Răspunsul îl vom afla în următorul capitol.

2. Generarea SAB prin metode particulare

În continuare, vom analiza cazul în care matricea A, după aducerea


la forma standard, nu conţine o bază unitate din spaţiul R m . În general, în
matricea A din modelele matematice corespunzătoare unor procese reale nu
apare complet I m . Pentru a genera o soluţie admisibilă de bază a problemei
date, dacă acest lucru este posibil, se poate alege una din variantele:
• Scrierea explicită a sistemului de restricţii î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 conţine o bază unitate de ordinul m.


Prin această metodă se urmăreşte 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 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.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 )
T
este

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


scrierea X a = b − AX , rezultă soluţia de start:

⎧ X =0
X SAB ⎨ .
⎩X a = b

Pentru a exemplifica parcurgerea acestei etape, considerăm modelul


liniar:

[max] f = 3 x1 + 2 x2 + 4 x3
⎧ x1 + 4 x2 + 3 x3 = 6 ⎡1 4 3⎤ ⎛ 6⎞
⎨ , unde A = ⎢ ⎥ , b = ⎜⎜ ⎟⎟ , rangA=2<3.
⎩ 2 x1 + x2 + x3 = 4 ⎣2 1 1⎦ ⎝ 4⎠
x j ≥ 0 , j ∈1,3 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
⎨ , α >> 0 În noua matrice
⎩ 2 x1 + x2 + x3 + x5 = 4
a

x j ≥ 0 , j ∈1,5

⎡1 4 3 1 0 ⎤
A=⎢ ⎥ , apare baza B = (a 4 a5 ) , care permite scrierea
⎣2 1 1 0 1⎦
soluţiei 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 .

Observaţia 1: Valoarea funcţiei obiectiv este o valoare foarte mică ( bi ≥ 0 ,

∀i = 1, m şi α >> 0 ). Deoarece se cere maximizarea lui f, ideal ar fi ca în


soluţia optimă toate variabilele artificiale să aibă valoarea 0. Variabilele
artificiale au fost “penalizate” în funcţia obiectiv cu coeficienţi foarte mici,
pentru ca algoritmul simplex să le elimine din bază. Dacă se cere [min] f ,
(
atunci ele vor fi penalizate cu coeficienţi 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 iteraţii, k ∈ N * , k < ∞ , avem f j − c j ≥ 0 , j = 1, n + m , deci,
problema extinsă admite soluţie optimă finită.
Metode simplex pentru modele liniare

La baza discuţiei ce va urma, relativ la existenţa sau nonexistenţa


soluţiei optime a problemei iniţiale, stau următoarele teoreme:

Teorema 1 Dacă II.2.1 are soluţie Teorema 2 Dacă II.2.1 are


optimă finită, atunci ea va fi optimă funcţia obiectiv nemăr-
şi pentru II.2.2. Orice soluţie optimă ginită, atunci şi II.2.2 are
a problemei extinse care nu conţine funcţia obiectiv nemărginită.
nici o variabilă artificială strict Reciproca este adevărată.
pozitivă este soluţie optimă şi pentru
problema iniţială, după înlăturarea
variabilelor artificiale.

După oprirea algoritmului, 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.2.1 se
obţine considerând numai valorile optimale ale variabilelor x1 ,..., xn .

Cazul 2: În soluţia optimă există cel puţin o variabilă artificială cu valoare


strict pozitivă; în acest caz, problema iniţială nu are soluţie.

Observaţia 2: Deoarece funcţia obiectiv este de forma (CX − αX a ) ,


diferenţele f j − c j vor fi funcţii liniare de α . Să presupunem că la o
anumită iteraţie există ( f j − c j )(α ) < 0 pentru cel puţin 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).

Observaţia 3: Să presupunem că algoritmul s-a oprit la iteraţia k ∈ N * ,


k < +∞ , şi că la iteraţia r ∈ N * , r < k , s-a obţinut o bază formată numai cu
vectori din A (fără vectori artificiali). SAB corespunzătoare acestei baze
Analiza economico-matematică a unor modele liniare

este o SAB pentru problema iniţială. Practic, la această etapă, se aplică


algoritmul simplex primal pentru problema originară.
Observaţia 4: În general, dacă a fost eliminat un vector artificial din bază,
componentele sale nu vor mai fi calculate la următoarele iteraţii. Nu se
recomandă acest lucru atunci când se cere soluţia optimă a dualei sau se
pune problema postoptimizării modelului.
Se continuă problema prin aplicarea algoritmului simplex primal

cj → 3 2 4 −α −α

c
B
B X
B a1 a2 a3 a4 a5 ρ

−α a4 6 1 4 3 1 0 6/4
−α a5 4 2 1 1 0 1 4/1

fj − 10α − 3α − 5α − 4α −α −α

≥ 0 ∀j ?
fj −cj − 3α − 3 − 5α − 2 − 4α − 4 Ø Ø
NU
2 a2 3/2 1/4 1 3/4 1/4 0 6
−α a5 5/2 5/4 0 1/4 -1/4 1 2

fj − 5α / 2 + 3 1 / 2 − 5α / 4 2 3/ 2 −α / 4 1/ 2 + α / 4 −α

≥ 0 ∀j ?
fj −cj − 5 / 2 − 5α / 4 Ø − 5 / 2 − 5α / 4 1 / 2 + 5α / 2 Ø
NU
2 a2 1 0 1 7/10 3/10 -1/5 10/7
3 a1 2 1 0 1/5 -1/5 4/5 10

fj 8 3 2 2 0 2
≥ 0 ∀j ?
fj −cj Ø Ø -2 α 2 +α
NU
4 a3 10/7 0 10/7 1 3/7 -2/7
3 a1 12/7 1 -2/7 0 -2/7 6/7

fj 76/7 3 24/7 24 6/7 10/7

−cj 6/7 +α 10 / 7 + α
≥ 0 ⇒ DA
fj Ø 20/7 Ø
STOP
Metode simplex pentru modele liniare

• Exemplificarea observaţiei 2:
Iteraţia 1 C.I.B: min{− 3α − 3, − 5α − 2, - 4α - 4} = − 5α − 2 = f 2 − c2 sau
min{-3, -5, -4}=-5 ⇒ a 2 eliminat.

Iteraţia 2 C.I.B: min{-5/4, -1/4}=-5/4 ⇒ a1 va intra în bază.


La iteraţia a 3-a, variabilele artificiale au fost eliminate şi dispunem acum
de o bază a problemei iniţiale: (a 2 , a1 ) , cu x1 = 2 , x 2 = 1 , x 3 = 0 .

• Exemplificarea observaţiei 1: în soluţia optimă a problemei extinse,


12 10
x1* = , x 2* = 0 , x 3* = , x 4* = 0 , x 5* = 0 , toate variabilele artificiale au
7 7
valori nule. Conform unei teoreme enunţată anterior în acest capitol,
T
⎛ 12 10 ⎞
problema iniţială admite soluţia optimă finită X * = ⎜ 0 ⎟ şi
⎝7 7⎠
76
[max] f = .
7

Considerăm acum un alt exemplu pentru a aplica metoda şi în cazul


în care se impune minimizarea funcţiei scop. Rezolvarea problemei, fără
comentarii, este redată în cele ce urmează:

[min] f = 5 x1 + x2 + 2 x3 [min] f = 5 x1 + x2 + 2 x3
⎧ x1 + 2 x2 + x3 ≥ 6 ⎧ x1 + 2 x2 + x3 − x4 = 6
⎪ ⎪
⎨ 3x2 + 4 x3 = 20 ⇒ forma standard ⎨ 3x2 + 4 x3 = 20 .
⎪ x + 2 x ≥ 18 ⎪ x + 2 x − x = 18
⎩ 2 3 ⎩ 2 3 5

x j ≥ 0, j = 1,3 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 2 1 −1 0 0⎤
0

⎨ 3 x 2 + 4 x 3 + x 6 = 20 A = ⎢⎢0 3 4 0 0 1 0⎥⎥
a

⎪ x + 2 x − x + x a = 18 , ⇒
⎩ 2 3 5 7 ⎢⎣0 1 2 0 − 1 0 1⎥⎦
x j ≥ 0, j = 1,7 a1 a 2 a3 a 4 a5 a6 a7

⎛ x1 ⎞ ⎛ 6 ⎞
⎜ ⎟ ⎜ ⎟
X = ⎜ x6 ⎟ = ⎜ 20 ⎟
B

⎜ x ⎟ ⎜ 18 ⎟
⎝ 7⎠ ⎝ ⎠
B = (a1 a6 a7 ) ⇒ X SAB
⎛ x2 ⎞ ⎛ 0 ⎞
⎜ ⎟ ⎜ ⎟
⎜ x3 ⎟ ⎜ 0 ⎟
XR = ⎜ x4 ⎟ = ⎜ ⎟
⎜ ⎟ ⎜0⎟
⎜⎜ x 5 ⎟⎟ ⎜ 0 ⎟
⎝ ⎠ ⎝ ⎠
Metode simplex pentru modele liniare

Tabelul simplex:

cj → 5 1 2 0 0 α α

c
B B B a1 a2 a3 a4 a5 a6 a7 ρ
X
5 a1 6 1 2 1 -1 0 0 0 6/1
α a4 20 0 3 4 0 0 1 0 20/4 (min)
α a7 18 0 1 2 0 -1 0 1 18/2

fj 30 + 38α 5 4α + 10 6α + 5 -5 −α α α [min] f
fj −cj Ø 4α + 9 6α + 3 -3 −α Ø Ø ≤ 0 ∀j ? NU

5 a1 1 1 5/4 0 -1 0 -1/4 0

2 a3 5 0 3/4 1 0 0 1/4 0
α a7 8 0 -1/2 0 0 -1 -1/2 1
31 / 4 − α / 2 [min] f
fj 15 + 8α 5 2 -5 −α − 3/ 4 −α / 2 α

−cj 27 / 4 − α / 2
−α
− 3 / 4 − 3α / 2 ≤ 0 ∀j ? DA
fj Ø Ø -5 Ø
⇒ STOP

Problema extinsă admite soluţia 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 fără soluţie.

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


Se menţin ipotezele de lucru de la metoda bazei artificiale. Ca şi la
metoda precedentă, se urmăreşte generarea unei SAB pentru II.2.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ă, sau informaţia că problema nu are soluţii ceea ce ar
putea indica o modelare greşită a procesului economic.
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, dacă este posibil, o SAB de
start pentru II.2.1, aplicând 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ă adăugată numai părţii stângi a restricţiei 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 restricţii, indiferent de tipul de optim al problemei considerate.
Din II.2.3 rezultă că variabilele artificiale bazice sunt în SAB de start:
⎧ X =0
X SAB = ⎨ . Se aplică algoritmul simplex primal problemei auxiliare.
⎩X a = b
Admitem că aceasta are soluţie optimă finită, deci există o SAB care
verifică criteriul de optimalitate: w j − c j ≤ 0 , ∀j = 1, n + m .
Atunci,
Se trece la rezolvarea ei
Faza 2: Se revine la
prin metoda simplex
DA ⎧ AX = b primal cu SAB de start
min W = 0 ⎪ dată de soluţia optimă a
⎨ X ≥0
⎪[max] f ( X ) = CX problemei auxiliare, după
⎩ ce au fost eliminate
variabilele artificiale.
NU

STOP
II.2.1 nu are soluţii
Metode simplex pentru modele liniare

La baza metodei stau următoarele afirmaţii:


Tema 1: Orice soluţie admisibilă de bază a problemei II.2.1 este SAB a
problemei auxiliare cu X a = 0 . Existenţa unei astfel de soluţii atrage în mod
necesar [min]W=0.
Tema 2: Orice soluţie admisibilă de bază a problemei extinse pentru care
W=0 este o SAB a problemei iniţiale.

Să exemplificăm numeric aplicarea acestei metode. Considerăm


modelul liniar:

[min] f = 50 x1 + 25 x2 + 30 x3
⎧ x1 + 2 x2 + 3 x3 ≥ 8
⎨ , cu forma standard
⎩3 x1 + 4 x2 + x3 ≥ 9
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. Î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 , vom aplica
metoda celor două faze.
Analiza economico-matematică a unor modele liniare

Faza 1: Se construieşte problema auxiliară

[min]W = x6 + x7
⎡1 2 3 − 1 0 1 0⎤
⎧ x1 + 2 x2 + 3 x3 − x4 + x6 = 8 A=⎢ ⎥
⎨ , ⎣3 4 1 0 − 1 0 1⎦ . Deoarece
⎩3x1 + 4 x2 + x3 − x5 + x7 = 9
a1 a2 a3 a4 a5 a6 a7
x j ≥ 0, j = 1,7

⎛1 0⎞
B = (a 6 a 7 ) = ⎜⎜ X SAB : X = 0, X a = (8 9 ) . Se aplică
T
⎟⎟ , rezultă
⎝0 1⎠
algoritmul simplex-primal:

cj → 0 0 0 0 0 1 1

B B B ρ
c X a1 a2 a3 a4 a5 a6 a7
1 a6 8 1 2 3 -1 0 1 0 8/2

1 a7 9 3 4 1 0 -1 0 1 8/4

fj 17 4 6 4 -1 -1 1 1

fj −cj 4 6 4 -1 -1 Ø Ø
≤ 0 ∀j = 1, 7 ? NU.

1 a6 7/2 -1/2 0 5/2 -1 1/2 1 7/5

0 a2 9/4 3/4 1 1/4 0 -1/4 0 9

fj 7/2 -1/2 0 5/2 -1 1/2 1

fj −cj -1/2 Ø 5/2 -1 1/2 Ø


≤ 0 ∀j = 1, 7 ? NU.

0 a3 7/5 -1/5 0 1 -2/5 1/5

0 a2 19/10 4/5 1 0 1/10 -3/10

fj 0 0 0 0 0 0

fj −cj 0 Ø Ø 0 0 ≤ 0 ∀j = 1, 7 ? DA ⇒ STOP.

Problema extinsă are soluţie 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

Observaţie: 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 funcţia obiectiv din modelul originar. Problema de


rezolvat va fi:
⎛ x1 ⎞ ⎛ 0 ⎞
[min] f = 50 x1 + 25 x2 + 30 x3 ⎜ ⎟ ⎜ ⎟
⎜ x2 ⎟ ⎜19 / 10 ⎟
⎧ x1 + 2 x2 + 3x3 − x4 = 8
⎨ , cu X SAB = ⎜ x3 ⎟ = ⎜ 7 / 5 ⎟ obţinută prin
⎩3 x1 + 4 x2 + x3 − x5 = 9 ⎜ ⎟ ⎜ ⎟
⎜ x4 ⎟ ⎜ 0 ⎟
x j ≥ 0, j = 1,5 ⎜x ⎟ ⎜ ⎟
⎝ 5⎠ ⎝ 0 ⎠
eliminarea variabilelor auxiliare din soluţia optimă găsită la faza 1. Se
testează optimalitatea sa:

cj →
50 25 30 0 0
B
c B B a3 a5
X a1 a2 a4

1 a3 7/5 -1/5 0 1 -2/5 1/5

1 a2 19/10 4/5 1 0 1/10 -3/10

fj 89,5 14 25 30 -9,5 -1,5


fj −cj
-36 Ø Ø -9,5 -1,5 ≤ 0 ∀j = 1,5 ? DA ⇒ STOP

T
⎛ 19 7 ⎞
Problema admite soluţia optimă finită X SAB = ⎜ 0 0 0⎟ ,
⎝ 10 5 ⎠
cu [min]f=89,5.
Vom continua studiul modelului matematic prin scrierea dualei:

[max]g = 8u1 + 9u 2
[min] f = 50 x1 + 25 x2 + 30 x3
⎧ u1 + 3u 2 ≤ 50
⎧ x1 + 2 x2 + 3 x3 ≥ 8 → u1 ⎪
⎨ , pentru care duala este ⎨2u1 + 4u 2 ≤ 25 .
⎩3 x1 + 4 x2 + x3 ≥ 9 → u 2 ⎪ 3u + u ≤ 30
⎩ 1 2
x j ≥ 0, j = 1,3
u i ≥ 0, i = 1,2
Analiza economico-matematică a unor modele liniare

Stabilim soluţia optimă a dualei (dacă există). Forma standard a


dualei va evidenţia o bază unitate în R 3 . Într-adevăr,
[max]g = 8u1 + 9u 2
⎡1 3 1 0 0⎤
⎧ u1 + 3u 2 + u3 = 50 ⎛ 50 ⎞
⎪ A = ⎢⎢2 4 0 1 0⎥⎥ ⎜ ⎟
⎨2u1 + 4u 2 + u 4 = 25 , , rang A=3<5, b = ⎜ 25 ⎟ > 0 ,
⎪ 3u + u + u = 30 ⎣⎢3 1 0 0 1⎦⎥ ⎜ 30 ⎟
⎩ 1 2 5 ⎝ ⎠
a1 a 2 a3 a 4 a5
ui ≥ 0, i = 1,5
⎡1 0 0⎤
B = ⎢⎢0 1 0⎥⎥ = (a3 a5 ) , X SAB = (0 0 50 25 30 ) .
T
a4
⎣⎢0 0 1⎥⎦

Se aplică algoritmul simplex-primal:

cj → 8 9 0 0 0

c
B B X
B a1 a2 a3 a4 a5 ρ

0 a3 50 1 3 1 0 0 50/3
0 a4 25 2 4 0 1 0 25/4
0 a5 30 3 1 0 0 1 30/1

fj 0 0 0 0 0 0

fj −cj -8 -9 Ø Ø Ø ≥ 0 ∀j = 1, 5 ?
0 a3 125/4 -1/2 0 1 3/4 0
9 a2 25/4 1/2 1 0 1/4 0 25/2

0 a5 95/4 5/2 0 0 -1/4 1 19/2

fj 175/4 9/2 9 0 9/4 0

fj −cj -7/2 Ø Ø 9/4 Ø

0 a3 26 0 0 1 -4/5 1/5
9 a2 3/2 0 1 0 3/10 -1/5
8 a1 19/2 1 0 0 -1/10 2/5
fj 89,5 8 9 0 19/10 7/5

fj −cj Ø Ø Ø 19/10 7/5 ≥ 0 ∀j = 1,5 ? DA ⇒ STOP


Metode simplex pentru modele liniare

Duala admite soluţia 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ă

Definiţie: X se numeşte SAB degenerată pentru II.2.1 dacă


numărul valorilor variabilelor bazice strict pozitive este cel mult (m-1) unde
m=rangA.
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 ,
B −1b are cel puţin o componentă egală cu zero şi toate celelalte strict
pozitive ⇒ valorile variabilelor bazice X B = B −1b , strict pozitive, sunt
în număr de cel mult (m-1).
2) Există cazul în care, în spaţiul bunurilor R m , vectorul b nu formează un
sistem de vectori liniar independenţi cu orice combinaţie de (m-1)
vectori din A. Din punct de vedere geometric, acest lucru înseamnă că b
trece printr-un vârf al poliedrului conex al restricţiilor AX = b . Să
presupunem că (a1 a2 ... a m ) este o bază în Rm , dar
(a1 a 2 ... a m−1 b) nu este un sistem de m vectori liniar
independenţi. 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 xm−1 + 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 următorului 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 x1 + x 2 + x3 = 1
⎪ − 2 x + 5x ≥ 5 ⎪ − 2x + 5x − x = 5
⎪ 1 2 ⎪ 1 2 4
⎨ , cu forma standard ⎨ .
⎪ 2 x1 + 3 x 2 ≤ 6 ⎪ 2 x1 + 3 x 2 + x 5 = 6
⎪⎩− 14 x1 + 11x 2 ≤ 14 ⎪⎩− 14 x1 + 11x 2 + x6 = 14
x j ≥ 0, ∀j = 1,2 x j ≥ 0, ∀j = 1,6

x2 d1

2
d2
B
C
1
A
-5/2
-1/2 O 3 x1
d3

⎛3 7⎞
Valoarea maximă este atinsă în B⎜ , ⎟ , prin care trec trei drepte
⎝8 4⎠
care definesc mulţimea convexă (simplexul) a soluţiilor admisibile. Dacă
înlocuim soluţia optimă în forma standard, se obţine un program optim
3 * 7 *
degenerat: x1* = , x 2 = , x3 = 0 , x 4* = 3 , x5* = 0 , x6* = 0 .
8 4
Observaţie: Şi prin A trec trei drepte, d1 , d 2 şi x1 = 0 , deci, prin înlocuirea
coordonatelor sale în forma standard, se obţine o SAB degenerată.
Să presupunem că unei probleme de programare liniară degenerată i
se caută soluţia optimă aplicând metoda simplex, şi, la o anumită iteraţie,
Metode simplex pentru modele liniare

raportul ρ min nu este unic determinat. Metoda perturbaţiilor (A. Chanes) şi


metoda lexicografică (B.B. Dantzig şi P. Wolfe) sunt două metode ce nu
înlătură degenerarea, ci creează posibilitatea continuării algoritmului prin
înlăturarea 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 iteraţia 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
ρ k = ρ r = min ⎨ ⎬= = r .
s| y > 0
sl
⎩ y sl ⎭ y kl y rl
Se pune întrebarea: care din cei doi vectori va fi eliminat, a k sau a r ?

T.II.3.1
cj c1 cl cn

cB B XB a1 … al … an ρ

c1 a1 x1 y1l x1 / y11
… … … …
ck ak xk y kl xk / y kl
… … … … min
cr ar xr y rl xr / y rl
… … … …
cm am xm y ml xm / y ml

fj
f j −cj

Decizia va fi luată după parcurgerea următorilor paşi:


Analiza economico-matematică a unor modele liniare

Pasul 1 Se împart elementele liniei k, începând cu xk , la eventualul element


pivot y kl . Se împart elementele liniei r la eventualul element pivot y rl , şi se
aşează 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

x r y r1 y r 2 y y y
, , ,..., rl −1 , rl ,...., rn .
y rl y rl y rl y rl y rl y rl

Pasul 2 DA Se trece la
Operaţia 1 Se compară rapoartele Operaţia 2.
din a doua coloană: NU
y k 1 y r1
= ?
y kl y rl
STOP. Pivotul iteraţiei va fi numitorul
raportului minim. Va fi eliminat
din bază vectorul situat în linia pivotului.

Operaţia 2: k := k + 1 ⇒ Operaţia 1.

După cel mult n operaţii se poate stabili vectorul care trebuie


eliminat.

Observaţie: În cazul programării pe calculator, se va elimina din bază


vectorul cu cel mai mic indice. În foarte puţine cazuri, această metodă
prezintă dezavantajul că, după un anumit număr de iteraţii, poate să se
revină la baza iteraţiei 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⎦
soluţia de
a1 a 2 a3 a 4 a5

X SAB = (0 0 0 10 15) .
T
start pentru algoritmul simplex-primal,
Completând primul tabel, se va observa în formula criteriului de eliminare
din bază că minimul nu este unic. Într-adevăr,

cj 3 2 4 2 3

cB B XB a1 a2 a3 a4 a5 ρ
2 a4 10 1 2 1 1 0 10/2
3 a5 15 2 3 1 0 1 15/3
fj 65 8 13 5 2 3 [min ] f
f j −cj 5 11 1 Ø Ø ≤ 0 ∀j = 1,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

10 15
bază. Dar, = . Aşadar, care vector va fi eliminat?
2 3

10 1 2 1 1 0 10 15
Pasul 1 , , , , , Pasul 2 O1: =
2 2 2 2 2 2 2 3
1 2
O2: < ⇒ se elimină vectorul a 4 .
15 2 3 1 0 1 2 3
, , , , ,
3 3 3 3 3 3 Pivotul iteraţiei este 2.
Analiza economico-matematică a unor modele liniare

cj 3 2 4 2 3

c B
B X B a1 a2 a3 a4 a5
2 a4 5 1/2 1 1/2 1/2 0
3 a5 0 1/2 0 -1 -3 1
fj 10 2 2 -1 -5 2
f j −cj
-1 Ø -5 -7 Ø ≤ 0 ∀j = 1,5 ⇒ STOP

Soluţia optimă este degenerată. Variabila bazică x5 are valoarea


zero.

b) Metoda perturbaţiilor
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

n n n
II.3.3 ∑ a j x j + ∑ε ja j = b + ∑ε ja j
j =1 j =1 j =1

x j ≥ 0, j = 1, n
Dacă soluţia admisibilă de bază corespunde bazei formată din primii
m vectori, atunci restricţiile din II.3.3 se mai pot scrie:

∑ (x )
m n
II.3.4
s =1
s + ε s as + ∑ε
j = m +1
j
a j = b(ε ) ,

n
unde b(ε ) = b + ∑ ε j a j .
j =1
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 ⎜⎜ ⎟⎟ = ⎜⎜ ⎟
5⎟
⎝ 1 ⎠ ⎝15 + 2ε + 3ε + ε + ε ⎠
2 3
⎝15 ⎠ ⎝ 2⎠ ⎝ 3⎠ ⎝ 1⎠ ⎝0⎠

b a1 a2 a3 a4 a5

Pasul 2 Prin modificarea de la pasul 1 s-a obţinut 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 ⎟
ρ = min ⎜⎜ j = m +1 ⎟
⎟.
s| y sk >0 y sk
⎜⎜ ⎟⎟
⎝ ⎠

În particular:
⎛ 10 + ε 4 + ε + 2ε 2 + ε 3 15 + ε 5 + 2ε + 3ε 2 + ε 3 ⎞
ρ = min⎜⎜ , ⎟⎟ =
⎝ 2 3 ⎠
⎛ ε ε3 ε4 2ε ε3 ε5 ⎞
= min⎜⎜ 5 + + ε 2 + + ,5 + + ε 2 + + ⎟⎟
⎝ 2 2 2 3 3 3⎠

ε ε3 ε4 2ε ε3 ε5
Pentru ε suficient de mic, 5 + +ε 2 + + < 5+ +ε2 + + ⇒
2 2 2 3 3 3
a 4 va fi eliminat.
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ă.
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ă), aşa cum se va vedea şi din
exemplul următor:
Se doreşte realizarea unui amestec din trei tipuri de benzină. Acest
amestec este de multe ori condiţionat de cantităţile de care dispunem din
fiecare produs. Se înţelege că avem analizele de laborator ale tuturor
produselor şi cunoaştem caracteristicile chimice ale produselor pe care le
amestecăm, de aceea, dacă amestecăm benzina de 92 cu benzina de 88 şi cu
nafta o facem pentru a obţine benzină de 92. Cantitatea de benzină de 92
trebuie să reprezinte cel puţin 50% din întregul amestec, iar nafta trebuie să
fie cuprinsă între 25% şi 30% din întregul amestec.
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ă.
Notăm cu x1 cantitatea de nafta, cu x 2 cantitatea de benzină de 92 şi
cu x3 cantitatea de benzină de 88. Restricţiile 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
⎪⎪ 2 5

⎨− 3 x1 + x 2 + x3 + x6 = 0 .
⎪7 x − 3 x − 3 x + x = 0
⎪ 1 2 3 7

⎪⎩ 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 următor:

cj 4 5 3 0 0 0 0 0

cB B XB a1 a2 a3 a4 a5 a6 a7 a8 ρ
0 a4 100 1 0 0 1 0 0 0 0 -
0 a5 90 0 1 0 0 1 0 0 0 90
0 a6 0 -3 1 1 0 0 1 0 0 0
0 a7 0 7 -3 -3 0 0 0 1 0 -
0 a8 0 1 -1 1 0 0 0 0 -1 -
fj 0 0 0 0 0 0 0 0 0
f j −cj
-4 -5 -3 Ø Ø Ø Ø Ø

0 a4 100 1 0 0 1 0 0 0 0 100
0 a5 90 3 0 -1 0 1 -1 0 0 30
5 a2 0 -3 1 1 0 0 1 0 0 -
0 a7 0 -2 0 0 0 0 3 1 0 -
0 a8 0 -2 0 2 0 0 1 0 1 -
fj 0 -15 5 5 0 0 5 0 0
fj −c
-19 Ø 2 Ø Ø 5 Ø Ø

0 a4 70 0 0 1/3 1 -1/3 1/3 0 0 210


4 a1 30 1 0 -1/3 0 1/3 -1/3 0 0 -
5 a2 90 0 1 0 0 1 0 0 0 -
0 a7 60 0 0 -2/3 0 2/3 7/3 1 0 -
0 a8 60 0 0 4/3 0 2/3 1/3 0 1 45
fj 570 40 50 -4/3 0 19/3 -4/3 0 0
f j −cj
Ø Ø -13/3 Ø 19/3 -4/3 Ø Ø

0 a4 55 0 0 0 1 -1/2 1/4 0 -1/4 220


4 a1 45 1 0 0 0 1/2 -1/4 0 1/4 -
Analiza economico-matematică a unor modele liniare

5 a2 90 0 1 0 0 1 0 0 0 -
0 a7 90 0 0 0 0 1 5/2 1 1/2 36
3 a3 45 0 0 1 0 1/2 1/4 0 3/4 180
fj 765 4 5 3 0 17/2 -1/4 0 13/4
f j −cj
Ø Ø Ø Ø 17/2 -1/4 Ø 13/4

cj 4 5 3 0 0 0 0 0

cB B XB a1 a2 a3 a4 a5 a6 a7 a8
0 a4 46 0 0 0 1 -3/5 0 -1/10 -3/10

4 a1 54 1 0 0 0 3/5 0 1/10 3/10

5 a2 90 0 1 0 0 1 0 0 0
0 a6 36 0 0 0 0 2/5 1 2/5 1/5
3 a3 36 0 0 1 0 2/5 0 -1/10 7/10

fj 774 4 5 3 0 43/5 0 1/10 33/10

f j −cj
Ø Ø Ø Ø 43/5 Ø 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
54
reprezenta ⋅ 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.

3 1
[min] f = − 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 .
⎪ 2 2 4 5
2
6 7

⎪x + x = 1
⎩ 3 6

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 B XB a1 a2 a3 a4 a5 a6 a7 ρ
0 a1 0 1 0 0 1/4 -8 -1 9 0
0 a2 0 0 1 0 1/2 -12 -1/2 3 0
0 a3 1 0 0 1 0 0 1 0 -
fj 0 0 0 0 0 0 0 0
f j −cj Ø Ø Ø 3/4 -20 1/2 -6
Analiza economico-matematică a unor modele liniare

cj 0 0 0 -3/4 20 -1/2 6

c B
B XB a1 a2 a3 a4 a5 a6 a7 ρ
-3/4 a4 0 4 0 0 1 -32 -4 36 -
0 a2 0 -2 1 0 0 4 3/2 -15 0
0 a3 1 0 0 1 0 0 1 0 -
fj 0 -3 0 0 -3/4 24 3 -27
f j −cj
-3 Ø Ø Ø 4 7/2 -33

cj 0 0 0 -3/4 20 -1/2 6

c B
B X B a1 a2 a3 a4 a5 a6 a7 ρ
-3/4 a4 0 -12 8 0 1 0 8 -84 0
-
20 a5 0 -1/2 1/4 0 0 1 3/8 0
15/4
0 a3 1 0 0 1 0 0 1 0 1
fj 0 -1 -1 0 -3/4 20 3/2 -12
f j −cj
-1 -1 Ø Ø Ø 2 -18

cj 0 0 0 -3/4 20 -1/2 6

c B
B XB a1 a2 a3 a4 a5 a6 a7 ρ
-1/2 a6 0 -3/2 1 0 1/8 0 1 -21/2 -
20 a5 0 1/16 -1/8 0 -3/64 1 0 3/16 0
0 a3 1 3/2 -1 1 -1/8 0 0 21/2 2/21
fj 0 2 -3 0 -1 20 -1/2 9
f j −cj 2 -3 Ø -1/4 Ø Ø 3
Metode simplex pentru modele liniare

cj 0 0 0 -3/4 20 -1/2 6

c B
B XB a1 a2 a3 a4 a5 a6 a7 ρ
-1/2 a6 0 2 -6 0 -5/2 56 1 0 0
6 a7 0 1/3 -2/3 0 -1/4 16/3 0 1 0
0 a3 1 -2 6 1 5/2 -56 0 0 -
fj 0 1 -1 0 -1/4 4 -1/2 6
f j −cj 1 -1 Ø 1/2 -16 Ø Ø

cj 0 0 0 -3/4 20 -1/2 6

c B
B X B a1 a2 a3 a4 a5 a6 a7 ρ
0 a1 0 1 -3 0 -5/4 28 1/2 0 -
6 a7 0 0 1/3 0 1/6 -4 -1/6 1 0
0 a3 1 0 0 1 0 0 1 0 1
fj 0 0 2 0 1 -24 -1 6
f j −cj Ø 2 Ø 7/4 -44 -1/2 Ø

cj 0 0 0 -3/4 20 -1/2 6

cB B XB a1 a2 a3 a4 a5 a6 a7 ρ
0 a1 0 1 0 0 1/4 -8 -1 9 4
0 a2 0 0 1 0 1/2 -12 -1/2 3 0
0 a3 1 0 0 1 0 0 1 0 -
fj 0 0 0 0 0 0 0 0
f j −cj Ø Ø Ø 3/4 -20 1/2 -6

În tabelele precedente, deşi 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ă decât cele alese anterior putem ajunge la
Analiza economico-matematică a unor modele liniare

soluţia optimă, evitând în acest fel ciclarea, aşa cum se vede din
următoarele două iteraţii:

cj 0 0 0 -3/4 20 -1/2 6

cB B XB a1 a2 a3 a4 a5 a6 a7 ρ
0 a1 0 1 -1/2 0 0 -2 -3/4 15/2 -
-3/4 a4 0 0 2 0 1 -24 -1 6 -
0 a3 1 0 0 1 0 0 1 0 1
fj 0 0 -3/2 0 -3/4 18 3/4 -9/2
f j −cj
Ø -3/2 Ø Ø -2 5/4 -21/2

cj 0 0 0 -3/4 20 -1/2 6

c B
B X B a1 a2 a3 a4 a5 a6 a7
0 a1 3/4 1 -1/2 3/4 0 -2 0 15/2
-3/4 a4 1 0 2 1 1 -24 0 6
-1/2 a6 1 0 0 1 0 0 1 0
fj -5/4 0 -3/2 -5/4 -3/4 18 -1/2 -9/2
f j −cj
Ø -3/2 -5/4 Ø -2 Ø -21/2

Astfel, soluţia optimă este dată de X = (3 / 4 0 0 1 0 1 0 ) ,


T

valoarea minimă a funcţiei obiectiv fiind f ( X ) = −5 / 4 .


Deşi în problemele practice nu s-a observat fenomenul de ciclare,
teoretic există posibilitatea de a apărea şi, ca urmare, este bine să
cunoaştem 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 când rezolvarea modelului
matematic se face cu ajutorul calculatorului. Ideea de bază este de a reţine
datele iniţiale, apoi, folosind matricea sistemului de restricţii 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 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ă.

Considerăm 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 construieşte


“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 − cR ⎞
Aici, matricea sistemului de restricţii va fi: A1 = ⎜⎜ ⎟,
⎝0 B R ⎟⎠
unde A = (B R ) . Se observă că rangA1 = m + 1 . Vectorul termenilor liberi
⎛0⎞ ⎛− c ⎞
pentru problema completată este b1 = ⎜⎜ ⎟⎟ . Notăm a 1k = ⎜⎜ k ⎟⎟ , unde a k
⎝b⎠ ⎝ ak ⎠
este coloana k din matricea A.
Analiza economico-matematică a unor modele liniare

Dacă B este bază primal admisibilă pentru II.4.1, atunci


⎛1 − c ⎞ B
B1 = ⎜⎜ ⎟ este bază primal admisibilă pentru II.4.2. Este uşor de

⎝ 0 B ⎠
⎛1 u B ⎞
verificat că B1−1 = ⎜⎜ ⎟ , unde u B = c B B −1 .
−1 ⎟
⎝0 B ⎠
Tabelul simplex revizuit va avea următoarea formă:

Variabilele de bază B1−1 B1−1b1 B1−1 a 1k *


x0 1 u B = c B B −1 f B
f kB − c k
XB 0 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.

Etapele algoritmului simplex revizuit sunt prezentate în schema logică


S.II.4.1:
Datele iniţiale:
AX = b , X ≥ 0 , [max] f (x ) = cX
rangAm×n = m ≤ n , b ∈ R m , c ∈ R n

Se determină o bază primal admisibilă pentru problema


II.4.1 şi se calculează apoi B1 , B1−1b1 , u B , B1−1 a 1j

1 Schema logică
S.II.4.1

STOP. Problema admite soluţie


optimă finită
f B
− c j ≤ 0 DA
j
⎛ B −1b ⎞
∀j = 1, n f 0 = [min] f ; X B = ⎜⎜ ⎟.

⎝ 0 ⎠

NU

Alegem k astfel încât max ( f jB − c j ) = f kB − c k > 0 .


f j −c j >0
B

⎛ f B
−c ⎞
Se completează ultima coloană din tabel cu vectorul B1−1 a 1k = ⎜⎜ B k k
⎟.
⎝ k
y = B −1
a k ⎟⎠

DA STOP
y kB ≤ 0 ? Problema are optim ( − ∞ ).

NU

xiB x rB
Se alege r după regula: min = .
B
i| yik y ikB y rkB
r k
Se înlocuieşte coloana a cu coloana a , şi se formează noua bază primal
~ ~ ~ ~
admisibilă, B1 . Se calculează B1−1b1 , u B , B1−1 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 ⇒ soluţie optimă.


Dacă nu, se trece la Pasul 2.

Pas 2 Alegem k astfel încât max


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

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


nemărginit ( − ∞ ). Dacă nu, se trece la Pasul 3.

xiB x rB
Pas 3 Alegem r după regula: min = B . Se înlocuieşte coloana a r cu
B
i| yik y B y rk
ik
~
coloana a k , şi se formează noua bază primal admisibilă, B1 . Se revine la
Pasul 1.
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
⎩ 1 2

x i ≥ 0 , ∀i = 1,2
Metode simplex pentru modele liniare

În primul rând, 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 restricţiilor este A = ⎜ 3 − 1 0 1 0 ⎟ ,
⎪− x + 2 x + x = 6 ⎜ − 1 2 0 0 1⎟
⎩ 1 2 5 ⎝ ⎠
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 0⎞ ⎛0⎞
⎜ ⎟ ⎜ ⎟
⎜ 0 1 −1 1 0 0⎟ ⎛ 1 − cR −c ⎞ ⎛0⎞
B
4
Aşadar, A1 = ⎜ =⎜ ⎟ , b1 = ⎜⎜ ⎟⎟ = ⎜⎜ ⎟⎟ .
0 3 −1 0 1 0 ⎟ ⎜⎝ 0 R ⎟
B ⎠ 8 b
⎜ ⎟ ⎜ ⎟ ⎝ ⎠
⎜ 0 −1 2 0 0 1 ⎟⎠ ⎜16 ⎟
⎝ ⎝ ⎠
⎛1 − c B − cR ⎞
Observaţie: După reordonare putem obţine chiar A1 = ⎜⎜ ⎟.
⎝0 B R ⎟⎠
Completăm tabelul simplex revizuit, evident fără ultima coloană:
u B = c B B −1 = (0 0 0 ) ⋅ I 3 = (0 0 0 ) .

Variabilele de bază B1−1 B1−1b1


x0 1 0 0 0 0
x3 0 1 0 0 4

x4 0 0 1 0 18
x5 0 0 0 1 6
Analiza economico-matematică a unor modele liniare

⎛− c j ⎞
Pentru ∀j ∈ R , calculăm f jB − c j = (1 u B )⎜⎜ ⎟ . În cazul nostru,

⎝ aj ⎠
R = {1,2} . Aşadar, pentru j = 1 avem:
⎛2⎞
⎜ ⎟ ⎛1⎞
B ⎛
− c1 ⎞ ⎜1⎟ ⎜ ⎟
f 1B (
− c1 = 1 u ⎜⎜) ⎟⎟ = (1 0 0 0)⎜ ⎟ = 2 > 0 , B a1 = ⎜ 3 ⎟ ,
−1

⎝ a1 ⎠ 3
⎜ ⎟ ⎜ − 1⎟
⎜ − 1⎟ ⎝ ⎠
⎝ ⎠
iar pentru j = 2 ,
⎛1⎞
⎜ ⎟ ⎛ − 1⎞
B ⎛
− c2 ⎞ ⎜ − 1⎟ ⎜ ⎟
f 2B ( )
− c 2 = 1 u ⎜⎜ ⎟⎟ = (1 0 0 0 )⎜ ⎟ = 1 > 0 , B a 2 = ⎜ − 1⎟ .
−1
−1

⎝ a2 ⎠ ⎜ ⎟ ⎜ 2⎟
⎜ 2⎟ ⎝ ⎠
⎝ ⎠

Soluţia curentă nu este optimă şi nici cazul optim nemărginit nu este


îndeplinit. Trecem la schimbarea bazei. Deoarece, f 1B − c1 = 2 > 1 = f 2B − c 2 ,
variabila x1 va intra în noua bază.

Completăm tabelul de mai sus cu ultima coloană:

Variabilele de bază B1−1 B1−1b1 B1−1 a11


x0 1 0 0 0 0 2
x3 0 1 0 0 4 1

x4 0 0 1 0 18 3

x5 0 0 0 1 6 -1

⎧ 4 18 ⎫ 4
Deoarece min ⎨ , ⎬ = , variabila x 3 va ieşi din bază. Pivotul
⎩1 3 ⎭ 1
este, desigur, valoarea aflată în căsuţa colorată, adică 1. Tabelul simplex
revizuit următor se obţine din cel precedent, după aceleaşi reguli care se
aplică tabelului simplex obişnuit.
Metode simplex pentru modele liniare

Astfel, cu noua bază avem:

Variabilele de bază ~ ~ ~
B1−1 B1−1b1 B1−1 a12
*
x 0 1 -2 0 0 -8 3
x1 0 1 0 0 4 -1

x4 0 -3 1 0 6 2

x5 0 1 0 1 10 1

* Ultima coloană se va completa ulterior.

⎛1⎞
⎜ ⎟
~
f 2B (B ⎛
~
− c 2 = 1 u ⎜⎜
− c2 ⎞
) ⎜ − 1⎟
⎟⎟ = (1 − 2 0 0 )⎜ ⎟ = 3 > 0 (soluţia curentă
−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),

⎛ 0⎞
⎜ ⎟
~
f 3B (B ⎛
~
− c 3 = 1 u ⎜⎜ )
− c3 ⎞ ⎜1⎟
⎟⎟ = (1 − 2 0 0 )⎜ ⎟ = −2 < 0 .
⎝ a3 ⎠ 0
⎜ ⎟
⎜ 0⎟
⎝ ⎠

Singura variabilă care poate intra în bază este x 2 . Completăm 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

~
~
Următorul tabel simplex revizuit, unde baza este acum notată B1 :

Variabilele de bază ~
~ ~
~ ~
~
B1−1 B1−1b1 B1−1 a13 **
x0 1 5/2 -3/2 0 -17 5/2
x1 0 -1/2 1/2 0 7 -1/2

x2 0 -3/2 1/2 0 3 -3/2

x5 0 5/2 -1/2 1 7 5/2

** Ultima coloană se va completa ulterior.

⎛ 0⎞
⎜ ⎟
~
⎜1⎟
− c 3 = (1 5 / 2 − 3 / 2 0)⎜ ⎟ = 5 / 2 > 0 (soluţia curentă nu este
~
f 3B
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⎟
f 4 − c4 = (1 5 / 2 − 3 / 2 0)⎜ ⎟ = −3 / 2 < 0 .
~
B

1
⎜ ⎟
⎜0⎟
⎝ ⎠

Variabilă care intră în bază este x 3 . Completăm ultima coloană.

Se observă imediat că singura variabilă care poate ieşi din bază este
x5 . Pivotul este 5/2. La această iteraţie baza curentă este notată prin B̂1 .
Metode simplex pentru modele liniare

Variabilele de bază Bˆ1−1 Bˆ1−1b1


x0 1 0 -1 -1 -24
x1 0 0 2/5 1/5 42/5
x2 0 0 1/5 3/5 36/5
x3 0 1 -1/5 2/5 14/5

⎛0⎞
⎜ ⎟
⎜0⎟
− c 4 = (1 0 − 1 − 1)⎜ ⎟ = −1 < 0 şi
ˆ
Cum f 4B
1
⎜ ⎟
⎜0⎟
⎝ ⎠
⎛ 0⎞
⎜ ⎟
⎜ 0⎟
− c5 = (1 0 − 1 − 1)⎜ ⎟ = −1 < 0 , rezultă că soluţia curentă,
ˆ
f 5B
0
⎜ ⎟
⎜1⎟
⎝ ⎠
x = (42 / 5 36 / 5 14 / 5 0 0) este optimă, unică şi nedegenerată.
T

Din exemplificarea aplicării algoritmului simplex revizuit, rezultă


următoarele:
• Memoria calculatorului este eficient folosită, prin reducerea volumului de
infomaţii stocate.
• Datele reţinute la o iteraţie sunt suficiente pentru a obţine toate
informaţiile dorite, relativ la problema primală şi la duala sa.

5. 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.
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ă, pornind de la o soluţie de
bază care nu respectă - total sau parţial - condiţia de nenegativitate, şi
anume, algoritmul simplex dual. Conceptul de bază cu care se operează este
cel de soluţie dual realizabilă (SDR).
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. Aplicarea sa presupune
cunoaşterea unei soluţii 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ă soluţia este optimă. În
general, stabilirea unei soluţii dual-admisibile este greu de realizat, motiv
pentru care acest algoritm se aplică atunci când o soluţie dual realizabilă se
poate stabili cu un volum mic de calcule, când restricţiile sunt cu precădere
de forma “ ≥ ”, sau când aceasta se obţine 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 funcţiei scop descresc când
aceasta se cere maximizată şi cresc când se cere minimizată, până când este
atinsă valoarea optimă, dacă programul liniar admite soluţie optimă finită.
Metode simplex pentru modele liniare

Schema de desfăşurare a algoritmului simplex-dual, când se cere


[max] f este următoarea:

● Modelul matematic se aduce la forma standard


● Se stabileşte 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 Problema


STOP este fără
y kj ≥ 0 , ∀j = 1, n soluţii.

NU

● Alege xl = min{x s } (C.E.B);


s| x s < 0

● Elimină din bază vectorul al ;


f k − ck ⎧⎪ f j − c j ⎫⎪
● Alege = min ⎨ ⎬ (C.I.B);
y lk j | ylj < 0
⎪⎩ y lj ⎪⎭
● Înlocuieşte vectorul a l cu a k ;
● Se formează B1

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


simplex primal, având ca pivot elementul y lk < 0 . Dacă nu apare fenomenul de
ciclare, după efectuarea calculelor se ajunge la una din situaţiile:
1. X
B1
≥ 0 şi f j − c j ≥ 0 , ∀j = 1, n ⇒ STOP. Problema admite soluţie
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 puţin o variabilă bazică cu valoare strict negativă şi f j − c j ≥ 0 ,

∀j = 1, n ⇒
Analiza economico-matematică a unor modele liniare

Observaţie: Cele două criterii de eliminare şi respectiv de intrare în bază,


sub această formă, sunt invariante la tipul de optim.

Pentru o mai bună înţelegere a modalităţilor de operare a celor doi


algoritmi duali, se vor sumariza principalele lor elemente după cum
urmează:

Algoritmul simplex primal Algoritmul simplex dual


X SDR : X B = B −1 ⋅ b ; X R = 0 a.î.
Soluţie de
X SAB : X B = B −1 ⋅ b ≥ 0 ;
∃x s < 0 , s ∈ J B
şi
start, X R = 0;
B bază
Obs: f s − c s = 0 , ∀x s variabilă f j − c j ≥ 0 ∀j (pt. [max]) sau
curentă
bazică f j − c j ≤ 0 ∀j (pt. [min])

a) Dacă f j − c j ≥ 0 ∀j (pt. [max]),

respectiv f j − c j ≤ 0 ∀j (pt. a) Dacă f j − c j ≥ 0 ∀j (pt. [max]),


[min]) ⇒ programul are soluţie
respectiv f j − c j ≤ 0 ∀j (pt.
optimă finită.
b) Dacă ∃a k nebazic pentru care [min]) şi X ≥ 0 ⇒ programul
B
STOP liniar are soluţie optimă finită.
f k − ck < 0 şi y sk ≤ 0 , ∀s (pt.
b) Dacă ∃xs < 0 , s ∈ J B şi y sj ≥ 0 ,
[max]), respectiv f k − ck > 0 şi
∀j ⇒ programul liniar nu are soluţie.
y sk ≤ 0 , ∀s (pt. [min]) ⇒
program cu funcţia obiectiv
nemărginită.
Dacă pt. [max] f j −cj ≥ 0 , respectiv

pt. [min] f j −cj ≤ 0 , ∀j , şi


Pt. [max]: ∃f k − ck < 0 şi y sk > 0
∃xs < 0 , s ∈ J B ,
atunci se continuă
pentru cel puţin o valoare s ∈ J . Se cu simplex dual, deoarece s-a generat o
B
Algoritmul
continuă cu simplex primal. SDR.
se continuă
dacă Pt. [min]: ∃f k − c k > 0 şi y sk > 0 Dacă pt. [max] f k − c k < 0 , respectiv

pentru cel puţin o valoare s∈J B . Se pt. [min] f k − ck > 0 , cu ak nebazic,


continuă cu simplex primal.
şi ∃xs ≥ 0 , ∀s ∈ J B , atunci se
continuă cu simplex primal, deoarece s-a
generat o SAB.
Pivot ylk > 0 ylk < 0
Criterii a) C.I.B. a) C.E.B
pentru b) C.E.B. b) C.I.B.
schimbarea
bazei
Metode simplex pentru modele liniare

Pentru a înţelege mai bine modul de aplicare a algoritmului simplex-


dual, precum şi diferenţele faţă de aplicarea algoritmului simplex-primal,
vom da câteva exemple numerice.

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
⎩ 1 2 3

x j ≥ 0, j = 1,3

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, 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 soluţie bazică
X = (0 0 0 − 2 − 6 3) , care nu respectă condiţia 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 →
6 5 6 0 0 0

cB B XB a1 a2 a3 a4 a5 a6
0 a4 -2 4 -1 -1 1 0 0
0 a5 -6 -2 1 -1 0 1 0
0 a6 3 -1 1 -2 0 0 1
fj 0 0 0 0 0 0 0
f j −cj Ø
-6 5 -6 Ø Ø ≤ 0 ∀j = 1,6 ? DA

Soluţia bazică construită este dual realizabilă, deoarece verifică


criteriul de optimalitate. 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, se vor aplica cele
două criterii:
- Criteriul de eliminare din bază (C.E.B): min{− 2,−6} = −6 ⇒ a5 părăseşte
baza.
- Criteriul de intrare în bază (C.I.B):
⎧ f −c f − c3 ⎫ ⎧−6 −6⎫ −6
min ⎨ 1 1 , 3 ⎬ = min ⎨ , ⎬= ⇒ a1 va fi al doilea
⎩ y 21 y 23 ⎭ ⎩ − 2 −1 ⎭ − 2
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 diferenţelor f j − c j , j = 1,6 .
Metode simplex pentru modele liniare

Calculele sunt prezentate în tabelul de mai jos:

cj → 6 5 6 0 0 0

c B
a1 a2 a3 a4 a5 a6
B XB
0 a4 -14 0 1 -3 1 2 0
6 a1 3 1 -1/2 1/2 0 1/2 0
0 a6 6 0 1/2 -3/2 0 -1/2 1
fj 18 6 -3 3 0 -3 0
f j −cj Ø
Ø -8 -3 Ø -3
≤ 0 ∀j = 1,6 ? DA

Noua soluţie de bază se menţine 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 →
6 5 6 0 0 0

a1 a2 a3 a4 a5 a6
cB B XB
6 a3 14/3 0 -1/3 1 -1/3 -2/3 0
6 a1 2/3 1 -1/3 0 1/6 -1/6 0
0 a6 13 0 0 0 -1/2 -3/2 1
fj 32 6 -4 6 -1 -5 0
f j −cj Ø
≤ 0 ∀j = 1,6 ?
Ø -9 Ø -1 -5
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 se opreşte. Problema admite soluţia optimă finită
T
⎛2 14 ⎞
X* = ⎜ 0 0 0 13 ⎟ cu [min] f = 32 .
⎝3 3 ⎠
Observaţie: Spre deosebire de algoritmul simplex primal, unde valoarea
funcţiei obiectiv scade – în cazul problemelor de minim – de la o iteraţie la
alta, până la valoarea minimă, în algoritmul simplex dual valoarea funcţiei
obiectiv creşte până 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
⎩ 1 2 3

x j ≥ 0, ∀j ∈ 1,3

Aflati soluţia optimă. Să se scrie duala programului liniar dat. Să se


afle soluţia sa optimă X aplicând algoritmul simplex dual.
Soluţie:
● 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 .
⎪4 x + x + 2 x + x = 175
⎩ 1 2 3 6

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, corespunzătoare iteraţiilor parcurse până la
aflarea soluţiei optime:

cj → 3 2 6 0 0 0

cB B XB x1 x2 x3 x4 x5 x6
0 x4 105 1 3 4 1 0 0
0 x5 70 2 5 1 0 1 0
0 x6 175 4 1 2 0 0 1
fj 0 0 0 0 0 0 0
f j −cj -3 -2 -6 Ø Ø Ø ≥ 0 ∀j = 1,6 ?

1/4 0 NU
6 x3 105/4 1/4 3/4 1 0
0 x5 175/4 7/4 17/4 0 -1/4 1 0
0 x6 490/4 7/2 -1/2 0 -1/2 0 1
fj 315/2 3/2 9/2 6 3/2 0 0

f j −cj ≥ 0 ∀j = 1,6 ?
-3/2 5/2 Ø 3/2 Ø Ø
NU

6 x3 20 0 1/7 1 2/7 -1/7 0


3 x1 25 1 17/7 0 -1/7 4/7 0
0 x6 35 0 -9 0 0 -2 1
fj 195 3 58/7 6 9/7 6/7 0

f j −cj Ø 43/7 Ø 9/7 6/7 Ø

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

soluţia optimă finită X * = (25 0 20 0 0 35) . Baza optimă este dată


T

de B = (a3 a1 a 6 ) , a cărei inversă


⎡ 2 / 7 − 1 / 7 0⎤
B −1
= ⎢⎢− 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 iniţială.

● 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
⎩ 1 2 3 3 ⎩ 1 2 3

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
⎩ 1 2 3 6

u i ≥ 0, ∀i ∈ 1,6

rezultă că matricea A conţine matricea unitate, din R 3 , cu semn schimbat,


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, ∀i ∈ 1,6
Metode simplex pentru modele liniare

Rezolvarea problemei, prin algoritmul simplex dual, este prezentată


mai jos:

cj → 105 70 175 0 0 0

c B
B X B u1 u2 u3 u4 u5 u6
0 u4 -3 -1 -2 -4 1 0 0
0 u5 -2 -3 -5 -1 0 1 0
0 u6 -6 -4 -1 -2 0 0 1
fj 0 0 0 0 0 0 0
f j −cj -105 -70 -175 Ø Ø Ø ≤ 0 ∀j = 1,6

0 u4 -3/2 0 -7/4 -7/2 1 0 -1/4


0 u5 5/2 0 -17/4 -1/2 0 1 -3/4
105 u1 3/2 1 1/4 1/2 0 0 -1/4
fj 315/2 105 105/4 105/2 0 0 -105/4
f j −cj Ø -175/4 -243/4 Ø Ø -105/4 ≤ 0 ∀j = 1,6

70 u2 6/7 0 1 2 -4/7 0 1/7


0 u5 43/7 0 0 -8 -17/7 1 -1/7
105 u1 9/7 1 0 0 1/7 0 -2/7
fj 195 105 70 140 -25 0 -20
f j −cj Ø Ø -210 -25 Ø -20 ≤ 0 ∀j = 1,6

Se observă imediat că [max] f = [min]g = 195 . Soluţia optimă a


dualei este
⎛9 6 43 ⎞
U* = ⎜ 0 0⎟ .
⎝7 7 7 ⎠

Se verifică uşor că
⎛ − 4 / 7 0 1 / 7 ⎞ ⎛ − 25 ⎞ ⎛ x1* ⎞
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
(70 0 15)⎜ − 17 / 7 1 − 1 / 7 ⎟ = ⎜ 0 ⎟ = −⎜ x2* ⎟ .
⎜ 1/ 7 0 − 2 / 7 ⎟⎠ ⎜⎝ − 20 ⎟⎠ ⎜ x* ⎟
⎝ ⎝ 3⎠
Analiza economico-matematică a unor modele liniare

6. 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, ∀j = 1,3
a) Să se genereze, dacă este posibil, SAB sau/şi SDR prin explicitarea
sistemului de restricţii în raport cu bazele (a1 , a 2 ) şi (a 2 , a3 ) .
b) Să se scrie duala sa. 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.

Soluţie:
[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 restricţii: 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 ,


⎛ x3 ⎞
⎛ x1 ⎞ ⎜ ⎟
B = (a1 a 2 ) , rezultă R = (a3 a 4 a5 ) , X B
= ⎜⎜ ⎟⎟ , X = ⎜ x 4 ⎟ . Sistemul de
R

⎝ x2 ⎠ ⎜x ⎟
⎝ 5⎠
restricţii scris sub forma canonică relativ la B este

⎛ x3 ⎞
⎛ 2 1 ⎞ ⎛ x1 ⎞ ⎛ 0 − 1 0 ⎞ ⎜ ⎟ ⎛ 12 ⎞
II.6.1 ⎜⎜ ⎟⎟ ⋅ ⎜⎜ ⎟⎟ + ⎜⎜ ⎟⎟ ⋅ ⎜ x 4 ⎟ = ⎜⎜ ⎟⎟ .
⎝ 1 2 ⎠ ⎝ x 2 ⎠ ⎝ 1 0 − 1⎠ ⎜ x ⎟ ⎝ 20 ⎠
⎝ 5⎠

⎛ 2 1⎞
⎜ − ⎟
Prin înmulţirea relaţiei II.6.1 cu B −1 =⎜ 3 3 ⎟ , obţinem:
⎜− 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 ⎞
Deoarece B −1b = ⎜⎜ ⎟⎟ > 0 se poate construi o soluţie admisibilă
⎝ 28 / 3 ⎠
4 28
de bază, şi anume x1 = , x2 = , x3 = x 4 = x5 = 0 , pentru care valoarea
3 3
152
funcţiei obiectiv va fi .
3
Analiza economico-matematică a unor modele liniare

Baza generată de coloanele 2 şi 3 din matricea sistemului de


⎛1 0⎞ ⎛ 1 0⎞
restricţii, B = ⎜⎜ ⎟⎟ , cu inversa B −1 = ⎜⎜ ⎟⎟ , conduce la următoarea
⎝ 2 1⎠ ⎝ − 2 1⎠
explicitare a sistemului de restricţii 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 înmulţirea 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


restricţii în raport cu baza (a 2 a3 ) din spaţiul bunurilor:

⎛ x1 ⎞
⎛ x 2 ⎞ ⎛ 2 − 1 0 ⎞ ⎜ ⎟ ⎛ 12 ⎞ ⎧2 x + x 2 − x 4 = 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 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). În aceste condiţii,

vectorul X 1 = (0 12 − 4 0 0 )
T
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 → 3 5 4 0 0

cB B XB a1 a2 a3 a4 a5
5 a2 12 2 1 0 -1 0
3 a3 -4 -3 0 1 2 -1

fj 48 1 5 3 1 -3

f j −cj -2 0 0 1 -3

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


T
nu este
soluţie dual realizabilă, este doar soluţie pentru modelul scris sub forma
standard.
⎛ 2 ⎞
Observaţie: În tabel, vectorul ⎜⎜ ⎟⎟ trecut în coloana lui a1 reprezintă
⎝ − 3⎠
scrierea acestuia în baza (a 2 a3 ) . Într-adevăr,
⎛ 2⎞ ⎛1⎞ ⎛0⎞ ⎛ 2 ⎞
a1 = ⎜⎜ ⎟⎟ = 2a 2 − 3a3 = 2 ⋅ ⎜⎜ ⎟⎟ − 3 ⋅ ⎜⎜ ⎟⎟ = ⎜⎜ ⎟⎟ .
⎝1⎠ ⎝ 2⎠ ⎝ 1 ⎠ ⎝ 4 − 3⎠

b) Construim acum duala problemei din enunţ.


[max]g = 12u1 + 20u 2
[min] f = 3 x1 + 5 x 2 + 4 x3
⎧2u1 + u 2 ≤ 3
⎧2 x1 + x 2 ≥ 12 → u1 ⎪
⎨ , de unde rezultă duala ⎨u1 + 2u 2 ≤ 5 .
⎩ x1 + 2 x 2 + x3 ≥ 20 → u2 ⎪0 ⋅ u + u ≤ 4
⎩ 1 2
x j ≥ 0, ∀j = 1,3
u1 , u 2 ≥ 0

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


restricţii ale problemei duale, o verifică şi pe a treia. Mulţimea soluţiilor
admisibile ale acestei probleme este dată de intersecţia dintre semiplanele
Analiza economico-matematică a unor modele liniare

determinate de inecuaţiile: 2u1 + u 2 ≤ 3 , u1 + 2u 2 ≤ 5 şi u 2 ≤ 4 , în


condiţiile u1 , u 2 ≥ 0 , şi este o mulţime mărginită şi convexă. Atunci (vezi
teorema programării liniare), problema admite soluţie optimă finită.
c) Fie baza dată de coloanele 1 şi 2 din matricea sistemului de restricţii 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 restricţii saturate,
şi anume, restricţiile cu termenii liberi 3 şi 5:
⎧ 1
⎧2u1 + u 2 = 3 ⎪ u1 = 3
⎨ ⇒ ⎨ .
⎩u1 + 2u 2 = 5 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 ) . 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 ⎞
⎜⎜ ⎟⎟⎜ x 2 ⎟ + ⎜⎜ ⎟⎟⎜⎜ ⎟⎟ = ⎜⎜ ⎟⎟ .
⎝ − 1 − 2 − 1⎠⎜ x ⎟ ⎝ 0 1 ⎠⎝ x5 ⎠ ⎝ − 20 ⎠
⎝ 3⎠
Vectorul X1 de componente x1 = x 2 = x3 = 0 , x 4 = −12 şi
x5 = −20 verifică sistemul de restricţii din forma standard, are două
componente nenule (rangA=2), cel puţin 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ă verificăm acest lucru:

cj 3 5 4 0 0

cB B XB a1 a2 a3 a4 a5
0 a4 -12 -2 -1 0 1 0
0 a5 -20 -1 -2 -1 0 1

fj 0 0 0 0 0 0

f j −cj -3 -5 -4 0 0
5 a4 -2 -3/2 0 1/2 1 -1/2
3 a2 10 1/2 1 1/2 0 -1/2

fj 50 5/2 5 5/2 0 -5/2

f j −cj -1/2 0 -3/2 0 -5/2


5 a1 4/3 1 0 -1/3 -2/3 1/3
3 a2 28/3 0 1 2/3 1/3 -2/3

fj 152/3 3 5 7/3 -1/3 -7/3

f j −cj 0 0 -5/3 -1/3 -17/3

Iteraţia 1: Deoarece f j − c j ≤ 0 , ∀j ∈ 1,5 ⇒ X 1 este SDR . Se aplică


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

Iteraţia 2: Deoarece f j − c j ≤ 0 , ∀j ∈ 1,5 ⇒ X 2 este SDR.


• CEB: a 4 eliminat
⎛ − 1/ 2 − 5 / 2 ⎞ − 1/ 2
• CIB: min⎜⎜ , ⎟⎟ = .
⎝ − 3 / 2 − 1/ 2 ⎠ − 3/ 2
Analiza economico-matematică a unor modele liniare

Observaţia 1: Matricea B −1 se citeşte din ultimul tabel, în dreptul


vectorilor ce au format prima bază, dar, atenţie, elementele vor fi luate cu
⎛ 2 / 3 − 1 / 3⎞
semn schimbat: B −1 = ⎜⎜ ⎟⎟ .
⎝ − 1/ 3 2 / 3 ⎠

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ă (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 următorul


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

⎨− 2 x1 + x 2 ≥ 3 .
⎪ 3x + x ≥ 5
⎩ 1 2

x j ≥ 0, ∀j ∈ 1,2

Soluţia grafică: În primul rând vom reprezenta grafic mulţimea


soluţiilor admisibile ale problemei. Aşa cum ştim, mulţimea soluţiilor
admisibile este generată de restricţiile programului liniar de mai sus, şi se
află la intersecţia semiplanelor definite de aceste restricţii. Pentru a găsi
semiplanele şi apoi interesecţia acestora, vom reprezenta mai întâi 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 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,
semiplanul determinat de cea de-a treia restricţie este mărginit de d 3 şi nu
Metode simplex pentru modele liniare

include originea. Dacă notăm d1 I d 2 = {A} , d 1 I d 3 = {B} şi

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

x2

d2

C
A
B

d1
x1

O
d3
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,
d : 5 x1 + 3 x 2 = 0 . Ducând paralele la această dreaptă, se vede că prima
paralelă care intersectează mulţimea soluţiilor admisibile ale problemei este
⎛ 2 19 ⎞
cea care trece prin C ⎜ , ⎟ şi se află la cea mai mică distanţă de origine.
⎝5 5 ⎠

Soluţie analitică: Vom utiliza algoritmul simplex dual (punctul a)), apoi
algoritmul simplex primal (punctul b)).

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 .
⎪ 3x + x − x = 5
⎩ 1 2 5

x j ≥ 0, ∀j ∈ 1,5

a) Pentru a aplica algoritmul simplex dual, 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 , 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 .
Cunoscând toate aceste date, putem trece la aplicarea algoritmului
menţionat anterior:
Metode simplex pentru modele liniare

cj 5 3 0 0 0

cB B XB a1 a2 a3 a4 a5
0 a3 -4 -1 -1 1 0 0
0 a4 -3 2 -1 0 1 0
0 a5 -5 -3 -1 0 0 1
0 0 0 0 0 0
≤ 0 ∀j ?
fj
DA ⇒ SDR
f j −cj -5 -3 Ø Ø Ø
0 a3 -7/3 0 -2/3 1 0 -1/3
0 a4 -19/3 0 -5/3 0 1 2/3
5 a1 5/3 1 1/3 0 0 -1/3
25/3 5 5/3 0 6 -1/3
≤ 0 ∀j ?
fj
DA ⇒ SDR
f j −cj Ø -4/3 Ø Ø -1/3
0 a3 1/5 0 0 1 -2/5 -3/5
3 a2 19/5 0 1 0 -3/5 -2/5
5 a1 2/5 1 0 0 -1/5 -1/5

fj 67/5 5 3 0 -4/5 -1/5


≤ 0 ∀j ?
f j −cj Ø Ø Ø -4/5 -11/5
DA ⇒ soluţie optimă

Prima bază admisibilă (a3 a2 a1 ) este şi bază optimă pentru


modelul studiat. Din tabelul optimal obţinem cel puţin două informaţii:
67
• funcţia de eficienţă are valoarea minimă ;
5
2 19 1
• soluţia optimă are componentele: x1* = , x 2* = , x3* = , x 4* = 0 ,
5 5 5
x5* = 0 .

b) Să reluăm 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
⎩ 1 2 5 8

x j ≥ 0, ∀j ∈ 1,8

cj 5 3 0 0 0 α α α
B a1 a2 a3 a4 a5 a6 a 7 a8
cB XB
α a6 4 1 1 -1 0 0 1 0 0

α a7 3 -2 1 0 -1 0 0 1 0

α a8 5 3 1 0 0 -1 0 0 1

fj 14 α 2α 3α -α -α -α α α α
f j −cj 2 α -5 3 α -3 -α -α -α Ø Ø Ø

α a6 1 3 0 -1 1 0 -1 0

3 a2 3 -2 1 0 -1 0 0 0
α a8 2 5 0 0 1 -1 0 1

fj 3 α +9 8α 3 -α -α -α α α
f j −cj 8 α -5 Ø -α -α -α Ø Ø

5 a1 1/3 1 0 -1/3 1/3 0 0


3 a2 11/3 0 1 -2/3 -1/3 0 0
α a8 1/3 0 0 5/3 -2/3 -1 1

fj (58+ α )/3 5 3 (5 α -11)/3 (2-2 α )/3 -α α


f j −cj Ø Ø (5 α -11)/3 (2-2 α )/3 -α Ø

5 a1 2/5 1 0 0 1/5 -1/5


3 a2 19/5 0 1 0 -3/5 -2/5
0 a3 1/5 0 0 1 -2/5 -3/5

fj 67/5 5 3 0 -4/5 -11/5

f j −cj Ø Ø Ø -4/5 -11/5


Metode simplex pentru modele liniare

Prin rezolvarea acestui model liniar prin cei doi algoritmi am vrut să
evidenţiem, încă o dată, 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
III. ANALIZA ECONOMICO-MATEMATICĂ
A PROBLEMELOR AFLATE ÎN DUALITATE

Există probleme economice echivalente care utilizează aceleaşi date


de intrare pentru restricţiile din modelele matematice şi în care funcţiile
economice se prezintă fie sub forma unui maxim, fie sub forma unui minim.
De exemplu, în problema nutriţiei poate interesa întocmirea unei raţii
alimentare ce trebuie să conţină cantitatea necesară de unităţi nutritive cu
preţ de cost minim, dar şi problema stabilirii unei raţii la un preţ dat, care să
cuprindă un număr maxim de unităţi nutritive. Pentru a stabili o raţie este
recomandat ca cele două probleme duale să fie analizate economic după
rezolvarea lor matematică.
Problema de bază a cărei soluţie se găseşte prin metode de
programare liniară este numită “problema primală”. Fiecărei probleme
primale îi corespunde o “problemă duală”, care aduce unităţii de decizie
informaţii adiţionale. Natura problemei duale depinde de problema primală.
Dacă problema primală este o problemă de maximizare, atunci duala ei va fi
o problemă de minimizare. Analog, dacă primala este de minimizare, duala
va fi de maximizare.
Soluţia optimă nu trebuie să fie considerată ca un model de
inteligenţă de nedepăşit, ea trebuie analizată şi, eventual, ajustată de către
manager, sfătuit de specialişti, conform unor intercondiţionări care nu au
putut fi exprimate prin relaţiile matematice din modelul rezolvat, dar
cunoaşterea ei este absolut necesară în luarea unor decizii justificate
ştiinţific.
Analiza economico-matematică a unor modele liniare

1. Analiza problemei primale


Pentru a realiza analiza economică a operaţiilor algoritmului simplex
primal se va considera un model clasic de stabilire a unui program optim de
fabricaţie.
Problema primală:
Elementele Semnificaţii economice
modelului
Număr de produse de tip
III.1.1 [max] f = 20 x1 + 10 x 2 + 12 x3 x j , j = 1,3
Pj .
⎧ x1 + 2 x 2 ≤ 680 → u1 bi , i = 1,3 Disponibilul din resursa i .

III.1.2 ⎨ 2 x1 + x 2 + 4 x3 ≤ 800 → u 2 Cantitatea din resursa i care
⎪5 x + 4 x + 2 x ≤ 900 → u aij , i, j = 1,3
se consumă pentru o unitate
⎩ 1 2 3 3
de produsPj .
III.1.3 x j ≥ 0, ∀j = 1,3 3 Resursa i este limitată.
∑a
j =1
ij x j ≤ bi

Venit aşteptat de la o unitate


c j , j = 1,3
de produs Pj .

Problema duală (semnificaţiile economice ale relaţiilor dualei


depind de procesul modelat prin primală şi tipul restricţiilor primalei şi vor
fi deduse în paragraful 2):

III.1.4 [min]g = 680u1 + 800u 2 + 900u 3

⎧u1 + 2u 2 + 5u 3 ≥ 20

III.1.5 ⎨ 2u1 + u 2 + 4u 3 ≥ 10
⎪ 4u + 2u ≥ 12
⎩ 2 3

III.1.6 u i ≥ 0, ∀i = 1,3
Analiza economico-matematică a problemelor aflate în dualitate

Reluăm tabelul simplex-primal şi îl analizăm din punctul de vedere


propus:
T.III.1.1
cj → 20 10 12 0 0 0 Criterii

cB B XB a1 a2 a3 a4 a5 a6 ρ
0 a4 680 1 2 1 1 0 0 680

0 a5 800 2 1 4 0 1 0 400

0 a6 900 5 4 2 0 0 1 180 (min)

fj 0 0 0 0 0 0 0

f j −cj -20 -10 -12 Ø Ø Ø ≥ 0 ∀j ? NU

Criteriul de intrare în bază:


min ( f j − c j ) = −20 = f 1 − c1 ⇒ produsul P1 este cel mai rentabil
a j nebazic

deoarece va provoca cea mai mare creştere a funcţiei economice venit total,
şi anume:

Venit Venit Număr de unităţi Venit unitar


total total a noii variabile
III.1.7 T.III.1.2 2 = T.III.1.1 1 + c1 = f 1 − c1 =
bazice x1 .

900
= 0+ ⋅ c1 = 3600
5

Egalitatea c1 = f 1 − c1 apare ca un caz particular când soluţia de


start este formată numai din variabile de abatere.
Criteriul de ieşire din bază este invariabil la tipul de optim.
Analiza economico-matematică a unor modele liniare

⎛1⎞
⎜ ⎟
Conform consumurilor specifice ⎜ 2 ⎟ din cele trei resurse disponibile
⎜5⎟
⎝ ⎠
în cantităţi egale cu 680, 800, respectiv 900, numărul maxim de produse P1
care pot fi fabricate este 180; resursa R3 este prima resursă care se consumă
prin introducerea lui P1 în programul de fabricaţie.

T.III.1.2
c j → 20 10 12 0 0 0 Criterii

cB B XB a1 a2 a3 a4 a5 a6 ρ
0 a4 500 0 6/5 -2/5 1 0 -1/5 -

0 a5 440 0 -3/5 16/5 0 1 -2/5 440/(16/5) (min)

20 a1 180 1 4/5 2/5 0 0 1/5 180/(2/5)

fj 3600 20 16 8 0 0 4

f j −cj Ø 6 -4 Ø Ø 4 ≥ 0 ∀j ? NU
0 a4 555 0 9/8 0 1 1/8 -1/4

12 a3 275/2 0 -3/16 1 0 5/16 -1/8

20 a1 125 1 7/8 0 0 -1/8 1/4

fj 4150 20 61/4 12 0 5/4 7/2

f j −cj Ø 21/4 Ø Ø 5/4 7/2 ≥ 0 ∀j ? DA ⇒


STOP

Informaţiile conţinute în ultima iteraţie:


▪ Problema primală admite soluţie optimă finită ( f j − c j ≥ 0, ∀j = 1,6 ),

nedegenerată ( X B > 0 ) şi unic determinată (nu există vector nebazic cu


f j − c j = 0 ). Soluţia optimă este X * = (125 0 137.5 555 0 0 ) .
T

Astfel, venitul maxim de 4150u.m este obţinut dacă structura programului


Analiza economico-matematică a problemelor aflate în dualitate

de fabricaţie este x1 = 125 , x3 = 137.5 . Prin programul optim, resursele R2


şi R3 sunt consumate integral. Din resursa R1 rămâne un stoc de 555
unităţi. Calculăm consumul din R1 :

x1* + 2 x 2* = 125 ≤ 680 ,

şi concluzionăm că cele 555 unităţi pot fi folosite pentru 4 × 125 noi


programe, rămânând un stoc de 55 unităţi. Este posibil ca această
imobilizare de fonduri fixe să mărească cheltuielile totale de fabricaţie.
Produsul P2 este nerentabil în condiţiile actuale.

Venitul total este maxim şi egal cu:

Veni Venit Număr de unităţi


total total a noii variabile
= T.III.1.2
+ ⋅ f 3 − c3 =
maxim bazice x3 .

440
= 3600 + ⋅ 4 = 4150 .
16 / 5

Dacă problema primală admite soluţie optimă finită, atunci şi duala


sa admite soluţie optimă finită şi:
⎛ 1 1/ 8 − 1/ 4⎞
⎜ ⎟
U = c ⋅B
* B −1
= (0 12 20 )⎜ 0 5 / 16 − 1 / 8 ⎟ = (0 5 / 4 7 / 2 ) ,
⎜ 0 − 1/ 8 1/ 4 ⎟
⎝ ⎠
elemente ce apar în linia f j în dreptul vectorilor ce au format prima bază.
Mai mult, [min]g = [max] f = 4150 .
Inversa bazei optime B −1 este utilizată în procedura de
postoptimizare (vezi capitolul IV).
Analiza economico-matematică a unor modele liniare

⎧u1 + 2u 2 + 5u 3 − u 4 = 20

Forma standard a problemei duale este ⎨ 2u1 + u 2 + 4u 3 − u 5 = 10 . Înlocuim
⎪ 4u + 2u − u = 12
⎩ 2 3 6

aici U * citit anterior:

⎧ 5 35
⎪ 2 + 2 − u 4 = 20
⎪⎪ 5 21 *
⎨ + 14 − u 5 = 10 , de unde rezultă u 4 = 0 , u 5 = , u6 = 0 .
* *

⎪4 4
⎪ 5 + 7 − u 6 = 12
⎪⎩
Aşadar, (u*
1 u 2* u 3* f 4 − c4 f 5 − c5 f 6 − c6 ) este soluţia
optimă pentru forma standard a dualei problemei analizate.

Din iteraţia a doua, construim în acelaşi mod vectorul


u 2 = (0 0 4 0 6 − 4 ) . Înlocuindu-l în forma standard a dualei
obţinem:
⎧ 0 + 0 + 20 − 0 = 20

⎨ 0 + 0 + 16 − 6 = 10 .
⎪0 + 0 + 8 − (−4) = 12

Cum u i ≥ 0, ∀i = 1,5 şi u 6 = −4 < 0 , soluţia u 2 nu este admisibilă


pentru duală. Se ştie că dacă cX = Ub şi soluţia admisibilă de bază X nu
este optimă, atunci U nu este soluţie admisibilă pentru duală, ceea ce tocmai
am verificat.
Efectuând aceleaşi calcule cu elementele din tabelul optimal, găsim
că U 3= U * , deoarece, în acest caz, X SAB este optimă.
Analiza economico-matematică a problemelor aflate în dualitate

În continuare vom generaliza analiza economică a operaţiilor


necesare găsirii soluţiei optime.
• Pentru a j nebazic relativ la baza B = (a1 ,..., a m ) există reprezentarea

unică:
a j = y1 j a1 + y 2 j a 2 + ... + y mj a m , pentru j ∉ {1,.., m} ,
care poate fi scrisă pe componente astfel:

⎛ a1 j ⎞ ⎛ a11 ⎞ ⎛ a21 ⎞ ⎛ am1 ⎞


⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟
⎜ a2 j ⎟ ⎜a ⎟ ⎜ a22 ⎟ ⎜ am 2 ⎟
III.1.8 1 ⋅ ⎜ ⎟ = y1 j ⎜ 21 ⎟ + y2 j ⎜ + ..... + ymj ⎜
... ... ... ⎟ ... ⎟ ⇒
⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟
⎜a ⎟ ⎜a ⎟ ⎜a ⎟ ⎜a ⎟
⎝ mj ⎠ ⎝ m1 ⎠ ⎝ 2m ⎠ ⎝ mm ⎠

Cât se consumă din Cât se consumă din cele m


Interpretarea resursele R1 ,…, Rm resurse disponibile pentru
economică: y 2 j unităţi de produs P2 .
pentru o unitate de
produs Pj .

⇒ Relaţia III.1.8 exprimă echivalenţa consumului: “pentru a fabrica un


produs Pj se consumă din R1 , R2 ,..., Rm tot atât cât s-ar consuma dacă s-ar
prelucra y1 j , y 2 j ,..., y mj unităţi din P1 , P2 ,..., Pm ”.

• Criteriul de intrare în bază: presupunem că obiectivul este [max] f ,


atunci, a k intră în bază dacă f k − c k = min ( f j − c j ) , unde:
f j −c j <0

⎛ y1 j ⎞
⎜ ⎟
f j − c j = c B ( B −1 ⋅ a j ) − c j = c B ⎜ ... ⎟ − c j = (c1 y1 j + ... + c m y mj ) − c j .
⎜y ⎟
⎝ mj ⎠
Interpretarea economică:
−1
• B ⋅ a j reprezintă scrierea lui a j în baza B (vezi III.1.8).
Analiza economico-matematică a unor modele liniare

• c j este venitul unitar aşteptat de la o unitate Pj .


• În expresia (c1 y1 j + ... + c m y mj ) − c j , (c1 y1 j + ... + c m y mj ) este venitul total
aşteptat din vânzarea a y1 j ,.., y mj unităţi din P1 ,.., Pm , iar c j este venitul
scontat din vânzarea unui produs Pj .
Se vor analiza cele două situaţii posibile:

S1) f j − c j < 0 implică f j < c j , deci este rentabilă producerea lui Pj .


Pentru o rentabilitate maximă se alege f k − c k = min ( f j − c j ) .
f j −c j <0

Introducerea lui a k în bază este echivalentă cu introducerea lui Pk în


procesul de fabricaţie; în acest mod se va produce cea mai mare creştere a
lui f.

S2) Dacă f j ≥ c j , ∀j , nici un produs din afara celor care au reprezentant în


bază nu este rentabil a fi produs. Valoarea f k − c k apare ca un venit
marginal algebric corespunzător introducerii activităţii Pk în programul de
fabricaţie.
• Trecerea de la iteraţia i la iteraţia i+1 este realizată astfel încât
( i +1)
(i )
f ( X SAB ) ≤ f ( X SAB ):
i=2 440
f ( X (i +1) ) = f ( X (i ) ) − ρ l ( f k − c k ) = f ( X ( 2 ) ) − (−4) = 3600 + 550 = 4150 = f ( X (3) )
16 / 5

xl
Se spune că [− ρ l ( f k − c k )] = − ( f k − c k ) reprezintă creşterea lui f prin
y lk
trecerea la noua soluţie admisibilă de bază.
Analiza economico-matematică a problemelor aflate în dualitate

• Criteriul de ieşire din bază: în ipoteza că se cere maximizarea funcţiei


economice, să presupunem că a l este eliminat din bază la iteraţia i. Atunci
⎧x ⎫ x
min ⎨ s ⎬ = l .
y sk >0 y
⎩ sk ⎭ y lk

La iteraţia (i + 1) valorile variabilelor bazice


B X B
ak x s şi x k sunt:
x s ⋅ y lk − xl ⋅ y sk y
x s := = x s − xl sk
y lk y lk
as xs y sk x x
x k := l sau y kl := l
y kl xk
care înlocuită mai sus ne permite scrierea:
ysk
al y lk pivot xs(i+1) = xs(i) − xl(i) = xs(i) − xk(i+1) ⋅ ysk
xl xl(i)

xk(i+1)

Dacă x k(i +1) = 1 ⇒ x s(i ) scade cu y sk ; y sk apare ca o taxă de


substituire a activităţii Pk de către activitatea Ps .
Pentru problema considerată la iteraţia 2 luăm în discuţie activitatea
P1 : x1( 2 ) = 180 ; s=1, k=3 ⇒ x1(3) = x1( 2) − x3(3) ⋅ y13 , adică
275 2
125 = 180 − ⋅ . În concluzie, numărul produselor P1 scade la 125.
2 5
Analiza economico-matematică a unor modele liniare

2. Analiza economico-matematică a problemelor primală-duală

Problema primală este calea originală prin care se enunţă


matematic problema propusă a fi rezolvată.
Se consideră m resurse, R1 , R2 ,..., Rm (materii prime, materiale, forţă
de muncă, capacităţi de producţie, etc) care participă la realizarea a n
produse, P1 , P2 ,..., Pn . Notăm cu c j venitul obţinut în urma valorificării unei

unităţi Pj , iar cu x j nivelul activităţii Pj , ∀j ∈ 1, n .

Obiectivul problemei este:

n n Venit aşteptat de Număr de


III.2.1 [max] f = ∑ c j x j = ∑ la o unitate Pj × unităţi Pj
j =1 j =1

Restricţiile sunt date de disponibilul limitat de resurse:


n

∑a
j =1
ij x j ≤ bi , ∀i ∈ 1, m ,

adică,

n Cât se consumă din


III.2.2 ∑
j =1
resursa Ri pentru
×
Număr
de unităţi ≤
Disponibil
din resursa Ri
o unitate din Pj Pj

∀i ∈ 1, m .
Desigur, condiţia de nenegativitate este de asemenea impusă:
x j ≥ 0 , ∀j ∈ 1, n .
Analiza economico-matematică a problemelor aflate în dualitate

Problema duală este unic determinată pentru o problemă primală


dată. Programul său liniar utilizează acealeaşi date de intrare, dar cu alte
semnificaţii algebrice.
Obiectivul:
m m
[min]g = ∑ u i bi = ∑
Disponibilul
III.2.3 ui ×
i =1 i =1 din resursa Ri

Restricţiile sunt date de:


m

∑a u
i =1
ij i ≥ cj , ∀j ∈ 1, n ,

ceea ce înseamnă

Cât se consumă din


Venit aşteptat de
Ri pentru o unitate
m
la o unitate Pj , j = 1, n .
III.2.4 ∑
i =1
de Pj .
× ui ≥

Problema duală se rezolvă în condiţiile

u i ≥ 0 , ∀i ∈ 1, m .

Dacă problema primală admite soluţie optimă finită, atunci şi duala


are optim finit şi

III.2.5 [max ] f ( X * ) = [min ]g (U * ) .


Analiza economico-matematică a unor modele liniare

Această relaţie are următoarea interpretare:

n Număr de produse m Disponibil


∑ Venit aşteptat de
× Pj în programul
=
∑ din resursa × u i*
j =1 la o unitate Pj optim
i =1 Ri

Unităţi monetare Număr produse

Măsurat în
Venit total optim măsurat kg, m2, lăzi, × u i
în unităţi monetare etc.

Din cauza egalităţii, variabila u i trebuie să aibă semnificaţia unui


preţ “ataşat” resursei R i ; acesta va fi numit “preţ umbră” sau “preţ intern”
sau “preţ de eficienţă”.

Explicitâd relaţia III.2.5, găsim

III.2.6 c1 x1* + ... + c n x n* = [max ] f = [min ]g = b1u1* + ... + bi u i* + ... + bm u m* ,


şi, considerând

III.2.7 b i := bi + 1 ,

Obţinem

m
III.2.8 b1u1* + ... + (bi + 1)u i* + ... + bm u m* = ∑ bi u i* + u i* = [max ] f + u i* .
i =1

Din ultimele două relaţii, rezultă semnificaţia lui u i* : acesta arată cu


cât creşte valoarea optimală a programului primal dacă disponibilul din
resursa R i creşte cu o unitate. Această valoare poate fi privită ca o evaluare
Analiza economico-matematică a problemelor aflate în dualitate

obiectiv determinată a unei unităţi din resursa R i . Preţurile umbră sunt


costuri impuse sau de oportunitate ale factorilor de producţie (resurse, în
cazul considerat). Ei sunt indicatori cruciali pentru analiza programului
optim şi pentru modificarea lui în cazul redefinirii valorilor unor
disponibile. Scrise ca un şir descrescător, valorile optimale ale variabilei
duale indică ordinea de preferinţă în aprovizionarea suplimentară din cele m
resurse; se poate astfel estima importanţa relativă a celor m resurse în
realizarea scopului declarat.
Resursele care sunt consumate prin programul optim au preţuri
umbră nenule, iar cele care nu sunt consumate integral au preţuri umbră
nule. Valorile u i* , i ∈ 1, m , depind de cantităţile bi de resurse disponibile, de

valoarea consumurilor specifice aij , j ∈ 1, n , şi de tipul restricţiilor

primalei. În cazul u i* > 0 , i ∈ 1, m , ea va reprezenta aportul valoric


(contribuţia bănească) la venitul total al unei unităţi din resursa Ri şi, în
acelaşi timp, reflectă deficitul relativ al resursei în raport cu eficienţa
sistemului, măsurată prin venit.
Din punct de vedere matematic, u1 ,..., u m sunt multiplicatorii lui
Lagrange; ei dau informaţii despre rata de creştere sau descreştere a lui
f ( X ) la o creştere de o unitate a unui disponibil.
Din III.2.6 rezultă că un program este optim dacă şi numai dacă
există un sistem de preţuri umbră ( u1* ,..., u m* ) astfel încât valoarea resurselor
exprimată prin ele egalează valoarea maximă a funcţiei obiectiv f. Preţurile
umbră, ale căror valori sunt stabilite prin rezolvaea problemei primale, au o
mare importanţă practică, deoarece indică cu cât va creşte venitul firmei
dacă se decide mărirea producţiei prin suplimentarea unor resurse.
Analiza economico-matematică a unor modele liniare

Să revenim la III.2.4. Înlocuind u i prin semnificaţia găsită, obţinem:

m Cât se consumă din


∑i =1
resursa R i pentru
×
Preţul umbră al
resursei Ri ≥
Venit aşteptat de
la o unitate Pj
o unitate din Pj

pentru j fixat. Această restricţie exprimă un paradox,

Valoarea consumurilor din cele m


resurse pentru realizarea unui Venit aşteptat de
produs Pj , calculată pe baza ≥ la o unitate Pj
preţurilor umbră ui

care va fi înlăturat prin utilizarea teoremei ecarturilor complementare.

Teorema ecarturilor complementare

Se consideră un cuplu de probleme duale simetrice

[max] f = cX [min ]g = ub
x u

{AX≤b şi {uA ≥ c .
X ≥0 u≥0

Condiţia necesară şi suficientă pentru ca un cuplu de soluţii


admisibile de bază X * şi U * să fie optime este ca ele să satisfacă simultan
relaţiile:
III.2.9 U * ( AX * − b) = 0 ,
T
III.2.10 X * (c − U * A) = 0 .
Analiza economico-matematică a problemelor aflate în dualitate

Din III.2.10 se va analiza produsul

⎛ n ⎞
III.2.11 u i* ⎜⎜ ∑ aij x *j − bi ⎟⎟ = 0 , i = 1, m .
⎝ j =1 ⎠

n
Cazul 1 u i* > 0 ⇒ ∑a
j =1
ij x *j − bi = 0 ⇒ Dacă prin programul optim resursa

R i este consumată integral, atunci devine eficientă mărirea acesteia cu cel


puţin o unitate ( b i +1 ). Cu cât valoarea lui u i* este mai mare cu atât creşte
această eficienţă. Pe baza acestei interpretări putem trage concluzia că f *
creşte oricât dorim dacă bi creşte.
Pentru a exemplifica teoria care va fi dezvoltată, considerăm două
modele duale
[max] f = 18 x1 + 14 x 2 + 15 x3 [min]g = 700u1 + 900u 2 + 800u 3
⎧ x1 + 3 x 2 ≤ 700 ⎧ u1 + 3u 2 + u 3 ≥ 18
⎪ ⎪
⎨3 x1 + x 2 + 4 x3 ≤ 900 şi ⎨3u1 + u 2 + 2u 3 ≥ 14 ,
⎪ x + 2 x + 2 x ≤ 800 ⎪ 4u + 2u ≥ 15
⎩ 1 2 3 ⎩ 2 3

x j ≥ 0, ∀j ∈ 1,3 u i ≥ 0, ∀i ∈ 1,3

despre care deţinem următoarele informaţii:

⎛ 250 ⎞
⎜ ⎟
⎜ 150 ⎟
⎜ 0 ⎟
• admit soluţii optime finite X * = ⎜ ⎟ , respectiv U * = (3 5 4 ) ;
⎜ 0 ⎟
⎜ 0 ⎟
⎜ ⎟
⎜ 250 ⎟
⎝ ⎠
• [max] f = [min]g = 6600 .
Analiza economico-matematică a unor modele liniare

• primala a fost rezolvată prin algoritmul simplex primal. Din tabelul final
⎛ 3 / 8 − 1/ 8 0⎞
−1
⎜ ⎟
am extras baza optimă: (a 2 a1 a6 ) , B = ⎜ − 1 / 8 3 / 8 0 ⎟ şi
⎜ − 5 / 8 − 1/ 8 1 ⎟
⎝ ⎠
f j − c j = (0 0 5 3 5 0) .

Pentru i = 1 relaţia III.2.1 devine u1* ( x1* + 3x 2* − 700) = 0 . Soluţiile


optime fiind cunoscute, se constată rapid că x1* + 3 x 2* − 700 = 0 şi
u1* = 3 > 0 . Din interpretarea preţului umbră u , rezultă că, dacă disponibilul
de 700 ar creşte cu o unitate, [max] f de 6600 creşte cu 3 unităţi monetare.

Vom parametriza liniar acest disponibil în funcţie de u1* :


⎛ 700 ⎞ ⎛ 700 + αu1 ⎞
*
⎜ ⎟ ⎜ ⎟
b = ⎜ 900 ⎟ → ⎜ 900 ⎟ şi α ∈ {1,2,...} . Scriem b(α , u1* ) în baza
⎜ 800 ⎟ ⎜ 800 ⎟
⎝ ⎠ ⎝ ⎠
(a 2 a1 a6 ) :
⎛ 3α * ⎞
⎜ 150 + u1 ⎟
⎛ 700 + α ⎞ ⎜ 8 ⎟ ⎧α ∈ {1,2,...}
⎜ ⎟ ⎜ α * ⎟ ⎪
X (α , u1 ) = B ⎜ 900 ⎟ = 250 − u1 ≥ 0 ⇔ ⎨u1*α ≤ 2000 ⇔ α ∈ {1,...,400}
B * −1
⎜ 8 ⎟
⎜ 800 ⎟ ⎜ ⎪ u *α ≤ 400
⎝ ⎠ 5α * ⎟ ⎩ 1
⎜ 250 − u1 ⎟
⎝ 8 ⎠

Pentru aceste valori ale lui α , X (α ) este optimală. În aceste


condiţii,
⎛ α⎞ ⎛ 3α ⎞
f (α ) = 18⎜ 250 − ⎟ + 14⎜150 + ⎟ = 6600 + 3α .
⎝ 8⎠ ⎝ 8 ⎠
⎛ 700 + 400 ⎞ ⎛1100 ⎞ ⎛ 300 ⎞
~ ⎜ ⎟ ⎜ ⎟ ~B −1 ~
⎜ ⎟
Pentru α = 400 ⇒ b = ⎜ 900 ⎟ = ⎜ 900 ⎟ ⇒ X = B b = ⎜ 200 ⎟ .
⎜ 800 ⎟ ⎜ 800 ⎟ ⎜ 0 ⎟
⎝ ⎠ ⎝ ⎠ ⎝ ⎠
Analiza economico-matematică a problemelor aflate în dualitate

Rezultatul obţinut este foarte interesant deoarece s-a obţinut un


program de fabricaţie cu consumul integral al tuturor resurselor, dacă b1
creşte cu 400 de unităţi, iar b2 , b3 se menţin. Valoarea maximă a funcţiei
obiectiv va fi, în acest caz, [max ] f = 8200 u.m.
n
Cazul 2 ∑a
j =1
ij x *j − bi ≠ 0 ⇒ u i* = 0 . Dacă prin programul optimal resursa i

nu este complet utilizată, preţul său umbră este nul. Pentru i = 3 , din
III.2.11, rezultă:

u 3* ( x1* + 2 x 2* + 2 x3* − 800) = 0 , unde x1* + 2 x 2* + 2 x3* = 550 reprezintă


consumul din resursa R3 , iar 800 este disponibilul din aceeaşi resursă.
Din relaţia matriceală III.2.10, considerăm produsul:

⎛ m

III.2.12 x *j ⎜ c j − ∑ aij u i* ⎟ = 0 , j = 1, n ,
⎝ i =1 ⎠
care va fi analizat în două circumstanţe.

m
Cazul 3 x *j > 0 ⇒ c j = ∑ aij u i* , cu interpretarea: este rentabilă
i =1

prelucrarea produsului Pj deoarece valoarea consumurilor unitare din cele


m resurse calculate pe baza preţurilor (umbră) interne nu depăşeşte venitul
aşteptat.

Pentru j = 1 , se observă că

x1* [18 − (u1* + 3u 2* + u 3* )] = 0 ,

a11 a12 a13


=1 = 3 =1
Analiza economico-matematică a unor modele liniare

cu x1* = 250 > 0 . Coeficienţii variabilelor dualei sunt elementele vectorului


a1 şi reprezintă consumurile specifice din cele trei resurse pentru un produs
P1 .
Ca urmare, avem următoarea interpretare:

Venit 3 Cât se consumă din cele Preţurile unitare


unitar
pentru P1
- ∑i =1
trei resurse pentru un
produs P1
× umbră ale celor
trei resurse = 0.

m
Cazul 4 ∑a u
i =1
ij
*
i ≠ c j ⇒ x *j = 0 ⇒ fabricarea lui Pj nu este

rentabilă deoarece evaluarea resurselor consumate pentru o unitate Pj prin


preţurile umbră depăşeşte venitul aşteptat de la o unitate Pj . Pentru cazul
numeric menţionat mai sus şi i=3 , avem:
x3* [15 − (4u 2* + 2u 3* )] = x3* [15 − 20] = 0 ⇒ x3* = 0 ⇒ P3 este nerentabil în
condiţiile date.

Să reţinem:
Problema primală Problema duală
* n
x Pj
∑a u
nivelul activităţii
j
ij
*
i ≥ c j . Criterii de optimalitate pentru
(număr de produse Pj ) j =1
primală cu factori de cost relativ.
m *
u Ri , privit ca rata cu
∑a
- preţul umbră ataşat lui
ij x *j ≤ bi - cât va fi consumat din Ri i
*
i =1 care f ( X ) poate să crească sau să descrească la
prin programul optim) o creştere cu o unitate a respectivei resurse.

RangA=m Cel mult m restricţii ale dualei sunt verificate prin


Programul optim prevede realizarea a cel mult m egalitate.
activităţi diferite.
[max]f [min]g
g (U ) − f ( X ) ≥ 0, ∀X SAB , U SAB
g (U ) − f ( X ) ≥ g (U * ) − f ( X )
g (U ) − f ( X ) ≥ g (U ) − f ( X * )
Analiza economico-matematică a problemelor aflate în dualitate

În finalul paragrafului revenim la problemele duale date de relaţiile


III.1.1-III.1.3, respectiv III.1.4-III.1.6, pentru a le analiza prin prisma
teoremei ecarturilor complementare. Din teoremele fundamentale ale
dualităţii rezultă că duala unei probleme ce admite soluţie optimă finită are,
de asemenea, soluţie optimă finită şi [max] f = [min]g . Soluţia optimă a
dualei poate fi stabilită aplicând metoda simplex sau o variantă a acesteia.

Rezolvarea dată în T.III.1.1-T.III.1.2 ne facilitează aflarea soluţiei


optime a dualei. Deoarece baza iniţială a fost (a 4 a5 a 6 ) , soluţia optimă
a dualei este dată de valorile f 4 , f 5 , f 6 din ultimul tabel simplex. Astfel,
5 * 7
u1* = 0 , u 2* = , u 3 = , iar valoarea minimă a funcţiei obiectiv din duală
4 2
este
5 7
[min]g = 680 ⋅ 0 + 800 ⋅ + 900 ⋅ = 4150 = [max] f .
4 2
T
⎛ 275 ⎞ ⎛ 5 7⎞
Cele două soluţii optime, X * = ⎜125 0 ⎟ şi U * = ⎜ 0 ⎟
⎝ 2 ⎠ ⎝ 4 2⎠
trebuie să verifice relaţiile:

( )
⎧u1* x1* + 2 x 2* − 680 = 0
⎪ * *
(
⎪u 2 2 x1 + x 2 + 4 x3 − 800 = 0
* *
)
⎪ 3 1 (
⎪u * 5 x * + 4 x * + 2 x * − 900 = 0
2 3 )

[ (
* * *
)]
⎪ 20 − u1 + 2u 2 + 5u 3 ⋅ x1 = 0
*


[ ( 1 2 3 )]
⎪ 10 − 2u * + u * + 4u * ⋅ x * = 0
2

[ ( )]
⎪⎩ 12 − 4u 2 + 2u 3 ⋅ x3 = 0
* * *

conform teoremei ecarturilor complementare.


Analiza economico-matematică a unor modele liniare

Să analizăm o parte dintre aceste relaţii:


- Valoarea optimă a variabilei u 2 este strict pozitivă, u 2* = 5 / 4 ,
atunci a doua relaţie este adevărată ⇔ 2 x1* + x 2* + 4 x3* − 800 = 0 . Dacă
preţul intern ce caracterizează resursa a doua (fondul de timp disponibil al
secţiei 2) este strict pozitiv, atunci această resursă este complet utilizată în
programul optim de producţie. Valoarea 5/4 dă creşterea lui [max] f = 4150
dacă fondul de timp al secţiei 2 creşte cu o unitate. Dacă problemele duale
nu sunt simetrice, şi în practică acest lucru este frecvent, u i* poate fi strict
negativ, ceea ce înseamnă că matricea disponibilului resursei i este
nerentabilă, deoarece duce la micşorarea lui [max] f .

- În prima relaţie avem x1* + 2 x 2* − 680 = 125 + 2 ⋅ 0 − 680 ≠ 0 , de


unde rezultă că u1* trebuie să fie 0, şi, într-adevăr, u1* = 0 . În acest caz,
interpretarea economică este următoarea: dacă programul optim nu
presupune epuizarea fondului de timp disponibil al secţiei 1, atunci preţul de
eficienţă al resursei este nul. Eficienţa măririi acestui fond este nulă, în
realitate ar provoca pierderi (resursă nestocabilă).

- În penultima relaţie,

( ) ⎛ 5 7 ⎞
10 − 2u1* + u2* + 4u3* ≠ 0 ⎜ 2 ⋅ 0 + + 4 ⋅ > 10 = c 2 ⎟ ⇒ x 2* = 0 .
4 2
⎝ ⎠
Produsul de tip 2 nu intră în programul optim de fabricaţie, deoarece
valoarea timpilor de prelucrare la cele trei secţii a unui produs de tipul 2,
calculată pe baza preţurilor interne optime, depăşeşte profitul său unitar.
- Din antepenultima şi ultima relaţie rezultă că este rentabilă
⎡ 275 ⎤
prelucrarea a 125 produse de tipul 1 şi a ⎢ ⎥ produse de tipul 2, pentru
⎣ 2 ⎦
că valorile timpilor de prelucrare obţinute prin evaluarea acestora cu
ajutorul preţurilor interne nu depăşesc profiturile.
Analiza economico-matematică a problemelor aflate în dualitate

Un program de producţie este optim sub aspectul profitului dacă şi


numai dacă există un sistem de preţuri interne (preţuri umbră) care să
egaleze profiturile cu cheltuielile, [max] f = [min]g . Preţurile interne apar
ca expresie a valorii resurselor luate în consideraţie în modelul matematic.
Valoriel lor optime sunt nule pentru resursele excedentare şi nenule numai
pentru resursele folosite integral în programul optim.

3. Interpretarea geometrică a dualităţii

Se consideră problema de programare liniară

[min] f = 2 x1 + 20 x 2 + 3 x 3 + 11 x 4 + 12 x 5
⎧ x + x 3 + x 4 + 2 x 5 ≥ 700 → u1
(P.P) ⎨ 1
⎩ x 2 + x 4 + x 5 ≥ 400 → u2
x j ≥ 0, ∀j ∈ 1,5
care are duala

[min]g = 700u1 + 400u 2


⎧ u1 ≤ 2 → x1
⎪ u ≤ 20 → x2
⎪⎪ 2
(P.D) ⎨ u1 ≤ 3 → x3
⎪ u + u ≤ 11 → x4
⎪ 1 2

⎪⎩2u1 + u 2 ≤ 12 → x5
u1 , u 2 ≥ 0
Analiza economico-matematică a unor modele liniare

Se aplică algoritmul simplex primal pentru a stabili existenţa sau


nonexistenţa soluţiei optimale a primalei. Forma standard a sistemului de
restricţii pentru problema primală este următoarea:

⎧ x1 + x3 + x 4 + 2 x5 − x 6 = 700
⎨ ,
⎩ x 2 + x 4 + x5 − x 7 = 400

⎛1 0 1 1 2 −1 0 ⎞ ⎛ 700 ⎞
astfel că A = ⎜⎜ ⎟⎟ , cu rangA=2, b = ⎜⎜ ⎟⎟ şi
⎝ 0 1 0 1 1 0 − 1⎠ ⎝ 400 ⎠
c = (2 20 3 11 12 0 0 ) .

Dacă baza de start este (a1 a 2 ) , atunci X SAB


1
ataşată ei va avea

componentele x1 = 700 , x 2 = 400 , xi = 0 ∀i ∈ 3,7 şi


1
f ( X SAB ) = 2 ⋅ 700 + 20 ⋅ 400 = 9400 .

Dacă B = (a3 a 2 ) , atunci X SAB


2
va avea componentele x1 = 0 ,

x 2 = 400 , x3 = 700 , xi = 0 ∀i ∈ 4,7 , iar


2
f ( X SAB ) = 20 ⋅ 400 + 3 ⋅ 700 = 10000 .

1
Problema cere minimizarea formei liniare f, şi cum f ( X SAB ) este
2 1
mai apropiată de [min]f decât f ( X SAB ) , X SAB va fi soluţia de start.
Se aplică algoritmul simplex primal.
Analiza economico-matematică a problemelor aflate în dualitate

cj 2 20 3 11 12 0 0

cB B xB a1 a2 a3 a4 a5 a6 a7 ρ
2 a1 700 1 0 1 1 2 -1 0 700/2 (min)
20 a2 400 0 1 0 1 1 0 -1 400/1

fj 9400 2 20 2 22 24 -2 -20

f j −cj Ø Ø -1 11 12 -2 -20

cj 2 20 3 11 12 0 0

cB B xB a1 a2 a3 a4 a5 a6 a7 ρ
12 a5 350 1/2 0 1/2 1/2 1 -1/2 0 350/(1/2)
20 a2 50 -1/2 1 -1/2 1/2 0 1/2 -1 50/(1/2) (min)

fj 5200 -4 20 -4 16 12 4 -20

f j −cj -6 Ø -7 5 Ø 4 -20

12 a5 300 1 -1 1 0 1 -1 1
11 a4 100 -1 2 -1 1 0 1 -2

fj 4700 1 10 1 11 12 -1 -10

f j −cj -1 -10 -2 Ø Ø -1 -10 ≤ 0, ∀j = 1,7


⇒ STOP

Modelul admite optim finit


⎛ 0 ⎞
⎜ ⎟
⎜ 0 ⎟
⎜ 0 ⎟
⎜ ⎟
X * = ⎜ 100 ⎟ ,
⎜ 300 ⎟
⎜ ⎟
⎜ 0 ⎟
⎜ ⎟
⎝ 0 ⎠
iar

[min]f=4700.
Analiza economico-matematică a unor modele liniare

Din prima teoremă fundamentală a dualităţii rezultă că şi duala


acestei probleme are soluţie optimă finită şi [min] f = [max]g = 4700.
Soluţia optimă a dualei se citeşte în linia f j din ultimul tabel, în dreptul
vectorilor ce au format prima bază. Aşadar, soluţia optimă a dualei este:
u1* = 1 , u 2* = 10 .
Soluţia optimă a dualei poate fi determinată foarte uşor folosind
metoda grafică. Intersecţia semiplanelor ale căror ecuaţii sunt date de
restricţiile problemei va evidenţia poligonul soluţiilor admisibile:
u1 ≤ 2 ⇒ d1 : u1 = 2 ; u 2 ≤ 20 ⇒ d 2 : u 2 = 20 ; u1 ≤ 3 este eliminată de
u1 ≤ 2 ;
u1 + u 2 ≤ 11 ⇒ d 3 : u1 + u 2 = 11 ; 2u1 + u 2 ≤ 12 ⇒ d 4 : 2u1 + u 2 = 12 .

d2

d1

D
C
Figura III.3.1

O A u1
d4 d3
Analiza economico-matematică a problemelor aflate în dualitate

χ este poligonul convex OABCD cu O(0,0), A(2,0), B(2,8), C(1,10)


şi D(0,11). Din teoremele fundamentale ale programării liniare, rezultă că
există o corespondenţă biunivocă între aceste puncte extreme şi soluţiile de
bază ale problemei (P.D). Pentru a afla soluţia optimă ştim că este suficient
să calculăm :

g(0,0)=0; g(2,0)=1400; g(2,8)=4600; g(1,10)=4700; g(0,11)=4400,


apoi să alegem cea mai mare valoare. Aceasta este g(1,10)=4700=[max]g, şi
deci u1* = 1 , u 2* = 10 .

Coordonatele acestor puncte extreme mai au şi altă semnificaţie, şi


anume, sunt soluţiile unor sisteme saturate de restricţii ale dualei (sistemele
saturate sunt formate din restricţii verificate cu egalitate). De exemplu,
B(2,8) verifică sistemul saturat

⎧ u1 = 2
⎨ .
⎩2u1 + u 2 = 12

Fie B o bază din tabelul simplex al primalei şi J B mulţimea indicilor


variabilelor bazice: de exemplu, baza (a1 a 2 ) , J B = {1,2} . La această bază
se poate asocia un sistem saturat de 2 restricţii ale dualităţii (în general
hiperplane) după următorul procedeu:

Pasul 1 În tabelul cu baza (a1 a 2 ) se citesc f j , cu j ∈ J B .


j = 1 ⇒ f1 = 2 ;
j = 2 ⇒ f 2 = 20 .

Pasul 2 Dintre restricţiile dualei se reţin acelea care au termeni liberi f j


citiţi la pasul
Analiza economico-matematică a unor modele liniare

1. Acestea vor forma sistemul saturat.

⎧ u1 = 2

⎩u 2 = 20

Se consideră a doua bază (a5 a 2 ) ⇒ J B = {5,2} .


Pasul 1 j = 5, f 5 = 12 ;

⎧ u 2 = 20
j = 2, f 2 = 20 ⇒ Pasul 2 ⎨ .
⎩2u1 + u 2 = 12

⎧2u + u 2 = 12
Sistemul saturat al bazei optime (a5 a 4 ) va fi ⎨ 1 .
⎩ u1 + u 2 = 11
Se observă că soluţia acestui sistem este soluţia optimă a dualei.

În concluzie, există o corespondenţă biunivocă între soluţiile de bază


ale problemei primale şi vârfurile poliedrului soluţiilor admisibile ale dualei,
iar g = 700u1 + 400u 2 este o combinaţie liniară pozitivă de vectori normali
la dreptele intersectate în A. În general, există un singur astfel de vârf,
acesta reprezentând chiar soluţia optimă.
IV. POSTOPTIMIZARE ÎN PROGRAMAREA LINIARĂ

1. Aspectul economic al postoptimizării

Soluţia optimă finită a modelului unui proces economic poate


reprezenta un program optim de fabricaţie, o repartiţie optimă, o raţie
optimă într-o anumită perioadă şi în condiţii exprimate matematic în
modelul elaborat. Ea oferă informaţii pentru luarea unei decizii optime în
anumite condiţii, deci pentru decident este foarte important să ştie dacă o
soluţie optimă este stabilă şi dacă o mică modificare a unor date numerice
implică modificări mari ale soluţiei optime. În analiza unor procese
economice reale prezintă interes cunoaşterea modului în care se schimbă
soluţia optimă a unui model liniar odată cu variaţia unuia sau a mai multor
elemente ale programului. În practica economică, se produc frecvent astfel
de modificări , prin schimbarea anumitor aspecte ale procesului tehnologic
şi/sau a preţurilor materiilor prime sau semifabricatelor şi/sau scăderea
vânzărilor, etc. În alte cazuri, variabilele modelului trebuie supuse unor
restricţii noi, de exemplu încadrarea într-un anumit disponibil al unei resurse
care de la un moment dat devine deficitară şi care nu a fost luată în
consideraţie iniţial. Nu este exclus nici cazul în care se pune problema
schimbării structurii programului prin introducerea de noi produse ce par
rentabile.
Apar astfel modele liniare cu coeficienţi variabili ale căror soluţii
optime, dacă există, trebuie determinate pentru ca deciziile ce vor fi luate să
fie optimale.
Problematica expusă mai sus poartă denumirea de postoptimizare şi
este caracterizată prin faptul că variaţia coeficienţilor este discretă. Pentru
abordarea unitară a cazurilor în care modificarea procesului economic
Analiza economico-matematică a unor modele liniare

produce schimbarea unor date numerice se va lucra cu un model liniar care


admite soluţie optimă finită,de forma:

⎧ AX = b, Am×n , rang A = m < n



⎨ X ≥0 .
⎪ [opt ] f ( X ) = cX

Se pune întrebarea cum influenţează aceste schimbări rezolvarea şi


soluţia optimă a problemei iniţiale? Se poate răspunde în două moduri:
R1 Noul model poate fi rezolvat independent de cunoaşterea soluţiei
optime pentru problema iniţială şi a elementelor din tabelul simplex care o
conţine.
R2 Se scrie modelul de aceeaşi structură cu cel iniţial în care cel
puţin o dată numerică este modificată sau modelul este extins prin
introducerea de noi restricţii sau variabile. Se vor utiliza o parte din
elementele tabelului simplex care conţine soluţia optimă a problemei iniţiale
pentru a rezolva problema modificată. Acest procedeu poartă denumirea de
postoptimizare sau reoptimizare şi este preferat primului procedeu deoarece
volumul de calcul este redus simţitor. Orice tip de postoptimizare presupune
parcurgerea a două etape:

Etapa 1 Rezolvarea problemei ce modelează procesul economic


într-o anumită perioadă.
Etapa 2 Se studiază influenţa modificării unor elemente ale
modelului sau extinderii lui asupra optimalităţii soluţiei găsite la Etapa 1.
Acest lucru se realizează prin refacerea unor calcule utilizând anumite
elemente din tabelul simplex optimal.
Postoptimizare în programarea liniară

2. Postoptimizarea prin modificarea coeficienţilor funcţiei scop

În practică, profiturile, preţurile de vânzare, costurile unitare de


transport, ratele de schimb ale monedei naţionale în alte unităţi monetare,
preţurile de achiziţie, de fabricaţie şi alte asemenea elemente sunt elemente
supuse unor modificări repetate şi uneori de amploare. Coeficienţii
variabilelor x1 ,..., x n din funcţia scop pot avea aceste semnificaţii.

Formulare matematică Se consideră modelul liniar

⎧ AX = b, Am×n , rang A = m < n



IV.2.1 ⎨ X ≥ 0 ,
⎪ [max ] f ( X ) = cX

care admite soluţia optimă finită

( )
⎧ X B * = B −1b


( )
*
IV.2.2 ⎨ X R = 0 ,
⎪ B bază optimală
⎪⎩

şi se va specifica algoritmul folosit pentru aflarea acesteia. În cazurile ce vor


fi analizate în prezenta lucrare se va utiliza algoritmul simplex-primal cu
tabelul optimal de forma

T.IV.2.1
cj c1 K c j K c n
cB B X
B
a1 K a j K a n
−1
cj aj B ⋅b B −1 ⋅ a j , j = 1, n
fj CB ⋅ X
B
C B ⋅ B −1 ⋅ a j , j = 1, n [max ] f
f j −cj C B ⋅ B −1 ⋅ a j − c j ≥ 0, (∀) j = 1, n
Analiza economico-matematică a unor modele liniare

Se cere să se stabilească soluţia optimă, dacă există, a problemei de


programare liniară:
~
IV.2.3 [max ] f ( X ) = c~X ,
IV.2.4 AX = b, Am×n , rang A = m < n ,
IV.2.5 X ≥ 0 ,

unde c~ diferă de c prin cel puţin o componentă, c~ = c + ∆c , deci vectorul


∆c = (∆c1 , ∆c 2 ,..., ∆c n ) are ce puţin o componentă diferită de 0.

Dacă analizăm cu atenţie elementele din tabelul optimal (T.IV.2.1)


vom constata că ele pot fi clasificate în două categorii:

• Elemente în a căror formule de calcul nu intervin coeficienţii


funcţiei scop:
X B = B −1b ,
B
a j = B −1a j , j = 1, n .

• Elemente care sunt afectate de modificarea elementelor vectorului


c.
T.IV.2.2
c~ j ?

cB B XB a1 K a j K a n
?
~ ? ?
fj
~ ~ ?
f j −cj

Ce valori vor avea acestea după modificarea lui c ? Soluţia optimă se


menţine? Şi dacă nu, cum se va afla noua soluţie dacă există? Vom afla
răspunsurile la aceste întrebări după parcurgerea următorilor paşi:

Pasul 1
Se identifică baza iniţială şi se citeşte B −1 .
Se scrie c~ = (c + ∆c )
j j .j∈ N
Postoptimizare în programarea liniară

Se construieşte c~ B ca fiind acea parte a vectorului c~ care are


componentele respectiv egale cu coeficienţii variabilelor bazice .

Pasul 2
Se citeşte baza optimală B pentru modelul iniţial (vezi tabelul IV.2.1).
Dacă a j este nebazic, j ∈ J \ J B , (a j ∉ B ) , se calculează
~ ~ ~ B −1
f j − c j = c B a j − c~j .
Se verifică dacă sunt îndeplinite condiţiile de optimalitate după
modificarea lui c :

~
Pentru [max ] f ⇒ f j − c~ j ≥ 0, (∀) j = 1, n ?
- Dacă NU ⇒ Pasul 3.
- Dacă DA ⇒ STOP. Soluţia optimă a problemei iniţiale este
optimă şi pentru problema postoptimizată şi
( )
[max] ~f = c~X * = (c + ∆c)X * = cB + ∆cB X B = cB X B + ∆cB X B = [max] f + ∆cB X B
Pasul 3

Din teorema de optimalitate formulată pentru probleme de maxim,


~
rezultă că există cel puţin o diferenţă strict negativă f j − c~ j < 0 , cu

j ∈ J \ J B , deci B nu mai este optimală pentru problema postoptimizată. Pe


de altă parte, valorile variabilelor bazice, nedepinzând de c , rămân pozitive,
ceea ce ne permite să tragem concluzia că soluţia X * va fi soluţie
admisibilă de bază pentru programul iniţial. Se va verifica existenţa soluţiei
optime a problemei cu c modificat, aplicând algoritmul simplex-primal cu
soluţia de start X * .
Analiza economico-matematică a unor modele liniare

Exemplificare
Modelul matematic:
[min ] f = 250 x1 + 200 x2 + 300 x3
⎧ x1 + 2 x3 ≥ 4

IV.2.6 ⎨ x1 + x 2 ≥ 6
⎪x + 2x ≤ 8
⎩ 1 2

x j ≥ 0, j = 1,2,3,
a fost rezolvat prin algoritmul simplex-primal. Generarea unei soluţii
admisibile s-a realizat prin metoda bazei artificiale. S-a constatat că
programul liniar admite soluţie optimă finită, unic determinată şi
degenerată, care poate fi citită din următorul tabel:
T.IV.2.3
cj 250 200 300 0 0 0 α >> 0 α >> 0
cB B X B a1 a2 a3 a 4 a5 a 6 a7 a8
250 a1 4 1 0 2 -1 0 0 1 0
200 a2 2 0 1 -2 1 -1 0 -1 1
0 a6 0 0 0 2 -1 2 1 1 -2
~
fj 1400 250 200 100 -50 -200 0 50 200 [min ] f
~ ~
f j − cj Ø Ø -200 -50 -200 Ø 50 − α 200 − α ≤ 0, (∀) j = 1,8

Acest tabel a fost obţinut după 2 iteraţii, baza iniţială fiind formată
din (a 7 , a8 , a 6 ) , unde a 7 şi a8 sunt vectori artificiali. Valorile optimale
sunt:
* * * * *
X * : x1 = 4, x 2∗ = 2, x3 = x 4 = x5 = 0, x 6 = 0
şi [min ] f = 1400 .
Se va studia natura soluţiei X * în cazul în care coeficienţii funcţiei
obiectiv se modifică astfel:
c~1 = 200, c~2 = 220, c~3 = 250,
sau
c~ = (250 − 50, 200 + 20, 300 − 50 ) = (c + ∆c ) .
Deseori paşii 1 şi 2 nu sunt parcurşi explicit, ci se extinde tabelul
simplex optim al problemei iniţiale cu:
♦ linie c~j , deasupra liniei c j ;
Postoptimizare în programarea liniară

♦ o coloană c~ B în stânga;
~ ~
♦ două linii f j şi f j − c~ j în continuarea tabelului (aceste două linii se
vor completa după scrierea lui c~ , j = 1, n şi c~ B ).
j

Redăm această extindere şi calculele implicate de aplicarea pasului 3


în următorul tabel:

c~ j 200 250 250 0 0 0

cj 250 200 300 0 0 0

c~ B c
B
B X B a1 a2 a3 a4 a5 a6 ρ
200 250 a1 4 1 0 2 -1 0 0 _

250 200 a2 2 0 1 -2 1 -1 0 21
0 0 a6 0 0 0 2 -1 2 1 _

fj 1400 250 200 100 -50 -200 0

f j −cj Ø Ø -200 -50 -200 Ø

~
fj 1300 200 250 -100 50 -250 0 [min ] f
~ ~
f j − cj Ø Ø -350 50 -250 Ø
≤ 0, (∀) j = 1,6 ?
NU ⇒ Pasul 3
continuă cu alg. simplex-
primal
200 a1 6 1 1 0 0 -1 0

0 a4 2 0 1 -2 1 -1 0

0 a6 2 0 0 0 0 1 1

~
fj 1200 200 200 0 0 -200 0 [min ] f
~ ~
f j − cj Ø -50 0 Ø -200 Ø
≤ 0, (∀) j = 1,6 ?
DA ⇒ STOP
Analiza economico-matematică a unor modele liniare

Se citesc valorile optimale:


~*
X : x1 = 6, x 2 = x3 = 0, x 4 = 2, x5 = 0, x 6 = 2 şi [min ] f = 1200 .
* * * * * *

~
Spre deosebire de X * , X * este nedegenerată. Verificăm dacă:
~
[max] ~f = [max] f + c B X B . Într-adevăr,
1400 + (−50 0 0)(4 2 0) T = 1400 − 200 = 1200 .

În concluzie, problema postoptimizată admite soluţie optimă finită


~
nedegenerată. Aceasta nu este unic determinată deoarece f 3 − ~
c3 = 0 .
Propunem cititorului, ca exerciţiu, aflarea unor soluţii optime
nebazice cu generatorul X * = λX 1* + βX 2* , undeλ , β ∈ [0,1] , λ + β = 1 şi

X 1* , X 2* soluţii optime bazice.

3. Postoptimizarea în cazul modificării vectorului b

Formulare matematică Se consideră un program liniar

⎧ AX = b, Am×n , rang A = m < n



⎨ X ≥0
⎪ [max ] f ( X ) = cX .

care admite soluţie optimă finită, cu tabelul optimal T. IV.2.1.

Presupunem că vectorul b îşi modifică cel puţin o componentă,


~
b = b + δ b , cu δ b ≠ 0 , prin creşterea unei capacităţi de producţie sau
modificarea disponibilului dintr-o resursă care nu a fost primită în timp util
sau din alte cauze similare. Examinând cu atenţie T.IV.2.1, se va observa că
modificarea lui b afectează valorile variabilelor bazice( B −1b ) şi valoarea
funcţiei scop ( c B X B ); celelalte elemente rămân neschimbate şi subliniem
Postoptimizare în programarea liniară

faptul că se menţine criteriul de optimalitate. Noul tabel va avea modificată


doar coloana soluţiei, după cum se poate observa în următorul tabel:

T. IV.3.1
cj c1 K c j K c n

B ~ a1 K a j K a n
cB XB
~
B−1 ⋅ b
fj ~
CB ⋅ X B
f j −cj

Ne propunem să studiem natura următoarei probleme modificate:


~
⎧ AX = b , Am× n , rang A = m < n

⎨ X ≥0 .
⎪ [max ] f ( X ) = cX .

În acest caz procedeul de postoptimizare este următorul:


Pasul 1 Se identifică baza iniţială şi se citeşte B −1 .
Pasul 2 Se calculează noile valori ale variabilelor bazice; din punct
~
de vedere algebric, se scrie b în baza B :
IV.3.1
~ ~ ~
( )
X B = B −1b = B −1 (b + δ b) = B −1b + B −1 ⋅ δ b = X B + B −1 ⋅ δ b = x j j∈J B .

Valoarea funcţiei obiectiv se modifică astfel:


IV.3.2
~ ~
f 0 = c B X B = c B ( X B + B −1 ⋅ δ b) = c B X B + c B B −1 ⋅ δ b = f 0 + c B B −1 ⋅ δ b .
Analiza economico-matematică a unor modele liniare

~
Pentru X B este verificat criteriul de optimalitate, deci pentru a-i
asigura optimalitatea mai trebuie să impunem condiţia de non-negativitate a
~
componentelor sale: X ≥ 0 ?
Dacă DA, atunci STOP. Noile valori optime ale variabilelor bazice
~ ~
sunt respectiv egale cu x1 , K , x m , iar valoarea funcţiei scop este dată de
relaţia IV.3.2.
Dacă NU, se trece la Pasul 3.
~
Pasul 3 Rezultă că (∃) s ∈ J B astfel încât x s < 0 . Cum criteriul de
optimalitate se menţine, rezultă că s-a generat o soluţie dual realizabilă
pentru problema postoptimizată. Se aplică algoritmul simplex-dual cu
~
soluţia de start : X B = X B , X R = 0.

Exemplificare Se consideră un program liniar, prin care se cere


stabilirea structurii planului de fabricaţie în condiţiile existenţei unor resurse
limitate (primele două restricţii), a folosirii unei resurse excedentare în
scopul asigurării circulaţiei fondurilor fixe şi a realizării unui venit maxim:

[max] f = 3 x1 + 2 x 2 + 2 x3
⎧3 x1 + 2 x 2 + 2 x3 ≤ 5600

IV.3.3 ⎨2 x1 + x 2 + 2 x3 ≤ 4000 .
⎪5 x + 3 x + 2 x ≥ 7500
⎩ 1 2 3

x j ≥ 0, j = 1,2,3.
Postoptimizare în programarea liniară

Din tabelul simplex-primal s-au reţinut numai elementele ultimei


iteraţii:

T. IV.3.2
cj 3 2 2 0 0 0 −α

cB B XB a1 a2 a3 a4 a5 a6 a7
2 a2 1900 2 1 0 -1 0 -1 1

2 a3 900 -1/2 0 1 3/2 0 1 -1

0 a5 300 1 0 0 -2 1 -1 1

fj 5600 3 2 2 1 0 0 0

f j −cj 0 Ø Ø 1 Ø 0 α >0

Soluţia optimă
* * * * * *
X * : x1 = 0, x 2 = 1900, x3 = 900, x 4 = 0, x5 = 300, x 6 = 0 , nu este unic
determinată, deoarece în linia f j − c j apar diferenţe egale cu zero ce
corespund vectorilor nebazici a1 şi a 6 . Variabilele x 4 , x5, x6 sunt variabile
de compensare. În soluţia optimă x5 ia valoarea 300, ceea ce ar însemna că
300 unităţi din resursa R2 cu disponibilul 4000 nu sunt utilizate. Se va
simula o modificare a termenului liber b prin micşorarea disponibilului din
a doua resursă limitată:
~
δ b = (0 − 300 0) T ⇒ b = (5600 3700 7500) T .

Pasul 1
• Baza iniţială este (a 4 , a 5 , a 7 ) . Se va lucra cu forma extinsă,
deoarece prin aducere la forma standard apar numai vectorii unitate
a 4 şi a5 .
⎛ −1 0 1 ⎞
⎜ 3 ⎟
−1
• B =⎜ 0 − 1⎟ .
⎜⎜ 2 ⎟⎟
⎝− 2 1 1 ⎠
Analiza economico-matematică a unor modele liniare

Pasul 2
~B
X = B −1 ⋅ (5600 3700 7500) T = (1900 900 0) T ≥ 0 → STOP.
~ ~
f 0 = c B X B = (2 2 0) ⋅ (1900 900 0) T = 5600 = f 0 .
Se observă că modificarea lui b lasă neschimbată structura programului de
fabricaţie, dar consumă integral resursa R2 .
Se va exemplifica şi cazul în care trebuie parcurs şi Pasul 3, luând
~
b = (6000 3700 8000)T = (5600 4000 7500)T + (400 − 300 500)T = b + δ b
.
Pasul 2'
~B
x = B −1 ⋅ (6000 3700 8000) T = (2000 1000 − 300) T ≥ 0 ? ⇒ NU.

Pasul 3'
Primul tabel simplex-dual al problemei modificate va diferi de
tabelul simplex optimal al problemei iniţiale prin componentele lui X B ,
valoarea lui f 0 şi prin faptul că nu conţine vectori artificiali. Există o regulă
generală care spune că în tabelul simplex al problemei postoptimale nu
trebuie reţinuţi vectorii artificiali, ca urmare rezultă:

T. IV. 3.3
cj 3 2 2 0 0 0

cB B XB a1 a2 a3 a4 a5 a6
2 a2 2000 2 1 0 -1 0 -1

2 a3 1000 -1/2 0 1 3/2 0 1

0 a5 -300 1 0 0 -2 1 -1

fj 6000 3 2 2 1 0 0 [max ] f
f j −cj 0 Ø Ø 1 Ø 0 ≥ 0, (∀) j = 1,6 ? DA
(vezi observaţia 1)
Postoptimizare în programarea liniară

T. IV. 3.3 (continuare)


cj 3 2 2 0 0 0

cB B XB a1 a2 a3 a4 a5 a6
2 a2 2300 1 1 0 1 -1 0

2 a3 700 1/2 0 1 -1/2 1 0

0 a6 300 -1 0 0 2 -1 1

fj 6000 3 2 2 1 0 0 [max ] f
f j −cj 0 Ø Ø 1 0 Ø
≥ 0, (∀) j = 1,6 ? DA
⇒STOP
XB ≥0

Observaţia 1: Singura componentă strict negativă a vectorului x B este


(−300) ⇒ a5 eliminat. Criteriul de intrare în bază:

⎧ 0 1 ⎫ 0
min ⎨ , ⎬= ⇒ (− 1) pivot ,
⎩ −1 − 2 ⎭ −1

indică faptul că a 6 ia locul lui a5 .

Se constată că, algoritmul se opreşte după o pivotare. Problema


postoptimizată admite soluţia optimă finită:

* * * * * *
X * : x1 = 0, x 2 = 2300, x3 = 700, x 4 = 0, x5 = 0, x6 = 300
şi
*
f 0 = 6000 .

Remarcăm faptul că soluţia optimă a problemei postoptimizate nu


este unică şi propunem cititorului determinarea mulţimii soluţiilor optime
ale acestei probleme.
Analiza economico-matematică a unor modele liniare

În teoria programării liniare este cunoscută variaţia funcţiei


economice, funcţia cost total, funcţia venit aşteptat, în raport cu tipul de
optim al acesteia şi sensul restricţiilor inegalităţi, atunci când o componentă
a vectorului b se modifică. Principalele rezultate sunt sistematizate în tabelul
următor:

bi bi

[min ] f
n

∑a
j =1
ij x j ≥ bi

∑a
j =1
ij x j ≤ bi

[max ] f
n

∑a
j =1
ij x j ≥ bi

∑a
j =1
ij x j ≤ bi

Pentru a exemplifica o parte dintre afirmaţii se va utiliza modelul


IV.3.3, aplicându-i procedeul de postoptimizare a vectorului b în câteva
cazuri particulare . Pentru o mai bună înţelegere a celor ce urmează, din
T.IV.3.2 se va citi soluţia optimă a dualei problemei rezolvate: u1* = 1 ,
u 2* = 0 , u 3* = 0 . Aceste valori vor fi folosite pentru analiza rezultatelor.
Postoptimizare în programarea liniară

Ca şi în alte cazuri totul va fi redat schematic după cum urmează:


[max] f
Valorile
Concluzii
Valorile ~ funcţiei scop
~
X B = B −1b ~
vectorului b f ( X B ) = cB X B Tipul
∆bi , ∆f
restricţiei

Valoare iniţială
⎛1900⎞ x2
⎛ 5600 ⎞ B
⎜ ⎟
⎜ ⎟ X = ⎜ 900 ⎟ x3 f * = 5600
b = ⎜ 4000 ⎟ ⎜ 300 ⎟ x
⎜ 7500 ⎟ ⎝ ⎠ 5
⎝ ⎠

b1 := b1 + 1
⎛ 1899 ⎞ x2 Restricţie b1 ↑ 1u.resursă
⎛ 5601 ⎞ ~B ⎜ ⎟
~ ⎜ ⎟ X = ⎜1803/ 2⎟ x3 f = 5601 concordantă
f ↑ 1 = u1* u.
b = ⎜ 4000 ⎟ ⎜ 298 ⎟ x
⎜ 7500 ⎟ ⎝ ⎠ 5 ≤
m
⎝ ⎠

b1 ↑αu1*

α ∈R+*,u1* > 0

f ↑ αu1* dacă
b1 := b1 + αu *
1
⎛ 1900−αu1* ⎞
α ∈ R+∗ ⎜ ⎟
f = 5600 + αu1* Restricţie
0 ≤ αu1* ≤ 150
⎜ 900+ 3 αu* ⎟ ≥ 0
⎜ 2
1⎟
cu condiţia concordantă din punct de
⎛5600+ αu1* ⎞ ⎜ 300− 2αu* ⎟
~ ⎜ ⎟ ⎝ 1 ⎠
0 ≤ αu1* ≤ 150 ≤ vedere
b = ⎜ 4000 ⎟
⎜⎜
7500 ⎟
⎟ ⇒αu1* ∈ [0,150] matematic. În
⎝ ⎠ realitate acest
interval este
impus de
tehnologia
produselor.

b1 := b1 − 100 b1 ↓ 100 u.res


⎛ 2000 ⎞ x2 Restricţie
ursă
⎛ 5500 ⎞ ⎜ ⎟
~ ⎜ ⎟ ⎜ 750 ⎟ x3 f = 5500 concordantă
b = ⎜ 4000 ⎟ ⎜ 500 ⎟ x f ↓ 100 u.
⎜ 7500 ⎟ ⎝ ⎠ 5 ≤
⎝ ⎠ = 100u1*
Analiza economico-matematică a unor modele liniare

Valorile
Concluzii
Valorile ~ funcţiei scop
~
X B = B −1b ~
vectorului b f ( X B ) = cB X B Tipul
∆bi , ∆f
restricţiei

b3 := b3 − 100 Restricţie b3 ↓ 100 u.res


⎛1800 ⎞ x2
⎛ 5600 ⎞ ⎜ ⎟ neconcordan ursă
~ ⎜ ⎟ ⎜1000 ⎟ x3 f = 5600
b = ⎜ 4000 ⎟ ⎜ 200 ⎟ x tă
⎝ ⎠ 5
f îşi menţine
⎜ 7400 ⎟ ≥
⎝ ⎠ valoarea

b3 ↑ 100 u.res
b3 := b3 + 100 Restricţie ursă
⎛ 2000 ⎞ x2
⎛ 5600 ⎞ ⎜ ⎟ f = 5600 neconcordan f îşi menţine
~ ⎜ ⎟ ⎜ 800 ⎟ x3
b = ⎜ 4000 ⎟ ⎜ 400 ⎟ x tă valoarea
⎜ 7600 ⎟ ⎝ ⎠ 5
⎝ ⎠ ≥ deoarece

u 3* = 0

Pentru cazul complementar celui studiat se consideră problema de


minim:
[min] f = 250 x1 + 200 x 2 + 300 x3
⎧ x1 + 2 x3 ≥ 4

⎨ x1 + x 2 ≥ 6
⎪x + 2x ≤ 8
⎩ 1 2

x j ≥ 0∀j = 1,3
Din tabelul T.IV.2.3. reţinem următoarele elemente:
● Baza optimă: B = (a1 a2 a 6 ) în raport cu care:

⎛1 0 0⎞
−1
⎜ ⎟
● B = ⎜ −1 1 0⎟ ;
⎜ 1 − 2 1⎟
⎝ ⎠
Postoptimizare în programarea liniară

⎛ 4⎞
⎜ ⎟
X B
= ⎜ 2⎟ ;
⎜ 0⎟
⎝ ⎠
soluţia optimă a dualei: U * = (50 200 0 ) ;
[min] f = f * = 1400 .

Se simulează diferite modificări ale termenilor liberi şi se obţine


tabelul sinteză:
[min] f
Valorile Valorile funcţiei
Concluzii
~ ~
vectorului X B = B −1b scop
~ ~ Tipul
b f (X B ) = cB X B ∆bi , ∆f
restricţiei

b1 =b1 + 2 = 6
⎛ 6 ⎞ x1 Restricţie
⎛ 6⎞ ⎜ ⎟ ~ ∆b1 = 2 , b1 ↑
~ ⎜ ⎟ ⎜ 0 ⎟ x2 f = 1500 concordantă
b = ⎜ 6⎟ ⎜ 2⎟ x ≥ ∆f = 100 > 0 , f ↑
⎜8⎟ ⎝ ⎠ 6
⎝ ⎠
b2 =b2 −1 = 5
⎛ 4 ⎞ x1 Restricţie
⎛ 4⎞ ⎜ ⎟ ~ ∆b2 = −1 , b2 ↓
~ ⎜ ⎟ ⎜ 1 ⎟ x2 f = 1200 concordantă
b = ⎜5⎟ ⎜ 2⎟ x ≥ ∆f = −200 < 0 , f ↓
⎜8⎟ ⎝ ⎠ 6
⎝ ⎠
b3 =b3 + 2 =10
⎛ 4 ⎞ x1 Restricţie
∆b3 = 2 , b3 ↑
⎛ 4⎞ ⎜ ⎟ ~
~ ⎜ ⎟ ⎜ 2 ⎟ x2 f = 1400 neconcordantă
b =⎜ 6 ⎟ ⎜ 2⎟ x ≤ ∆f = 0 deoarece u 3* = 0
⎜10⎟ ⎝ ⎠ 6
⎝ ⎠
b3 =b3 −1=7
⎛ 4 ⎞ x1 Restricţie
⎛ 4⎞ ⎜ ⎟
~ ⎜ ⎟ ⎜ 2 ⎟ x2 neconcordantă SDR
b = ⎜ 6⎟ ⎜ − 1⎟ x ≤
⎜7⎟ ⎝ ⎠ 6
⎝ ⎠
Analiza economico-matematică a unor modele liniare

4. Postoptimizarea în cazul modificării vectorului a j , j ∈ J

Formulare matematică Într-o problemă de programare liniară ce


reprezintă modelul unui proces economic, componentele vectorului a j pot
reprezenta consumuri specifice din m resurse utilizate pentru a obţine un
produs j , timpi de prelucrare, sau altele. În general, aceste elemente,
numite coeficienţi tehnologici, sunt supuse unei variaţii lente în timp.
Totuşi, atunci când intervin modificări ale tehnologiei de fabricaţie, o parte
a coeficienţilor tehnologici se modifică. Să presupunem că numai un vector
a j , j ∈ J îşi schimbă componentele. Considerăm problema de programare
liniară:

⎛ a11 K aij −1 aij aij +1 K a1n ⎞


⎜ ⎟
⎜K K K K K K K ⎟X = b ;
⎜a K a mn ⎟⎠
⎝ m1 K a mj −1 a mj a mj +1

X ≥0 ;

n
[max] f = ∑ ck xk + c j x j ,
k =1
k≠ j

care admite soluţie optimă finită. Prin modificarea vectorului a j ea devine:

⎛ a11 K aij −1 a~ij aij +1 K a1n ⎞


⎜ ⎟
⎜K K K K K K K ⎟X = b ;
⎜a ~ K a mn ⎟⎠
⎝ m1 K a mj −1 amj a mj +1

X ≥0 ;
n
[max] f = ∑ ck xk + c~j x j .
k =1
k≠ j
Postoptimizare în programarea liniară

Cunoscând tabelul simplex optimal al problemei iniţiale, vom studia


influenţa modificării lui a j şi c j , j ∈ J asupra optimalităţii soluţiei sale.
Cu vectorii a1 , K , a n se pot forma două mulţimi disjuncte:
- mulţimea vectorilor nebazici,
- mulţimea vectorilor bazici,
şi prin urmare deosebim două cazuri:
Cazul 1 Vectorul a j este nebazic relativ la baza optimă B .
Din tabelul următor se observă că în tabelul optimal al problemei rezolvate,
se modifică numai coloana vectorului a j :

T IV.4.1
cj c1 KKKK c j −1 c~ j c j +1 KKKK c n

cB B XB a1 KKKK a j −1 a~ j a j +1 KKKK a n
?

fj ?

f j −cj f k−c k , k = 1, j − 1 ? f k−c k , k = j + 1, n

Natura programului postoptimizat va fi stabilită printr-un procedeu


descris în cele ce urmează.
Pasul 1
Se citeşte B −1 .
Se scrie vectorul a~ j în baza B : a~ j = B −1 ⋅ a~ j = ( ~
y1 j K ~
y sj K ~
B
y mj ) T ,

j∈J \ JB.
~ ~
Se calculează f j − c~j : f j − c~ j = c B ⋅ a~ j − c~ j .
B

~
Pasul 2 Pentru [max ] f , f j − c~ j ≥ 0 ?

♦ Dacă DA, atunci STOP ⇒ X * este soluţie optimă finită şi


pentru problema modificată.
Analiza economico-matematică a unor modele liniare

♦ Dacă NU, se trece la Pasul 3.

y sj ≤ 0, (∀)s ∈ {1, K, n} ?
Pasul 3 ~
♦ Dacă DA, atunci STOP, problema modificată admite optim
infinit, [max ] f = +∞ .
♦ Dacă NU, se trece la Pasul 4.

Pasul 4
X * nu este soluţie optimă pentru problema postoptimizată.
~
Deoarece f j − c~ j < 0 , nu se mai verifică criteriul de optimalitate, ca

urmare X * este o soluţie admisibilă de bază pentru problema


postoptimizată. Pentru a-i stabili natura se aplică algoritmul simplex-primal
cu soluţia de start X * . Practic, se copiază tabelul IV.4.1, mai puţin coloana
lui a j , care va fi completată cu rezultatele obţinute la Pasul 1. Noua bază
va conţine vectorul a~ j .
T. IV.4.2
cj c1 KKKK c j −1 c~ j c j +1 KKKK c n

cB B XB a1 KKKK a j −1 a~ j a j +1 KKKK a n

B −1b B −1 ⋅ a~ j

fj ~
fj

f j −cj ~ ~
f j − cj < 0

Exemplificare Se consideră problema IV.3.3, din paragraful 3 al


acestui capitol. Vectorul nebazic a1 = (3 2 5) T îşi modifică
componentele şi anume a~1 = (2 2 3) T . Modificările influenţează venitul
aşteptat în sensul creşterii sale cu 0,5 unităţi monetare: c~ = 3,5 u.m.
3
Postoptimizare în programarea liniară

⎛ −1 0 1 ⎞
⎜ 3 ⎟
0 − 1⎟ ⇒ a~1 = B −1 ⋅ (2 2 3) T = (1 0 1) T .
B
Pasul 1 B −1 =⎜
⎜⎜ 2 ⎟⎟
⎝− 2 1 1 ⎠
⎛1⎞
~ ~ B ~ B ~ ⎜ ⎟
f 1 − c1 = c ⋅ a1 − c1 = (2 2 0) ⋅ ⎜ 0 ⎟ − 3,5 = −1,5 < 0 .
⎜1⎟
⎝ ⎠
~ ~
Pasul 2 f 1 − c1 ≥ 0 ? NU. Atunci, se trece la următorul pas.

Pasul 3 Există componente strict pozitive ale vectorului a~1 ? DA.


Atunci, se trece la Pasul 4.

Pasul 4 Se aplică algoritmul simplex-primal cu soluţia de start X * .


Modificările vor fi operate în T. IV.4.3.

T. IV.4.3
cj 3,5 2 2 0 0 0

cB B XB a~1 a2 a3 a4 a5 a6 ρ

2 a2 1900 1 1 0 -1 0 -1 1900/1

2 a3 900 0 0 1 3/2 0 1 _

0 ← a5 300 1 0 0 -2 1 -1 300/1

fj 5600 2 2 2 1 0 0 [max]f
f j −cj -1,5 Ø Ø 1 Ø 0 ≥ 0, (∀) j = 1,6 ? NU
Analiza economico-matematică a unor modele liniare

cj 3,5 2 2 0 0 0

cB B XB a~1 a2 a3 a4 a5 a6 ρ
2 a2 1600 0 1 0 1 -1 0 1600/1

2 a3 900 0 0 1 3/2 0 1 900/3/2

3,5 a1 300 1 0 0 -2 1 -1 _

fj 650 3,5 2 2 -2 1,5 -1,5 [max ] f


f j −cj Ø Ø Ø -2 1,5 -1,5
≥ 0, (∀) j = 1,6 ? NU
2 a2 1000 0 1 -2/3 0 -1 -2/3 _

0 a4 600 0 0 2/3 1 0 2/3 600/3/2

3,5 a1 1500 1 0 4/3 0 1 1/3 1500/1/3

fj 7250 3,5 2 10/3 0 1,5 -1/6 [max ] f


f j −cj Ø Ø 1/3 Ø 1,5 -1/6
≥ 0, (∀) j = 1,6 ? NU
2 a2 1600 0 1 0 1 -1 0

0 a6 900 0 0 1 3/2 0 1

3,5 a1 1200 1 0 1 -1/2 1 0

fj 7400 3,5 2 3,5 1/4 1,5 0 [max ] f


f j −cj Ø Ø 1,5 1/8 1,5 Ø
≥ 0, (∀) j = 1,6 ? DA
⇒ STOP

Problema postoptimizată admite soluţie optimă finită:


* * * * * *
X * : x1 = 1200, x 2 = 1600, x3 = x 4 = x5 = 0, x6 = 900

şi

[max] f = 1200 ⋅ 3,5 + 1600 ⋅ 2 = 7400 .


Postoptimizare în programarea liniară

Se observă că venitul aşteptat a crescut.

Cazul 1 Vectorul a j aparţine bazei optime B .


Este ştiut faptul că modificarea componentelor unui vector bazic
provoacă modificarea scrierii vectorilor nebazici în respectiva bază:
~
B −1 ⋅ a j → B −1 ⋅ a j .
~
Cum se poate afla B −1 ?
Spre deosebire de celelalte tipuri de postoptimizări, aici avem trei
variante de acţiune pentru a stabili natura programului modificat.

V1. Se operează modificarea în model şi se rezolvă ca un program


liniar independent faţă de cel iniţial.

⎧(a1 K a j −1 a~ j a j +1 K a n ) X = b

⎨X ≥ 0 .
⎪[opt ] f ( X ) = cX .

V2. Se scrie matricea A din forma standard a modelului studiat


A = (a1 K a j K a n ) .
În cazul modelului IV.3.3 avem:

⎛3 2 2 1 0 0⎞ ⎛1⎞
⎜ ⎟ ~ ⎜ ⎟
A = ⎜2 1 2 0 1 0 ⎟ , a2 = ⎜ 1 ⎟
⎜5 3 2 0 0 − 1⎟⎠ ⎜ 2⎟ .
⎝ ⎝ ⎠
a1 a 2 a3 a 4 a5 a 6

• Se citeşte baza optimă B = (a s1 K a s k −1 a j a s k +1 K a sm ) :


B = (a 2 a3 a5 ) .
Analiza economico-matematică a unor modele liniare

• Se construieşte matricea pătratică de ordinul m cu coloanele


a s1 ,..., a s (k −1) , a~ j , a s (k +1) ,..., a sm , citite - excepţie făcând a j , care
va fi înlocuit cu a~ j - din matricea A. Dacă există inversa sa, atunci
~
aceasta va fi B −1 . Ca exemplificare, avem:

⎛1⎞ ⎛1 3 0⎞
~ ⎜ ⎟ ⎜ ⎟ ~
a 2 = ⎜ 1 ⎟, B = ⎜ 1 2 1 ⎟ , det B ≠ 0 ⇒ ∃B −1 .
⎜ 2⎟ ⎜ 2 2 0⎟
⎝ ⎠ ⎝ ⎠

• Se reconstituie iteraţia cu baza B şi a~2 , apoi se ia decizia de


STOP sau continuarea rezolvării problemei postoptimizate.

Aceste variante implică un volum mare de calcule, chiar pentru m şi


n relativ mici, motiv pentru care se va opta pentru varianta următoare.

V3. Se aplică procedeul de postoptimizare care constă în parcurgerea


a cel mult cinci paşi.

Pasul 1
În tabelul simplex optimal al problemei rezolvate, se citesc:
• B −1 ;
• baza optimă B şi se notează cu k locul vectorului modificat în
această bază .

Pasul 2
Se află componentele vectorului modificat în baza B :
a~ = B −1 ⋅ a~ = ( ~
y K~
y K~
B
j j 1j y )T .
kj mj

Componenta k este diferită de 0 ?


Postoptimizare în programarea liniară

- Dacă NU, atunci STOP ⇒ nu există soluţie optimă.


- Dacă DA, atunci se trece la Pasul 3.

Pasul 3
Se construieşte vectorul
⎛−~ −~ −~ −~
T
y1 j y k −1 j 1 y k +1 j y mj ⎞
η k = ⎜⎜ ~ ~ ~ ~ ~
⎟ .
⎝ y kj y kj y kj y kj y kj ⎟⎠

Pasul 4
~
Fie I m matricea unitate de ordinul m . Prin E m vom înţelege
matricea ce diferă de I m numai prin coloana k şi anume:
~
I m = (e1 K ek K em ) ⇒ E m = (e1 K ek −1 η k ek +1 K em ) .
~ ~
Se calculează: B −1 = E m ⋅ B −1 .

Pasul 5
Se reconstituie iteraţia problemei postoptimizate, în care apare baza
optimă a problemei iniţiale:
T.IV.4.4
cj c1 KKKKK ck KKKKKcn

B ~ a1 KKKKK ak KKKKK an
cB XB
ci1 ai1
M M
c~j a~ j ~
B −1 ⋅ b B −1 ⋅ ak , k = 1, j − 1 B −1 ⋅ a~ j B −1 ⋅ ak , k = j + 1, n
M M
cim aim
~ ~ ~
fj f0 f j , j = 1, n
~ ~ ~ ~
f j −cj f j − c j , j = 1, n
Analiza economico-matematică a unor modele liniare

Analizând diferenţele f j − c j , j = 1, n şi valorile variabilelor bazice


~
date de B −1 ⋅ b , deosebim patru cazuri sistematizate în următorul tabel
pentru problema de maxim:
T.IV.4.5
(∃) ~f k − c~k
~ ~
~ f j − cj ≥ 0 < 0, k ∈ J \ J B
B −1 ⋅ b
j ∈τ \ τ B

≥0 S1 S2
STOP. Problema modificată S-a obţinut o soluţie
~B admisibilă de bază; se
admite S.O. finită. X sunt
continuă cu simplex-primal.
valorile optime ale
variabilelor bazice;

[max] ~f = ~
f0 .

(∃)~x s B < 0, s ∈ J B S3 S4
Se continuă rezolvarea Se reia rezolvarea de la
problemei cu algoritmul iteraţia i + 1, i ∈ Ν \ {1} ;
*

simplex-dual, deoarece s-a


dacă a j a intrat în bază în
generat o soluţie dual
iteraţia i, i ∈ Ν , se
*
realizabilă a problemei
modificate. ~ în baza
lucrează cu a j

respectivei iteraţii.

Observaţia 1: Pentru problema de minim, în T.IV.4.5 se înlocuieşte


~ ~ ~ ~ ~
f j − c j ≥ 0 cu f j − c~ j ≤ 0 , (∃) f k − c~k > 0, k ∈ J \ J B şi [max ] f cu

[min ] ~f = ~f 0 . Celelalte condiţii şi comentariile rămân valabile.


Postoptimizare în programarea liniară

Exemplificare
Pentru aflarea soluţiei optime a programului liniar:

[max] f = 4 x1 + 6 x 2 + 20 x3 + 17 x 4
⎧ x1 + x3 + 2 x 4 ≤ 100

⎩ x 2 + 2 x3 + x 4 ≤ 40
x j ≥ 0, j = 1,4.

s-a folosit algoritmul simplex-primal. Iteraţia în care s-a verificat criteriul de


optimalitate este dată în tabelul de mai jos:
T. IV.4.6
cj 4 6 20 17 0 0

cB B X
B
a1 a2 a3 a4 a5 a6

4 a1 20 1 -2 -3 0 1 -2

17 a4 40 0 1 2 1 0 1

fj 760 4 9 22 17 4 9 [max]f
f j −cj Ø 3 2 Ø 4 9
≥ 0, (∀) j = 1,6

Observaţia 2: Matricea A ataşată problemei adusă la forma standard este


de forma:
⎛1 0 1 2 1 0⎞
A = ⎜⎜ ⎟⎟
⎝0 1 2 1 0 1⎠ .
a1 a 2 a3 a 4 a5 a 6
Analiza economico-matematică a unor modele liniare

Baza iniţială poate fi: (a1 a 2 ), (a1 a 6 ), (a5 a 6 ) sau (a5 a2 ) .


Dacă, în T.IV.4.6, citim matricele scrise în dreptul acestor baze (în ordinea
în care apar vectorii bazei), se va obţine o aceeaşi matrice:

⎛1 − 2⎞
B −1 = ⎜⎜ ⎟⎟ .
⎝0 1 ⎠

Presupunem că vectorul a4 îşi modifică componentele,


a~4 = (1,5 1,5) şi c 4 creşte cu o unitate, c~4 = 18 . Ne propunem să
T

verificăm dacă problema postoptimizată

[max] f = 4 x1 + 6 x 2 + 20 x3 + 18 x 4
⎧ x1 + x3 + 1,5 x 4 ≤ 100

⎩ x 2 + 2 x3 + 1,5 x 4 ≤ 40
x j ≥ 0, j = 1,4.
admite soluţie optimă finită. În continuare se va aplica procedeul descris:
⎛1 − 2⎞
Pasul 1 B −1 = ⎜⎜ ⎟⎟, B = (a1 a4 ) → k = 2 .
⎝0 1 ⎠
⎛1,5 ⎞ ⎛ 1 − 2 ⎞⎛1,5 ⎞ ⎛ − 1,5 ⎞
a~4 = B −1 ⋅ ⎜⎜ ⎟⎟ = ⎜⎜
B
Pasul 2 ⎟⎟⎜⎜ ⎟⎟ = ⎜⎜ ⎟⎟; a doua
⎝1,5 ⎠ ⎝ 0 1 ⎠⎝1,5 ⎠ ⎝ 1,5 ⎠
componentă ( k = 2 ) este diferită de 0.
⎛ − 1,5 / 1,5 ⎞ ⎛ 1 ⎞
Pasul 3 η k = 2 = ⎜⎜ ⎟⎟ = ⎜⎜ ⎟⎟ .
⎝ 1 / 1,5 ⎠ ⎝ 2 / 3 ⎠
~ ⎛1 1 ⎞ ⎛1 − 2⎞ ⎛1 −1 ⎞
Pasul 4 B −1 = ⎜⎜ ⎟⎟ ⋅ ⎜⎜ ⎟⎟ = ⎜⎜ ⎟⎟ .
⎝ 0 2 / 3⎠ ⎝ 0 1 ⎠ ⎝ 0 2 / 3⎠
Pasul 5 Se reconstituie tabelul cu baza (a1 a4 ) .
~ ~ ⎛100 ⎞ ⎛ 60 ⎞
X B = B −1 ⋅ ⎜⎜ ⎟⎟ = ⎜⎜ ⎟⎟;
⎝ 40 ⎠ ⎝ 80 / 3 ⎠
Postoptimizare în programarea liniară

~ ⎛ 0 ⎞ ⎛ − 1 ⎞ ~ B ~ −1 ⎛ 1 ⎞ ⎛ − 1 ⎞
a~2 = B −1 ⋅ ⎜⎜ ⎟⎟ = ⎜⎜
B
⎟⎟; a3 = B ⋅ ⎜⎜ ⎟⎟ = ⎜⎜ ⎟⎟;
⎝1⎠ ⎝3 / 2⎠ ⎝ 2 ⎠ ⎝ 4 / 3⎠
~ ⎛1⎞ ⎛1⎞ B ~ ⎛0⎞ ⎛ −1 ⎞
a~5 = B −1 ⋅ ⎜⎜ ⎟⎟ = ⎜⎜ ⎟⎟; a~6 = B −1 ⋅ ⎜⎜ ⎟⎟ = ⎜⎜
B
⎟⎟;
⎝ 0⎠ ⎝ 0⎠ ⎝ 1 ⎠ ⎝ 2 / 3⎠

T IV.4.7
cj 4 6 20 18 0 0
~ B a3 a5 a6
cB XB a1 a2 a4
4 a1 60 1 -1 -1 0 1 -1

18 a4 80/3 0 2/3 4/3 1 0 2/3

~
fj 720 4 8 20 18 4 8 [max]f
~ ~
f j −cj Ø 2 0 Ø 4 8 ≥ 0, (∀) j = 1,6

Deoarece:
B
● X > 0;
~ ~
● f j − c~ j ≥ 0, (∀) j = 1,6 şi f j − c~ j = 0 pentru a j bazic,
problema postoptimizată are soluţia optimă finită şi nedegenerată:
60
, x3 = x 2* = x5 = x6 = 0 şi [max ] f = 720.
* * * * *
x1 = 60, x 4 =
3
Se observă o creştere cu mai mult de 50% a valorii funcţiei scop.

5. Postoptimizarea în cazul adăugării unor restricţii

Formulare matematică Se consideră un program liniar care admite


soluţie optimă finită. Fie acesta în forma standard

[max] f = cX
Analiza economico-matematică a unor modele liniare

IV.5.1 {AX = b , unde A ∈ M m ,n (R ) , rangA = m ≤ n


X ≥0

Să presupunem că se cunoaşte soluţia optimă a acestui program


obţinută prin aplicarea algoritmului simplex primal. Tabelul simplex primal
ne oferă forma explicită a problemei IV.5.1, corespunzătoare bazei optime
B, şi anume:
n
[max] f = ∑ ci xi
i =1

⎧⎪
⎨ xi +
⎪⎩
∑y B
ij x j = xi , ∀i ∈ J B
j∈J − J

x j ≥ 0, ∀j = 1, n

unde variabilele bazice xi , i ∈ J B sunt exprimate în funcţie de variabilele


secundare x j , j ∈ J S .
Să presupunem, de asemenea, că într-o etapă ulterioară obţinerii
soluţiei optime a problemei IV.5.1 apare necesitatea introducerii unor
restricţii suplimentare în modelul analizat, ceea ce presupune modificarea
matricei A din IV.5.1 prin adăugarea unor linii şi ca urmare A devine
~
A ∈ M m + k ,n (R ) , k ∈ N * .
Ne propunem să studiem natura problemei postoptimizate
[max] f = cX
{~
AX = b
~
,
X ≥0
Postoptimizare în programarea liniară

⎛ b1 ⎞
⎜ ⎟
⎜M ⎟
⎜b ⎟
~ ~
unde A ∈ M m + k ,n (R ), b = ⎜ ⎟ sunt elemente cunoscute şi obţinute prin
m

⎜ bm +1 ⎟
⎜ ⎟
⎜M ⎟
⎜b ⎟
⎝ m+k ⎠
bordarea lui A şi, respectiv, b, cu k linii.
Schema de postoptimizare este următoarea:

Pasul 1
Cele k restricţii suplimentare se transformă în egalităţi prin
adăugarea a k variabile de ecart x n +i , i = m + 1, m + k ; acestea devin
n

∑a
j =1
ij x j + x n +i = bi , i = m + 1, m + k şi deci problema postoptimizată poate fi

scrisă acum:
n
[max] f = ∑ ci xi
i =1

⎧ xi + ∑ y ij x j = xi , ∀i ∈ J B
⎪⎪ j∈J − J B
⎨n .
⎪∑ y ij x j + x n +i = bi , i ∈ m + 1, m + k
⎪⎩ j =1
x j ≥ 0, j = 1, n

Pasul 2
Se elimină variabilele bazice din cele k restricţii noi:
∑y
B
xi = ij x j + x n +i , i = m + 1, m + k .
j∈J S

Pasul 3
B
Dacă xi ≥ 0, ∀i = m + 1, m + k , atunci s-a obţinut soluţia optimă a
problemei postoptimizate. În caz contrar, soluţia obţinută nu e admisibilă
Analiza economico-matematică a unor modele liniare

dar verifică criteriul de optim, deci se continuă cu algoritmul simplex dual


până la determinarea soluţiei sale optime.
Exemplificare
Ca exemplu să considerăm problema IV.3.3 care admite soluţie
optimă multiplă având tabelul simplex final dat de:

T. IV.5.1
cj 3 2 2 0 0 0

cB B XB a1 a2 a3 a4 a5 a6
2 a2 1900 2 1 0 -1 0 -1

2 a3 900 -1/2 0 1 3/2 0 1

0 a5 300 1 0 0 -2 1 -1

fj 5600 3 2 2 1 0 0

f j −cj 0 Ø Ø 1 Ø Ø

Să considerăm că la un moment dat condiţiile contractuale ale firmei


impun producerea a cel puţin 1000 de unităţi de produs P3 . În acest caz se
impune adăugarea restricţiei x3 ≥ 1000 :
[max] f = 3 x1 + 2 x 2 + 2 x3
⎧3 x1 + 2 x 2 + 2 x3 ≤ 5600
⎪2 x + x + 2 x ≤ 4000
⎪ 1 2 3
⎨ .
5
⎪ 1 x + 3 x 2 + 2 x 3 ≥ 7500
⎪⎩ x3 ≥ 1000
x j ≥ 0 , ∀j = 1,3

Pasul 1
IV.5.2 x3 − x8 = 1000 ⇔ − x3 + x8 = −1000 .
Pasul 2
Din T.IV.5.1, se citeşte linia vectorului bazic a3
1 3
IV.5.3 − x1 + x3 + x4 + x6 = 900 .
2 2
Postoptimizare în programarea liniară

Adunând IV.5.2 şi IV.5.3 rezultă:


1 3
− x1 + x4 + x6 + x8 = −100 ,
2 2
unde x8 devine variabilă bazică.

Pasul 3
~
Soluţia corespunzătoare bazei B obţinută din baza optimă B prin
⎛ 0⎞
⎜ ⎟
adăugarea vectorului coloană a8 = ⎜ 0 ⎟ este dual admisibilă ( x8 = −100 < 0 )
0
⎜ 1⎟
⎝ ⎠
şi deci vom continua cu aplicarea algoritmului simplex dual până la
obţinerea soluţiei optime, pentru problema extinsă cu restricţia x3 ≥ 1000 .
T. IV.5.2
cj 3 2 2 0 0 0 0

cB B XB a1 a2 a3 a4 a5 a6 a8
2 a2 1900 2 1 0 -1 0 -1 0

2 a3 900 -1/2 0 1 3/2 0 1 0

0 a5 300 1 0 0 -2 1 -1 0

0 ← a8 -100 -1/2 0 0 3/2 0 1 1

fj 5600 3 2 2 1 0 0 0 [max ] f
f j −cj 0 Ø Ø 1 Ø 0 Ø ≥ 0∀j
2 a2 1500 0 1 0 5 0 3 4

2 a3 1000 0 0 1 0 0 0 -2

0 a5 100 0 0 0 1 1 1 2

3 a1 200 1 0 0 -3 0 -2 -2

fj 5600 3 2 2 1 0 0 2

f j −cj Ø Ø Ø 1 Ø 0 2
Analiza economico-matematică a unor modele liniare

Soluţia optimă s-a obţinut printr-o singură pivotare, şi este dată de


~
x1 = 200 , ~
*
x2* = 1500, ~x3* = 1000, ~
x5* = 100, ~
x4* = ~
x6* = ~
x8* = 0, cu valoarea
~
funcţiei obiectiv f * = 5600 .
~ ~
Observaţie: În general, f * ≤ f , dacă se cere maximizarea funcţiei scop.

6. Postoptimizarea în cazul adăugării unor noi variabile

Formulare matematică Se consideră un program liniar care admite


soluţie optimă finită
n
max f = ∑ ci xi
i =1

⎧ n
IV.6.1 ⎨∑ ai xi = b
⎩ i =1
x j ≥ 0, j = 1, n

unde a i ∈ R m sunt vectorii coloană ai matricei coeficienţilor tehnologici


A ∈ M m,n (R ) .

Observaţie: Relaţia a doua din programul liniar IV.6.1 poate fi scrisă în


forma echivalentă:
⎛ x1 ⎞
⎜ ⎟
⎜x ⎟
(a1 a2 K a n )⎜ 2 ⎟ = b .
M
⎜ ⎟
⎜x ⎟
⎝ n⎠
Postoptimizare în programarea liniară

Suntem interesaţi în rezolvarea problemei postoptimizate

⎧ n+k

⎪max f = ∑ ci xi
⎪ i =1

⎪ n+k
IV.6.2 ⎨∑ ai xi = b ,
⎪ i =1
⎪ x ≥ 0, j = 1, n + k ,
⎪ j

unde coeficienţii c n +1 ,K , c n + k ai funcţiei scop şi vectorii a n +1 ,K , a n + k din


spaţiul bunurilor sunt presupuşi cunoscuţi. Aceasta revine la rezolvarea
problemei de programare liniară în care matricea coeficienţilor tehnologici
~
A ∈ M m ,n + k (R ) se obţine din A ∈ M m,n (R ) prin adăugarea celor k vectori

coloană a n +1 ,K , a n + k , k ∈ N ∗ .

Rezolvarea problemei extinse se bazează pe următoarea observaţie


din cadrul teoriei generale: dacă X * ∈ R n este soluţie optimă a problemei
IV 6.1 corespunzătoare bazei optime B, atunci vectorul (X * , 0 R k ) ∈ R n + k
este soluţie admisibilă pentru problema IV.6.2.

Schema de rezolvare presupune parcurgerea următorilor:


Pasul 1 Se calculează B −1 şi a nB+i = B −1 a n +i , ∀i = 1, k .

Pasul 2 Formulăm întrebarea: f n +i − c n +i ≥ 0 , ∀i = 1, k ?, adică

c B B −1 a n +i − c n +i ≥ 0, ∀i = 1, k ? sau cu notaţia de la pasul 1,

c B a nB+i − c n +i ≥ 0, ∀i = 1, k ?
- Dacă DA, atunci (X * , 0 R k ) ∈ R n + k este soluţie optimă pentru
IV.6.2.
Analiza economico-matematică a unor modele liniare

{
- Dacă NU, atunci fie I 0 = i ∈ 1, k f n +i − c n +i < 0 }.
Alegem i0 ∈ I 0 astfel încât f n +i 0 − c n +i0 = min ( f n +i − c n + i ) , şi
i∈I 0

vectorul a n +i0 intră în bază dacă are cel puţin o componentă strict pozitivă; în
caz contrar, modelul extins are optim infinit.

În continuare se aplică algoritmul simplex primal până la obţinerea


soluţiei
optime (dacă există) a problemei postoptimizate.

Exemplificare
Ca exemplu, vom considera programul liniar de stabilire a planului
optim de producţie IV.3.3, analizat în secţiunea 3. Să presupunem că firma
îşi propune lansarea în fabricaţie a unui nou produs pentru care vectorul
⎛1`⎞
⎜ ⎟
tehnologic este a8 = ⎜ 2 ⎟ . Se pune întrebarea: care ar trebui să fie profitul
⎜1⎟
⎝ ⎠
unitar obţinut din vânzarea acestui produs astfel încât acesta să intre în
programul optim de fabricaţie?

Pasul 1
⎛ −1 0 1 ⎞ ⎛ −1 0 1 ⎞ ⎛1⎞ ⎛ 0 ⎞
−1
⎜ ⎟ B −1
⎜ ⎟⎜ ⎟ ⎜ ⎟
B = ⎜ 3 / 2 0 − 1⎟ , a8 = B a8 = ⎜ 3 / 2 0 − 1⎟ ⎜ 2 ⎟ = ⎜1 / 2 ⎟ .
⎜ −2 1 1 ⎟ ⎜ − 2 1 1 ⎟ ⎜1⎟ ⎜ 1 ⎟
⎝ ⎠ ⎝ ⎠⎝ ⎠ ⎝ ⎠

Pasul 2
⎛ 0 ⎞
⎜ ⎟
f8 − c8 = c B a8 − c8 ≤ 0 ⇔ (2 2 0)⎜1/ 2⎟ − c8 ≤ 0 ⇔ 1 − c8 ≤ 0 ⇔ c8 ≥ 1,
B −1

⎜ 1 ⎟
⎝ ⎠
Postoptimizare în programarea liniară

deci profitul unitar obţinut din vânzarea noului produs trebuie să fie cel
puţin 1 u.m. pentru ca acesta să facă parte din structura planului optim de
fabricaţie.
În continuare analizăm cazul c8 = 2 şi, ca urmare, f 8 − c8 = −1 < 0 .
T.IV.6.1
cj 3 2 2 0 0 0 2

cB B XB a1 a2 a3 a4 a5 a6 a8 ρ

2 a2 1900 2 1 0 -1 0 -1 0 -

2 a3 900 -1/2 0 1 3/2 0 1 1/2 1800

0 a5 300 1 0 0 -2 1 -1 1 300

fj 5600 3 2 2 1 0 0 1 [max] f

f j −cj 0 Ø Ø 1 Ø 0 -1 ≥ 0 ∀j? NU

2 a2 1900 2 1 0 -1 0 -1 0 -

2 a3 750 -1 0 1 5/2 -1/2 3/2 0 300

2 a8 300 1 0 0 -2 1 -1 1 -

fj 5900 4 2 2 -1 1 -1 0 [max] f

f j −cj 1 Ø Ø -1 1 -1 Ø ≥ 0 ∀j? NU

2 a2 2200 8/5 1 2/5 0 -1/5 -2/5 0 -

0 a4 300 -2/5 0 2/5 1 -1/5 3/5 0 500

2 a8 900 1/5 0 4/5 0 3/5 1/5 1 3000

fj 6200 18/5 2 12/5 0 4/5 -2/5 0 [max] f

f j −cj 3/5 Ø 2/5 Ø 4/5 -2/5 Ø ≥ 0 ∀j? NU

2 a2 2400 4/3 1 2/3 2/3 -1/3 0 0

0 a6 500 -2/3 0 2/3 5/3 -1/3 1 0

2 a8 800 1/3 0 2/3 -1/3 2/3 0 1

fj 6400 10/3 2 8/3 2/3 2/3 0 2 [max] f

f j −cj 1/3 Ø 2/3 2/3 2/3 Ø Ø ≥ 0 ∀j? DA


Analiza economico-matematică a unor modele liniare

Deci, prin aplicarea algoritmului simplex primal se obţine, în


4 iteraţii, soluţia optimă a problemei postoptimizate, care prevede fabricarea
a 2400 unităţi de produs P2 şi a 800 unităţi de produs P8 .

Se observă, comparând cu soluţia optimă a problemei iniţiale, o


modificare a structurii programului optim de fabricaţie. Propunem cititorului
să facă interpretarea economică completă a rezultatelor obţinute.

7. Probleme pentru fixarea cunoştinţelor

Problema 1 Pentru a realiza trei produse P1 , P2 , P3 sunt necesare

operaţii de prelucrare pe utilajele U 1 , U 2 , U 3 , U 4 , ordinea operaţiilor

nefiind impusă. În tabelul următor se dau, în unităţi convenţionale, duratele

de prelucrare şi fondurile de timp disponibile într-o anumită perioadă T1 ,

precum şi veniturile unitare aşteptate, exprimate în unităţi monetare:

P1 P2 P3 Disponibil

U1 2 2 1 2200

U2 1 1 0 1200

U3 1 1 1 2000

U4 1 2 1 1600
V.U. 3 4 2

a) Să se scrie un model liniar care să permită stabilirea numărului de


produse care trebuie realizate, astfel încât venitul aşteptat să fie maxim
şi fondul de timp disponibil al utilajului U 1 să fie consumat integral.
Postoptimizare în programarea liniară

b) Problema de programare liniară scrisă la a) a fost rezolvată prin metoda


simplex-primal. În ultimul tabel, în dreptul vectorilor ce au format prima
⎛ 1 0 0 − 1⎞
⎜ ⎟
⎜ − 1/ 2 1 0 0⎟
bază, s-a citit inversa bazei optime: B −1 =⎜ .
− 1/ 2 0 1 0⎟
⎜ ⎟
⎜ − 1/ 2 0 0 1 ⎟⎠

Reconstituiţi ultimul tabel. Citiţi solutia optimă. Câte soluţii optime
bazice există? Dar nebazice?
c) În viitorul apropiat se pune problema schimbării structurii programului
de producţie prin introducerea în fabricaţie a două produse P4 şi P5 .
Duratele de prelucrare şi veniturile unitare estimate sunt:

U1 U2 U3 U4 V.U.

P4 1 0 2 1 5

P5 2 1 2 1 3

Este rentabilă prelucrarea acestor produse menţinând condiţiile de la


punctul a)?
d) În perioada imediat următoare lui T1 , se prevede micşorarea veniturilor
c1 şi c 2 cu 0.5, respectiv 1u.m. Ce implicaţii au aceste modificări asupra
structurii optime stabilite la punctul b)? Dar asupra profitului total?
e) Aducând anumite modificări utilajului U 2 , timpul de prelucrare al
produsului P2 pe acesta se reduce la jumătate.Să se determine structura
optimă a producţiei în noile condiţii şi valoarea corespunzătoare a
venitului maxim aşteptat.
Analiza economico-matematică a unor modele liniare

Soluţie:
a) Dacă se va nota cu x j numărul produselor de tip Pj din planul de
fabricaţie a periodei T1 ,cu datele din tabelul se obţine programul liniar:

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

⎪ 2 x1 + 2 x 2 + x3 = 2200
⎪⎪ x1 + x 2 ≤ 1200
⎨ .
⎪ x1 + x 2 + x3 ≤ 2000
⎪ x + 2 x + x ≤ 1600
⎪ 1 2 3

⎪⎩ x j ≥ 0, ∀j = 1,6

Se observă că prima restricţie este egalitate deoarece se impune


consumul integral al fodului de timp disponibil al utilajului U 1 .
b) Pentru a reconstitui ultimul tabel simplex trebuie să stabilim:
ƒ dimensiunile tabelului;
ƒ prima bază;
aj
ƒ scrierea vectorilor în baza optimă;
f f − c j j = 1, n
ƒ mărimile j şi j , .
Prima bază şi dimensiunile tabelului se deduc din forma standard a
problemei:

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

⎪ 2 x1 + 2 x 2 + x3 = 2200
⎪⎪ x + x + x = 1200
1 2 4
⎨ .
⎪ 1x + x 2 + x 3 + x5 = 2000
⎪ x + 2 x + x + x = 1600
⎪ 1 2 3 6

⎪⎩ x j ≥ 0, ∀j = 1,6
Postoptimizare în programarea liniară

⎛2 2 1 0 0 0⎞ ⎛ 2200 ⎞
⎜ ⎟ ⎜ ⎟
⎜1 1 0 1 0 0⎟ ⎜ 1200 ⎟
Rezultă: A4×6 =⎜ , rangA=4<6, b = ⎜ > 0.
1 1 1 0 1 0⎟ 2000 ⎟
⎜ ⎟ ⎜ ⎟
⎜1 2 1 0 0 1 ⎟⎠ ⎜ 1600 ⎟
⎝ ⎝ ⎠

Vectorii a 4 , a5 , a 6 constituie o submatrice a matricei unitate din R 4 ,


ca urmare se va introduce un vector artificial a 7 = (1 0 0 0) T pentru a
obţine baza iniţială : B = (a 7 a4 a5 a 6 ) . Dar, atenţie, ea corespunde
formei extinse:

⎧[max] f = 3 x1 + 4 x 2 + 2 x3 − αx7

⎪ 2 x1 + 2 x 2 + x3 + x7 = 2200
⎪⎪ x1 + x 2 + x 4 = 1200

⎪ x1 + x 2 + x3 + x5 = 2000
⎪ x + 2 x + x + x = 1600
⎪ 1 2 3 6

⎪⎩ x j ≥ 0, ∀j = 1,7

unde α >> 0 este o constantă arbitrară. Ca urmare m=4 şi n=7.

Tabelul simplex va avea următoarea configuraţie:

T.IV.7.1
cj → 3 4 2 0 0 0 −α
c B B X B
a1 a2 a3 a4 a5 a6 a7

fj
f j −cj
Analiza economico-matematică a unor modele liniare

B −1 , dată în enunţul problemei, se scrie în dreptul vectorilor care au


format baza de start (a 7 a4 a5 a6 )

⎛ 2⎞ ⎛1⎞ ⎛ 2⎞ ⎛ 0⎞
⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟
−1 −1 ⎜ 1 ⎟ ⎜0⎟ −1 ⎜ 1 ⎟ ⎜ 0⎟
a1 = B ⋅ a1 = B ⋅ ⎜ ⎟ = ⎜ ⎟
B
, a2 = B ⋅ ⎜ ⎟ = ⎜ ⎟
B
,
1 0 1 0
⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟
⎜ 1⎟ ⎜0⎟ ⎜ 2⎟ ⎜1⎟
⎝ ⎠ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠
⎛1⎞ ⎛ 0 ⎞
⎜ ⎟ ⎜ ⎟
−1 ⎜ 0 ⎟ ⎜ − 1 / 2⎟
a3 = B ⋅ ⎜ ⎟ = ⎜
B
.
1 1/ 2 ⎟
⎜ ⎟ ⎜ ⎟
⎜1⎟ ⎜ 1 / 2 ⎟
⎝ ⎠ ⎝ ⎠

⎛ 2200 ⎞ ⎛ 600 ⎞
⎜ ⎟ ⎜ ⎟
−1 −1 ⎜ 1200 ⎟ ⎜ 100 ⎟
XB =B b=B ⎜ = .
2000 ⎟ ⎜ 900 ⎟
⎜ ⎟ ⎜ ⎟
⎜ 1600 ⎟ ⎜ 500 ⎟
⎝ ⎠ ⎝ ⎠

Se calculează f j şi f j − c j , j = 1,K ,7 .
Înlocuind aceste date în T.IV.7.1 se obţine tabelul optimal al modelului
considerat:
T.IV.7.2
cj → 3 4 2 0 0 0 −α
c B B X B
a1 a2 a3 a4 a5 a6 a7
3 a1 600 1 0 0 0 0 -1 1
0 a4 100 0 0 -1/2 1 0 0 -1/2
0 a5 900 0 0 1/2 0 1 0 -1/2
4 a2 500 0 1 1/2 0 0 1 -1/2

fj 3800 3 4 2 0 0 1 1

f j −cj Ø Ø 0 Ø Ø 1 1+ α
Postoptimizare în programarea liniară

Soluţia optimă X 1* = (600 500 0 100 900 0 ) nu este unică,


T

deoarece există un vector nebazic a3 cu diferenţa f 3 − c3 nulă .


În acest caz există o infinitate de programe (soluţii) optimale şi două
programe de bază optimale. Acestea din urmă se obţin continuând metoda
simplex, introducând în bază un vector a j nebazic pentru care f j − c j = 0 .
Criteriul de eliminare din bază şi formulele de transformare sunt cele
cunoscute. Se va obţine un tabel simplex în care f 0 , f j şi f j − c j ,

∀j = 1, n , nu se schimbă. În cazul studiat vectorul a3 va fi introdus în bază.


La o primă observaţie el îl poate elimina pe a5 sau pe a 6 deoarece celelalte
două componente nu sunt strict pozitive. Se aplică C.I.B:
⎛ 900 500 ⎞ 500
min⎜ , ⎟= , rezultă că a 2 va fi cel eliminat.
⎝ 1/ 2 1/ 2 ⎠ 1/ 2
După aplicarea formulelor de transformare se obtine următorul tabel:
T.IV.7.3

cj → 3 4 2 0 0 0
cB B X B
a1 a2 a3 a4 a5 a6
3 a1 600 1 0 0 0 0 -1
0 a4 600 0 1 0 1 0 1
0 a5 400 0 -1 0 0 1 -1
2 a3 1000 0 2 1 0 0 2
fj 3800 3 4 2 0 0 1
f j −cj Ø 0 Ø Ø Ø 1

Noua soluţie optimă este: X 2* = (600 0 1000 600 400 0 ) .


T

Mulţimea soluţiilor optimale, bazice sau nu, este o mulţime convexă,


iar elementele sale se obţin cu ajutorul relaţiei X * = λX 1* + (1 − λ ) X 2* , unde
λ ∈ [0,1] .
Analiza economico-matematică a unor modele liniare

Prezentăm în tabelul de mai jos valorile variabilelor principale şi ale


variabilelor de ecart corespunzătoare celor 2 soluţii optime bazice şi a două
soluţii nebazice:

Variabile Variabile X * bazică X * bazică X 3* nebazică X 4* nebazică Interpretare


1 2
principale de ecart economică
λ = 1/ 2 λ = 1/ 5
x1 * 600 600 600 600 Număr produse P1
x2 * 500 0 250 100 Număr produse P2
x3 * 0 1000 500 800 Număr produse P3
* x4 100 600 350 500 Fond de timp
nefolosit la U 2
* x5 900 400 650 500 Fond de timp
nefolosit la U 3
* x6 0 0 0 0 Consum integral
la U 4
[Max]f 3800 u.m. 3800 u.m. 3800 u.m. 3800 u.m.

În problemele concrete este interesant de cunoscut mulţimea


programelor optimale, opţiunea pentru unul sau altul făcându-se după
criterii impuse de situaţia economică concretă.

c) Fondurile de timp disponibile ale celor patru utilaje rămân nemodificate.


Pentru o utilizare eficientă a informaţiilor de la primul punct se vor nota
cu x8 şi x9 numărul produselor de tip P4 , respectiv P5 . Modelul
matematic se va extinde prin mărirea numărului de coloane al matricei
A: A 4×7 → A4×9 . După introducerea noilor variabile şi aducerea la forma
standard se obţine programul liniar:

⎧ max f = 3 x1 + 4 x 2 + 2 x3 + 5 x8 + 3 x9

⎪ 2 x1 + 2 x 2 + x3 + x8 + 2 x9 = 2200
⎪⎪ x + x + x + 0 ⋅ x + 1 ⋅ x = 1200

1 2 4 8 9
.
⎪ x1 + x 2 + x 3 + x 5 + 2 x 8 + 2 x 9 = 2000
⎪ x + 2 x + x + x + x + x = 1600
⎪ 1 2 3 6 8 9

⎩⎪ x j ≥ 0 , ∀ j = 1 ,9
Postoptimizare în programarea liniară

Se va aplica procedeul descris în secţiunea 5 din acest capitol


(postoptimizarea problemelor de programare liniară prin adăugarea unor
variabile).

Pasul 1
Se citeşte B −1 din ultimul tabel simplex al problemei rezolvate (în
cazul studiat, ea a fost dată la punctul b):
⎛ 1 0 0 − 1⎞
⎜ ⎟
⎜ − 1/ 2 1 0 0⎟
B −1 =⎜ .
− 1/ 2 0 1 0⎟
⎜ ⎟
⎜ − 1/ 2 0 0 1 ⎟⎠

Se citeşte baza optimă din T.IV.7.2: B = (a1 a4 a5 a2 ) .

Pasul 2
⎛1⎞ ⎛ 2⎞
⎜ ⎟ ⎜ ⎟
⎜ 0⎟ ⎜1⎟
Se scriu vectorii a8 = ⎜ ⎟ şi a 9 = ⎜ ⎟ în baza optimă:
2 2
⎜ ⎟ ⎜ ⎟
⎜1⎟ ⎜1⎟
⎝ ⎠ ⎝ ⎠
⎛ 0 ⎞ ⎛1⎞
⎜ ⎟ ⎜ ⎟
−1 ⎜ − 1/ 2⎟ −1 ⎜0⎟
a 8 = B ⋅ a8 = ⎜
B
⎟ şi a9 = B ⋅ a9 = ⎜ ⎟ .
B

3/ 2 1
⎜ ⎟ ⎜ ⎟
⎜ 1/ 2 ⎟ ⎜0⎟
⎝ ⎠ ⎝ ⎠

Pasul 3
Se calculează f 8 − c8 şi f 9 − c9 :
⎛ 0 ⎞
⎜ ⎟
⎜ − 1/ 2 ⎟
f 8 − c8 = c ⋅ B ⋅ a8 − c8 = c ⋅ a8 − c8 = (3 0 0 4) ⋅ ⎜
B −1 B B
− 5 = −3 ,
3/ 2 ⎟
⎜ ⎟
⎜ 1/ 2 ⎟
⎝ ⎠
Analiza economico-matematică a unor modele liniare

⎛1⎞
⎜ ⎟
⎜0⎟
f 9 − c9 = c ⋅ B ⋅ a9 − c9 = c ⋅ a9 − c0 = (3 0 0 4 ) ⋅ ⎜ ⎟ − 3 = 0 .
B −1 B B

1
⎜ ⎟
⎜0⎟
⎝ ⎠
Se verifică acum dacă f j − c j ≥ 0 , ∀j ∈ {8,9} . Deoarece
f 8 − c8 < 0 , se trece la Pasul 4.

Pasul 4
Se observă că vectorul a8B , cu diferenţa f 8 − c8 < 0 , are cel puţin o
componentă strict pozitivă. În acest caz, trecem la Pasul 5. Dacă toate
componentele vectorului ar fi fost negative, problema ar fi avut optim
infinit.

Pasul 5
Se construieşte tabelul simplex al problemei postoptimizate
corespunzător bazei optime a problemei iniţiale. În acest scop, T.IV.7.3 se
extinde cu două coloane, a8 şi a9 , în care se trec rezultatele de la paşii
2 şi 3. Coloana vectorului artificial a 7 va fi neglijată.

cj 3 4 2 0 0 0 5 3

cB B XB a1 a2 a3 a4 a5 a6 a8 a9 ρ
3 a1 600 1 0 0 0 0 -1 0 1 -
0 a4 100 0 0 -1/2 1 0 0 -1/2 0 -
0 a5 900 0 0 1/2 0 1 0 3/2 1 600
4 a2 500 0 1 1/2 0 0 1 1/2 0 1000
fj 3800 3 4 2 0 0 1 2 3
max :≥ 0 ? NU
f j −cj Ø Ø 0 Ø Ø 1 -3 0
Postoptimizare în programarea liniară

Soluţia X 1* extinsă cu x8 = 0 şi x9 = 0 devine SAB pentru


problema postoptimizată. Deoarece f j − c j nu sunt toate pozitive, trecem la
schimbarea bazei. a5 iese din bază, fiind înlocuit de a8 . Rezultă noua SAB:

cj 3 4 2 0 0 0 5 3

c B
B XB a1 a2 a3 a4 a5 a6 a8 a9
3 a1 600 1 0 0 0 0 -1 0 1
0 a4 400 0 0 -1/3 1 1/3 0 0 1/3
5 a8 600 0 0 1/3 0 2/3 0 1 2/3
4 a2 200 0 1 1/3 0 -1/3 1 0 -1/3
fj 5300 3 4 3 0 2 1 5 5
f j −cj Ø Ø 1 Ø 2 1 Ø 2

care este chiar soluţie optimă, deoarece f j − c j ≥ 0 , ∀j .

Se vor compara soluţiile optime ale programului iniţial şi


postoptimizat:

Cât din resursele


Variabile care caracterizează
Cât se consumă prin program disponibile nu a fost
programul optim
consumat
x1* = 600 2 x1* + 2 x2* + x3* = 2200
x2* = 500 x1* + x2* = 1100 0
100
X 1* x3* = 0 x1* + x2* + x3* = 1100
900
x1* + 2 x2* + x3* = 1600 0

x1* = 600 2 x1* + 2 x2* + x3* + x8* + 2 x9* = 2200


0
x2* = 200 x1* + x2* + x9* = 800 400
X 2* x3* = 0 x1* + x2* + x3* + 2 x8* + 2 x9* = 2000 0
x8* = 600 x1* + 2 x2* + x3* + x8* + x9* = 1600 0

x9* = 0
Analiza economico-matematică a unor modele liniare

Fabricarea a 600, 200, 600 produse de tipul P1 , P2 , respectiv P8 ,


presupune obţinerea unui venit total de 5300 unităţi monetare. Acest
program este superior lui X 1* , nu numai din punctul de vedere al profitului,
ci şi în ceea ce priveşte fondul de timp nefolosit (400h la U 2 , faţă de 100h şi
900h la U 2 şi U 3 ). Produsul P9 este nerentabil în condiţiile date de modelul
matematic.
d) Se va aplica procedeul de postoptimizare a vectorului c:
Pasul 1
ƒ Se citeşte baza optimă , B = (a1 a4 a5 a2 ) .
ƒ Se scriu vectorii linie:
c = (3 4 2 0 0 0 )
şi
c B = (c1 c4 c5 c 2 ) = (3 0 0 4 ) .
ƒ Se trece la vectorii modificaţi c~ şi c~ B :
c~ = (3 − 0.5 4 − 1 2 0 0 0 )
şi
c~ B = (2.5 0 0 3) .

Observaţie: c corespunde problemei scrisă sub forma standard la


punctul b) .
Pasul 2
Se stabilesc vectorii nebazici în raport cu baza optimă, mai puţin cei
artificiali: a3 , a 6 . După modificarea lui c , mai rămân f 3 − c3 şi f 6 − c6
pozitive?
⎛ 0 ⎞
⎜ ⎟
~ ~ ~B B ~ ⎜ − 1/ 2⎟ 3 1
f 3 − c3 = c ⋅ a3 − c3 = (2.5 0 0 3) ⋅ ⎜ ⎟ − 2 = − 2 = − < 0,
1/ 2 2 2
⎜ ⎟
⎜ 1/ 2 ⎟
⎝ ⎠
Postoptimizare în programarea liniară

⎛ − 1⎞
⎜ ⎟
~ ~ ~B B ~ ⎜0⎟
f 6 − c6 = c ⋅ a 6 − c6 = (2.5 0 0 3) ⋅ ⎜ ⎟ − 0 = −2.5 + 3 = 0.5 > 0 .
0
⎜ ⎟
⎜1⎟
⎝ ⎠
Observaţie: Vectorii a3B şi a6B se citesc din T.IV.7.2, tabel care conţine şi
baza optimă citită la pasul 1.
~
Diferenţa f 3 − c~3 fiind strict negativă, se trece la Pasul 3. Are sens
această trecere deoarece a3B are cel puţin o componentă strict pozitivă.
Pasul 3
Se stabileşte soluţia optimă, dacă există, a problemei posoptimizate
aplicând algoritmul simplex primal, cu X 1* soluţie de start. În T.IV.7.2 se
modifică c, c B , f j şi f j − c j pentru a j nebazici, apoi se aplică algoritmul
simplex-primal:

c~j 2.5 3 2 0 0 0

c B B X B a1 a2 a3 a4 a5 a6 ρ
2.5 a1 600 1 0 0 0 0 -1 -
0 a4 100 0 0 -1/2 1 0 0 -
0 a5 900 0 0 1/2 0 1 0 1800
3 a2 500 0 1 1/2 0 0 1 1000
~
fj 3000 2.5 3 3/2 0 0 0.5
~ ~
f j − cj Ø Ø -0.5 Ø Ø 0.5
2.5 a1 600 1 0 0 0 0 -1
0 a4 600 0 1 0 1 0 1
0 a5 400 0 -1 0 0 1 -1
2 a3 1000 0 2 1 0 0 2
~
fj 3500 2.5 4 2 0 0 1.5 [max]f
~ ~ ~ ~ ∀j ∈ 1,6
f j − cj Ø 1 Ø Ø Ø 1.5 f j −cj ≥ 0

⇒ STOP
Analiza economico-matematică a unor modele liniare

Se constată că schimbarea veniturilorilor c1 şi c 2 a influenţat


structura optimă a programului de fabricaţie: x1* = 600 , x 2* = 0 , x3* = 1000 ,
x 4* = 600 , x5* = 400 şi x6* = 0 , iar venitul total a scăzut la [max]f=3500 u.m.
Fondurile de timp ale utilajelor U 2 şi U 3 nu sunt consumate integral prin
programul optim. Nefiind resurse stocabile, se recomandă utilizarea orelor
rămase disponibile la prelucrarea unor alte produse.
e) Vom discuta la acest subpunct postoptimizarea problemei prin
modificarea unui vector a j , j = 2 , din A, vector ce aparţine bazei
optime.

Pasul 1
⎛ 1 ⎞
⎜ ⎟
~ ⎜ 0.5 ⎟
● Se scrie vectorul cu componentele modificate: a 2 = ⎜ ⎟ .
1
⎜ ⎟
⎜ 2 ⎟
⎝ ⎠
⎛ 1 0 0 − 1⎞
⎜ ⎟
⎜ − 1/ 2 1 0 0⎟
● Se citeşte B −1 =⎜ .
− 1/ 2 0 1 0⎟
⎜ ⎟
⎜ − 1/ 2 0 0 1 ⎟⎠

● Se citeşte baza optimă şi se notează cu k locul vectorului modificat în


această bază: B = (a1 a4 a5 a 2 ) , k=4.
Pasul 2
⎛ −1 ⎞
⎜ ⎟
⎜ 0 ⎟
● Se scrie vectorul modificat în baza optimă: a~2B = B −1 ⋅ a~2 = ⎜ .
1/ 2⎟
⎜ ⎟
⎜ 3 / 2⎟
⎝ ⎠
Componenta y 42 este diferită de 0?
Dacă NU → STOP.
Postoptimizare în programarea liniară

Dacă DA → se trece la Pasul 3.


3
Aici, y 42 = ≠ 0.
2

Pasul 3
Se construieşte vectorul η k ale cărui componente se găsesc în
următoarele relaţii, cu componentele vectorului modificat în baza B:
1 1 2
η kj = ⇒ η 24 = = ,
y kj 3/ 2 3
y ij −1 2 0 1/ 2 1
η ij = − ⇒ η 21 = − = , η 22 = − = 0 , η 23 = − =− .
y kj 3/ 2 3 3/ 2 3/ 2 3
⎛ 2/3 ⎞
⎜ ⎟
⎜ 0 ⎟
Aşadar, η k = ⎜ , pentru k=4.
− 1 / 3⎟
⎜ ⎟
⎜ 2/3 ⎟
⎝ ⎠

Pasul 4
~ ~ ~
Se calculează B −1 = E m ⋅ B −1 , unde E m este matricea unitate de
ordinul m, în care coloanele j ∈ {1,.., m} − {k} sunt vectorii unitari, iar
coloana k este chiar vectorul η k .

⎛1 0 0 2/3 ⎞ ⎛ 1 0 0 − 1⎞ ⎛ 2 / 3 0 0 1/ 3 ⎞
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
~ ⎜0 1 0 0 ⎟ ⎜ − 1/ 2 1 0 0 ⎟ ⎜ − 1/ 2 1 0 0 ⎟
B −1 =⎜ ⋅ = .
0 0 1 − 1/ 3⎟ ⎜ − 1 / 2 0 1 0 ⎟ ⎜ − 1/ 3 0 1 − 1/ 3⎟
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
⎜0 0 0 2 / 3 ⎟⎠ ⎜⎝ − 1 / 2 0 0 1 ⎟⎠ ⎜⎝ − 1 / 3 0 0 2 / 3 ⎟⎠

Analiza economico-matematică a unor modele liniare

Este bine să ne reamintim că B −1 este inversa matricii


⎛2 0 0 2⎞
⎜ ⎟
⎜1 1 0 1⎟
B = (a1 a4 a5 a2 ) = ⎜ ,
1 0 1 1⎟
⎜ ⎟
⎜1 0 0 2 ⎟⎠

~
astfel că, B −1 va fi inversa lui B după modificarea lui a 2 .

Pasul 5
Se calculează componentele vectorilor nebazici în baza B cu a 2
modificat, precum şi f j şi f j − c j , ∀j ∈ 1,6 .

⎛ 2200 ⎞ ⎛ 2800 / 3 ⎞ ⎛ 1 ⎞ ⎛ 1/ 3 ⎞
⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟
~ B ~ −1 ~ −1 ⎜ 1200 ⎟ ⎜ 2300 ⎟ ~ B ~ −1 ⎜ 0 ⎟ ⎜ − 1 / 2 ⎟
X = B ⋅b = B ⋅⎜ = , a3 = B ⋅ ⎜ ⎟ = ⎜ ,
2000 ⎟ ⎜ 2200 / 3 ⎟ 1 1/ 3 ⎟
⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟
⎜ 1600 ⎟ ⎜ 400 / 3 ⎟ ⎜ 1 ⎟ ⎜ 1/ 3 ⎟
⎝ ⎠ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠

⎛ 0⎞ ⎛ 1/ 3 ⎞
⎜ ⎟ ⎜ ⎟
~ ~ −1 ⎜ 0 ⎟ ⎜ 0 ⎟
a6 = B ⋅ ⎜ ⎟ = ⎜
B
.
0 − 1/ 3⎟
⎜ ⎟ ⎜ ⎟
⎜1⎟ ⎜ 2 / 3 ⎟
⎝ ⎠ ⎝ ⎠

cj → 3 4 2 0 0 0

cB B XB a1 a2 a3 a4 a5 a6
3 a1 2800/3 1 0 1/3 0 0 -1/3
0 a4 2300 0 0 -1/2 1 0 0
0 a5 2200/3 0 0 1/3 0 1 -1/3
4 a2 1000/3 0 1 1/3 0 0 2/3
fj 12400/3 3 4 7/3 0 0 5/3
f j −cj Ø Ø 1/3 Ø Ø 5/3
Postoptimizare în programarea liniară

f j − c j ≥ 0 , ∀j ∈ 1,6 ? DA ⇒ STOP. Problema admite soluţia

optimă finită: x1* = 2800 / 3 , x 2* = 1000 / 3 , x3* = 0 , x 4* = 2300 ,


x5* = 2200 / 3 şi x6* = 0 , ce corespunde unui venit total maxim egal cu
12400
= 4133, (3) unităţi monetare.
3

Problema 2 Considerăm problema de programare liniară:


[max] f = x1 + x 2 + 4 x3
⎧2 x1 + 3x 2 + 5 x3 ≤ 25
IV.7.1 ⎨
⎩ x1 + 4 x 2 + 5 x3 ≤ 20
x j ≥ 0, ∀j = 1,3

⎛ 1 −1 ⎞
pentru care B −1 = ⎜⎜ ⎟⎟ , unde B reprezintă baza optimală.
⎝ − 1/ 5 2 / 5⎠
a) Identificaţi soluţia optimă folosind informaţiile date.
b) Scrieţi problema duală.
c) Identificaţi soluţia optimă a dualei. Verificaţi această soluţie
rezolvând grafic problema duală.
d) Presupunând că problema originară este modificată astfel:
[max] f = x1 + 3x 2 + 4 x3
⎧2 x1 + 2 x 2 + 5 x3 ≤ 25
IV.7.2 ⎨
⎩ x1 + 3x 2 + 5 x3 ≤ 20
x j ≥ 0, ∀j = 1,3
utilizaţi teoria dualităţii pentru a decide dacă soluţia precedentă rămâne
optimă.
e) Utilizând informaţiile furnizate, găsiţi coeficienţii lui x 2 din tabelul
optimal al problemei de la punctul d).
Analiza economico-matematică a unor modele liniare

f) Presupunând că singura modificare a problemei originare este o nouă


variabilă x6 introdusă în model după cum urmează:
max f = x1 + x 2 + 4 x3 + 2 x6
⎧2 x1 + 3x 2 + 5 x3 + 3x6 ≤ 25
IV.7.3 ⎨ ,
⎩ x1 + 4 x 2 + 5 x3 + 2 x6 ≤ 20
x j ≥ 0, ∀j = 1,3, x6 ≥ 0
utilizaţi teoria dualităţii pentru a decide dacă soluţia optimă a problemei
originare, la care adăugaţi x6 = 0 , rămâne încă optimă pentru problema
extinsă IV.7.3.
g) Utilizaţi matricea inversă a bazei optime a problemei originare
pentru a determina coeficienţii lui x6 în tabelul simplex optim al
problemei de la punctul f).
[ ]
h) Determinaţi un interval de stabilitate λ λ pentru parametrul λ al
problemei:
max f = (1 + λ )x1 + (1 + 4λ ) x 2 + (4 + 2λ ) x3
⎧2 x1 + 3x 2 + 5 x3 ≤ 25
IV.7.4 ⎨ ,
⎩ x1 + 4 x 2 + 5 x3 ≤ 20
x j ≥ 0, ∀j = 1,3
astfel încât soluţia pentru λ = 0 să rămână optimă.

Soluţie:
a) Forma standard a problemei ce trebuie rezolvată este
[max] f = x1 + x 2 + 4 x3
⎧2 x1 + 3x 2 + 5 x3 + x 4 = 25
⎨ .
⎩ x1 + 4 x 2 + 5 x3 + x5 = 20
x j ≥ 0, ∀j = 1,5
Postoptimizare în programarea liniară

⎛ 2 3 5 1 0⎞
⎜ ⎟
ƒ Matricea coeficienţilor tehnologici: ⎜⎝ 1 4 5 0 1 ⎟⎠ .
a1 a 2 a3 a 4 a5
ƒ Baza iniţială: (a 4 , a5 ) .
⎛ 1 −1 ⎞
B −1 = ⎜⎜ ⎟⎟ .
⎝ − 1/ 5 2 / 5⎠
ƒ Tabelul optimal:
T.IV.7.1
cj 1 1 4 0 0

cB B XB a1 a2 a3 a4 a5
1 a1 5 1 -1 0 1 -1
4 a3 3 0 1 1 -1/5 2/5
~
fj 17 1 3 4 1/5 3/5 [max] f
~ ~
f j − cj Ø 2 Ø 1/5 3/5 ≥ 0 ∀j? DA ⇒ STOP

● Forma explicită a sistemului de restricţii în raport cu baza optimă:


⎧5 = x1 − x 2 + x 4 − x5

⎨ 1 2 .
⎪⎩3 = x 2 + x 3 − x 4 + x3
5 5
Această formă facilitează rezolvarea punctului e).
Analizând cu atenţie tabelul simplex optimal, se observă că baza
optimă este B = (a1 a3 ) , iar soluţia optimă a problemei IV.7.1 are
componentele: x1* = 5 , x 2* = 0 , x3* = 3 , x 4* = 0 , x5* = 0 , ce corespunde unei
valori maxime a funcţiei obiectiv [max] f = 17 .
Analiza economico-matematică a unor modele liniare

b) Respectând regulile de scriere a problemei duale, rezultă că duala


problemei considerate este problema de mai jos:
[min]g = 25u1 + 20u 2
⎧2u1 + u 2 ≥ 1

IV.7.5 ⎨3u1 + 4u 2 ≥ 1
⎪5u + 5u ≥ 4
⎩ 1 2

u i ≥ 0∀i ∈ 1,2
c) Soluţia optimă a dualei se calculează cu formula: u * = c B B −1 , unde
⎛ 1 −1 ⎞
B −1 = ⎜⎜ ⎟⎟ şi c B = (1 4 ) .
⎝ − 1/ 5 2 / 5⎠
⎛ 1 −1 ⎞
Deci, u * = c B B −1 = (1 4 )⎜⎜ ⎟⎟ = (1 / 5 3 / 5) . Conform
⎝ − 1/ 5 2 / 5⎠
teoremei
fundamentale a dualităţii, valoarea minimă a funcţiei obiectiv este:
[min]g = [max] f = 17 .
Problema duală poate fi rezolvată utilizând metoda grafică, fiind o
problemă cu numai două variabile principale. Verificarea soluţiei prin
această metodă va fi un exerciţiu uşor pentru cititor.

d) Observăm că modelul IV.7.2 diferă de problema iniţială prin modificarea


⎛ 2⎞
vectorului a 2 şi a coeficientului c 2 care au fost înlocuiţi cu a 2' = ⎜⎜ ⎟⎟ şi
⎝ 3⎠
respectiv cu c 2' = 3 .
Duala problemei IV.7.2 este problema:
[min]g1 = 25u1 + 20u 2
⎧2u1 + u 2 ≥ 1

IV.7.6 ⎨2u1 + 3u 2 ≥ 3 .
⎪5u + 5u ≥ 4
⎩ 1 2

u i ≥ 0∀i ∈ 1,2
Postoptimizare în programarea liniară

Utilizând metoda grafică, se obţine soluţia optimă a acestei probleme


: u = (0 1) , cu g1 = 20 .
'* *

d1
d2 u1

A(0,1)
d3

4/5

B(3/2,0)
u2
O
1/2 4/5

De aici rezultă că [min]g1 = [max] f1 = 20 . Deoarece


f 1 = x1 + 3 x 2 + 4 x3 ia valoarea 5 + 3 ⋅ 0 + 4 ⋅ 3 = 17 pentru soluţia optimă a
problemei originare, valoare ce diferă de 20, rezultă că la punctul d)
răspunsul este negativ.
Un alt mod de a rezolva problema este acela al folosirii soluţiei
optime u * = (1 / 5 3 / 5) a dualei problemei IV.7.1, soluţie ce poate fi citită
din T.IV.7.1, în linia f j , în dreptul vectorilor ce au format prima bază. Se
1 3
observă că aceasta nu verifică a doua restricţie din IV.7.6: 2 ⋅ + 3 ⋅ ≥ 3
5 5
FALS.
e) Modelul IV.7.2 poate fi privit ca un model reoptimizat în două faze al
modelului iniţial.
Analiza economico-matematică a unor modele liniare

Faza 1 Se modifică doar coeficientul c 2 , înlocuindu-l cu c~2 = 3 :


[max] f = x1 + 3x 2 + 4 x3
⎧2 x1 + 3x 2 + 5 x3 ≤ 25

⎩ x1 + 4 x 2 + 5 x3 ≤ 20
x j ≥ 0, ∀j = 1,3
Pentru această nouă problemă tabelul simplex final are forma:

cj → 1 3 4 0 0
B
cB B X a1 a2 a3 a4 a5
1 a1 5 1 -1 0 1 -1
4 a3 3 0 1 1 − 1/ 5 2/5
fj 17 1 3 4 1/5 3/5 [max] f
f j − cj ≥ 0, ∀j = 1,5 ⇒ STOP
Ø 0 Ø 1/5 3/5

Se constată că soluţia optimă s-a menţinut.


Faza 2 Se aplică procedura de postoptimizare cu modificarea unui vector
⎛ 3⎞
coloană problemei de la faza 1.Vom înlocui vectorul a 2 = ⎜⎜ ⎟⎟ cu vectorul
⎝ 4⎠
⎛ 2⎞
a 2' = ⎜⎜ ⎟⎟ :
⎝ 3⎠
[max] f = x1 + 3x 2 + 4 x3
⎧2 x1 + 2 x 2 + 5 x3 ≤ 25

⎩ x1 + 3x 2 + 5 x3 ≤ 20
x j ≥ 0, ∀j = 1,3

⎛ 1 − 1 ⎞⎛ 2 ⎞ ⎛ − 1 ⎞
Se calculează: a~2B = B −1 a 2' = ⎜⎜ ⎟⎟⎜⎜ ⎟⎟ = ⎜⎜ ⎟⎟ . Se observă că are o
⎝ − 1 / 5 2 / 5 ⎠⎝ 3 ⎠ ⎝ 4 / 5 ⎠
componentă strict pozitivă
~ ~ ⎛ −1 ⎞
f 2 − c3 = (1 4)⎜⎜ ⎟⎟ − 3 = −4 / 5 < 0 .
⎝ 4 / 5⎠
Postoptimizare în programarea liniară

Se aplică algoritmul simplex primal pentru a stabili natura problemei


postoptimizate:

cj → 1 3 4 0 0

cB B X
B
a1 a~2' a3 a4 a5
1 a1 5 1 -1 0 1 -1
4 a3 3 0 4/5 1 − 1/ 5 2/5
fj 17 1 11/5 4 1/5 3/5
f j −cj Ø -4/5 Ø 1/5 3/5

S-au obţinut:
* * *
ƒ soluţia optimă de bază: x1' = 35 / 4, x 2' = 15 / 4, x3' = 0 cu
*
f ' = 20 .
ƒ forma explicită a sistemului de restricţii în raport cu (a1 , a 2 ) :

⎛ 35 / 4 ⎞ ⎛ 1 ⎞ ⎛0⎞ ⎛5 / 4⎞ ⎛ 3/ 4 ⎞ ⎛ − 1/ 2⎞
⎜⎜ ⎟⎟ = ⎜⎜ ⎟⎟ x1 + ⎜⎜ ⎟⎟ x 2 + ⎜⎜ ⎟⎟ x3 + ⎜⎜ ⎟⎟ x 4 + ⎜⎜ ⎟⎟ x5 .
⎝ 15 / 4 ⎠ ⎝ 0 ⎠ ⎝1⎠ ⎝5 / 4⎠ ⎝ − 1/ 4⎠ ⎝ 1/ 2 ⎠

Continuând aplicarea algoritmului simplex primal , după încă o


iteraţie se obţine cea de-a doua soluţie optimă de bază pentru problema
IV.7.2.

cj → 1 3 4 0 0

c B
B X
B
a1 a~2' a3 a4 a5
0 a4 35/3 4/3 0 5/3 1 -2/3
3 a2 20/3 1/3 1 5/3 0 1/3
fj 20 1 3 5 0 1
f j −cj 0 Ø 1 Ø 1
Analiza economico-matematică a unor modele liniare

Acum putem da răsunsul complet la întrebarea formulată la


puctul e). Coeficienţii lui x 2 în forma explicită a problemei IV.7.2, în raport
cu baza optimală (a1 a 2 ) sunt identici cu coeficienţii lui x 2 în raport cu
⎛0⎞
baza optimală (a 4 a 2 ) , şi anume: a~2' = ⎜⎜ ⎟⎟ .
⎝1⎠

f) Problema IV.7.3 se poate rezolva prin postoptimizare cu adăugarea unei


noi variabile în model. Dacă însă utilizăm teoria dualităţii, scriem duala
IV.7.7 a problemei IV.7.2 după cum urmează:
min g = 25u1 + 20u 2
⎧2u1 + u 2 ≥ 1
⎪3u + 4u ≥ 1
⎪ 1 2
IV.7.7 ⎨ , care rezolvată grafic, ne permite scrierea
5
⎪ 1u + 5u 2 ≥ 4
⎪⎩3u1 + 2u 2 ≥ 2
u i ≥ 0∀i ∈ 1,2
soluţiei optime: u~ * = (2 / 5 2 / 5) , cu valoarea minimă a funcţiei obiectiv:
g~ * = 18 ≠ g * = 17 . Conform teoremei fundamentale a dualităţii, problema
IV.7.3 are valoarea optimă a funcţiei obiectiv
* *
f '' = g '' = 18 ≠ f * = g * = 17 , deci soluţia optimă a problemei IV.7.1, la
care adăugăm u = 0 , nu rămâne optimă pentru problema IV.7.3 (într-o astfel
*
de situaţie ar avea loc egalitatea: f '' = f * = 17 ).

Observaţie: Chiar şi fără a rezolva problema duală IV.7.7, o simplă


verificare a restricţiei 4 din IV.7.7 cu u1* = 1 / 5 şi u 2* = 3 / 5 , arată că u * nu
poate fi nici soluţie admisibilă pentru problema IV.7.7.
Postoptimizare în programarea liniară

⎛ 1 −1 ⎞
g) Se cunoaşte că B −1 = ⎜⎜ ⎟⎟ . Utilizând procedura de reoptimizare
⎝ − 1/ 5 2 / 5⎠
în cazul modificării sistemului de restricţii prin adăugarea unei coloane
în matricea A, obţinem:
⎛ 1 − 1 ⎞⎛ 3 ⎞ ⎛ 1 ⎞
auB = B −1 au = ⎜⎜ ⎟⎟⎜⎜ ⎟⎟ = ⎜⎜ ⎟⎟ şi
⎝ − 1 / 5 2 / 5 ⎠⎝ 2 ⎠ ⎝1 / 5 ⎠
⎛ 1 ⎞
f 6 − c6 = c B B −1 a 6 − c6 = (1 4)⎜⎜ ⎟⎟ − 2 =
⎝1 / 5 ⎠
= −1 / 5 < 0 , ceea ce arată că baza B = (a1 a3 ) nu este optimă pentru
problema IV.7.3. Pentru determinarea soluţiei sale optime, se utilizează în
continuare algoritmul simplex primal. Soluţia optimă se obţine într-o
singură iteraţie, după cum rezultă din tabelul următor:

cj → 1 1 4 0 0 2

cB B X
B
a1 a2 a3 a4 a5 a6
1 a1 5 1 -1 0 1 -1 1
4 a3 3 0 1 1 −1 / 5 2/5 1/5

fj 17 1 3 4 1/5 3/5 1/5

f j − cj Ø 2 Ø 1/5 3/5 -1/5

2 a6 5 1 -1 0 1 -1 1

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

fj 18 6/5 14/5 4 2/5 2/5 2

f j −cj 1/5 9/5 Ø 2/5 2/5 Ø

Deci, problema IV.7.3 are în soluţia optimă componentele nenule


*
x3* = 2, x6* = 5 şi valoarea maximă a funcţiei obiectiv f '' = 18 . Privind
tabelul anterior putem da şi răspunsul la întrebarea formulată la punctul g):
⎛1⎞
a~6 = ⎜⎜ ⎟⎟ .
⎝0⎠
Analiza economico-matematică a unor modele liniare

h) Problema IV.7.4 rezultă printr-o parametrizare a vectorului coeficienţilor


funcţiei obiectiv din problema IV.7.1. Aplicând procedura de
postoptimizare cu modificarea vectorului coeficienţilor funcţiei obiectiv,
obţinem:

cj → 1+ λ 1+ 4λ 4 + 2λ 0 0

cB B X
B
a1 a2 a3 a4 a5
1+ λ a1 5 1 -1 0 1 -1
4 + 2λ a3 3 0 1 1 − 1/ 5 2/5
fj 17 + 11λ 1+ λ 3+ λ 4 + 2λ 1/5+3/5 λ 3 / 5 − 1 / 5λ
f j −cj Ø 2 − 3λ Ø 1/5+3/5 λ 3 / 5 − 1 / 5λ

Punând condiţiile de optimalitate a soluţiei, avem:


⎧2 − 3λ ≥ 0

⎨1 / 5 + 3 / 5λ ≥ 0 ⇒ λ ∈ [1 / 3,2 / 3]
⎪3 / 5 − 1 / 5λ ≥ 0

şi astfel problema este complet rezolvată.
V. PROBLEMA DE TRANSPORT

1. Problema de transport echilibrată. Model matematic.


Proprietăţi.

O problemă de mare importanţă în cadrul expedierii mărfurilor o


reprezintă mişcarea fizică, deplasarea în spaţiu a acestora. În sistemul
cibernetic al firmei, sub-sistemul transport – aprovizionare – desfacere
realizează legătura directă dintre producător şi consumator, condiţionând
realizarea planului de desfacere.

Organizarea eficientă a transporturilor presupune cunoaşterea tuturor


rutelor de transport, precum şi a costurilor pe fiecare mijloc de transport în
parte, astfel încât să se utilizeze rutele cele mai economice, deoarece o
reducere permanentă a cheltuielilor de transport conduce la sporirea
eficienţei activităţii economice a firmei. Toate cheltuielile care sunt legate
de transportul operativ al mărfurilor trebuiesc evidenţiate distinct pe
furnizori şi pe cantităţi transportate, pentru a se putea efectua o analiză
economică riguroasă.

Concurenţa din ce în ce mai dură care îşi face simţită prezenţa în


toate domeniile activităţii economice impune sistemelor de conducere o
analiză cu instrumente ştiinţifice a tuturor alternativelor existente, căutându-
se acea variantă de acţiune care să conducă la o activitate economică
eficientă. Pe această linie se înscrie şi activitatea din domeniul
transporturilor, care are ca obiect de studiu circulaţia mărfurilor şi ca
obiectiv principal, accelerarea vitezei de circulaţie a mărfurilor şi reducerea
la maximum a cheltuielilor de transport, transbordare, descărcare.
Analita economico-matematică a unor modele liniare

În acest capitol se vor studia o parte a modelelor liniare ce apar în


activitatea de aprovizionare, în circumstanţe ce vor fi specificate. Studiul
“problemelor de transport” pe baza teoriei programării liniare a fost început
în 1941 de Hitchook, apoi extins de diverşi matematicieni interesaţi de
rezolvarea acestei colecţii de probleme.

Formularea economică a problemei de transport echilibrate


În punctele sursă, reprezentând locul de încărcare a mărfii într-un
mijloc de transport, există un tip de marfă solicitată de către anumite puncte
de destinaţie, care pot fi unităţi de desfacere, unde marfa se descarcă şi,
astfel, se încheie procesul de transport.
Se cere găsirea modului optim, în raport cu cheltuielile totale de
transport, în care se poate asigura aprovizionarea a n ∈ N * consumatori cu o
anumită marfă disponibilă, într-o perioadă T, de la m ∈ N * surse, în
condiţiile:
• Se cunosc cantităţile solicitate şi cele disponibile.
• Suma cererilor este egală cu suma disponibilităţilor.
• Livrarea se face prin transport direct, fără puncte de transbordare.
Orice depozit poate aproviziona orice centru consumator pe rute
prestabilite, cu costuri proporţionale cu cantitatea de marfă
expediată.
Problema de transport

Formulare matematică – prezentare schematică

Exprimarea grafică
Notaţii Semnificaţii
a legăturilor
Di , i ∈ M = {1,..., m} Depozitul i
C j , j ∈ N = {1,..., n} Consumatorul j
bj
ai , i ∈ M Cantitatea de marfă disponibilă în Di
a Vectorul disponibilului ai
bj , j ∈ N Cantitatea de marfă solicitată de C j
b Vectorul solicitărilor sau necesarului x ij Cj
(i, j ) , i ∈ M , j ∈ N Ruta fixată pentru aprovizionarea lui
j∈N
C j de la Di
Di c ij
c ij , i ∈ M , j ∈ N Cost unitar de transport pe
ruta (i, j ) i∈M
( )ij∈∈MN
C = cij Matricea costurilor unitare

xij , i ∈ M , j ∈ N Cantitatea de marfă expediată pe


ruta (i, j )
( )ij∈∈MN
X = xij Matricea variabilelor

Modelul matematic
Cantitatea expediată de Di , i ∈ M , n

la cele n centre consumatoare este ∑x


j =1
ij = ai , i ∈ M
egală cu stocul din respectiva marfă
V.1.1
existent în depozit.
Cantitatea de marfă primită de C j , m

j ∈ N , de la cele m depozite trebuie


∑x
i =1
ij = bj , j ∈ N

să fie egală cu cantitatea pe care a V.1.2


solicitat-o.
Variabila x ij poate fi cel puţin zero, xij ≥ 0 , ∀i ∈ M , ∀j ∈ N
oricare ar fi i ∈ M şi j ∈ N . V.1.3
Planul de transport trebuie să fie m n
minim sub aspectul costului total. [min] f = ∑∑ c x
i =1 j =1
ij ij

V.1.4
Oferta este egală cu cererea. m n

∑ a = ∑b
i =1
i
j =1
j

V.1.5
Analita economico-matematică a unor modele liniare

Prezentarea problemei sub forma tabelară


T.V.1.1
Cj C1 ….. Cj Cn D
Di
c11 c1 j c1n
D1 …. …..
x11 x1 j x1n a1
… … …. …. …. ….. …….
ci1 cij cin ai n
Di
xi1 ….
xij
….. xin ∑x
j =1
ij = ai , i ∈ M

….. ….. …. ….. …. ….. …….


cm1 cmj cmn
Dm ….. …..
xm1 xmj xmn am
n m
N b1 …. bj …. bm ∑b = ∑ a
j =1
j
i =1
i

∑x i =1
ij = bj , j ∈ N

Restricţiilor V.1.1 şi V.1.2 le corespunde scrierea


⎛a⎞
matriceală AX = ⎜⎜ ⎟⎟
⎝b⎠
unde A are forma

⎡1 1 ... 1 0 0 ... 0 ... 0 0 ... 0⎤ Linia 1


⎢0 0 ... 0 1 1 ... 1 ... 0 0 ... 0⎥⎥

⎢... ... ... ... ⎥
⎢ ⎥ Linia m
0 0 ... 0 0 0 ... 0 ... 1 1 ... 1⎥
A=⎢
⎢1 0 ... 0 1 0 ... 0 ... 1 0 ... 0⎥ Linia m+1
⎢ ⎥
⎢0 1 ... 0 0 1 ... 0 ... 0 1 ... 0⎥
⎢... ... ... ... ⎥
⎢ ⎥
⎣⎢ 0 0 ... 1 0 0 ... 1 ... 0 0 ... 1⎦⎥ Linia m+n

Coloanele:
1 2 ... n n + 1 ... 2n ... mn
Problema de transport

Din relaţia V.1.5 rezultă că între ecuaţiile sistemului mai există o


relaţie, deci, cele m+n restricţii ale problemei nu sunt independente, ceea ce
ne permite să tragem concluzia că rangA ≤ m + n − 1 , aşadar, o soluţie
admisibilă de bază are cel mult m+n-1 componente pozitive.
Formularea matematică a problemei de transport arată în mod
evident că aceasta se poate rezolva prin metoda simplex sau alte metode
specifice programării liniare.
Pentru exemplificare, considerăm următoarea situaţie:
Un întreprinzător deţine două puncte de prelucrare a cărnii de pui,
(D1 , D2 ) . Produsele finite sunt comercializate de trei centre, C j , j = 1,3 . În
punctul D1 se prelucrează 80% din întreaga cantitate, iar în D2 , restul de
20% din necesarul evaluat pentru o lună. Cantităţile vândute în cele trei
centre sunt de 40%, 30% şi, respectiv, 30% din producţia totală. Procentele
au fost stabilite în funcţie de puterea de cumpărare a clienţilor din
respectivele zone. Costurile de transport pe rutele (D , C ) ,
i j i = 1,2 şi

j = 1,3 , sunt presupuse a fi proporţionale cu lungimile rutelor, şi sunt date în


următoarea matrice:
⎡5 12 7 ⎤
C=⎢ ⎥.
⎣6 8 10⎦
În aceste condiţii, problema de rezolvat este:
[min] f = 5 x11 + 12 x12 + 7 x13 + 6 x 21 + 8 x 22 + 10 x 23
⎧ x11 + x12 + x13 = 80
⎪ x + x + x = 20
⎪⎪ 21 22 23

x
⎨ 11 + x 21 = 40
⎪ x + x = 30
⎪ 12 22

⎪⎩ x13 + x 23 = 30
xij ≥ 0, ∀i = 1,2, j = 1,3
unde xij reprezintă procentul din marfă, transportată pe ruta (Di , C j ) .
Analita economico-matematică a unor modele liniare

Vom rezolva această problemă prin metoda grafică. Pentru aceasta,


notăm
x11 = u ⇒ x21 = 40 − u ≥ 0 ( d1 : 40 − u = 0 )
x12 = v ⇒ x 22 = 30 − v ≥ 0 ( d 2 : 30 − v = 0 )
x13 = 80 − u − v ≥ 0 ( d 3 : 80 − u − v = 0 )
x23 = 20 − 40 + u − 30 + v ⇒ x23 = u + v − 50 ≥ 0 ( d 4 : u + v − 50 = 0 )
80 − u − v + u + v − 50 = 30 (ceea ce este adevărat)
[min] f (u , v) = 5u + 12v + 7(80 − u − v ) + 6(40 − u ) + 8(30 − v) + 10(u + v − 50) =
= 2u + 7v + 540

v
80
d3 d1
d4

50 d2
30 B A

C
O
40 u

Vârf (u , v ) f (u , v )
A (40,30) 830
B (20,30) 790
C (40,10) 690 min
Problema de transport

Se obţine planul optimal

x11* = 40 C1
D1 x12 = 10
*

x13* = 30

C2
x21 = 0
*

x = 20
*
22
D2
x23 = 0
*

cu costul minim [min] f = 690 u.m. C3


Aplicarea algoritmului simplex chiar în acest caz particular în care
numărul restricţiilor este m+n=5 şi numărul variabilelor m ⋅ n = 6 presupune
efectuarea unui număr foarte mare de calcule (tabelul simplex va avea
m ⋅ n + m + n coloane numai pentru vectorii din spaţiul bunurilor).
Modelul matematic al problemei de transport este un model liniar
prezentând anumite particularităţi care au fost folosite de Hitchoock numai
la stabilirea soluţiei de start. În 1947, T. C. Koopmans a exploatat aceste
particularităţi, şi, ca urmare, problemele de transport nu sunt rezolvate prin
metode de tip simplex, ci prin metode speciale bazate pe teoria dualităţii. O
parte dintre aceste particularităţi sunt evidenţiate prin propoziţiile care
urmează.

Propoziţia 1 O problemă de transport echilibrată este un caz particular de


problemă de programare liniară care are cel puţin o soluţie admisibilă.
ai ⋅ b j not m n
Într-adevăr, dacă luăm xij = , unde D = ∑ ai = ∑ b j = N
D i =1 j =1

atunci, se observă că:


● xij ≥ 0 , ∀i = 1, m , j = 1, n
● sunt verificate relaţiile V.1.1 şi V.1.2:
Analita economico-matematică a unor modele liniare

n ai ⋅ b j 1 n
V.1.1' ∑ j =1 D
=
D
⋅ ai ⋅ ∑ b j = ai , i ∈1, m
j =1

n ai ⋅ b j 1 m
V.1.2' ∑ j =1 D
=
D
⋅ b j ⋅ ∑ ai = b j , j ∈1, n .
i =1

Propoziţia 2 rangA=m+n-1.
Matricea A a sistemului V.1.1 - V.1.2 are m+n linii şi m ⋅ n coloane,
fiecare din acestea având două elemente egale cu 1 şi restul egale cu 0.
rangA ≤ min(m + n, m ⋅ n) = m + n < m ⋅ n , m, n ∈ N − {0,1,2}

Ca la orice problemă de programare liniară, aflarea soluţiei optime


impune parcurgerea a două mari etape:
Etapa 1: Generarea unei soluţii admisibile de bază.
Etapa 2: Verificarea optimalităţii soluţiei găsite şi, dacă este nevoie,
îmbunătăţirea ei, până la aflarea soluţiei optime finite.

În continuare, vor fi comentate pe scurt aceste etape.

Etapa 1: Determinarea unei soluţii admisibile de bază, pe care o vom numi


în continuare soluţia iniţială, poate fi făcută prin metodele cunoscute din
programarea liniară sau, mai simplu, prin metode specifice, printre care
menţionăm:
- metoda diagonalei (Dantzig) sau metoda colţului de nord-vest;
- metoda elementului minim pe linie;
- metoda elementului minim pe coloană;
- metoda elementului minim pe tabel;
- metoda diferenţelor maxime sau metoda lui Vogel.
Deoarece aceste metode nu cer o teoretizare specială, vor fi expuse odată cu
aplicarea lor.
Problema de transport

Etapa 2: Determinarea soluţiei optime.


Pasul 1 Testarea optimalităţii.
Soluţia iniţială X 1 este optimă ? ⎯DA
⎯→ STOP. Se interpretează
economic rezultatele.
⎯⎯
NU
→ Pasul 2.
Pasul 2 Îmbunătăţirea soluţiei.
Se îmbunătăţeşte soluţia X 1 prin trecerea la o nouă soluţie
admisibilă de bază, X 2 , cu f ( X 2 ) ≤ f ( X 1 ) . Se revine apoi la pasul 1,
înlocuind X 1 cu X 2 . După un număr finit de îmbunătăţiri succesive, se
obţine soluţia optimă.
Testarea şi, eventual, îmbunătăţirea soluţiei pot fi realizate prin:
- metoda potenţialelor;
- metoda distributivă modificată;
- metoda stepping-stone, etc.

Metoda potenţialelor, sau algoritmul primal – dual pentru rezolvarea


problemelor de transport, se bazează pe următoarele teoreme:

Teorema 1: Dacă (xij* ) , i = 1, m , j = 1, n , este soluţie admisibilă de bază


pentru
m n
[min] f = ∑∑ cij xij
i =1 j =1

⎧n
⎪∑ xij = ai , ∀i = 1, m
⎪ j =1
⎨m
⎪ x = b , ∀j = 1, n
⎪⎩∑i =1
ij j

xij ≥ 0 , ∀i, j

şi (u i* , v *j ) , i = 1, m , j = 1, n , este soluţie admisibilă de bază a dualei sale


Analita economico-matematică a unor modele liniare

m n
[max]g = ∑ ai u i + ∑ b j v j
i =1 j =1

{u i + v j ≤ cij , ∀i = 1, m , ∀j = 1, n
u i , v j ∈ R , ∀i = 1, m , ∀j = 1, n
atunci ele sunt optime dacă şi numai dacă:

[ ]
V.1.6 xij* cij − (u i* + v *j ) = 0 , ∀i = 1, m , j = 1, n .
n
V.1.7 ∑x
j =1
*
ij − ai = 0 , ∀i = 1, m .

m
V.1.8 ∑x
i =1
*
ij − b j = 0 , ∀j = 1, n .

V.1.9 xij* ≥ 0 şi cij − (u i* + v *j ) ≥ 0 , ∀i = 1, m , j = 1, n .

Variabilele dualei problemei de transport echilibrate, ui , i = 1, m , şi

v j , j = 1, n , mai sunt numite şi multiplicatori simplex. Conform relaţiei


V.1.6, dacă xij este o variabilă bazică şi are valoare strict pozitivă, notată
xij , atunci cij − (u i + v j ) = 0 . O soluţie admisibilă de bază nedegenerată are
(m+n-1) componente strict pozitive, deci îi va corespunde un sistem de
(m+n-1) ecuaţii, câte o ecuaţie pentru fiecare xij bazică:
V.1.10 ui + v j = cij .
Necunoscutele fiind u1 ,.., u m , v1 ,.., vn , rezultă că totdeauna acest

sistem liniar este compatibil simplu nedeterminat. Fie ui , i = 1, m , şi

v j , j = 1, n , o soluţie ce se poate afla, de exemplu, anulând multiplicatorul


care apare de cele mai multe ori în sistem. Din relaţiile V.1.9 rezultă că
soluţia admisibilă de bază este optimă dacă:
V.1.11 cij − (u i + v j ) ≥ 0 pentru ∀xij nebazic.
Problema de transport

( )
Teorema 2: Dacă xij* , i = 1, m , j = 1, n , este soluţie optimă a problemei de
transport echilibrate, atunci ea rămâne optimă şi pentru problema în care
costurile de transport cij cresc sau descresc cu u i unităţi pe linia i şi v j

unităţi pe coloana j, i = 1, m , j = 1, n .

În practică, după determinarea soluţiei admisibile de bază, pentru


etapa 2 de îmbunătăţire a soluţiei optime,se procedează astfel:

Etapa 2
Pasul 1 Testarea optimalităţii soluţiei iniţiale X 1 :
• Se scrie sistemul u i + v j = cij pentru toate variabilele bazice xij .
• Se calculează ∆ ij = cij − (u i + v j ) pentru toate variabilele xij nebazice.
∆ ij ≥ 0 , ∀xij variabilă nebazică ? DA → STOP.
NU → Pasul 2.
Pasul 2 Se îmbunătăţeşte soluţia testată (X k ) trecând la un alt
program de transport admisibil ( X k +1 ) cel puţin la fel de bun în sensul
f ( X k ) ≥ f ( X k +1 ) .

{ }
Criteriul de intrare în bază: dacă ∆ kr = min ∆ ij ∆ ij < 0 , atunci x kr va intra
în bază. Planul de transport se îmbunătăţeşte prin micşorarea costului total
dacă se va folosi ruta (k , r ) .
Se va atribui variabilei x kr o valoare pozitivă notată θ .

Criteriul de eliminare din bază: se va construi un contur poligonal închis,


cu un număr par de vârfuri, având primul vârf în căsuţa (k , r ) şi celelalte
vârfuri numai în căsuţele corespunzătoare variabilelor bazice. Schimbarea
direcţiei se face numai sub un unghi de 90 grade. Dacă este corect construit,
Analita economico-matematică a unor modele liniare

atunci este unic, şi se revine în căsuţa (k , r ) . Vârfurile vor fi marcate


alternativ ‘+’ şi ‘-‘, începând cu vârful (k , r ) .
Noii variabile bazice i se atribuie valoarea θ egală cu cea mai mică
dintre valorile
variabilelor bazice situate în căsuţele în care vârfurile au fost marcate ‘-‘:
θ = min{x ij > 0 | (i, j ) marcat '-'} = x ep
Se determină soluţia îmbunătăţită X k +1 prin transferarea cantităţii θ
de-a lungul liniei poligonale, conform următoarelor reguli:
x ij := xij − θ , dacă (i, j ) a fost marcat cu ‘-‘;
x ij := xij + θ , dacă (i, j ) a fost marcat cu ‘+‘;
x ij := x ij , dacă (i, j ) nu se află pe conturul poligonal.
Variabila x ep va fi fi eliminată din bază de către x kr . Se revine la pasul 1,
înlocuind X k cu X k +1 .

Observaţie: Între f ( X k ) şi f ( X k +1 ) există relaţia:

f ( X k ) = f ( X k +1 ) + θ ⋅ ∆ kr ⎫

θ ≥0 ⎬ ⇒ f ( X k +1 ) ≤ f ( X k ) .
∆ kr < 0 ⎪

În finalul acestei scurte prezentări a problemei de transport


echilibrate, se va sistematiza tehnica de rezolvare care utilizează metoda
potenţialelor:
Problema de transport

START

Se determină o soluţie iniţială:


X1 .

Numărul
NU Aplică procedeul
rutelor utilizate prin
de perturbare.
X 1 este (m+n-1).

DA

Ataşează restricţiilor variabilele dualei:


u1 ,..., u m surselor (depozitelor);
v1 ,..., v n consumatorilor (destinaţiilor).

Dacă xij este variabilă bazică în X 1 , atunci scrie ecuaţia


u i + v j = cij .
Rezolvă sistemul astfel obţinut; el va fi totdeauna simplu
nedeterminat deoarece are:
• (m+n) variabile (şi anume variabilele dualei);
• (m+n-1) ecuaţii (câte una pentru fiecare variabilă bazică).

Dacă x kl este nebazică în X 1 , atunci calculează


diferenţa ∆ kl = c kl − (u k + vl ) .

• aplică criteriul de intrare în


∆ kl ≥ 0 bază: min ( ∆ kl ) = ∆ pr ;
NU ∆ kl < 0
∀x kl nebazică. • aplică criteriul de ieşire din
bază construind linia poligonală
închisă, cu vârful iniţial în
DA ( p, r ) ;
• calculează componentele
Soluţia testată este soluţiei îmbunătăţite.

STOP
Analita economico-matematică a unor modele liniare

2. Modelarea şi rezolvarea problemelor de transport echilibrate

2.1. Se consideră problema de transport echilibrată, cu datele de


intrare specificate în tabelul următor.
T.V.2.1
C1 C2 C3 C4 Disponibil

D1 5 7 11 4
400t
x11 x12 x13 x14
D2 10 9 5 6
250t
x21 x22 x23 x24
D3 7 8 8 9
300t
x31 x32 x33 x34
Necesar 200t 270t 330t 150t 950t

Fiecare căsuţă (i,j) , i ∈ {1,.., m} , j ∈ {1,.., n} din cele m ⋅ n de acest


tip existente în tabelul T.V.2.1, corespunde rutei dintre depozitul Di în care
sunt stocate ai unităţi de marfă (vezi coloana disponibilului) şi centru
consumator C j care solicită b j unităţi din aceeaşi marfă (vezi linia
necesarului). Pe această rută este cunoscut costul transportului pe unitatea
de produs, exprimat în unităţi monetare, la care se ataşează variabila xij ce
reprezintă cantitatea cu care Di va aproviziona pe C j . Se cere să se

stabilească acele valori ale variabilelor xij , i = 1, m , j = 1, n care satisfac


restricţiile:

⎧ x11 + x12 + x13 + x14 = 400



V.2.1 ⎨ x21 + x22 + x23 + x24 = 250
⎪ x31 + x32 + x33 + x34 = 300

Problema de transport

x11 + x21 + x31 = 200


x12 + x22 + x32 = 270
V.2.2 x13 + x23 + x33 = 330
x14 + x24 + x34 = 150

V.2.3 xij ≥ 0 , i = 1,3 , j = 1,4 .


şi minimizează forma liniară:
V.2.4 [min] f = 5 x11 + 7 x12 + ... + 9 x34 .
Din punct de vedere economic, soluţia optimă reprezintă un plan de
aprovizionare a celor patru centre consumatoare, optim sub aspectul
costului. Optimizarea planurilor de transport al mărfurilor omogene poate fi
făcută şi după alte criterii de rentabilitate, cum ar fi:
• distanţa parcursă să fie minimă;
• minimizarea consumului total de combustibil, etc.

Vom trece acum la rezolvarea modelului prezentat anterior.


Etapa 1: Determinarea unor soluţii admisibile de bază de start. Se vor
exemplifica trei metode.

Metoda diagonalei
Această metodă propusă de Dantzig este deosebit de uşoară, dar
acest avantaj este de cele mai multe ori anulat de faptul că repartizarea
mărfii stocate, disponibile, se face fără a se ţine seama de costurile unitare
de transport.
Iteraţia 1: Se începe construirea unei soluţii iniţiale, atribuind variabilei x11
cea mai mare valoare permisă de restricţii. Dar x11 apare în prima şi în a
patra restricţie, deci, x11 =min(400, 200)=200= b1 . Dacă x11 =200, atunci a
Analita economico-matematică a unor modele liniare

patra restricţie va fi verificată ⇔ x21 = x31 = 0 , iar prima restricţie va fi


verificată ⇔ x12 + x13 + x14 = 400 − 200 .
În general apar trei cazuri:
1. x11 = min(a1 , b1 ) = a1 ⇒ x11 = a1 , x1 j = 0 , cu j = 2, n , deoarece
disponibilul din D1 a fost epuizat prin aprovizionarea lui C1 . Dar C1 care a
solicitat iniţial b1 unităţi de marfă, mai are nevoie de (b1 − a1 ) unităţi.

⎡ x11 = a1 x12 = 0 ... x1n = 0 ⎤ ⇒ ∑ x1 j = a1 Se notează:


I = {2,..., m} ⊂ M ,
⎢ x =? x 22 = ? ... ... ⎥⎥
j =1

⎢ 21 J = {1,..., n} = N .
⎢ ... ⎥
⎢ ⎥
⎣ x m1 = ? x m 2 = ? ... x mn = ?⎦

m

∑x
i=2
i1 = b1 − a1

Se trece la iteraţia 2 pentru a afla valoarea variabilei x21 , care este


variabila cu cei mai mici indici din I , respectiv J.
2. x11 = min(a1 , b1 ) = a1 = b1 ⇒ x11 = a1 = b1 , x1 j = 0 , cu j = 2, n şi x i1 = 0 ,

cu i = 2, m
n
⎡ x11 = a1 = b x12 = 0 ... x1n = 0 ⎤ ⇒ ∑ x1 j = a1 = b1 Se actualizează mulţimile
⎢ x =0 x 22 = ? ... ... ⎥⎥ j =2 I şi J :
⎢ 21 I = {2,..., m},
⎢ ... ⎥
⎢ ⎥ J = {2,..., n}.
⎣ x m1 = 0 x m 2 = ? ... x mn = ?⎦

m

∑x
i =1
i1 = b1
Problema de transport

Se trece la iteraţia 2 pentru a afla valoarea variabilei x 22 , unde i = 2


este cel mai mic indice din I şi j = 2 cel mai mic indice din J.
3. x11 = min(a1 , b1 ) = b1 < a1 ⇒ x11 = b1 , xi1 = 0 , cu i = 2, m , deoarece
cantitatea solicitată de C1 a fost primită numai de la D1 , iar aceasta mai
rămâne cu un stoc de (a1 − b1 ) unităţi:

n
⎡ x11 = b1 x12 = ? ... x1n = ? ⎤ ⇒ ∑ x1 j = a1 − b1 Se actualizează
⎢x =0 x 22 = ? ... x 2 n = ? ⎥⎥ j =2 mulţimile indicilor:
⎢ 21 I = {1,..., m},
⎢ ... ⎥ J = {2,..., n}.
⎢ ⎥
⎣ x m1 = 0 x m 2 = ? ... x mn = ?⎦


m

∑x
i =1
i1 = b1

Se trece la iteraţia 2 şi se află valoarea lui x12 .

Să revenim la exemplul dat:

C1 C2 C3 C4 Disponibil

D1 5 7 11 4
200 400 → 200
D2 10 9 5 6
0 250
D3 7 8 8 9
0 300
Necesar 200 ↓ 270 330 150
950
0

Iteraţia 2: Se aplică raţionamentul de la iteraţia 1 pentru a stabili valoarea


variabilei x 21 în cazul 1, sau x22 în cazul 2, sau x12 în cazul 3.
Analita economico-matematică a unor modele liniare

Se observă că la fiecare iteraţie va fi epuizat un disponibil şi/sau


satisfăcut un necesar, de unde rezultă că după cel mult (m+n-1) paşi se
obţine soluţia de start.

Vom continua exemplificarea:


Iteraţia 2: x12 = min(200,270) = 200 ⇒ x13 = x14 = 0 şi
b2 := 270 − 200 = 70 .
Iteraţia 3: x22 = min(70,250) = 70 ⇒ x 32 = 0 şi a 2 := 250 − 70 = 180 .
Iteraţia 4: x23 = min(180,330) = 180 ⇒ x24 = 0 şi b3 := 330 − 180 = 150 .
Iteraţia 5: x33 = min(150,300) = 150 ⇒ a 3 := 300 − 150 = 150 .
Iteraţia 6: x34 = min(150,150) = 150 ⇒ STOP.

C1 C2 C3 C4 Disponibil
D1 200 200 0 0 400 → 200 → 0
D2 0 70 180 0 250 → 180 → 0
D3 0 0 150 150 300 → 150 → 0
200 ↓ 270 ↓ 330 ↓ 150 ↓
Necesar 0 70 ↓ 150 ↓ 0 950
0 0

După m+n-1=4+3-1 paşi s-a obţinut o soluţie de start (S.A.B) cu


m+n-1=6 componente strict pozitive, grupate de-a lungul diagonalei
principale, deci, o soluţie admisibilă de bază nedegenerată.
Valoarea funcţiei cost pentru această variantă de aprovizionare este:
f = 200 ⋅ 5 + 200 ⋅ 7 + 70 ⋅ 9 + 180 ⋅ 5 + 150 ⋅ 8 + 150 ⋅ 9 = 6480 u.m.
0
1

Toate celelalte metode de găsire a soluţiilor de start au la bază


următorul principiu: repartizarea cantităţilor disponibile în cele m depozite
către cele n centre consumatoare este făcută astfel încât să fie folosite cele
Problema de transport

mai economice rute, fiecare centru consumator să primească întreaga


cantitate solicitată şi fiecare depozit să livreze întregul stoc.

Metoda elementului minim pe coloană


Se prezintă problema de transport sub formă de tabel (vezi T.V.2.1).
Se vor parcurge cel mult (m+n-1) iteraţii, la fiecare iteraţie stabilindu-se ce
variabilă va intra în bază, prin regula “alege variabila xij dacă cij = min{cij } ,
i

apoi atribuie-i valoarea maximă compatibilă cu ecuaţiile i şi m+j din


sistem”.

Să exemplificăm:
Iteraţia 1: j := 1 ⇒ min{ci1 } = min{5,10,7} = 5 = c11 ⇒ x11 va fi variabilă
i =1, m

bazică de valoare x11 = min(a1 , b1 ) = 200 = b1 ⇒ x21 = x31 = 0 şi


a1 := 400 − 200 = 200 .
Subliniem faptul că ultimele patru metode diferă de metoda lui
Dantzig numai prin regula de alegere a variabilelor bazice, raţionamentele
prezentate în cele trei cazuri rămânând valabile.

Iteraţia 2: b1 = 0 ? ⎯DA
⎯→ j := 2
⎯⎯→
NU
j := 1 ; dar se va considera min{ci1 }.
i ≠1

Avem j=2 ,
min{c i 2 } = min{7,9,8} = 7 = c12 ⇒ x12 = min{a1 , b2 } = 200 = a1 ⇒
i =1, 3

x13 = x14 = 0 şi b2 = 270 − 200 = 70 .


Iteraţia 3: b2 = 0 ? ⎯⎯→
NU
j=2, min{c i 2 } = min{9,8} = 8 = c 32 ⇒
i ≠1

x 32 = min{a 3 , b2 } = 70 ⇒ x 22 = 0 şi a 3 := 300 − 70 = 230 .


Analita economico-matematică a unor modele liniare

Iteraţia 4: b2 = 0 ? ⎯⎯→
DA
j := 3 , min{ci 3 } = min{c 23 , c33 } = 5 = c 23 ⇒
i ≠1

x 23 = min{a 2 , b3 } = min{250,330} = 250 ⇒ x 24 = 0 şi b3 := 330 − 250 = 80


(ATENŢIE: a1 , b3 vor fi luate cu valorile lor actualizate!).
⎯→ j := 3 , min{c i 3 } = min{8} = 8 = c 33 ⇒ x 33 = 80
Iteraţia 5: b3 = 0 ? ⎯NU
i ≠1, 2

⇒ a 3 := 230 − 80 = 150 .
⎯→ j := 4 , min {c i 4 } = c 34 ⇒
Iteraţia 6: b3 = 0 ? ⎯ DA
i∉{1, 2}

x 34 = min{150,150} = 150 şi b4 = 0 ⇒ STOP .

C1 C2 C3 C4 Disponibil

D1 5 7 11 4
400 → 200 → 0
200 200 0 0
D2 10 9 5 6
250 → 0
0 0 250 0
D3 7 8 8 9
300 → 230 → 150 → 0
0 70 80 150
Necesar 200 ↓ 270 330 150
0 ↓ ↓ ↓
70 80 0
950
↓ ↓
0 0

A fost distribuită întreaga marfă stocată. Planul de livrare foloseşte


(m+n-1)=6 rute şi corespunde unui cost de:
f 02 = 5 ⋅ 200 + 7 ⋅ 200 + 5 ⋅ 250 + 8 ⋅ 70 + 8 ⋅ 80 + 9 ⋅ 150 = 6200u.m. < f 01 .

Metoda lui Vogel


Regula de alegere a variabilelor bazice: se vor efectua diferenţele
între cele mai mici costuri unitare de transport pe fiecare linie şi fiecare
coloană şi se va atribui valoarea maximă variabilei situată pe linia sau
coloana celei mai mari diferenţe dintre toate diferenţele luate în modul, în
locul corespunzător celui mai mic cost.
Problema de transport

Iteraţia 1:
a) Se află cel mai mic element al liniei i ∈ {1,..., m} , min{cij } = cik , apoi se
j =1, n

calculează diferenţa α i1 = cik − min{cij } , i = 1, m .


j ≠k

b) Se află cel mai mic element al coloanei j ∈ {1,..., n} , min{cij } = cil , apoi
i =1, m

se calculează diferenţa β 1j = clj − min{cij } , j = 1, n .


i ≠l

c) Se alege max ⎧⎨max (α i1 ), max (β 1j )⎫⎬ pentru a fixa linia sau coloana în care
⎩ i =i , m j =1, n ⎭
se va situa variabila bazică. Valoarea se va stabili în funcţie de relaţia
dintre disponibil şi necesar, conform celor trei situaţii descrise la metoda
diagonalei.
La următorii paşi se repetă acest raţionament cu ai , i = 1, m , b j ,

j = 1, n , I şi J actualizaţi.

Să exemplificăm: min{c1 j } = 4 = c14 , k = 4 ⇒ α11 = c14 − min{c1 j } = 4 − 5


j =1, 4 j ≠4

min{c2 j } = 5 = c23 , k = 3 ⇒ α 21 = c23 − min{c2 j } = 5 − 6


j =1, 4 j ≠3

min{c3 j } = 7 = c31 , k = 1 ⇒ α 31 = c31 − min{c3 j } = 7 − 8


j =1, 4 j ≠1

min{ci1 } = 5 = c11 , l = 1 ⇒ β 11 = c11 − min{ci1 } = 5 − 7


i =1, 3 i ≠1

min{ci 2 } = 7 = c12 , l = 1 ⇒ β 21 = c12 − min{ci 2 } = 7 − 8


i =1, 3 i ≠1

min{ci 3 } = 5 = c23 , l = 2 ⇒ β 31 = c23 − min{ci 3 } = 5 − 8


i =1, 3 i≠2

min{ci 4 } = 4 = c14 , l = 1 ⇒ β 41 = c14 − min{ci 4 } = 4 − 6


i =1, 3 i ≠1
Analita economico-matematică a unor modele liniare

Rezultă max ⎧⎨max (α i1 ), max (β 1j )⎫⎬ = 5 − 8 = 3 = β 31 . Se atribuie variabilei


⎩ i =i , 3 j =1, 4 ⎭
situată în căsuţa costului minim din coloana 3, x23 , valoarea minimă
(vezi tabelul următor): x 23 = min(a 2 , b3 ) = 250 ⇒ x 21 = x22 = x24 = 0 ,
I := {1,2,3} − {2} şi b3 := 330 − 250 = 80 .

C1 C2 C3 C4 Disponibil α1
D1 5 7 11 4 400 |4-5|

D2 10 9 5 6 250 |5-6|
0 0 250 0
D3 7 8 8 9 300 |7-8|

Necesar 200 270 330 150 950


β1 |5-7| |7-8| |5-8| |4-6|

Maxim
Observaţie: I:={1,3} are următoarea semnificaţie: prin repartizarea unei
cantităţi de marfă de 250t centrului C3 , depozitul D2 şi-a epuizat stocul, ca
atare nu mai poate aproviziona alte centre şi atunci va fi eliminat din
calculele următoare.

C1 C2 C3 C4 Disponibil α1 α2 α3 α4 α5
D1 5 7 11 4 400 250 50 0 |4-5| |4-5| |5-7| |4-5| Fără sens
200 50 0 150
D2 10 9 5 6 250 0 |5-6|
0 0 250 0
D3 7 8 8 9 300 220 0 |7-8| |7-8| |7-8| |7-8| Fără sens
0 220 80 0
N 200 270 330 150 950
0 220 80 0 Max iteraţia 4
0 0
β1 |5-7| |7-8| |5-8|* |4-6|
β2 |5-7| |7-8| |8-11| |4-9|
Max iteraţia 2
β 3 |5-7| |7-8| |8-11|
Max iteraţia 3
β4 |5-7| |7-8|
β5 |7-8| Max iteraţia 5 (unică)
Problema de transport

Iteraţia 2:
I = {1,3} , J = {1,2,3,4}
α 12 = α 11 şi α 32 = α 31 .
Acest lucru se întâmplă ori de câte ori la pasul precedent a fost
epuizat un disponibil. I are doar două elemente, deci:
β12 =| c11 − c31 |=| 5 − 7 | ; β 22 =| c12 − c32 |=| 7 − 8 | ; β 32 =| c13 − c33 |=| 8 − 11 | ;
β 42 =| c14 − c34 |=| 4 − 9 | ; max(α 12 ,α 22 , β12 , β 22 , β 32 , β 42 ,) = β 42 ⇒ se alege cel
mai mic cost din coloana 4; c14 = 4 . Se atribuie variabilei cu aceeaşi indici
valoarea maximă compatibilă cu restricţiile corespunzătoare depozitului D1
şi centrului C 4 : x14 = max(400,150) = 150 = b4 . În acest caz a fost satisfăcut
necesarul centrului C 4 ⇒ x34 = 0 ( x 24 = 0 se ştie de la pasul precedent),
J := {1,2,3,4} − {4} şi a1 := 400 − 150 = 250 , etc.
Calculele implicate de aplicarea metodei sunt sistematizate în tabelul
precedent.
Observaţia 1: La iteraţia 4 există mai multe diferenţe maxime: α14 = β14 . În
asemenea cazuri se recomandă alegerea diferenţei maxime ce corespunde
costului de transport minim şi dacă acestea sunt egale, atunci se preferă
diferenţa maximală care implică repartizarea cantităţii celei mai mari. În
cazul studiat coincideau şi costurile minime şi cantităţile ce urmau să fie
repartizate , şi atunci este indiferent ce diferenţă maximă se alege.
Observaţia 2: La iteraţia 5, J = {2} şi I = {1,3} , deci, diferenţele α 5 nu au
sens.
Observaţia 3: După parcurgerea iteraţiilor 1,…,5, I = {3} şi J = {2} , deci
este imposibil să mai calculăm vreo diferenţă. Astfel, se atribuie variabilei
x32 valoarea maximă compatibilă cu restricţiile 3 şi m+2=3+2, adică
x 32 = 220 .
Analita economico-matematică a unor modele liniare

Valoarea funcţiei scop va fi:


f = 5 ⋅ 200 + 7 ⋅ 50 + 4 ⋅150 + 5 ⋅ 250 + 8 ⋅ 220 + 8 ⋅ 80 = 5600 < f 02 < f 01 .
0
3

Etapa 2: Stabilirea soluţiei optime finite.

Pasul 1 Testarea optimalităţii soluţiei iniţiale X 1 .

Operaţia 1: Drept soluţie iniţială, notată X 1 , am considerat soluţia


iniţială obţinută prin metoda elementului minim pe coloană. În tabel au fost
trecute numai valorile variabilelor bazice, în număr de m+n-1=6.

C1 C2 C3 C4 Disponibil

D1 5 7 11 4
400
200 200
D2 10 9 5 6
250
250
D3 7 8 8 9
300
70 80 150
Necesar 200 270 330 150 950

Se scrie sistemul u i + v j = cij pentru toate variabilele bazice xij .


xij variabilă bazică → ecuaţie → soluţie particulară
x11 → u1 + v1 = 5 v1 = 6
u1 = −1 v2 = 8
x12 → u1 + v 2 = 7
u 2 = −3 v3 = 8
x 23 → u 2 + v3 = 5 u3 = 0 v4 = 9
x 32 → u3 + v2 = 8
x 33 → u 3 + v3 = 8 Obs: S-a anulat u 3
x 34 → u3 + v4 = 9 deoarece apare cu cea
mai mare frecvenţă în
sistem.
Problema de transport

Operaţia 2: Se calculează ∆ ij = cij − (u i + v j ) pentru toate variabilele


xij nebazice în X 1 :
xij nebazice → diferenţa ∆ ij
x13 → ∆ 13 = c13 − (u1 + v 3 ) = 11 − (− 1 + 8) = 4 > 0
x14 → ∆ 14 = c14 − (u1 + v 4 ) = 4 − (− 1 + 9 ) = −4 < 0
x 21 → ∆ 21 = c 21 − (u 2 + v1 ) = 10 − (− 3 + 6 ) = 7 > 0
x 22 → ∆ 22 = c 22 − (u 2 + v 2 ) = 9 − (− 3 + 8) = 4 > 0
x 24 → ∆ 24 = c 24 − (u 2 + v 4 ) = 6 − (− 3 + 9 ) = 0
x 31 → ∆ 31 = c 31 − (u 3 + v1 ) = 7 − (0 + 6 ) = 1 > 0
∆ ij ≥ 0 , ∀xij variabilă nebazică ? NU ⇒ pasul 2.

Pasul 2 Îmbunătăţirea soluţiei în cazul în care nu este optimă.


Se îmbunătăţeşte X 1 trecând la soluţia admisibilă de bază X 2 , cel
puţin la fel de bună în sensul f ( X 1 ) ≥ f ( X 2 ) .
Criteriul de intrare în bază:
min ∆ ij = −4 = ∆ 14 ⇒ x14 va intra în bază şi i se va atribui valoarea θ ≥ 0 ;
∆ ij < 0

x14 = θ

C1 C2 C3 C4 Disponibil

D1 200 200- θ +θ 400


D2 250 250
D3 70+ θ 80 150 - θ 300
Necesar 200 270 330 150 950

Cum a fost construit conturul poligonal? Primul vârf, marcat cu “+”


este în căsuţa (1,4) corespunzătoare variabilei ce intră în bază; de la aceasta
se trasează un segment de dreaptă, pe linie sau pe coloană, până la o căsuţă
Analita economico-matematică a unor modele liniare

ce corespunde unei variabile bazice. Să presupunem că se lucrează pe linie.


În acest caz, avem două alternative:
• următorul vârf este (1,2);
• următorul vârf este (1,1) ⇒ se schimbă direcţia cu 900, deci se continuă
trasarea următoarei laturi în coloana lui C1 până la căsuţa unei alte
variabile bazice. Se observă că este imposibilă continuarea trasării
conturului poligonal, deoarece în coloana lui C1 există o singură variabilă
bazică. Alternativa aleasă a fost greşită. O vom adopta, aşadar, pe prima.
Prima latură va fi între (1,4) şi (1,2); se schimbă direcţia de înaintare
0
cu 90 şi se trasează dreapta dintre (1,2) şi (3,2). Se continuă procedeul
trasând laturile dintre (3,2) şi (3,4), respectiv (3,4) şi (1,4). Linia poligonală
s-a închis, deci se poate trece la aflarea variabilei înlocuite de x14 .
Criteriul de eliminare din bază:
θ = min(150,200) = 150 = x 34 . În noua soluţie admisibilă de bază variabila
x14 a eliminat-o pe x34 :

C1 C2 C3 C4 Disponibil

D1 200 200-150 150 400


D2 250 250
D3 70+150 80 300
Necesar 200 270 330 150 950

f ( X 2 ) = 200 ⋅ 5 + 50 ⋅ 7 + 150 ⋅ 4 + 250 ⋅ 5 + 220 ⋅ 8 + 80 ⋅ 8 = 5600


= f ( X 1 ) + θ ⋅ ∆ 14 = 6200 + 150 ⋅ (−4) = 5600 .
Se reia algoritmul testând optimalitatea soluţiei îmbunătăţite.

De multe ori, în practică, nu se scrie sistemul de ecuaţii, calculul


soluţiei particulare făcându-se cu ajutorul unor matrice, şi anume:
• matricea costurilor de transport: (cij ) , i = 1, m , j = 1, n ;
Problema de transport

• matricea costurilor comparative: (cij ) , i = 1, m , j = 1, n , unde cij = u i + v j ;

• matricea diferenţelor: (∆ ij ) , i = 1, m , j = 1, n .

(cij ) (cij )i, j ∆ ij = cij − cij


v1 = 5 v2 = 7 v3 = 7 v4 = 4
i = 1,3 , j = 1, 4
5 7 11 4 u1 = 0 5 7 7 4 Ø Ø 4 Ø
10 9 5 6 u 2 = −2 3 5 5 2 7 4 Ø 4

7 8 8 9 u3 = 1 6 8 8 5 1 Ø Ø 4

Se observă că matricea (cij )ij a fost extinsă cu o linie şi o coloană în


care vor fi trecute valorile multiplicatorilor simplex (variabilele dualei).
Elementele acestui tabel sunt completate în următoarea ordine:
• Se trec valorile costurilor unitare ce corespund soluţiei admisibile de bază
care trebuie testată, deci cij = cij dacă xij este variabilă bazică. Se vor
haşura toate cele (m+n-1) căsuţe ce corespund rutelor folosite în soluţia
testată. În realitate, aceste numere reprezintă termenii liberi ai sistemului
u i + v j = cij , cu i = 1,3 şi j = 1,4 .
• Care coloană şi/sau linie are cele mai multe căsuţe haşurate? Linia 1
⇒ u1 = 0 ; se determină valorile celorlalte variabile: v1 = 5 din
u1 + v1 = 5 , v 2 = 7 din u1 + v 2 = 7 , v 4 = 4 din u1 + v 4 = 4 ,
u 3 = 8 − 7 = 1 , v 3 = 8 − 1 = 7 , u 2 = 5 − 7 = −2 .
• Se calculează cij corespunzătoare variabilelor nebazice, conform formulei:
cij = u i + v j .
• Se calculează matricea diferenţelor cu elementul general ∆ ij = cij − cij ,
i = 1, m , j = 1, n .
∆ ij ≥ 0 ∀i = 1, m , j = 1, n ? DA ⇒ STOP. Soluţia testată este optimă dar
şi unică, deoarece nici o variabilă nebazică nu are diferenţa egală cu zero.
Analita economico-matematică a unor modele liniare

Planul optim de livrare este prezentat în următorul graf:

200 C1
D1 50
150 C2
D2 250
C3
220
D3 80 C4

Valoarea cheltuielilor de transport va fi minimă şi egală cu f = 5600 u.m.


Se observă că rutele utilizate în programul optim au cele mai mici
costuri în coloană şi linie, excepţie făcând linia a treia. Vom micşora c31 cu
o unitate pentru a stabili dacă varianta optimă de aprovizionare se menţine.
Soluţia optimă a problemei rezolvate va fi considerată soluţie iniţială pentru
modelul în care funcţia scop are coeficientul c31 egal cu 6.

cij v1 v2 v3 v4 ∆ ij = cij − cij


C1 C2 C3 C4 D
=5 =7 =7 =4

D1 5 7 11 4 u1 = 0 5 7 7 4 Ø Ø 4 Ø
200 50 150 400
D2 10 9 5 6 u 2 = −2 3 5 5 2 7 4 Ø 4
250 250
D3 6 8 8 9 u3 = 1 6 8 8 5 0 Ø Ø 4
220 80 300
N 200 270 330 150 950
∆ ij ≥ 0 ∀i, j ⇒ STOP

Deoarece, pentru această soluţie optimă, există diferenţa egală cu


zero corespunzătoare unei variabile nebazice ( ∆ 31 = 0 ), problema admite o
infinitate de soluţii optime, dintre care cel puţin două bazice.
C1 C2 C3 C4
D1 170 80 150
D2 250
D3 30 270
Problema de transport

Se poate obţine o nouă soluţie admisibilă de bază optimă


(corespunde aceluiaşi cost total minim) luând x31 = θ . Se construieşte
conturul poligonal închis (sau ciclul) corespunzător rutei (3,1):

C1 C2 C3 C4
D1 200 - θ 50 + θ 150 θ = min( 200,30) =
D2 250 = 30 ⇒
D3 +θ 270 30 - θ

Problema de transport fiind o problemă de programare liniară,


rezultă că orice combinaţie liniară convexă de două soluţii optime este tot o
soluţie optimă, eventual nebazică.

⎡200 0 50 150⎤ ⎡170 0 80 150⎤


λ ⋅ ⎢⎢ 0 0 250 0 ⎥⎥ + (1 − λ ) ⋅ ⎢⎢ 0 0 250 0 ⎥⎥ = X * , λ ∈ [0,1] .
⎢⎣ 0 270 30 0 ⎥⎦ ⎢⎣ 30 270 0 0 ⎥⎦

Din punct de vedere economic, o soluţie admisibilă de bază optimă


este un plan de transport ce utilizează (m+n-1) rute din cele m ⋅ n posibile, şi
care corespund unui cost total minim. O soluţie optimă nebazică obţinută,
1
de exemplu, pentru λ = :
5

⎡200 0 50 150⎤ ⎡170 0 80 150⎤ ⎡176 0 74 150⎤


1 ⎢ 4
X* = ⋅⎢ 0 0 250 0 ⎥⎥ + ⋅ ⎢⎢ 0 0 250 0 ⎥⎥ = ⎢⎢ 0 0 250 0 ⎥⎥
5 5
⎢⎣ 0 270 30 0 ⎥⎦ ⎢⎣ 30 270 0 0 ⎥⎦ ⎢⎣ 24 270 6 0 ⎥⎦

este un plan optim de transport cu m+n rute folosite. Dacă politica


economică impune folosirea a mai mult de (m+n-1) rute, atunci soluţia
optimă nebazică este preferată celei bazice. În practică, folosirea a prea
puţine rute feroviare, aeriene sau navale poate provoca dereglări ale
Analita economico-matematică a unor modele liniare

activităţii gărilor, aeroporturilor sau porturilor, prin staţionarea excesivă a


mijloacelor de transport.

Pentru fixarea cunoştinţelor, propunem o a doua problemă de acest


tip, dar de data aceasta, metodele vor fi prezentate foarte pe scurt, unele sub
altă sistematizare. Lăsăm pe seama cititorului să aleagă forma de prezentare
care i se potriveşte.

2.2. În sursele D 1 , D2 , D3 sunt stocate 450, 820, respectiv 530


unităţi dintr-o marfă, care trebuie expediată consumatorilor C 1 , C 2 , C 3 şi
C 4 . Cantităţile solicitate sunt 300, 700, 200, respectiv 600 unităţi. Se cere
identificarea unui program de aprovizionare optim sub aspectul costului, în
ipoteza că se mai deţin următoarele informaţii:
• Se poate folosi orice rută ( D i , C j ) , i ∈ 1,3, j ∈ 1,4 .
• Sunt suficiente capacităţi de transport şi acestea pot fi folosite astfel încât
este inutilă restricţia de nedepăşire a capacităţii pe ruta (i, j ) .
Se cunoaşte matricea costurilor unitare de transport:
⎛ 5 8 12 6 ⎞
⎜ ⎟
C = (cij ) i =1,3 = ⎜10 7 11 4 ⎟ .
j =1, 4 ⎜ 8 9 9 10 ⎟
⎝ ⎠
Matricea C are elementele cvasiconstante în perioada în care trebuie
să se realizeze transportul; ele sunt stabilite în funcţie de lungimea rutei
(i, j ) , i ∈ 1,3, j ∈ 1,4 , şi a tipului de drum (asfaltat, drum naţional, pietruit,
stare proastă a carosabilului, etc.).
Problema de transport

Datele de intrare vor fi sistematizate într-un tabel (T.V.2.2) de tipul


tabelului T.V.1.1:

T.V.2.2
C1 C2 C3 C4 Disponibil

D1 5 8 12 6 450
D2 10 7 11 4 820
D3 8 9 9 10 530
Necesar 300 700 200 600 1800

Notăm cu xij cantitatea de marfă care se transportă de la D i la C j ,


adică pe ruta (i, j ) , i ∈ {1,2,3} , j ∈ {1,2,3,4} .

Problema primală: Problema duală


3 4 3 4
[min] f = ∑∑ c x
i =1 j =1
ij ij [max]g = ∑ aiui + ∑b v j j
i =1 j =1
⎧ x11 + x12 + x13 + x14 = 450
⎪ x + x + x + x = 820
→ u1 ∈ R {u + v
i j ≤ cij , ∀i ∈ 1,3, j ∈ 1,4
⎪ 21 22 23 24 → u2 ∈ R
ui , v j ∈ R , ∀i ∈ 1,3, j ∈ 1,4
⎪ x31 + x32 + x33 + x34 = 530 → u3 ∈ R

⎪ x11 + x21 + x31 = 300 → v1 ∈ R

⎪ x12 + x22 + x32 = 700 → v2 ∈ R
⎪ x13 + x23 + x33 = 200 → v3 ∈ R

⎪ x14 + x24 + x34 = 600 → v4 ∈ R
⎪ x ≥ 0, ∀i ∈ 1,3 , ∀j ∈ 1,4
⎩ ij

Vom sublinia o parte din particularităţile modelului primal:


• numărul necunoscutelor este totdeauna m × n ; aici, m × n = 12
• numărul restricţiilor independente este totdeauna ( m + n − 1 ). În acest caz,
m + n −1 = 6 .
Analita economico-matematică a unor modele liniare

ai ⋅ b j
• Modelul admite totdeauna soluţia xij = m
, i ∈ 1, m , j ∈ 1, n , deci,
∑a
i =1
i

conform teoriei cunoscute, are cel puţin o soluţie optimă finită:

⎛ 450 ⋅ 300 450 ⋅ 700 ⎞


⎜ ... .. ⎟
⎜ 1800 1800 ⎟
X =⎜ ... ... ... ... ⎟.
⎜ 530 ⋅ 200 350 ⋅ 600 ⎟
⎜ ... ...
⎝ 1800 1800 ⎟⎠

Aflarea programului optimal X * = ( xij* ) i =1,3 :


j =1, 4

Etapa 1: Obţinerea unei soluţii iniţiale.


Din punct de vedere economic se vor stabili variante de
aprovizionare care utilizează numai m + n − 1 rute şi onorează toate cererile,
dar nu sunt neapărat cele mai bune variante decizionale. În acest scop
propunem trei metode, şi anume:

Metoda colţului de nord-vest (impune atribuirea valorilor maxime


corespunzătoare rutelor din nord-vestul fiecărei linii).

X1 C1 C2 C3 C4 Disponibil

D1 300 150 450


D2 550 200 70 820
D3 530 530
Necesar 300 700 200 600 1800

Sunt folosite exact m + n − 1 = 6 rute, motiv pentru care soluţia X 1


se numeşte nedegenerată (cele şase variabile bazice x11 , x12 , x 22 , x 23 , x 24
şi x34 au valori strict pozitive).
Problema de transport

Metoda elementului minim pe tabel - Costurile unitare vor fi grupate


în ordine crescătoare: c 24 = 4 < c11 = 5 < c14 = 6 < ... < c13 = 12 . Variabilei
din ruta primului termen c 24 i se va atribui valoarea maximă:
x 24 = min(a 2 , b4 ) = min(820,600) = 600 . Apar întrebările:
• S-a lichidat stocul? Nu. Atunci, acesta se actualizează. Vor rămâne în stoc
820-600=220.
• A fost onorată cererea? Da. Atunci, se elimină din şir costurile din coloana
4 (deoarece, practic, se face o inspecţie vizuală a costurilor, eliminarea
unora este vizualizată prin zerourile de pe rutele devenite inutilizabile,
prin satisfacerea necesarului).

X2 C1 C2 C3 C4 Disponibil

D1 5 8 12 6 450
0
D2 10 7 11 4 820-600=220
600
D3 8 9 9 10 530
0
Necesar 300 700 200 600 1800

Cu subşirul de costuri obţinut se reia raţionamentul. În final, se


obţine SAB nedegenerată:

X2 C1 C2 C3 C4 Disponibil

D1 5 8 12 6
300 150 0 0 450 → 150 → 0
D2 10 7 11 4
0 220 0 600 820 → 220 → 0
D3 8 9 9 10
0 330 200 0 530 → 200 → 0
Necesar 300 ↓ 700 ↓ 200 ↓ 600 ↓ 1800
0 480 ↓ 0 0
330 ↓
0
Analita economico-matematică a unor modele liniare

Metoda diferenţelor maximale - Procedeul propus de Vogel dă


prioritate rutelor cu cel mai scăzut cost de transport şi cu cea mai mare
“penalizare”. Cum sunt definite aceste penalizări? Se ordonează costurile
liniei i (coloanei j) în ordine strict crescătoare; penalizarea ataşată celei mai
ieftine rute din linia i (coloana j) este modulul diferenţei primilor doi
termeni ai şirului.

C1 C2 C3 C4 α (1)
D
D1 5 8 12 6 6-5=1
450
D2 10 7 11 4
3
600 820
D3 8 9 9 10 1
530
300 700 200 600 1800
N
β (1) 3 1 2 2

• Coloana α (1) este coloana penalizărilor asociate costurilor minime pe linii,


iar linia β (1) reprezintă penalizările asociate costurilor minime din
coloane. Se va alege maximul acestor penalizări.
• Se alege ruta de cost minim cu penalizare maximă, şi anume, ruta (2,4);
atribuim variabilei x 24 valoarea maximă 600; dacă disponibilul a fost
consumat, se elimină linia respectivă, sau, dacă cererea a fost onorată , se
elimină coloana corespunzătoare rutei în discuţie.
Se reface raţionamentul pe submatricea rămasă cu necesarul sau
disponibilul actualizat.
Problema de transport

În cazul problemei considerate, se elimină coloana 4 şi se obţine:

C1 C2 C3 α ( 2)
D
D1 5 8 12 3
300 450
D2 10 7 11 3
220
D3 8 9 9 1
530
300 700 200
N
β ( 2) 3 1 2

x11 = 300 ; se elimină coloana 1:

C2 C3 α ( 3)
D
D1 8 12 4
150
D2 7 11
4
220 220
D3 9 9 0
530
700 200
N
β ( 3) 1 2

Se observă că aici avem două diferenţe maxime egale cu 4; deoarece


c12 = 8 > c 21 = 7 , alegem x 21 = 220 şi eliminăm linia 2. Rezultă

C2 C3 α ( 3)
D
D1 8 12
150 4
150
D3 9 9 530 0
480 200
N

β ( 3) 1 3
Analita economico-matematică a unor modele liniare

după care se face atribuirea automată

C2 C3
D
D3 9 9 530
330 200
330 200
N

Soluţia iniţială a problemei de transport prezentate va fi:

X3 C1 C2 C3 C4
D
D1 300 150 450
D2 220 600 820
D3 330 200 530
300 700 200 600
N

Etapa 2: Stabilirea soluţiei optime finite.


Pasul 1 Testarea optimalităţii.
Se va testa optimalitatea soluţiei X 1 :
Operaţia 1: Se asociază variabilei bazice xij ecuaţia u i + v j = cij şi se află
astfel o soluţie particulară a sistemului construit în acest mod.
x11 → u1 + v1 = 5
x12 → u1 + v 2 = 8
x 22 → u 2 + v 2 = 7
x 23 → u 2 + v3 = 11
x 24 → u 2 + v 4 = 4
x34 → u 3 + v 4 = 10
Problema de transport

Variabilei care apare de cele mai multe ori în sistem i se atribuie


valoarea 0:
⎧v 2 = 7 ⇒ u1 = 1 ⇒ v1 = 4

u 2 = 0 ⇒ ⎨ v3 = 11 .
⎪v = 4 ⇒ u = 6
⎩ 4 3

Soluţia acestui sistem este: u1 = 1 , u 2 = 0 , u 3 = 6 , v1 = 4 , v 2 = 7 ,


v3 = 11 şi v 4 = 4 .
Operaţia 2: Se asociază variabilei nebazice x kl diferenţa
∆ kl = c kl − (u k + vl ) :
x13 → ∆ 13 = 12 − (1 + 11) = 0
x14 → ∆ 14 = 6 − (1 + 4) > 0
x 21 → ∆ 21 = 10 − (0 + 4) > 0
x31 → ∆ 31 = 8 − (6 + 4) = −2
x32 → ∆ 32 = 9 − (6 + 7) = −4
x33 → ∆ 33 = 9 − (6 + 11) = −8
Conform teoremei 1 (din paragraful 1 al acestui capitol), soluţia
testată este optimă dacă ∆ ij ≥ 0 , ∀i ∈ 1, m , j ∈ 1, n . În cazul acesta soluţia
nu este optimă din punctul de vedere cerut. O funcţie secundară a testului de
optimalitate este aceea de a indica ruta rentabilă neutilizată în soluţia testată:
min (∆ kl ) = −8 = ∆ 33
∆ kl < 0

Variabila x33 va deveni bazică şi valoarea sa va fi notată θ ≥ 0 .


Ce variabilă se elimină? Răspunsul va fi dat la pasul 2.
Analita economico-matematică a unor modele liniare

Pasul 2 Îmbunătăţirea soluţiei testate.


Plecăm de la soluţia din tabelul de mai jos:

C1 C2 C3 C4
D
D1 5 8 12 6 450
300 150
D2 10 7 11 4 820
550 200 70
D3 8 9 9 10 530
θ 530
300 700 200 600 1800
N

• Se va identifica un circuit de la ruta (3,3) spre rute folosite de X 1 şi înapoi


la ea însăşi.
Se vor marca vârfurile alternativ +, -, începând cu ruta (3,3) marcată cu
“+”.
Se constată că, în acest caz, transferul maxim ce poate fi realizat este
θ = min (200, 530) , deoarece orice alt transfer nu ar respecta condiţia
marcaj −

xij ≥ 0 , ∀i, j .

200- θ 70+ θ

θ 530- θ

Soluţia îmbunătăţită X 1' :

C1 C2 C3 C4
D1 5 8 12 6
300 150
D2 10 7 11 4
550 270
D3 8 9 9 10
200 330
Problema de transport

este nedegenerată. Variabila x 23 a fost eliminată din bază. Se observă


imediat că f ( X 1 ) = 14330 ≥ f ( X 1' ) = 12730 . Costul transferului unei unităţi
de marfă pe ciclul identificat va fi:
− c 21 ⋅ 1 + c32 ⋅ 1 − c34 ⋅ 1 + c 24 ⋅ 1 = −10 + 9 − 10 + 4 = −8 , deci costul
transferului a θ = 200 unităţi va fi − 8 ⋅ 200 = 1600 = f ( X 1 ) − f ( X 1' ) .
Orice ciclu care se construieşte în alte căsuţe ale variabilelor
nebazice conduce la un transfer cu cost mai mare. Să exemplificăm acest
lucru pentru x14 :

5 8 12 6
300 150- θ θ
10 7 11 4
550+ θ 200 70- θ
8 9 9 6
530

Costul pentru o unitate de marfă transferată este 6-8+7-4=1 u.m.


Sistematizarea calculelor implicate de parcurgerea completă a etapei 2:

cij v1 v2 v3 v4 ∆ ij = c ij − c ij
=4 =7 = 11 =4

u1 = 1 5 8 12 5 Ø Ø 0 1
u2 = 0 4 7 11 4 6 Ø Ø Ø

u3 = 6 10 13 17 10 -2 -4 -8 Ø

• Celulă haşurată: pentru rute folosite în X 1 .


• Elementele din celulele haşurate sunt termenii liberi de la operaţia 1.
• Elementele din celulele nehaşurate le regăsim la operaţia 2, dacă se
efectuează adunările din paranteze.
Analita economico-matematică a unor modele liniare

• Pentru x kl nebazică, diferenţa este cea calculată la operaţia 2: ∆ ij ≥ 0, ∀i, j


? NU ⇒ se alege min(∆ ij ) = ∆ 33 ⇒ x33 va intra în noua bază.

X 1'
300 150 300 150
550 200- θ 70+ θ 550 270
+θ 530- θ 200 330

θ = min(200, 530) = 200 ⇒ se elimină din bază x 23 ⇒ noua soluţie


Se testează optimalitatea lui X 1' :

cij v1 v2 v3 v4
=5 =8 =4 =5 ∆ ij = c ij − c ij

u1 = 0 5 8 4 5 Ø Ø 8 1
300 150

u 2 = −1 4 7 3 4 6 Ø 8 Ø 550- θ
270+ θ
u3 = 5 10 13 9 10 -2 -4 Ø Ø
+θ 200 330- θ

θ = min(550, 330) =
∆ ij ≥ 0, ∀i, j ? NU ⇒ = 330 ⇒
⇒ se alege min(∆ ij ) = ∆ 32 ⇒ C.I.B C.E.B se elimină din bază x34 .
Noua soluţie va fi:
⇒ x32 = θ va intra în noua bază

X 1''
300 150
220 600
330 200
Problema de transport

''
Testăm acum optimalitatea soluţiei X 1 :

v4 = −3
c ij v1 = −3 v2 = 0 v3 = 0 ∆ ij = c ij − c ij

u1 = 8 5 8 8 5 Ø Ø 4 1

u2 = 7 4 7 7 4 6 Ø 4 Ø

u3 = 9 6 9 9 6 2 Ø Ø 4

∆ ij ≥ 0, ∀i, j şi ∆ kl > 0, ∀(k , l ) pentru care x kl este nebazică. Rezultă deci

că X 1'' este soluţie optimă unic determinată:

C1
300×5

D1
150×8

C2 min f = 11410
220×7
D2
600×4
C3
330×9
200×9
D3
C4
Analita economico-matematică a unor modele liniare

Vom trece acum la reoptimizarea acestei probleme, prin mărirea cu o


unitate a termenilor liberi a1 şi b1 . Considerăm ca soluţie de start, soluţia
optimă obţinută pentru problema iniţială:

X1 C1 C2 C3 C4 Disponibil

D1 5 8 12 6
301 150 451
D2 10 7 11 4
220 600 820
D3 8 9 9 10
480 50 530
Necesar 301 700 200 600 1800

Se testează optimalitatea acestei soluţii:

vj 5 12 12 9 ∆ ij = c ij − c ij
ui cij
0 5 12 12 9 Ø -4 Ø -3 301 +θ 150- θ
-5 0 7 7 4 10 Ø 4 Ø 220 600
-3 2 9 9 6 6 Ø Ø 4 480- θ 50+ θ

min(−4,−3) = −4 = ∆ 12 θ = 150

Rezultă

X2 vj 5 8 8 5 ∆ ij = cij − c ij
ui cij
301 150 0 5 8 8 5 Ø Ø 4 1
220 600 -1 4 7 7 4 6 Ø 4 Ø
330 200 1 6 9 9 6 2 Ø Ø 4

∆ ij ≥ 0 , ∀i = 1,3 , j = 1,4
⇒ STOP
Problema de transport

Costul total este de 11415, soluţia optimă fiind prezentată grafic mai jos.

Cantitate Depozite Rute folosite şi costurile Centre Marfă


transportată de transport consumatoare primită
corespunzătoare

451
301× 5
D1 C1 301
150 × 8
700
820
220 × 7 C2
D2

600 × 4
200
530
330 × 9 C3
D3
200 × 9
600
C4

Reoptimizarea s-a realizat prin modificarea a doi termeni liberi din


modelul matematic, şi anume:
a1 := a1 + 1 = 451 pentru prima restricţie,
b1 := b1 + 1 = 31 pentru a (m + 1 = 4 ) patra restricţie.
Din teoria programării liniare, rezultă că [min] f = 11410 trebuie să se
( )
modifice cu u1* + v 4* unităţi.
Într-adevăr, 11410 + (u *
1 + v 4* ) = 11410 + (0 + 5) = 11415 , costul total minim
pentru modelul postoptimizat.
Analita economico-matematică a unor modele liniare

3. Probleme reductibile la problema de transport echilibrată

3.1 Probleme de transport cu rută blocată. Soluţii admisibile


degenerate.

3.1.1 Se va considera o problemă de transport echilibrată, definită


⎛ 3 4 6 5⎞
⎜ ⎟
complet de matricea costurilor unitare C = ⎜ 6 4 4 5 ⎟ , vectorul cantităţilor
⎜ 8 5 9 9⎟
⎝ ⎠
⎛ 200 ⎞
⎜ ⎟
disponibile a = ⎜ 200 ⎟ , vectorul cantităţilor solicitate b = (100 100 200 250)
⎜ 250 ⎟
⎝ ⎠
⎛ x11 x12 x13 x14 ⎞
⎜ ⎟
şi matricea variabilelor ⎜ x21 x22 x23 x24 ⎟ .
⎜x x32 x33 x34 ⎟⎠
⎝ 31

⎛ (1,1) (1,2) (1,3) (1,4) ⎞


⎜ ⎟
Matricea rutelor disponibile dată de ⎜ (2,1) (2,2) (2,3) (2,4) ⎟
⎜ ⊗ (3,2) (3,3) (3,4) ⎟
⎝ ⎠
evidenţiază faptul că ruta (3,1) nu poate fi folosită în perioada pentru care se
caută soluţia optimă.

În acest caz, se spune că problema are o rută blocată. Pentru a o


transforma într-o problemă de transport echilibrată este suficient ca, în
matricea C, elementul c31 = 8 u.m. să fie înlocuit cu un cost mare. Prin
această modificare ruta blocată (3,1) nu va fi utilizată în programul optimal.
Vom considera, de exemplu, c31 = 20 sau orice valoare mai mare care,
totuşi, să nu mărească volumul de calcul necesar aflării soluţiei optime.
Problema de transport

Astfel, avem de rezolvat problema de transport cu datele de intrare


cuprinse în tabelul următor:

C1 C2 C3 C4 D

D1 3 4 6 5 200

D2 6 4 4 5 200

D3 20 5 9 9 250

N 100 100 200 250 650

Vom trece la rezolvarea acestei probleme.


Etapa 1: Determinarea unei soluţii iniţiale. Se va aplica metoda elementului
minim pe linie.

C1 C2 C3 C4 D

D1 3 4 6 5
100 100 200
D2 6 4 4 5
200 200
D3 20 5 9 9
250 250
N 100 100 200 250 650

O1 : min (c1 j ) = 3 = c11 ; min (cij ) = 4 = c12 ;


j j ≠1

O2 : min (c 2 j ) = 4 = c 23 ;
j∉{1, 2}

O3 : (3,4) este unica rută disponibilă.

⎡100 100 0 0 ⎤

Soluţia iniţială ⎢ 0 0 200 0 ⎥⎥ utilizează 4 rute; altfel spus,
⎢⎣ 0 0 0 250⎥⎦
prin aplicarea metodei s-au găsit numai 4 variabile bazice cu valori strict
pozitive. Se spune că s-a obţinut o soluţie degenerată.
Analita economico-matematică a unor modele liniare

Ca şi în cazul programelor liniare studiate în capitolele anterioare, şi


modelul problemei de transport poate admite soluţii degenerate, ceea ce
înseamnă că printre variantele de aprovizionare care utilizează cel mult
(m + n − 1) rute există cel puţin unul care are cel mult (m + n − 2) rute
folosite. Condiţia necesară a existenţei unei astfel de variante este :
V.3.1 ∃M 1 ⊂ M şi ∃N 1 ⊂ N astfel încât ∑a
i∈M 1
i = ∑b
j∈N1
j .

Pentru problema de mai sus, se poate identifica uşor M 1 = {1} şi N 1 = {1,2} :


a1 = b1 + b2 .
Procedura de testare a optimalităţii functionează doar pentru soluţii
admisibile de bază, deci cu (m+n-1)=rangA=3+4-1 variabile bazice cu
valori pozitive. Din cele ( 3 ⋅ 4 − 4 ) variabile cu valori egale cu zero trebuie
să alegem [(m+n-1)-4]=2=k variabile bazice cărora le vom atribui valori
egale cu 0. Alegerea nu este unică, dar nici indiferentă. Pentru a decide care
din variabilele x13 , x14 , x 21 , x 22 , x 24 , x31 , x32 şi x33 vor deveni bazice şi
pentru a evita ciclajul, se trece la problema de transport perturbată, care
conservă relaţia de echilibru, dar face imposibilă verificarea relaţiei V.3.1.
Astfel, considerăm
a i (ε ) = a i + ε , i ∈1, m
⎧ b , j ∈1,n-1
b j (ε ) = ⎨ j
⎩bn + mε , j = n
unde ε este un număr pozitiv foarte mic, ce va fi anulat după stabilirea
soluţiei optime a problemei perturbate.
Printr-o astfel de modificare a unor date iniţiale se identifică mai
uşor variabilele bazice cu valoare zero, în opoziţie cu cele nebazice, despre
care ştim, de asemenea, că sunt egale cu zero.
Unii autori propun şi alte variante de perturbare a problemei, cum ar fi:
• Se măreşte un disponibil, de exemplu a1 , cu kε unităţi: a1 → a1 + 2ε .
Problema de transport

• Pentru ca problema să rămână echilibrată, trebuie mărit şi un necesar cu tot


atâtea unităţi. Se va alege b j astfel încât j ≠ 1 (indicele disponibilului
mărit). În acest caz, alegem b3 = 200 + ε şi b4 = 250 + ε ( sau doar
b4 = 250 + 2ε ).
• În problema perturbată se aplică aceeaşi metodă de găsire a soluţiei
admisibile de bază, şi anume, metoda elementului minim pe linie:

X1 C1 C2 C3 C4 D

D1 3 4 6 5
100 100 ε ε 200 + 2ε
D2 6 4 4 5
200 200
D3 20 5 9 9
250 250
N 100 100 200 + ε 250 + ε 650 + 2ε

Etapa 2: Se stabileşte soluţia optimă pentru problema perturbată.

X1 vj 3 4 6 5 ∆ ij = cij − cij

u i cij
100 100- θ ε +θ
3 4 6 5 0 3 4 6 5 Ø Ø Ø Ø
100 100 ε ε ε
6 4 4 5 -2 1 2 4 3 5 2 Ø 2
200
200
20 5 9 9 4 7 8 10 9 13 -3 -1 Ø +θ 250- θ
250

min(100,250)=100
min ∆ ij = ∆ 32 = −3
∆ ij < 0 ⇒ x12 eliminat din bază
⇒ x32 intră în noua bază
Analita economico-matematică a unor modele liniare

Continuăm algoritmul şi obţinem:

X2 vj 3 1 6 5 ∆ ij = cij − cij

u i cij
3 4 6 5 0 3 1 6 5 Ø 3 Ø Ø 100+ ε + θ
ε 100 ε -θ
100 100+ ε
6 4 4 5 -2 1 -1 4 3 5 5 Ø 2
200
200
20 5 9 9 4 7 5 10 9 13 Ø -1 Ø θ
100 150- θ
100 150

min ∆ ij = ∆ 33 = −1 min( ε ,150)= ε


∆ ij < 0

⇒ x 33 intră în noua bază ⇒ x13 eliminat din bază

În final, găsim:

X3 vj 7 5 9 9 ∆ ij = cij − c ij Soluţia optimă

u i cij
3 4 6 5 -4 3 1 5 5 Ø 3 1 Ø 100+2
100 100+2 ε
100
ε
6 4 4 5 -5 2 0 4 4 4 4 Ø 1
200
200
20 5 9 9 0 7 5 9 9 13 Ø Ø Ø
100 ε 150- ε
100 ε 150- ε

∆ ij ≥ 0 ∀i, j
⇒ Soluţie optimă unică.
şi ∆ kp > 0 ∀x kp
nebazică
Problema de transport

Aşadar, problema perturbată admite soluţia optimă unic determinată:

⎡100 0 0 100 + 2ε ⎤

Xε = ⎢ 0
*
0 200 0 ⎥⎥
⎢⎣ 0 100 ε 150 − ε ⎥⎦

După anularea lui ε se obţine soluţia optimă a problemei iniţiale:


⎡100 0 0 100⎤

X =⎢ 0
*
0 200 0 ⎥⎥ ,
⎢⎣ 0 100 0 150⎥⎦
care utilizează (m+n-2) rute, ceea ce, din puct de vedere practic s-ar putea să
fie un avantaj.

C1
100 × 3

D1 Se observă că ruta (3,1), blocată, nu


este folosită în programul optim cu
100 × 5 costul total de
C2 300+500+800+500+1350=3450 u.m.
Deşi soluţia iniţială este dublu
degenerată, în final, soluţia optimă
este simplu degenerată.
D2 200 × 4

C3
100 × 5

D3 150 × 9

C4
Analita economico-matematică a unor modele liniare

Observaţie:

coeficientul numărul rutelor


lui ε pentru (m+n-1) × folosite în soluţia = 6-4 = 2
=
degenerată
un a i ales

3.2 Probleme de transport neechilibrate; probleme de transport


cu priorităţi.

Practica oferă numeroase situaţii în care trebuie rezolvată o


problemă de alocare a unor resurse, fără a fi satisfăcută condiţia de
echilibru, sau în care sunt impuse restricţii privind programul de alocare. În
acest paragraf, vor fi studiate patru modele particulare reductibile la
problema standard, probleme ce vor fi prezentate schematic după cum
urmează:
Cum se manifestă dezechilibrul Cum se face echilibrarea Cum se poate exprima o servire cu prioritate
m n
3.2.1. Prin introducerea unui centru
i) ∑ ai > ∑ b j , adică,
3.2.2. Se poate cere stabilirea unui
consumator fictiv program optim de aprovizionare care să
i =1 j =1 epuizeze cu prioritate stocul depozitului
C n +1
oferta>cererea Di , i ∈ {1,.., m} .
0
D … D
C1 C2
0
C1 C2 C3
5 4 700
D1
∑a − ∑b
i j
D1 5 4 0
700
D2 9 3 300 Soluţia iniţială pentru problema echilibrată, 9 3 0
D2 300
D3 2 4 500 găsită prin metoda N-V:
D3 2 4 20
N 1500 500
C1 C2 C3 D N 600 700 200 1500
600 700 1300

5 4 0 Ruta (3,3) se transformă în rută


D1 nerentabilă (cost mare) dacă se cere
600 100 700
D2 9 3 0 lichidarea stocului a 3 .
300 300
D3 2 4 0
300 200 500
N 600 700 200 1500
Interpretarea economică a valorilor din
coloana fictivă:
Cât nu expediază D3 din
x32 = 200 cantitatea a3 = 500
D3 C3
m n 3.2.3. Prin introducerea unei surse de 3.2.4. În acest caz se poate face servirea
ii) ∑ a < ∑b
i =1
i
j =1
j , adică, aprovizionare fictive:
cu prioritate a unui centru Cj în
oferta<cererea Dm +1 0…0
∑b − ∑a
j i
sensul de a i se asigura primirea
cantităţii cerute.
D C1 C2 C3 D
C1 C2 C3 Soluţia iniţială pentru problema echilibrată
3 2 4 320 (metoda N-V): D1 3 2 4
D1 320
N-V C C C D 2 4 1
D2 2 4 1 300 1 2 3 D2 300
D1 3 2 4 0 10 0
N 520 180 200 D3
320 320 280
D2 2 4 1 N 520 180 200 900
200 100 300
D3 0 0 0 Să presupunem că se cer servirea cu
80 200 280 prioritate a centrului C 2 . Dacă recitim
N 520 180 200 900
Interpretarea economică a valorilor din linia interpretarea dată lui x 32 = 80 > 0 ,
fictivă: vom înţelege că, în solutia optimă
Cât nu primeşte această variabilă trebuie să fie egală cu
C 2 din 0, ceea ce este echivalent cu a bloca
D3 x32 = 80 C2 ruta (3,2).
cantitatea cerută
Trecem acum la rezolvarea succintă a problemelor date ca exemplu.
Problema 3.2.1. Etapa 1:
După introducerea consumatorului fictiv C 3 , soluţia admisibilă de
bază iniţială a fost găsită folosindu-se metoda colţului de N-V

X1 C1 C2 C3 D

D1 5 4 0
600 100 700
D2 9 3 0
300 300
D3 2 4 0
300 200 500
N 600 700 200 1500

Etapa 2: Testarea optimalităţii. Iteraţia 1:

X1 vj 1 0 -4 ∆ ij = cij − cij

u i cij
5 4 0 4 5 4 0 Ø Ø 0 600- θ 100+ θ
600 100
9 3 0 3 4 3 -1 5 Ø 1
300
300
2 4 0 4 5 4 0 -3 Ø Ø +θ 300- θ 200
300 200

min ∆ ij = ∆ 31 = −3 min(600,300)=300
∆ ij < 0

⇒ x 31 intră în noua bază ⇒ x 32 eliminat din bază


Iteraţia 2:
X2 vj 5 4 3 ∆ ij = cij − c ij
u i cij
5 4 0 0 5 4 3 Ø Ø -3
300 400 300- θ 400 +θ
9 3 0 -1 4 3 2 5 Ø 2
300
300
2 4 0 -3 2 1 0 Ø 3 Ø
300 200 300+ θ 200- θ

min ∆ ij = ∆ 13 = −3 min(300,200)=200
∆ ij < 0
⇒ x 33 eliminat din bază
⇒ x13 intră în noua bază
Analita economico-matematică a unor modele liniare

Iteraţia 3:
X3 vj 5 4 0 ∆ ij = c ij − c ij
Soluţia optimă
ui cij
5 4 0 0 5 4 0 Ø Ø Ø
100 400 200
100 400 200
9 3 0 -1 4 3 -1 5 Ø 1
300
300
2 4 0 -3 2 1 -3 Ø 3 3
500
500

∆ ij ≥ 0 , ∀i, j şi Soluţie optimă unic


⇒ determinată.
∆ kp > 0 , ∀x kp nebazică

Comentariu: Cele 200 unităţi de marfă repartizarte consumatorului fictiv


C 3 au următoarea semnificaţie: în depozitul D1 mai rămân 200 unităţi de
marfă nefolosite (în stoc). Depozitele D2 şi D3 îşi epuizează stocul.
Evident, cererile consumatorilor C1 şi C 2 sunt satisfăcute.
Schema soluţiei optime

x11 = 100
*

D1 C1 : x11* + x31
*
= 600 unităţi
x12 = 400
*
de marfă primită.
x13 = 200
*

x 22 = 300
*

D2 C 2 : x12* + x22
*
= 700 unităţi
de marfă primită.
x 31 = 500
*

C3 fictiv : x13* = 200 stoc în D1 .


D3
[min] f = 4000 u.m
Problema de transport

Problema 3.2.2.
Etapa 1: Epuizarea cu prioritate a stocului din D3 se face prin
blocarea rutei (3,3). După introducerea consumatorului fictiv C 3 şi blocarea
rutei (3,3) - prin repartizarea unui cost mare ( c 33 = 20 ) pe această
rută - soluţia admisibilă de bază iniţială a fost găsită folosindu-se metoda
elementului minim pe coloană:

X1 C1 C2 C3 D

D1 5 4 0
100 400 200 700
D2 9 3 0
300 300
D3 2 4 20
500 500
N 600 700 200 1500

Se observă că este o soluţie care utilizează m+n-1=5 rute.

Etapa 2: Testarea optimalităţii.

X1 vj 5 4 0 ∆ ij = cij − c ij
Soluţia optimă
ui cij
5 4 0 0 5 4 0 Ø Ø Ø
100 400 200
100 400 200
9 3 0 -1 4 3 -1 5 Ø 1
300
300
2 4 0 -3 2 1 -3 Ø 3 3
500
500

∆ ij ≥ 0 , ∀i, j
Soluţie optimă
∆ kp > 0 , ∀xkp nebazică ⇒ unic determinată.
Analita economico-matematică a unor modele liniare

S-a obţinut planul optim de aprovizionare al problemei precedente,


plan care verifică şi restricţiile impuse în cadrul acestui exemplu.

Problema 3.2.3
Etapa 1: După introducerea sursei fictive D3 , soluţia admisibilă de
bază iniţială a fost găsită aplicând metoda colţului de nord-vest.

X1 C1 C2 C3 D

D1 3 2 4
320 320
D2 2 4 1
200 100 300
D3 0 0 0
80 200 280
N 520 180 200 900

Etapa 2: Testarea optimalităţii.

X1 vj 2 4 4 ∆ ij = cij − c ij
ui cij
3 2 4 -1 3 3 3 Ø -1 1
320
320
2 4 1 0 2 4 4 Ø Ø -3
200 100- θ +θ
200 100
2 0 0 -4 -2 0 0 2 Ø Ø 80+ θ
80 200 200- θ

min(100,200)=100
min ∆ ij = ∆ 23 = −3 ⇒ x 22 eliminat din bază
∆ ij < 0

⇒ x 23 intră în noua bază


Problema de transport

X2 vj 2 1 1 ∆ ij = cij − c ij
ui cij
3 2 4 0 3 2 2 Ø 0 2
320
320
2 4 1 0 2 1 1 Ø 3 Ø 200- θ 100+ θ
200 100
0 0 0 -1 1 0 0 -1 Ø Ø +θ 180 100- θ
180 100

min(200,100)=100
min ∆ ij = ∆ 31 = −1
∆ ij < 0 ⇒ x 33 eliminat din bază
⇒ x 31 intră în noua bază

X3 vj 0 0 -1 ∆ ij = c ij − cij
ui cij
3 2 4 3 3 3 2 Ø -1 2 320- θ +θ
320
2 4 1 2 2 2 1 Ø 2 Ø
100 200
100 200
0 0 0 0 0 0 -1 Ø Ø 1 100+ θ 180- θ
100 180

min(320,180)=180
⇒ x 32 eliminat din bază
min ∆ ij = ∆ 12 = −1
∆ ij < 0

⇒ x12 intră în noua


Analita economico-matematică a unor modele liniare

X4 vj 0 -1 -1 ∆ ij = cij − c ij
Soluţia optimă
ui cij
3 2 4 3 3 2 2 Ø Ø 2
140 180
140 180
2 4 1 2 2 1 1 Ø 3 Ø
100 200
100 200
0 0 0 0 0 -1 -1 Ø 1 1
280
280

∆ ij ≥ 0 , ∀i, j Soluţie optimă unic



∆ kp > 0 , ∀xkp nebazică determinată.

Schema soluţiei optime

x11 = 140
*

D1 C1 : x11* + x 21* = 240 unităţi


x12 = 180
*

de marfă primită.
x 31 = 280 deficit
*
x 21 = 100
*

D2 x 23 = 200
*
C 2 : x12* = 180 unităţi de marfă primită.

x 31 = 280
*

D3
C3 : x 23* = 200 unităţi
ficti
v de marfă primită.
[min] f = 1180 u.m.
Problema de transport

Problema 3.2.4.
Etapa 1: Sevirea cu prioritate a centrului C 2 este echivalentă, aşa
cum am mai spus, cu blocarea rutei (3,2). După introducerea depozitului
fictiv D3 şi blocarea rutei (3,2) - prin repartizarea unui cost mare ( c 32 = 10 )
pe această rută - soluţia admisibilă de bază iniţială a fost găsită folosindu-se
metoda elementului minim pe linie:

X1 C1 C2 C3 D

D1 3 2 4
140 180 320
D2 2 4 1
100 200 300
D3 0 10 0
280 280
N 520 180 200 900

Etapa 2: Testarea optimalităţii:

X1 vj 0 -1 -1 ∆ ij = cij − c ij
Soluţia optimă
ui cij
3 2 4 3 3 2 2 Ø Ø 2
140 180
140 180
2 4 1 2 2 1 1 Ø 3 Ø
100 200
100 200
0 10 0 0 0 -1 -1 Ø 11 1
280
280

Soluţie optimă unic


∆ ij ≥ 0 , ∀i, j
⇒ determinată. Ea
∆ kp > 0 , ∀xkp nebazică coincide cu soluţia
optimă a problemei
3.2.3.
În continuare, vom prezenta o problemă în care decizia de eliminare
din bază este mai dificilă decât în cazul problemelor rezolvate anterior.
Analita economico-matematică a unor modele liniare

Problema 3.2.5. Considerăm problema de transport cu datele iniţiale


prezentate în următorul tabel:

C1 C2 C3 C4 D

D1 9 10 9 16
100
D2 12 9 16 8
120
D3 15 8 13 11
150
N 80 90 100 80

Este uşor de observat că problema este neechilibrată. Într-adevăr,


3 4

∑ ai = 370 ≠ ∑ b j . În aceste condiţii, se impune introducerea unui


i =1 j =1

consumator fictiv, C 5 . În coloana acestuia, ci 5 = 0 , i = 1,3 , deoarece nu s-au


impus serviri cu prioritate.

Rezolvarea problemei echilibrate:

Etapa 1: Soluţia admisibilă de bază iniţială a fost stabilită prin metoda lui
Vogel:
X1 C1 C2 C3 C4 C5 D
α (1) α ( 2 ) α (3) α ( 4 ) α (5)
D1 9 10 9 16 0 9* 0
80 20100
D2 12 9 16 8 0 8 1 1 4* 4*
40 80 120
D3 15 8 13 11 0 8 3 3* 2 2
40 90 20 150
N 80 90 100 80 20 370
β (1) 3 1 4* 3 0

β ( 2) 3 1 4* 3

β ( 3) 3 1 3 3

β ( 4) 3 3 3

β ( 5) 3 3
Problema de transport

Etapa 2: Stabilirea soluţiei optime.


Pasul 1 Testarea optimalităţii soluţiei obţinute la etapa 1.
X1

80 20

40 80

TESTARE
40 90 20

vj 15 8 13 11 4 ∆ ij = c ij − c ij
u i cij
-4 11 4 9 7 0 -2 6 Ø 9 Ø
-3 12 5 10 8 1 Ø 4 6 Ø -1
0 15 8 13 11 4 Ø Ø Ø 0 -4

min ∆ ij = ∆ 35 = −4
∆ ij < 0

⇒ x 35 intră în noua bază

Observaţie: Conform teoriei, trecerea la o soluţie admisibilă de bază mai


bună se face prin trecerea la o nouă bază care provine din baza soluţiei
testate, prin înlocuirea unui singur vector. În acest caz, problema este aceea
de a stabili care variabilă trebuie eliminată: x15 sau x 33 . Scopul declarat
este acela de a stabili un program de transport care să corespundă unui cost
total minim, deci se va elimina variabila corespunzătoare rutei cu cost
maxim:
x15 → c15 = 0 ⇒ x15 = 0 este variabilă bazică şi în noua soluţie;
x 33 → c 33 = 13 ⇒ x 33 = 0 este variabilă nebazică în noua soluţie.
Analita economico-matematică a unor modele liniare

Ca urmare a acestei decizii, se obţine:

80+ θ
20- θ θ = min( x15 , x33 ) = min (20,20) =
= 20 = x33 ,
40 80 deoarece c33 = max (c15 , c33 ) .

20- θ
40 90 +θ

Iteraţia 2: Noua soluţie admisibilă de bază este dată în tabelul următor:

100 0

40 80

TESTARE
40 90 20

vj 15 8 9 11 0 ∆ ij = c ij − c ij
u i cij
0 15 8 9 11 0 -6 2 Ø 5 Ø
-3 12 5 6 8 -3 Ø 4 10 Ø 3
0 15 8 9 11 0 Ø Ø 4 0 Ø
min ∆ ij = ∆ 11 = −6
∆ ij < 0

⇒ x11 intră în noua bază


Problema de transport

θ
100 0- θ θ =min(0,40)=0.
⇒ x15 eliminat

40 80 din bază.

40- θ 90 20+ θ

Iteraţia 3: Continuăm cu testarea soluţiei îmbunătăţite:

0 100

40 80

40 90 20

vj 15 8 15 11 0 ∆ ij = cij − c ij
u i cij
-6 9 2 9 5 -6 Ø 8 Ø 11 6
-3 12 5 12 8 -3 Ø 4 4 Ø 3
0 15 8 15 11 0 Ø Ø -2 0 Ø

min ∆ ij = ∆ 33 = −2
∆ ij < 0

⇒ x 33 intră în noua
Analita economico-matematică a unor modele liniare

0+ θ
100- θ θ =min(100,40)=40.
⇒ x 31 eliminat din bază.
40 80

40- θ 90 +θ 20

Iteraţia 4:

40 60

40 80
TESTARE
90 40 20

vj 13 8 13 9 0 ∆ ij = c ij − c ij
u i cij
-4 9 4 9 5 -4 Ø 6 Ø 11 4
-1 12 7 12 8 -1 Ø 2 4 Ø 1
0 13 8 13 9 0 2 Ø Ø 2 Ø

∆ ij ≥ 0 , ∀i, j
⇒ soluţia găsită este optimă.
Problema de transport

Schema soluţiei optime:

C1
x11 = 40
*

D1
x13 = 60
*

C2

x 21 = 40
*

D2 x 24 = 80
*
C3

x 32 = 90
* Costul total este
de 3260u.m.
x 33 = 40
*
C4
D3

x 35 = 20 ,
*

adică exact cantitatea C 5 fictiv


care rămâne în stoc, în D3

Propunem spre rezolvare următoarea problemă, care exemplifică


faptul că prin metode diferite se găsesc soluţii admisibile de bază diferite,
unele dintre acestea putând conduce la soluţii degenerate, dar, în final, se
vor găsi planuri (sau, un plan, dacă soluţia este unică) de aprovizionare care
folosesc cel mult (m + n − 1) rute şi dau aceeaşi valoare funcţiei cost total.
Analita economico-matematică a unor modele liniare

Problema 3.2.6. Problema de transport ce va fi studiată are următoarea


prezentare matriceală:

C1 C2 C3 D

D1 3 2 1
30 190
220
D2 2 1
300
300
D3 1 3 5
180
180
D4 2 4 3
40 160
200
N 520 190 190 900

Se observă imediat că este verificată condiţia suficientă de apariţie a


unor soluţii degenerate
a1 + a 2 = b1 şi a3 + a4 = b2 + b3 .
Vom căuta acum soluţii admisibile de bază folosind două metode:

• Metoda elementului minim pe tabel


• Metoda lui Dantzig
C1 C2 C3 D C1 C2 C3 D
D1 3 2 1
220 → 30 → 0 D1 220 220
30 190
D2 2 4 1 D2 300 300
300
300 → 0
D3 180 180
D3 1 3 5
180 → 0
180 D4 10 190 200
D4 2 4 3
200 → 160 → 0 N 520 190 190 900
40 160
N 520 ↓ 190 ↓ 190 ↓ 900
0
340 ↓ 160 ↓
40 ↓ 0
0

Comparând cele două soluţii, se observă că a doua este simplu


degenerată, ea foloseşte cinci rute, ce corespund unui număr de (m + n − 2 )
Problema de transport

variabile bazice, din totalul de m ⋅ n = 12 rute posibile. Din cele ( 3 ⋅ 4 − 5 )


variabile nebazice, trebuie să alegem una căreia să-i atribuim valoarea zero
şi care să formeze împreună cu x11 , x21 , x32 , x42 , x43 , o soluţie admisibilă
de bază degenerată (amintim că la etapa 2 se lucrează numai cu soluţii
admisibile de bază, din spaţiul R m+ n −1 , degenerate sau nu).
Stabilirea noii variabile bazice se face prin perturbarea problemei de
transport:
• se măreşte disponibilul a1 = 220 (sau a 2 = 300 ) cu ε unităţi. Pentru ca
problema să rămână în continuare echilibrată trebuie mărit şi necesarul cu
tot atâtea unităţi. În general se adaugă cele ε unităţi unui necesar b j ,
unde j = {1,2,..., n} − N1 = {1,2,3} − {1} = {2,3} , de exemplu b2 + ε .
• se aplică metoda diagonalei (sau metoda colţului de N-V) problemei
perturbate:

C1 C2 C3 D

D1 220 ε 220+ ε
D2 300 300
D3 180 180
D4 10 190 200
N 520 190+ ε 190 900+ ε

• se stabileşte soluţia optimă.


Observaţia 1: Dacă o soluţie iniţială este degenerată, soluţia optimă poate fi
nedegenerată.
Analita economico-matematică a unor modele liniare

X1 cij v1 v2 v3 ∆ ij = cij − cij


=1 =0 = −1

3 2 1
ε
u1 = 2 3 2 1 Ø Ø 0 220- θ ε +θ
220
2 4 1 u2 = 1 2 1 0 Ø 3 1 300
300
1 3 5 u3 = 3 4 3 2 -3 Ø 3 +θ 180- θ
180
2 4 3 u4 = 4 -3
5 4 3 Ø Ø 10 190
10 190

min( −3, −3) = −3 ⎫ θ = min(220,180) = 180 ⇒


⎬⇒
min (c 31 , c 41 ) = c31 = 1⎭ x32 va fi eliminată din
bază.
⇒ x31 = θ intră în bază.

X2 cij v1 v2 v3 ∆ ij = cij − cij


=0 = −1 = −2
3 2 1 u1 = 3 40- θ 180+ ε + θ
3 2 1 Ø Ø 0
40 180+ ε
2 4 1 u2 = 2 2 1 0 Ø 3 1 300
300
1 3 5 u3 = 1 1 0 -1 Ø 3 6 180
180
2 4 3 u4 = 5 5 4 3 -3 Ø Ø +θ 10- θ 190
10 190

min(10,40)=10
min ∆ ij = −3 = ∆ 41 ⇒ x 42 eliminată
∆ ij < 0
din bază.
⇒ x 41 intră în bază.
Problema de transport

X3 cij v1 v2 v3 ∆ ij = cij − cij


=0 = −1 = −1
3 2 1 30- θ 190+ ε
u1 = 3 3 2 2 Ø Ø -1 +θ
30 190+ ε
2 4 1 u2 = 2 2 1 1 Ø 3 0 300
300
1 3 5 u3 = 1 1 0 0 Ø 3 5 180
180
2 4 3 u4 = 2 2 1 3 Ø 3 Ø 10+ θ 190- θ
10 190

min(30,190)=30
min ∆ ij = −1 = ∆ 13 ⇒ x11 eliminată
∆ ij < 0
din bază.
⇒ x13 intră în bază.

X4 cij v1 v2 v3 ∆ ij = cij − cij


=0 =2 =1
3 2 1 u1 = 0 0 2 1 3 Ø Ø 190+ ε 30
190+ ε 30
2 4 1 u2 = 2
2 4 3 Ø 0 -2 300- θ
300 +θ
1 3 5 u3 = 1 1 3 2 Ø 0 3 180
180
2 4 3 u4 = 2
40 160 2 4 3 Ø 0 Ø 40+ θ 160- θ

min(300,160)=160
min ∆ ij = −2 = ∆ 23
∆ ij < 0 ⇒ x 43 eliminată din
⇒ x 23 intră în bază. bază.
Analita economico-matematică a unor modele liniare

X5 cij v1 v2 v3 ∆ ij = cij − cij


=0 =0 = −1
3 2 1 u1 = 2
190+ ε 30 0 2 1 1 Ø Ø

2 4 1 u2 = 2
140 160 2 4 3 Ø 2 Ø

1 3 5 u3 = 1
180 1 3 2 Ø 2 5

2 4 3 u4 = 2
200 2 4 3 Ø 2 2

∆ ij ≥ 0 , ∀i = 1,4 şi j = 1,3 ⇒ STOP.

Schema soluţiei optime (ε := 0) :

D1
C1
x12 = 190
*

x13 = 30
*

x 21 = 140
*

D2
C2
x 23 = 160
*

D3 C3
x 31 = 180
*

x 41 = 200
*

D4
Problema de transport

Soluţia optimă este unică şi nedegenerată şi corespunde unui cost


total minim egal cu 1630 u.m.

În cazul în care soluţia admisibilă de start este găsită cu metoda


elementului minim pe tabel, stabilim soluţia optimă în următoarele două
iteraţii:

X1 cij v1 v2 v3 ∆ ij = cij − cij


=0 =2 =1
3 2 1 u1 = 0
0 2 1 3 Ø Ø
30 190 30+ θ 190- θ
2 4 1 u2 = 2 2 4 3 Ø 0
-2 300- θ +θ
300
1 3 5 u3 = 1 1 3 3 Ø 0 3 180
180
2 4 3 u4 = 2 2 4 3 Ø Ø 0 40+ θ 160- θ
40 160

min(190,300,160)=160
⇒ x42 eliminată din
min ∆ ij = −2 = ∆ 23
∆ ij < 0 bază.
⇒ x 23 intră în bază.

X5 cij v1 v2 v3 ∆ ij = cij − cij


=0 =0 = −1
3 2 1 u1 = 2 2 2 1 1 Ø Ø
190 30
2 4 1 u2 = 2 2 2 1 Ø 2 Ø
140 160
1 3 5 u3 = 1 1 1 0 Ø 2 4
180
2 4 3 u4 = 2 2 2 1 Ø 2 2
200

∆ ij ≥ 0 , ∀i = 1,4 şi j = 1,3 ⇒ STOP. Evident, s-a obţinut aceeaşi soluţie


optimă.
Analita economico-matematică a unor modele liniare

4. Probleme de transport cu centre intermediare

În cadrul jocurilor de intreprindere din domeniul agriculturii,


participanţii la joc sunt puşi în faţa rezolvării unor probleme în care recolta
din diferite puncte de colectare trebuie expediată în silozuri, iar acestea,
conform unor programe, trebuie să satisfacă cererile unor consumatori, cum
ar fi morile sau fabricile de pâine. Se pune, astfel, problema găsirii unor
planuri de aprovizionare a unor centre consumatoare, după ce marfa a fost
stocată o anumită perioadă în puncte de păstrare, pe care le vom numi centre
intermediare. Acest proces de aprovizionare în două faze nu este specific
agriculturii, el apare în multe alte domenii ale activităţii economice sau
informatice.

Formularea problemei Cunoscând:

a i , producţia în sursa Pi (centrul de expediere a materiei prime, mărfii),


i ∈ M ; A = (a i )i∈M ;
d k , capacitatea depozitului Dk , numit centru intermediar (poate fi centru
de
prelucrare), k ∈ M 1 = {1,.., m1 } ; D = (d k )k∈M 1 ;

b j , cererea consumatorului C j , j ∈ N ; B = (b j ) j∈N ;

c ik , costul unitar pe ruta (Pi , Dk ) ;


p kj , costul unitar pe ruta (Dk , C j ),

să se stabilească planurile de transport de la producător la centru intermediar


şi de la centru intermediar la consumatori astfel încât cheltuielile totale de
transport să fie minime. Şi în acest caz, cheltuielile sunt date pe unitatea de
cantitate transportată şi sunt proporţionale cu aceasta.
Problema de transport

Modelul matematic

Pi x ik
ai Dk

c ik dk

m1
V.4.1 ∑x
k =1
ik = ai , i ∈ M

m
V.4.2 ∑x i =1
ik = dk , k ∈ M1

Dk y kj Cj
dk
p kj
bj

n
V.4.3 ∑y j =1
kj = dk , k ∈ M1

m1
V.4.4 ∑y
k =1
kj = bj , j ∈ N

V.4.5 x ik ≥ 0 , y kj ≥ 0 , i ∈ M , k ∈ M 1 , j ∈ N

m m1 m1 n
V.4.6 [min] f = ∑∑ cik x ik + ∑∑ p kj y kj
i =1 k =1 k =1 j =1
Analita economico-matematică a unor modele liniare

Modelul liniar V.4.1 - V.4.6 admite soluţii dacă:

m m1 n
V.4.7 ai ≥ 0 , dk ≥ 0 , bj ≥ 0 ; ∑a = ∑d
i =1
i
k =1
k = ∑bj ,
j =1
i∈M ,

k ∈ M1, j ∈ N .

În acest model apar (m × m1 ) + (m1 × n ) necunoscute, supuse unui


număr de (m + m1 − 1) + (m1 + n − 1) restricţii independente relativ la
cantităţile transportate.
Din condiţia V.4.7 rezultă că, în această problemă echilibrată,
variabilele x ik şi y kj sunt independente, ceea ce permite descompunerea
problemei de transport cu centre intermediare în două probleme de transport
echilibrate, succesive:

(PB1) (PB2)
m1 n

∑x ik = ai , i ∈ M ∑y
j =1
kj = dk , k ∈ M1
k =1
m m1

∑ xik = d k , k ∈ M 1
i =1
∑y kj = bj , j ∈ N
k =1
x ik ≥ 0 , i ∈ M , k ∈ M 1 y kj ≥ 0 , k ∈ M 1 , j ∈ N
m m1 m1 n
[min] f 1 = ∑∑ c ik x ik [min] f 2 = ∑∑ p kj y kj
i =1 k =1 k =1 j =1
ai ≥ 0 , d k ≥ 0 dk ≥ 0 , bj ≥ 0
m m1

∑ ai = ∑ d k
m1 n

i =1 k =1
∑d
k =1
k = ∑bj
j =1
Problema de transport

După rezolvarea celor două probleme, se construieşte, prin reuniune,


soluţia optimă a modelului enunţat. În realitate se întâlnesc destul de rar
probleme echilibrate. Cel mai adesea trebuie să se introducă puncte sursă
sau depozite sau centre consumatoare fictive pentru a face posibilă
aplicarea algoritmului de rezolvare. În cazul în care capacitatea totală a
centrelor intermediare este mai mare decât oferta totală şi cererea totală,
există riscul ca o parte din marfă să rămână în aceste depozite. Aceste
stocuri pot fi admise sau nu. De exemplu, dacă marfa e perisabilă, s-ar dori
stocuri cât mai mici, eventual nule. Din acest motiv s-a elaborat un procedeu
de punere de acord a soluţiilor optime ale problemelor (PB1) şi (PB 2 ) ,
procedeu prin care se urmăreşte:
• minimizarea stocurilor în centrele intermediare;
• reducerea cheltuielilor prin redistribuirea cantităţilor transportate.

În continuare se va exemplifica acest caz special al problemelor de


transport cu centre intermediare, şi anume, cazul în care capacitatea
centrelor intermediare este strict mai mare decât oferta surselor şi cererea
consumatorilor. Datele numerice după echilibrare sunt cele din tabelele
T.V.4.1 şi T.V.4.2. Se observă că iniţial au existat
relaţiile: a1 + a 2 + a 3 < d 1 + d 2 + d 3 + d 4 > b1 + b2 + b3 + b4 . Centrele P4 şi
C 5 sunt fictive. Deoarece nu s-a impus nici o prioritate în aprovizionare
şi/sau servire, toate costurile din linia lui P4f , respectiv coloana lui C5f au
valori nule:

c 4 k = 0 şi p k 5 = 0 , k ∈1,4 .
Analita economico-matematică a unor modele liniare

După rezolvarea independentă a celor două probleme s-au obţinut soluţiile


optime:

T.V.4.2
T.V.4.1
D1 D2 D3 D4 C1 C 2 C 3 C 4 C 5f
D
A
D1 4 1 1 3 0
P1 9 4 7 8
26
9 25 34 26
P2 3 6 11 3 D2 6 2 1 4 0
15 15 9
9
P3 8 5 9 7
D3 3 5 5 1 0
3 48 51 12 23 2
P4 0
f 0 0 0 37
8 12 20 D4 4 3 2 3 0
26 9 37 48120 4 16 28
48
D N 12 30 25 23 30 120

Reprezentând schematic soluţiile optime, după cum urmează,

[min] f1 = 616
C1
D1 [min] f 2 = 138
P1 Rute fictive folosite
9 26
în variantele optime:
25 (P4 , D1 )
C2 (P , D ) , (D , C )
4 3 3 5
15
P2 D2 (D , C )
4 5

9 4

3 C3
16
12
P3 48
D3
23
8 C4
12
P4 D4 2
28 C5
fictiv
fictiv
Problema de transport

se pot observa mai uşor modalităţile de aprovizionare a celor patru centre


consumatoare reale C1 , C 2 , C 3 şi C 4 şi se pot sesiza soluţii de
îmbunătăţire a variantelor optime de transport. Consumatorul fictiv C 5 este
aprovizionat de D3 şi D4 .

D3 2

•C 5 30=2+28
28
D4

Pe de altă parte, D4 , ca centru intermediar, este aprovizionat numai


de P3 şi “expediază” spre C 5 , fictiv, 28t. Este logic să dorim micşorarea
cantităţii transportate pe ruta (P3 , D4 ) cu 28 unităţi. Să verificăm dacă acest
lucru este posibil. Se vor reaşeza soluţiile optime pentru a facilita procedeul
de punere de acord a variantelor de transport:

Pi Cj
T.V.4.3 T.V.4.4
P1 P2 P3 P4 f D C1 C2 C3 C 4 C 5f
D1 15 3 8 26 26
D2 9 9 9
D3 25 12 37 12 23 2
Dk
D4 48 48 4 16 28
A → 34 15 51 20 B→ 12 30 25 23 30

Din acest tabel, rezultă că D4 primeşte o cantitate de marfă egală cu


capacitatea sa, dar aprovizionează C 2 şi C 3 numai cu 4t, respectiv 16t, iar
*
D1 primeşte numai (15+3)t ( x 41 = 8 ) şi trebuie să satisfacă o cerere de 26t.
Analita economico-matematică a unor modele liniare

Această situaţie poate fi eliminată prin introducerea în bază a variabilei x 44 .


În tabelele T.V.4.3- T.V.4.4 se construiesc liniile poligonale şi se obţin:

Pi Cj
T.V.4.5 T.V.4.6
P1 P2 P3 P4 f D C1 C 2 C 3 C 4 C 5f
D1 15 3+ θ 8- θ 26 26
D2 9 9 9
25 12 37 ~ 23 ~
Dk D3 12- θ 2+ θ
48- θ θ 48 ~ 4 16 ~
D4 θ 28- θ
A → 34 15 51 20 B → 12 30 25 23 30

Aplicând criteriul de eliminare din bază, rezultă θ = 8 , ceea ce


implică:
• din P3 se vor expedia (3+8)t spre D1 şi (48-8)t spre D4 ;
• sursa P4 , fictivă, nu va “expedia” nimic spre D1 , deci D1 , prin această
modificare, va expedia spre C 2 26t (15t primite de la P2 şi 11t de la P3 ).
Să trecem la analiza soluţiei optime corespunzătoare planului de
transport (centre intermediare – centre de consum). În primul rând trebuie să
construim o linie poligonală prin care să eliminăm 8 unităţi de pe ruta
(D4 , C 5 ) . Din analiza ultimului tabel, rezultă că cea mai bună strategie este
aceea ce permite eliminarea acestor 8t de la D3 , care primeşte 12t de la
sursa fictivă P4 :

Aprovizionarea se face de
la D3 , care primeşte în ~ ~
12- θ 23 2+ θ
realitate numai 25t. ~ ~
θ 28- θ
~
θ = 12
Problema de transport

În final, rezultă soluţia:


T.V.4. 7 T.V.4.8
P1 P2 P3 P4 f D C1 C2 C3 C4 C 5f
D1 9 3 8 0 4 1 1 3 0 Expediază tot
26 ce primeşte.
15 11 26
D2 4 6 5 0 6 2 1 4 0
Expediază tot
9 ce primeşte.
9
9
D3 7 11 9 0 3 5 5 1 0 Primeşte 25t,
37 expediază 23t
25 12 23 14
şi rămâne cu un
8 3 7 0 4 3 2 3 0 stoc de 2 unităţi.
D4
48 Primeşte 40t,
expediază
40 8 12 4 16 16 (12+4+16)t
şi rămâne
A→ 34 15 51 20 B→ 12 30 25 23 30
în stoc cu 8t.

Costul total va fi: 624+150=774u.m. Acest cost poate fi micşorat în


continuare, prin reducerea cantităţilor primite de D3 şi D4 cu 2t, respectiv
~
x13* = 25 − 2
8t:

P1 x13* = 25 P1 D3
D3 ⇒ ~
*
x 34 = 40 x 34* = 40 − 8
P3 P3 D4
D4 ⇒
Pentru evitarea imobilizărilor de fonduri fixe, pierderea valorii
mărfii prin depozitarea sau folosirea neraţională a mijloacelor de transport,
se recomandă următoarele politici în alte două cazuri de excepţie:
m m1 n
• ∑ ai = ∑ d j > ∑ bk → Deoarece se cere mai puţin decât se oferă,
i =1 j =1 k =1

m n
diferenţa ∑ a − ∑b
i =1
i
k =1
k nu va fi expediată spre centrele intermediare.
Analita economico-matematică a unor modele liniare

m m1 n
• ∑ ai = ∑ d j < ∑ bk → Se recomandă satisfacerea cu priorităţi a cererilor
i =1 j =1 k =1

formulate de unele centre consumatoare.

5. Problema de transport generalizată

Introducem această problemă printr-un exemplu.


Formularea problemei. Din contractele încheiate de firma
producătoare FAUR rezultă că la atelierul A5, în cursul trimestrului al
II-lea, vor fi realizate produsele Pi , i ∈ {1,2,3,4} , pe utilajele U j ,
j ∈ {1,2,3} . Se doreşte găsirea unui program de producţie care să
asigure firmei un venit total maxim. Pentru scrierea unui model
matematic cu ajutorul căruia să atingem obiectivul propus, se vor
utiliza următoarele elemente:

Semnificaţie Notaţie

• Timp disponibil al utilajului U j în • a j , j = 1,3


trimestrul al II-lea, exprimată în h
• Producţia planificată din fiecare
• bi , i = 1,4
produs, exprimată
în număr de produse
• Randamentul orar al utilajului U j • wij , i = 1,4 , j = 1,3
relativ la produsul Pi
• Costul de producţie de la o unitate • cij , i = 1,4 , j = 1,3
de produs Pi realizat pe utilajul U j
Problema de transport

Modelul matematic

Pj
Ui
wij , cij
ai bj
xij

Suma timpilor necesari


pentru producerea
4 xij reperelor pe utilajul U j
V.5.1 ∑w
i =1
≤ a j , j = 1,3 nu trebuie să depăşească
ij
durata de timp disponibil.

3 Suma unităţilor fizice din


V.5.2 ∑ xij = bi , i = 1,4
j =1
produsul Pi ce se
prelucrează pe cele 3
utilaje trebuie să fie egală
cu cantitatea necesară
onorării contractelor.
V.5.3 xij ≥ 0 , i = 1,4 , j = 1,3 ;

4 3
V.5.4 [min] f = ∑∑ cij xij .
i =1 j =1

Spre deosebire de modelele studiate până acum, în această problemă


de încărcare a utilajelor, a j şi bi sunt măsuraţi în unităţi diferite, şi, ca
urmare, procedeul iterativ prin care se stabileşte soluţia optimă se va
modifica parţial, dar criteriile de eliminare sau intrare în bază, precum şi cel
de verificare a optimalităţii soluţiei testate se menţin.
În tabelul de mai jos sunt prezentate datele numerice ale problemei.
Astfel, într-o căsuţă (P ,U )
i j se vor trece: costul cij în stânga sus,
randamentul wij în stânga jos; variabila cantitate produsă xij în dreapta va fi
scrisă atunci când este cazul. În ultima coloană vor fi scrise cantităţile din
Analita economico-matematică a unor modele liniare

fiecare produs planificate pentru a fi produse, iar ultima linie prezintă


disponibilul de timp pentru fiecare utilaj.

U1 U2 U3 bi - producţia planificată
5 6 1.5
P1 20 80 40
600
1.2 20 1.3
P2 14900
80 20 50
3 2 1.2
P3 11600
32 160 50
1.3 2 0.35
P4 64 200 200
100000

a j - timpul disponibil
180 540 360
(în ore)

Etapa 1: Pentru determinarea soluţiei iniţiale, se vor parcurge următorii


paşi:
Pasul 1 Se fixează linia i şi se alege cij = min {cik }.
i≤k ≤m

Pasul 2 Se atribuie variabilei xij valoarea xij := min{bi , wij ⋅ a j } .


Pasul 3 Se şterge din tabel linia sau coloana saturată ( bi a fost
obţinută sau disponibilul utilajului U j a fost epuizat) şi se revine la pasul 1,
pentru tabelul redus, până la epuizarea tuturor liniilor.
În cazul nostru, soluţia iniţială, găsită prin metoda descrisă mai sus,
este:

U1 U2 U3 bi
5 6 1.5
P1 600 → 0
20 0 80 0 40 6000
1.2 20 1.3
P2 14900 → 500 → 0
80 14400 20 0 50 500
3 2 1.2
P3 11600 → 1600 → 0
32 0 160 1600 50 10000
1.3 2 0.35
P4 100000 → 0
64 0 200 100000 200 0
540 ↓ 360 ↓
aj 180 ↓
0 530 ↓ 200 ↓
30 0
Problema de transport

Se observă că avem 6 variabile de bază nenule, aşadar problema este


nedegenerată.

Etapa 2 Determinarea soluţiei optime


Pasul 1 Pentru indicii (i, j ) pentru care xij ≥ 0 , se scrie sistemul de
ecuaţii
vj
ui + = cij .
wij
În acest caz se obţine sistemul simplu nedeterminat
v3 v v
u1 + = 1 .5 , u 2 + 1 = 1 . 2 , u 2 + 3 = 1 .3 ,
40 80 50
v2 v v
u3 + = 2 , u 3 + 3 = 1 .2 , u 4 + 2 = 2 .
160 50 200
Se consideră u h = 0 sau v k = 0 pentru variabila care intervine de
cele mai multe ori în acest sistem şi se stabileşte o soluţie particulară.
Întrucât v3 apare de cele mai multe ori în sistem, vom lua v3 = 0 . Obţinem
astfel soluţia: u1 = 1,5 , u 2 = 1,3 , u 3 = 1,2 , u 4 = 1,36 , v1 = −8 , v 2 = 128 .
⎛ vj ⎞
Pasul 2 Se calculează ∆ ij = cij − ⎜ u i + ⎟ , ∀i ∈ 1, n , α ∈ 1, m . Dacă toate
⎜ w ⎟
⎝ ij ⎠

aceste diferenţe sunt pozitive sau nule, soluţia este optimă.

Pentru această problemă, matricea diferenţelor este


⎛ 3.9 2.9 0 ⎞
⎜ ⎟
⎜ 0 12.3 0 ⎟
⎜ 2.05 . Aşadar, nu toate elementele acestei matrici sunt
0 0 ⎟
⎜ ⎟
⎜ 0.065 0 − 1.01⎟
⎝ ⎠
pozitive sau nule, deci soluţia găsită nu este optimă.
Analita economico-matematică a unor modele liniare

Trecem la îmbunătăţirea soluţiei. Se alege perechea de indici ( j , k )


după criteriul cunoscut
∆ jk = min{∆ ij | ∆ ij < 0}.
(i , j )

Pentru perechea ( j , k ) vom avea x jk = θ . Se construieşte conturul poligonal


cu primul vârf ( j , k ) . El va fi numit în continuare circuit de transfer şi va fi
notat prin C ( j ,k ) :
C ( j ,k ) = {(i1 , j1 ), (i1 , j 2 ), (i2 , j 2 ),..., (i h , k ), ( j , j k ),..., (i s , j1 )} .
Notăm ℑ = ( j , k ) U C ( j ,k ) .
Numim “distanţa” de la (iλ , j µ ) la ( j , k ) numărul de schimbări de
poziţie necesare pentru a aduce elementul (iλ , j µ ) în locul lui ( j, k ) în
mulţimea ℑ . Elementele lui ℑ la distanţă pară de ( j , k ) se marchează cu +,
iar cele la distantă impară se marchează cu -, astfel încât ℑ = ℑ + U ℑ − . Se
determină ρ astfel ca
⎧⎪ xij ⎫⎪
ρ = min ⎨ ⎬.
( i , j )∈ℑ −
⎪⎩ wij ⎪⎭
Noua soluţie X ' va avea componenta x jk dată de relaţia x 'jk = ρ ⋅ w jk , iar
componentele corespunzătoare perechilor de indici situaţi la distanţă egală
cu 1 faţă de ( j , k ) sunt:
wih k
xi'h k = xih k − x 'jk ,
w jjk

x 'jjk = x jjk − x 'jk .


Componentele corespunzătoare indicilor situaţi la distanţă egală cu 2 faţă de
( j, k ) se vor calcula după formula:
wih k
xi'h kl = xih kl + x 'jk .
w jjk
Problema de transport

Analog pentru celelalte componente.


După aflarea soluţiei îmbunătăţite, se testează din nou optimalitatea.
Justificarea acestui algoritm este similară justificării algoritmului
potenţialelor, din cazul problemelor de transport.

Revenim la problema noastră. Singurul ∆ ij < 0 este ∆ 43 = −1,01 < 0 .

Avem ( j, k ) = (4,3) , ℑ = {(3,2); (3,3); (4,3); (4,2)} , ℑ − = {(3,3); (4,2)} .


⎧10000 100000 ⎫
Aflăm ρ = min− ⎨ ; ⎬ = 200 . Rezultă că
( i , j )∈ℑ ⎩ 50 200 ⎭
'
x 43 = ρ ⋅ w43 = 200 ⋅ 200 = 40000 ,
w33 ' 50
'
x33 = x33 − x 43 = 10000 − ⋅ 40000 = 0 ,
w42 200
'
x 42 = x 42 − x 43
'
= 100000 − 40000 = 60000 ,
şi
w33 ' 50
'
x32 = x32 + x 42 = 1600 + ⋅ 40000 = 11600 .
w42 200
Noua soluţie este prezentată în tabelul de mai jos:
T.V.5.1
U1 U2 U3
5 6 1,5
P1
20 0 80 0 40 6000
1,2 20 1,3
P2
80 14400 20 0 50 500
3 2 1,2
P3
32 0 160 11600 50 0
1,3 2 0,35
P4
64 0 200 60000 200 40000
Analita economico-matematică a unor modele liniare

vj
Să vedem dacă această soluţie este optimă. Sistemul u i + = cij
wij
pentru indicii bazici este:
v3 v v
u1 + = 1,5 , u 2 + 1 = 1,2 , u 2 + 3 = 1,3 ,
40 80 50

v2 v v
u3 + = 2 , u 4 + 2 = 2 , u 4 + 3 = 0,35 ,
160 50 200

şi are soluţia v3 = 0 , u1 = 1,5 , u 2 = 1,3 , u 3 = −0,0625 , u 4 = 0,35 , v1 = −8 ,


v 2 = 330 . Matricea cu elementele (∆ ij )i , j este, pentru această soluţie,

⎛ 3,9 0,375 0 ⎞
⎜ ⎟
⎜ 0 2.2 0 ⎟ soluţia optimă este cea
⎜ 3,0875 ≥0 ⇒
0 1,2625 ⎟ prezentată în T.V.5.1.
⎜ ⎟
⎜ 1,075 0 0 ⎟⎠

Analiza soluţiei optime:

Pi Prod. Cerere Cerere Uj Fond de Fond de timp utilizat


planif. onorată neonorată timp disp.
*
x 21
P1 6.000 6.000 0 U1 180 = 180
80
*
x32 x*
P2 14.900 14.900 0 U2 540 + 42 = 307,25
160 200
*
x313 x* x*
P3 11.600 11.600 0 U3 360 + 23 + 43 = 360
40 50 200
P4 100.000 100.000 0 [min] f = 8.425.400
Problema de transport

Fondul de timp fiind o resursă nestocabilă, se recomandă folosirea în


alte scopuri a celor (540-307,25) ore rămase neutilizate la P2 prin
programul optim de fabricaţie. Cum elementele acestei matrici sunt positive,
rezultă că soluţia găsită este optimă.

6. Probleme de repartiţie

Problemele de repartiţie sunt probleme întâlnite în domeniul


organizării aprovizionării cu un anumit produs, a repartizării unor sarcini de
plan pe utilajele existente, a formării unor echipe de cercetare în care fiecare
persoană elaborează singur o parte a temei studiate, etc.

Formularea problemei Există n ∈ N * necesităţi şi pentru fiecare există cel


puţin una şi cel mult n posibilităţi de realizare. Se cere aflarea a n
posibilităţi de repartizare a celor n necesităţi ce corespund unei eficienţe
maxime.
Dacă trebuie repartizaţi n solicitanţi pe tot atâtea posturi vacante, în
ipoteza că un solicitant are competenţa să ocupe mai mult de un post, atunci
afectarea poate să ţină seama de satisfacerea globală a preferinţelor sau de
obţinerea unui randament global maxim. În cazul în care n persoane trebuie
să-şi împartă n bunuri indivizibile de valori cvasiegale, se va urmări
realizarea unui partaj echitabil. Scopul urmărit poate fi şi distanţa totală
minimă în cazul satisfacerii cererilor a n puncte cu un produs aflat în
excedent de disponibil în n depozite.

Modelul matematic
● z ij reprezintă repartizarea posibilităţii i pentru necesitatea j;
i, j ∈{1,..., n} . Această variabilă este de tip Boole:
⎧1 , daca i este alocat lui j
z ij = ⎨
⎩ 0 , in rest
● cij este coeficientul de eficienţă asociat alocării (i, j ) .
Analita economico-matematică a unor modele liniare

Se urmăreşte aflarea valorilor z ij ∈{0,1} , i, j ∈{1,..., n} , supuse


restricţiilor
n
V.6.1 ∑z
i =1
ij = 1 , j = 1, n ,

n
V.6.2 ∑z
j =1
ij = 1 , i = 1, n ,

şi care corespund unei eficienţe maxime


n n
V.6.3 [opt ] f = ∑∑ xij ⋅ cij .
i =1 j =1

Modelul problemei de repartiţie sau de afectare este un model liniar,


cu particularităţile unei probleme de transport echilibrate cu ai = bi = 1 ,
i = 1, n . Dualul său are forma
n n
[opt ]g = ∑1 ⋅ α i + ∑1 ⋅ β j
i =1 j =1

{α i + β j ≤ cij , i, j ∈1, n
α i , β j ∈ R , i, j ∈1, n
Se preferă abordarea acestui tip de problemă prin teoria grafurilor,
datorită procedeelor relativ simple şi elegante de găsire a soluţiei optime.

În continuare se vor introduce conceptele ce vor fi folosite în


determinarea unei repartiţii minimale, care, în teoria grafelor, este
echivalent cu stabilirea unui cuplaj maxim de valoare minimă, într-un graf
particular care descrie problema (graf asociat) formulată.

Definiţia 1 Graf simplu


Graful G = ( X , Γ ) este graf simplu dacă:
● X = A U B şi A I B = Φ
● Γ( A) ⊂ B şi Γ(B ) = Φ
Grafurile simple se numesc şi bipartite, deoarece orice arc al grafului
are vârful iniţial în A şi cel final în B, deci are loc o bipartiţie în produsul
cartezian A× B .
Problema de transport

Definiţia 2 Cuplajul unui graf simplu


O mulţime de arce W ⊂ U este un cuplaj în graful simplu
G = ( A U B, Γ ) = ( A U B,U ) dacă două arce oarecare nu sunt adiacente.
Se spune că xi ∈ A acoperă vârful y j ∈ B , sau xi este alocat
(atribuit, afectat) vârfului y j dacă, prin cuplaj, (xi , y j )∈W .
Într-un graf simplu toate drumurile sunt formate numai din câte un
arc, care poate avea ataşată o valoare v (xi , y j )∈ R *+ ; în acest caz, se poate
defini valoarea unul cuplaj W astfel:

v(W ) = ∑ v(x , y ) .
(xi , y j )∈W
i j

Pentru exemplificarea rezolvării unei probleme de repartiţie,


considerăm următoarea problemă.
Exemplu În depozitele Di , i = 1,5 , există stocuri mari dintr-un anumit tip
de marfă. Punctele de consum C j , j = 1,5 , solicită această marfă, cu
observaţia că nu au nici o preferinţă relativ la depozitul furnizor, şi orice
depozit poate satisface oricare din cele şase cereri. Distanţele dintre surse şi
consumatori sunt date în următoarea matrice:
⎡5 5 8 9 3 ⎤
⎢6 4 7 9 6 ⎥
⎢ ⎥
⎢5 3 3 7 4 ⎥
⎢ ⎥
⎢3 7 8 4 8 ⎥
⎢⎣8 2 6 6 6⎥⎦

Se cere să se aloce fiecărui centru C j un depozit Di şi numai unul,


de la care să primească întreaga cantitate de marfă, astfel încât distanţa
totală să fie minimă.
Mulţimea arcelor trasate, şi anume
W1 = {(D1 , C1 ), (D2 , C 2 ), (D3 , C 4 ), (D4 , C3 ), (D5 , C5 )} este unul din cele 5!
cuplaje maximale posibile, şi reprezintă o variantă de repartizare, cu distanţa
totală egală cu (5+4+7+8+6).
Analita economico-matematică a unor modele liniare

5
D1 C1

4
D2 C2

7
D3 C3

8
D4 C4
6
D5 C5

Modelarea matematică
Model primal
Model dual
[min] f = 5 z11 + 5 z12 + 9 z13 + ... + 6 z 55 5 5

⎧ z11 + z12 + z13 + z14 + z15 = 1 → α 1 [max] f = ∑ α i + ∑ β j


⎪ 5 i =1 j =1


∑ z2 j =1 →α2 ⎧α 1 + β1 ≤ 5

j =1


5
⎪α 1 + β 2 ≤ 5
⎪ ∑j =1
z3 j = 1 →α3 ⎪α 1 + β 3 ≤ 9
⎪ ⎪
⎪ 5
⎨.................
⎪ ∑ z4 j =1 →α4 ⎪α + β ≤ c
⎪ j =1
⎪ i j ij
⎪ 5
⎪.................


∑ z5 j = 1 →α5

⎩α 5 + β 5 ≤ 6
j =1

⎪ z11 + z 21 + z 31 + z 41 + z 51 = 1 → β1
⎪ 5
α i ∈ R , i ∈1, n



i =1
zi 2 = 1 → β2 β j ∈ R , j ∈1, n
⎪ 5



i =1
zi3 = 1 → β3
⎪ 5

⎪ ∑
i =1
zi 4 = 1 → β4
⎪ 5

⎩⎪

i =1
zi5 = 1 → β5

z ij ∈ {0,1} , i ∈ 1, n, j ∈ 1, n
Problema de transport

Varianta 1 Metoda Kuhn-Tucker-König

În 1955, Kuhn propune un algoritm pentru aflarea cuplajului maxim


de valoare minimă într-un graf simplu în care | A |=| B | . În realitate, acest
algoritm a rezultat şi din lucrările elaborate de König şi Ergévary.
Algoritmul propune parcurgerea următoarelor etape:
Etapa 0: Construirea matricei M
În general, grafului simplu considerat i se asociază o matrice
pătratică de ordinul n =| A |=| B | , notată M = (mij )i , j =1,n , unde

⎧ vij , daca (xi , x j )∈U


mij = ⎨ , dacă se cere [min] f .
⎩+ ∞ , daca (xi , x j )∉ U
În cazul studiat, matricea M va fi de forma
⎡5 5 8 9 3⎤
⎢6 4 7 9 6⎥⎥

M = (m ij )i , j =1,5 = ⎢5 3 3 7 4⎥ .
⎢ ⎥
⎢3 7 8 4 8⎥
⎢⎣8 2 6 6 6⎥⎦

Etapa 1: Obţinerea matricei distanţelor reduse


Pasul 1 Se notează cu α i cel mai mic element al liniei i; deci,
α i = min (mij ) , pentru ∀i ∈{1,..., n} . De la matricea M se trece la matricea
j =1, n

M = (m
~ )
~ ~
ij i , j =1, n , în care mij = mij − α i , pentru ∀i, j ∈ {1,..., n} .

Pasul 2 Se notează cu β j cel mai mic element al coloanei j din matricea


~ ~ ) , ∀j ∈{1,..., n} . Vom numi matricea redusă matricea
M : β j = min (mij
i =1, n

~ −β .
notată M , de element general mijR = m
R
ij j
Analita economico-matematică a unor modele liniare

Prin construcţie, matricea redusă conţine cel puţin un element egal


cu zero în fiecare linie şi coloană. Numărul acestor zerouri este cel puţin
egal cu ordinul matricei. Elementele nule ale matricei reduse indică rutele
rentabile sub aspectul distanţei.

Pentru problema de noastră, găsim:

Pasul 1 Pasul 2
α1 = 3 ⎛2 2 6 5 0⎞ β1 = 0 ⎛2 2 6 4 0⎞
⎜ ⎟ ⎜ ⎟
α2 = 4 ⎜2 0 3 5 2⎟ β2 = 0
~ ⎜2 0 3 4 2⎟
α3 = 3 ⇒ M = ⎜ 2 0 0 4 1⎟ β3 = 0 ⇒ M R = ⎜ 2 0 1⎟
⎜ ⎟ ⎜
0 3

α4 = 3 ⎜0 4 5 1 5⎟ β4 = 1 ⎜0 4 5 0 5⎟
⎜ ⎟ ⎜ ⎟
α5 = 2 ⎝6 0 4 4 4⎠ β5 = 0 ⎝6 0 4 3 4⎠

Cele două operaţii efectuate asupra elementelor matricei M nu


modifică soluţia optimă a problemei, conform propoziţiei:
˝Soluţia optimă a problemei de afectare nu se schimbă dacă se micşorează
sau măresc cu aceeaşi valoare toate elementele liniei i ∈ N , sau toate
elementele coloanei j ∈ N din matricea M˝.
Se vor analiza valorile lui α i şi β j din punctul de vedere al
programării liniare:

α1 = 3 β1 = 0 ⇒ α1 + β1 = 3 < 5 = c11
α2 = 4 β 2 = 0 ⇒ α 1 + β 2 = 3 < 5 = c12
α3 = 3 β 3 = 0 ⇒ α1 + β 3 = 3 < 9 = c13
α4 = 3 β 4 = 1 ⇒ α1 + β 4 = 4 < 8 = c14
α5 = 3 β 5 = 0 ⇒ α1 + β 5 = 3 = c15 *
Problema de transport

Cititorul poate verifica uşor, pe baza schemei prezentate, că valorile


α1 ,...,α 5 , β1 ,..., β 5 , obţinute la etapa 1, definesc o soluţie admisibilă a dualei.
Conform unei teoreme cunoscute din teoria dualităţii, avem:
5 5
g (α , β ) = ∑α i + ∑ β j = 16 ≤ [min] f .
i =1 j =1

Când ∑α + ∑ β
i j este maximală, atunci relaţia se verifică cu
egalitate.

Observaţie: Zerourile matricei M R indică restricţiile dualei verificate cu


egalitate.

Etapa 2: Se cercetează existenţa unui cuplaj optim în graful simplu asociat


problemei.
Dacă în matricea redusă M R se pot stabili n zerouri, două câte două
nesituate în aceeaşi linie şi coloană, atunci cu ajutorul lor putem pune în
evidenţă un cuplaj maxim de valoare minimă şi algoritmul se opreşte; dacă
nu, se trece la etapa 3. Afirmaţiile se bazează pe propoziţia:
˝Cuplajul maxim de valoare minimă a grafului G = ( A U B, Γ, C ) este dat de
elementele egale cu zero, situate la intersecţii de linii şi coloane distincte în
matricea M R = mijR( ) i , j =1, n
, unde mijR = mij − (α i + β j ) , α i = min (mij ) ,
j

β j = min (mij − α i ) ˝.
i

Se încearcă stabilirea soluţiei optime pe mulţimea căsuţelor (i, j ) cu


elemente nule, numite şi căsuţe admisibile, cu ajutorul procedeului:
• 10 Se consideră linia cu cele mai puţine zerouri. Se încadrează unul din
zerouri şi se barează zerourile situate în linia şi în coloana zeroului
încadrat.
• 20 Din cele (n-1) linii rămase, se consideră linia cu cele mai puţine
zerouri. În continuare se procedează ca la 10.
Analita economico-matematică a unor modele liniare

• k0 În ultima linie neconsiderată până acum, linia cu cele mai multe


zerouri, se alege un zero oarecare şi se încadrează; se vor bara toate
celelalte zerouri situate pe linia sa.
Dacă numărul zerourilor încadrate este n, atunci algoritmul se
opreşte; dacă nu, se trece la etapa 3.

Pentru problema de faţă, avem

⎛2 2 6 4 0⎞ 0
m15R = 0 încadrat
⎜ ⎟ 1 linia 1:
⎜2 0 3 4 2⎟ 0
2 linia 2:
R
m22 = 0 încadrat ⇒ m32R = m52R = 0 barat
M = ⎜2
R
0 0 3 1⎟ 0
⎜ ⎟ 3 linia 3: m33R = 0 încadrat
⎜0 4 5 0 5⎟ 0
⎜6
R
m41 = 0 încadrat ⇒ m44
R
= 0 barat
0 4 3 4 ⎟⎠
4 linia 4:

Etapa 3: Determinarea unui suport minimal


La această etapă se va stabili un număr minim de linii şi coloane ale
matricei reduse, care
să-i conţină zerourile. În acest scop, vom proceda astfel:
(a) se vor marca liniile care nu au nici un zero încadrat;
(b) se vor marca toate coloanele ce conţin zerouri barate în linii marcate;
(c) se vor marca liniile care au cel puţin un zero încadrat în coloane
marcate.
Operaţiile (b) şi (c) se repetă până când nu se mai pot marca linii şi
coloane.
Suportul minimal este dat de mulţimea liniilor nemarcate, la care se
adaugă mulţimea coloanelor marcate.
Problema de transport

În cazul problemei studiate,

*
⎛2 2 6 4 0⎞ (a) se va marca linia 5;
⎜ ⎟ (b) se va marca coloana 2 (zero barat din
⎜2 0 3 4 2⎟ *
linia 5, marcată, se află în coloana 2);
M = ⎜2
R
0 0 3 1⎟ (c) coloana 2, marcată, conţine un zero
⎜ ⎟
încadrat în linia 2 ⇒ linia 2 va fi
⎜0 4 5 0 5⎟
⎜6 marcată.
⎝ 0 4 3 4 ⎟⎠ *

Operaţia (b) nu se poate repeta, deoarece linia 2 marcată nu conţine


nici un zero barat. Liniile 1, 3, 4 nemarcate şi coloana 2 marcată dau o
modalitate de acoperire a zerourilor cu un număr minim de linii şi coloane.

Etapa 4: Deplasarea eventuală a unor zerouri


După parcurgerea etapei 3 în matricea M R apar trei tipuri de
elemente:
T1 = elementele nesituate pe linii şi coloane haşurate sau elemente libere;
T2 = elementele situate pe linii sau coloane haşurate sau elemente simplu
acoperite;
T3 = elementele situate la intersecţia liniilor haşurate cu coloane haşurate
sau elemente dublu acoperite.
Se va aplica o procedură de modificare a matricei reduse după cum
urmează.
Se va nota cu ε 1 cel mai mic element de tip T1. Valoarea ε 1 se va
scădea din elementele de tip T1 şi se va aduna la elementele de tip T3. Prin
acest procedeu se obţine cel puţin un nou element zero. Elementele de tip T2
nu se vor modifica. Astfel, se obţine o nouă matrice redusă M R1 . Cu această
matrice se revine la etapa 2.
Analita economico-matematică a unor modele liniare

Aici,
T1 : {
D1 = m21
R R
, m23 R
, m24 R
, m25 , m51R , m53R , m54R , m55R ;}
ε 1 = min (mijR ) = 2 = m21 = m25 ;
mijR ∈D1

{
T2 : D2 = m11R , m13R , m14R , m15R , m22
R
, m31R , m33R , m34R , m35R , m41
R R
, m43 R
, m44 R
, m45 }
, m52R ;
T3: D3 = {m R
12
R
}
, m32R , m42 .
⎛2 4 6 4 0⎞
⎜ ⎟
⎜0 0 1 2 0⎟
După efectuarea calculelor, se obţine: M = ⎜ 2
R1
2 0 3 1⎟ .
⎜ ⎟
⎜0 6 5 0 5⎟
⎜4 0 2 1 2 ⎟⎠

Dacă se compară M R1 cu prima matrice redusă, se observă că au


apărut două zerouri pe poziţiile (2,1) şi (2,5), şi a dispărut zeroul din (3,2).
Valoarea lui g (α , β ) va creşte cu ε 1 unităţi:
5 5

∑α i + ∑ β j + ε1 = 16 + 2 .
i =1 j =1

Se revine la etapa 2 şi se încearcă găsirea a n = 5 zerouri nesituate pe


aceeaşi linie şi aceeaşi coloană:

10 linia 1: m15 = 0 încadrat ⇒ m25 = 0 barat


R1 R1
⎛2 4 6 4 0⎞
⎜ ⎟
20 linia 3: m33 = 0 încadrat
R1
⎜0 0 1 2 0⎟
M = ⎜2 2 0 3 1⎟ 30 linia 5: m52 = 0 încadrat ⇒ m22 = 0 barat
R1 R1 R1
⎜ ⎟
40 linia 2: m21 = 0 încadrat ⇒ m41 = 0 barat
R1 R1
⎜0 6 5 0 5⎟
⎜4 0 2 1 2 ⎟⎠ 50 linia 4: m44 = 0 încadrat
R1

Problema de transport

Numărul elementelor încadrate este egal cu ordinul matricei M, deci


algoritmul se opreşte. Valoarea funcţiei g nu mai poate fi mărită:
[max]g = 18 = [min] f .

Conform propoziţei enunţate la etapa 2, cuplajul maxim de valoare


minimă este subgraful

D1 3 C1
6

D2 C2
3
D3 C3
4
D4 C4
2

D5 C5

( )
iar valoarea sa v W * = 18 reprezintă distanţa minimă necesară mijloacelor
de transport pentru a aproviziona cele cinci centre consumatoare. Dacă
aprovizionarea se face cu o singură cursă, aceasta este distanţa totală
minimă, iar dacă sunt necesare mai multe, atunci ea se va amplifica cu
numărul curselor.
Analita economico-matematică a unor modele liniare

Pentru fixarea cunoştinţelor, credem că este necesar ca în final să fie


făcută o sistematizare a algoritmului:
Sistematizarea algoritmului

Se scrie matricea M.
R
Se calculează matricea redusă M şi marginea inferioară a funcţiei f.

Se cercetează existenţa unui cuplaj optim, încercând găsirea a n căsuţe


admisibile, nesituate în aceeaşi linie şi aceeaşi coloană.

Se aplică procedeul
NU de marcare a liniilor
Există? şi coloanelor; se
stabileşte acoperirea
minimală a matricei
reduse.
DA

STOP
Se modifică matricea.
Problema de transport

Observaţie: Dacă în problemă scopul urmărit este maximizarea lui f, de


exemplu profitul maxim, se poate trece la minimizarea lui f , prin trecerea
la o matrice C . Se poate fixa un profit dorit, şi toate elementele lui C vor fi
înlocuite cu (profitul dorit – profitul evaluat pe ruta (i, j ) ) şi se va obţine o
problemă de minimizare.

Varianta 2 Algoritmul lui Little

Algoritmul propus de J.D.C Little este o metodă de tip “branch and


bound” (“ramifică şi mărgineşte” sau “separă şi evaluează”) ce poate fi
folosit la rezolvarea problemelor de tip combinatoric, în care relaţiile dintre
elemente pot fi reprezentate printr-o matrice m × n (ca în cazul problemei
considerate). Dacă matricea este dreptunghiulară, se completează cu linii
sau coloane fictive conţinând elemente foarte mari pentru a evita alocarea,
deoarece, prin model, se cere minimizarea lui f .
Rezultatele sunt reprezentate printr-o arborescenţă, în care vârfurile
corespund unor submulţimi de soluţii admisibile. Aplicarea metodei propusă
de Little presupune respectarea unor reguli, cum ar fi:
• reguli pentru ramificarea de la un nod la alte noi noduri;
• reguli pentru determinarea marginii inferioare a funcţiei obiectiv în
noduri;
• reguli de alegere a unui nod intermediar din care să se continue
ramificarea;
• reguli de recunoaştere a unui nod care nu conţine soluţii admisibile;
• reguli de recunoaştere a nodului final.
Pentru exemplificarea algoritmului, se va enunţa o problemă de
repartiţie, şi anume:
Se consideră o matrice C = (cij )i , j =1,n ale cărei elemente reprezintă,

de exemplu, timpii necesari executării unei lucrări de către Li , pe maşina


Analita economico-matematică a unor modele liniare

M j . O soluţie optimă a acestei probleme constă în determinarea acelei


repartizări la locurile de muncă, ce corespunde unui consum total minim de
muncă.
Ideea de bază a algoritmului: dacă W este mulţimea cuplajelor
maxime corespunzătoare matricei C (matricea poate avea elemente
c pl = ∞ , corespunzătoare situaţiei în care L p nu poate efectua lucrarea pe
M l ) şi w un element al său, atunci funcţia scop va fi:
[min] f = min
w∈W
∑c
( i , j )∈W
ij ,

care este o scriere echivalentă a formei V.6.3. Se va calcula matricea redusă


C R . Pornind de la ea, se va forma o arborescenţă folosind un proces de
ramificare succesivă. Dichotomizarea (ramificarea) de la un nod oarecare al
arborescenţei se va face astfel incât trecerea de la un nod la altul să conducă
la o valoare cât mai mică a funcţiei obiectiv, iar mulţimea cuplajelor
maxime să fie împărţită în două submulţimi disjuncte. La fiecare iteraţie,
matricea îşi va micşora ordinul cu o unitate, deci, după un număr finit de
paşi se va stabili soluţia optimă (cuplajul maxim de valoare minimă).

Algoritmul lui Little poate fi organizat în etape, astfel:


Etapa 1 : Se va determina matricea redusă ce va avea cel puţin un
element egal cu zero pe linie şi pe coloană.
Pasul 1 Din fiecare linie se scade cel mai mic element al său.
C = (cij )i , j =1,n ⇒ C ' = (c'ij )i , j =1,n , unde c'ij = cij − min cij .
j

Pasul 2 Din fiecare coloană a matricii C ' se scade cel mai mic
element al său şi se obtine astfel matricea redusă, notată C R :
( )
C R = cijR i , j =1, n
, unde cijR = c'ij − min c'ij .
i
Problema de transport

Spre exemplificare, vom aplica algoritmul lui Little pentru


problema cu următoarele date:

Mj M1 M2 M3 M4 M 5 M 6 αi
Li
L1 6 7 4 2 5 4 2 α i = min{cij }
j
C 7 1 2 6 3 4 1
L2
L3 4 5 2 7 6 8 2

L4 4 5 6 3 8 7 3
L5 5 5 3 7 5 2 2

L6 6 4 4 3 6 5 3
6

∑αi =1
i 13

M j M1 M 2 M 3 M 4 M5 M6 6

Li
∑β
j =1
j

L1 4 5 2 0 3 2
C' L2 8 0 1 5 2 3
L3 2 3 0 5 4 6

L4 1 2 3 0 5 4
L5 3 3 1 5 3 0

L6 3 1 1 0 3 2

β j = min{c'ij } βj 1 0 0 0 2 0 3
i

M j M1 M 2 M3 M4 M5 M6
Li
L1 3 5 2 0 1 2
L2 7 0 1 5 0 3
CR
L3 1 3 0 5 2 6

L4 0 2 3 0 3 4
L5 2 3 1 5 1 0

L6 2 1 1 0 1 2
Analita economico-matematică a unor modele liniare

Etapa 2: Se construieşte nodul iniţial al arborescenţei, notat E şi se


n n
calculează marginea inferioară ω (E ) = ∑ α i + ∑ β j . Mărimea ω (E ) este
i =1 j =1

considerată ca fiind valoarea minimă posibilă a soluţiei optime (cuplaj


maxim), iar E rădăcina comună tuturor soluţiilor. Nodului E îi corespunde o
mulţime ς a cuplajelor maxime ce se pot forma în condiţiile date.

E → ω (E ) = 16

Figura V.6.1

Etapa 3: Fiecărui element nul cijR din matricea redusă i se asociază numărul

θ ij definit ca suma dintre cel mai mic element al liniei i fără cijR şi cel mai
mic element al coloanei j fără cijR :

θ ij = min{cilR } + min{c kjR } .


l≠ j k ≠i

Cuplul (k , l ) corespunzător valorii θ kl = max{θ ij } este ales astfel


i, j

încât cuplajul maxim care nu conţine arcul (Lk , M j ) are valoarea cea mai
mare.
În cazul nostru,
θ 14 = min{c1Rl } + min{c kR4 } = 1 + 0 , θ 41 = min{c 4Rl } + min{c kR1 } = 0 + 1 ,
l≠4 k ≠1 l ≠1 k ≠4

θ 22 = min{c 2Rl } + min{c kR2 } = 0 + 1 , θ 414 = min{c4Rl } + min{ckR4 } = 0 + 0 ,


l≠2 k ≠2 l ≠4 k ≠4

θ 25 = min{c } + min{c } = 0 + 1 , θ 56 = min{c } + min{c kR6 } = 1 + 2 ,


R
2l
R
k5
R
5l
l ≠5 k ≠2 l ≠6 k ≠5

θ 33 = min{c } + min{c } = 1 + 1 , θ 64 = min{c } + min{c kR4 } = 1 + 0 ,


R
3l
R
k3
R
6l
l ≠3 k ≠3 l ≠4 k ≠6

max{θ ij } = max{θ 14 ,θ 22 ,θ 25 ,θ 33 ,θ 41 ,θ 44 ,θ 56 ,θ 64 } = 3 = θ 56 .
i, j
Problema de transport

Etapa 4: Prin ramificare, din nodul E vor porni două arce cu nodurile
finale notate E kl şi E kl . Nodului E kl îi corespund cuplajele maxime ce nu
conţin arcul (Lk , M l ) . Marginea sa inferioară va fi notată ω (E kl ) , şi se află
astfel:

ω (E kl ) = ω (E ) + θ kl

Etapa 5: Nodului E kl îi coresounde mulţimea cuplajelor maxime care


conţin arcul (Lk , M l ) . Pentru a-i determina marginea inferioară ω (E kl ) , se
parcurg etapele 6 şi 7 după ce se vor tăia din matricea redusă linia k şi
coloana l. Eliminarea lor este justificată de faptul că în fiecare cuplaj nu
intră decât un singur element dintr-o linie şi coloană.

Pentru problema prezentată,

M1 M2 M3 M4 M5
E56
ω (E56 ) = 16 + 3 = 19 L1 3 5 2 0 1
L2 5 0 1 5 0
E
ω (E ) = 16 E56 L3 1 3 0 5 2
L4 0 2 3 0 3
L6 2 1 1 0 1
Figura V.6.2

Etapa 6:
a) Dacă matricea aflată la pasul 5 conţine cel puţin un zero pe linie şi
coloană, se trece la pasul b); dacă nu, se reduce matricea găsită după
procedeul de la pasul 1, apoi se trece la b).
Analita economico-matematică a unor modele liniare

b) Se asociază vârfului E kl marginea inferioară


ω (E kl ) = ω (E ) + ∑ α 'i + ∑ β ' j , unde α 'i , i ≠ k ,
i≠k j ≠l

şi β ' j , j ≠ l , sunt cele mai mici elemente din liniile, respectiv coloanele
matricei de la etapa 5.
În situaţia de faţă, se observă că ∑α '
i ≠5
i = 0 şi ∑β'
j ≠6
j = 0 , deci

matricea nu trebuie redusă, şi ω (E56 ) = ω (E ) = 16 .

Etapa 7: Matricea C ' R este de ordinul 1? Dacă da, algoritmul se opreşte; în


caz contrar, se trece la etapa 8.
Pentru problema noastră, C ' R este o matrice de ordinul 4, deci se
trece la etapa 8.

Etapa 8: Dintre toate nodurile arborescenţei, se consideră cele care nu sunt


( )
noduri iniţiale pentru nici un arc U kl+ = Φ , noduri pe care le vom numi
“suspendate”. Se consideră nodul suspendat căruia îi corespunde cea mai
mică margine inferioară. Dacă sunt egale, se preferă alegerea vârfului E kl
sau se continuă dichotomizarea la ambele noduri. Dacă se alege E kl se trece
la pasul 3, iar dacă se alege E kl se trece la etapa 9.

Revenind la exemplul nostru, se observă că arborescenţa din figura


V.6.2 are două noduri suspendate: E 56 şi E 56 .
min{ω (E56 ), ω (E56 )} = 16 = ω (E56 )
Se trece la etapa 3, deoarece nodul ales este E56 .

Etapa 9: În căsuţa (k , l ) se trece la + ∞ , pentru a evita alegerea arcului


(L , M ) . Se verifică dacă matricea mai are proprietatea că are cel puţin un
k j
Problema de transport

element zero pe limie şi coloană; în caz contrar se reduce, după care se trece
la etapa 3.

În cazul exemplului considerat, algoritmul se continuă prin revenire


la
Etapa 3: Corespunzător elementelor nule din tabelul precedent, se
calculează:
θ 14 = 1 + 0 , θ 25 = 0 + 1 , θ 41 = 1 + 0 , θ 64 = 1 + 0
θ 22 = 0 + 1 , θ 33 = 1 + 1 , θ 44 = 0 + 0
min{θ 14 ,θ 25 ,θ 22 ,θ 33 ,θ 41 ,θ 44 ,θ 64 } = 2 = θ 33

Etapa 4:

( )
E56 ω E56 = 19
( )
E33 ω E33 = 16 + θ 33 = 18

E
ω (E ) = 16 Figura V.6.3

E56 ω (E56 ) = 16 E33

Ramificarea nodului E 56 spre E33 şi E 33 înseamnă crearea a două


submulţimi de cuplaje maxime ℑ33 şi ℑ33 ; ℑ33 conţine arcelor (L5 , M 6 ) şi
nu conţine arce (L3 , M 3 ) , iar ℑ33 conţine arcele (L5 , M 6 ) şi (L3 , M 3 ) .
Analita economico-matematică a unor modele liniare

Etapa 5: Se elimină linia L3 şi coloana M 3 :

T. V.6.1
M1 M2 M4 M5
L1 3 5 0 1
L2 5 0 5 0
L4 0 2 0 3
L6 2 1 0 1

Etapa 6: Se observă că matricea din T.V.6.1 conţine cel puţin un zero în


fiecare linie şi coloană , deci marginea inferioară asociată vârfului E33 va fi
ω (E33 ) = ω (E56 ) + 0 = 16 .

Etapa 7: Matricea aflată la pasul 5 este de ordinul 1? Nu, deci se trece la


etapa 8.

Etapa 8: Vârfurilor suspendate E33 , E 33 le corespund marginile inferioare


18, respectiv 16. Se va alege vârful E33 ca rădăcină a unei noi ramificări.
Se revine la etapa 3:

Etapa 3: În T.V.6.1 sunt şase elemente egale cu zero. Lor le corespund


valorile θ ij :
θ 14 = 1 + 0 , θ 25 = 0 + 1 , θ 44 = 0 + 0
θ 24 = 0 + 1 , θ 41 = 0 + 2 , θ 64 = 1 + 0
min{θ 14 ,θ 24 ,θ 25 ,θ 41 ,θ 44 ,θ 64 } = 2 = θ 41
Problema de transport

Etapa 4:

( )
E56 ω E56 = 19 E33 ω (E33 ) = 18 ( )
E41 ω E41 = 18

E
E56 E33
ω (E56 ) = 16 ω (E33 ) = 16 E56
ω (E56 ) = 16

Figura V.6.4

Etapa 5: Se elimină linia L4 şi coloana M 1 :

M2 M4 M5
L1 5 0 1
L2 0 5 0
L6 1 0 1

Etapa 6: ω (E 41 ) = ω (E33 ) = 16 , deoarece matricea din tabelul anterior este


de tip matrice redusă.

Etapa 7: S-a ajuns la o matrice pătratică de ordinul 1? Nu, deci se trece la


etapa 8.

Etapa 8: min{ω (E 41 ), ω (E 41 )} = ω (E 41 ) = 16 .

Algoritmul continuă prin revenirea la etapa 3:

Etapa 3: Se calculează θ ij corespunzătoare elementelor din ultimul tabel:


θ 22 = 0 + 1 , θ 14 = 1 + 0 ,
θ 25 = 0 + 1 , θ 64 = 1 + 0 .
Analiza economico-matematică a unor modele liniare

Toate valorile θ ij sunt egale; în acest caz, se consideră un θ kl


oarecare sau acela pentru care este adevărată relaţia:
ckl = min{cij } = min{c22 , c25 , c14 , c64 } = min{1,3,2,3} = 1 = c22 .

Etapa 4:

E56 E33 E41


ω (E56 ) = 18 ω (E33 ) = 18 ω (E41 ) = 18 E22
ω (E22 ) = 16 + θ 22 = 17

E
E56 E33 E56 E22
ω (E56 ) = 16 ω (E33 ) = 16 ω (E56 ) = 16 ω (E22 )

Etapa 5: Eliminându-se linia 2 şi coloana 2 se obţine:

M4 M5
L1 0 1

L6 0 1

Etapa 6: În coloana corespunzătoare lui M 5 nu există nici un element egal


cu zero, deci β 1 = 0 , β 2 = 1 . Matricea redusă este de forma:

M4 M5
L1 0 0

L6 0 0
Problema de transport

Marginea inferioară asociată lui E 22 se află adunând la ω (E 41 ) suma


(β 1 + β 2 ) :
ω (E 22 ) = 16 + 1 = 17

Etapa 7: Se trece la etapa 8 deoarece ultima matrice este de ordinul 2.

Etapa 8: min{ω (E 22 ), ω (E 22 )} = 17 = ω (E 22 ) = ω (E 22 ) . Se alege E 22 .

Se revine la

Etapa 3: θ 14 = 0 , θ 15 = 0 , θ 64 = 0 , θ 65 = 0 ⇒
⇒ min{c14 , c15 , c64 , c65 } = min{2,5,3,6} = 2 = c14
Nodul E 22 va fi nod iniţial al acelor cu nodurile finale E14 şi E14 .

Etapa 4:

E33 E41 E22


ω (E33 ) = 18 ω (E41 ) = 18 ω (E22 ) = 17
E56 E41
ω (E56 ) = 18 ω (E41 ) = 17

E
ω (E ) = 16 E56 E33 E56 E22 E14
ω (E56 ) = 16 ω (E33 ) = 16 ω (E56 ) = 16 ω (E22 ) = 17
Analiza economico-matematică a unor modele liniare

Etapa 5: Se elimină linia L1 şi coloana M 4 şi se obţine:

M5
L6 0

Etapa 6: Marginea inferioară asociată lui E14 va fi ω (E14 ) = ω (E 22 ) = 17 .

Etapa 7: Algoritmul se opreşte deoarece matricea obţinută este pătratică, de


ordinul 1. Din nodul E14 se trasează arcul cu nodul final E 65 ce va avea
marginea

ω (E 65 ) = ω (E14 ) + 0 = 17

Cuplajul maxim de valoare minimă egală cu ω (E 65 ) = 17 va fi:

L1 M1
2
2 + 1 + 2 + 4 + 2 + 6 = ω (E65 ) = 17

L2 1 M2

L3 2 M3

4
L4 M4

M5
L5 2

M6
L6 6
Problema de transport

Ca şi în cazul primei variante de rezolvare, în finalul aplicaţiei va fi


sistematizat algoritmul aplicat.
Matricea redusă
ai = min tij
(1) j

⎛ ⎞
b j = min⎜ tij − min tij ⎟
i ⎝ j ⎠

(2) n n
ω (E ) = ∑ a + ∑b
i =1
i
j =1
j

(3) Pt. tij = 0 → θ ij = min tij'' + min tij'' , fără tij'' = 0


j i

θ kl = max θ ij

Ekl → Pkl Ekl → Pkl


(4) (5)
ω (Ekl ) = ω (E ) + θ kl
Se suprimă linia k şi coloana l
T1''

(6)
T1'' are câte un (8)
DA
zero pe fiecare ω (Ekl ) = ω (E )
linie şi coloană?

(7) DA
n × n = 1× 1?
NU
După proc. (1) se formează noi
zerouri
∑ ∑
ω (Ekl ) = ω (E ) + ai + b j
i j ω (Ekl ) < ω (Ekl )
NU

DA
(3)
tij'' = +∞ ⇒ se
formează noi
zerouri
STOP
Analiza economico-matematică a unor modele liniare

Pentru a da posibilitatea cititorului să compare cei doi algoritmi şi


să-i clasifice în raport cu volumul de calcul necesar atingerii soluţiei optime
sau pentru a-l alege pe cel care este cel mai uşor de programat pe calculator,
aceştia vor fi aplicaţi pe acelaşi exemplu.

Aplicaţie Programul de fabricaţie al unei anumite piese este compus din


şase operaţii O1 , O2 ,..., O6 , operaţii ce pot fi efectuate pe şase maşini
M 1 , M 2 ,..., M 6 . Vom nota cu t ij timpul necesar efectuării operaţiei O j pe
maşina M i ; datorită faptului că avem maşini diferite, timpii de execuţiei vor
fi în general diferiţi. Dacă pe o anumită maşină nu se poate executa o
anumită operaţie, atunci convenim ca timpul respectiv să ia valoarea infinit.

Cunoscându-se matricea T = (t ij )i , j a timpilor de execuţie exprimaţi

în unităţi temporale (minute, ore, etc)

Oj O1 O2 O3 O4 O5 O6
Mi
M1 ∞ 4 7 2 6 3

M2 1 3 5 8 5 ∞
M3 6 ∞ 8 5 ∞ 7

M4 5 7 3 ∞ 4 5

M5 4 ∞ 9 7 4 4

M6 3 4 9 3 ∞ 5

se cere să se determine palnificarea operaţiilor pe cele şase maşini, astfel


încât timpul total de prelucrare să fie minim.
Problema de transport

Soluţia 1 Vom utiliza algoritmul ungar.

Etapa 1: Vom căuta să obţinem pe fiecare linie şi coloană cel puţin un zero.
Pentru aceasta, evidenţiem din elementele fiecărei linii, respectiv coloane,
elementul minim corespunzător. Scăzând elementul minim al liniei întâi din
toate elementele liniei întâi, ş.a.m.d până la linia şase, se obţine din matricea
T următoarea matrice:

Pasul 1

α1 = 2 ⎛∞ 2 5 0 4 1 ⎞
⎜ ⎟
α2 =1 ⎜ 0 2 4 7 4 ∞⎟
α3 = 5 ~ ⎜ 1 ∞ 3 0 ∞ 2 ⎟⎟
T =⎜
α4 = 3 ⎜2 4 0 ∞ 1 2⎟
⎜0 ∞ 5 3 0 0⎟
α5 = 4 ⎜ ⎟
α6 = 3 ⎜0 1 6 0 ∞ 2⎟
⎝ ⎠

Întrucât nu am obţinut cel puţin un zero pe fiecare coloană, repetăm


procedeul pentru coloane şi obţinem matricea:
Pasul 2
β1 = 0 ⎛∞ 1 5 0 4 1 ⎞
⎜ ⎟
β2 = 1 ⎜ 0 1 4 7 4 ∞⎟
β3 = 0 ⎜1 ∞ 3 0 ∞ 2⎟
TR =⎜ ⎟
β4 = 0 ⎜2 3 0 ∞ 1 2⎟
⎜0 ∞ 5 3 0 0⎟
β5 = 0 ⎜ ⎟
β6 = 0 ⎜0 0 6 0 ∞ 2⎟
⎝ ⎠
⎛ 6 6 ⎞
Se reţine ⎜⎜ ∑ α i + ∑ β j ⎟⎟ = 19 ca margine inferioară a cuplajului
⎝ i =1 j =1 ⎠
maxim de valoare minimă.
Analiza economico-matematică a unor modele liniare

Etapa 2: Trecem acum la încadrarea zerourilor. Se alege linia cu cele mai


puţine zerouri şi se încadrează unul, iar celelalte situate pe linia şi coloana
zeroului încadrat se barează. Se repetă procedeul până ce toate zerourile sunt
încadrate sau barate:
⎛∞ 1 5 0 4 1 ⎞
⎜ ⎟
⎜ 0 1 4 7 4 ∞⎟
⎜1 ∞ 3 0 ∞ 2⎟
⎜ ⎟
⎜2 3 0 ∞ 1 2⎟
⎜0 ∞ 5 3 0 0⎟
⎜ ⎟
⎜0 0 6 0 ∞ 2⎟
⎝ ⎠

Soluţia nu este optimă deoarece nu avem pe fiecare linie şi fiecare


coloană câte un zero încadrat., altfel spus, numărul zerourilor încadrate este
mai mic decât ordinul matricii.
Etapa 3: Determinarea unui suport minimal.
Trecem la marcarea liniilor şi coloanelor după regulile date de
algoritm: se marchează fiecare linie care nu are nici un zero încadrat,
coloanele cu zero barat pe linii marcate, liniile cu zero încadrat pe coloanele
marcate, ş.a.m.d, până ce nu se mai poate face nici o marcare.
În cazul nostru se marchează linia a treia deoarece nu are nici un
zero încadrat, apoi coloana a patra care conţine un zero barat pe linia
marcată şi, în fine, linia întâi cu zero încadrat pe coloana marcată. Alte
posibilităţi de marcare nu mai sunt.
Problema de transport

Se taie apoi liniile nemarcate şi coloanele marcate, pentru a evidenţia


acoperirea minimală, formată din coloana marcată C 4 şi liniile nemarcate L1
şi L3 :

*
⎛ ∞ 1 5 0 4 1 ⎞*
⎜ ⎟
⎜ 0 1 4 7 4 ∞⎟
⎜ 1 ∞ 3 0 ∞ 2 ⎟*
⎜ ⎟
⎜2 3 0 ∞ 1 2⎟
⎜0 ∞ 5 3 0 0⎟
⎜ ⎟
⎜0 0 6 0 ∞ 2⎟
⎝ ⎠

Etapa 4: Se trece acum la deplasarea zerourilor, considerându-se elementul


minim din elementele libere ale matricii, în cazul nostru, 1.
Acesta se scade din fiecare element de tip T1 , se adună la cele de
tipul T3 (elementele din T2 rămân neschimbate). În urma acestei operaţii, se
obţine matricea de mai jos:

⎛∞ 0 4 0 3 0 ⎞
⎜ ⎟
⎜ 0 1 4 8 4 ∞⎟
⎜0 ∞ 2 0 ∞ 1⎟
⎜ ⎟
⎜2 3 0 ∞ 1 2⎟
⎜0 ∞ 5 4 0 0⎟
⎜ ⎟
⎜0 0 6 1 ∞ 2⎟
⎝ ⎠
Analiza economico-matematică a unor modele liniare

Se revine la etapa 2. După efectuarea operaţiilor specifice acestei etape, se


obţine:

⎛∞ 0 4 0 3 0 ⎞
⎜ ⎟
⎜ 0 1 4 8 4 ∞⎟
⎜0 ∞ 2 0 ∞ 1⎟
⎜ ⎟
⎜2 3 0 ∞ 1 2⎟
⎜0 ∞ 5 4 0 0⎟
⎜ ⎟
⎜0 0 6 1 ∞ 2⎟
⎝ ⎠

Întrucât am obţinut pe fiecare linie şi fiecare coloană câte un zero


încadrat, algoritmul se opreşte. Astfel, afectarea optimă a operaţiilor pe
maşini este:
{(M 1 , O6 ), (M 2 , O1 ), (M 3 , O4 ), (M 4 , O3 ), (M 5 , O5 ), (M 6 , O2 )}
cu timpul total de execuţie
t16 + t 21 + t 34 + t 43 + t 55 + t 62 = 3 + 1 + 5 + 3 + 4 + 4 = 20 unităţi temporale.

Soluţia 2 Se va aplica algoritmul lui Little.


Fie matricea
⎛∞ 4 7 2 6 3 ⎞
⎜ ⎟
⎜ 1 3 5 8 5 ∞⎟
⎜6 ∞ 8 5 ∞ 7⎟
T =⎜ ⎟
⎜5 7 3 ∞ 4 5⎟
⎜4 ∞ 9 7 4 4⎟
⎜ ⎟
⎜3 4 9 3 ∞ 5⎟
⎝ ⎠
care defineşte complet şi unic problema.
Problema de transport

Etapa 1: Matricea redusă a fost obţinută la etapa 1 a algoritmului Kuhn-


Tucker:
⎛∞ 1 5 0 4 1⎞
⎜ ⎟
⎜0 1 4 7 4 8⎟
⎜1 ∞ 3 0 ∞ 2⎟
TR =⎜ ⎟
⎜2 3 0 ∞ 1 2⎟
⎜0 ∞ 5 3 0 0 ⎟⎟

⎜0 0 6 0 ∞ 2 ⎟⎠

Etapa 2:
n n n n
ω (E ) = ∑ ∑
i =1
ai +
j =1
bj = ∑i =1
min tij +
j
∑ min⎛⎜⎝ t
j =1
i
ij
j

− min tij ⎟ = 2 + 1 + 5 + 3 + 4 + 3 + 1 = 19 .

Putem considera rădăcina E a arborescenţei asociată matricii cu valoarea în


vârful E egală cu 19.

E → ω (E ) = 19

Etapa 3: Asociem fiecărui t 'ij = 0 cantitatea


θ ij = min t 'iu + min t ' vj .
u v
t 'iu ≠ t 'ij t 'vj ≠ t 'ij

În cazul nostru, avem:


θ 14 = 1 + 0 = 1 θ 55 = 0 + 1 = 1
θ 21 = 1 + 0 = 1 θ 56 = 0 + 1 = 1
θ 34 = 1 + 0 = 1 θ 61 = 0 + 0 = 0
θ 43 = 1 + 3 = 4 θ 62 = 0 + 1 = 1
θ 51 = 0 + 0 = 0 θ 63 = 0 + 0 = 0 .

Rezultă că max{θ 14 ,θ 21 ,θ 34 ,θ 43 ,θ 51 ,θ 55 ,θ 56 ,θ 61 ,θ 62 ,θ 63 } = θ 43 = 4 .
Analiza economico-matematică a unor modele liniare

Etapa 4: Aşadar, am obţinut vârfurile E43 şi E43 ale arborescenţei, cu


valorile ataşate lor:
ω (E43 ) = ω (E ) + θ 43 = 19 + 4 = 23
ω (E43 ) = 19 + ω (E43 ) = 19 .
Etapa 5:

E 43
ω (E43 ) = 23
E
ω (E ) = 19 E 43
ω (E43 ) = 19

Etapa 6: Deoarece ω (E43 ) = 0 (matricea rămasă din T R , după ce tăiem


linia a patra şi coloana a treia are pe fiecare linie şi coloană cel puţin câte un
zero) se trece la:

⎛∞ 1 5 0 4 1⎞
⎜ ⎟
⎜0 1 4 7 4 8⎟
⎜1 ∞ 3 0 ∞ 2⎟
⎜ ⎟
⎜2 3 0 ∞ 1 2⎟
⎜0 ∞ 5 3 0 0 ⎟⎟

⎜0 0 6 0 ∞ 2 ⎟⎠

Revenind la etapa 3, se calculează:


θ 14 = 1 + 0 = 1 θ 55 = 0 + 4 = 4
θ 21 = 1 + 0 = 1 θ 56 = 0 + 1 = 1
θ 34 = 1 + 0 = 1 θ 61 = 0 + 0 = 0
θ 51 = 0 + 0 = 0 θ 62 = 0 + 1 = 1
θ 63 = 0 + 0 = 0
Problema de transport

Se constată că: max{θ 14 ,θ 21 ,θ 34 ,θ 51 ,θ 55 ,θ 56 ,θ 61 ,θ 62 ,θ 63 } = θ 55 = 4 .


Deci,
ω (E55 ) = ω (E43 ) + θ 55 = 19 + 4 = 23 ,
ω (E55 ) = ω (E43 ) + ω (E55 ) = 19 + 1 = 20 ,
deoarece ω (E55 ) = 1 (matricea rămasă după ce s-au tăiat linia a cincea şi
coloana a cincea nu are zero pe coloana şase, însă, scăzând 1 din elementele
coloanei şase, obţinem pe toate liniile şi coloanele rămase cel puţin câte un
zero).

⎛∞ 1 5 0 4 1⎞
⎜ ⎟
⎜0 1 4 7 4 8⎟
⎜1 ∞ 3 0 ∞ 2⎟
⎜ ⎟
⎜2 3 0 ∞ 1 2⎟
⎜0 ∞ 5 3 0 0 ⎟⎟

⎜0 0 6 0 ∞ 2 ⎟⎠

Scăzând din elementele coloanei şase (cele netăiate) valoarea 1, se obţine


matricea

⎛∞ 1 5 0 4 0⎞
⎜ ⎟
⎜0 1 4 7 4 7⎟
⎜1 ∞ 3 0 ∞ 1⎟
⎜ ⎟.
⎜2 3 0 ∞ 1 2⎟
⎜0 ∞ 5 3 0 0 ⎟⎟

⎜0 0 6 0 ∞ 1 ⎠⎟

Analiza economico-matematică a unor modele liniare

Calculând mai departe, se obţin valorile:


θ 14 = 0 + 0 = 0 θ 34 = 1 + 0 = 1
θ 16 = 1 + 0 = 1 θ 61 = 0 + 0 = 0
θ 21 = 1 + 0 = 1 θ 62 = 0 + 1 = 1
θ 64 = 0 + 0 = 0
cu
⎧θ 16
⎪θ

max{θ 14 ,θ 16 ,θ 21 ,θ 34 ,θ 55 ,θ 61 ,θ 62 ,θ 64 } = 4 = ⎨ 21
⎪θ 34
⎪⎩θ 62

Alegem ca valoare maximă (care nu este unică) pe θ 16 . Atunci,


ω (E16 ) = ω (E55 ) + θ16 = 20 + 1 = 21 ,
ω (E16 ) = ω (E55 ) + ω (E16 ) .

Din matricea

⎛∞ 1 5 0 4 0⎞
⎜ ⎟
⎜0 1 4 7 4 7⎟
⎜1 ∞ 3 0 ∞ 1⎟
⎜ ⎟
⎜2 3 0 ∞ 1 2⎟
⎜0 ∞ 5 3 0 0 ⎟⎟

⎜0 0 6 0 ∞ 1 ⎟⎠

rezultă că ω (E16 ) = 0 (matricea rămasă după tăiere are pe fiecare linie şi


fiecare coloană cel puţin un zero), şi, prin urmare, ω (E16 ) = 20 .
Problema de transport

Corespunzător noii matrice, avem:


θ 21 = 1 + 0 = 1 θ 61 = 0 + 0 = 0
θ 34 = 1 + 0 = 1 θ 62 = 0 + 1 = 1
θ 64 = 0 + 0 = 0
⎧θ 21

de unde max{θ 21 ,θ 34 ,θ 61 ,θ 62 ,θ 64 } = 1 = ⎨θ 34 .
⎪θ
⎩ 62
Alegem ca valoare maximă pe θ 21 şi atunci
ω (E21 ) = ω (E16 ) + θ 21 = 20 + 1 = 21 ,
ω (E21 ) = ω (E16 ) + ω (E21 ) = 20 ,
pentru că ω (E21 ) = 0 .

Rezultă matricea

⎛∞ 1 5 0 4 0⎞
⎜ ⎟
⎜0 1 4 7 4 7⎟
⎜1 ∞ 3 0 ∞ 1⎟
⎜ ⎟
⎜2 3 0 ∞ 1 2⎟
⎜0 ∞ 5 3 0 0 ⎟⎟

⎜0 0 6 0 ∞ 1 ⎟⎠

Calculăm iarăşi
θ 34 = ∞ , θ 62 = ∞ , θ 64 = 0 + 0 = 0 .

Alegem ca valoare maximă pe θ 34 şi găsim că

ω (E34 ) = ω (E21 ) + θ 34 = ∞ ,
ω (E34 ) = ω (E21 ) + ω (E34 ) = 20 ,
Analiza economico-matematică a unor modele liniare

deoarece, după ce am suprimat şi linia a treia şi coloana a patra, am ajuns la


matricea cu o linie şi o coloană, cu elementul înscris zero. Prin urmare, am
obţinut arborescenţa:

E43
ω (E43 ) = 23 E55
E16
E21
ω (E16 ) = 21
E34
ω (E55 ) = 23 ω (E21 ) = 21 ω (E ) = 23
(23) 34
(23) (23) (23)
(23)

E62
ω (E62 ) = 20
E E43 E16 E21
E55 E34
ω (E ) = 19 ω (E43 ) = 19 ω (E ) = 20 ω (E16 ) = 20 ω (E21 ) = 20 ω (E34 ) = 20
55

din care citim soluţia optimă (afectarea – repartizarea - optimă a operaţiilor


pe maşini):
{(M 1 , O6 ), (M 2 , O1 ), (M 3 , O4 ), (M 4 , O3 ), (M 5 , O5 ), (M 6 , O2 )} ,
cu timpul total de execuţie t tot = 20 unităţi temporale.

Observaţie: Din faptul că la ultimele trei etape max{θ ij } nu este unic


i, j
t 'ij = 0

determinat, s-ar părea că soluţia nu este unic determinată. Se constată,


totuşi, că valorile θ ij ce realizează maximul au indici care intră în soluţia
optimă şi, deci, avem soluţie unică. Acest lucru rezultă şi din calculul direct,
luînd în consideraţie toate variantele posibile constatăm că, în final, obţinem
aceeaşi afectare optimă pentru fiecare din cazuri.
VI. PROBLEME PROPUSE

1. Se dă următorul program liniar:

[min] f = 3 x1 + 2 x 2 + 4 x3 + 2 x 4 + 3 x5
⎧ x1 + 2 x 2 + x3 + x 4 = 10
⎨ .
⎩2 x1 + 3 x 2 + x 4 + x5 = 15
x j ≥ 0, ∀j ∈ 1,5

a) Să se stabilească soluţia optimă, X * .


b) Să se scrie duala şi să se justifice existenţa sau nonexistenţa soluţiei sale
optime.
c) Să se genereze o soluţie admisibilă de bază pentru duală, U SAB . Ce
( )
relaţie există între g (U SAB ) şi f X * ?

2. Pentru problema
[min] f = 50 x1 + 25 x 2 + 30 x3
⎧ x1 + 2 x 2 + 3 x3 ≥ 8
⎨ ,
⎩3 x1 + 4 x 2 + x3 ≥ 9
x j ≥ 0, ∀j ∈ 1,3
se cer:
a) Să se scrie duala problemei date.
b) Să se determine soluţia optimă a primalei, aplicând algoritmul simplex
dual.
Analiza economico-matematică a unor modele liniare

c) Să se aplice algoritmul simplex primal pentru a stabili soluţia optimă a


dualei.
d) Soluţia optimă a dualei se menţine dacă modelul se extinde cu restricţia
u1 ≥ 5 ? Dar dacă se elimină prima restricţie?

3. Se dau:
⎡1 2 0 ⎤ ⎛ 680 ⎞
⎢ ⎥ ⎜ ⎟
[max] f = 20 x1 + 16 x 2 + 17 x3 , A = ⎢2 1 4⎥ , b = ⎜ 800 ⎟ ,
⎢⎣2 2 1 ⎥⎦ ⎜ 900 ⎟
⎝ ⎠
⎛1 1 − 3 / 2⎞
−1
⎜ ⎟
B = ⎜ 0 1 − 1/ 2 ⎟ .
⎜0 −1 1 ⎟⎠

a) Matricea B −1 este inversa bazei optimale pentru programul liniar scris
sub formă canonică, ce utilizează elementele date şi corespunde unui
program de fabricaţie sub aspectul profitului aşteptat. Determinaţi acest
program.
b) Să se scrie dualul programului de la a) şi să se afle soluţia sa optimă. Să
se interpreteze economic, folosind teoremele dualităţii.

[max] f ( x1 , x 2 ) = 12 x1 + 15 x 2
⎧4 x1 + 3 x 2 ≤ 1200

4. În modelul liniar ⎨ x1 + 2 x 2 ≤ 500 , semnificaţiile
⎪ 3 x + 2 x ≤ 900
⎩ 1 2

x j ≥ 0, ∀j ∈ 1,2
Probleme propuse

constantelor sunt următoarele:


● aij → cât se consumă din resursa Ri , i ∈ {1,2,3} , pentru a obţine o unitate
din produsul Pj , j ∈ {1,2} , în ipoteza că R1 reprezintă forţa de muncă,
iar R2 , R3 capacităţi de producţie;
● c j → venitul aşteptat de la o unitate de produs Pj , j ∈ {1,2} .

Se cer:

a) Să se scrie dualul modelului dat şi să se determine o soluţie dual


realizabilă a acestuia.
b) Determinaţi solutiile optime ale celor două probleme duale. Interpretaţi
economic rezultatele.
c) Cu cât se modifică valoarea venitului total aşteptat (stabilit la punctul b)
dacă forţa de muncă scade cu 150.
d) Presupunem că b1 = 1200 − α şi b1 ∈ [900,1500] , din considerente
practice. Există valori ale parametrului α pentru care (a 2 a1 a3 ) este
bază optimală?
e) Teoremele fundamentale ale programării liniare; utilizarea lor în
rezolvarea grafică.

5. (Problemă de amestec)
O uzină trebuie să producă un aliaj care să conţină 45% plumb şi
55% zinc. Pentru aceasta, uzina poate să cumpere aliajele A, B, C şi D, ale
căror compoziţii şi preţuri sunt cele din tabelul de mai jos. Cât trebuie să se
cumpere din fiecare aliaj A, B, C, D, astfel încât costul unitar de obţinere a
aliajului dorit să fie minim?
Analiza economico-matematică a unor modele liniare

Aliajul care
Aliaje A B C D
trebuie obţinut
% plumb 20 30 10 60 45
% zinc 80 70 90 40 55
Preţul de cost
6 4 8 3 minim
pe un kg

6. Într-o secţie a unei întreprinderi se produc trei tipuri de repere R1 , R2 şi


R3 , la realizarea cărora se folosesc două tipuri de resurse, M 1 şi M 2 .
Reperele se prelucrează pe două grupuri de utilaje, U 1 şi U 2 . Fondul de
timp disponibil al utilajelor este de 500 ore, respectiv 800 ore. Disponibilul
din materia primă M 1 este limitat la 400kg, în timp ce materia primă M 2 se
găseşte în cantitate suficientă. Totuşi, pentru a preveni formarea unui stoc
prea mare, trebuie consumate lunar minimum 600kg din M 2 . Consumurile
specifice de materia primă (în kg) şi de timp de prelucrare (în ore) pe utilaje,
pentru fiecare reper, sunt date în tabelele următoare:

Timp de prelucrare Materie Consum specific


Utilaje
R1 R2 R3 primă R1 R2 R3
U1 1 0 1 M1 0 2 1
U2 1 1 2 M2 2 0 1

Beneficiile unitare sunt de 30, 20, 40 unităţi monetare.

a) Să se stabilească planul optim de producţie, utilizând maximizarea


profitului drept criteriu de eficienţă.
Probleme propuse

b) Să se studieze variaţia soluţiei optime dacă: c1 = 30 + α , c 2 = 20 + 2α ,


1
c3 = 40 + α , unde α ∈ [− 4,10] .
2

7. Fie problema
[max] f ( x1 , x 2 ) = 12 x1 + 15 x 2
⎧ x1 + x3 ≤ 500
⎪ x + x + 2 x ≤ 800
⎪ 1 2 3

⎪ 2 x 2 + x3 ≤ 400
⎪⎩2 x1 + x3 ≥ 600
x j ≥ 0, ∀j ∈ 1,3

a) Determinaţi soluţia optimă, X * , a acestei probleme.


b) Construiţi duala şi aflaţi soluţia ei optimă, U * . Interpretaţi economic,
dacă este vorba despre un program de fabricaţie.
⎛ 500 ⎞
⎜ ⎟
~ ⎜1200 ⎟
c) Reoptimizaţi după b = ⎜ .
600 ⎟
⎜ ⎟
⎜ 600 ⎟
⎝ ⎠
d) Reoptimizaţi după c = (32 25 35) .
~

Justificaţi economic postoptimizările în problema de programare liniară.

8. Se dă:

[max] f ( x1 , x 2 ) = x1 + 2 x 2 + 2 x3 + 4 x 4 + x5
⎧ x1 + x 2 + 2 x3 + x5 ≤ 4000

⎨ x1 + x3 + x 4 + x5 = 6000
⎪ x + 2 x + x + 2 x ≤ 8000
⎩ 1 2 4 5

x j ≥ 0, ∀j ∈ 1,5
Analiza economico-matematică a unor modele liniare

a) Să se afle soluţia optimă a programului liniar de mai sus.


b) Să se scrie duala problemei şi să se afle soluţia ei optimă. Interpretarea
economică a variabilelor dualei.

9. Fie programul liniar:


[max] f ( x1 , x 2 ) = 3 x1 + 2 x 2 + 2 x3
⎧3 x1 + 2 x 2 + 2 x3 ≤ 8000

⎨ 2 x1 + x 2 + 2 x3 ≤ 4000 .
⎪4 x + 3 x + 2 x ≥ 6000
⎩ 1 2 3

x j ≥ 0, ∀j ∈ 1,3

a) Să se afle soluţia optimă.


b) Să se scrie duala şi să se afle soluţia optimă a dualei.

10. Se consideră următorul program liniar:


[min] f = 2 x1 + 20 x 2 + 3 x3 + 11x 4 + 12 x5
⎧ x1 + x3 + x 4 − 2 x5 ≥ 700

⎩ x 2 + x 4 + x5 ≥ 400
x j ≥ 0, ∀j ∈ 1,5

a) Să se genereze o soluţie admisibilă de bază (X )


(1)
pentru această
(
problemă şi două soluţii admisibile de bază U (1) şi U ( 2 ) pentru duala )
sa. Ce relaţie există între f X (1) ( ) ( )
şi g U (1) ? Dar între f X (1) ( ) şi
( )
g U ( 2 ) ? Justificaţi răspunsurile.
b) Generaţi o soluţie dual realizabilă.
Probleme propuse

11. Un mic atelier produce două tipuri de piese de automobil, simbolizate


prin A şi B. În acest atelier, piesele sunt supuse unor operaţii de strunjire,
găurire şi şlefuire.

W PR PV
CI
A B A B A B
Strunjire 25 40 20
Găurire 28 35 2 3 14 5 6
Şlefuire 35 25 17,5
Notaţii:
- W: productivitatea maşinilor (bucată/h);
- PR: preţ ($);
- CI: cheltuieli pentru întreţinerea maşinilor ($/h);
- PV: preţ de vânzare ($).
Se cer:
a) Ce combinaţie a celor două produse va asigura beneficiul maxim?
(presupunem că poate fi vândută orice cantitate di piesele A şi B).
b) Cu cât va creşte beneficiul dacă timpul de folosire a strungului creşte cu
o unitate?

12. O unitate produce două sortimente de produse, S1 şi S 2 , utilizând trei


utilaje, M 1 , M 2 şi M 3 . În tabelul de mai jos sunt date capacităţile de
producţie ale maşinilor (în ore), precum şi consumul de ore-maşină pentru
fiecare sortiment:

Sortiment S1 S2 Capacitate
Maşină disponibilă
M1 1 4 16

M2 2 1 8

M3 1 1 5

Beneficiu unitar 7 4
Analiza economico-matematică a unor modele liniare

Se cere stabilirea structuriisortimentale optime, în limita cantităţilor


disponibile.

13. Un utilaj este alcătuit din trei subansamble, A1 , A2 , A3 . Realizarea lor se


face într-o secţie dotată cu trei tipuri de maşini, M 1 , M 2 , M 3 , din care 10 de
tip M 1 , 10 de tip M 2 şi 15 de tip M 3 . Capacităţile de producţie ale celor
trei maşini (bucaţi/zi) pentru cele trei subansamble sunt date în tabelul
următor:

A1 A2 A3 Observaţie: Căsuţele în care


M1 70 50 - se găseşte “-“ arată că maşina
Mi nu poate produce
M2 - 100 20
subansamblul A j .
M3 40 - 40
Beneficiu pentru
1000 1500 2000
subansamblu

Utilajul este compus din două subansamble de tip A2 şi câte unul de tip A1
şi A3 .

a) Să se stabilească numărul maxim al subansamblelor executate zilnic şi


să se calculeze numărul de utilaje obţinut din aceste subansamble.
b) Să se stabilească numărul maxim al utilajelor ce se pot realiza zilnic şi
să se compare rezultatele obţinute cu cele găsite la punctul a).
Să se analizeze beneficiul zilnic obţinut, atât pe subansamble cât şi pe
utilaje.
c) Din motive de siguranţă în funcţionare, numărul de subansamble de
fiecare tip ce se vor asambla la fiecare utilaj va fi de (λ + 1) pentru A1 ,
(λ + 2) pentru A2 şi (λ + 1) pentru A3 , iar cel mai mare număr de
Probleme propuse

subansamble din oricare tip A1 , A2 sau A3 , asamblate la utilaj, să nu


depăşească 5 bucăţi (din fiecare subansamblu).
Să se determine numărul maxim de utilaje ce poate fi obţinut în aceste
condiţii şi să se scrie pentru fiecare utilaj acceptabil acest număr maxim
de utilaje.
Să se analizeze beneficiul obţinut zilnic şi să se determine utilajul pentru
care întreprinderea are cel mai mare beneficiu zilnic. Să se reprezinte
grafic aceste beneficii în funcţie de λ .
d) Să se analizeze rezultatele ce sepot obţine la punctele a) şi b), când
disponibilul de maşini din fiecare tip afectate producţiei de subansamble
este variabil: (10 − λ ) pentru M 1 , (15 − λ ) pentru M 2 , iar pentru M 3
disponibilul rămâne neschimbat.
Să se compare, în funcţie de λ , cele două rezultate obţinute în condiţiile
punctelor a) şi b) şi beneficiile corespunzătoare, şi să se aleagă soluţia
corespunzătoare beneficiului cel mai mare. (Se va reprezenta grafic
beneficiul pentru fiecare λ admisibil.)

14. Într-un combinat chimic, în procesul de fabricaţie rămân zilnic


disponibile cantităţile de H, Cl şi N indicate în tabelul de mai jos:

Produse Coeficienţi tehnologici


Disponibil
X1 X2 X3 X4 X5 zilnic
P1 P2 P3 P4 P5 (metri cubi)
Materii prime
Hidrogen 2000 400 14 ⋅ 10
Clor 300 750 4 ⋅ 10
Azot 900 150 250 300 16 ⋅ 10

Întreprinderea trebuie să folosească aceste materii prime cât mai


productiv. Din aceste materii prime se pot fabrica următoarele produse:
Analiza economico-matematică a unor modele liniare

amoniac anhidric (NH 3 ) , acidul azotic (HNO3 ) , NH 4 , NO3 , HCl ,


ClNH 4 .
Tabelul arată consumul de materie primă pe unitatea de produs
(tonă), precum şi beneficiul rezultat (lei/tonă).
Să se determine planul optim de folosire a materiilor prime
disponibile astfel încât beneficiul să fie maxim.

15. O uzină metalurgică produce trei tipuri de cablu, A, B, C, diferenţiate


prin diametru. Procesul tehnologic cuprinde trei faze, şi anume:
- călirea cablului furnizat de laminor;
- reducerea diametrului;
- tăierea, îndreptarea şi ambalarea cablului.
În tabelul de mai jos sunt indicate, pentru fiecare sortiment, consumurile
de timp necesare efectuării celor trei operaţii şi fondurile de timp
disponibil:

Operaţia A B C Fond de timp


Calirea 2 2 2 40
Reducerea 1 3 4 48
Tăierea 1 2 2 45
Valoarea producţie
30 80 90
(mii lei/tonă)

Se cer:
a) Care este structura optimă a planului de producţie corespunzător valorii
maxime a acestuia?
b) Care este structura optimă a producţiei, dacă preţurile de producţie sunt
20, 50, 70.
Să se scrie duala problemei rezolvate la punctul a). Care este soluţia sa
optimă? Interpretarea economică a rezultatelor.
Probleme propuse

16. O întreprindere industrială, după realizarea planului de producţie, mai


are în stoc 1050 unităţi din M 1 , 700 unităţi din M 2 şi 1750 unităţi din M 3 .
Cu ajutorul acestor trei materii prime se pot fabrica reperele R1 , R2 şi R3 .
Consumurile specifice şi veniturile unitare referitoare la cele trei tipuri de
repere sunt date în următorul tabel:

Consumuri specifice
P1 P2 P3
M1 1 3 4

M2 2 5 1

M3 4 1 2
Beneficiu unitar
30 20 60
(u.m.)

a) Se cere să se determine acel plan de producţie ce corespunde unui


beneficiu total maxim.
b) Să se scrie duala problemei rezolvate la punctul a) şi să se afle
soluţia sa optimă. Enunţaţi teorema fundamentală a dualităţii. Ce
afirmaţie a sa este verificată pentru cuplul de probleme duale
enunţate ? Interpretare economică a variabilelor u1* şi u 2* .
c) Pentru ce valori ale lui α se menţine planul optim de producţie
1
stabilit la punctul a) dacă c1 (α ) = 3 + α , c 2 (α ) = 2 + α ,
2
1
c3 (α ) = 6 − α .
4
⎛114 ⎞
~ ⎜ ⎟
d) Să se stabilească S.O. dacă b = ⎜140 ⎟ .
⎜140 ⎟
⎝ ⎠
Analiza economico-matematică a unor modele liniare

17. Societatea comercială “Electro-putere Craiova” îşi programează


producţia de motoare electrice pentru anul viitor. În acest scop, s-au alocat
următoarele resurse:
- “C”: cost → cel mult 15 miliarde lei;
- “N”: număr personal → cel mult 2000 persoane;
- “q”: producţia fizică → cel puţin 1000 bucăţi motoare.

Se culeg date din evidenţele întreprindeii cu privire la indicatorii


specificaţi:

Denumire
Nr. produs
PV C W S a' v P = Pv − C q
(mii lei/ (mii lei/ (mii lei/ (mii lei/
($/ (mii lei/
crt. (motoare (bucată)
bucată) bucată) bucată) bucată) bucată) bucată)
electrice)
1 2600CP 950 800 800 5000 1000 150 x1
2 3100CP 1150 1000 1000 5500 1100 150 x2
3 3900CP 1300 1100 1200 5250 1150 200 x3
4 4500CP 1350 1200 1300 4750 1200 150 x4

unde:
- C: costul unitar;
- Pv : preţul de vânzare unitar;
- P: profitul unitar;
- S: investiţia specifică;
- a ' v : aportul valutar unitar;
- Q: producţia valorică; Q = q ⋅ Pv ;
Q q ⋅ Pv P
- W= = ⇒ N = v ⋅q .
N N W

Se cere programul de producţie în aceste condiţii, pentru:


a) Maximizarea profitului (P).
Probleme propuse

b) Maximizarea aportului valutar ( a ' v ).


c) Minimizarea investiţiilor ( I t ).

18. Să se planifice producţia pieselor A, B, C, în scopul obţinerii


beneficiului maxim, ţinând seama de datele din următorul tabel:

Ore necesare pe unitatea de


Cerere Beneficiu
Piese produs
unitar
Min Max S:1 S:2 S:3 S:4
A 20 200 0,10 0,06 0,18 0,13 10
B 0 100 0,12 0,05 - 0,10 12
C 70 180 0,15 0,09 0,07 0,08 15
Ore disponibile 36 30 37 38

19. Într-un atelier mecanic se găsesc două freze, F1 şi F2 , şi un strung, T.


Programul de lucru al acestui atelier este stabilit la începutul fiecărui
trimestru şi are un caracter obligatoriu şi permanent. După executarea lui,
rămân disponibile 200h la strungul T, 84h la freza F1 şi 100h la freza F2 .
Se pune problema utilizării cât mai eficiente a acestor ore disponibile.
Trei clienţi au solicitat atelierului executarea a trei tipuri de piese
mecanice, P1 , P2 , P3 . Executarea acestor piese necesită întotdeauna două
operaţii: una pe strungul T şi cealaltă pe una din frezele F1 sau F2 . Timpii
de executare a acestor operaţii au fost evaluaţi în ore şi sunt daţi în tabelul
următor:

P1 P2 P3
T 2 1 5
F1 6 5 3

F2 5 5 4
Analiza economico-matematică a unor modele liniare

Fabricarea unei piese de tip P1 , P2 , respectiv P3 , aduce un beneficiu de 60,


40, respectiv 3,5 u.m. Să se determine planul de producţie, în vederea
obţinerii unui beneficiu maxim.

20. Se consideră programul liniar:

[min] f = x1 + x 2 + 3 x3 + 4 x 4 + 2 x5 + 5 x6
⎧ x1 + 2 x 2 + 3x3 + x 4 = 400

⎨2 x1 + x 2 + x3 + x5 = 200
⎪3x + 4 x + 2 x + x = 1000
⎩ 1 2 3 6

x j ≥ 0, ∀j ∈ 1,6

a) Să se afle soluţia sa optimă.


⎛ 1 ⎞
b) Reoptimizare după c(α ) = ⎜1 + 2α 1 3 − α 4+ α 25 − α 5⎟ ,
⎝ 2 ⎠
pentru α ∈ [0,6] .
⎛1⎞
~ ⎜ ⎟
c) Reoptimizare după P3 = ⎜ 2 ⎟ .
⎜1⎟
⎝ ⎠

21. Fabricarea a două produse, A şi B, necesită trei operaţii succesive.


Primele două operaţii se execută în secţiile 1 şi 2 ale uzinei respective, iar a
treia poate fi executată într-una din secţiile 3 sau 4.
Probleme propuse

În continuare, se dau consumurile unitare de timp de prelucrare,


fondul de timp disponibil al fiecărei secţii în cursul unei luni:

Secţia 3

Secţia 1 Secţia 2 4
Produsul A
3 2 Secţia 4

Beneficiul pe unitatea de produs A realizat pe filiera 1, 2, este de


120u.m. Beneficiul pe unitatea de produs A realizat pe filiera 1, 2, 4 este de
100u.m.
Beneficiul pe unitatea de produs B realizat pe filiera 1, 2, 3 este de
65u.m. Beneficiul pe unitatea de produs B realizat pe filiera 1, 2, 4 este de
45u.m.
Fondurile de timp disponibil ale celor patru secţii sunt: 1450, 1080,
600 şi 300.
Să se determine structura planului optim de producţie astfel încăt
beneficiul total să fie maxim.

22. Să se rezolve problema de transport cu datele:

C1 C2 C3 C4 C5 D

D1 6 6 10 5 4 200

D2 10 4 6 7 8 800

D3 6 5 3 2 5 400

D4 5 7 7 4 6 600
N 500 200 400 500 400
Analiza economico-matematică a unor modele liniare

23. Trei intreprinderi siderurgice, S1 , S 2 , S 3 , au nevoie zilnic de 14 ⋅ 10 3 t,


24 ⋅ 10 3 t, respectiv 50 ⋅ 10 3 t de fier vechi. Trei uzine, U 1 , U 2 , U 3 , pot furniza
diverse tipuri de fier ce intră în categoria fier vechi, în următoarele cantităţi:
30 ⋅ 10 3 t, 28 ⋅ 10 3 t, respectiv 49 ⋅ 10 3 t. În următorul tabel sunt cuprinse
costurile unitare corespunzătoare deplasării pe calea ferată între U i şi S j

(t/mii lei) şi capacitatea de transport pe ruta (i, j ) , i = 1,2 , j = 1,3 :

S1 S2 S3
5 4 6
U1 14
7 6 10
3 2 3
U2 24
15 10 15
10 7 9
U3 50
20 15 22
30 28 49

Să se determine varianta optimă de transport, sub aspectul preţului.

24. Să se rezolve următoarea problemă de transport:

Beneficiar
FRB OLTENI SUCEAVA IAŞI Disponibil
Furnizor
SIRIA 20.000 30.000 30.000 20.000 100.000
EGIPT 30.000 10.000 10.000 50.000 100.000
CHINA 30.000 40.000 100.000 30.000 200.000
CONGO 20.000 20.000 60.000 0 100.000
Necesar 100.000 100.000 200.000 100.000
Probleme propuse

25. Se consideră următoarea problemă de transport:

P1 P2 P3 P4 D

D1 2 4 3 2 500

D2 6 5 5 6 400

D3 6 3 1 4 350
N 500 200 300 400 *

Se cer:

a) Modelul matematic pentru problema echilibrată şi modelul dualei sale.


b) Să se stabilească o soluţie iniţială. Interpretare economică.
c) Să se găsească soluţia optimă dacă P3 trebuie să primească întreaga
cantitate solicitată.
d) Problema de transport este rezolvată prin algoritmul simplex dual?
Justificaţi răspunsul.

26. Patru fabrici de panificaţie sunt aprovizionate cu făină de un anumit sort,


de trei depozite, D1 , D2 , D3 . În următorul tabel sunt date:
- cantităţile disponibile într-o anumită perioadă;
- cantităţile solicitate;
- costurile unitare de transport.

P1 P2 P3 P4 D

D1 2 4 3 2 500

D2 6 5 5 6 400

D3 6 3 1 4 350
N 1250
500 200 300 400 1400
Analiza economico-matematică a unor modele liniare

Se cer:

a) soluţia optimă;
b) soluţia optimă dacă P3 trebuie să primească întreaga cantitate solicitată;
c) soluţia optimă în ipoteza că ruta (D2 , P2 ) nu poate fi folosită în perioada
considerată.

27. Pentru mărirea vânzărilor sale, NASTIMEX are 3 depozite de marfă,


situate în diferite locuri. Societatea trebuie să asigure marfa celor patru
puncte de desfacere din ţară. Costul de transport este suportat de firmă.
Să se elaboreze un plan de aprovizionare a celor 4 centre de
desfacere cu articole sportive, de la cele 3 depozite, astfel încât costul total
al transportului să fie minim. Costurile unitare de transport, necesarul
fiecărui centru şi disponibilul din fiecare depozit sunt date în tabelul
următor:

C1 C2 C3 C4 Disponibil

D1 10 20 20 11 15

D2 15 7 9 20 25

D3 12 14 13 18 30
Necesar 5 20 15 30

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