Cuprins

I. Forma generală a problemei e programare liniară. Definiţii şi proprietăţi fundamentale ...........................................................................
1.a) Forma gnerală. Forme echivalente .................................................................................... 1.b) Baze tipuri de soluţii ........................................................................................................... 1.c) Teoremele fundamentale ale programării liniare .......................................................... 2.a) Problema duală ...................................................................................................................... 2.b) Teoremele fundamentale ale dualităţii ........................................................................... 3. Rezolvarea modelelor liniare în spaţiul bunurilor R2+ ..................................................... 4. Probleme propuse pentru fixarea cunoştinţelor ..............................................................

5 5 8 11 12 15 16 43 57 57 57 60 63 76 76 83 89 91 94 98 102 111 122 134 135

II. Metode SIMPLEX pentru modele liniare ...............................................
1. Algoritmul SIMPLEX primal. Descriere .............................................................................. 1.a) Teoreme fundamentale ale algoritmului SIMPLEX primal .......................................... 1.b) Schema de rezolvare prin algoritmul Simplex primal .................................................. 1.c) Aplicaţii ale algoritmului SIMPLEX .................................................................................. 2. Generarea SAB prin metode particulare ........................................................................... 2.a) Metoda bazei artificiale ..................................................................................................... 2.b) Metoda celor două faze ..................................................................................................... 3. Degenerare şi ciclare în probleme de programare liniară .............................................. 3.a) Metoda lexicografică .......................................................................................................... 3.b) Metoda perturbaţiilor ........................................................................................................ 3.c) Ciclare ..................................................................................................................................... 4. Algoritmul SIMPLEX revizuit ............................................................................................... 5. Algoritmul SIMPLEX dual ...................................................................................................... 6. Probleme pentru fixarea cunoştinţelor ..............................................................................

III. Analiza economico-matematică a problemelor aflate în dualitate .
1. Analiza problemei primale ......................................................................................................

2. Analiza economico-matematică a problemelor primală-duală ........................................ 3. Interpretarea geometrică a dualităţii ...............................................................................

143 154 160 160 162 167 177 188 193 197 222 222 235 265 265 271 293 301 308 344 362

IV. Postoptimizare în programarea liniară ...................................................
1. Aspectul economic al postoptimizării .................................................................................. 2. Postoptimizarea prin modificarea coeficienţilor funcţiei scop .................................... 3. Postoptimizarea în cazul modificării vectorului b ........................................................... 4. Postoptimizarea în cazul modificării vectorului

aj, j∈ J

5. Postoptimizarea în cazul adăugării unor restricţii .......................................................... 6. Postoptimizarea în cazul adăugării unor noi variabile ..................................................... 7. Probleme pentru fixarea cunoştinţelor ..............................................................................

V. Problema de transport .................................................................................
1. Problema de transport echilibrată. Model matematic. Proprietăţi .............................. 2. Modelarea şi rezolvarea problemelor de transport echilibrate ................................... 3. Probleme reductibile la problema de transport echilibrată .......................................... 3.1. Probleme de transport cu rută blocată. Soluţii admisibile degenerate ................... 3.2. Probleme de transport neechilibrate; probleme de transport cu priorităţi .......... 4. Probleme de transport cu centre intermediare ............................................................... 5. Problema de transport generalizată ................................................................................... 6. Probleme de repartiţie ...........................................................................................................

VI. Probleme propuse ........................................................................................ Bibliografie ..........................................................................................................

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 ⎨∑ 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 ⎩

I.1.1

Observaţie:

∑a
j =1

n

ij

x j ≤ (≥ )bi , pentru un i fixat, reprezintă un hiperplan cu

frontiera d i : ∑ aij x j = bi . Dacă i ia toate valorile posibile, se obţine un
j =1

n

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 quasitotalitatea problemelor economice I.1.2
x j ≥ 0 , ∀j ∈ 1, n .

5

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: I.1.3
[max] f = ∑ c j x j sau [min] f = ∑ c j x j .
j =1 j =1 n n

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 ⎜ ⎜ .... = ⎜ ai1 ... aij ⎜ ⎜ .... ⎜a ⎝ m1 ... a mi ... a1n ⎞ ⎟ ..... ⎟ ... ain ⎟ , cu liniile ⎟ .... ⎟ ... a mn ⎟ ⎠

Notaţii: Am×n

α i = (ai1 ... aij ... ain )

⎛ a1 j ⎞ ⎜ ⎟ ⎜ ... ⎟ ∀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 ⎜ ⎟ ⎜ ⎟ ⎜ ... ⎟ ⎜ ... ⎟ ⎜x ⎟ ⎜b ⎟ ⎝ n⎠ ⎝ m⎠

... c n ) ; J = { ,..., n} , I = { ,..., m}. 1 1

6

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 X = bi , i = m1 + 1, m2 , ⎪ ⎪α i X ≤ bi , i = m2 + 1, m ⎩ X ≥ 0, [opt ] f = cX .

I.1.1'
I.1.2' I.1.3'

Formele matriceale echivalente pentru problema de programare liniară sunt:

Forma standard AX = b X ≥0 [opt ] f = cX

Forma canonică AX ≤ b AX ≥ b X ≥0 X ≥0 [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 Restricţie maxim Concordantă. Nonconcordantă. minim Nonconcordantă. Concordantă.

≤ ≥

Trecerea de la o formă la alta este posibilă prin folosirea următoarelor operaţii:

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

7

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 + − x − , unde x + , x − ∈ R + se numesc j j j j

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.

8

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 m extrage sisteme de cel mult C n vectori liniar independenţi.
activităţilor. Un punct X = (x1 ,..., x n )

• Spaţiul R n , care conţine, în particular, vectorul X, îl vom numi spaţiul
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: D1

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

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
m R m . Se deduce uşor că se pot forma cel mult C n 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 numi variabile nebazice, relativ la baza B; numărul lor este (n − m ) . variabilele bazice şi rangA=m. Variabilele x j , j ∈ J \ { j1 ,..., j m } se vor
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 .

(

)

9

Analiza economico-matematică a unor modele liniare

nebazice sunt nule (x j = 0, ∀j ∈ J \ { j1 ,..., j m }) .

- Valorile variabilelor bazice sunt pozitive x jk ≥ 0, ∀k ∈ 1, m şi ale celor

(

)

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 Bază Matrice nebazică Variabile bazice Variabile nebazice Scriere vectorială Scriere pe coordonate

B R

XB XR

(a m+1 ....a n ) (x1 ,..., xm )T (x m+1 ,..., x n )T

(a1 ....a m )

⎛XB⎞ Sistemul de restricţii AX = b admite scrierea: (B R )⎜ R ⎟ = b , ⎜X ⎟ ⎠ ⎝ echivalentă cu forma canonică a sistemului de B −1 −1 R restricţii: X = B ⋅ b − B ⋅ R ⋅ X , din care rezultă o soluţie admisibilă de bază: not ⎧ X B = B −1 ⋅ b ⎪ , dacă B −1 ⋅ b = X B ≥ 0 . ⎨ R ⎪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.

10

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.

11

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

X = 0...x j1 ...x jm ...0

(

)

a j1 x j1 + ... + a jm x jm = b ,

atunci

T

este punct de extrem (vârf) al poliedrului convex χ.

Reciproca este de asemenea adevărată.

Teorema 4: O funcţie liniară f ( X ) = ∑ c j x j , unde X ∈
j =1

n

χ , convexă, îşi

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.

12

Forma generală a problemei de programare liniară. Definiţii şi proprietăţi fundamentale

DUALITATE – Legături formale
Elementele problemei primale
[max]f /[ min]f m este numărul restricţiilor independente

Elementele problemei duale
[min]g / [max]g 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 b1 ,..., bm
b este matricea coeficienţilor

AT

matricea coeficienţilor tehnologici

tehnologici; rangA=m componentelor termenului liber

bi , i ∈ 1, m , coeficientul lui u i
funcţia obiectiv g:

în

g = u1b1 + ... + u m bm c = (c1 ,.., c j ,.., c n )
variabilelor în f: sunt coeficienţii
n

c1 ,.., c j ,.., c n
restricţiilor

sunt termenii liberi ai

f = ∑cj xj
j =1

∑a
j =1

n

ij

x j ≤ bi
x j = bl x j ≥ bp

• max( f ) • min( f ) ul ∈ R

ui ≥ 0 ui ≤ 0

∑a
j =1 n

n

lj

∑a
j =1

pj

• max( f ) • min( f )

up ≤ 0 up ≥ 0

13

Analiza economico-matematică a unor modele liniare

Cazul general al construirii dualului unui program liniar

[max] f = 15 x1 + 20 x 2 + 18 x3 3 x1 + 2 x 2 + 1x3 ≤ 820 → u1 ≥ 0
[max] f nonc conc

7 x1 + 1x 2 + 11x3 ≥ 400 → u 2 ≤ 0
[max] f

20 x1 + 17 x2 + 3 x3 = 680 → u3 ∈ R
[max] f

eg.

x1 ≥ 0

Ineg. conc. cu [min]g

[min]g = 820u1 + 400u2 + 680u3 3u1 + 7u 2 + 20u 3 ≥ 15 2u1 + u 2 + 17u 3 = 20 u1 + 11u 2 + 3u 3 ≤ 18
Determinate de condiţiile impuse asupra variabilelor primalei şi de tipul de optim al dualei.

x2 ∈ R

Ecuaţie
Ineg. nonc. cu [min]g

x3 ≤ 0

Caz particular: Probleme duale simetrice Diagrama lui Tucker pentru problemele duale simetrice:
[max] f = cX [min]g = Ub

(P.P.)

{AX

≤b X ≥0

şi (P.D.) { ≥ c UA U ≥0

14

Forma generală a problemei de programare liniară. Definiţii şi proprietăţi fundamentale

Problema primală

Variabile

x1 ≥ 0 a11

x2 ≥ 0 a12

… … … … … …

xn ≥ 0 a1n
a2n

Relaţii

Disponibi l

u1 ≥ 0

b1

u2 ≥ 0
Problema duală

a 21

a 22


b2

um ≥ 0
Relaţii

a m1 ≥
c1

am2 ≥
c2

a mn ≥ cn

bm ↓ [min]g

Venituri unitare

→ [max

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. Una din probleme are soluţii admisibile, cealaltă nu. În acest caz, ii) prima are optim nemărginit, iar duala sa nu are soluţii. iii) Nici una din probleme nu are soluţii.

15

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

16

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 [min ] f

→ [max ] f = +∞ .

• •

Nemărginitǎ Mărginită ⇒ Etapa 3.

→ Etapa 3.

Etapa 3: Fiecărui punct ( x1 , x 2 ) ∈ χ
valoarea optimă se procedează astfel:

îi corespunde o anumită valoare a

funcţiei obiectiv f = c1 x1 + c 2 x 2 . Pentru stabilirea celui în care îşi atinge • Se calculează coordonatele vârfurilor poligonului convex χ. • Se construieşte familia- fascicolul - de drepte Această familie are următoarele proprietăţi: - Toate dreptele sunt paralele.

(Dα )α∈R : c1 x1 + c2 x2 = α .

17

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 .

18

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 ⎪ 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 ⎩

, cu forma standard

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 2 x1 + 3 x 2 ≤ 240
x1 + x 2 ≤ 100 x1 ≥ 30 x 2 ≥ 20

Frontiere

19

Analiza economico-matematică a unor modele liniare

S1 = {(x1 , x2 ) 2 x1 + 3 x2 ≤ 240} S 2 = {( x1 , x2 ) x1 + x2 ≤ 100} S 4 = {( x1 , x2 ) x2 ≥ 20} S3 = {( x1 , x2 ) x1 ≥ 30}

(d1 ) : 2 x1 + 3x2 = 240 (d 2 ) : x1 + x2 = 100 (d3 ) : x1 = 30 (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 modelului cercetat: S = I S i .
i =1 4

x2
100 80
B F Figura I.3.1

( D0 )

G

E

C D

20

A

(d 4 )
x1
100 120

O

30

(d 3 )

(d 2 )

(d1 )

Mulţimea soluţiilor admisibile se obţine din operaţia:
S I {(x1 , x2 ) x1 ≥ 0, x2 ≥ 0} ,

20

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 y 0 = λy A + (1 − λ ) y B

λ ∈ [0,1] .

Astfel, pentru λ =
xG =

1 se obţin coordonatele punctului G ∈ (d 3 ) : 2

1 1 1 ⎛ 1⎞ ⋅ 30 + ⎜1 − ⎟ ⋅ 30 = 30 şi y G = ⋅ 20 + ⋅ 60 = 40 . 2 2 2 ⎝ 2⎠
x F = 50 yF =

• Valoarea funcţiei economice f variază în raport cu poziţia lui ( x0 , y 0 ) în χ. x E = 40 y E = 40
⇒ f E= 3400 ;

xG = 30 y G = 40

⇒ f G = 3000 ;

140 ⇒ f F = 4100 . 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.

21

Analiza economico-matematică a unor modele liniare

Valoarea minimă a lui f va fi stabilită după completarea tabelului sinteză:
T.I.3.1 Valorile funcţiei economice

Vârf

Coordonate

SAB

A

x1 = 30 x 2 = 20 x1 = 30

x1 = 30 x2 = 20 x1 = 30 x2 = 60 x1 = 60 x2 = 40
x1 = 80

x3 = 120
x 4 = 50

x5 = 0 x6 = 0 x5 = 0 x6 = 40 x5 = 30 x6 = 20 x5 = 50 x6 = 0

2850

[min] f

B

x3 = 0

x 2 = 60
x1 = 60

x4 = 10
x3 = 0

5250

C

x2 = 40
x1 = 80

x4 = 0
x3 = 20

5700

D

x2 = 20

x2 = 20

x4 = 0

5600

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:
* * * 2 x1 + 3 x 2 + x3 = 240 ⇔ * * * x1 x 2 x3 + + = 40 ⇒ 3 2 6

30 20 120 + + = 40 3 2 6
Ore consumate prin programul optim. Ore disponibile.

rămân nefolosite 20h.

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

Cât se prelucrează.

Cât se putea prelucra.

22

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 ⎪ ⎪ x + x ≤ 100 ⎨ 1 2 ⎪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 80 60 50
B' A' C' C Figura I.3.2

(d 4 )

( D0 )
O

(d 3 )
40 55 100 120

(d 2 )

(d1 )

x1

23

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 * x 2 = 50

şi [min ] f = 3850 .

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 2⎠ 3 . ⎝ 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 Consumuri specifice Cantităţi maximale (kg) 45 75 66

Resursă Lemn Fier Fibră elastică

PI 0,1 0,3 0,3

PII 0,2 0,25 0,1

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.

24

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,3 x1 + 0,25 x 2 ≤ 75 , cu forma standard ⎪0,3 x + 0,1x ≤ 66 1 2 ⎩ x j ≥ 0, j = 1,2

⎧0,1x1 + 0,2 x 2 + x3 = 45 ⎪ ⎨0,3 x1 + 0,25 x 2 + x 4 = 75 . ⎪0,3 x + 0,1x + x = 66 1 2 5 ⎩ 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

( D0 )
O

A

B

C

220

250

450

(d 3 )

(d 2 )

(d1 )

x1

25

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 Valorile funcţiei economice

Vâr f
O

Coordonate

SAB

x1 = 0 x2 = 0 x1 = 0 x 2 = 225 x1 = 750 / 7 x 2 = 1200 / 7

x1 = 0 x2 = 0 x1 = 0

x3 = 45 x4 = 75 x3 = 0

x5 = 66 x5 = 43,5 x5 = 117 / 7

0

A

x 2 = 225 x 4 = 18,75 x1 = 750 / 7 x3 = 0 x 2 = 1200 / 7 x 4 = 0 x1 = 200 x3 = 13 x 2 = 60 x4 = 0

12150

B

109800 = 15685,7 7 [max] f
15240

C

x1 = 200 x 2 = 60

x5 = 0

Coordonatele vârfului B dau cea mai mare valoare funcţiei f : 1200 750 + 54 ⋅ ≈ 15685,67 unităţi monetare. 7 7 Cum produsele sunt bunuri indivizibile, rezultatul trebuie dat în numere naturale, deci:

[max] f

* * = 60 x1 + 54 x 2 = 60 ⋅

⎡ 750 ⎤ x1 = ⎢ ⎥ = 107 ⎣ 7 ⎦ ⎡1200 ⎤ x2 = ⎢ ⎥ = 171 ⎣ 7 ⎦

şi

f = 15654 .

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)

26

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
I.3.4

= 60 x1 + 54 x 2

⎧0,1x1 + 0,2 x 2 ≤ 65 ⎪ ⎨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.

27

Analiza economico-matematică a unor modele liniare

x2 660

Figura I. 1.3.4

400 325

A B

( D0 )

C

D O

(d )
' 1

220

333,3

(d 3 )

(d )
' 2

650

x1

Se calculează elementele tabelului sinteză:
T.I.3.4 Vârf
A

Coordonate

SAB

Valorile funcţiei economice

x1 = 0 x 2 = 325 x1 = 750 / 7

x1 = 0 x 2 = 325 x1 = 750 / 7

x3 = 0 x 4 = 18,75 x3 = 0 x4 = 0

x5 = 33,5 x5 = 47 / 7

17550

B

x 2 = 1900 / 7 x 2 = 1900 / 7
C

147600/7=21085,7

[max] f
62720/3=20906,67

x1 = 1300 / 9 x1 = 1300 / 9 x 2 = 680 / 3 x 2 = 680 / 3 x1 = 220 x2 = 0

x3 = 47 / 9 x4 = 0

x5 = 0

D

x1 = 220 x2 = 0

x3 = 43 x 4 = 34

x5 = 0

13200

28

Forma generală a problemei de programare liniară. Definiţii şi proprietăţi fundamentale

Soluţia optimă în numere întregi, ⎡1900 ⎤ ⎡ 750 ⎤ x1 = ⎢ ⎥ = 107, x 2 = ⎢ 7 ⎥ = 271 , nu respectă ambele restricţii impuse ⎣ ⎦ ⎣ 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 x1 ≤ 120 I.3.5 x1 ≥ 100 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 ,

care vor fi scrise conform canoanelor programării liniare şi anume:

660
Figura I.3.5

400 325

200 170
O

A D B C

100

200

220

333

650

x1

29

Analiza economico-matematică a unor modele liniare

În acest caz, tabelul sinteză este următorul:
T.I.3.5

Vârf
A

Coordonate

Valorile funcţiei economice
16800

x1 = 100 x 2 = 200 x1 = 100 x 2 = 170 x1 = 120 x 2 = 170 x1 = 120 x 2 = 200

B

15180

C

16380

D

18000

[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 Utilaj Consumuri specifice (ore/tonă)

P1
5 1/2 3

P2
3 2 5

Fond de timp disponibil (ore)

Cuptor de recoacere Agregat de decapare Laminor finisor

2100 550 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.

30

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:
Utilaj
Cuptor de recoacere

Consum de timp pentru programul ( x1 , x 2 )

Disponibil care nu trebuie depăşit

2100 5 x1 + 3 x 2 ≤ 1 Agregat de decapare 550 x1 + 2 x 2 ≤ 2 Laminor finisor 1500 3 x1 + 5 x 2 ≤ 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 total: [max ] f = 15 x1 + 20 x 2 . condiţia de nenegativitate va fi aleasă accea care maximizează funcţia venit Poblema căutării soluţiei optime revine la rezolvarea programului liniar:

[max] f

= 15 x1 + 20 x 2 cu forma standard I.3.7

I.3.6

⎧5 x1 + 3 x 2 ≤ 2100 ⎪1 ⎪ ⎨ x1 + 2 x 2 ≤ 550 ⎪2 ⎪3 x1 + 5 x 2 ≤ 1500 ⎩ x j ≥ 0, j = 1,2

[max] f

= 15 x1 + 20 x 2

⎧5 x1 + 3x 2 + x3 = 2100 ⎪1 ⎪ ⎨ x1 + 2 x 2 + x 4 = 550 ⎪2 ⎪3x1 + 5 x 2 + x5 = 1500 ⎩ x j ≥ 0, j = 1,5

31

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 275 A
O B E C D 420

500

1100

(d1 )

(d3 )

(d 2 )

x1

32

Forma generală a problemei de programare liniară. Definiţii şi proprietăţi fundamentale

Tabelul sinteză
Vârf
O

Coordonate

SAB

Valorile funcţiei economice
0

x1 = 0 x2 = 0 x1 = 0 x 2 = 275

x1 = 0 x3 = 2100 x 2 = 0 x 4 = 550 x1 = 0 x 2 = 275 x 4 = 0
; ; ;

;

x5 = 1500
;

A

x3 = 1275

x5 = 125
;

5500

x1 = 500 / 7 x1 = 500 / 7
B

x3 = 6800 / 7

x 2 = 1800 / 7 x 2 = 1800 / 7 x 4 = 0 x1 = 375 x 2 = 75 x1 = 420 x2 = 0 x1 = 375 x3 = 0 x 2 = 75 x2 = 0
;

x5 = 600

43500 ≈ 6214,28 7
7125

C

x 4 = 425 / 2 x 4 = 340
;

;

x5 = 0

[max] f

D

x1 = 420 x3 = 0
;

x5 = 240

6300

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ă prin programul optim Fond de timp disponibil
2100h 550h 1500h

Utilaj
Cuptor de recoacere Agregat de decapare Laminor finisor

Cât nu se consumă din fondul de timp disponibil
* x3 = 0
* x4 =

5 x1 + 3x 2 = 2100 h
1 * 675 * x1 + 2 x 2 = h 2 2 3 x1 + 5 x 2 = 1500 h
* *

*

*

425 = 212,5 h 2

* x5 = 0

33

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.
Consumuri specifice T.1.3.7 Venituri unitare 3 u.m.

Produse

P1 P2
Disponibil

2u.c1 5u.c 16u.c

M1

M2
4 u.c 1 u.c 11 u.c

5 u.m.

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
SECŢIE

Venituri aşteptate

Venit total

2 u.c M 1 , 4 u.c M 2 5 u.c M 1 , 1 u.c M 2

x1 produse P1 x 2 produse P2

3x1 5x 2 ⇒ [max] f = 3 x1 + 5 x 2

⎧2 x1 + 5 x 2 ≤ 16 ⎨ ⎩4 x1 + x 2 ≤ 11 x j ≥ 0, j = 1,2
1

Unităţi convenţionale = u.c.

34

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:
11

x2
Figura I.3.7

(d 2 )
16/5 A
B C

(d1 )
11/4 9

x1

O


Vârf
O

Tabelul sinteză:
Coordonate SAB

f (SAB )
0

x1 = 0 x2 = 0 x1 = 0 x 2 = 16 / 5 x1 = 13 / 6 x2 = 7 / 3 x1 = 11 / 4 x2 = 0

x1 = 0 x3 = 16 x 2 = 0 x 4 = 11 x1 = 0 x3 = 0 x 2 = 16 / 5 x 4 = 39 / 5 x1 = 13 / 6 x3 = 0 x2 = 7 / 3 x2 = 0 x4 = 0 x4 = 0 x1 = 11 / 4 x3 = 21 / 2

A

16

B

109 = 18,1(6) 6 [max] f = 18,17u.m. 33 = 8,25 4

C

• 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

35

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
4 x1 + 1x 2 ≤ 11

u1 ≥ 0
u2 ≥ 0 [min]g = 16u1 + 11u 2

x1 ≥ 0
x2 ≥ 0

2u1 + 4u 2 ≥ 3
5u1 + u 2 ≥ 5

Soluţia grafică a dualei rezultă din figura următoare, în care χ este nevidă, convexă şi nemărginită.
x2
5
D

Figura I.3.8

(d1 )
3/4
O

(d 2 )
E

1

3/2

F

x1

36

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
D

Coordonate

SAB

f (SAB )
55

u1 = 0 u2 = 5 u1 = 17 / 8 u2 = 5 / 8
u1 = 3 / 2 u2 = 0

u1 = 0 u 3 = 17 u2 = 5 u4 = 0
17 8 5 u2 = 8 3 u1 = 2 u2 = 0 u1 = u3 = 0 u4 = 0
u3 = 0 u4 = 5 2

E

109 = 18,1(6) 6

F

[min]g = 18,1(6) =

24

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.

37

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 )
3,4
A1
B1

(d1 )
8,5
O C

11/4

x1

38

Forma generală a problemei de programare liniară. Definiţii şi proprietăţi fundamentale

• Tabelul sinteză: Vârf
O

Coordonate

SAB

f (SAB )
0

x1 = 0 x2 = 0 x1 = 0 x 2 = 17 / 5 x1 = 19 / 9 x 2 = 23 / 9 x1 = 11 / 4 x2 = 0

x1 = 0 x3 = 17 x 2 = 0 x 4 = 11 x1 = 0 x3 = 0

17

A1

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

B1

[max] f
55/4=13,75

= 19,1(1)

C

⎛ 172 109 17 ⎞ − = ⎟ ne permite Un calcul simplu şi anume o diferenţă ⎜ 6 8⎠ ⎝ 9 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
* restricţiei cu disponibilul modificat, şianume u1 =

17 . 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 , α ∈ R* +

⎧2 x1 + 5 x 2 ≤ 16 + α ⎨ ⎩4 x1 + x 2 ≤ 11 x j ≥ 0, j = 1,2

39

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

(d )
A1
3 1

B1

16/5

(d )
A
2 1

B

(d )
1 1

O

C 11/4

x1
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ă,

40

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 + 3x2 = 17 ; (d 2 ) (D0 ) 6 x1 + 4 x2 = 0
x2

x1 + x 2 = 7 ; (d 3 ) 3 x1 + 2 x 2 = 18 ;

9

(d 2 )
7 17/3
A

Figura I.3.11

( D0 )

B

(d1 )
C

O

6

7

17/2

(d 3 )

x1

41

Analiza economico-matematică a unor modele liniare

Tabelul sinteză este:
Vârf
O

Coordonate

SAB

f (SAB )
0

T.I.3.8

x1 = 0 x2 = 0 x1 = 0 x 2 = 17 / 3 x1 = 4 x2 = 3 x1 = 6 x2 = 0

x1 = 0 x2 = 0 x1 = 0

x3 = 17 x4 = 7 x3 = 0

x5 = 18 x5 = 2 / 3 x5 = 0 x5 = 0

68/3=22,(6)

A

x 2 = 17 / 3 x1 = 4 x2 = 3 x1 = 6 x2 = 0

x4 = 4 / 3 x3 = 0 x4 = 0 x3 = 5 x4 = 1

36

B

36

C

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 * B C x 2 = λx 2 + (1 − λ ) x 2

, λ ∈ [0,1] .

În particular pentru λ =

[max] f

1 3 1 1 * * şi se obţine: x1 = ⋅ 4 + ⋅ 6 = 5 , x 2 = 2 2 2 2

= 36 .

42

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 produselor Preţ de vânzare
125 u.m. 117 u.m.

Randament orar
50 25

Capacitate de desfacere
400 500

Unitate convenţională

P1 P2

x1 x2

3 × 1 produs P1 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

43

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 2 ⎪ 1 25 ⎪ ⎪ x 2 ≥ 100 ( x1 + x 2 ) ⇔ − x1 + 3x 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 4 ⎪ 1 ⎪ ⎨ x 2 + x5 = 500 ⎪3 x + 2 x + x = 1500 2 6 ⎪ 1 ⎪− 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 x2 = 1500 (d 5 ) : − x1 + 3x 2 = 0 (D0 ) : 125 x1 + 117 x2 = 0

44

Forma generală a problemei de programare liniară. Definiţii şi proprietăţi fundamentale

x2
Figura I.3.12

750

(d 2 )
500 A
B

(d 3 )

( D0 )
(d 5 )
O C D

(d1 )
500

400

(d 4 )

1000

x1

• Tabelul sinteză:
Vârf
O

Coordonate

SAB

f (SAB )

x1 = 0 x2 = 0 x1 = 0 x 2 = 500 x1 = 250 x 2 = 375 x1 = 400 x 2 = 150 x1 = 400 x2 = 400 3

x1 = 0 x3 = 1000 x5 = 500 x 2 = 0 x 4 = 400 x1 = 0 x3 = 0 x6 = 1500 x5 = 0 x5 = 125

x7 = 0 x7 = 1500 x7 = 875 x7 = 50

0

A

x 2 = 500 x 4 = 400 x6 = 500 x1 = 250 x3 = 0 x 2 = 375 x 4 = 150 x6 = 0 x1 = 400 x3 = 300 x5 = 350 x 2 = 150 x 4 = 0
x1 = 400 x3 =

58.500 u.m. 75.125 u.m.

B

[max] f
67.550 u.m.

C

x6 = 0

D

1100 1000 x5 = 3 x7 = 0 3 400 812 x2 = x6 = 3 x4 = 0 3

65.600 u.m.

45

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
* x1 = 250

Semnificaţii economice

Structura planului optim de fabricaţie. Fondul de timp disponibil al utilajului este consumat integral. Se mai pot desface cel mult 150 produse P 1 şi cel mult 125 produse P2 . Capacitatea de depozitare este complet folosită. Numărul produselor de tip P2 depăşeşte cu 875/4, 25% din întraga fabricaţie:

x = 375
* 2

* x3 = 0
* x 4 = 150

x = 125
* 5 * x6 = 0

* x7 = 875

375 ≥

25 (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. ?

(

)

46

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 + x2 = 5
x2
Figura I.3.13

5
A B O C

3

6

d1 d2

x1

● Tabelul sinteză:
Vârf Coordonate SAB

f (SAB )
6

A

x1 = 0 x2 = 3 x1 = 4 x2 = 1 x1 = 5 x2 = 0

x1 = 0 x2 = 3 x1 = 4 x2 = 1 x1 = 5 x2 = 0

x3 = 0 x4 = 2 x3 = 0 x4 = 0 x3 = 1 x4 = 0

B

4c1 + 2 5c1

C

47

Analiza economico-matematică a unor modele liniare

Se explicitează sistemul de restricţii în raport cu baza (a2
⎛ 2 0 ⎞⎛ x 2 ⎞ ⎛ 6 ⎞ ⎛1 1 ⎞⎛ x1 ⎞ ⎜ ⎜ 1 1 ⎟⎜ x ⎟ = ⎜ 5 ⎟ − ⎜1 0 ⎟⎜ x ⎟ ⇒ ⎟⎜ ⎟ ⎜ ⎟ ⎜ ⎟⎜ ⎟ ⎝ ⎠⎝ 4 ⎠ ⎝ ⎠ ⎝ ⎠⎝ 3 ⎠

a4 ) :

⎛ 1 ⎛ x2 ⎞ ⎜ 2 ⎜ ⎟=⎜ ⎜x ⎟ ⎝ 4 ⎠ ⎜− 1 ⎜ ⎝ 2

⎛ 1 ⎞ ⎞ 0 ⎟⎛ 6 ⎞ ⎜ 0 ⎟⎛1 1 ⎞⎛ x ⎞ 1 2 ⎟⎜ ⎟⎜ ⎟ − ⎜ ⎟⎜ ⎟ ⎜1 0 ⎟⎜ x ⎟ ⎜5⎟ 1 ⎠⎝ 3 ⎠ 1 ⎟⎝ ⎠ ⎜ − 1 ⎟⎝ ⎜ ⎟ ⎟ ⎝ 2 ⎠ ⎠

adică,

⎛ 1 ⎛ x2 ⎞ ⎛ 3 ⎞ ⎜ 2 ⎜ ⎟ =⎜ ⎟−⎜ ⎜ x ⎟ ⎜ 2⎟ ⎝ 4 ⎠ ⎝ ⎠ ⎜− 1 ⎜ ⎝ 2

1 ⎞ ⎟ 2 ⎟⎛ x1 ⎞ . ⎜ ⎟ 1 ⎜ ⎟ − ⎟⎝ x3 ⎠ ⎟ 2⎠
a 4 ) este optimală dacă

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
⎧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

48

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
⎧u1 + u 2 ≥ 1 ⎪ ⎨2u1 + u 2 ≥ 2 ⎪6u + u ≥ 3 2 ⎩ 1 u i ≥ 0 , i = 1,2

[min ]g = 6u1 + 5u 2
⎧u1 + u 2 − u 3 = 1 ⎪ cu forma standard ⎨2u1 + u 2 − u 4 = 2 . ⎪6u + u − u = 3 2 5 ⎩ 1 u i ≥ 0 , i = 1,5

Figura I.3.14

x2
3 D

2
E

1

O

1 F

d3

d1

x1

d2

Se observă că mulţimea convexă a soluţiilor admisibile este nevidă şi nemărginită.

49

Analiza economico-matematică a unor modele liniare

Tabelul sinteză al problemei duale este:
Vârf Coordonate SAB

f (SAB )

D

u1 = 0 u2 = 3 u1 = 1 / 4 u2 = 3 / 2 u1 = 1 u2 = 0

u1 = 0 u2 = 3

u3 = 2 u4 = 1

u5 = 0 u5 = 0
6

15

E

u1 = 1 / 4 u 3 = 3 / 4 u2 = 3 / 2 u4 = 0 u1 = 1 u2 = 0 u3 = 0 u4 = 0

9

F

u5 = 0

[min]g

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⎟ A X S . A.B = ⎜ ⎟ soluţie optimă pentru c1 = 1 0 ⎜ ⎟ ⎜ 2⎟ ⎝ ⎠ [max] f = f ( A) = 6 f ( A) ≤ g (D )

A

D

U SD. A.B = (0 2 2 1 0 ) g (D ) = 15 U SE. A.B = (1 / 4 3 / 2 3 / 4 0 0 ) g (E ) = 9 U SF. A.B = (1 0 0 0 3) g (F ) = 6

f ( A ) ≤ g (E )

E

f ( A) ≤ g ( F )

F

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

50

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 2 ⎪ 1 ⎪− 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 ⎧ 2 x1 + 7 x 2 ≥ 4 ⎪ 3x + x ≥ 2 2 ⎪ 1 ⎪ ⎨5 x1 + 3 x 2 ≤ 15 ⎪− 2 x + x ≤ 2 1 2 ⎪ ⎪ x1 − 2 x 2 ≤ 2 ⎩ x1 , x 2 ≥ 0
[opt ] f = 5 x1 + 6 x 2 ⎧ 2 x1 + 7 x 2 − x3 = 4 ⎪ 3x + x − x = 2 2 4 ⎪ 1 ⎪ , apoi se scrie sub forma standard ⎨5 x1 + 3 x 2 + x5 = 15 . ⎪− 2 x + x + x = 2 1 2 6 ⎪ ⎪ x1 − 2 x 2 + x7 = 2 ⎩ x j ≥ 0, ∀j = 1,7

51

Analiza economico-matematică a unor modele liniare

• Rezolvarea în spaţiul activităţilor:
x2
Figura I.3.15

5

(d 4 )
C

(d 2 )
2

B1
B2

B

B3
7 4

B4

(d 5 )
E D
3

A

x1

-1

O

2 3

2

-1

(d1 )

(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 χ.

52

Forma generală a problemei de programare liniară. Definiţii şi proprietăţi fundamentale

Vârf
A

Coordonate

Valoarea funcţiei obiectiv

Valori optime

B

C

D

E

x1 = 10 / 19 x 2 = 8 / 19 x1 = 0 x2 = 2 x1 = 9 / 11 x 2 = 40 / 11 x1 = 36 / 13 x 2 = 5 / 13 x1 = 2 x2 = 0

98 = 5,16 19 12 285 = 25,90 11 210 = 16,15 13 10

⇒ [min] f = 5,16 * x1 = 10 / 19
* x 2 = 8 / 19

⇒ [max] f = 25,90 * x1 = 9 / 11
* x 2 = 40 / 11

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
B B1 B2 B3 B4 E

Coordonate
X1 = 0 X2 = 2 X1 = 1 X2 = 3 X1 = 1 X2 = 2 X1 = 1 X2 = 1 X1 = 2 X2 = 1 X1 = 2 X2 = 0

Valoarea funcţiei obiectiv

Valori optime

12
23

⇒ [max] f = 23
* x1 = 1 * x2 = 3 ⇒ [min] f = 11 * x1 = 1 * x2 = 1

17 11
16 10

53

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

(d 4 )
C
3
C1 C2

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

(d 6 )

Figura I.3.16

B

2

(d 5 )
7/4 -1
A

D
2

x1
3

O
-1

3 2

E

(d1 )

(d 2 )

(d 3 )

54

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 ) eliminată de x1 + 2 x 2 ≥ 2

(d 2 )
B

(d 6 )
1
A1

(d 5 )
D A O E

x1

(d1 ) (d 3 )

55

Analiza economico-matematică a unor modele liniare

• Tabelul sinteză pentru ambele cazuri:
Valoarea funcţiei obiectiv

Vârf
A

Coordonate

Valori optime

Observaţii
Se menţine faţă de modelul iniţial.

B

C1 C2
D

E

x1 = 10 / 19 x 2 = 8 / 19 x1 = 0 x2 = 2 x1 = 1 / 2 x2 = 3 x1 = 6 / 5 x2 = 3 x1 = 36 / 13 x 2 = 5 / 13 x1 = 2 x2 = 0 x1 = 2 / 5 x2 = 4 / 5 x1 = 0 x2 = 2 x1 = 9 / 11 x 2 = 40 / 11 x1 = 36 / 13 x 2 = 5 / 13 x1 = 2 x2 = 0

98 / 19

12
41 / 2

⇒ [min] f = 98 / 19 * x1 = 10 / 19 * x 2 = 8 / 19

24
210 / 13 10
34 / 5

⇒ [max] f = 24 * x1 = 6 / 5 * x2 = 3

Valoarea maximă pe noul domeniu este mai mică.

A1
B

12
285 / 11 210 / 13 10

⇒ [min] f = 34 / 5 * x1 = 2 / 5 * x2 = 4 / 5 ⇒ [max] f = 285 / 11 * x1 = 9 / 11
* x 2 = 40 / 11

Valoarea minimă creşte faţă de modelul iniţial.

C

Valoarea maximă se menţine faţă de modelul iniţial.

D

E

În general, este adevărat că dacă mulţimea - valoarea lui [max] f se menţine sau scade; - valoarea lui [min] f se menţine sau creşte.

χ

intersectată cu un

semiplan ai1 x1 + ai 2 x 2 ≤ bi îşi pierde o porţiune convexă, atunci:

56

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

57

Analiza economico-matematică a unor modele liniare

Fie X 1 o SAB corespunzătoare bazei B1 = (as )s∈J B1 , în raport cu care se va explicita sistemul de restricţii X B = B1
1

( )
(X )

−1

⋅ b − B1

( )

−1

⋅ RX R , unde
T

(B )
X1.

1 −1

⋅ b = (X )
not

B1

≥ 0 . Elementele vectorului

B1

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

sunt

valorile variabilelor bazice, deci, componentele nenegative ale vectorului

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

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

cel puţin la fel de bună, în sensul f ( X 1 ) ≤ f ( X 2 ) . Soluţia admisibilă
X 2 corespunde bazei B 2 dedusă din B1 prin înlocuirea lui ak , k ∈ J B , cu
1

al , l ∈ J − J B . Indicii l şi k sunt daţi de relaţiile:

1

II.1.1 şi II.1.2

f 1 − c1 =

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

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

Teorema 2: Testul de optimalitate

O soluţie admisibilă de bază, X , a problemei (P) este optimă dacă şi numai dacă II.1.3
f j − c j ≥ 0 , ∀j ∈ J .

58

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.

59

Analiza economico-matematică a unor modele liniare

Concluziile celor trei teoreme sunt sistematizate în tabelul următor:
Soluţie optimă finită ([opt]f<< ∞ ) unic multiplă determinată

Optim infinit

f j −cj > 0,
[max]

∀j ∈ J − J f j −cj = 0,
B

f j − c j ≥ 0 , ∀j ∈ {1,.., n}
şi

∀j ∈ J f j −cj = 0,
B

∃k ∈ J − J B a.î. f k − ck = 0 f j − c j ≤ 0 , ∀j ∈ {1,.., n}
şi

∃l ∈ J − J B a.î. f l − cl < 0 şi y sl ≤ 0 , ∀s ∈ J B ∃l ∈ J − J B a.î. f l − cl > 0 şi y sl ≤ 0 , ∀s ∈ J B

[min]

∀j ∈ J B f j −cj < 0, ∀j ∈ J − J
B

∃k ∈ J − J B a.î. f k − ck = 0

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 ⎞ ⎟ , J B = {1,..., m} X (1) = ⎜ R ⎜ ⎟ x =0 ⎝ ⎠

60

Metode simplex pentru modele liniare

Calculează:

⎧ 0 , pentru ∀a j vector bazic ⎪ B −1 • f j − c j = c ⋅ B ⋅ a j − c j care este ⎨≥ 0 , pentru a j vector nebazic, sau ⎪ ≤ 0 , pentru a vector nebazic j ⎩ B −1 • f0 = c ⋅ B ⋅ b

fj − cj ≥ 0 ∀j = 1, n

DA

STOP. Problema admite soluţie optimă finită

⎛ B −1 b ⎞ ⎟ f 0 = [max] f ; X = ⎜ ⎜ 0 ⎟ ⎝ ⎠
*

NU

(∃) vector nebazic cu componentele negative şi diferenţa strict negativă?
( ∃l ∈ J şi

DA

\ J B a.î. f l − cl < 0 y sl ≤ 0 , ∀s ∈ I

STOP. Problema admite optim nemărginit

(1)

61

Analiza economico-matematică a unor modele liniare

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

f j −c j <0

min {f j − c j } = f r − c r ;
⎧x ⎫ x min ⎨ s ⎬ = k y sr > o y y kr s∈I ⎩ sr ⎭
raport unic.

• criteriul de eliminare din bază (C.E.B): 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

(a1 ...a k −1 a k a k +1 ...a m ) → (a1 ...a k −1 a r a k +1 ...a m )
⇒ J B := J B \ {k} U {r}
Se calculează componentele vectorilor în noua bază: 1) Elementele din linia pivotului, linia k:

f X (1) ≤ f X ( 2 )

(

) (

)

(

)

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

;

2) Vectorii care se menţin în bază îşi menţin componentele; dacă atunci, în noua bază,

ar

a luat locul lui

ak ,

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 ij :=

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

pentru

i ∈ J B \ {r}

y kr

, pentru

j∈J

62

Metode simplex pentru modele liniare

Observaţia 5:
m • numărul soluţiilor admisibile de bază este cel mult C n ;

• 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 optimizează funcţia scop.
Observaţia 7: Prin trecerea de la o SAB la o alta cel puţin la fel de bună în

χ

care

sensul dat de tipul de optim al funcţiei f ( X ) , se realizează o creştere a acesteia cu
xk ( 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.

63

Analiza economico-matematică a unor modele liniare

Etapa 0:

Se consideră un model simplificat al unui proces de fabricare a trei produse, prin utilizarea limitată a trei resurse: [max] f = 20 x1 + 16 x2 + 17 x3 ⎧ x1 + 2 x2 ≤ 680 ⎪ ⎨2 x1 + x2 + 4 x3 ≤ 800 ⎪2 x + 2 x + x ≤ 900 2 3 ⎩ 1

,

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

[max] f = 20 x1 + 16 x2 + 17 x3 + 0 x4 + 0 x5 + 0 x6
II.1.6

⎧ x1 + 2 x2 + x4 = 680 ⎪ ⎨2 x1 + x2 + 4 x3 + x5 = 800 ⎪2 x + 2 x + x + x = 900 2 3 6 ⎩ 1 x j ≥ 0, ∀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 A = ⎢2 ⎢ ⎢2 ⎣ a1 2 0 1 0 0⎤ 1 4 0 1 0⎥ ⎥ şi rangA = 3 < 6. 2 1 0 0 1⎥ ⎦ a 2 a3 a 4 a5 a 6

64

Metode simplex pentru modele liniare

• Se scrie baza de start şi se deduce soluţia admisibilă de bază (SAB)
de start: B1 = (a 4 a5 a 6 ) = I 3 este baza de start formată din vectorii
B1

unitate a4 , a5 şi a6 . Aşadar, X

⎛ x4 ⎞ ⎜ ⎟ = ⎜ x5 ⎟ , ⎜x ⎟ ⎝ 6⎠

X

R1

⎛ x1 ⎞ ⎜ ⎟ = ⎜ x2 ⎟ , de unde rezultă ⎜x ⎟ ⎝ 3⎠

explicitarea sistemului în raport cu baza B1 :

⎡1 0 0⎤ ⎛ x 4 ⎞ ⎛ 680 ⎞ ⎡1 2 0⎤ ⎛ x1 ⎞ ⎜ ⎟ ⎟ ⎜ ⎟ ⎜ II.1.7 ⎢0 1 0⎥ ⋅ ⎜ x 5 ⎟ = ⎜ 800 ⎟ − ⎢2 1 4⎥ ⋅ ⎜ x 2 ⎟ ⎢ ⎥ ⎢ ⎥ ⎢0 0 1⎥ ⎜ x 6 ⎟ ⎜ 900 ⎟ ⎢2 2 1 ⎥ ⎜ x 3 ⎟ ⎦ ⎝ ⎠ ⎠ ⎣ ⎣ ⎦ ⎝ ⎠ ⎝ Se stabileşte SAB de start:
⎛ 680 ⎞ ⎛0⎞ ⎜ ⎟ not B ⎜ ⎟ R ⎜ 800 ⎟ = X şi X = ⎜ 0 ⎟ , sau ⎜ 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.

65

Analiza economico-matematică a unor modele liniare

Pasul 2
⎛ 680 ⎞ ⎟ ⎜ = (0 0 0 ) ⋅ ⎜ 800 ⎟ = 0 ; ⎜ 900 ⎟ ⎠ ⎝

f0 = f (X ) = c ⋅ X
1
B

B

= (c 4

c5

c6 ) ⋅ X

B

f1 = c ⋅ I
B

−1 3

⎛1⎞ ⎜ ⎟ ⋅ a1 = (0 0 0 ) ⋅ I 3 ⋅ ⎜ 2 ⎟ = 0 , ⎜ 2⎟ ⎝ ⎠ ⎛ 2⎞ ⎜ ⎟ ⋅ a 2 = (0 0 0 ) ⋅ I 3 ⋅ ⎜ 1 ⎟ = 0 ; ⎜ 2⎟ ⎝ ⎠
⎛0⎞ ⎜ ⎟ ⋅ a3 = (0 0 0 ) ⋅ I 3 ⋅ ⎜ 4 ⎟ = 0 , ⎜1⎟ ⎝ ⎠

f2 = c ⋅ I
B

−1 3

f3 = c ⋅ I
B

−1 3

f4 = c ⋅ I
B

−1 3

⎛1⎞ ⎜ ⎟ ⋅ a 4 = (0 0 0 ) ⋅ I 3 ⋅ ⎜ 0 ⎟ = 0 ; ⎜0⎟ ⎝ ⎠
⎛0⎞ ⎜ ⎟ ⋅ a5 = (0 0 0 ) ⋅ I 3 ⋅ ⎜ 1 ⎟ = 0 , ⎜0⎟ ⎝ ⎠

f5 = c ⋅ I
B

−1 3

f6 = c ⋅ I
B

−1 3

⎛0⎞ ⎜ ⎟ ⋅ 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.

66

Metode simplex pentru modele liniare

T. II.1.1

cj → cB 0 0 0 B
a4 a5

20
a1

16
a2

17 a3 0 4 1 0

0
a4

0 a5 0 1 0 0 Ø

0 a6 0 0 1 0 Ø

XB 680 800 900 0

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

1 2 2 0

2 1 2 0

1 0 0 0 Ø

a6 fj f j −cj

-20 -16 -17

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

DA

f j − c j ≥ 0 , ∀j = 1, n ?
NU

STOP. X 1 este soluţia optimă a problemei şi f 0 valoarea maximă a funcţiei obiectiv.
Pasul 4

Pentru problema de faţă, f j − c j < 0 , j = 4,5,6 ⇒ se trece la Pasul 4.

j = 1,2,3 şi

f j −cj = 0 ,

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 componentele negative şi pentru care f l − cl < 0 .

a2

a3 ) cu toate

67

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 → ρ = min ⎨ s y sl > 0⎬ = min ⎨ s a sl > 0⎬ = k , B B [min ] f s∈J ⎩ y sl ⎭ s∈J ⎩ a sl ⎭ a kl

pentru

X 1,

sau, în general, ρ =

xk , 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:

j =1, 2 , 3

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

{

}

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 ⎨ ⇒ ⎬= a 21 2 2 ⎭ 2 ⎩ 1 ⎩ a11 a 21 a33 ⎭ a 2 va fi eliminat şi a 21 = 2 este pivotul iteraţiei, pe care îl vom colora în tabel.

68

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 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:
B

• 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, elementele din linia 2, iteraţia 2, iau valorile

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

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

69

T.II.1.2
cj →
c
B

c1
a1

. . .

c k −1
a k −1

ck
ak
a 1l − a kl

c k +1
a k +1

. . .

cm
am

c m +1
a m +1

. .

cj
aj

. .

cl
al

. .

cn
an

B
b ⋅a
a1
1 kl

X

B

ρ

−b ⋅a
k

.

0

0

0

c1

1l

a ij ⋅ a kl − a kj ⋅ a il a kl
B ∀j ∈ J − J 2

0

a
kl

. . .
c k −1

. .
b a k −1 ⋅a
kl

. .

. 1

.

. 0

. .

. 0

.
0

.
−b ⋅a
k

.
k − 1l

k +1

a

a
kl

k − 1l a kl

b cl al a

.

.

.

1 a kl

0

.

.

a

.
km + 1 a kl

. .

1

.

a

k

kl

kn a kl

b c k +1 a k +1

k +1

⋅a
kl

−b ⋅a
k

.
k + 1l

.

0

a

1
k + 1l a kl

.

0

0

a

kl

. . .
cm

. .
b ⋅a am
m

. .

. 0

. .

. 0

. .

. 1

. 0

.
−b ⋅a
k

.
ml

kl

a
kl

fj
fj − c
j

f0

f1
f1 − c 1

. .

. 0

fk
fk − c k

. 0

. .

fm
fm − c m f m +1 − c m +1

fl

fn

.

.

.

fl − c l

.

fn − c n

70

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 • prima componentă 2

2

y12 :=
1

2 ⋅ 2 − 1⋅1 2

a2
• a treia componentă 2 2 1 2

y 32 :=

2 ⋅ 2 − 2 ⋅1 2

71

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 → cB
0 20 B

20

16

17

0

0

0

XB
280 400 100 8000

a1 a 2
0 1 0 20 Ø 3/2 1/2 1 10 -6 0 0 1 16 Ø

a3
-2 2 -3 40 23 5/2 7/2 -3 22 5

a 4 a5
1 0 0 0 Ø 1 0 0 0 Ø -1/2 1/2 -1 10 10 1 1 -1 4 4

a6
0 0 1 0 Ø -3/2 -1/2 1 6 6

ρ
280/3/ 2 400/2 100/2

a4 a1 a6

Iteraţia 2

0

fj
f j −cj
0 20 16

≥ 0 ? NU

Iteraţia 3

a4 a1 a2 fj
f j −cj

130 350 100 8600

0 1 0 20 Ø

≥ 0 ? DA ⇒ STOP

În linia test f j − c j este verificat criteriul de optimalitate, motiv pentru care algoritmul se opreşte, modelul liniar admiţând soluţie optimă finită.

72

Metode simplex pentru modele liniare

Citirea soluţiei:
Baza optimă Variabile bazice Valori optimale
130 350 100 Valori optimale 0 0 0
T

a4 a1 a2

x4 x1 x2
Variabile nebazice

x3 x5 x6

Soluţia optimă X * = (350 100 0 130 0 0) este:
• unic determinată, 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 ⎪ x 2 + x3 − x 4 = 1 ⎩ x j ≥ 0 , j = 1,4

73

Analiza economico-matematică a unor modele liniare

Vom studia natura sa aplicând algoritmul propus de Dantzig. Deoarece ⎛1⎞ b=⎜ ⎟>0, ⎜1⎟ ⎝ ⎠
⎡1 0 − 1 1 / 2 ⎤ A=⎢ ⎥ ⎣0 1 1 − 1 ⎦ , a1 a 2 a3 a4

rang

A=2<4

şi

⎡1 0⎤ B=⎢ ⎥ = (a1 ⎣0 1 ⎦

a 2 ) , rezultă că scrierea canonică a sistemului de restricţii

⎡1 0⎤ ⎛ x1 ⎞ ⎡− 1 1 / 2⎤ ⎛ x3 ⎞ ⎛1⎞ ⎢0 1⎥ ⋅ ⎜ x ⎟ + ⎢ 1 − 1 ⎥ ⋅ ⎜ x ⎟ = ⎜1⎟ , ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎦ ⎝ 4⎠ ⎝ ⎠ ⎣ ⎦ ⎝ 2⎠ ⎣ 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 → cB
1 2 B

1

2

2

1

XB
1 1 3

a1
1 0 1 Ø

a2
0 1 2 Ø 0 1 2 Ø

a3
-1 1 1 -1 -2 -1 -4 -6

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

ρ
1/(1/2) -

a1 a2 fj

f j −cj
1 2

≥ 0 ? NU; Th.3?
-

NU

⇒ Th.1

a4 a2 fj

2 3 8

2 2 6 5

f j −cj

≥ 0 ? NU; Th.3? DA

74

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 ⎧ ⋅ x4 = 1 ⎪1 ⋅ x1 + 0 ⋅ x2 + (− 1) ⋅ x3 + 2 ⎨ ⎪0 ⋅ x1 + 1 ⋅ x2 + 1 ⋅ x3 + (−1) ⋅ x4 = 1 ⎩ x1 ≥ 0 x2 ≥ 0 x3 ≥ 0 x4 ≥ 0

u1 ∈ R u2 ∈ R u1 + 0 ⋅ u 2 ≥ 1 1⋅ u2 ≥ 2

(− 1) ⋅ u1 + u 2 ≥ 2
1 ⋅ u1 − u 2 ≥ 1 2

u2

d 1 : u1 = 1

d 2 : u2 = 2

d 4 : u2 = d 3 : u 2 = u1 + 2
O

1 u1 − 1 2 u1

75

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 ⎪ şi rang Am× n = m < n , b ≥ 0 , ∃k ∈ I a.î. bk ≥ 0 . II.2.1 ⎨ X ≥ 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.

76

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 ⎩
a a unde α >> 0 , I m este matricea unitate de ordin m, X a = x n +1 ...x n + m

(

)

T

este

a vectorul coloană cu componentele xn +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 ⎨ ⎩ 2 x1 + x2 + x3 = 4 x j ≥ 0 , j ∈1,3 ⎡1 4 3⎤ ⎛ 6⎞ , unde A = ⎢ ⎥ , b = ⎜ 4 ⎟ , rangA=2<3. ⎜ ⎟ ⎣2 1 1⎦ ⎝ ⎠
a1 a2 a3

77

Analiza economico-matematică a unor modele liniare

⎡1 0⎤ Se constată că baza B = ⎢ ⎥ nu poate fi formată cu ajutorul unor vectori ⎣0 1 ⎦ din A, motiv pentru care se trece la forma extinsă:
a a [max] f = 3 x1 + 2 x2 + 4 x3 − α ( x4 + x5 ) a ⎧ x1 + 4 x2 + 3 x3 + x4 = 6 ⎨ a ⎩ 2 x1 + x2 + x3 + x5 = 4

,

α >> 0

În

noua

matrice

x j ≥ 0 , j ∈1,5

⎡1 4 3 1 0 ⎤ A=⎢ ⎥ , apare baza B = (a 4 ⎣2 1 1 0 1⎦
a a x4 = 6 , x5 = 4 şi f va fi (−6α − 4α ) < 0 .

a5 ) , care permite scrierea

soluţiei de start a1 a 2 a 3 a 4 a 5 pentru problema extinsă: x1 = x2 = x3 = 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 ,
a a atunci ele vor fi penalizate cu coeficienţi foarte mari: α xn +1 + ... + xn+ 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ă.

78

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 optimă finită, atunci ea va fi optimă şi pentru II.2.2. Orice soluţie optimă a problemei extinse care nu conţine nici o variabilă artificială strict pozitivă este soluţie optimă şi pentru problema iniţială, după înlăturarea variabilelor artificiale.

Teorema 2 Dacă II.2.1 are funcţia obiectiv nemărginită, atunci şi II.2.2 are funcţia obiectiv nemărginită. Reciproca este adevărată.

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 ) ,

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).

diferenţele f j − c j vor fi funcţii liniare de α . Să presupunem că la o

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

79

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
c
B


B

3
a1

2
a2

4
a3

−α
a4

−α
a5

B
a4 a5 fj
fj

X

ρ

−α −α

6 4
− 10α

1 2
− 3α

4 1
− 5α

3 1
− 4α

1 0
−α

0 1
−α

6/4 4/1

−cj
a2

− 3α − 3

− 5α − 2

− 4α − 4

Ø 1/4 -1/4
1/ 2 + α / 4

Ø 0 1
−α

≥ 0 ∀j ?
NU 6 2

2
−α

3/2 5/2

1/4 5/4

1 0 2 Ø 1 0 2 Ø 10/7 -2/7 24/7 20/7

3/4 1/4
3/ 2 −α / 4

a5 fj fj

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

−cj
a2
a1

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

Ø -1/5 4/5 2
2 +α

≥ 0 ∀j ?
NU 10/7 10

2 3

1 2 8

0 1 3 Ø

7/10 1/5 2 -2 1 0 24 Ø

3/10 -1/5 0
α

fj fj

−cj
a3
a1

≥ 0 ∀j ?
NU

4 3

10/7 12/7 76/7

0 1 3 Ø

3/7 -2/7 6/7
6/7 +α

-2/7 6/7 10/7
10 / 7 + α

fj fj

−cj

≥ 0 ⇒ DA
STOP

80

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, 10 12 * * * * , 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,
* x1 =

⎛ 12 problema iniţială admite soluţia optimă finită X * = ⎜ ⎝7 [max] f = 76 . 7

0

10 ⎞ ⎟ 7⎠

T

şi

Considerăm acum un alt exemplu pentru a aplica metoda şi în cazul în care se impune minimizarea funcţiei scop. Rezolvarea problemei, fără comentarii, este redată în cele ce urmează: [min] f = 5 x1 + x2 + 2 x3 ⎧ x1 + 2 x2 + x3 ≥ 6 ⎪ ⎨ 3x2 + 4 x3 = 20 ⎪ x + 2 x ≥ 18 3 ⎩ 2 x j ≥ 0, j = 1,3 [min] f = 5 x1 + x2 + 2 x3 ⎧ x1 + 2 x2 + x3 − x4 = 6 ⎪ ⇒ forma standard ⎨ 3x2 + 4 x3 = 20 . ⎪ x + 2 x − x = 18 3 5 ⎩ 2 x j ≥ 0, j = 1,5

81

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 , B = ⎢0 1 0⎥ nu 3 ⎢ ⎥ ⎢0 1 2 0 − 1⎥ ⎣ ⎦ ⎜ 18 ⎟ ⎢0 0 1 ⎥ ⎝ ⎠ ⎣ ⎦ a1 a 2 a3 a 4 a5 poate fi formată numai cu coloane din A, dar a1 ∈ B3 .

Etapa 1: Forma extinsă:
a a [min] f = 5 x1 + x2 + 2 x3 + αx4 + αx7 ; α >> 0.

⎧ x1 + 2 x 2 + x 3 − x 4 = 6 ⎡1 2 1 − 1 0 0 0⎤ ⎪ a A = ⎢0 3 4 0 0 1 0 ⎥ ⎨ 3 x 2 + 4 x 3 + x 6 = 20 ⎢ ⎥ ⇒ , ⎪ x + 2 x − x + x a = 18 ⎢0 1 2 0 − 1 0 1 ⎥ 3 5 7 ⎩ 2 ⎣ ⎦ a1 a 2 a 3 a 4 a 5 a 6 a 7 x j ≥ 0, j = 1,7
⎛ x1 ⎞ ⎛ 6 ⎞ ⎜ ⎟ ⎜ ⎟ X = ⎜ x6 ⎟ = ⎜ 20 ⎟ ⎜ x ⎟ ⎜ 18 ⎟ ⎝ 7⎠ ⎝ ⎠
B

B = (a1

a6

a7 ) ⇒ X SAB ⎛ x2 ⎞ ⎛ 0 ⎞ ⎜ ⎟ ⎜ ⎟ ⎜ x3 ⎟ ⎜ 0 ⎟ = ⎜ x4 ⎟ = ⎜ ⎟ ⎜ ⎟ ⎜0⎟ ⎜ x5 ⎟ ⎜ 0 ⎟ ⎜ ⎟ ⎝ ⎠ ⎝ ⎠

XR

82

Metode simplex pentru modele liniare

Tabelul simplex:
cj


B

5
a1

1
a2

2
a3

0
a4

0
a5

α
a6

α
a7

c

B

B
a1 a4 a7 fj fj

X

ρ

5

6 20 18
30 + 38α

1 0 0 5 Ø

2 3 1
4α + 10 4α + 9

1 4 2
6α + 5 6α + 3

-1 0 0 -5 -3 -1 0 0 -5 -5

0 0 -1
−α −α

0 1 0
α

0 0 1
α

6/1 20/4 (min) 18/2

α
α

[min] f ≤ 0 ∀j ?
NU

−cj
a1 a3 a7 fj

Ø -1/4 1/4 -1/2
− 3/ 4 −α / 2 − 3 / 4 − 3α / 2

Ø 0 0 1
α

5 2
α

1 5 8
15 + 8α

1 0 0 5 Ø

5/4 3/4 -1/2
31 / 4 − α / 2
27 / 4 − α / 2

0 1 0 2 Ø

0 0 -1
−α −α

[min] f ≤ 0 ∀j ? ⇒ STOP
DA

fj

−cj

Ø

* * Problema extinsă admite soluţia optimă finită x1 = 1 , 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.

83

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 , II.2.5 [min]W = ∑ xn +i .
i =1 m

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 . Se aplică algoritmul simplex primal problemei auxiliare. X SAB = ⎨ ⎩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 prin metoda simplex primal cu SAB de start dată de soluţia optimă a problemei auxiliare, după ce au fost eliminate variabilele artificiale.

min W = 0

Faza 2: Se revine la AX = b DA ⎧ ⎪ X ≥0 ⎨ ⎪[max] f ( X ) = CX ⎩

NU

STOP II.2.1 nu are soluţii

84

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 ⎨ ⎩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. . , cu forma standard

85

Analiza economico-matematică a unor modele liniare

Faza 1: Se construieşte problema auxiliară
[min]W = x6 + x7 ⎧ x1 + 2 x2 + 3 x3 − x4 + x6 = 8 , ⎨ ⎩3x1 + 4 x2 + x3 − x5 + x7 = 9 x j ≥ 0, j = 1,7 B = (a 6 ⎛1 0⎞ a7 ) = ⎜ ⎜ 0 1 ⎟ , rezultă ⎟ ⎝ ⎠
⎡1 2 3 − 1 0 1 0⎤ A=⎢ ⎥ ⎣3 4 1 0 − 1 0 1⎦ . Deoarece a1 a2 a3 a4 a5 a6 a7
T

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

algoritmul simplex-primal:
cj c
B


B

0
a1

0
a2

0
a3

0
a4

0
a5

1
a6

1
a7

B
a6 a7 fj fj

X

ρ

1 1

8 9 17

1 3 4 4

2 4 6 6 0 1 0 Ø 0 1 0 Ø

3 1 4 4 5/2 1/4 5/2 5/2 1 0 0 Ø

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

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

1 0 1 Ø 1 0 1 Ø

0 1 1 Ø

8/2 8/4

−cj
a6 a2 fj

≤ 0 ∀j = 1, 7 ? NU.

1 0

7/2 9/4 7/2

-1/2 3/4 -1/2 -1/2

7/5 9

fj

−cj
a3 a2 fj

≤ 0 ∀j = 1, 7 ? NU.

0 0

7/5 19/10 0

-1/5 4/5 0 0

fj

−cj

≤ 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.

86

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: [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
,

cu

X SAB

⎛ x1 ⎞ ⎛ 0 ⎞ ⎜ ⎟ ⎜ ⎟ ⎜ x2 ⎟ ⎜19 / 10 ⎟ = ⎜ x3 ⎟ = ⎜ 7 / 5 ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ x4 ⎟ ⎜ 0 ⎟ ⎜x ⎟ ⎜ ⎟ ⎝ 5⎠ ⎝ 0 ⎠

obţinută prin

eliminarea variabilelor auxiliare din soluţia optimă găsită la faza 1. Se testează optimalitatea sa:
cj
B


B

50

25

30

0
a4

0
a5
1/5 -3/10

c

B

X

a1

a2

a3
1 0

1 1

a3 a2 fj fj

7/5 19/10

-1/5 4/5

0 1

-2/5 1/10

89,5

14 -36

25 Ø

30 Ø

-9,5
-9,5

-1,5
-1,5
≤ 0 ∀j = 1,5 ? DA ⇒

−cj

STOP
T

19 ⎛ Problema admite soluţia optimă finită X SAB = ⎜ 0 10 ⎝

7 5

⎞ 0 0⎟ , ⎠

cu [min]f=89,5. Vom continua studiul modelului matematic prin scrierea dualei:
[max]g = 8u1 + 9u 2 ⎧ u1 + 3u 2 ≤ 50 ⎪ , pentru care duala este ⎨2u1 + 4u 2 ≤ 25 ⎪ 3u + u ≤ 30 2 ⎩ 1 u i ≥ 0, i = 1,2 .

[min] f = 50 x1 + 25 x2 + 30 x3 ⎧ x1 + 2 x2 + 3 x3 ≥ 8 → u1 ⎨ ⎩3 x1 + 4 x2 + x3 ≥ 9 → u 2 x j ≥ 0, j = 1,3

87

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 ⎧ u1 + 3u 2 + u3 = 50 A = ⎢2 ⎪ ⎢ ⎨2u1 + 4u 2 + u 4 = 25 , ⎢3 ⎣ ⎪ 3u + u + u = 30 5 ⎩ 1 2 a1 ui ≥ 0, i = 1,5 a4 3 1 0 0⎤ ⎛ 50 ⎞ ⎜ ⎟ 4 0 1 0⎥ ⎥ , rang A=3<5, b = ⎜ 25 ⎟ > 0 , 1 0 0 1⎥ ⎦ ⎜ 30 ⎟ ⎝ ⎠ a 2 a3 a 4 a5

⎡1 0 0⎤ B = ⎢0 1 0⎥ = (a3 ⎢ ⎥ ⎢0 0 1 ⎥ ⎣ ⎦

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

Se aplică algoritmul simplex-primal:
cj


B

8
a1

9
a2

0
a3

0
a4

0
a5

c

B

B
a3 a4 a5 fj fj

X

ρ

0 0 0

50 25 30 0

1 2 3 0 -8

3 4 1 0 -9 0 1 0 9 Ø 0 1 0 9 Ø

1 0 0 0 Ø 1 0 0 0 Ø 1 0 0 0 Ø

0 1 0 0 Ø 3/4 1/4 -1/4 9/4 9/4 -4/5 3/10 -1/10 19/10 19/10

0 0 1 0 Ø 0 0 1 0 Ø 1/5 -1/5 2/5 7/5 7/5

50/3 25/4 30/1

−cj
a3 a2 a5 fj

≥ 0 ∀j = 1, 5 ?

0 9 0

125/4 25/4 95/4 175/4

-1/2 1/2 5/2 9/2 -7/2

25/2 19/2

fj

−cj
a3
a2

0 9 8

26 3/2 19/2 89,5

0 0 1 8 Ø

a1 fj fj

−cj

≥ 0 ∀j = 1,5 ? DA ⇒

STOP

88

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

a 2 ... a m−1 a2 ... a m ) :

(a1 b)

a2

... a m )

este

o

bază

în

Rm ,

dar

nu este un sistem de m vectori liniar

independenţi. Vectorul b poate fi scris în mod unic în baza

(a1

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ă.

89

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 ⎧ − 2 x1 + x 2 ≤ 1 ⎪ − 2 x + 5x ≥ 5 ⎪ 1 2 , cu forma standard ⎨ 2 x1 + 3 x 2 ≤ 6 ⎪ ⎪− 14 x1 + 11x 2 ≤ 14 ⎩ x j ≥ 0, ∀j = 1,2
x2
2 B 1 -5/2 -1/2 O 3 C A

[max] f = x1 + 4 x 2 ⎧ − 2 x1 + x 2 + x3 = 1 ⎪ − 2x + 5x − x = 5 ⎪ 1 2 4 . ⎨ 2 x1 + 3 x 2 + x5 = 6 ⎪ ⎪− 14 x1 + 11x 2 + x6 = 14 ⎩ x j ≥ 0, ∀j = 1,6

d1 d2

d3

x1

⎛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
* degenerat: x1 =

3 * 7 * * * * , x 2 = , x3 = 0 , x 4 = 3 , x5 = 0 , x 6 = 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,

90

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 = r . ⎬= y rl ⎩ y sl ⎭ y kl

ρ k = ρ r = min ⎨ s| y > 0
sl

Se pune întrebarea: care din cei doi vectori va fi eliminat, a k sau a r ?
T.II.3.1

cj cB c1 ck
cr
B

c1 a1 …

cl al y1l
… …

cn an

XB x1

ρ
x1 / y11

a1

ak

xk

y kl

xk / y kl
… min

ar

xr

y rl

xr / y rl

cm

am fj f j −cj

xm

y ml

xm / y ml

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

91

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 y y y x r y r1 y r 2 , , ,..., rl −1 , rl ,...., rn . y rl y rl y rl y rl y rl y rl

Pasul 2 Operaţia 1 Se compară rapoartele din a doua coloană: y k 1 y r1 = ? y kl y rl

DA NU

Se trece la Operaţia 2.

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 * .

92

Metode simplex pentru modele liniare

Fie problema: [min] f ( X ) = 3x1 + 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
start pentru algoritmul simplex-primal,
X SAB = (0 0 0 10 15) .
T

Completând primul tabel, se va observa în formula criteriului de eliminare din bază că minimul nu este unic. Într-adevăr,

cj cB
2 3 B

3

2

4

2

3

XB
10 15 65

a1
1 2 8 5

a2
2 3 13 11

a3
1 1 5 1

a4
1 0 2 Ø

a5
0 1 3 Ø

ρ
10/2 15/3

a4

a5 fj f j −cj

[min ] f
≤ 0 ∀j = 1,5 ? NU

Se observă că: max ( f j − c j ) = 11 = f 2 − c2 ⇒ a 2 va intra în noua
f j − c j >0

bază. Dar,
Pasul 1

10 15 = . Aşadar, care vector va fi eliminat? 2 3
Pasul 2 O1:

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

10 15 = 2 3 1 2 ⇒ se elimină vectorul a 4 . O2: < 2 3 Pivotul iteraţiei este 2.

93

Analiza economico-matematică a unor modele liniare

cj c
B

3

2

4

2

3

B

X
5 0

B

a1
1/2 1/2 2 -1

a2
1 0 2 Ø

a3
1/2 -1 -1 -5

a4
1/2 -3 -5 -7

a5
0 1 2 Ø

2 3

a4 a5

fj f j −cj

10

≤ 0 ∀j = 1,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:
[max] f = ∑ c j x j
j =1 n

II.3.3

∑ a j x j + ∑ε ja j = b + ∑ε ja j
j =1 j =1 j =1

n

n

n

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:

II.3.4

∑ (x
m s =1

s

+ ε s as +

)

j = m +1

∑ε

n

j

a j = b(ε ) ,

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

n

94

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 ⎜ ⎟ = ⎜ ⎜15 ⎟ ⎜ 2⎟ ⎜ 3⎟ ⎜ 1⎟ ⎜0⎟ ⎜ 1 ⎟ ⎜15 + 2ε + 3ε 2 + ε 3 + ε 5 ⎟ ⎟ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠

b

a1

a2

a3

a4

a5

Pasul 2 Prin modificarea de la pasul 1 s-a obţinut o problemă nedegenerată.
Presupunem că al este vectorul ce va face parte din noua bază (se acceptă ipotezele expuse la metoda lexicografică). Vom aplica acum criteriul de eliminare din bază:
n ⎛ ⎜ x s + ε s + ∑ ε j y sk j = m +1 ρ = min ⎜ ⎜ s| y sk >0 y sk ⎜ ⎜ ⎝

⎞ ⎟ ⎟ ⎟. ⎟ ⎟ ⎠

În particular:

ρ = min⎜ ⎜

⎛ 10 + ε 4 + ε + 2ε 2 + ε 3 15 + ε 5 + 2ε + 3ε 2 + ε 3 ⎞ ⎟= , ⎟ 2 3 ⎝ ⎠

⎛ ε 2ε ε3 ε4 ε3 ε5 ⎞ = min⎜ 5 + + ε 2 + + ,5 + +ε 2 + + ⎟ ⎜ 2 2 2 3 3 3⎟ ⎝ ⎠

Pentru ε suficient de mic, 5 +
a 4 va fi eliminat.

ε
2

+ε 2 +

ε3
2

+

ε4
2

< 5+

ε3 ε5 2ε +ε 2 + + ⇒ 3 3 3

Observaţia 1: Metodele au fost date în cazul în care raportul minim este realizat pentru doi indici s ∈ I , dar se pot aplica şi în situaţia în care se pot
elimina mai mult de doi vectori din bază.

95

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 − 3x1 + x 2 + x3 ≤ 0 . 7 x1 − 3x 2 − 3 x3 ≤ 0 x1 − x 2 + x3 ≤ 0 Forma standard este: [max] f = 4 x1 + 5 x 2 + 3 x3 ⎧ x1 + x 4 = 100 ⎪ x + x = 90 5 ⎪ 2 ⎪ ⎨− 3 x1 + x 2 + x3 + x6 = 0 ⎪7 x − 3 x − 3 x + x = 0 2 3 7 ⎪ 1 ⎪ x1 − x 2 + x3 + x8 = 0 ⎩ x j ≥ 0, ∀j = 1,8

.

96

Metode simplex pentru modele liniare

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

XB
100 90 0 0 0 0

a1
1 0 -3 7 1 0 -4

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

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

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

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

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

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

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

ρ
90 0 -

a4 a5

a6 a7 a8 fj f j −cj

0 0 5 0 0

a4 a5 a2 a7

100 90 0 0 0 0

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

100 30 -

a8 fj fj −c

0 4 5 0 0

a4 a1 a2 a7

70 30 90 60 60 570

0 1 0 0 0 40 Ø

210 45

a8 fj f j −cj

0 4

a4 a1

55 45

0 1

220 -

97

Analiza economico-matematică a unor modele liniare

5 0 3

a2 a7

90 90 45 765

0 0 0 4 Ø

1 0 0 5 Ø

0 0 1 3 Ø

0 0 0 0 Ø

1 1 1/2 17/2 17/2

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

0 1 0 0 Ø 0

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

36 180

a3 fj f j −cj

cj cB
0 4 5 0 3 B

4

5

3

0

0

0

0

XB
46 54 90 36 36 774

a1
0 1 0 0 0 4 Ø

a2
0 0 1 0 0 5 Ø

a3
0 0 0 0 1 3 Ø

a4
1 0 0 0 0 0 Ø

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

a6
0 0 0 1 0 0 Ø

a7

a8

a4 a1 a2 a6

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

a3 fj f j −cj

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

După câteva iteraţii, obţinem soluţia care recomandă amestecarea a
x1 = 54 barili nafta, x 2 = 90 barili de benzină de 92 şi x3 = 36 barili de

benzină de 88. Astfel, se vor obţine 180 de barili cu valoarea totală de 774 ⋅ 10 dolari. Preţul unui baril de amestec va fi de 42$. Benzina nafta va reprezenta 54 ⋅ 100 = 30% din amestec, benzina auto de 92 va reprezenta 180 50% din amestec, iar benzina auto de 88 reprezintă 30% din amestec. Se observă astfel că, deşi la iteraţia 2 soluţia admisibilă de bază este

degenerată, la următoarea iteraţie soluţia admisibilă devine nedegenerată.

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

98

Metode simplex pentru modele liniare

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

1 ⎧ ⎪ x1 + 4 x 4 − 8 x 5 − x 6 + 9 x 7 = 0 ⎪ ⎨ x + 1 x − 12 x − 1 x + 3x = 0 . 5 6 7 ⎪ 2 2 4 2 ⎪x + x = 1 6 ⎩ 3 x j ≥ 0 , j = 1,6 Prezentăm în continuare rezultatele – sub formă de tabel – a şapte iteraţii. Se va observa că primul tabel coincide cu ultimul.

cj

0

0

0

-3/4

20

-1/2

6

cB
0 0 0

B

XB
0 0 1 0

a1
1 0 0 0 Ø

a2
0 1 0 0 Ø

a3
0 0 1 0 Ø

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

a5
-8 -12 0 0 -20

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

a7
9 3 0 0 -6

ρ
0 0 -

a1 a2 a3

fj
f j −cj

99

Analiza economico-matematică a unor modele liniare

cj

0

0

0

-3/4

20

-1/2

6

c

B

B

XB
0 0 1 0

a1
4 -2 0 -3 -3

a2
0 1 0 0 Ø

a3
0 0 1 0 Ø

a4
1 0 0 -3/4 Ø

a5
-32 4 0 24 4

a6
-4 3/2 1 3 7/2

a7
36 -15 0 -27 -33

ρ
0 -

-3/4 0 0

a4 a2 a3

fj f j −cj

cj

0

0

0

-3/4

20

-1/2

6

c

B

B

X
0 0 1 0

B

a1
-12 -1/2 0 -1 -1

a2
8 1/4 0 -1 -1

a3
0 0 1 0 Ø

a4
1 0 0 -3/4 Ø

a5
0 1 0 20 Ø

a6
8 3/8 1 3/2 2

a7
-84 15/4 0 -12 -18

ρ
0 0 1

-3/4 20 0

a4

a5 a3 fj f j −cj

cj

0

0

0

-3/4

20

-1/2

6

c

B

B

XB
0 0 1 0

a1
-3/2 1/16 3/2 2 2

a2
1 -1/8 -1 -3 -3

a3
0 0 1 0 Ø

a4
1/8 -3/64 -1/8 -1 -1/4

a5
0 1 0 20 Ø

a6
1 0 0 -1/2 Ø

a7
-21/2 3/16

ρ
0

-1/2 20 0

a6 a5 a3 fj f j −cj

21/2 2/21 9 3

100

Metode simplex pentru modele liniare

cj

0

0

0

-3/4

20

-1/2

6

c

B

B

XB
0 0 1 0

a1
2 1/3 -2 1 1

a2
-6 -2/3 6 -1 -1

a3
0 0 1 0 Ø

a4
-5/2 -1/4 5/2 -1/4 1/2

a5
56 16/3 -56 4 -16

a6
1 0 0 -1/2 Ø

a7
0 1 0 6 Ø

ρ
0 0 -

-1/2 6 0

a6 a7 a3

fj
f j −cj

cj

0

0

0

-3/4

20

-1/2

6

c

B

B

X
0 0 1 0

B

a1
1 0 0 0 Ø

a2
-3 1/3 0 2 2

a3
0 0 1 0 Ø

a4
-5/4 1/6 0 1 7/4

a5
28 -4 0 -24 -44

a6
1/2 -1/6 1 -1 -1/2

a7
0 1 0 6 Ø

ρ
0 1

0 6 0

a1 a7

a3 fj f j −cj

cj

0

0

0

-3/4

20

-1/2

6

cB
0 0 0

B

XB
0 0 1 0

a1
1 0 0 0 Ø

a2
0 1 0 0 Ø

a3
0 0 1 0 Ø

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

a5
-8 -12 0 0 -20

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

a7
9 3 0 0 -6

ρ
4 0 -

a1 a2 a3

fj f j −cj

În tabelele precedente, 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

101

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 cB
0 -3/4 0 B 0 0 0 -3/4 20 -1/2 6

XB
0 0 1 0

a1
1 0 0 0 Ø

a2
-1/2 2 0 -3/2 -3/2 0

a3
0 0 1 0 Ø 0

a4
0 1 0 -3/4 Ø -3/4

a5
-2 -24 0 18 -2 20

a6
-3/4 -1 1 3/4 5/4 -1/2

a7
15/2 6 0 -9/2 -21/2 6

ρ
1

a1 a4 a3

fj f j −cj

cj

0

c

B

B

X
1 1

B

a1
1 0 0 0 Ø

a2
-1/2 2 0 -3/2 -3/2

a3
3/4 1 1 -5/4 -5/4

a4
0 1 0 -3/4 Ø

a5
-2 -24 0 18 -2

a6
0 0 1 -1/2 Ø

a7
15/2 6 0 -9/2 -21/2
T

0 -3/4 -1/2

a1 a4 a6

3/4

fj f j −cj

-5/4

Astfel, soluţia optimă este dată de X = (3 / 4 0 0 1 0 1 0 ) , 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

102

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 Aici, matricea sistemului de restricţii va fi: A1 = ⎜ ⎜0 B ⎝ − cR ⎞ ⎟, R ⎟ ⎠

unde A = (B R ) . Se observă că rangA1 = m + 1 . Vectorul termenilor liberi
⎛− c ⎞ ⎛0⎞ pentru problema completată este b1 = ⎜ ⎟ . Notăm a 1 = ⎜ k ⎟ , unde a k k ⎜b⎟ ⎜ a ⎟ ⎝ ⎠ ⎝ k ⎠

este coloana k din matricea A.

103

Analiza economico-matematică a unor modele liniare

Dacă
B

B

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

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

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

B1−1
1

B1−1b1 f
B

B1−1 a 1 * k f kB − c k

x0

u B = c B B −1

0 XB B −1 XB y kB = B −1 a k * Ultima coloană va apărea în momentul când se trece la îmbunătăţirea soluţiei curente.

Etapele algoritmului simplex revizuit sunt prezentate în schema logică S.II.4.1:

104

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

Datele iniţiale:

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 j

− c j ≤ 0 DA

∀j = 1, n
NU

⎛ B −1b ⎞ ⎟ f 0 = [min] f ; X B = ⎜ ⎜ 0 ⎟. ⎝ ⎠

Alegem k astfel încât

f j −c j >0

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

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

−c

y kB ≤ 0 ?

DA

STOP Problema are optim ( − ∞ ).

NU

Se alege r după regula: min B
i| yik

xiB x rB = B . B y ik y rk
~

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 .

r

k

~

~

~

105

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 ∈ { ,.., n}− B = R ⇒ soluţie optimă. 1 Dacă nu, se trece la Pasul 2.

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

Se calculează y kB = B −1 a k . Dacă y kB ≤ 0 , problema are optim nemărginit ( − ∞ ). Dacă nu, se trece la Pasul 3. xiB x rB = B . Se înlocuieşte coloana a r cu i| yik y B y rk ik ~ coloana a k , şi se formează noua bază primal admisibilă, B1 . Se revine la

Pas 3 Alegem r după regula: min B

Pasul 1.
Să rezolvăm cu algoritmul simplex revizuit următoarea problemă de programare liniară: [min] f = −2 x1 − x 2 ⎧ x1 − x 2 ≤ 4 ⎪ ⎨3 x1 − x 2 ≤ 18 ⎪− x + 2 x ≤ 6 2 ⎩ 1 x i ≥ 0 , ∀i = 1,2 .

106

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⎟ 2 5 ⎝ ⎠ ⎩ 1 x i ≥ 0 , ∀i = 1,5

B = I3 = a3

(

a4

a 5 . Scriem “completata” problemei de mai sus:

)

[min]g = x 0 ⎧ x 0 − (−2 x1 − x 2 ) = 0 ⎪x − x + x = 4 ⎪ 1 2 3 . ⎨ ⎪3 x1 − x 2 + x 4 = 18 ⎪− x1 + 2 x 2 + x5 = 6 ⎩ x i ≥ 0 , ∀i = 1,5 ⎛1 2 1 0 ⎜ ⎜ 0 1 −1 1 Aşadar, A1 = ⎜ 0 3 −1 0 ⎜ ⎜ 0 −1 2 0 ⎝ 0 0⎞ ⎟ 0 0⎟ ⎛ 1 − cR =⎜ 1 0⎟ ⎜ 0 R ⎟ ⎝ 0 1⎟ ⎠ ⎛0⎞ ⎜ ⎟ 4 −c ⎞ ⎛0⎞ ⎟ , b1 = ⎜ ⎟ = ⎜ ⎟ . ⎜ 8 ⎟ ⎜b⎟ ⎟ B ⎠ ⎜ ⎟ ⎝ ⎠ ⎜16 ⎟ ⎝ ⎠
B

⎛1 − cB Observaţie: După reordonare putem obţine chiar A1 = ⎜ ⎜0 B ⎝

− cR ⎞ ⎟. 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
1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1

B1−1b1
0 4 18 6

x0 x3
x4 x5

107

Analiza economico-matematică a unor modele liniare

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

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

f 1B

(

)

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

f 2B

(

)

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
1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1

B1−1b1
0 4 18 6

B1−1 a11
2 1 3 -1

x0 x3
x4 x5

⎧ 4 18 ⎫ 4 Deoarece min ⎨ , ⎬ = , 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.

108

Metode simplex pentru modele liniare

Astfel, cu noua bază avem:
Variabilele de bază
0

~ B1−1
1 -2 0 0 0 0 1

~ B1−1b1
-8 4 6 10

~ B1−1 a12
* 3 -1 2 1

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

f 2B

~

⎛1⎞ ⎜ ⎟ ~ − c2 ⎞ ⎜ − 1⎟ B ⎛ − c2 = 1 u ⎜ ⎟ ⎜ a ⎟ = (1 − 2 0 0 )⎜ − 1⎟ = 3 > 0 (soluţia curentă ⎝ 2 ⎠ ⎜ ⎟ ⎜2⎟ ⎝ ⎠

(

)

nu este optimă).
⎛ 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⎞ ⎜ ⎟ ~ − c3 ⎞ ⎜1⎟ B ⎛ − c3 = 1 u ⎜ ⎜ a ⎟ = (1 − 2 0 0 )⎜ 0 ⎟ = −2 < 0 . ⎟ ⎝ 3 ⎠ ⎜ ⎟ ⎜ 0⎟ ⎝ ⎠

f 3B

~

(

)

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.

109

Analiza economico-matematică a unor modele liniare

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

~ ~ B1−1
0 0 0 1

~ ~ B1−1b1
-17 7 3 7

~ ~ B1−1 a13 **
5/2 -1/2 -3/2 5/2

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

f 3B

~ ~

⎛ 0⎞ ⎜ ⎟ ⎜1⎟ − c 3 = (1 5 / 2 − 3 / 2 0)⎜ ⎟ = 5 / 2 > 0 (soluţia curentă nu este 0 ⎜ ⎟ ⎜ 0⎟ ⎝ ⎠

optimă).
⎛ − 1 / 2 1 / 2 0 ⎞⎛ 1 ⎞ ⎛ − 1 / 2 ⎞ ~ −1 ⎜ ⎟⎜ ⎟ ⎜ ⎟ ~ B a 3 = ⎜ − 3 / 2 1 / 2 0 ⎟⎜ 0 ⎟ = ⎜ − 3 / 2 ⎟ (rezultă de aici că nu avem ⎜ 5 / 2 − 1 / 2 1 ⎟⎜ 0 ⎟ ⎜ 5 / 2 ⎟ ⎝ ⎠⎝ ⎠ ⎝ ⎠

optim infinit),
⎛ 0⎞ ⎜ ⎟ ~ ~ ⎜ 0⎟ B f 4 − c4 = (1 5 / 2 − 3 / 2 0)⎜ ⎟ = −3 / 2 < 0 . 1 ⎜ ⎟ ⎜ 0⎟ ⎝ ⎠

Variabilă care intră în bază este x 3 . 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 B1 .

110

Metode simplex pentru modele liniare

Variabilele de bază

ˆ B1−1
1 0 0 0 0 0 0 1 -1 2/5 1/5 -1/5 -1 1/5 3/5 2/5

ˆ B1−1b1
-24 42/5 36/5 14/5

x0 x1 x2 x3

Cum f 4B

ˆ

⎛0⎞ ⎜ ⎟ ⎜0⎟ − c 4 = (1 0 − 1 − 1)⎜ ⎟ = −1 < 0 şi 1 ⎜ ⎟ ⎜0⎟ ⎝ ⎠

f 5B

ˆ

⎛ 0⎞ ⎜ ⎟ ⎜ 0⎟ − c5 = (1 0 − 1 − 1)⎜ ⎟ = −1 < 0 , rezultă că soluţia curentă, 0 ⎜ ⎟ ⎜1⎟ ⎝ ⎠
T

x = (42 / 5 36 / 5 14 / 5 0 0 ) este optimă, unică şi nedegenerată. 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.

111

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ă.

112

Metode simplex pentru modele liniare

[max] f

Schema de desfăşurare a algoritmului simplex-dual, când se cere 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

y kj ≥ 0 , ∀j = 1, n
NU ● Alege xl = min{x s } (C.E.B);
s| x s < 0

STOP

Problema este fără soluţii.

● Elimină din bază vectorul ● Alege

al ;
⎫ ⎪ ⎬ (C.I.B); ⎪ ⎭

⎧ f j −cj f k − ck ⎪ = min ⎨ j | ylj < 0 y lk ⎪ 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 2.
B1

≥ 0 şi f j − c j ≥ 0 , ∀j = 1, n ⇒ STOP. Problema admite soluţie

optimă finită.

1 X B1 ≥ 0 şi ∃f k − c k < 0 , k ∈ { ,.., 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 ⇒

113

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 Soluţie de start, B bază curentă Algoritmul simplex dual

X SAB :

X B = B −1 ⋅ b ≥ 0 ;
variabilă

X SDR : X B = B −1 ⋅ b ; X R = 0 ∃x s < 0 , s ∈ J f j − c j ≥ 0 ∀j f j − c j ≤ 0 ∀j
B

a.î.

X R = 0; Obs: f s − c s = 0 , ∀x s
bazică a) Dacă

şi

(pt. [max]) sau (pt. [min])

f j − c j ≥ 0 ∀j

(pt. [max]), (pt. a) Dacă soluţie care

respectiv

[min]) ⇒ programul optimă finită. STOP b) Dacă

f j − c j ≤ 0 ∀j
are pentru nebazic şi

f j − c j ≥ 0 ∀j
B

(pt. [max]), (pt.

respectiv

f j − c j ≤ 0 ∀j

∃a k f k − ck < 0

y sk ≤ 0 , ∀s (pt. f k − ck > 0
[min]) funcţia şi

[min]) şi X ≥ 0 ⇒ programul liniar are soluţie optimă finită. b) Dacă

[max]),

respectiv

∃xs < 0 , s ∈ J B

şi

y sj ≥ 0 ,

y sk ≤ 0 ,

∀s (pt.

∀j ⇒

programul liniar nu are soluţie.

program cu nemărginită.

obiectiv Dacă pt. [max]

f j −cj ≥ 0 ,

respectiv

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

Pt. [max]:

∃f k − ck < 0

şi

y sk > 0

pt.

[min]

f j −cj ≤ 0 ,

∀j ,

şi

∃xs < 0 , s ∈ J B ,

pentru cel puţin o valoare continuă cu simplex primal.

s∈J B .

Se pt. [min] şi

f k − ck > 0 ,

cu

ak nebazic,
atunci se

∃xs ≥ 0 , ∀s ∈ J B ,

continuă cu simplex primal, deoarece s-a generat o SAB. Pivot Criterii pentru schimbarea bazei

ylk > 0
a) b) C.I.B. C.E.B.

ylk < 0
a) b) C.E.B C.I.B.

114

Metode simplex pentru modele liniare

Pentru a înţelege mai bine modul de aplicare a algoritmului simplexdual, 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 2 3 ⎩ 1
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

115

Analiza economico-matematică a unor modele liniare

Pentru a stabili dacă satisface criteriul de optimalitate, trebuie construit primul tabel de tip simplex: cj → cB
0 0 0 B 6 5 6 0 0 0

XB
-2 -6 3 0

a1
4 -2 -1 0 -6

a2
-1 1 1 0 5

a3
-1 -1 -2 0 -6

a4
1 0 0 0 Ø

a5
0 1 0 0 Ø

a6
0 0 1 0 Ø
≤ 0 ∀j = 1,6 ? DA

a4 a5

a6 fj f j −cj

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 ⎨ ⎬= y 23 ⎭ ⎩ − 2 −1 ⎭ − 2 ⎩ y 21 vector al noii baze şi (-2) pivotul.

⇒ a1 va fi al doilea

● 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 .

116

Metode simplex pentru modele liniare

Calculele sunt prezentate în tabelul de mai jos: cj →
6 5 6 0 0 0

c
0 6 0

B

B

XB
-14 3 6 18

a1
0 1 0 6 Ø

a2
1 -1/2 1/2 -3 -8

a3
-3 1/2 -3/2 3 -3

a4
1 0 0 0 Ø

a5
2 1/2 -1/2 -3 -3

a6
0 0 1 0 Ø

a4 a1 a6 fj f j −cj

≤ 0 ∀j = 1,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

cB
6 6 0

B

XB
14/3 2/3 13 32

a1
0 1 0 6 Ø

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

a3
1 0 0 6 Ø

a4
-1/3 1/6 -1/2 -1 -1

a5
-2/3 -1/6 -3/2 -5 -5

a6
0 0 1 0 Ø

a3
a1 a6

fj f j −cj

≤ 0 ∀j = 1,6 ?
DA

117

Analiza economico-matematică a unor modele liniare

Din acest ultim tabel rezultă: X B ≥ 0 ; f j − c j ≤ 0 , j = 1,6 , deci algoritmul ⎛2 X* = ⎜ ⎝3 0 se 14 3 opreşte. Problema
T

admite

soluţia

optimă

finită

⎞ 0 0 13 ⎟ cu [min] f = 32 . ⎠

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 = 3x1 + 2 x 2 + 6 x3 ⎧ x1 + 3x 2 + 4 x3 ≤ 105 ⎪ Exemplul 2 Se consideră programul liniar: ⎨ 2 x1 + 5 x 2 + x3 ≤ 70 ⎪4 x + x + 2 x ≤ 175 2 3 ⎩ 1 x j ≥ 0, ∀j ∈ 1,3 Aflati 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 + 3x 2 + 4 x3 + x 4 = 105 ⎪ ⎨ 2 x1 + 5 x 2 + x3 + x5 = 70 . ⎪4 x + x + 2 x + x = 175 2 3 6 ⎩ 1 x j ≥ 0, ∀j ∈ 1,6

118

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 → cB
0 0 0 B 3 2 6 0 0 0

XB
105 70 175 0

x1
1 2 4 0 -3

x2
3 5 1 0 -2 3/4 17/4 -1/2 9/2 5/2 1 0 0 6 Ø

x3
4 1 2 0 -6 1 0 0 6 Ø 2/7 -1/7 0 9/7 9/7

x4
1 0 0 0 Ø 1/4 -1/4 -1/2 3/2 3/2 -1/7 4/7 -2 6/7 6/7

x5
0 1 0 0 Ø 0 1 0 0 Ø 0 0 1 0 Ø

x6
0 0 1 0 Ø ≥ 0 ∀j = 1,6 ? NU 0 0 1 0 Ø

x4 x5 x6 fj f j −cj

6 0 0

x3 x5 x6 fj f j −cj

105/4 175/4 490/4 315/2

1/4 7/4 7/2 3/2 -3/2

≥ 0 ∀j = 1,6 ?
NU

6 3 0

x3
x1 x6

20 25 35 195

0 1 0 3 Ø

1/7 17/7 -9 58/7 43/7

fj f j −cj

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

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

de B = (a3

a1
B

a 6 ) , a cărei inversă
−1

⎡ 2 / 7 − 1 / 7 0⎤ = ⎢ − 1 / 7 4 / 7 0⎥ ⎢ ⎥ ⎢ 0 − 2 1⎥ ⎣ ⎦

119

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 2 3 3 2 3 ⎩ 1 ⎩ 1 x j ≥ 0, ∀j ∈ 1,6 Din forma standard: u i ≥ 0, ∀i ∈ 1,3

[min]g = 105u1 + 70u 2 + 175u 3 ⎧u1 + 2u 2 + 4u 3 − u 4 = 3 ⎪ ⎨ 3u1 + 5u 2 + u 3 − u 5 = 2 ⎪4u + u + 2u − u = 6 2 3 6 ⎩ 1 u i ≥ 0, ∀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 .

120

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
-1 -3 -4 0 -105

u2
-2 -5 -1 0 -70 -7/4 -17/4 1/4 105/4

u3
-4 -1 -2 0 -175 -7/2 -1/2 1/2 105/2

u4
1 0 0 0 Ø 1 0 0 0 Ø -4/7 -17/7 1/7 -25 -25

u5
0 1 0 0 Ø 0 1 0 0 Ø 0 1 0 0 Ø

u6
0 0 1 0 Ø ≤ 0 ∀j = 1,6 -1/4 -3/4 -1/4 -105/4 -105/4 ≤ 0 ∀j = 1,6 1/7 -1/7 -2/7 -20 -20 ≤ 0 ∀j = 1,6

0 0 0

u4 u5

-3 -2 -6 0

u6 fj f j −cj

0 0 105

u4 u5 u1 fj

-3/2 5/2 3/2 315/2

0 0 1 105 Ø

f j −cj
70 0 105

-175/4 -243/4 1 0 0 70 Ø 2 -8 0 140 -210

u2 u5 u1 fj

6/7 43/7 9/7 195

0 0 1 105 Ø

f j −cj

Se observă imediat că [max] f = [min]g = 195 . Soluţia optimă a dualei este ⎛9 U* = ⎜ ⎝7 Se verifică uşor că
* ⎛ x1 ⎞ ⎛ − 4 / 7 0 1 / 7 ⎞ ⎛ − 25 ⎞ ⎜ *⎟ ⎟ ⎟ ⎜ ⎜ (70 0 15)⎜ − 17 / 7 1 − 1 / 7 ⎟ = ⎜ 0 ⎟ = −⎜ x2 ⎟ . ⎜ x* ⎟ ⎜ 1/ 7 0 − 2 / 7 ⎟ ⎜ − 20 ⎟ ⎠ ⎠ ⎝ ⎝ ⎝ 3⎠

6 7

0

43 ⎞ 0⎟ . 7 ⎠

121

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 ⎟ ⎝ ⎠

122

Metode simplex pentru modele liniare

Pentru baza determinată de coloanele 1 şi 2 din matricea A ,
B = (a1 a 2 ) , rezultă R = (a3 a 4 a5 ) , X
B

⎛ x3 ⎞ ⎜ ⎟ ⎛ x1 ⎞ R = ⎜ ⎟ , X = ⎜ x 4 ⎟ . Sistemul de ⎜x ⎟ ⎝ 2⎠ ⎜x ⎟ ⎝ 5⎠

restricţii scris sub forma canonică relativ la B este ⎛ x3 ⎞ ⎛ 2 1 ⎞ ⎛ x1 ⎞ ⎛ 0 − 1 0 ⎞ ⎜ ⎟ ⎛ 12 ⎞ II.6.1 ⎜ ⎟ ⎜ ⎟ ⎜ 1 2 ⎟ ⋅ ⎜ x ⎟ + ⎜ 1 0 − 1⎟ ⋅ ⎜ x 4 ⎟ = ⎜ 20 ⎟ . ⎟ ⎜ ⎟ ⎜ ⎠ ⎜x ⎟ ⎝ ⎠ ⎝ ⎠ ⎝ 2⎠ ⎝ ⎝ 5⎠
1⎞ ⎛ 2 − ⎟ ⎜ 3 ⎟ , obţinem: =⎜ 3 1 2 ⎟ ⎜− ⎜ ⎟ ⎝ 3 3 ⎠

Prin înmulţirea relaţiei II.6.1 cu B −1

⎛ x3 ⎞ ⎛ 1 0 ⎞ ⎛ x1 ⎞ ⎛ 2 / 3 − 1 / 3 ⎞ ⎛ 0 − 1 0 ⎞ ⎜ ⎟ ⎛ 2 / 3 − 1 / 3 ⎞ ⎛ 12 ⎞ ⎜ ⎟ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎜ 0 1 ⎟ ⋅ ⎜ x ⎟ + ⎜ − 1 / 3 2 / 3 ⎟ ⋅ ⎜ 1 0 − 1⎟ ⋅ ⎜ x 4 ⎟ = ⎜ − 1 / 3 2 / 3 ⎟ ⋅ ⎜ 20 ⎟ ⎠ ⎜x ⎟ ⎝ ⎠ ⎝ ⎠ ⎠ ⎝ ⎠ ⎝ 2⎠ ⎝ ⎝ ⎝ 5⎠ , sau ⎛ x3 ⎞ ⎛ x1 ⎞ ⎛ − 1 / 3 2 / 3 1 / 3 ⎞ ⎜ ⎟ ⎛ 4 / 3 ⎞ ⎜ ⎟+⎜ ⎟ ⎟ ⎜ ⎜ x ⎟ ⎜ 2 / 3 1 / 3 − 2 / 3 ⎟ ⋅ ⎜ x 4 ⎟ = ⎜ 28 / 3 ⎟ . ⎠ ⎜x ⎟ ⎝ ⎠ ⎝ 2⎠ ⎝ ⎝ 5⎠

⎛ 4/3 ⎞ Deoarece B −1b = ⎜ ⎜ 28 / 3 ⎟ > 0 se poate construi o soluţie admisibilă ⎟ ⎝ ⎠ de bază, şi anume x1 = funcţiei obiectiv va fi 4 28 , x2 = , x3 = x 4 = x5 = 0 , pentru care valoarea 3 3

152 . 3

123

Analiza economico-matematică a unor modele liniare

Baza generată de coloanele 2 şi 3 din matricea sistemului de ⎛ 1 0⎞ ⎛1 0⎞ −1 restricţii, B = ⎜ ⎜ ⎟ ⎜ 2 1 ⎟ , cu inversa B = ⎜ − 2 1 ⎟ , conduce la următoarea ⎟ ⎝ ⎠ ⎝ ⎠ explicitare a sistemului de restricţii ale problemei:
⎛ x1 ⎞ ⎛ 1 0 ⎞ ⎛ x 2 ⎞ ⎛ 2 − 1 0 ⎞ ⎜ ⎟ ⎛ 12 ⎞ ⎜ ⎟ ⎜ ⎟ ⎟ ⎜ ⎟ ⎜ ⎜ 2 1 ⎟ ⋅ ⎜ x ⎟ + ⎜ 1 0 − 1⎟ ⋅ ⎜ x 4 ⎟ = ⎜ 20 ⎟ , ⎠ ⎜x ⎟ ⎝ ⎠ ⎠ ⎝ 3⎠ ⎝ ⎝ ⎝ 5⎠

de unde rezultă, prin înmulţirea cu B −1 :
⎛ x1 ⎞ ⎛ x 2 ⎞ ⎛ 1 0 ⎞ ⎛ 2 − 1 0 ⎞ ⎜ ⎟ ⎛ 1 0 ⎞ ⎛ 12 ⎞ ⎜ ⎟+⎜ ⎟ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎜ x ⎟ ⎜ − 2 1 ⎟ ⋅ ⎜ 1 0 − 1⎟ ⋅ ⎜ x 4 ⎟ = ⎜ − 2 1 ⎟ ⋅ ⎜ 20 ⎟ . ⎠ ⎜x ⎟ ⎝ ⎠ ⎝ ⎠ ⎠ ⎝ ⎝ 3⎠ ⎝ ⎝ 5⎠

După efectuarea calculelor apare scrierea explicită a sistemului de restricţii în raport cu baza (a 2 a3 ) din spaţiul bunurilor: ⎛ x1 ⎞ ⎧2 x1 + x 2 − x 4 = 12 ⎛ x 2 ⎞ ⎛ 2 − 1 0 ⎞ ⎜ ⎟ ⎛ 12 ⎞ ⎜ ⎟+⎜ ⎟ ⎜ ⎟ ⎜ x ⎟ ⎜ − 3 2 − 1⎟ ⋅ ⎜ x 4 ⎟ = ⎜ − 4 ⎟ sau ⎨− 3 x + x + 2 x − x = −4 . ⎠ ⎜x ⎟ ⎝ ⎠ 1 3 4 5 ⎝ 3⎠ ⎝ ⎩ ⎝ 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

124

Metode simplex pentru modele liniare

realizabilă dacă ar verifica criteriul de optimalitate. Se va verifica acest lucru: cj → cB
5 3 B 3 5 4 0 0

XB
12 -4 48

a1
2 -3 1 -2

a2
1 0 5 0

a3
0 1 3 0

a4
-1 2 1 1

a5
0 -1 -3 -3

a2 a3 fj f j −cj

Deoarece f 4 − c 4 > 0 , 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ţ. [min] f = 3x1 + 5 x 2 + 4 x3 ⎧2 x1 + x 2 ≥ 12 ⎨ ⎩ x1 + 2 x 2 + x3 ≥ 20 x j ≥ 0, ∀j = 1,3
[max]g = 12u1 + 20u 2 ⎧2u1 + u 2 ≤ 3 ⎪ , de unde rezultă duala ⎨u1 + 2u 2 ≤ 5 → u2 ⎪0 ⋅ u + u ≤ 4 1 2 ⎩ u1 , u 2 ≥ 0

→ u1

.

Se observă că orice cuplu (u1 , u 2 ) care verifică primele două 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

125

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:
⎧2u1 + u 2 = 3 ⎨ ⎩u1 + 2u 2 = 5 1 ⎧ ⎪ u1 = 3 . ⇒ ⎨ 7 ⎪u 2 = 3 ⎩

d) Soluţia de start pentru algoritmul simplex-dual este o soluţie dual realizabilă (SDR). Se observă că matricea A conţine matricea unitate de ordinul 2 cu semnul schimbat: B = (−1)(a 4 a5 ) . Restricţiile scrise sub forma standard se vor înmulţi cu (-1): ⎧ − 2 x1 − x 2 + x 4 = −12 ⎨ ⎩− x1 − 2 x 2 − x3 + x5 = −20 apoi se va scrie sistemul sub forma matriceală:
⎛ x1 ⎞ ⎛ − 2 − 1 0 ⎞⎜ ⎟ ⎛ 1 0 ⎞⎛ x 4 ⎞ ⎛ − 12 ⎞ ⎜ ⎟ ⎟ ⎟⎜ ⎟ ⎜ ⎜ − 1 − 2 − 1⎟⎜ x 2 ⎟ + ⎜ 0 1 ⎟⎜ x ⎟ = ⎜ − 20 ⎟ . ⎜ ⎠ ⎠⎜ x ⎟ ⎝ ⎠⎝ 5 ⎠ ⎝ ⎝ ⎝ 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

126

Metode simplex pentru modele liniare

bazei B = (a 4

a5 ) . cj

X 1 va fi SDR dacă ar satisface criteriul de

optimalitate. Să verificăm acest lucru:
3 5 4 0 0

cB
0 0

B

XB
-12 -20 0

a1
-2 -1 0 -3

a2
-1 -2 0 -5 0 1 5 0 0 1 5 0

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

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

a5
0 1 0 0 -1/2 -1/2 -5/2 -5/2 1/3 -2/3 -7/3 -17/3

a4 a5 fj f j −cj

5 3

a4 a2 fj f j −cj
a1 a2 fj

-2 10 50

-3/2 1/2 5/2 -1/2

5 3

4/3 28/3 152/3

1 0 3 0

f j −cj algoritmul simplex dual:

Iteraţia 1: Deoarece f j − c j ≤ 0 , ∀j ∈ 1,5 ⇒ X 1 este SDR . Se aplică
• 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 • CIB: min⎜ ⎜ − 3 / 2 , − 1/ 2 ⎝ ⎞ − 1/ 2 ⎟= ⎟ − 3/ 2 . ⎠

127

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

128

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

⎧− 2 x1 + x 2 = 3 ⎧ x1 + x 2 = 4 şi ⎨ , găsim coordonatele punctelor A, B şi C, şi ⎨ ⎩ 3 x1 + x 2 = 5 ⎩3 x1 + x 2 = 5 ⎛ 1 11 ⎞ ⎛ 2 19 ⎞ ⎛1 7⎞ anume: A⎜ , ⎟ , B⎜ , ⎟ şi C ⎜ , ⎟ . Astfel, porţiunea haşurată din ⎝2 2⎠ ⎝3 3 ⎠ ⎝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, este 5 ⋅ 2 19 67 + 3⋅ = . 5 5 5
x2 d2 C

A
B
d1 x1
O

d3

129

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 2 5 ⎩ 1 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:

130

Metode simplex pentru modele liniare

cj cB
0 0 0 B

5

3

0

0

0

XB
-4 -3 -5 0

a1
-1 2 -3 0 -5

a2
-1 -1 -1 0 -3 -2/3 -5/3 1/3 5/3 -4/3 0 1 0 3 Ø

a3
1 0 0 0 Ø 1 0 0 0 Ø 1 0 0 0 Ø

a4
0 1 0 0 Ø 0 1 0 6 Ø -2/5 -3/5 -1/5 -4/5 -4/5

a5
0 0 1 0 Ø -1/3 2/3 -1/3 -1/3 -1/3 -3/5 -2/5 -1/5 -1/5 -11/5

a3
a4 a5

fj f j −cj
0 0 5

≤ 0 ∀j ? DA ⇒ SDR

a3
a4 a1 fj

-7/3 -19/3 5/3 25/3

0 0 1 5 Ø

f j −cj
0 3 5

≤ 0 ∀j ? DA ⇒ SDR

a3
a2 a1 fj

1/5 19/5 2/5 67/5

0 0 1 5 Ø

f j −cj

≤ 0 ∀j ? DA ⇒ soluţie optimă

Prima bază admisibilă (a3

a2

a1 ) este şi bază optimă pentru 67 ; 5 2 19 1 * * * , x2 = , x3 = , x 4 = 0 , 5 5 5

modelul studiat. Din tabelul optimal obţinem cel puţin două informaţii: • funcţia de eficienţă are valoarea minimă

* • soluţia optimă are componentele: x1 = * x5 = 0 .

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.

131

Analiza economico-matematică a unor modele liniare

[min] f = 5 x1 + 3 x 2 + αx6 + αx7 + αx8 ⎧ x1 + x 2 − x3 + x6 = 4 ⎪ Forma extinsă este: ⎨− 2 x1 + x 2 − x 4 + x7 = 3 ⎪ 3x + x − x + x = 5 2 5 8 ⎩ 1 x j ≥ 0, ∀j ∈ 1,8 cj
5 3 0 0 0

.

α
a6
1 0 0

α
0 1 0

α
0 0 1

cB α

B

XB
4 3 5 14 α

a1
1 -2 3 2α 2 α -5

a2
1 1 1 3α 3 α -3 0 1 0 3 Ø 0 1 0 3 Ø 0 1 0 3 Ø

a3
-1 0 0 -α -α -1 0 0 -α -α -1/3 -2/3 5/3

a4
0 -1 0 -α -α 1 -1 1 -α -α 1/3 -1/3 -2/3

a5
0 0 -1 -α -α 0 0 -1 -α -α 0 0 -1 -α -α -1/5 -2/5 -3/5 -11/5 -11/5

a 7 a8

α α

a6 a7 a8

fj

α
Ø -1 0 0

α
Ø

α
Ø 0 0 1

α
3

f j −cj a6
a2 a8
1 3 2 3 α +9

3 -2 5 8α 8 α -5

α

fj f j −cj
5 3

α
Ø

α
Ø 0 0 1

α

a1 a2 a8

1/3 11/3 1/3 (58+ α )/3

1 0 0 5 Ø

fj f j −cj
5 3 0

(5 α -11)/3 (2-2 α )/3 (5 α -11)/3 (2-2 α )/3 0 0 1 0 Ø 1/5 -3/5 -2/5 -4/5 -4/5

α
Ø

a1 a2 a3

2/5 19/5 1/5 67/5

1 0 0 5 Ø

fj f j −cj

132

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

133

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.

134

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 modelului Semnificaţii economice

III.1.1 [max] f = 20 x1 + 10 x 2 + 12 x3
x1 + 2 x 2 ≤ 680 → u1 ⎧ ⎪ III.1.2 ⎨ 2 x1 + x 2 + 4 x3 ≤ 800 → u 2 ⎪5 x + 4 x + 2 x ≤ 900 → u 2 3 3 ⎩ 1 III.1.3 x j ≥ 0, ∀j = 1,3

x j , j = 1,3

Număr de produse de tip

Pj .
Disponibilul din resursa i . Cantitatea din resursa i care se consumă pentru o unitate de produs

bi , i = 1,3
aij , i, j = 1,3

∑a
j =1

3

ij

x j ≤ bi

Pj . Resursa i este limitată.

c j , j = 1,3

Venit aşteptat de la o unitate 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

135

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 →
cB
0 0 0 B

20

10

12

0

0

0

Criterii

XB
680 800 900 0

a1
1 2 5 0 -20

a2
2 1 4 0 -10

a3
1 4 2 0 -12

a4
1 0 0 0 Ø

a5
0 1 0 0 Ø

a6
0 0 1 0 Ø

ρ
680 400 180 (min)

a4

a5 a6 fj f j −cj

≥ 0 ∀j ? NU

Criteriul de intrare în bază:
a j nebazic

min ( f j − c j ) = −20 = f1 − c1

produsul P1 este cel mai rentabil

deoarece va provoca cea mai mare creştere a funcţiei economice venit total, şi anume:
Venit total T.III.1.2 2 Venit total T.III.1.1 1 Număr de unităţi a noii variabile bazice Venit unitar

III.1.7

=

+

x1 .

c1 = f 1 − c1

=

= 0+

900 ⋅ 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.

136

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 cB
0 0 20 B

10

12

0

0

0

Criterii

XB
500 440 180 3600

a1
0 0 1 20 Ø

a2
6/5 -3/5 4/5 16 6 9/8 -3/16 7/8 61/4 21/4

a3
-2/5 16/5 2/5 8 -4 0 1 0 12 Ø

a4
1 0 0 0 Ø 1 0 0 0 Ø

a5
0 1 0 0 Ø 1/8 5/16 -1/8 5/4 5/4

a6
-1/5

ρ
-

a4

a5
a1

-2/5 440/(16/5) (min) 1/5 4 4 -1/4 -1/8 1/4 7/2 7/2 180/(2/5)

fj f j −cj
0 12 20

≥ 0 ∀j ? NU

a4

555 275/2 125 4150

0 0 1 20 Ø

a3
a1

fj f j −cj

≥ 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

137

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 total maxim Venit total + T.III.1.2 Număr de unităţi a noii variabile bazice x3 .

=

⋅ f 3 − c3 =

= 3600 +

440 ⋅ 4 = 4150 . 16 / 5

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

U = c ⋅B
*
B

−1

⎛ 1 1/ 8 − 1/ 4⎞ ⎜ ⎟ = (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 postoptimizare (vezi capitolul IV). este utilizată în procedura de

138

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 * ⎪ * * , u6 = 0 . ⎨ + 14 − u 5 = 10 , de unde rezultă u 4 = 0 , u 5 = 4 ⎪4 ⎪ 5 + 7 − u 6 = 12 ⎪ ⎩
Aşadar,

(u

* 1

* u2

* u3

f 4 − c4

f 5 − c5

f 6 − c6

)

este

soluţia

optimă pentru forma standard a dualei problemei analizate. Din obţinem:
⎧ 0 + 0 + 20 − 0 = 20 ⎪ ⎨ 0 + 0 + 16 − 6 = 10 . ⎪0 + 0 + 8 − ( −4) = 12 ⎩

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

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ă.

139

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 ⎞ ⎜ ⎟ ⎜ a2 j ⎟ III.1.8 1 ⋅ ⎜ ⎟ ... ⎜ ⎟ ⎜a ⎟ ⎝ mj ⎠
Interpretarea economică:

=

⎛ a11 ⎞ ⎜ ⎟ ⎜a ⎟ y1 j ⎜ 21 ⎟ ... ⎜ ⎟ ⎜a ⎟ ⎝ m1 ⎠

+

⎛ a21 ⎞ ⎜ ⎟ ⎜ a22 ⎟ y2 j ⎜ ... ⎟ ⎜ ⎟ ⎜a ⎟ ⎝ 2m ⎠

⎛ am1 ⎞ ⎜ ⎟ ⎜ am 2 ⎟ + ..... + ymj ⎜ ... ⎟ ⎜ ⎟ ⎜a ⎟ ⎝ mm ⎠

Cât se consumă din resursele R1 ,…, Rm pentru o unitate de produs Pj .

Cât se consumă din cele m resurse disponibile pentru y 2 j unităţi de produs P2 .

⇒ 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 ,
f j −c j <0

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

⎛ 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ă:
• B ⋅ a j reprezintă scrierea lui a j în baza B (vezi III.1.8).
−1

140

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 ) ( i +1 f ( X SAB ) ≤ f ( X SAB ) ) :

f ( X (i +1) ) = f ( X (i ) ) − ρ l ( f k − c k ) = f ( X ( 2 ) ) − Se spune că [− ρ l ( f k − c k )] = −

i=2

440 (−4) = 3600 + 550 = 4150 = f ( X (3) ) 16 / 5

xl ( f k − c k ) reprezintă creşterea lui f prin y lk

trecerea la noua soluţie admisibilă de bază.

141

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

as

xs

y sk

x s şi x k sunt: x ⋅ y − xl ⋅ y sk y x s := s lk = x s − xl sk y lk y lk x x x k := l sau y kl := l y kl xk
care înlocuită mai sus ne permite scrierea: pivot

al

xl

y lk

xs(i+1) = xs(i) − xl(i)

ysk = xs(i) − xk(i+1) ⋅ ysk (i) xl 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ă

125 = 180 −

275 2 ⋅ . În concluzie, numărul produselor P1 scade la 125. 2 5

142

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:

III.2.1

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

n

n

Venit aşteptat de la o unitate Pj

×

Număr de unităţi Pj

Restricţiile sunt date de disponibilul limitat de resurse:

∑a
j =1

n

ij

x j ≤ bi ,

∀i ∈ 1, m ,

adică,
Cât se consumă din resursa Ri pentru o unitate din Pj

III.2.2


j =1

n

×

Număr de unităţi

Pj

Disponibil din resursa Ri

∀i ∈ 1, m .

Desigur, condiţia de nenegativitate este de asemenea impusă:
x j ≥ 0 , ∀j ∈ 1, n .

143

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:

III.2.3

[min]g = ∑ u i bi = ∑
i =1 i =1

m

m

ui

×

Disponibilul din resursa Ri

Restricţiile sunt date de:

∑a u
i =1 ij

m

i

≥ cj

, ∀j ∈ 1, n ,

ceea ce înseamnă
Cât se consumă din Ri pentru o unitate de Pj . Venit aşteptat de la o unitate Pj

III.2.4


i =1

m

× ui

, j = 1, n .

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 * ) .

144

Analiza economico-matematică a unor modele liniare

Această relaţie are următoarea interpretare:
n


j =1

Venit aşteptat de la o unitate Pj

×

Număr de produse Pj în programul optim

=


i =1

m

Disponibil din resursa ×

Ri

u i*

Unităţi monetare

Număr produse Măsurat în kg, m2, lăzi, × u i etc.

Venit total optim măsurat în unităţi monetare

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
* * III.2.8 b1u1 + ... + (bi + 1)u i* + ... + bm u m = ∑ bi u i* + u i* = [max ] f + u i* .

m

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

145

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.

146

Analiza economico-matematică a unor modele liniare

Să revenim la III.2.4. Înlocuind u i prin semnificaţia găsită, obţinem:


i =1

m

Cât se consumă din resursa R i pentru o unitate din

Pj

×

Preţul umbră al resursei Ri

Venit aşteptat de la o unitate Pj

pentru j fixat. Această restricţie exprimă un paradox,
Valoarea consumurilor din cele m resurse pentru realizarea unui produs Pj , calculată pe baza preţurilor umbră

Venit aşteptat de la o unitate Pj

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 şi {uA ≥ c u≥0
u

{AX

x

≤b X ≥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 III.2.10

U * ( AX * − b) = 0 , X * (c − U * A) = 0 .
T

147

Analiza economico-matematică a problemelor aflate în dualitate

Din III.2.10 se va analiza produsul ⎞ ⎛ n u i* ⎜ ∑ aij x *j − bi ⎟ = 0 , i = 1, m . ⎟ ⎜ ⎠ ⎝ j =1

III.2.11

Cazul 1 u i* > 0 ⇒

∑a
j =1

n

ij

x * − bi = 0 ⇒ Dacă prin programul optim resursa j

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 ⎧ x1 + 3 x 2 ≤ 700 ⎪ ⎨3 x1 + x 2 + 4 x3 ≤ 900 ⎪ x + 2 x + 2 x ≤ 800 2 3 ⎩ 1 x j ≥ 0, ∀j ∈ 1,3

[min]g = 700u1 + 900u 2 + 800u 3 ⎧ u1 + 3u 2 + u 3 ≥ 18 ⎪ şi ⎨3u1 + u 2 + 2u 3 ≥ 14 ⎪ 4u + 2u ≥ 15 2 3 ⎩ u i ≥ 0, ∀i ∈ 1,3 ,

despre care deţinem următoarele informaţii:
⎛ 250 ⎞ ⎜ ⎟ ⎜ 150 ⎟ ⎜ 0 ⎟ ⎟ , respectiv U * = (3 5 4 ) ; • admit soluţii optime finite X * = ⎜ ⎜ 0 ⎟ ⎜ 0 ⎟ ⎜ ⎟ ⎜ 250 ⎟ ⎝ ⎠ • [max] f = [min]g = 6600 .

148

Analiza economico-matematică a unor modele liniare

• primala a fost rezolvată prin algoritmul simplex primal. Din tabelul final am extras baza optimă: (a 2 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

a1

a6 ) , B

−1

⎛ 3 / 8 − 1/ 8 0⎞ ⎜ ⎟ = ⎜ − 1 / 8 3 / 8 0 ⎟ şi ⎜ − 5 / 8 − 1/ 8 1 ⎟ ⎝ ⎠

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α * ⎞ ⎛ u1 ⎟ ⎜ 150 + 8 ⎛ 700 + α ⎞ ⎜ ⎧α ∈ {1,2,...} ⎟ ⎜ ⎟ ⎜ α * ⎟ ⎪ * * B −1 X (α , u1 ) = B ⎜ 900 ⎟ = 250 − u1 ≥ 0 ⇔ ⎨u1 α ≤ 2000 ⇔ α ∈ {1,...,400} ⎜ ⎟ 8 ⎜ 800 ⎟ ⎜ ⎪ u *α ≤ 400 5α * ⎟ ⎝ ⎠ ⎩ 1 u1 ⎟ ⎜ 250 − 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 ⎟ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠

149

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 * − bi ≠ 0 ⇒ u i* = 0 . Dacă prin programul optimal resursa i j

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 ⎛ ⎞ x * ⎜ c j − ∑ aij u i* ⎟ = 0 , j = 1, n , j i =1 ⎝ ⎠

III.2.12

care va fi analizat în două circumstanţe. c j = ∑ aij u i* , cu interpretarea: este rentabilă
i =1 m

Cazul 3 x * > 0 j

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 =1

a12 a13 = 3 =1

150

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 unitar pentru P 1
Cât se consumă din cele trei resurse pentru un produs

-


i =1

3

P1

×

Preţurile unitare umbră ale celor trei resurse

= 0.

Cazul 4

∑a u
i =1 ij

m

* i

≠ c j ⇒ x * = 0 ⇒ fabricarea lui Pj nu este j

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ă

x

* j

nivelul activităţii

Pj

(număr de produse

Pj ) Ri

∑a u
j =1 ij

n

* i

≥ c j . Criterii de optimalitate pentru

primală cu factori de cost relativ.

∑a
i =1

m

ij

x * ≤ bi j

- cât va fi consumat din

u

* i

- preţul umbră ataşat lui
*

Ri , privit ca rata cu

care

prin programul optim)

f ( X ) poate să crească sau să descrească la 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 * )

151

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,
* * u1 = 0 , u 2 =

5 * 7 , u 3 = , iar valoarea minimă a funcţiei obiectiv din duală 4 2 5 7 + 900 ⋅ = 4150 = [max] f . 4 2

este [min]g = 680 ⋅ 0 + 800 ⋅

⎛ Cele două soluţii optime, X * = ⎜125 0 ⎝ trebuie să verifice relaţiile:
* * * ⎧u1 x1 + 2 x 2 − 680 = 0 ⎪ * * * * ⎪u 2 2 x1 + x 2 + 4 x3 − 800 = 0 ⎪u * 5 x * + 4 x * + 2 x * − 900 = 0 ⎪ 3 1 2 3 ⎨ * * * * ⎪ 20 − u1 + 2u 2 + 5u 3 ⋅ x1 = 0 ⎪ 10 − 2u * + u * + 4u * ⋅ x * = 0 1 2 3 2 ⎪ * * * ⎪ 12 − 4u 2 + 2u 3 ⋅ x3 = 0 ⎩

275 ⎞ ⎟ 2 ⎠

T

⎛ şi U * = ⎜ 0 ⎝

5 4

7⎞ ⎟ 2⎠

[ [ [

( ( (

)

)

( ( (

)]

)] )]

)

conform teoremei ecarturilor complementare.

152

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.

153

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 → u2 ⎩ x 2 + x 4 + x 5 ≥ 400 x j ≥ 0, ∀j ∈ 1,5 care are duala

[min]g = 700u1 + 400u 2 ⎧ u1 ≤ 2 ⎪ u ≤ 20 ⎪ 2 ⎪ (P.D) ⎨ u1 ≤ 3 ⎪ u + u ≤ 11 2 ⎪ 1 ⎪2u1 + u 2 ≤ 12 ⎩ u1 , u 2 ≥ 0 → x1 → x2 → x3 → x4 → x5

154

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 = ⎜ ⎟ ⎟ ⎜ 0 1 0 1 1 0 − 1⎟ , cu rangA=2, b = ⎜ 400 ⎟ şi ⎜ ⎠ ⎠ ⎝ ⎝
c = (2 20 3 11 12 0 0 ) .

Dacă baza de start este (a1 componentele
x1 = 700

1 a 2 ) , atunci X SAB ataşată ei va avea

,

x 2 = 400

,

xi = 0

∀i ∈ 3,7

şi

1 f ( X SAB ) = 2 ⋅ 700 + 20 ⋅ 400 = 9400 .

Dacă B = (a3 x 2 = 400 ,

2 a 2 ) , atunci X SAB va avea componentele x1 = 0 ,

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.

155

Analiza economico-matematică a problemelor aflate în dualitate

cj cB
2 20 B

2

20

3

11

12

0

0

xB
700 400 9400

a1
1 0 2 Ø

a2
0 1 20 Ø

a3
1 0 2 -1

a4
1 1 22 11

a5
2 1 24 12

a6
-1 0 -2 -2

a7
0 -1 -20 -20

ρ
700/2 (min) 400/1

a1 a2 fj

f j −cj

cj

2

20

3

11

12

0

0

cB
12 20

B

xB
350 50 5200

a1
1/2 -1/2 -4 -6

a2
0 1 20 Ø -1 2 10 -10

a3
1/2 -1/2 -4 -7 1 -1 1 -2

a4
1/2 1/2 16 5 0 1 11 Ø

a5
1 0 12 Ø 1 0 12 Ø

a6
-1/2 1/2 4 4 -1 1 -1 -1

a7
0 -1 -20 -20 1 -2 -10

ρ
350/(1/2) 50/(1/2) (min)

a5
a2 fj

f j −cj
12 11

a5
a4 fj

300 100 4700

1 -1 1 -1

f j −cj

-10 ≤ 0, ∀j = 1,7 ⇒ STOP

Modelul admite optim finit ⎛ 0 ⎞ ⎜ ⎟ ⎜ 0 ⎟ ⎜ 0 ⎟ ⎜ ⎟ X * = ⎜ 100 ⎟ , ⎜ 300 ⎟ ⎜ ⎟ ⎜ 0 ⎟ ⎜ ⎟ ⎝ 0 ⎠

iar [min]f=4700.

156

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 B Figura III.3.1

O

A

d4

d3

u1

157

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
j = 1 ⇒ f1 = 2 ; j = 2 ⇒ f 2 = 20 . a 2 ) se citesc f j , cu j ∈ J B .

Pasul 2 Dintre restricţiile dualei se reţin acelea care au termeni liberi f j

citiţi la pasul

158

Analiza economico-matematică a unor modele liniare

1. Acestea vor forma sistemul saturat. ⎧ u1 = 2 ⎨ ⎩u 2 = 20 Se consideră a doua bază (a5
Pasul 1 j = 5, f 5 = 12 ;

a 2 ) ⇒ J B = {5,2} .

⎧ u 2 = 20 . j = 2, f 2 = 20 ⇒ Pasul 2 ⎨ ⎩2u1 + u 2 = 12 Sistemul saturat al bazei optime (a5
⎧2u + u 2 = 12 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ă.

159

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

160

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.

161

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
a1 K a j K a n

cB

B

X
−1

B

cj

aj
fj f j −cj

B ⋅b
CB ⋅ X
B

B −1 ⋅ a j , j = 1, n C B ⋅ B −1 ⋅ a j , j = 1, n
C B ⋅ B −1 ⋅ a j − c j

[max ] f ≥ 0, (∀) j = 1, n
162

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. ~ cj
T.IV.2.2 ?

cB
?

B
~ fj

XB
?

a1 K a j K a n
? ?

~ ~ 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

163

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 − cj = c B aj − cj .

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] ~ = c X * = (c + ∆c)X * = cB + ∆cB X B = cB X B + ∆cB X B = [max] f + ∆cB X B f ~

(

)

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 * .

164

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 2 ⎩ 1 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: cj cB
250 200 0 250 200 300 0 0 0

α >> 0 α >> 0
a7
1 -1 1 50

T.IV.2.3

B
a1 a2 a6 ~ fj

X B a1
4 2 0 1 0 0

a2
0 1 0 200 Ø

a3 a 4 a5 a 6
2 -2 2 -1 1 -1 0 -1 2 0 0 1 0 Ø

a8
0 1 -2 200

1400 250 Ø

100 -50 -200 -200 -50 -200

~ ~ f j − cj

50 − α 200 − α

[min ] f ≤ 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: ~ ~ ~ c1 = 200, c2 = 220, c3 = 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 ;

165

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: ~ cj
200 250 250 200 250 300 0 0 0 0 0 0

cj
B ~ cB c

B
a1 a2

X B a1
4 2 0 1 0 0

a2
0 1 0 200 Ø 250 Ø

a3
2 -2 2 100 -200 -100 -350

a4
-1 1 -1 -50 -50 50 50

a5
0 -1 2 -200 -200 -250 -250

a6
0 0 1 0 Ø 0 Ø

ρ
_

200 250 0

250 200 0

21
_

a6 fj f j −cj
~ fj ~ ~ f j − cj

1400 250 Ø 1300 200 Ø

[min ] f
≤ 0, (∀) j = 1,6 ?
NU ⇒ Pasul 3 continuă cu alg. simplexprimal

200 0 0

a1 a4

6 2 2

1 0 0

1 1 0 200 -50

0 -2 0 0 0

0 1 0 0 Ø

-1 -1 1 -200 -200

0 0 1 0 Ø

a6 ~ fj
~ ~ f j − cj

1200 200 Ø

[min ] f
≤ 0, (∀) j = 1,6 ?
DA ⇒ STOP

166

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] ~ = [max] f + c B X B . Într-adevăr, f 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 − ~3 = 0 . c 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

167

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 cB B ~ XB

c1 K c j K c n a1 K a j K a n

~ B−1 ⋅ b
fj f j −cj ~ CB ⋅ X B

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 .

168

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

169

Postoptimizare în programarea liniară

Din tabelul simplex-primal s-au reţinut numai elementele ultimei iteraţii:
T. IV.3.2

cj cB
2 2 0

3

2

2

0

0

0

−α

B
a2

XB
1900 900 300 5600

a1
2 -1/2 1 3 0

a2
1 0 0 2 Ø

a3
0 1 0 2 Ø

a4
-1 3/2 -2 1 1

a5
0 0 1 0 Ø

a6
-1 1 -1 0 0

a7
1 -1 1 0

a3 a5 fj f j −cj

α >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 .
• B
−1

⎛ −1 0 1 ⎞ ⎟ ⎜ 3 0 − 1⎟ . =⎜ ⎜ 2 ⎟ ⎜− 2 1 1 ⎟ ⎠ ⎝

170

Analiza economico-matematică a unor modele liniare

Pasul 2 ~B X = B −1 ⋅ (5600 3700 7500) T = (1900 900 0) T ≥ 0 ~ ~ f 0 = c B X B = (2 2 0) ⋅ (1900 900 0) T = 5600 = f 0 .

→ STOP.

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
2 2

B
a2 a3 a5 fj f j −cj

XB
2000 1000 -300 6000

a1
2 -1/2 1 3 0

a2
1 0 0 2 Ø

a3
0 1 0 2 Ø

a4
-1 3/2 -2 1 1

a5
0 0 1 0 Ø

a6
-1 1 -1 0 0

0

[max ] f
≥ 0, (∀) j = 1,6 ? DA
(vezi observaţia 1)

171

Postoptimizare în programarea liniară

T. IV. 3.3 (continuare)

cj cB
2 2 0

3

2

2

0

0

0

B
a2

XB
2300 700 300 6000

a1
1 1/2 -1 3 0

a2
1 0 0 2 Ø

a3
0 1 0 2 Ø

a4
1 -1/2 2 1 1

a5
-1 1 -1 0 0

a6
0 0 1 0 Ø

a3 a6 fj f j −cj

[max ] f
≥ 0, (∀) j = 1,6 ? DA XB ≥0
⇒STOP

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.

172

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

∑a
j =1 n

n

ij

x j ≥ bi x j ≤ bi

∑a
j =1

ij

[max ] f

∑a
j =1 n

n

ij

x j ≥ bi x j ≤ bi

∑a
j =1

ij

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.

173

Postoptimizare în programarea liniară

Ca şi în alte cazuri totul va fi redat schematic după cum urmează: [max] f
Valorile Valorile vectorului

b

~ ~ X B = B −1b

funcţiei scop

Concluzii Tipul restricţiei

~ f ( X B ) = cB X B

∆bi , ∆f

Valoare iniţială

⎛ 5600 ⎞ ⎟ ⎜ b = ⎜ 4000 ⎟ ⎜ 7500 ⎟ ⎠ ⎝

⎛1900⎞ x2 ⎟ ⎜ X = ⎜ 900 ⎟ x3 ⎜ 300 ⎟ x ⎠ 5 ⎝
B

f * = 5600

b1 := b1 + 1
⎛ 5601 ⎞ ⎟ ~ ⎜ b = ⎜ 4000 ⎟ ⎜ 7500 ⎟ ⎠ ⎝

⎛ 1899 ⎞ x2 ~B ⎜ ⎟ X = ⎜1803/ 2⎟ x3 ⎜ 298 ⎟ x ⎠ 5 ⎝

Restricţie

b1 ↑

1u.resursă

f = 5601

concordantă

* f ↑ 1 = u1 u.

m
* b1 ↑αu1 * * α ∈R+,u1 > 0 * f ↑ αu1

b1 := b1 + αu
∗ α ∈ R+

* 1

dacă

* ⎛5600 αu ⎞ + 1⎟ ~ ⎜ b = ⎜ 4000 ⎟ ⎜ ⎜ 7500 ⎟ ⎟ ⎝ ⎠

* ⎛ 1900−αu1 ⎞ ⎜ ⎟ ⎜ 900+ 3 αu* ⎟ ≥ 0 1⎟ ⎜ 2 ⎜ 300− 2αu* ⎟ 1 ⎠ ⎝ * ⇒αu1 ∈

* f = 5600 + αu1

Restricţie concordantă

* 0 ≤ αu1 ≤ 150

cu condiţia
* 0 ≤ αu1 ≤ 150

din punct de vedere matematic. În realitate acest interval este impus de tehnologia produselor.

[0,150]

b1 := b1 − 100 ⎛ 5500 ⎞ ⎟ ~ ⎜ b = ⎜ 4000 ⎟ ⎜ 7500 ⎟ ⎠ ⎝

b1 ↓ 100 u.res
⎛ 2000 ⎞ x2 ⎟ ⎜ ⎜ 750 ⎟ x3 ⎜ 500 ⎟ x ⎠ 5 ⎝
Restricţie

f = 5500

ursă

concordantă

f ↓ 100 u.
* = 100u1

174

Analiza economico-matematică a unor modele liniare Valorile Valorile vectorului

b

~ ~ X B = B −1b

funcţiei scop

Concluzii Tipul restricţiei

~ f ( X B ) = cB X B

∆bi , ∆f

b3 := b3 − 100
⎛ 5600 ⎞ ⎟ ~ ⎜ b = ⎜ 4000 ⎟ ⎜ 7400 ⎟ ⎠ ⎝

⎛1800 ⎞ x2 ⎟ ⎜ ⎜1000 ⎟ x3 ⎜ 200 ⎟ x ⎠ 5 ⎝

Restricţie

b3 ↓ 100 u.res
ursă

f = 5600

neconcordan tă

f

îşi menţine valoarea

b3 ↑ 100 u.res
b3 := b3 + 100 ⎛ 5600 ⎞ ⎟ ~ ⎜ b = ⎜ 4000 ⎟ ⎜ 7600 ⎟ ⎠ ⎝ ⎛ 2000 ⎞ x2 ⎜ ⎟ ⎜ 800 ⎟ x3 ⎜ 400 ⎟ x ⎝ ⎠ 5
Restricţie ursă

f = 5600

neconcordan tă

f

îşi menţine valoarea deoarece
* u3 = 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 2 ⎩ 1 x j ≥ 0∀j = 1,3 Din tabelul T.IV.2.3. reţinem următoarele elemente:

● Baza optimă: B = (a1 ● B
−1

a2

a 6 ) în raport cu care:

0 0⎞ ⎛1 ⎜ ⎟ = ⎜ −1 1 0⎟ ; ⎜ 1 − 2 1⎟ ⎝ ⎠

175

Postoptimizare în programarea liniară

X

B

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 vectorului

⎛ 4⎞ ⎜ ⎟ = ⎜ 2⎟ ; ⎜ 0⎟ ⎝ ⎠

~ ~ X B = B −1b

Valorile funcţiei scop

Concluzii Tipul restricţiei

b b1 =b1 + 2 = 6

~ ~ f (X B ) = cB X B

∆bi , ∆f

⎛ 6⎞ ~ ⎜ ⎟ b = ⎜ 6⎟ ⎜8⎟ ⎝ ⎠
b2 =b2 −1 = 5 ⎛ 4⎞ ~ ⎜ ⎟ b = ⎜5⎟ ⎜8⎟ ⎝ ⎠

⎛ 6 ⎞ x1 ⎜ ⎟ ⎜ 0 ⎟ x2 ⎜ 2⎟ x ⎝ ⎠ 6

~ f = 1500

Restricţie concordantă

∆b1 = 2

, b1 ↑

∆f = 100 > 0 , f ↑

⎛ 4 ⎞ x1 ⎜ ⎟ ⎜ 1 ⎟ x2 ⎜ 2⎟ x ⎝ ⎠ 6

~ f = 1200

Restricţie concordantă

∆b2 = −1

, b2 ↓

∆f = −200 < 0 , f ↓

b3 =b3 + 2 =10 ⎛ 4⎞ ~ ⎜ ⎟ b =⎜ 6 ⎟ ⎜10 ⎟ ⎝ ⎠ b3 =b3 −1=7 ⎛ 4⎞ ~ ⎜ ⎟ b = ⎜ 6⎟ ⎜7⎟ ⎝ ⎠

⎛ 4 ⎞ x1 ⎜ ⎟ ⎜ 2 ⎟ x2 ⎜ 2⎟ x ⎝ ⎠ 6

~ f = 1400

Restricţie neconcordantă

∆b3 = 2

, b3 ↑

* ∆f = 0 deoarece u 3 = 0

⎛ 4 ⎞ x1 ⎜ ⎟ ⎜ 2 ⎟ x2 ⎜ − 1⎟ x ⎝ ⎠ 6

Restricţie neconcordantă SDR

176

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 ⎜ ⎜K K K ⎜a ⎝ m1 K a mj −1 X ≥0 ;

aij K a mj

aij +1 K a mj +1

K a1n ⎞ ⎟ K K ⎟X = b ; K a mn ⎟ ⎠

[max] f = ∑ ck xk + c j x j ,
k =1 k≠ j

n

care admite soluţie optimă finită. Prin modificarea vectorului a j ea devine:

⎛ a11 K aij −1 ⎜ ⎜K K K ⎜a ⎝ m1 K a mj −1

~ aij K ~ a
mj

aij +1 K a mj +1

K a1n ⎞ ⎟ K K ⎟X = b ; K a mn ⎟ ⎠

X ≥0 ;
~ [max] f = ∑ ck xk + c j x j .
k =1 k≠ j n

177

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

~ cj

c j +1 KKKK c n

cB

B

XB

a1 KKKK a j −1

~ aj
? ?

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 . ~ ~B ~ Se scrie vectorul a j în baza B : a j = B −1 ⋅ a j = ( ~1 j K ~sj K ~mj ) T , y y y j∈J \ JB. ~ ~ ~ ~ ~B ~ Se calculează f j − c j : f j − c j = c B ⋅ a j − c j . ~ ~ Pasul 2 Pentru [max ] f , f j − c j ≥ 0 ? ♦ Dacă DA, atunci STOP ⇒ X * este soluţie optimă finită şi pentru problema modificată.

178

Analiza economico-matematică a unor modele liniare

♦ Dacă NU, se trece la Pasul 3.
Pasul 3 ~sj ≤ 0, (∀)s ∈ {1, K, n} ? y

♦ 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 pentru problema urmare X * este o soluţie admisibilă de bază 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 .
cj cB B XB B −1b fj f j −cj c1 KKKK c j −1 a1 KKKK a j −1 ~ cj ~ aj
~ B −1 ⋅ a j
T. IV.4.2

c j +1 KKKK c n a j +1 KKKK a n

~ fj ~ ~ f j − cj < 0

Exemplificare Se consideră problema IV.3.3, din paragraful 3 al

Vectorul nebazic a1 = (3 2 5) T îşi modifică ~ componentele şi anume a1 = (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. acestui capitol.
3

179

Postoptimizare în programarea liniară

Pasul 1 B −1

⎛ −1 0 1 ⎞ ⎟ ⎜ 3 ~B 0 − 1⎟ ⇒ a1 = B −1 ⋅ (2 2 3) T = (1 0 1) T . =⎜ ⎜ 2 ⎟ ⎜− 2 1 1 ⎟ ⎠ ⎝

⎛1⎞ ~ ~ B ~ B ~ = (2 2 0) ⋅ ⎜ 0 ⎟ − 3,5 = −1,5 < 0 . f 1 − c1 = c ⋅ a1 − c1 ⎜ ⎟ ⎜1⎟ ⎝ ⎠ ~ ~ Pasul 2 f 1 − c1 ≥ 0 ? NU. Atunci, se trece la următorul pas.

~ Pasul 3 Există componente strict pozitive ale vectorului a1 ? 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 cB
2 2 0

3,5

2

2

0

0

0

B
a2

XB
1900 900 300 5600

~ a1
1 0 1 2 -1,5

a2
1 0 0 2 Ø

a3
0 1 0 2 Ø

a4
-1 3/2 -2 1 1

a5
0 0 1 0 Ø

a6
-1 1 -1 0 0

ρ
1900/1 _ 300/1

a3
← a5

fj f j −cj

[max]f
≥ 0, (∀) j = 1,6 ? NU

180

Analiza economico-matematică a unor modele liniare

cj

3,5

2

2

0

0

0

cB
2 2 3,5

B
a2

XB
1600 900 300 650

~ a1
0 0 1 3,5 Ø

a2
1 0 0 2 Ø 1 0 0 2 Ø 1 0 0 2 Ø

a3
0 1 0 2 Ø -2/3 2/3 4/3 10/3 1/3 0 1 1 3,5 1,5

a4
1 3/2 -2 -2 -2 0 1 0 0 Ø 1 3/2 -1/2 1/4 1/8

a5
-1 0 1 1,5 1,5 -1 0 1 1,5 1,5 -1 0 1 1,5 1,5

a6
0 1 -1 -1,5 -1,5 -2/3 2/3 1/3 -1/6 -1/6 0 1 0 0 Ø

ρ
1600/1 900/3/2 _

a3
a1

fj f j −cj
2 0 3,5

[max ] f
≥ 0, (∀) j = 1,6 ? NU
_ 600/3/2 1500/1/3

a2 a4 a1

1000 600 1500 7250

0 0 1 3,5 Ø

fj f j −cj
2 0 3,5

[max ] f
≥ 0, (∀) j = 1,6 ? NU

a2

1600 900 1200 7400

0 0 1 3,5 Ø

a6
a1

fj

[max ] f
≥ 0, (∀) j = 1,6 ? DA
⇒ STOP

f j −cj

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 .

181

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⎞ ⎜ ⎟ ~ = ⎜1⎟ A = ⎜ 2 1 2 0 1 0 ⎟ , a2 ⎜ ⎟ ⎜ 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 ) .

182

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⎞ ~ ~ = ⎜ 1 ⎟, B = ⎜ 1 2 1 ⎟ , det B ≠ 0 ⇒ ∃B −1 . a2 ⎜ ⎟ ⎜ ⎟ ⎜ 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 : ~B ~ a = B −1 ⋅ a = ( ~ K ~ K ~ ) T . y y y
j j

1j

kj

mj

Componenta k este diferită de 0 ?

183

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
⎛ − ~1 j y ηk = ⎜ ~ ⎜ y ⎝ kj − ~k −1 j y ~ y
kj

1 ~ y kj

− ~k +1 j y ~ y
kj

− ~mj ⎞ y ⎟ ~ ⎟ . y kj ⎠
T

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
cB
ci1 M ~ cj M cim

c1 KKKKK ck KKKKKcn
a1 KKKKK ak KKKKK an

B
ai1 M ~ aj M aim

~ XB

~ B −1 ⋅ b

~ B −1 ⋅ ak , k = 1, j − 1 B −1 ⋅ a j

B −1 ⋅ ak , k = j + 1, n

~ fj
~ ~ f j −cj

~ f0

~ f j , j = 1, n
~ ~ f j − c j , j = 1, n

184

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
~ B −1 ⋅ b

~ ~ f j − cj ≥ 0 j ∈τ \ τ B

(∃) ~k − ck f ~
S2

< 0, k ∈ J \ J B

≥0

S1

STOP. Problema modificată S-a obţinut o soluţie admite S.O. finită. X valorile optime ale variabilelor bazice;

~B

sunt

admisibilă de bază; se continuă cu simplex-primal.

[max] ~ = f
(∃)~s B < 0, s ∈ J B x
S3

~ f0 .
S4

Se continuă rezolvarea problemei cu algoritmul simplex-dual, deoarece s-a generat o soluţie dual realizabilă a problemei modificate.

Se reia rezolvarea de la

1 iteraţia i + 1, i ∈ Ν \ { } ;
*

dacă a j a intrat în bază în iteraţia i, i ∈ Ν , se
*

~ lucrează cu a j în baza
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 ] ~ = ~0 . Celelalte condiţii şi comentariile rămân valabile. f f

185

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 cB
4 17

4

6

20

17

0

0

B
a1 a4

X

B

a1
1 0 4 Ø

a2
-2 1 9 3

a3
-3 2 22 2

a4
0 1 17 Ø

a5
1 0 4 4

a6
-2 1 9 9

20 40 760

fj f j −cj

[max]f
≥ 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

186

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 ~ a 4 = (1,5 1,5)
T

vectorul

a4

îşi

modifică

componentele,

~ şi c 4 creşte cu o unitate, c 4 = 18 . Ne propunem să

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⎞ B −1 = ⎜ ⎟ ⎜ 0 1 ⎟, B = (a1 ⎠ ⎝ a4 ) → k = 2 . a doua

Pasul 1 Pasul 2

⎛1,5 ⎞ ⎛ 1 − 2 ⎞⎛1,5 ⎞ ⎛ − 1,5 ⎞ ~B a 4 = B −1 ⋅ ⎜ ⎟ = ⎜ ⎟ ⎟⎜ ⎟ ⎜ ⎜1,5 ⎟ ⎜ 0 1 ⎟⎜1,5 ⎟ = ⎜ 1,5 ⎟; ⎠ ⎠⎝ ⎠ ⎝ ⎝ ⎠ ⎝ componentă ( k = 2 ) este diferită de 0. ⎛ − 1,5 / 1,5 ⎞ ⎛ 1 ⎞

Pasul 3 Pasul 4 Pasul 5

η k =2 = ⎜ ⎜ 1 / 1,5 ⎟ = ⎜ 2 / 3 ⎟ . ⎟ ⎜ ⎟ ⎝ ⎠ ⎝ ⎠
⎛1 1 ⎞ ⎛1 − 2⎞ ⎛1 −1 ⎞ ~ B −1 = ⎜ ⎟ ⎟ ⎜ ⎟ ⎜ ⎜ 0 2 / 3⎟ ⋅ ⎜ 0 1 ⎟ = ⎜ 0 2 / 3⎟ . ⎠ ⎠ ⎝ ⎠ ⎝ ⎝ Se reconstituie tabelul cu baza (a1 ~ ~ ⎛100 ⎞ ⎛ 60 ⎞ X B = B −1 ⋅ ⎜ ⎜ 40 ⎟ = ⎜ 80 / 3 ⎟; ⎟ ⎜ ⎟ ⎝ ⎠ ⎝ ⎠
a4 ) .

187

Postoptimizare în programarea liniară

~ ~ B ~ ⎛ 0 ⎞ ⎛ − 1 ⎞; a B = B −1 ⋅ ⎛ 1 ⎞ = ⎛ − 1 ⎞; ~ ⎜ ⎟ ⎜ a 2 = B −1 ⋅ ⎜ ⎟ = ⎜ ⎟ ⎟ ⎜1⎟ ⎜3 / 2⎟ 3 ⎜ 2 ⎟ ⎜ 4 / 3⎟ ⎠ ⎠ ⎝ ⎠ ⎝ ⎝ ⎠ ⎝ ~ B ~ ⎛ 1 ⎞ ⎛ 1 ⎞ ~ B ~ ⎛ 0 ⎞ ⎛ − 1 ⎞; a5 = B −1 ⋅ ⎜ ⎟ = ⎜ ⎟; a 6 = B −1 ⋅ ⎜ ⎟ = ⎜ ⎟ ⎜ 0⎟ ⎜ 0⎟ ⎜ 1 ⎟ ⎜ 2 / 3⎟ ⎠ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠ ⎝
T IV.4.7

cj
~ cB
4 18

4

6

20

18

0

0

B
a1 a4 ~ fj

XB
60 80/3 720

a1
1 0 4 Ø

a2
-1 2/3 8 2

a3
-1 4/3 20 0

a4
0 1 18 Ø

a5
1 0 4 4

a6
-1 2/3 8 8

[max]f
≥ 0, (∀) j = 1,6

~ ~ f j −cj Deoarece:

● 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ă:

B

60 * * * * , x3 = x 2 = x5 = x6 = 0 şi [max ] f = 720. 3 Se observă o creştere cu mai mult de 50% a valorii funcţiei scop. x1 = 60, x 4 =
* *

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

188

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: [max] f = ∑ ci xi
i =1 n

⎧ ⎪ ⎨ xi + ⎪ ⎩

j∈J − J

∑y
B

ij

x j = xi , ∀i ∈ J B

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

{

189

Postoptimizare în programarea liniară

⎛ b1 ⎞ ⎜ ⎟ ⎜M ⎟ ⎜b ⎟ ~ ~ m ⎟ sunt elemente cunoscute şi obţinute prin unde A ∈ M m + k ,n (R ), b = ⎜ ⎜ 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:
[max] f = ∑ ci xi
i =1 n

⎧ 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:
xi =
B j∈J S

∑y

ij

x j + x n +i , i = m + 1, m + k .

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ă

190

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 cB
2 2 0

3

2

2

0

0

0

B
a2

XB
1900 900 300 5600

a1
2 -1/2 1 3 0

a2
1 0 0 2 Ø

a3
0 1 0 2 Ø

a4
-1 3/2 -2 1 1

a5
0 0 1 0 Ø

a6
-1 1 -1 0 Ø

a3 a5 fj f j −cj

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 x1 + 3 x 2 + 2 x3 ≥ 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

IV.5.3 −

1 3 x1 + x3 + x4 + x6 = 900 . 2 2

191

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
cB
2 2 0 0

3

2

2

0

0

0

0

B
a2

XB
1900 900 300 -100 5600

a1
2 -1/2 1 -1/2 3 0

a2
1 0 0 0 2 Ø 1 0 0 0 2 Ø

a3
0 1 0 0 2 Ø 0 1 0 0 2 Ø

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

a5
0 0 1 0 0 Ø 0 0 1 0 0 Ø

a6
-1 1 -1 1 0 0 3 0 1 -2 0 0

a8
0 0 0 1 0 Ø 4 -2 2 -2 2 2

a3 a5 ← a8 fj f j −cj

[max ] f
≥ 0∀j

2 2 0 3

a2

1500 1000 100 200 5600

0 0 0 1 3 Ø

a3 a5
a1

fj f j −cj

192

Analiza economico-matematică a unor modele liniare

Soluţia optimă s-a obţinut printr-o singură pivotare, şi este dată de ~ * = 200 , ~ * = 1500, ~ * = 1000, ~ * = 100, ~* = ~ * = ~ * = 0, cu valoarea x1 x2 x3 x5 x4 x6 x8 ~ 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ă

max f = ∑ ci xi
i =1

n

⎧ IV.6.1 ⎨∑ ai xi = b ⎩ i =1
n

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ă:

(a1

a2

⎛ x1 ⎞ ⎜ ⎟ ⎜x ⎟ K a n )⎜ 2 ⎟ = b . M ⎜ ⎟ ⎜x ⎟ ⎝ n⎠

193

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:
B Pasul 1 Se calculează B −1 şi a n +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 ?
B c B a n +i − c n +i ≥ 0, ∀i = 1, k ?

sau

cu

notaţia

de

la

pasul

1,

- Dacă DA, atunci (X * , 0 R k ) ∈ R n + k este soluţie optimă pentru IV.6.2.

194

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
B
−1

⎛ −1 0 1 ⎞ ⎛ −1 0 1 ⎞ ⎛1⎞ ⎛ 0 ⎞ ⎟ ⎟ B ⎜ ⎟⎜ ⎟ ⎜ ⎜ −1 = ⎜ 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, ⎜ 1 ⎟ ⎝ ⎠
B −1

195

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
cB
2 2 0

3

2

2

0

0

0

2

B

XB
1900 900 300 5600

a1
2 -1/2 1 3 0

a2
1 0 0 2 Ø 1 0 0 2 Ø 1 0 0 2 Ø 1 0 0 2 Ø

a3
0 1 0 2 Ø 0 1 0 2 Ø 2/5 2/5 4/5 12/5 2/5 2/3 2/3 2/3 8/3 2/3

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

a5
0 0 1 0 Ø 0 -1/2 1 1 1 -1/5 -1/5 3/5 4/5 4/5 -1/3 -1/3 2/3 2/3 2/3

a6
-1 1 -1 0 0 -1 3/2 -1 -1 -1 -2/5 3/5 1/5 -2/5 -2/5 0 1 0 0 Ø

a8
0 1/2 1 1 -1 0 0 1 0 Ø 0 0 1 0 Ø 0 0 1 2 Ø

ρ
1800 300

a2 a3 a5

fj
f j −cj
2 2 2

[max] f
≥ 0 ∀j? NU
300 -

a2 a3 a8

1900 750 300 5900

2 -1 1 4 1

fj
f j −cj
2 0 2

[max] f
≥ 0 ∀j? NU
500 3000

a2

2200 300 900 6200

8/5 -2/5 1/5 18/5 3/5

a4
a8

fj
f j −cj
2 0 2

[max] f

≥ 0 ∀j? NU

a2 a6 a8 fj

2400 500 800 6400

4/3 -2/3 1/3 10/3 1/3

[max] f

f j −cj

≥ 0 ∀j? DA

196

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 U1 U2 U3 U4
V.U. 2 1 1 1 3

P2
2 1 1 2 4

P3
1 0 1 1 2

Disponibil 2200 1200 2000 1600

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.

197

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 ⎜ ⎜ − 1/ 2 =⎜ − 1/ 2 ⎜ ⎜ − 1/ 2 ⎝ 0 0 − 1⎞ ⎟ 1 0 0⎟ . 0 1 0⎟ ⎟ 0 0 1⎟ ⎠

bază, s-a citit inversa bazei optime: B −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
P4
1 2

U2
0 1

U3
2 2

U4
1 1

V.U. 5 3

P5

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.

198

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ă; scrierea vectorilor aj î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 . ⎨ x1 + x 2 + x3 + x5 = 2000 ⎪ ⎪ x + 2 x + x + x = 1600 2 3 6 ⎪ 1 x j ≥ 0, ∀j = 1,6 ⎪ ⎩

199

Postoptimizare în programarea liniară

Rezultă: A4×6

⎛2 ⎜ ⎜1 =⎜ 1 ⎜ ⎜1 ⎝

2 1 1 2

1 0 1 1

0 1 0 0

0 0 1 0

0⎞ ⎛ 2200 ⎞ ⎟ ⎜ ⎟ 0⎟ ⎜ 1200 ⎟ , rangA=4<6, b = ⎜ > 0. 0⎟ 2000 ⎟ ⎟ ⎜ ⎟ ⎜ 1600 ⎟ 1⎟ ⎠ ⎝ ⎠

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 formei extinse: ⎧[max] f = 3x1 + 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

a4

a5

a 6 ) . Dar, atenţie, ea corespunde

cj → c
B

3

4

2

0

0

0

−α a7

B

X

B

a1

a2

a3

a4

a5

a6

fj
f j −cj

200

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⎞ ⎜ ⎟ ⎜ ⎟ ⎜0⎟ B −1 −1 ⎜ 1 ⎟ a1 = B ⋅ a1 = B ⋅ ⎜ ⎟ = ⎜ ⎟ 0 1 ⎜ ⎟ ⎜ ⎟ ⎜ 1⎟ ⎜0⎟ ⎝ ⎠ ⎝ ⎠ ⎛1⎞ ⎛ 0 ⎞ ⎟ ⎜ ⎟ ⎜ ⎜ − 1 / 2⎟ B −1 ⎜ 0 ⎟ . a3 = B ⋅ ⎜ ⎟ = ⎜ 1/ 2 ⎟ 1 ⎟ ⎜ ⎟ ⎜ ⎜1⎟ ⎜ 1 / 2 ⎟ ⎠ ⎝ ⎠ ⎝ ⎛ 2200 ⎞ ⎛ 600 ⎞ ⎟ ⎜ ⎟ ⎜ ⎜ 100 ⎟ −1 −1 ⎜ 1200 ⎟ . = =B b=B ⎜ 2000 ⎟ ⎜ 900 ⎟ ⎟ ⎜ ⎟ ⎜ ⎜ 1600 ⎟ ⎜ 500 ⎟ ⎠ ⎝ ⎠ ⎝

,

⎛ 2⎞ ⎛ 0⎞ ⎜ ⎟ ⎜ ⎟ ⎜ 0⎟ B −1 ⎜ 1 ⎟ a2 = B ⋅ ⎜ ⎟ = ⎜ ⎟ 0 1 ⎜ ⎟ ⎜ ⎟ ⎜ 2⎟ ⎜1⎟ ⎝ ⎠ ⎝ ⎠

,

XB

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
1 0 0 0 3 Ø

a2
0 0 0 1 4 Ø

a3
0 -1/2 1/2 1/2 2 0

a4
0 1 0 0 0 Ø

a5
0 0 1 0 0 Ø

a6
-1 0 0 1 1 1

a7
1 -1/2 -1/2 -1/2 1 1+ α

3 0 0 4

a1 a4 a5 a2 fj f j −cj

600 100 900 500 3800

201

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 → c 3 0 0
B

3
a1 1 0 0

4
a2 0 1 -1

2
a3 0 0 0

0
a4 0 1 0

0
a5 0 0 1

0
a6 -1 1 -1

B
a1 a4 a5 a3 fj

X 600 600 400

B

2

1000 3800

0 3 Ø

2 4 0

1 2 Ø

0 0 Ø

0 0 Ø

2 1 1

f j −cj

* 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] .

202

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ă 1 2 principale de ecart
* X 3 nebazică * X 4 nebazică

λ = 1/ 2
600 250 500 350 650 0 3800 u.m.

λ = 1/ 5
600 100 800 500 500 0 3800 u.m.

Interpretare economică Număr produse P 1 Număr produse P2 Număr produse P3 Fond de timp nefolosit la U 2 Fond de timp nefolosit la U 3 Consum integral la U 4

x1 x2

* * *

600 500 0 100 900 0

600 0 1000 600 400 0

x3
* * *

x4 x5 x6
[Max]f

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 + x3 + x5 + 2 x8 + 2 x9 = 2000 ⎪ ⎪ x + 2 x + x + x + x + x = 1600 2 3 6 8 9 ⎪ 1 x j ≥ 0, ∀j = 1,9 ⎪ ⎩

203

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 ⎜ ⎜ − 1/ 2 =⎜ − 1/ 2 ⎜ ⎜ − 1/ 2 ⎝ 0 0 − 1⎞ ⎟ 1 0 0⎟ . 0 1 0⎟ ⎟ 0 0 1⎟ ⎠ a4 a5 a2 ) .

B −1

Se citeşte baza optimă din T.IV.7.2: B = (a1

Pasul 2
⎛1⎞ ⎛ 2⎞ ⎜ ⎟ ⎜ ⎟ ⎜ 0⎟ ⎜1⎟ Se scriu vectorii a8 = ⎜ ⎟ şi a 9 = ⎜ ⎟ în baza optimă: 2 2 ⎜ ⎟ ⎜ ⎟ ⎜1⎟ ⎜1⎟ ⎝ ⎠ ⎝ ⎠ ⎛1⎞ ⎛ 0 ⎞ ⎜ ⎟ ⎜ ⎟ ⎜0⎟ ⎜ − 1/ 2⎟ B −1 B −1 a 8 = B ⋅ a8 = ⎜ ⎟ şi a9 = B ⋅ a9 = ⎜ 1 ⎟ . 3/ 2 ⎜ ⎟ ⎜ ⎟ ⎜0⎟ ⎜ 1/ 2 ⎟ ⎝ ⎠ ⎝ ⎠

Pasul 3
Se calculează f 8 − c8 şi f 9 − c9 : ⎛ 0 ⎞ ⎜ ⎟ ⎜ − 1/ 2 ⎟ B −1 B B f 8 − c8 = c ⋅ B ⋅ a8 − c8 = c ⋅ a8 − c8 = (3 0 0 4) ⋅ ⎜ − 5 = −3 , 3/ 2 ⎟ ⎜ ⎟ ⎜ 1/ 2 ⎟ ⎝ ⎠

204

Analiza economico-matematică a unor modele liniare

⎛1⎞ ⎜ ⎟ ⎜0⎟ B −1 B B f 9 − c9 = c ⋅ B ⋅ a9 − c9 = c ⋅ a9 − c0 = (3 0 0 4 ) ⋅ ⎜ ⎟ − 3 = 0 . 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 cB
3 0 0 4 B 3 4 2 0 0 0 5 3

XB
600 100 900 500 3800

a1
1 0 0 0 3 Ø

a2
0 0 0 1 4 Ø

a3
0 -1/2 1/2 1/2 2 0

a4
0 1 0 0 0 Ø

a5
0 0 1 0 0 Ø

a6
-1 0 0 1 1 1

a8
0 -1/2 3/2 1/2 2 -3

a9
1 0 1 0 3 0

ρ
600 1000
max :≥ 0 ? NU

a1 a4 a5 a2 fj

f j −cj

205

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 c
B

3

4

2

0

0

0

5

3

B

XB
600 400 600 200 5300

a1
1 0 0 0 3 Ø

a2
0 0 0 1 4 Ø

a3
0 -1/3 1/3 1/3 3 1

a4
0 1 0 0 0 Ø

a5
0 1/3 2/3 -1/3 2 2

a6
-1 0 0 1 1 1

a8
0 0 1 0 5 Ø

a9
1 1/3 2/3 -1/3 5 2

3 0 5 4

a1 a4

a8
a2 fj

f j −cj

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:
Variabile care caracterizează programul optim
* x1 = 600 * x2 = 500 * X1 * x3 = 0

Cât se consumă prin program
* * * 2 x1 + 2 x2 + x3 = 2200 * * x1 + x2 = 1100 * * * x1 + x2 + x3 = 1100 * * * x1 + 2 x2 + x3 = 1600

Cât din resursele disponibile nu a fost consumat 0 100 900 0

* x1 = 600 * x2 = 200
* X2

* * * * * 2 x1 + 2 x2 + x3 + x8 + 2 x9 = 2200 * * * x1 + x2 + x9 = 800 * * * * * x1 + x2 + x3 + 2 x8 + 2 x9 = 2000 * * * * * x1 + 2 x2 + x3 + x8 + x9 = 1600

0 400 0 0

* x3 = 0 * x8 = 600 * x9 = 0

206

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 Se scriu vectorii linie:
c = (3 4 2 0 0 0 )

a4

a5

a2 ) .

ş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 3 ⎜ − 1/ 2⎟ f 3 − c3 = c ⋅ a3 − c3 = (2.5 0 0 3) ⋅ ⎜ ⎟ − 2 = 2 − 2 = − 2 < 0, 1/ 2 ⎜ ⎟ ⎜ 1/ 2 ⎟ ⎝ ⎠

207

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⎟ ⎝ ⎠
B B Observaţie: Vectorii a3 şi a6 se citesc din T.IV.7.2, tabel care conţine şi

baza optimă citită la pasul 1. ~ ~ Diferenţa f 3 − c3 fiind strict negativă, se trece la Pasul 3. Are sens
B această trecere deoarece a3 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:
~ cj c
B

2.5

3

2

0

0

0

B

X

B

a1
1 0 0 0 2.5 Ø

a2
0 0 0 1 3 Ø 0 1 -1 2 4 1

a3
0 -1/2 1/2 1/2 3/2 -0.5 0 0 0 1 2 Ø

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

a5
0 0 1 0 0 Ø 0 0 1 0 0 Ø

a6
-1 0 0 1 0.5 0.5 -1 1 -1 2 1.5 1.5

ρ
1800 1000

2.5 0 0 3

a1 a4 a5 a2 ~ fj

600 100 900 500 3000

~ ~ f j − cj
2.5 0 0 2

a1 a4 a5 a3 ~ fj

600 600 400 1000 3500

1 0 0 0 2.5 Ø

[max]f
~ ~ f j −cj ≥ 0

~ ~ f j − cj

⇒ STOP

∀j ∈ 1,6

208

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 ⎜ ⎜ − 1/ 2 =⎜ − 1/ 2 ⎜ ⎜ − 1/ 2 ⎝ 0 0 − 1⎞ ⎟ 1 0 0⎟ . 0 1 0⎟ ⎟ 0 0 1⎟ ⎠

● Se citeşte B −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.

209

Postoptimizare în programarea liniară

Dacă DA → se trece la Pasul 3. Aici, y 42 = 3 ≠ 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:

η kj =

1 1 2 ⇒ η 24 = = , y kj 3/ 2 3

η ij = −

y ij y kj

⇒ η 21 = −

−1 2 1/ 2 1 0 = , η 22 = − = 0 , η 23 = − =− . 3/ 2 3 3/ 2 3 3/ 2

⎛ 2/3 ⎞ ⎜ ⎟ ⎜ 0 ⎟ , pentru k=4. Aşadar, η k = ⎜ − 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 ⎜ ⎜0 ⎝ 0 1 0 0 0 2/3 ⎞ ⎛ 1 ⎟ ⎜ 0 0 ⎟ ⎜ − 1/ 2 ⋅ 1 − 1/ 3⎟ ⎜ − 1 / 2 ⎟ ⎜ 0 2 / 3 ⎟ ⎜ − 1/ 2 ⎠ ⎝ 0 1 0 0 0 − 1⎞ ⎛ 2 / 3 ⎟ ⎜ 0 0 ⎟ ⎜ − 1/ 2 = 1 0 ⎟ ⎜ − 1/ 3 ⎟ ⎜ 0 1 ⎟ ⎜ − 1/ 3 ⎠ ⎝ 0 1 0 0 0 1/ 3 ⎞ ⎟ 0 0 ⎟ . 1 − 1/ 3⎟ ⎟ 0 2/3 ⎟ ⎠

~ B −1

210

Analiza economico-matematică a unor modele liniare

Este bine să ne reamintim că B −1 este inversa matricii B = (a1 ⎛2 ⎜ ⎜1 a2 ) = ⎜ 1 ⎜ ⎜1 ⎝ 0 1 0 0 0 0 1 0 2⎞ ⎟ 1⎟ , 1⎟ ⎟ 2⎟ ⎠

a4

a5

~ 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 . ⎛ 1 ⎞ ⎛ 1/ 3 ⎞ ⎛ 2200 ⎞ ⎛ 2800 / 3 ⎞ ⎜ ⎟ ⎜ ⎜ ⎟ ⎜ ⎟ ⎟ ~ B ~ −1 ~ −1 ⎜ 1200 ⎟ ⎜ 2300 ⎟ ~ B ~ −1 ⎜ 0 ⎟ ⎜ − 1 / 2 ⎟ = X = B ⋅b = B ⋅⎜ , a3 = B ⋅ ⎜ ⎟ = ⎜ , 2000 ⎟ ⎜ 2200 / 3 ⎟ 1 1/ 3 ⎟ ⎜ ⎟ ⎜ ⎜ ⎟ ⎜ ⎟ ⎟ ⎜ 1 ⎟ ⎜ 1/ 3 ⎟ ⎜ 1600 ⎟ ⎜ 400 / 3 ⎟ ⎝ ⎠ ⎝ ⎝ ⎠ ⎝ ⎠ ⎠ ⎛ 0⎞ ⎛ 1/ 3 ⎞ ⎜ ⎟ ⎜ ⎟ ~ ~ B = B −1 ⋅ ⎜ 0 ⎟ = ⎜ 0 ⎟ . a6 ⎜ 0 ⎟ ⎜ − 1/ 3⎟ ⎜ ⎟ ⎜ ⎟ ⎜1⎟ ⎜ 2 / 3 ⎟ ⎝ ⎠ ⎝ ⎠ cj →
3 4 2 0 0 0

cB
3 0 0 4

B

XB
2800/3 2300 2200/3 1000/3 12400/3

a1
1 0 0 0 3 Ø

a2
0 0 0 1 4 Ø

a3
1/3 -1/2 1/3 1/3 7/3 1/3

a4
0 1 0 0 0 Ø

a5
0 0 1 0 0 Ø

a6
-1/3 0 -1/3 2/3 5/3 5/3

a1 a4 a5

a2 fj f j −cj

211

Postoptimizare în programarea liniară

f j − c j ≥ 0 , ∀j ∈ 1,6 ? DA ⇒ STOP. optimă finită:
* x1 = 2800 / 3 , * x 2 = 1000 / 3 ,

Problema admite soluţia
* 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 + 3 x 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 = ⎜ ⎜ − 1 / 5 2 / 5 ⎟ , unde B reprezintă baza optimală. ⎟ ⎝ ⎠ 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 + 3 x 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).

212

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). problemei: h) Determinaţi un interval de stabilitate λ λ pentru parametrul λ al 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

213

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
1 4

B

XB
5 3 17

a1
1 0 1 Ø

a2
-1 1 3 2

a3
0 1 4 Ø

a4
1 -1/5 1/5 1/5

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

~ ~ f j − cj

a1 a3 ~ fj

[max] f ≥ 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 + x3 − 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 .

214

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 2 ⎩ 1 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 B −1 = ⎜ ⎜ − 1 / 5 2 / 5 ⎟ şi c = (1 4 ) . ⎟ ⎝ ⎠ Deci, −1 ⎞ ⎛ 1 u * = c B B −1 = (1 4 )⎜ ⎜ − 1 / 5 2 / 5 ⎟ = (1 / 5 3 / 5) . ⎟ ⎝ ⎠ Conform

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 2 ⎩ 1 u i ≥ 0∀i ∈ 1,2 .

215

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) O 1/2 4/5

u2

De

aici

rezultă

[min]g1 = [max] f1 = 20

.

Deoarece

f1 = 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.

216

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 → cB
1 4 B 1
3

4

0

0

X
5 3

B

a1
1 0 1 Ø

a2
-1 1 3
0

a3
0 1 4 Ø

a4
1

a5
-1

a1 a3 fj f j − cj

− 1/ 5
1/5 1/5

2/5
3/5 3/5

17

[max] f
≥ 0, ∀j = 1,5

⇒ STOP

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⎞ ' a2 = ⎜ ⎟ : ⎜ 3⎟ ⎝ ⎠ [max] f = x1 + 3 x 2 + 4 x3 ⎧2 x1 + 2 x 2 + 5 x3 ≤ 25 ⎨ ⎩ x1 + 3x 2 + 5 x3 ≤ 20
x j ≥ 0, ∀j = 1,3

− 1 ⎞⎛ 2 ⎞ ⎛ − 1 ⎞ ⎛ 1 ' ~ Se calculează: a 2B = B −1 a 2 = ⎜ ⎟ ⎟⎜ ⎟ ⎜ ⎜ − 1 / 5 2 / 5 ⎟⎜ 3 ⎟ = ⎜ 4 / 5 ⎟ . Se observă că are o ⎠ ⎠⎝ ⎠ ⎝ ⎝ componentă strict pozitivă ⎛ −1 ⎞ ~ ~ f 2 − c3 = (1 4)⎜ ⎟ ⎜ 4 / 5 ⎟ − 3 = −4 / 5 < 0 . ⎠ ⎝

217

Postoptimizare în programarea liniară

Se aplică algoritmul simplex primal pentru a stabili natura problemei postoptimizate:
cj → cB
1 4 B 1
3

4

0

0

X
5 3

B

a1
1 0 1 Ø

~ a 2'
-1 4/5 11/5 -4/5

a3
0 1 4 Ø

a4
1

a5
-1

a1 a3 fj f j −cj

− 1/ 5
1/5 1/5

2/5
3/5 3/5

17

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 ) : ⎛ − 1/ 2⎞ ⎛ 3/ 4 ⎞ ⎛5 / 4⎞ ⎛0⎞ ⎛ 35 / 4 ⎞ ⎛ 1 ⎞ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎜ ⎟ ⎟ ⎜ ⎟ ⎜ 15 / 4 ⎟ = ⎜ 0 ⎟ x1 + ⎜ 1 ⎟ x 2 + ⎜ 5 / 4 ⎟ x3 + ⎜ − 1 / 4 ⎟ x 4 + ⎜ 1 / 2 ⎟ x5 . ⎠ ⎝ ⎠ ⎝ ⎠ ⎝ ⎝ ⎠ ⎠ ⎝ ⎠ ⎝ 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
4/3 1/3 1 0

~ a 2'
0 1 3 Ø

a3
5/3 5/3 5 1

a4
1 0 0 Ø

a5
-2/3 1/3 1 1

0 3

a4 a2 fj

35/3 20/3 20

f j −cj

218

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 baza optimală (a 4
a 2 ) sunt identici cu coeficienţii lui x 2 în raport cu

~ ⎛0⎞ 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 ⎨ 5u1 + 5u 2 ≥ 4 ⎪ ⎪3u1 + 2u 2 ≥ 2 ⎩

, care rezolvată grafic, ne permite scrierea

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.

219

Postoptimizare în programarea liniară

−1 ⎞ ⎛ 1 g) Se cunoaşte că B −1 = ⎜ ⎟ ⎜ − 1 / 5 2 / 5 ⎟ . Utilizând procedura de reoptimizare ⎠ ⎝ în cazul modificării sistemului de restricţii prin adăugarea unei coloane în matricea A, obţinem: − 1 ⎞⎛ 3 ⎞ ⎛ 1 ⎞ ⎛ 1 auB = B −1 au = ⎜ ⎟ ⎟⎜ ⎟ ⎜ ⎜ − 1 / 5 2 / 5 ⎟⎜ 2 ⎟ = ⎜1 / 5 ⎟ şi ⎠ ⎠⎝ ⎠ ⎝ ⎝ ⎛ 1 ⎞ f 6 − c6 = c B B −1 a 6 − c6 = (1 4)⎜ ⎟ ⎜1 / 5 ⎟ − 2 = ⎠ ⎝
= −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 → cB
1 4 B

1

1

4

0

0

2

X

B

a1
1 0 1 Ø

a2
-1 1 3 2 -1 6/5 14/5 9/5

a3
0 1 4 Ø 0 1 4 Ø

a4
1

a5
-1

a6
1 1/5 1/5 -1/5 1 0 2 Ø

a1 a3

5 3 17

−1 / 5
1/5 1/5 1 -2/5 2/5 2/5

2/5
3/5 3/5 -1 3/5 2/5 2/5

fj f j − cj
2 4

a6 a3 fj f j −cj

5 2 18

1 -1/5 6/5 1/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⎞ a6 = ⎜ ⎟ . ⎜0⎟ ⎝ ⎠

220

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
1+ λ 4 + 2λ

B

a1 a3
fj

X 5

B

a1
1 0
1+ λ

a2
-1 1

a3
0 1
4 + 2λ

a4
1

a5
-1 2/5
3 / 5 − 1 / 5λ

3
17 + 11λ

− 1/ 5
1/5+3/5 λ 1/5+3/5 λ

f j −cj

Ø

3+ λ 2 − 3λ

Ø

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ă.

221

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ânduse 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.

222

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ă.

223

Problema de transport

Formulare matematică – prezentare schematică
Notaţii
Di , i ∈ M = {1,..., m}
C j , j ∈ N = {1,..., n}

Semnificaţii Depozitul i Consumatorul j Cantitatea de marfă disponibilă în Di Vectorul disponibilului Cantitatea de marfă solicitată de C j Vectorul solicitărilor sau necesarului Ruta fixată pentru aprovizionarea lui C j de la Di Cost unitar de transport pe ruta (i, j ) Matricea costurilor unitare Cantitatea de marfă expediată pe ruta (i, j ) Matricea variabilelor

Exprimarea grafică a legăturilor
bj ai

ai , i ∈ M a bj , j ∈ N

b (i, j ) , i ∈ M , j ∈ N

x ij
Di i∈M

Cj j∈N

c ij , i ∈ M , j ∈ N
C = cij

c ij

( )ij∈M ∈N
( )ij∈∈M N

xij , i ∈ M , j ∈ N

X = xij

Modelul matematic Cantitatea expediată de

Di , i ∈ M ,

la cele n centre consumatoare este egală cu stocul din respectiva marfă existent în depozit. Cantitatea de marfă primită de C j ,

∑x
j =1
m

n

ij

= ai , i ∈ M

V.1.1

j ∈ N , de la cele m depozite trebuie

∑x
i =1

ij

= bj , j ∈ N

V.1.2 să fie egală cu cantitatea pe care a solicitat-o. Variabila x ij poate fi cel puţin zero, xij ≥ 0 , ∀i ∈ M , ∀j ∈ N V.1.3 oricare ar fi i ∈ M şi j ∈ N .
Planul de transport trebuie să fie [min] f = minim sub aspectul costului total. Oferta este egală cu cererea.

∑∑ c x
i =1 j =1 n j

m

n

ij ij

V.1.4

∑ a = ∑b
i i =1 j =1

m

V.1.5

224

Analita economico-matematică a unor modele liniare

Prezentarea problemei sub forma tabelară
T.V.1.1
Cj Di D1 c11 x11 C1

…..

Cj

Cn

D

…. ….

c1 j x1 j

….. ….

c1n x1n


Di

… ci1
xi1

…. ….

…. cij
xij

….. ….

….. cin
xin

a1 ……. ai n

∑x
j =1

ij

= ai , i ∈ M

…..
Dm

….. cm1
xm1 b1

….. ….

….. cmj
xmj

….. ….

….. cmn
xmn
n

…….
am

N

bj

bm

∑b = ∑ a
j j =1 i =1

m

i

∑x
i =1

m

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 ⎢0 ⎢ ⎢... ⎢ 0 A=⎢ ⎢1 ⎢ ⎢0 ⎢... ⎢ ⎢0 ⎣

1 ... 1 0 0 ... 0 ... 0 0 ... 0⎤ 0 ... 0 1 1 ... 1 ... 0 0 ... 0⎥ ⎥ ⎥ ... ... ... ⎥ 0 ... 0 0 0 ... 0 ... 1 1 ... 1⎥ 0 ... 0 1 0 ... 0 ... 1 0 ... 0⎥ ⎥ 1 ... 0 0 1 ... 0 ... 0 1 ... 0⎥ ⎥ ... ... ... ⎥ 0 ... 1 0 0 ... 1 ... 0 0 ... 1⎥ ⎦ n n + 1 ... 2n ... mn

Linia 1

Linia m Linia m+1

Linia m+n

Coloanele:... 1 2

225

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 22 23 ⎪ 21 ⎪ x11 + x 21 = 40 ⎨ ⎪ x + x = 30 22 ⎪ 12 ⎪ x13 + x 23 = 30 ⎩ unde xij reprezintă procentul din marfă, transportată pe ruta (Di , C j ) . xij ≥ 0, ∀i = 1,2, j = 1,3

226

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
d4
50 30

d1

d2
B A C
40

O

u

Vârf A B C

(u , v )
(40,30) (20,30) (40,10)

f (u , v ) 830 790 690

min

227

Problema de transport

Se obţine planul optimal
* x11 = 40

C1

D1

x12 = 10
*
* x13 = 30

x21 = 0
*

C2
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ă. Într-adevăr, dacă luăm xij = atunci, se observă că: ● xij ≥ 0 , ∀i = 1, m , j = 1, n ● sunt verificate relaţiile V.1.1 şi V.1.2:

ai ⋅ b j D

, unde D = ∑ ai = ∑ b j = N
i =1 j =1

not m

n

228

Analita economico-matematică a unor modele liniare

V.1.1' V.1.2'


j =1 n

n

ai ⋅ b j D ai ⋅ b j D

= =

n 1 ⋅ ai ⋅ ∑ b j = ai , i ∈1, m D j =1 m 1 ⋅ b j ⋅ ∑ ai = b j , j ∈1, n . D i =1


j =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.

229

Problema de transport

Etapa 2: Determinarea soluţiei optime. Pasul 1 Testarea optimalităţii.

⎯→ STOP. Se interpretează Soluţia iniţială X 1 este optimă ? ⎯DA
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
[min] f = ∑∑ cij xij
i =1 j =1 m n

⎧n ⎪∑ xij = ai , ∀i = 1, m ⎪ j =1 ⎨m ⎪ x = b , ∀j = 1, n j ⎪∑ ij ⎩ i =1 xij ≥ 0 , ∀i, j şi (u i* , v * ) , i = 1, m , j = 1, n , este soluţie admisibilă de bază a dualei sale j

230

Analita economico-matematică a unor modele liniare

[max]g = ∑ ai u i + ∑ b j v j

m

n

{u

i =1

j =1

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 * ) = 0 , ∀i = 1, m , j = 1, n . j

[

]

V.1.7 V.1.8

∑x
j =1 m i =1

n

* ij

− ai = 0 , ∀i = 1, m .

∑x

* ij

− b j = 0 , ∀j = 1, n .

* V.1.9 xij ≥ 0 şi cij − (u i* + v * ) ≥ 0 , ∀i = 1, m , j = 1, n . j

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ă V.1.11 cij − (u i + v j ) ≥ 0 pentru ∀xij nebazic. soluţia admisibilă de bază este optimă dacă:

231

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 . ∆ ij ≥ 0 , ∀xij variabilă nebazică ? DA → STOP. NU → Pasul 2. Pasul 2 Se îmbunătăţeşte soluţia testată • Se calculează ∆ ij = cij − (u i + v j ) pentru toate variabilele xij nebazice.

(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,

232

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:

233

Problema de transport

START
Se determină o soluţie iniţială: X1 .

Numărul rutelor utilizate prin X 1 este (m+n-1). DA

NU

Aplică procedeul de perturbare.

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ă
• aplică criteriul de intrare în
∆ kl ≥ 0

diferenţa

∆ kl = c kl − (u k + vl ) .
bază:

∀x kl nebazică.
DA

NU

min ( ∆ kl ) = ∆ pr ;
∆ kl < 0

• aplică criteriul de ieşire din bază construind linia poligonală închisă, cu vârful iniţial în ( p, r ) ; • calculează componentele soluţiei îmbunătăţite.

Soluţia testată este

STOP

234

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.
C1 D1 D2
5 7

C2 x12
9 5

C3
11 4

C4 x14
6

T.V.2.1 Disponibil
400t 250t 300t 950t

x11
10

x13 x23
8 9

x21
7 8

x22

x24

D3
Necesar

x31
200t

x32
270t

x33
330t

x34
150t

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:
= 400 ⎧ x11 + x12 + x13 + x14 ⎪ = 250 x21 + x22 + x23 + x24 V.2.1 ⎨ ⎪ x31 + x32 + x33 + x34 = 300 ⎩

235

Problema de transport

x11 + x12 +

x21 + x22 +

x31 x32 x23 + x33
x24 +

= 200 = 270 = 330

V.2.2

x13 +
x14 +

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

236

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 ⎢ x =? ⎢ 21 ⎢ ... ⎢ ⎣ x m1 = ? x12 = 0 ... x1n = 0 ⎤ ... ⎥ x 22 = ? ... ⎥ ⎥ ⎥ x m 2 = ? ... x mn = ?⎦
⇒ ∑ x1 j = a1 Se notează:
j =1 n

I = {2,..., m} ⊂ M , J = {1,..., n} = N .

∑x
i=2

m

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
⎡ x11 = a1 = b x12 = 0 ... x1n = 0 ⎤ ⇒ ∑ x1 j = a1 = b1 ⎢ x =0 j =2 ... ⎥ x 22 = ? ... ⎢ 21 ⎥ ⎢ ⎥ ... ⎢ ⎥ x m 2 = ? ... x mn = ?⎦ ⎣ x m1 = 0
n

Se actualizează mulţimile I şi J : I = {2,..., m}, J = {2,..., n}.

∑x
i =1

m

i1

= b1

237

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:
⎡ x11 = b1 ⎢x =0 ⎢ 21 ⎢ ... ⎢ ⎣ x m1 = 0 ⇓
m

x12 = ? ... x1n = ? ⎤ ⇒ ∑ x1 j = a1 − b1 Se actualizează j =2 mulţimile indicilor: x 22 = ? ... x 2 n = ? ⎥ ⎥ I = {1,..., m}, ⎥ J = {2,..., n}. ⎥ x m 2 = ? ... x mn = ?⎦

n

∑x
i =1

i1

= b1

Se trece la iteraţia 2 şi se află valoarea lui x12 . Să revenim la exemplul dat:
C1 C2
7 200 10 0 7 0 200 ↓ 0 270 330 150 8 8 9 300 950 9 5 6 250

C3
11 4

C4

Disponibil
400 → 200

D1
D2

5

D3
Necesar

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.

238

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 D1 D2 D3

C2

C3

C4

Disponibil 400 → 200 → 0 250 → 180 → 0 300 → 150 → 0 950

200 0 0 200 ↓ 0

200 70 0 270 ↓ 70 ↓ 0

0 180 150 330 ↓ 150 ↓ 0

0 0 150 150 ↓ 0

Necesar

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.
1 0

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

239

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.
⎯→ j := 2 Iteraţia 2: b1 = 0 ? ⎯DA
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 .
NU Iteraţia 3: b2 = 0 ? ⎯⎯→ 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 .

240

Analita economico-matematică a unor modele liniare
DA Iteraţia 4: b2 = 0 ? ⎯⎯→ 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!).
Iteraţia 5: b3 = 0 ? ⎯NU ⎯→ j := 3 , min{c i 3 } = min{8} = 8 = c 33 ⇒ x 33 = 80
i ≠1, 2

⇒ a 3 := 230 − 80 = 150 .
Iteraţia 6: b3 = 0 ? ⎯ DA ⎯→ j := 4 , min {c i 4 } = c 34 ⇒
i∉{1, 2}

x 34 = min{150,150} = 150 şi b4 = 0 ⇒ STOP .
C1 D1
5 200 10 0 7 0 200 ↓ 0 8 70 270 9 0 8 80 330 7 200 5 250 9 150 150

C2

C3
11 0 6 4

C4
0 0

Disponibil 400 → 200 → 0 250 → 0 300 → 230 → 150 → 0

D2 D3
Necesar


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.

241

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 β 1 = clj − min{cij } , j = 1, n . j
i ≠l

c) Se alege max ⎧max (α i1 ), max (β 1 )⎫ pentru a fixa linia sau coloana în care ⎨ i =i , m j ⎬ 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.
1 Să exemplificăm: min{c1 j } = 4 = c14 , k = 4 ⇒ α1 = c14 − min{c1 j } = 4 − 5 j =1, 4 j ≠4 1 min{c2 j } = 5 = c23 , k = 3 ⇒ α 2 = c23 − min{c2 j } = 5 − 6 j =1, 4 j ≠3 1 min{c3 j } = 7 = c31 , k = 1 ⇒ α 3 = 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

1 min{ci 2 } = 7 = c12 , l = 1 ⇒ β 2 = c12 − min{ci 2 } = 7 − 8 i =1, 3 i ≠1

1 min{ci 3 } = 5 = c23 , l = 2 ⇒ β 3 = c23 − min{ci 3 } = 5 − 8
i =1, 3

i≠2

1 min{ci 4 } = 4 = c14 , l = 1 ⇒ β 4 = c14 − min{ci 4 } = 4 − 6
i =1, 3

i ≠1

242

Analita economico-matematică a unor modele liniare
1 Rezultă max ⎧max (α i1 ), max (β 1 )⎫ = 5 − 8 = 3 = β 3 . Se atribuie variabilei ⎨ i =i , 3 j ⎬ 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
7 9 0 7 200 |5-7| 8 270 |7-8| 0 8 330 |5-8|

C3
11 5 250

C4
4 6 0 9 150 |4-6|

Disponibil 400 250 300 950

α1
|4-5| |5-6| |7-8|

D1
D2

5 10

D3
Necesar

β1

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 D1 5 D2 D3 C2 C3 C4

Disponibil

α1
|4-5| |5-6| |7-8|

α2

α3

α4

α5

N

β1
β2

7 11 4 400 250 50 0 200 50 0 150 10 9 5 6 250 0 0 0 250 0 7 8 8 9 300 220 0 0 220 80 0 150 950 330 200 270 0 80 0 220 0 0 |5-7| |7-8| |5-8|* |4-6| |5-7| |5-7| |5-7| |7-8| |7-8| |7-8| |7-8| |8-11| |8-11| Max iteraţia 3 |4-9| Max iteraţia 2

|4-5| |5-7|

|4-5| Fără sens

|7-8| |7-8|

|7-8| Fără sens

Max iteraţia 4

β

3

β4 β5

Max iteraţia 5 (unică)

243

Problema de transport

Iteraţia 2: I = {1,3} , J = {1,2,3,4}
1 1 α 12 = α 1 şi α 32 = α 3 .

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 | ;

2 β 42 =| c14 − c34 |=| 4 − 9 | ; max(α 12 ,α 2 , β12 , β 22 , β 32 , β 42 ,) = β 42 ⇒ se alege cel

β 22 =| c12 − c32 |=| 7 − 8 | ;

β 32 =| c13 − c33 |=| 8 − 11 | ;

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 .

244

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 .
3 0

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 D1 D2
5 200 10 7 200 9 8 70 270 7 200 5 250 8 80 330 9 150 150 6

C2

C3
11 4

C4

Disponibil 400 250 300 950

D3
Necesar

Se scrie sistemul u i + v j = cij pentru toate variabilele bazice xij . xij variabilă bazică → ecuaţie
x11
→ soluţie particulară

→ u1 + v1 = 5

x12 x 23 x 32 x 33 x 34

→ u1 + v 2 = 7 → u 2 + v3 = 5 → u3 + v2 = 8 → u 3 + v3 = 8 → u3 + v4 = 9

u1 = −1 u 2 = −3 u3 = 0

v1 = 6 v2 = 8 v3 = 8 v4 = 9

Obs: S-a anulat u 3 deoarece apare cu cea mai mare frecvenţă în sistem.

245

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
x14 x 21 x 22 x 24

→ ∆ 13 = c13 − (u1 + v 3 ) = 11 − (− 1 + 8) = 4 > 0
→ ∆ 14 = c14 − (u1 + v 4 ) = 4 − (− 1 + 9 ) = −4 < 0 → ∆ 21 = c 21 − (u 2 + v1 ) = 10 − (− 3 + 6 ) = 7 > 0 → ∆ 22 = c 22 − (u 2 + v 2 ) = 9 − (− 3 + 8) = 4 > 0 → ∆ 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 D1 D2 D3
Necesar 200

C2
200- θ

C3
250

C4

Disponibil 400 250 300 950

70+ θ 200 270

80 330

150 - θ 150

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ţă

246

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 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ă:
0

θ = min(150,200) = 150 = x 34 . În noua soluţie admisibilă de bază variabila
x14 a eliminat-o pe x34 : C1 D1 D2 D3
Necesar 200

C2
200-150

C3
250

C4
150

Disponibil 400 250 300

70+150 200 270

80 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 ;

247

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 )
i = 1,3 , j = 1, 4

(cij )i, j
4 6 9
u1 = 0 u 2 = −2 u3 = 1

v1 = 5

v2 = 7

v3 = 7

v4 = 4

∆ ij = cij − cij

5 10 7

7 9 8

11 5 8

5 3 6

7 5 8

7 5 8

4 2 5

Ø 7 1

Ø 4 Ø

4 Ø Ø

Ø 4 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.

248

Analita economico-matematică a unor modele liniare

Planul optim de livrare este prezentat în următorul graf:
200

D1
150

50

C1

C2 C3
80

D2

250 220

D3

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.
C1 D1 5 D2 10 C2 C3 C4

D

cij
u1 = 0 u 2 = −2

v1 =5

v2 =7

v3 =7

v4 =4

∆ ij = cij − cij

7 200 9 8 200 50

11 5 250

4 150 400 6 250

5 3 6

7 5 8

7 5 8

4 2 5

Ø 7 0

Ø 4 Ø

4 Ø Ø

Ø 4 4

D3 6
N

8 9 220 80 300 270 330 150 950

u3 = 1

∆ 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 D1 D2 D3 C2 C3 C4

170 30 270

80 250

150

249

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
150

D1 D2 D3

200 - θ +θ

50 + θ 250 30 - θ

θ = min( 200,30) =
= 30 ⇒

270

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 ⎣ 0 50 150⎤ 80 150⎤ ⎡170 0 0 ⎥ + (1 − λ ) ⋅ ⎢ 0 0 250 0 ⎥ = X * , λ ∈ [0,1] . ⎥ ⎢ ⎥ ⎢ 30 270 0 0 ⎥ 0 ⎥ ⎦ ⎣ ⎦

λ ⋅⎢ 0 ⎢

0 250 270 30

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ă, de exemplu, pentru λ =
1 : 5

X* =

50 150⎤ 80 150⎤ ⎡176 0 74 150⎤ ⎡170 0 ⎡200 0 1 ⎢ 4 0 250 0 ⎥ + ⋅ ⎢ 0 0 250 0 ⎥ = ⎢ 0 ⋅⎢ 0 0 250 0 ⎥ ⎥ ⎥ ⎢ ⎥ 5 ⎢ 5 ⎢ 30 270 0 ⎢ 0 270 30 0 ⎥ ⎢ 24 270 6 0 ⎥ 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

250

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 ⎞ ⎜ ⎟ = ⎜10 7 11 4 ⎟ . ⎜ 8 9 9 10 ⎟ ⎝ ⎠

C = (cij ) i =1,3
j =1, 4

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.).

251

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 Disponibil
450 820 530 1800

C1

C2
8 7 9 700

C3
12 11 9 200

C4
6 4 10 600

D1 D2 D3
Necesar

5 10 8 300

Notăm cu

xij cantitatea de marfă care se transportă de la D i la C j ,

1 1 adică pe ruta (i, j ) , i ∈ { ,2,3} , j ∈ { ,2,3,4} .
Problema primală:
[min] f =

∑∑ c x
i =1 j =1

3

4

Problema duală
[max]g =

ij ij


i =1

3

aiui +

∑b v
j =1

4

j j

⎧ x11 + x12 + x13 + x14 = 450 ⎪ x + x + x + x = 820 ⎪ 21 22 23 24 ⎪ x31 + x32 + x33 + x34 = 530 ⎪ ⎪ x11 + x21 + x31 = 300 ⎨ ⎪ x12 + x22 + x32 = 700 ⎪ x13 + x23 + x33 = 200 ⎪ ⎪ x14 + x24 + x34 = 600 ⎪ x ≥ 0, ∀i ∈ 1,3 , ∀j ∈ 1,4 ⎩ ij

→ u1 ∈ R → u2 ∈ R → u3 ∈ R → v1 ∈ R → v2 ∈ R → v3 ∈ R → v4 ∈ R

{u + v
i

j

≤ cij

, ∀i ∈ 1,3, j ∈ 1,4

ui , v j ∈ R , ∀i ∈ 1,3, j ∈ 1,4

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 .

252

Analita economico-matematică a unor modele liniare

• Modelul admite totdeauna soluţia xij =

ai ⋅ b j

∑a
i =1

m

, i ∈ 1, m , j ∈ 1, n , deci,

i

conform teoriei cunoscute, are cel puţin o soluţie optimă finită:
⎛ 450 ⋅ 300 ⎜ ⎜ 1800 X =⎜ ... ⎜ ... ⎜ ⎝ 450 ⋅ 700 1800 ... ... ⎞ ⎟ ⎟ ... ⎟. 350 ⋅ 600 ⎟ 1800 ⎟ ⎠ ..

... ... 530 ⋅ 200 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 D1 D2 D3
Necesar

C1
300

C2
150 550

C3
200 200

C4
70 530 600

Disponibil
450 820 530 1800

300

700

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).

253

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 D1 D2 C1
5 10 8 300

C2
8 7 9 700

C3
12 11 9 200

C4
6 0 4 600 10 0 600

Disponibil
450 820-600=220 530 1800

D3
Necesar

Cu subşirul de costuri obţinut se reia raţionamentul. În final, se obţine SAB nedegenerată:
X2 D1 D2
5 300 10 0 8 0 300 ↓ 0 9 330 700 ↓ 480 ↓ 330 ↓ 0 7 220 9 200 200 ↓ 0

C1
8

C2
12 150 11

C3
6 0 4 0 10

C4
0 600 0 600 ↓ 0

Disponibil
450 → 150 → 0 820 → 220 → 0 530 → 200 → 0 1800

D3
Necesar

254

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 D1 D2
5 10 8 300 N

C2
8 7 9 700 1

C3
12 11 9 200 2

C4
6 4 600 10 600 2

D 450 820 530 1800

α (1)
6-5=1 3 1

D3

β (1)

3

• 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.

255

Problema de transport

În cazul problemei considerate, se elimină coloana 4 şi se obţine:

C1

C2
8 7 9

C3
12

D 450

α ( 2)
3 3

D1
D2

5 300 10 8 300

11 220 9 530 700 200 2

D3
N

1

β ( 2)

3

1

x11 = 300 ; se elimină coloana 1: C2 D1 D2
8 7 220 9 700 N 9 200 2

C3
12 11

D 150 220 530

α ( 3)
4 4 0

D3

β ( 3)

1

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
D1
8 150 9 480 N

C3
12 9 200 3

D 150 530

α ( 3)
4 0

D3

β ( 3)

1

256

Analita economico-matematică a unor modele liniare

după care se face atribuirea automată
C2

C3
9 200 200

D 530

D3
N

9 330 330

Soluţia iniţială a problemei de transport prezentate va fi:

X3
D1 D2 D3
N

C1
300

C2
150 220 330

C3

C4
600

D 450 820 530

200 200 600

300

700

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

257

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 3 ⎩ 4

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.

258

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 D1 D2
5 300 10 8 300 N

C2
8 150 7 550 9 700

C3
12 11 200 9

C4
6 4 70 10 530 600

D 450 820 530 1800

D3

θ

200

• 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
D1 D2
5 300 10 8

C2
8 150 7 550 9

C3
12 11 9 200

C4
6 4 270 10 330

D3

259

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 300 10 8 7 550+ 9 8 15012 11 200 9 6 4 706 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 =4 u1 = 1 u2 = 0 u3 = 6 v2 =7 v3 = 11 v4 =4 ∆ ij = c ij − c ij

5 4 10

8 7 13

12 11 17

5 4 10

Ø 6 -2

Ø Ø -4

0 Ø -8

1 Ø Ø

• 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.

260

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 550 200- θ +θ 70+ θ 530- θ 300 150 550 200 270 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
∆ ij = c ij − c ij

=5 =8
u1 = 0

=4 =5

5

8 7

4 3 9

5 4 10

Ø 6 -2

Ø Ø -4

8 8

1 Ø

300 150 550- θ +θ 200 270+ θ 330- θ

u 2 = −1 4 u3 = 5

10 13

Ø Ø

θ = min(550, 330) =
∆ ij ≥ 0, ∀i, j ? NU ⇒

= 330 ⇒

se alege min(∆ ij ) = ∆ 32

C.I.B

C.E.B

se elimină din bază Noua soluţie va fi:

x34 .

⇒ x32 = θ

va intra în noua bază

' X 1'

300

150 220 330

600 200

261

Problema de transport

Testăm acum optimalitatea soluţiei X 1 :
v4 = −3

''

c ij u1 = 8 u2 = 7 u3 = 9

v1 = −3

v2 = 0

v3 = 0

∆ ij = c ij − c ij

5 4 6

8 7 9

8 7 9

5 4 6

Ø 6 2

Ø Ø Ø

4 4 Ø

1 Ø 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ă:

300×5

C1

D1

150×8

220×7

C2

min f = 11410

D2
330×9

600×4

C3
200×9

D3

C4

262

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 D1
5 301 10 8 301 7 220 9 480 700 9 50 200 10 600 530 1800 11

C1
8

C2
12

C3
6 150 4

C4

Disponibil 451

D2 D3
Necesar

600

820

Se testează optimalitatea acestei soluţii:

vj ui
0 -5 -3

5

12

12

9

∆ ij = c ij − c ij
Ø 10 6 -4 Ø Ø Ø 4 Ø -3 Ø 4 301 +θ 220 480- θ 150- θ 50+ θ 600

cij
5 0 2 12 7 9 12 7 9 9 4 6

min(−4,−3) = −4 = ∆ 12

θ = 150

Rezultă
X2

vj ui cij
0 -1 1

5

8

8

5

∆ ij = cij − c ij
Ø 6 2 Ø Ø Ø 4 4 Ø 1 Ø 4

301

150 220 330

600 200

5 4 6

8 7 9

8 7 9

5 4 6

∆ ij ≥ 0 , ∀i = 1,3 , j = 1,4

⇒ STOP

263

Problema de transport

Costul total este de 11415, soluţia optimă fiind prezentată grafic mai jos.
Cantitate transportată Depozite Rute folosite şi costurile de transport corespunzătoare Centre consumatoare Marfă primită

451

D1

301× 5

C1

301 700

150 × 8
820

D2

220 × 7 600 × 4

C2

530

D3

330 × 9 200 × 9

C3
C4

200

600

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

) Într-adevăr, 11410 + (u

* * modifice cu u1 + v 4 unităţi. * 1

(

* + v 4 ) = 11410 + (0 + 5) = 11415 , costul total minim

pentru modelul postoptimizat.

264

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ă complet de matricea costurilor unitare C = ⎜ 6 4 4 5 ⎟ , vectorul cantităţilor
⎜ 8 5 9 9⎟ ⎠ ⎝ ⎛ 3 4 6 5⎞ ⎟ ⎜

disponibile a = ⎜ 200 ⎟ , vectorul cantităţilor solicitate b = (100 100 200 250)
⎜ 250 ⎟ ⎠ ⎝ ⎛ x11 ⎜ x12 x32 x13 x33 x14 ⎞ ⎟

⎛ 200 ⎞ ⎟ ⎜

şi matricea variabilelor ⎜ x21 x22 x23 x24 ⎟ .
⎜x ⎝ 31 x34 ⎟ ⎠

⎛ (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.

265

Problema de transport

Astfel, avem de rezolvat problema de transport cu datele de intrare cuprinse în tabelul următor:
C1 D1 D2
3 6 20 100

C2
4 4 5 100

C3
6 4 9 200

C4
5 5 9 250

D 200 200 250 650

D3
N

Vom trece la rezolvarea acestei probleme.

Etapa 1: Determinarea unei soluţii iniţiale. Se va aplica metoda elementului
minim pe linie.
C1 D1 D2
3 100 6 20 100 4 5 100

C2
4 100

C3
6 4 200 9 200

C4
5 5

D 200 200

D3
N

9 250 250 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ă.
0 ⎤ ⎡100 100 0 ⎢ 0 Soluţia iniţială ⎢ 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ă.

266

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
i∈M 1

∑a

i

=

j∈N1

∑b

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ε .

267

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
D1 D2

C1
3 100 6 20 100

C2
4 100 4 5 100

C3
6 4 200 9

C4
ε
5 5

D

ε

200 + 2ε
200

D3
N

9

200 + ε

250 + ε

250

250

650 + 2ε

Etapa 2: Se stabileşte soluţia optimă pentru problema perturbată.
X1

vj u i cij

3

4

6

5

∆ ij = cij − cij
100 100- θ

3

4 6 100 100 6 4 4 20 5 9

ε
200

5 5 9

ε

0 -2 4

3 1 7

4 2 8

6 4 10

5 3 9

Ø 5 13

Ø 2 -3

Ø Ø Ø 2

ε
200

ε +θ

-1 Ø

250

250- θ

min ∆ ij = ∆ 32 = −3
∆ ij < 0

min(100,250)=100 ⇒ x12 eliminat din bază

⇒ x32 intră în noua bază

268

Analita economico-matematică a unor modele liniare

Continuăm algoritmul şi obţinem:
X2

vj 3 1 u i cij
5 0 100+ ε 5 -2 9 150 4 3 1 7 1

6 5

∆ ij = cij − cij

3 4 100 6 4

6 4

ε
200

6 5 Ø 3 Ø Ø

100

ε -θ
200 100

100+ ε + θ

-1 4 3 5 5 Ø 2 5 10 9 13 Ø -1 Ø

20 5 9 100
∆ ij < 0

θ

150- θ

min ∆ ij = ∆ 33 = −1

⇒ x 33 intră în noua bază

min( ε ,150)= ε ⇒ x13 eliminat din bază

În final, găsim:

X3
3 100 6 20 4 5 100 4 200 9 4 6 5 -4 100+2 ε 5 -5

vj u i cij

7

5

9

9

∆ ij = cij − c ij
Ø 4 3 4 1 Ø 100

Soluţia optimă

3 2 7

1 0 5

5 4 9

5 4 9

100+2

ε

Ø 1 100

200

ε

9

150- ε

0

13 Ø Ø Ø

ε

150- ε

∆ ij ≥ 0 ∀i, j
şi ∆ kp > 0 ∀x kp nebazică

Soluţie optimă unică.

269

Problema de transport

Aşadar, problema perturbată admite soluţia optimă unic determinată:
0 100 + 2ε ⎤ ⎡100 0 ⎢ 0 0 200 0 ⎥ Xε = ⎢ ⎥ ⎢ 0 100 ε 150 − ε ⎥ ⎣ ⎦
*

După anularea lui ε se obţine soluţia optimă a problemei iniţiale:
0 100⎤ ⎡100 0 ⎢ 0 0 200 0 ⎥ , X =⎢ ⎥ ⎢ 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
Se observă că ruta (3,1), blocată, nu este folosită în programul optim cu costul total de 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ă.

100 × 3
D1
100 × 5

C2

D2

200 × 4

100 × 5

C3
150 × 9
C4

D3

270

Analita economico-matematică a unor modele liniare

Observaţie:
coeficientul lui ε pentru un a i ales

=

(m+n-1)

×

numărul rutelor folosite în soluţia degenerată

= 6-4 = 2

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ă:

271

Cum se manifestă dezechilibrul

Cum se face echilibrarea 3.2.1. Prin introducerea unui centru consumator fictiv

Cum se poate exprima o servire cu prioritate 3.2.2. Se poate cere stabilirea unui program optim de aprovizionare care să epuizeze cu prioritate stocul depozitului

i) ∑ ai > ∑ b j , adică,
i =1 j =1

m

n

oferta>cererea

C n +1
C2
4 3 4 700 D 700 300 500 1500 1300
i

C1 D1
5 9 2 600

D2
D3
N

∑a − ∑b
C1 D1
5 600

0 … 0

Di , i ∈ {1,.., m} .
C1
j

C2
4 3 4

C3
0 0 20 200

D 700 300 500 1500

Soluţia iniţială pentru problema echilibrată, găsită prin metoda N-V:

C2

C3

D

D1 D2 D3
N

5 9 2 600

700

Ruta (3,3) se transformă în rută 4 0 nerentabilă (cost mare) dacă se cere 100 700 lichidarea stocului a 3 . 3 0 D2 9 300 300 2 4 0 D3 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

272

ii)

∑ a < ∑b
i =1 i j =1

m

n

j

, adică,

3.2.3. Prin introducerea unei surse de aprovizionare fictive:

3.2.4. În acest caz se poate face servirea cu prioritate a unui centru
i

Cj

în

oferta<cererea

Dm +1
C2
2 4 180

0…0

∑b − ∑a
j
2 3

sensul de a i se asigura primirea cantităţii cerute.

C1 D1 D2
N 3 2 520

C3
4 1 200

D 320 300

Soluţia iniţială pentru problema echilibrată (metoda N-V): N-V D C C C
1

C1

C2
2 4 10

C3
4 1 0 200

D 320 300 280 900

D1 D2

300 0 80 200 280 N 520 180 200 900 Interpretarea economică a valorilor din linia fictivă:

D3

3 320 2 200 0

2 4 100 0

4 320 1

D1 D2 D3
N

3 2 0 520

180

Să presupunem că se cer servirea cu prioritate a centrului

C 2 . Dacă recitim

interpretarea dată lui x 32 = 80 > 0 , vom înţelege că, în solutia optimă această variabilă trebuie să fie egală cu 0, ceea ce este echivalent cu a bloca ruta (3,2).

Cât nu primeşte

D3 x32 = 80

C2

C 2 din cantitatea cerută

273

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 D1 C1
5 600 9 2 600 3 300 4 300 700 0 200 200 500 1500

C2
4 100

C3
0 0

D 700 300

D2 D3
N

Etapa 2: Testarea optimalităţii. Iteraţia 1:
X1
5 600 9 2 3 300 4 300 0 200 4 5 4 0 -3 Ø Ø 4 100 0 3 4 3 -1 5 Ø 1 +θ 0 4

vj 1 u i cij
5

0

-4

∆ ij = cij − cij

4

0

Ø

Ø

0

600- θ

100+ θ 300 300- θ 200

min ∆ ij = ∆ 31 = −3
∆ ij < 0

Iteraţia 2:
X2
5 9 2

⇒ x 31 intră în noua bază vj u i cij
5 4 3

min(600,300)=300 ⇒ x 32 eliminat din bază

∆ ij = cij − c ij
Ø 5 Ø Ø Ø 3 -3 2 Ø 300+ θ 300- θ 400 300 200- θ +θ

4 0 0 300 400 3 0 -1 300 4 0 -3 300 200

5 4 2

4 3 1

3 2 0

min ∆ ij = ∆ 13 = −3
∆ ij < 0

⇒ x13 intră în noua bază

min(300,200)=200 ⇒ x 33 eliminat din bază

274

Analita economico-matematică a unor modele liniare

Iteraţia 3:

X3 ui
5 100 9 2 500 3 300 4 0 -3 4 400 0 0 200 -1 0

vj

5

4

0

∆ ij = c ij − c ij
Ø 5 Ø Ø Ø 3 Ø 1 3

cij
5 4 2 4 3 1 0 -1 -3

Soluţia optimă 100 400 300 500 200

∆ ij ≥ 0 , ∀i, j şi ∆ kp > 0 , ∀x kp nebazică

Soluţie optimă unic determinată.

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

D1

x11 = 100
*

x12 = 400
*

* * C1 : x11 + x31 = 600

unităţi

de marfă primită.

x 22 = 300
*

x13 = 200
*

D2
x 31 = 500
*

* * C 2 : x12 + x22 = 700

unităţi

de marfă primită.
* C3 fictiv : x13 = 200 stoc în D1 .

D3

[min] f = 4000 u.m

275

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
5 100 9 2 500 600 3 300 4 700 20 200 500 1500

C2
4 400

C3
0 200 0

D 700 300

D1
D2

D3
N

Se observă că este o soluţie care utilizează m+n-1=5 rute.

Etapa 2: Testarea optimalităţii.
X1

vj ui cij
0 0 200 0 -1 -3

5

4

0

∆ ij = cij − c ij
Ø 5 Ø Ø Ø 3 Ø 1 3

Soluţia optimă 100 400 200 300 500

5 100 9 2 500

4 400 3 300 4

5 4 2

4 3 1

0 -1 -3

0

∆ ij ≥ 0 , ∀i, j

∆ kp > 0 , ∀xkp nebazică ⇒ unic determinată.

Soluţie optimă

276

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 D1 D2 C1
3 320 2 200 0 520 0 80 180 4 100 0 200 200 280 900 1 300

C2
2

C3
4

D 320

D3
N

Etapa 2: Testarea optimalităţii.
X1

vj ui

2

4

4

∆ ij = cij − c ij
Ø Ø 2 -1 Ø Ø 1 -3 Ø 320 200 100- θ 80+ θ +θ 200- θ

cij
3 2 -2 3 4 0 3 4 0

3 320 2 200 2

2 4 100 0 80

4 1 0 200

-1 0 -4

min ∆ ij = ∆ 23 = −3
∆ ij < 0

min(100,200)=100 ⇒ x 22 eliminat din bază

⇒ x 23 intră în noua bază

277

Problema de transport

X2

vj ui

2

1

1

∆ ij = cij − c ij
Ø Ø -1 0 3 Ø 2 Ø Ø 320 200- θ +θ 180 100+ θ 100- θ

cij
3 2 1 2 1 0 2 1 0

3 320 2 200 0

2 4 0 180

4 1 100 0 100

0 0 -1

min ∆ ij = ∆ 31 = −1
∆ ij < 0

⇒ x 33 eliminat din bază

min(200,100)=100

⇒ x 31 intră în noua bază X3 ui
3 320 2 100 0 100 0 180 0 4 1 200 0 0 0 -1 Ø Ø 1 2 2 2 1 Ø 2 Ø 2 4 3

vj cij

0

0

-1

∆ ij = c ij − cij
Ø -1 2 320- θ 100 100+ θ 180- θ +θ 200

3

3

2

min ∆ ij = ∆ 12 = −1
∆ ij < 0

min(320,180)=180 ⇒ x 32 eliminat din bază

⇒ x12 intră în noua

278

Analita economico-matematică a unor modele liniare

X4

vj ui

0

-1

-1

∆ ij = cij − c ij
Ø Ø Ø Ø 3 1 2 Ø 1 140 100 280

cij
3 2 0 2 1 -1 2 1 -1

Soluţia optimă 180 200

3 140 2 100 0 280

2 180 4 0

4 1 200 0

3 2 0

∆ ij ≥ 0 , ∀i, j ∆ kp > 0 , ∀xkp nebazică

Soluţie optimă unic determinată.

Schema soluţiei optime

D1
*

x11 = 140
*

x12 = 180
*

* * C1 : x11 + x 21 = 240 unităţi

de marfă primită.
x 31 = 280 deficit
* * C 2 : x12 = 180 unităţi de marfă primită.

x 21 = 100

D2
*

x 23 = 200
*

x 31 = 280

D3
ficti v

* C3 : x 23 = 200 unităţi

de marfă primită. [min] f = 1180 u.m.

279

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 D1 D2 C1
3 140 2 100 0 280 520 10 180 0 200 280 900 4

C2
2 180

C3
4 1 200

D 320 300

D3
N

Etapa 2: Testarea optimalităţii:
X1

vj ui

0

-1

-1

∆ ij = cij − c ij
Ø Ø Ø Ø 3 11 2 Ø 1

cij
3 2 0 2 1 -1 2 1 -1

Soluţia optimă 140 100 280 Soluţie optimă unic coincide cu soluţia optimă a problemei 3.2.3. 180 200

3 140 2 100 0 280

2 180 4 10

4 1 200 0

3 2 0

∆ ij ≥ 0 , ∀i, j ∆ kp > 0 , ∀xkp nebazică

⇒ determinată. Ea

În continuare, vom prezenta o problemă în care decizia de eliminare din bază este mai dificilă decât în cazul problemelor rezolvate anterior.

280

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 D1 D2 D3
N 9 12 15 80

C2
10 9 8 90

C3
9 16 13 100

C4
16 8 11 80

D 100 120 150

Este uşor de observat că problema este neechilibrată. Într-adevăr,

∑ ai = 370 ≠ ∑ b j . În aceste condiţii, se impune introducerea unui
i =1 j =1

3

4

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 D1 D2 C1
9 12 40 15 40 80 3 3 3 3 3 1 1 1 8 90 90 4* 4* 3 3 3 13 20 100 3 3 3 3 11 80 0

C2
10 9

C3
9 80 16

C4
16 8 80

C5
0 0

D 20100

α (1) α ( 2 ) α (3) α ( 4 ) α (5)
9* 8 0 1 3 1 3* 4* 2 4* 2

120 0 150 20 370 8

D3
N

β β ( 2) β ( 3) β ( 4) β ( 5)
(1)

281

Problema de transport

Etapa 2: Stabilirea soluţiei optime. Pasul 1 Testarea optimalităţii soluţiei obţinute la etapa 1.
X1
80 40 TESTARE 40 90 20 80 20

vj u i cij
-4 -3 0

15

8

13

11

4

∆ ij = c ij − c ij
-2 Ø Ø 6 4 Ø Ø 6 Ø 9 Ø 0 Ø -1 -4

11 12 15

4 5 8

9 10 13

7 8 11

0 1 4
∆ ij < 0

min ∆ ij = ∆ 35 = −4 ⇒ 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.

282

Analita economico-matematică a unor modele liniare

Ca urmare a acestei decizii, se obţine:

80+ θ

20- θ 80

θ = min( x15 , x33 ) = min (20,20) =
= 20 = x33 , deoarece c33 = max (c15 , c33 ) .

40 40 90 20- θ

Iteraţia 2: Noua soluţie admisibilă de bază este dată în tabelul următor:

100 40 TESTARE 40 90 80

0

20

vj u i cij
0 -3 0

15

8

9

11

0

∆ ij = c ij − c ij
-6 Ø Ø 2 4 Ø Ø 10 4
∆ ij < 0

15 12 15

8 5 8

9 6 9

11 8 11

0 -3 0

5 Ø 0

Ø 3 Ø

min ∆ ij = ∆ 11 = −6
⇒ x11 intră în noua bază

283

Problema de transport

θ

100

0- θ 80 20+ θ

θ =min(0,40)=0.
⇒ x15
eliminat din bază.

40 40- θ

90

Iteraţia 3: Continuăm cu testarea soluţiei îmbunătăţite:

0 40 40 90

100 80 20

vj u i cij
-6 -3 0

15

8

15

11

0

∆ ij = cij − c ij
Ø Ø Ø 8 4 Ø Ø 4 -2
∆ ij < 0

9 12 15

2 5 8

9 12 15

5 8 11

-6 -3 0

11 Ø 0

6 3 Ø

min ∆ ij = ∆ 33 = −2 ⇒ x 33 intră în noua

284

Analita economico-matematică a unor modele liniare

0+ θ

100- θ 80 +θ

θ =min(100,40)=40.
⇒ x 31 eliminat din bază.

40 40- θ

90

20

Iteraţia 4:
40 40 TESTARE 90 40 20 60 80

vj u i cij
-4 -1 0

13

8

13

9

0

∆ ij = c ij − c ij
Ø Ø 2 6 2 Ø Ø 4 Ø 11 Ø 2 4 1 Ø

9 12 13

4 7 8

9 12 13

5 8 9

-4 -1 0

∆ ij ≥ 0 , ∀i, j ⇒ soluţia găsită este optimă.

285

Problema de transport

Schema soluţiei optime:
C1

x11 = 40
*

D1

x13 = 60
*

C2

x 21 = 40
*

D2
*

x 24 = 80
*

C3 Costul total este de 3260u.m.

x 32 = 90 x 33 = 40
*

C4

D3
x 35 = 20 ,
*

adică exact cantitatea care rămâne în stoc, în D3

C 5 fictiv

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.

286

Analita economico-matematică a unor modele liniare

Problema 3.2.6. Problema de transport ce va fi studiată are următoarea

prezentare matriceală:
C1 D1 D2
3 2 300 1 180 2 40 4 160 3 3 5 2 30 1

C2
1

C3
190

D

220
300

D3
D4
N

180 200
900

520

190

190

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
C1 D1 3
2 30 4 300 3 180 4 40 160 0 3 5 1 • Metoda lui Dantzig

C2
1

C3
190

D

C1 D1 D2 D3
220 300

C2

C3

D 220 300

220 → 30 → 0
300 → 0
180 → 0

D2 2 D3 1
D4 2
N

180 520 10 190 190 190

180 200 900

D4
N

200 → 160 → 0

520 ↓ 190 ↓ 340 ↓ 160 ↓ 0 40 ↓
0

190 ↓ 900

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 )

287

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 D1 D2 D3 D4
N 520 220 300 180 10 190+ ε 190 190

C2

C3

D 220+ ε 300 180 200 900+ ε

ε

• se stabileşte soluţia optimă.

Observaţia 1: Dacă o soluţie iniţială este degenerată, soluţia optimă poate fi
nedegenerată.

288

Analita economico-matematică a unor modele liniare

X1
3 220 2 300 1 2 3 180 4 3 10 190 5 4 2

cij

v1 =1

v2 =0

v3 = −1

∆ ij = cij − cij

ε

1 1

u1 = 2 u2 = 1 u3 = 3 u4 = 4

3 2 4 5

2 1 3 4

1 0 2 3

Ø Ø -3 -3

Ø 3 Ø Ø

0 1 3 Ø

220- θ 300 +θ

ε +θ

180- θ 10 190

⎫ ⎬⇒ min (c 31 , c 41 ) = c31 = 1⎭
min( −3, −3) = −3 ⇒ x31 = θ intră în bază.

θ = min(220,180) = 180 ⇒

x32 va fi eliminată din

bază.

X2
3 2 1 40 180+ ε 2 4 1 300 1 3 5 180 2 4 3 10 190

cij
u1 = 3 u2 = 2 u3 = 1 u4 = 5

v1 =0

v2

v3

∆ ij = cij − cij

= −1 = −2

3 2 1 5

2 1 0 4

1 0 -1 3

Ø Ø Ø -3

Ø 3 3 Ø

0 1 6 Ø

40- θ 300 180 +θ

180+ ε + θ

10- θ

190

min ∆ ij = −3 = ∆ 41
∆ ij < 0

⇒ x 41 intră în bază.

min(10,40)=10 ⇒ x 42 eliminată din bază.

289

Problema de transport

X3
3 2 1 2 2 30 190+ ε 4 300 3 180 4 10 1 1 5 3 190

cij
u1 = 3 u2 = 2 u3 = 1 u4 = 2

v1 =0

v2

v3

∆ ij = cij − cij

= −1 = −1

3 2 1 2

2 1 0 1

2 1 0 3

Ø Ø Ø Ø

Ø 3 3 3

-1 0 5 Ø

30- θ 190+ ε 300 180 10+ θ

190- θ

min ∆ ij = −1 = ∆ 13
∆ ij < 0

⇒ x13 intră în bază.

min(30,190)=30 ⇒ x11 eliminată din bază.

X4
3 2 300 1 180 2 40 4 3 160 3 5 2 1 190+ ε 30 4 1

cij
u1 = 0 u2 = 2 u3 = 1 u4 = 2

v1 =0

v2 =2

v3 =1

∆ ij = cij − cij 3 Ø Ø Ø Ø 0 0 0 Ø -2 3 Ø 300- θ 180 40+ θ 160- θ 190+ ε 30 +θ

0 2 1 2

2 4 3 4

1 3 2 3

min ∆ ij = −2 = ∆ 23
∆ ij < 0

⇒ x 23 intră în bază.

min(300,160)=160 ⇒ x 43 eliminată din bază.

290

Analita economico-matematică a unor modele liniare

X5
3 2 140 1 180 2 200 4 3 3 5 2 4 190+ ε 1 30 1 160

cij
u1 = 2 u2 = 2 u3 = 1 u4 = 2

v1 =0

v2 =0

v3 = −1

∆ ij = cij − cij

0 2 1 2

2 4 3 4

1 3 2 3

1 Ø Ø Ø

Ø 2 2 2

Ø Ø 5 2

∆ ij ≥ 0 , ∀i = 1,4 şi j = 1,3 ⇒ STOP. Schema soluţiei optime (ε := 0) :

D1
x12 = 190
*

C1

x13 = 30
*

D2
*

x 21 = 140
*

x 23 = 160

C2

D3

x 31 = 180
*

C3

D4

x 41 = 200
*

291

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
3 2 300 1 180 2 40 4 160 3 3 5 2 30 4 1 1 190
cij
u1 = 0 u2 = 2 u3 = 1 u4 = 2 v1 =0 v2 =2
v3 =1

∆ ij = cij − cij

0 2 1 2

2 4 3 4

1 3 3 3

3 Ø Ø Ø

Ø 0 0 Ø

Ø -2 3 0 300- θ 180

30+ θ

190- θ +θ

40+ θ 160- θ

min ∆ ij = −2 = ∆ 23
∆ ij < 0

min(190,300,160)=160 ⇒ x42 eliminată din bază.

⇒ x 23 intră în bază. X5
3 2 140 1 180 2 200 4 3 3 5 2 190 4 1 160 1 30 cij
u1 = 2 u2 = 2 u3 = 1 u4 = 2 v1 =0 v2 =0
v3 = −1

∆ ij = cij − cij 1 Ø Ø Ø Ø 2 2 2 Ø Ø 4 2

2 2 1 2

2 2 1 2

1 1 0 1

∆ ij ≥ 0 , ∀i = 1,4 şi j = 1,3 ⇒ STOP. Evident, s-a obţinut aceeaşi soluţie optimă.

292

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 ; c ik , costul unitar pe ruta (Pi , Dk ) ; b j , cererea consumatorului C j , j ∈ N ; B = (b j ) j∈N ; 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.

293

Problema de transport

Modelul matematic

ai

Pi

x ik c ik

Dk dk

V.4.1 V.4.2

∑x
k =1

m1

ik

= ai , i ∈ M

∑x
i =1

m

ik

= dk , k ∈ M1

Dk dk

y kj
p kj

Cj
bj

V.4.3 V.4.4

∑y
j =1

n

kj

= dk , k ∈ M1

∑y
k =1

m1

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

294

Analita economico-matematică a unor modele liniare

Modelul liniar V.4.1 - V.4.6 admite soluţii dacă:

V.4.7

ai ≥ 0 ,

dk ≥ 0 ,

bj ≥ 0 ;

∑a = ∑d
i =1 i k =1

m

m1

k

= ∑bj ,
j =1

n

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)

∑x
k =1 m i =1

m1

ik

= ai , i ∈ M

∑y
j =1 m1

n

kj

= dk , k ∈ M1 = bj , j ∈ N

∑ xik = d k , k ∈ M 1
x ik ≥ 0 , i ∈ M , k ∈ M 1
[min] f 1 = ∑∑ c ik x ik
i =1 k =1 m m1

∑y
k =1

kj

y kj ≥ 0 , k ∈ M 1 , j ∈ N
[min] f 2 = ∑∑ p kj y kj
k =1 j =1 m1 n

ai ≥ 0 , d k ≥ 0

dk ≥ 0 , bj ≥ 0

∑ ai = ∑ d k
i =1 k =1

m

m1

∑d
k =1

m1

k

= ∑bj
j =1

n

295

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 procedeu prin care se urmăreşte:

(PB1)

şi (PB 2 ) ,

• 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 .

296

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 P1 9 P2 3
15 5 3 0 8 26 4

D2
7 9 6

D3
8 25 11 9 0 9 12 37 3 7

D4

C1 C 2
A

C 3 C 4 C 5f
1 3 4 9 1 23 3 23 0

D

34 15 48 0 20 48120 51

D1 D2

4 6 3 12 4 12

1 26 2 5 3 4 30

26 1 5 2 16 25 0 9 0 2 0 28 30 37 48 120

P3 8 P4 0
f

D3
D4
N

D

Reprezentând schematic soluţiile optime, după cum urmează,
C1
26 [min] f1 = 616
[min] f 2 = 138 Rute fictive folosite în variantele optime: (P4 , D1 )

P1
25

D1
9

C2 P2
3 15

D2
9

4

(P , D ) , (D , C ) (D , C )
4 3 3 5 4 5

C3
12 16

P3
8

48

D3
12

23 2 28

C4

P4
fictiv

D4

C5
fictiv

297

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
28

2

•C

5

30=2+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
P1 D1 D2 D3
9 25 48 15 51

T.V.4.3

Cj D
26 9 37 48 12 4 12 30 16 25

T.V.4.4

P2
15

P3
3

P4
8

f

C1

C2
26

C3
9

C 4 C 5f

Dk

12 20

23 23

2 28 30

D4 A → 34

B→

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.

298

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
P1 D1 D2 D3 D4
9 25

T.V.4.5

Cj D
26 9 37 48 12- θ

T.V.4.6

P2
15

P3
3+ θ

P4 8- θ
12

f

C1

C 2 C 3 C 4 C 5f
26 9

Dk

~
4 30 16 25

23

48- θ 51

θ
20

θ

~

2+ θ 30

~ ~

28- θ 23

A → 34 15

B → 12

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 realitate numai 25t.

12- θ

~

23

θ

~

2+ θ

28- θ

~ ~

θ = 12

~

299

Problema de transport

În final, rezultă soluţia:
T.V.4. 7 T.V.4.8

P1 D1 D2
9 3

P2
8 15

P3 P4
0

f

D
4 26

C1
1

C2
1 26

C3
3

C4
0

C 5f
Expediază tot ce primeşte.

11 5 0 9 6 2

4 9

6

1 9

4

0

Expediază tot ce primeşte. Primeşte 25t, expediază 23t şi rămâne cu un stoc de 2 unităţi. Primeşte 40t, expediază (12+4+16)t şi rămâne în stoc cu 8t.

D3 D4

7 25 8

11

9

0 37 12

3

5

5

1 23

0 14 0 16 23 30

3

7 40

0 48 8 20

4 12

3 4 30

2 16 25

3

A→

34

15

51

B→

12

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 ~ * = 25 − 2 x13 8t:
P1
P3
* x13 = 25

D3
* x 34 = 40

P1 P3
~ * = 40 − 8 x 34

D3
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:

∑ ai = ∑ d j > ∑ bk → Deoarece se cere mai puţin decât se oferă,
i =1 j =1 k =1

m

m1

n

diferenţa

∑ a − ∑b
i =1 i k =1

m

n

k

nu va fi expediată spre centrele intermediare.

300

Analita economico-matematică a unor modele liniare

∑ ai = ∑ d j < ∑ bk → Se recomandă satisfacerea cu priorităţi a cererilor
i =1 j =1 k =1

m

m1

n

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
trimestrul al II-lea, exprimată în h • Producţia planificată din fiecare produs, exprimată în număr de produse • Randamentul orar al utilajului U j relativ la produsul Pi

• a j , j = 1,3 • bi , i = 1,4 • wij , i = 1,4 , j = 1,3 • cij , i = 1,4 , j = 1,3

• Costul de producţie de la o unitate de produs Pi realizat pe utilajul U j

301

Problema de transport

Modelul matematic

Ui ai

Pj wij , cij xij bj

V.5.1

∑w
i =1

4

xij
ij

≤ a j , j = 1,3

Suma timpilor necesari pentru producerea reperelor pe utilajul U j nu trebuie să depăşească durata de timp disponibil. Suma unităţilor fizice din produsul Pi ce se prelucrează pe cele 3 utilaje trebuie să fie egală cu cantitatea necesară onorării contractelor.

V.5.2

∑ xij = bi , i = 1,4
j =1

3

V.5.3 xij ≥ 0 , i = 1,4 , j = 1,3 ; V.5.4 [min] f = ∑∑ cij xij .
i =1 j =1 4 3

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

302

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
6 80 20 20 2 160 2 200 540

U3
1.5 40 1.3 50 1.2 50 0.35 200 360

bi - producţia planificată
600 14900 11600 100000

P1
P2

P3
P4

5 20 1.2 80 3 32 1.3 64 180

a j - timpul disponibil
(î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
P1 P2
5 20 80 32 1.3 64 0 1.2 14400 3 0 0 180 ↓ 0 80 20

U2
6 0 20 0 2 160 2 200 1600 100000 540 ↓ 530 ↓ 30 50 0.35 200 50 40

U3
1.5 6000 1.3 500 1.2 10000 0 360 ↓ 200 ↓ 0

bi
600 → 0 14900 → 500 → 0 11600 → 1600 → 0 100000 → 0

P3 P4 aj

303

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

ui +

vj wij

= cij .

În acest caz se obţine sistemul simplu nedeterminat
u1 + u3 + v3 v v = 1 .5 , u 2 + 1 = 1 . 2 , u 2 + 3 = 1 .3 , 40 80 50 v v2 v = 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 ⎞ ⎟ , ∀i ∈ 1, n , α ∈ 1, m . Dacă toate Pasul 2 Se calculează ∆ ij = cij − ⎜ u i + ⎜ wij ⎟ ⎝ ⎠

aceste diferenţe sunt pozitive sau nule, soluţia este optimă. Pentru această problemă, matricea diferenţelor este 2.9 0 ⎞ ⎛ 3.9 ⎜ ⎟ 12.3 0 ⎟ ⎜ 0 . Aşadar, nu toate elementele acestei matrici sunt ⎜ 2.05 0 0 ⎟ ⎜ ⎟ ⎜ 0.065 0 − 1.01⎟ ⎝ ⎠ pozitive sau nule, deci soluţia găsită nu este optimă.

304

Analita economico-matematică a unor modele liniare

Trecem la îmbunătăţirea soluţiei. Se alege perechea de indici ( j , k ) după criteriul cunoscut
(i , j )

∆ jk = min{∆ ij | ∆ ij < 0}.

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 ),..., (ih , 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 ⎫ ⎪ ⎪ ⎬. − ⎪ wij ⎪ ⎩ ⎭

ρ = min ⎨ ( i , j )∈ℑ

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:
xi'h k = xih k − wih k w jjk x 'jk ,

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:
xi'h kl = xih kl + wih k w jjk x 'jk .

305

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 , ' x33 = x33 −

w33 ' 50 x 43 = 10000 − ⋅ 40000 = 0 , w42 200

' ' x 42 = x 42 − x 43 = 100000 − 40000 = 60000 ,

şi
' x32 = x32 +

w33 ' 50 x 42 = 1600 + ⋅ 40000 = 11600 . 200 w42
T.V.5.1

Noua soluţie este prezentată în tabelul de mai jos:
U1 P1 P2
5 20 80 32 64 0 1,2 14400 3 0 1,3 0 80 20 20 2 160 2 200 60000 11600 50 0 50 1,2 0 0,35 200 40000

U2
6 0 40

U3
1,5 6000 1,3 500

P3
P4

306

Analita economico-matematică a unor modele liniare

Să vedem dacă această soluţie este optimă. Sistemul u i + pentru indicii bazici este:
u1 + v3 v v = 1,5 , u 2 + 1 = 1,2 , u 2 + 3 = 1,3 , 40 80 50

vj wij

= cij

u3 +

v v2 v = 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,

0,375 0 ⎞ ⎛ 3,9 ⎜ ⎟ 2.2 0 ⎟ ⎜ 0 ≥0 ⇒ ⎜ 3,0875 0 1,2625 ⎟ ⎜ ⎟ ⎜ 1,075 0 0 ⎟ ⎝ ⎠ Analiza soluţiei optime:

soluţia optimă este cea prezentată în T.V.5.1.

Pi
P1 P2

Prod. planif. 6.000 14.900 11.600 100.000

Cerere onorată 6.000 14.900 11.600 100.000

Cerere neonorată 0 0 0 0

Uj
U1

Fond de timp disp. 180

Fond de timp utilizat

P3
P4

* x 21 = 180 80 * x32 x* U2 540 + 42 = 307,25 160 200 * * * x313 x 23 x 43 U3 360 + + = 360 40 50 200 [min] f = 8.425.400

307

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 ) .

308

Analita economico-matematică a unor modele liniare

Se urmăreşte aflarea valorilor z ij ∈{0,1} , i, j ∈{1,..., n} , supuse restricţiilor V.6.1 V.6.2

∑z
i =1 n

n

ij

= 1 , j = 1, n ,
= 1 , i = 1, n ,

∑z
j =1

ij

şi care corespund unei eficienţe maxime V.6.3 [opt ] f = ∑∑ xij ⋅ cij .
i =1 j =1 n n

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
[opt ]g = ∑1 ⋅ α i + ∑1 ⋅ β j
n n 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 .

309

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. (atribuit, afectat) vârfului y j dacă, prin cuplaj, (xi , y j )∈W . Se spune că xi ∈ A acoperă vârful y j ∈ B , sau xi este alocat Î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 ) =
(xi , y j )∈W

∑ v(x , y ) .
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).

310

Analita economico-matematică a unor modele liniare

5

D1 D2
4

C1 C2

D3
D4

7 8 6

C3
C4

D5

C5

Modelarea matematică
[min] f = 5 z11 + 5 z12 + 9 z13 + ... + 6 z 55 ⎧ z11 + z12 + z13 + z14 + z15 = 1 → α 1 ⎪ 5 ⎪ = 1 →α2 ∑ z2 j ⎪ j =1 ⎪ 5 ⎪ = 1 →α3 ∑ z3 j ⎪ j =1 ⎪ 5 ⎪ =1 →α4 ∑ z4 j ⎪ j =1 ⎪ 5 ⎪ = 1 →α5 ⎪ ∑ z5 j ⎪ j =1 ⎨ ⎪ z11 + z 21 + z 31 + z 41 + z 51 = 1 → β1 ⎪ 5 ⎪ = 1 → β2 ∑ zi 2 ⎪ i =1 ⎪ 5 ⎪ = 1 → β3 ∑ zi3 ⎪ i =1 ⎪ 5 ⎪ = 1 → β4 ∑ zi 4 ⎪ i =1 ⎪ 5 ⎪ = 1 → β5 ∑ zi5 ⎪ i =1 ⎩ z ij ∈ {0,1} , i ∈ 1, n, j ∈ 1, n
Model primal Model dual
5 5

[max] f = ∑ α i + ∑ β j
i =1 j =1

⎧α 1 + β1 ≤ 5 ⎪ ⎪α 1 + β 2 ≤ 5 ⎪α 1 + β 3 ≤ 9 ⎪ ⎨................. ⎪α + β ≤ c j ij ⎪ i ⎪................. ⎪ ⎩α 5 + β 5 ≤ 6

α i ∈ R , i ∈1, n β j ∈ R , j ∈1, n

311

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 pătratică de ordinul n =| A |=| B | , notată M = (mij )i , j =1,n , unde
⎧ vij , daca (xi , x j )∈U , dacă se cere [min] f . mij = ⎨ ⎩+ ∞ , daca (xi , x j )∉ U

În general, grafului simplu considerat i se asociază o matrice

În cazul studiat, matricea M va fi de forma ⎡5 ⎢6 ⎢ = ⎢5 ⎢ ⎢3 ⎢8 ⎣ 5 8 9 3⎤ 4 7 9 6⎥ ⎥ 3 3 7 4⎥ . ⎥ 7 8 4 8⎥ 2 6 6 6⎥ ⎦

M = (m ij )i , j =1,5

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 = (mij )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 ~ ~ M : β j = min (mij ) , ∀j ∈{1,..., n} . Vom numi matricea redusă matricea
i =1, n R ~ notată M , de element general mij = mij − β j . R

312

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 α1 = 3 ⎛2 2 ⎜ α2 = 4 ⎜2 0 ~ α3 = 3 ⇒ M = ⎜ 2 0 ⎜ α4 = 3 ⎜0 4 ⎜ α5 = 2 ⎝6 0 Pasul 2 β1 = 0 ⎛2 2 ⎜ β2 = 0 ⎜2 0 β3 = 0 ⇒ M R = ⎜ 2 0 ⎜ β4 = 1 ⎜0 4 ⎜ β5 = 0 ⎝6 0

6 3 0 5 4

5 5 4 1 4

0⎞ ⎟ 2⎟ 1⎟ ⎟ 5⎟ ⎟ 4⎠

6 3 0 5 4

4 4 3 0 3

0⎞ ⎟ 2⎟ 1⎟ ⎟ 5⎟ ⎟ 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 α2 = 4 α3 = 3 α4 = 3 α5 = 3

β1 = 0 ⇒ α1 + β1 = 3 < 5 = c11 β 2 = 0 ⇒ α 1 + β 2 = 3 < 5 = c12 β 3 = 0 ⇒ α1 + β 3 = 3 < 9 = c13 β 4 = 1 ⇒ α1 + β 4 = 4 < 8 = c14 β 5 = 0 ⇒ α1 + β 5 = 3 = c15 *

313

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:
g (α , β ) = ∑α i + ∑ β j = 16 ≤ [min] f .
i =1 j =1 5 5

Când egalitate.

∑α + ∑ β
i

j

este maximală, atunci relaţia se verifică cu

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
i R M R = mij

( )

i , j =1, n

,

unde

R mij = mij − (α i + β j ) ,

α i = min (mij ) ,
j

β j = min (mij − α 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.

314

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 R M = ⎜2 ⎜ ⎜0 ⎜6 ⎝ 2 6 4 0⎞ 0 ⎟ 1 linia 1: 0 3 4 2⎟ 0 2 linia 2: 0 0 3 1⎟ 0 ⎟ 3 linia 3: 4 5 0 5⎟ 0 4 linia 4: 0 4 3 4⎟ ⎠
R m15 = 0 încadrat

R R R m22 = 0 încadrat ⇒ m32 = m52 = 0 barat R m33 = 0 încadrat
R R m41 = 0 încadrat ⇒ m44 = 0 barat

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.

315

Problema de transport

În cazul problemei studiate, * ⎛2 ⎜ ⎜2 R M = ⎜2 ⎜ ⎜0 ⎜6 ⎝ 2 6 4 0⎞ ⎟ 0 3 4 2⎟ * 0 0 3 1⎟ ⎟ 4 5 0 5⎟ 0 4 3 4⎟ * ⎠
(a) se va marca linia 5; (b) se va marca coloana 2 (zero barat din linia 5, marcată, se află în coloana 2); (c) coloana 2, marcată, conţine un zero încadrat în linia 2 ⇒ linia 2 va fi marcată.

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.

316

Analita economico-matematică a unor modele liniare

Aici, T1
R mij ∈D1

:

R ε 1 = min (mij ) = 2 = m21 = m25 ;

R R R R R R R R D1 = m21 , m23 , m24 , m25 , m51 , m53 , m54 , m55 ;

{

}

R R R R R R R R R R R R R R T2 : D2 = m11 , m13 , m14 , m15 , m22 , m31 , m33 , m34 , m35 , m41 , m43 , m44 , m45 , m52 ;

T3: D3

{ = {m

R 12

R R , m32 , m42 .

}

}

⎛2 ⎜ ⎜0 R1 După efectuarea calculelor, se obţine: M = ⎜ 2 ⎜ ⎜0 ⎜4 ⎝

4 6 4 0⎞ ⎟ 0 1 2 0⎟ 2 0 3 1⎟ . ⎟ 6 5 0 5⎟ 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ă: ⎛2 ⎜ ⎜0 R1 M = ⎜2 ⎜ ⎜0 ⎜4 ⎝ 4 6 4 0⎞ ⎟ 0 1 2 0⎟ 2 0 3 1⎟ ⎟ 6 5 0 5⎟ 0 2 1 2⎟ ⎠
10 linia 1: m15 = 0 încadrat ⇒ m25 = 0 barat
R1 R1

20 linia 3: m33 = 0 încadrat
R1 R1
R1

30 linia 5: m52 = 0 încadrat ⇒ m22 = 0 barat
R1

40 linia 2: m21 = 0 încadrat ⇒ m41 = 0 barat
R1

50 linia 4: m44 = 0 încadrat
R1

317

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 D2
3 3 6

C1 C2

D3
4

C3
C4

D4

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.

( )

318

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. Se calculează matricea redusă M
R

ş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ă.

Există?

NU

DA

Se aplică procedeul de marcare a liniilor şi coloanelor; se stabileşte acoperirea minimală a matricei reduse.

STOP

Se modifică matricea.

319

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

320

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 ( i , j )∈W

∑c

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 :
R C R = cij

( )

i , j =1, n

R , unde cij = c'ij − min c'ij . i

321

Problema de transport

Spre exemplificare, vom aplica algoritmul lui Little pentru problema cu următoarele date:

Mj Li
C L1 L2 L3 L4 L5

M1
6 7 4 4 5 6

M2
7 1 5 5 5 4

M3
4 2 2 6 3 4

M4
2 6 7 3 7 3

M 5 M 6 αi
5 3 6 8 5 6 4 4 8 7 2 5 2 1 2 3 2 3 13

α i = min{cij }
j

L6

∑α
i =1

6

i

M j M1 M 2 M 3 M 4 Li
C' L1 L2 L3 L4 L5
4 8 2 1 3 3 1 5 0 3 2 3 1 0 2 1 0 3 1 1 0 0 5 5 0 5 0 0

M5
3 2 4 5 3 3 2

M6
2 3 6 4 0 2 0

∑β
j =1

6

j

L6
β j = min{c'ij }
i

βj

3

M j M1 M 2 Li CR
L1 L2 L3 L4 L5
3 7 1 0 2 2 5 0 3 2 3 1

M3 M4 M5 M6
2 1 0 3 1 1 0 5 5 0 5 0 1 0 2 3 1 1 2 3 6 4 0 2

L6

322

Analita economico-matematică a unor modele liniare

Etapa 2: Se construieşte nodul iniţial al arborescenţei, notat E şi se calculează marginea inferioară ω (E ) = ∑ α i + ∑ β j . Mărimea ω (E ) este
i =1 j =1 n n

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

R Etapa 3: Fiecărui element nul cij din matricea redusă i se asociază numărul R θ ij definit ca suma dintre cel mai mic element al liniei i fără cij şi cel mai R mic element al coloanei j fără cij : R R θ ij = min{cil } + min{c kj } . l≠ j k ≠i

Cuplul (k , l ) corespunzător valorii θ kl = max{θ ij } este ales astfel încât cuplajul maxim care nu conţine arcul (Lk , M j ) are valoarea cea mai mare. În cazul nostru,
R θ 14 = min{c1R } + min{c kR4 } = 1 + 0 , θ 41 = min{c 4l } + min{c kR1 } = 0 + 1 , l l≠4 k ≠1 l ≠1 k ≠4 R R θ 22 = min{c 2l } + min{c kR2 } = 0 + 1 , θ 414 = min{c4l } + min{ckR4 } = 0 + 0 , l≠2 k ≠2 l ≠4 k ≠4 i, j

θ 25 = min{c } + min{c } = 0 + 1 , θ 56 = min{c } + min{c kR6 } = 1 + 2 ,
l ≠5 R 2l k ≠2 R k5 l ≠6 R 5l k ≠5

θ 33 = min{c } + min{c } = 1 + 1 , θ 64 = min{c } + min{c kR4 } = 1 + 0 ,
l ≠3 R 3l k ≠3 R k3 l ≠4 R 6l k ≠6

max{θ ij } = max{ 14 ,θ 22 ,θ 25 ,θ 33 ,θ 41 ,θ 44 ,θ 56 ,θ 64 } = 3 = θ 56 . θ
i, j

323

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ă,

ω (E56 ) = 16 + 3 = 19
E ω (E ) = 16
Figura V.6.2

E56

M1 L1 L2

M2

M3

M4

M5

3 5 1 0 2

5 0 3 2 1

2 1 0 3 1

0 5 5 0 0

1 0 2 3 1

E56

L3

L4
L6

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).

324

Analita economico-matematică a unor modele liniare

b) Se

asociază
i≠k

vârfului
j ≠l

E kl

marginea

inferioară

ω (E kl ) = ω (E ) + ∑ α 'i + ∑ β ' j , unde α 'i , i ≠ k ,
ş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

325

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 ) = 16
E56 ω (E56 ) = 16

E

Figura V.6.3

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 ) .

326

Analita economico-matematică a unor modele liniare

Etapa 5: Se elimină linia L3 şi coloana M 3 :
T. V.6.1

M1 L1 L2 L4

M2

M4

M5
1 0 3 1

3 5 0 2

5 0 2 1

0 5 0 0

L6

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 θ

327

Problema de transport

Etapa 4:
E56 ω E56 = 19

( )

E33 ω (E33 ) = 18

E41 ω E41 = 18

( )

E
ω (E56 ) = 16
E56

ω (E33 ) = 16

E33

ω (E56 ) = 16

E56

Figura V.6.4

Etapa 5: Se elimină linia L4 şi coloana M 1 :
M2 L1 L2 M4

M5
1 0 1

5 0 1

0 5 0

L6

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 .

328

Analiza economico-matematică a unor modele liniare

Toate valorile θ ij sunt egale; în acest caz, se consideră un θ kl oarecare este ckl = min{cij } = min{c22 , c25 , c14 , c64 } = min{1,3,2,3} = 1 = c22 . sau acela pentru care adevărată relaţia:

Etapa 4:
ω (E56 ) = 18
E56

ω (E33 ) = 18

E33

ω (E41 ) = 18

E41

ω (E22 ) = 16 + θ 22 = 17

E22

E

ω (E56 ) = 16

E56

ω (E33 ) = 16

E33

E56 ω (E56 ) = 16

ω (E22 )

E22

Etapa 5: Eliminându-se linia 2 şi coloana 2 se obţine:

M4
L1
0 0

M5
1 1

L6

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 L1
0 0

M5
0 0

L6

329

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

ω (E56 ) = 18

E56

ω (E33 ) = 18

ω (E41 ) = 18

E41

ω (E22 ) = 17

E22

ω (E41 ) = 17

E41

ω (E ) = 16

E

ω (E56 ) = 16

E56

ω (E33 ) = 16

E33

E56 ω (E56 ) = 16

E22 ω (E22 ) = 17

E14

330

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 4

M3

L4

M4

L5

2

M5

L6

6

M6

331

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
j

(1)

⎛ ⎞ b j = min⎜ tij − min tij ⎟ i ⎝ j ⎠
n n

(2)

ω (E ) =

∑ a + ∑b
i i =1 j =1
j

j

(3)

' ' ' Pt. tij = 0 → θ ij = min tij' + min tij' , fără tij' = 0 i

θ kl = max θ ij

(4)

Ekl → Pkl Se suprimă linia k şi coloana l T1''

(5)

ω (Ekl ) = ω (E ) + θ kl

Ekl → Pkl

(6)

T1'' are câte un
zero pe fiecare linie şi coloană?

DA

(8)

ω (Ekl ) = ω (E )

(7)

n × n = 1× 1?
După proc. (1) se formează noi zerouri ω (Ekl ) = ω (E ) + ai + b j

DA

NU

∑ ∑
i j

ω (Ekl ) < ω (Ekl )
(3) DA

NU

' tij' = +∞ ⇒ se

formează noi zerouri

STOP

332

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 Mi
M1 M2

O1

O2
4 3

O3
7 5 8 3 9 9

O4
2 8 5

O5
6 5

O6
3


1 6 5 4 3


7 5 4 5

M3
M4


7


4 4


7 3

M5 M6


4

se cere să se determine palnificarea operaţiilor pe cele şase maşini, astfel încât timpul total de prelucrare să fie minim.

333

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 =1 α3 = 5 α4 = 3 α5 = 4 α6 = 3

⎛∞ 2 5 0 4 1 ⎞ ⎜ ⎟ ⎜ 0 2 4 7 4 ∞⎟ ~ ⎜1 ∞ 3 0 ∞ 2⎟ ⎟ T =⎜ ⎜2 4 0 ∞ 1 2⎟ ⎜0 ∞ 5 3 0 0⎟ ⎜ ⎟ ⎜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 β2 = 1 β3 = 0 β4 = 0 β5 = 0 β6 = 0

⎛∞ 1 5 0 4 1 ⎞ ⎜ ⎟ ⎜ 0 1 4 7 4 ∞⎟ ⎜1 ∞ 3 0 ∞ 2⎟ ⎟ TR =⎜ ⎜2 3 0 ∞ 1 2⎟ ⎜0 ∞ 5 3 0 0⎟ ⎜ ⎟ ⎜0 0 6 0 ∞ 2⎟ ⎝ ⎠

6 ⎛ 6 ⎞ Se reţine ⎜ ∑ α i + ∑ β j ⎟ = 19 ca margine inferioară a cuplajului ⎜ ⎟ j =1 ⎝ i =1 ⎠

maxim de valoare minimă.

334

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.

335

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⎟ ⎝ ⎠

336

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.

337

Problema de transport

Etapa 1: Matricea redusă a fost obţinută la etapa 1 a algoritmului KuhnTucker:

⎛∞ 1 5 0 4 ⎜ ⎜0 1 4 7 4 ⎜1 ∞ 3 0 ∞ TR =⎜ ⎜2 3 0 ∞ 1 ⎜0 ∞ 5 3 0 ⎜ ⎜0 0 6 0 ∞ ⎝
Etapa 2:
ω (E ) =

1⎞ ⎟ 8⎟ 2⎟ ⎟ 2⎟ 0⎟ ⎟ 2⎟ ⎠
⎜ ∑ min⎛ t ⎝
j =1 i n

∑ ∑
ai +
i =1 j =1

n

n

bj =


i =1

n

min tij +
j

ij

⎞ − min tij ⎟ = 2 + 1 + 5 + 3 + 4 + 3 + 1 = 19 . j ⎠

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 t 'iu ≠ t 'ij v t 'vj ≠ t 'ij

În cazul nostru, avem:

θ 14 = 1 + 0 = 1 θ 21 = 1 + 0 = 1

θ 55 = 0 + 1 = 1 θ 56 = 0 + 1 = 1 θ 61 = 0 + 0 = 0 θ 62 = 0 + 1 = 1 θ 63 = 0 + 0 = 0 .

θ 34 = 1 + 0 = 1 θ 43 = 1 + 3 = 4 θ 51 = 0 + 0 = 0

θ Rezultă că max{ 14 ,θ 21 ,θ 34 ,θ 43 ,θ 51 ,θ 55 ,θ 56 ,θ 61 ,θ 62 ,θ 63 } = θ 43 = 4 .

338

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 ) = 19

E

ω (E43 ) = 19
Etapa 6: Deoarece ω (E43 ) = 0 (matricea rămasă din T R , după ce tăiem

E 43

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 ⎜ ⎜0 1 4 7 4 ⎜1 ∞ 3 0 ∞ ⎜ ⎜2 3 0 ∞ 1 ⎜0 ∞ 5 3 0 ⎜ ⎜0 0 6 0 ∞ ⎝ 1⎞ ⎟ 8⎟ 2⎟ ⎟ 2⎟ 0⎟ ⎟ 2⎟ ⎠

Revenind la etapa 3, se calculează:

θ 14 = 1 + 0 = 1 θ 21 = 1 + 0 = 1

θ 55 = 0 + 4 = 4 θ 56 = 0 + 1 = 1 θ 61 = 0 + 0 = 0 θ 62 = 0 + 1 = 1 θ 63 = 0 + 0 = 0

θ 34 = 1 + 0 = 1 θ 51 = 0 + 0 = 0

339

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 ⎜ ⎜0 1 4 7 4 ⎜1 ∞ 3 0 ∞ ⎜ ⎜2 3 0 ∞ 1 ⎜0 ∞ 5 3 0 ⎜ ⎜0 0 6 0 ∞ ⎝

1⎞ ⎟ 8⎟ 2⎟ ⎟ 2⎟ 0⎟ ⎟ 2⎟ ⎠

Scăzând din elementele coloanei şase (cele netăiate) valoarea 1, se obţine matricea

⎛∞ 1 5 0 4 ⎜ ⎜0 1 4 7 4 ⎜1 ∞ 3 0 ∞ ⎜ ⎜2 3 0 ∞ 1 ⎜ ⎜0 ∞ 5 3 0 ⎜0 0 6 0 ∞ ⎝

0⎞ ⎟ 7⎟ 1⎟ ⎟. 2⎟ ⎟ 0⎟ 1⎟ ⎠

340

Analiza economico-matematică a unor modele liniare

Calculând mai departe, se obţin valorile:

θ 14 = 0 + 0 = 0

θ 34 = 1 + 0 = 1 θ 61 = 0 + 0 = 0 θ 62 = 0 + 1 = 1 θ 64 = 0 + 0 = 0

θ 16 = 1 + 0 = 1
θ 21 = 1 + 0 = 1
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 1 4 7 4 ⎜1 ∞ 3 0 ∞ ⎜ ⎜2 3 0 ∞ 1 ⎜0 ∞ 5 3 0 ⎜ ⎜0 0 6 0 ∞ ⎝ 0⎞ ⎟ 7⎟ 1⎟ ⎟ 2⎟ 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 .

341

Problema de transport

Corespunzător noii matrice, avem:

θ 21 = 1 + 0 = 1

θ 61 = 0 + 0 = 0 θ 62 = 0 + 1 = 1 θ 64 = 0 + 0 = 0

θ 34 = 1 + 0 = 1

⎧θ 21 ⎪ θ de unde max{ 21 ,θ 34 ,θ 61 ,θ 62 ,θ 64 } = 1 = ⎨θ 34 . ⎪θ ⎩ 62

ω (E21 ) = ω (E16 ) + θ 21 = 20 + 1 = 21 , ω (E21 ) = ω (E16 ) + ω (E21 ) = 20 ,
pentru că ω (E21 ) = 0 . Rezultă matricea ⎛∞ 1 5 0 4 ⎜ ⎜0 1 4 7 4 ⎜1 ∞ 3 0 ∞ ⎜ ⎜2 3 0 ∞ 1 ⎜0 ∞ 5 3 0 ⎜ ⎜0 0 6 0 ∞ ⎝ Calculăm iarăşi 0⎞ ⎟ 7⎟ 1⎟ ⎟ 2⎟ 0⎟ ⎟ 1⎟ ⎠

Alegem ca valoare maximă pe θ 21 şi atunci

θ 34 = ∞ ,

θ 62 = ∞ ,

θ 64 = 0 + 0 = 0 .

Alegem ca valoare maximă pe θ 34 şi găsim că

ω (E34 ) = ω (E21 ) + θ 34 = ∞ , ω (E34 ) = ω (E21 ) + ω (E34 ) = 20 ,

342

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 ) = 23
(23)
E43

ω (E55 ) = 23
(23)

E55

ω (E16 ) = 21
(23)

E16

(23)

ω (E21 ) = 21 ω (E ) = 23 34
(23)
E62

E21

E34

ω (E62 ) = 20
ω (E ) = 19
E

ω (E43 ) = 19 ω (E ) = 20 55

E43

E55

ω (E16 ) = 20 ω (E21 ) = 20 ω (E34 ) = 20

E16

E21

E34

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.

343

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.

344

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 ⎞ ⎢2 1 4⎥ , b = ⎜ 800 ⎟ , [max] f = 20 x1 + 16 x 2 + 17 x3 , A = ⎢ ⎟ ⎜ ⎥ ⎜ 900 ⎟ ⎢2 2 1 ⎥ ⎣ ⎦ ⎠ ⎝
B
−1

⎛1 1 − 3 / 2⎞ ⎜ ⎟ = ⎜ 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 ⎪ 3 x + 2 x ≤ 900 2 ⎩ 1 x j ≥ 0, ∀j ∈ 1,2 , semnificaţiile

345

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?

346

Analiza economico-matematică a unor modele liniare

Aliaje % plumb % zinc Preţul de cost pe un kg

A 20 80 6

B 30 70 4

C 10 90 8

D 60 40 3

Aliajul care trebuie obţinut 45 55 minim

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:
Utilaje Timp de prelucrare Materie primă Consum specific

R1
1 1

R2
0 1

R3
1 2

R1
0 2

R2
2 0

R3
1 1

U1 U2

M1 M2

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ţă.

347

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 ⎟ ⎝ ⎠ ~ = (32 25 35) . d) Reoptimizaţi după c
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 2 4 5 ⎩ 1 x j ≥ 0, ∀j ∈ 1,5

348

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

problemă şi două soluţii admisibile de bază U (1) şi U ( 2 ) pentru duala sa. Ce relaţie există între f X (1) g U ( 2 ) ? Justificaţi răspunsurile. b) Generaţi o soluţie dual realizabilă.

(

)

(

)

şi g U (1) ? Dar între f X (1)

( )

(

(X )
(1)

pentru această

)

(

)

şi

349

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 A Strunjire Găurire Şlefuire 25 28 35 B 40 35 25 2 3 A PR B PV A 5 6 B

CI 20 14 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 Maşină

S1
1 2 1 7

S2
4 1 1 4

Capacitate disponibilă 16 8 5

M1

M2 M3
Beneficiu unitar

350

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 M1 M2
70 40 1000

A2
50 100 1500

A3
20 40 2000

M3
Beneficiu pentru subansamblu

Observaţie: Căsuţele în care se găseşte “-“ arată că maşina Mi nu poate produce subansamblul A j .

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

351

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

X1
Materii prime Hidrogen Clor Azot 900

X2 P2
400

X3 P3

X4 P4
300

X5 P5
750 300

P1
2000

Disponibil zilnic (metri cubi)

150

250

14 ⋅ 10 4 ⋅ 10 16 ⋅ 10

Întreprinderea trebuie să folosească aceste materii prime cât mai productiv. Din aceste materii prime se pot fabrica următoarele produse:

352

Analiza economico-matematică a unor modele liniare

amoniac anhidric
ClNH 4 .

(NH 3 ) ,

acidul azotic

(HNO3 ) ,

NH 4 , NO3 , HCl ,

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 Calirea Reducerea Tăierea Valoarea producţie (mii lei/tonă) A 2 1 1 30 B 2 3 2 80 C 2 4 2 90 Fond de timp 40 48 45

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.

353

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 M1 M2
1 2 4 30

P2
3 5 1 20

P3
4 1 2 60

M3
Beneficiu unitar (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 stabilit la punctul a) dacă
1 c3 (α ) = 6 − α . 4 ⎛114 ⎞ ⎟ ~ ⎜ d) Să se stabilească S.O. dacă b = ⎜140 ⎟ . ⎜140 ⎟ ⎠ ⎝ 1 c1 (α ) = 3 + α 2 , c 2 (α ) = 2 + α ,

354

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 produs (motoare electrice) 2600CP 3100CP 3900CP 4500CP PV (mii lei/ bucată) 950 1150 1300 1350 C (mii lei/ bucată) 800 1000 1100 1200 W S (mii lei/ (mii lei/

Nr. crt. 1 2 3 4

a' v

P = Pv − C
(mii lei/ bucată) 150 150 200 150

($/ bucată) bucată) bucată) 800 1000 1200 1300 5000 5500 5250 4750 1000 1100 1150 1200

q (bucată)

x1 x2

x3
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 ;
W= P Q q ⋅ Pv = ⇒ N = v ⋅q . W N N

Se cere programul de producţie în aceste condiţii, pentru: a) Maximizarea profitului (P).

355

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 produs S:1 0,10 0,12 0,15 36 S:2 0,06 0,05 0,09 30 S:3 0,18 0,07 37 S:4 0,13 0,10 0,08 38

Piese A B C

Cerere Min 20 0 70 Max 200 100 180

Beneficiu unitar 10 12 15

Ore disponibile

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
T 2 6 5

P2
1 5 5

P3
5 3 4

F1 F2

356

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 + 3x3 + 4 x 4 + 2 x5 + 5 x6 ⎧ x1 + 2 x 2 + 3x3 + x 4 = 400 ⎪ ⎨2 x1 + x 2 + x3 + x5 = 200 ⎪3 x + 4 x + 2 x + x = 1000 2 3 6 ⎩ 1
x j ≥ 0, ∀j ∈ 1,6

a) Să se afle soluţia sa optimă. ⎛ b) Reoptimizare după c(α ) = ⎜1 + 2α 1 3 − α ⎝ pentru α ∈ [0,6] .
⎛1⎞ ~ ⎜ ⎟ c) Reoptimizare după P3 = ⎜ 2 ⎟ . ⎜1⎟ ⎝ ⎠

1 4+ α 2

25 − α

⎞ 5⎟ , ⎠

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.

357

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 Produsul A 3 Secţia 2 2 4 Secţia 4 2

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
D1 D2
6 10 6 5 500

C2
6 4 5 7 200

C3
10 6 3 7 400

C4
5 7 2 4 500

C5
4 8 5 6 400

D 200 800 400 600

D3
D4
N

358

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 U1 U2
5 7 3 15 10 20 30 7 15 28 2 10 9 22 49 4 6 3 15

S2
6

S3
10 14 24 50

U3

Să se determine varianta optimă de transport, sub aspectul preţului.

24. Să se rezolve următoarea problemă de transport:
Beneficiar FRB Furnizor SIRIA EGIPT CHINA CONGO Necesar 20.000 30.000 30.000 20.000 100.000 30.000 10.000 40.000 20.000 100.000 30.000 10.000 100.000 60.000 200.000 20.000 50.000 30.000 0 100.000 100.000 100.000 200.000 100.000 OLTENI SUCEAVA IAŞI Disponibil

359

Probleme propuse

25. Se consideră următoarea problemă de transport:
P1 D1 D2
2 6 6 500

P2
4 5 3 200

P3
3 5 1 300

P4
2 6 4 400

D 500 400 350 *

D3
N

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
4 5 3 200

P3
3 5 1 300

P4
2 6 4 400 1400

D 500 400 350 1250

D1
D2

2 6 6 500

D3
N

360

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
D1 D2
10 15 12 5

C2
20 7 14 20

C3
20 9 13 15

C4
11 20 18 30

Disponibil 15 25 30

D3
Necesar

361

BIBLIOGRAFIE
1. Arrow, K, L. Hurwicz, H. Uzawa, Berge, C. Ghouila – Houri, A. Boroş, E. Opriş D. Ciobanu, Gh. Nica, V. Mustaţă, F. Mărăcine, V. Ciucu, G. Craiu, V. Ştefănescu, A. Ciucu, G. Craiu, V. Ştefănescu, M. Ştefănescu, A. Charnes, A. Cooke, S. Slack, N. Dantzig, G.B. Orden, A. Wolfe, P. Dantzig, G.B. Studies in Linear and Non-Linear Programming, Stanford University Press, Stanford, 1958. Programmes, jeux ar réseaux de transport, Dunod, Paris, 1962. Introducere în optimizarea liniară şi aplicaţii, Editura Facla, Timişoara, 1979. Cercetări operaţionale cu aplicaţii în economie, Matrix Rom, Bucureşti, 1996.

2. 3. 4.

5.

Statistică matematică şi cercetări operaţionale, volumul II, Editura didactică şi pedagogică, Bucureşti, 1978. Statistică Matematică şi cercetări operaţionale, volumul III, Editura didactică şi pedagogică, Bucureşti, 1982. Optimality and degeneracy in linear Programming, Econometrica, 20, 2, 1952. Making Management Decision, Prentice Hall International UK Ltd, 1991. The Generalized Simplex for Minimizing a Linear Form under Linear Inequality Constraints, Pacific Journal of Mathematics, 5, 2, 1955. Linear Programming and Extensions, Princeton University Press, Princeton, 1963.

6.

7. 8. 9.

10.

362

11.

Dantzig, G.B

Applications et prolongements de la programmation linéaire, Dunod, Paris, 1966. The Theory of Linear Economic Models, McGraw - Hill Book Company, New York, 1960. Linear Programming. Methods and Applications, McGraw – Hill Book Company, New York, 1964 Linear Programming, Addison – Wesley, 1962. Introduction to Operational Research, McGraw - Hill Book Company, New York, 1990. Mathematical Methods and Theory in Games, Programming and Economics, Addison – Wesley, 1959 Metode şi modele ale cercetării operaţionale, volumul II, Editura tehnică, Bucureşti, 1967. Activity Analysis of Production and Allocation, Wiley, New York, 1951. Decizii optime, Editura Ştiinţifică, Bucureşti, 1970. Quantitative Methods for Business Decisions – with Cases, Harcourt Brace Jovanovich Publishers and its subsidiary, Academic Press, 1991. Quantitative Techniques, DP Publishers, 1992 Matematica Organizării, Editura tehnică, Bucureşti, 1975.

11.

Gale, D.

13.

Gass, S.I.

14. 15.

Hadley, G. Hillier, F.S. Lieberman, G.I. Karlin, S.

16.

17.

Kaufmann, A.

18. 19. 20.

Koopmans, T.C. Lange, O. Lapin, L.

21. 22.

Lucey, T. Maliţa, M. Zidăroiu, C.

363

23.

Mihoc, Gh. Nădejde, I. Mihoc, Gh. Ştefănescu, A. Nădejde, I. Bergthaller, C. Zidăroiu, C. Sburlan, S. Nica, V. Mustaţă, F. Ciobanu, Gh. Mărăcine, V. Preda, V. Bad, M. Render, B. Stair, R. Simmonard, M. Ştefănescu, A. Zidăroiu, C. Ţigănescu, E. Mustaţă, F. Nica, V. Marin, D. Zidăroiu, C. Zidăroiu, C.

Programarea matematică, Editura Ştiinţifică, Bucureşti, 1967. Programarea Matematică, Editura didactică şi pedagogică, Bucureşti, 1973. Probleme de cercetare operaţională, Editura Academiei, Bucureşti, 1971.

24.

25.

26.

Cercetări operaţionale, Matrix Rom, Bucureşti, 1998.

27.

Culegere de probleme de cercetări operaţionale, partea I, Tipografia Universităţii Bucureşti, 1978. Quantitative Analysis for Management, Allyn and Bacon Inc., Boston, 1988. Programmation linéaire, Dunod, Paris, 1972. Cercetări operaţionale, Editura didactică şi pedagogică, Bucureşti, 1981. Culegere de probleme pentru disciplina cercetări operaţionale cu aplicaţii în economie, Tipografia ASE, Bucureşti, 1988. Curs de cercetare operaţională, partea I, Tipografia Universităţii Bucureşti, 1978. Programare liniară, Editura tehnică, Bucureşti, 1983

28. 29. 30. 31.

32. 33.

364

Sign up to vote on this title
UsefulNot useful