You are on page 1of 38

CERCETRI OPERAIONALE I TEORIA DECIZIEI

CAPITOLUL 4
MODELUL PROBLEMEI DE PROGRAMARE LINIAR
Modelul problemei de programare liniar i are originea n domeniul
economic din necesitatea de a utiliza resursele ct mai eficient i obinerea unui
profit ct mai mare. Modelul matematic care st la baza rezolvrii problemei de
programare liniar ofer algoritmi care pot s determine modalitatea optim n care
trebuie utilizate resursele aflate la dispoziie pentru obinerea unor performane
maxime.
n cadrul acestui capitol sunt prezentai algoritmi de determinare a soluiei
optime pentru o astfel de problem, modalitatea n care acetia pot fi utilizai,
dar i o analiz a senzitivitii unor astfel de probleme care se refer la
reoptimizare sau la parametrizarea unui element al problemei.
4.1 Modelul matematic al problemei de programare liniar

Formularea problemei de optimizare (programare) liniar se poate face


considernd un exemplu din cadrul unei activiti economice.
S presupunem c o ntreprindere confecioneaz un numr de n tipuri de
produse pentru care se folosesc un numr de m tipuri de resurse (materii prime,
resurse financiare etc.).
Condiiile n care pot fi realizate aceste n tipuri de produse cu cele m tipuri
de resurse sunt urmtoarele:
1) bi este cantitatea de materie prim de tipul i, 1 i m, disponibil
pentru realizarea celor n tipuri de produse.
2) aij este cantitatea de materie prim de tipul i, 1 i m, necesar
producerii unei uniti de produs de tipul j, 1 j n.
3) xj, 1 j n, este numrul (cantitatea) de produse de tipul j care
urmeaz s fie determinat (necunoscut) pentru a fi confecionate. Cantitile din
fiecare tip de produs care trebuie confecionate vor fi determinate n funcie de
cantitile de materie prim de fiecare tip disponibile n stoc, de alte restricii sau
comenzi venite din partea beneficiarilor, dar i de obiectivul ca profitul obinut
n urma activitii de producie s fie maxim.
69

CERCETRI OPERAIONALE I TEORIA DECIZIEI

Cu notaiile de mai sus, restriciile referitoare la cantitatea de resurs de


fiecare tip care intr n compunerea celor n tipuri de produse se scrie astfel:
ai1 x1+ai2 x2+...+ain xn bi, 1 i m.

(4.1)

Numrul de produse de fiecare tip care trebuie confecionate xj, 1 j n,


trebuie s ndeplineasc condiia de nenegativitate
xj 0, 1 j n.

(4.2)

Notnd cu cj, beneficiul unitar adus de o unitate de produs de tipul j,


1 j n, beneficiul total pentru cele n tipuri de produse va fi:
n

c j x j

(4.3)

j 1

Problema care se pune este de a determina numrul (cantitatea) de produse


xj de tipul j, 1 j n, care trebuie confecionate astfel nct beneficiul total s
fie maxim.
Inegalitile (4.1) se numesc restriciile problemei de programare liniar,
iar (4.2) condiii de nenegativitate ale problemei.
Maximizarea funciei (4.3) sau n alte situaii minimizarea acesteia, adic
n

max (min) z =

c j x j ,
j 1

nseamn gsirea maximului sau minimului unei funcii numite funcie obiectiv
(funcie scop sau de eficien). Vom studia cazul n care aceast funcie este liniar.
Definiia 4.1 Se numete problem de optimizare (programare) liniar (LP)
un sistem de forma:
n

max
(
min
)
z

cj xj

j 1

(LP) a ij x j bi , 1 i m
j 1
x 0, 1 j n
j

70

(4.4)

CERCETRI OPERAIONALE I TEORIA DECIZIEI

Observaia 4.1 n locul semnului din cadrul restriciilor poate fi semnul =


sau , iar condiiile asupra lui xj pot fi de nepozitivitate (adic ) sau pot
lipsi (xj oarecare).
4.2 Forme ale problemelor de programare liniar

Sistemul (4.4) se poate scrie i n alt form numit forma matriceal, i anume:
max (min) z c T x

,
A x b
x 0

(4.5)

unde am notat cu A matricea sistemului de restricii, cu x vectorul coloan al


necunoscutelor, cu b vectorul coloan al termenilor liberi i cu c vectorul linie al
coeficienilor funciei obiectiv.
Funcia obiectiv se mai poate scrie i sub form de produsul scalar:
max (min) z = <x, c>.
Definiia 4.2 Spunem c o problem de programare liniar are forma standard
(LS), dac toate restriciile sunt ecuaii i toate variabilele sunt supuse condiiei de
nenegativitate. O problem de programare liniar n forma standard arat astfel:

m in (m ax ) z c T x

(LS) A x b
.
x 0

(4.6)

De cele mai multe ori o problem de programare liniar nu se afl n forma


standard, ns pentru a o putea rezolva aceasta trebuie adus la forma standard.
Propoziia 4.1 Pentru a aduce o problem de programare liniar aflat ntr-o
form general, adic n care funcia obiectiv trebuie minimizat sau
maximizat, n care restriciile pot fi egaliti sau inegaliti ( , ), iar n care
variabilele pot fi n orice situaie (negative, pozitive sau oarecare), la forma
standard se pot folosi urmtoarele transformri echivalente:

1) Restriciile date sub form de inegaliti

71

CERCETRI OPERAIONALE I TEORIA DECIZIEI

Ax b sau A x b
se pot transforma n egaliti prin adunarea sau scderea unor variabile x(e)
numite variabile ecart obinnd
A x+x(e) = b sau A x x(e) = b, unde x(e) 0.
2) O inecuaie i schimb semnul nmulind-o cu 1.
3) O ecuaie
Ax = b
se poate transforma n dou inegaliti echivalente cu ea, astfel:
A x b i A x b.
4) O variabil x supus condiiei de nepozitivitate (x 0) se poate
transforma n una supus condiiei de nenegativitate fcnd substituia
x' = x.
5) O variabil x asupra creia nu se pun condiii de semn se poate nlocui cu
dou variabile nenegative fcnd substituia
x = x' x ".
6) Are loc egalitatea: min z = max (z).
Exemplul 4.1 S se aduc la forma standard urmtoarea problem de
programare liniar:
min z x1 x2 3 x3
x 2 x
8
2
1
.
2
x1 3 x2
2 x x 2 x 1
2
3
1
x1 0 , x2 oarecare, x3 0

Rezolvare Vom face mai nti urmtoarele transformri:


variabila x2 fiind oarecare se nlocuiete cu diferena a dou variabile
nenegative: x2 = x4 x5;
72

CERCETRI OPERAIONALE I TEORIA DECIZIEI

x3 fiind negativ facem substituia x3 = x6, unde x6 este o variabil


nenegativ;
se introduc variabilele ecart x7 i x8 pentru a transforma cele dou
inegaliti n egaliti.
Obinem forma standard a problemei date:

min z x1 x 4 x5 3 x6
x 2 x 2 x
8
4
5
1
x7
2 .
x1 3 x4 3 x5
2 x x x 2 x
x8 1
4
5
6
1
xi 0 , i 1, 4, ...,8
Pentru a nelege modul de determinare a soluiei optime pentru o problem
de programare liniar vom prezenta metoda geometric de rezolvare care poate
fi aplicat numai pentru cazul n care avem doar dou variabile.
Exemplul 4.2 Fie urmtoarea problem de programare liniar:
max z x1 2 x 2
2 x x 2
1
2
.

1
x
x

2
1
x1 , x 2 0

S se determine valorile lui x1 i x2 pentru care se obine soluia optim a


problemei date.
Rezolvare Mulimea soluiilor restriciilor problemei date reprezint n planul
xOy nite semiplane determinate de ecuaiile dreptelor ataate sistemului de
restricii:

2 x1 x 2 2
.

x
x

1
1
2
Reprezentarea semiplanelor mulimilor de soluii corespunztoare celor
dou inecuaii precum i a condiiilor de nenegativitate sunt prezentate n figura
de mai jos, poligonul obinut prin intersecia acestora fiind mulimea soluiilor
admisibile.
73

CERCETRI OPERAIONALE I TEORIA DECIZIEI

x2

2
A(1/3, 4/3)
1

x1 x2 = 1

x1

x1 + 2 x2 = 2
2 x1 + x2=2

Figura nr. 4.1 Reprezentarea grafic a soluiilor corespunztoare restriciilor


Pentru a vedea unde i atinge maximul funcia z(x1, x2) = x1 + 2 x2, pentru
x1 i x2 n poligonul soluiilor posibile ale problemei, vom proceda n felul
urmtor:
se consider dreapta de ecuaie x1 + 2 x2 = 0;
se calculeaz distanele de la vrfurile poligonului soluiilor posibile
la dreapta x1 + 2 x2 = 0;
vrful pentru care se obine cea mai mare distan este punctul n care se
obine maximul funciei obiectiv.
Se vede c distana maxim la dreapta x1 + 2 x2 = 0 este din punctul A care
se afl la intersecia dreptelor x1 x 2 1 i 2 x1 x 2 2 .
Punctul lor de intersecie este A(1/3, 4/3) i deci maximul funciei obiectiv
va fi:
1
4
max z = 2 = 3.
3
3

74

CERCETRI OPERAIONALE I TEORIA DECIZIEI

4.3 Algoritmul simplex primal

Fie o problem de programare liniar n forma standard:


min z = cT x
A x = b, AMm,n(R)

x 0, x=(x1, x2, ..., xn)

(4.7)
(4.8)

Definiia 4.3 Se numete soluie a problemei (4.6) un vector x = (x1, x2, ..., xn) care
satisface relaia (4.7).
Definiia 4.4 Se numete soluie posibil a problemei (4.6) un vector x = (x1, x2, ..., xn)
care are toate componentele nenegative.
Definiia 4.5 Se numete soluie admisibil sau program al problemei (4.6) un
vector x = (x1, x2, ..., xn) care satisface relaiile (4.7) i (4.8).

Mulimea soluiilor admisibile sau programelor problemei (4.6) este:


P = {x Rn / A x = b, x 0},

(4.9)

adic o soluie este admisibil dac este soluie de baz i posibil.


Mulimea P este deci intersecia unui numr finit de semispaii din Rn, fiind
aadar un tronson.
Definiia 4.6 Fie z* = min {cT x / x P}.
Convenim s spunem c z* = + dac P = . Dac z* = + , spunem c
problema (4.6) are optim infinit.
O soluie admisibil x* P a problemei (4.6) pentru care are loc cT x* = z*
se numete soluie optim sau program optim.
Deci x* P este soluie optim dac i numai dac cT x* cT x, pentru orice
x P.

Vom presupune c matricea sistemului de restricii (4.7) AMm,n(R) are


rangul rang A = m, cu m n.
Definiia 4.7 Fie S = {a1, a2, , an} vectorii coloan ai matricei sistemului de
restricii A din relaia (4.7). Se numete baz orice submulime format din m
vectori liniar independeni din mulimea S.
75

CERCETRI OPERAIONALE I TEORIA DECIZIEI

Fie B = { a i1 , ai2 , , a im } S o baz a spaiului L(S). Vom nota cu


JB = {i 1, n / a i B} i JR = {j 1, n / a j B}.

(4.10)

Vectorii a i B se numesc vectori bazici, iar vectorii a j B se numesc


vectori nebazici.
Definiia 4.8 Se numete soluie de baz a problemei (4.6) un vector
x B= ( xi1 , xi2 , , xim ) corespunztor vectorilor bazici.

Algoritmul simplex primal const n construcia succesiv a unor soluii de


baz ale problemei (4.6) astfel nct fiecare nou soluie obinut s fie mai
bun dect precedenta.
Deoarece numrul soluiilor de baz este finit (punctele de extrem ale unui
tronson sunt finite), dintre soluiile de baz se rein numai cele admisibile i
dintre acestea pe cele care minimizeaz (maximizeaz) funcia obiectiv.
Acest algoritm ofer criterii care stabilesc dac o problem de programare
liniar nu admite soluie optim sau are optim infinit.
Vom face cteva precizri referitoare la justificarea acestui algoritm.
Fie B={ a i1 , ai2 , , a im } o baz oarecare. Atunci JB = {i1, i2,, im} i
JR = {1, 2, , n} \ JB = {j1, j2,, jn-m}.
Notm cu
xB = ( xi1 , xi2 , , xim )

(4.11)

variabilele corespunztoare vectorilor bazici i cu


xR = ( x j1 , x j2 , , x jmn )

(4.12)

variabilele corespunztoare vectorilor nebazici, iar cu


cB = ( ci1 , ci2 , , cim )

(4.13)

coeficienii funciei obiectiv corespunztori variabilelor din xB i cu


cR = ( c j1 , c j2 , , c jm n )
coeficienii funciei obiectiv corespunztori variabilelor din xR.
76

(4.14)

CERCETRI OPERAIONALE I TEORIA DECIZIEI

Cu aceste notaii, problema (4.6) se poate scrie n felul urmtor:

min ( max ) z c B x B c R x R

B
R
R
,
B x A x b
B
R
x 0, x 0

(4.15)

unde AR este matricea format cu vectorii nebazici ai matricei A.


B fiind baz, rezult c exist B1 i a doua relaie din (4.15) se poate scrie:
B1 B xB+ B1 AR xR = B1 b

(4.16)

i cum B1 B = Im, rezult c


xB = B1 AR xR+B1 b

(4.17)

i notnd x = B1 b i y Bj = B1 a j, unde a j este coloana j a matricei AR (j JR),


atunci egalitatea (4.17) devine:
B

xB = x

y Bj x j .

(4.18)

jJ R

Dac xR=0, rezult soluia de baz xB = x = B1 b.


Aceast soluie este admisibil dac este ndeplinit condiia:
xB = B1 b 0 .

(4.19)

Definiia 4.9 O baz B pentru care se verific relaia (4.19) se numete baz
primal admisibil.

Valoarea funciei obiectiv corespunztoare soluiei admisibile (4.19) este:


z=cB xB=cB B1 b.
Deci funcia obiectiv exprimat cu ajutorul variabilelor secundare devine:
z = cT x =

c j x j =
j 1

c j x j

jJ R

ci xi +

iJ B

c j x j =

jJ R

c
x
y
x
i i ij j +
iJ B
jJ R

jJ R iJ B

ci xiB ci yijB c j x j

iJ B

77

CERCETRI OPERAIONALE I TEORIA DECIZIEI

sau prescurtat
B

z= z

( z Bj c j ) x j ,

(4.20)

jJ R
B

unde z = ci xiB i z Bj =
iJ B

ci yijB .

iJ B

n continuare vom prezenta alte aspecte referitoare la justificarea


algoritmului folosit n ipoteza c se cere minimizarea funciei obiectiv:
1) Dac n relaia (4.20) avem

z Bj c j 0, ( ) j JR,
rezult c soluia admisibil este optim. Acest lucru are loc deoarece, dac
x = (x1, x2, ..., xn) este soluie admisibil, rezult c xi 0, ( ) i1,n i cum

z Bj c j 0, ( ) j JR, rezult c

( z Bj c j ) x j 0 ,

jJ R

adic
B

z0 = z

( z Bj c j ) x j z

, ( ) x = (x1, x2, ..., xn) P

(4.21)

jJ R

Se observ c minimul se obine dac xj = 0, ( ) j JR i rmne doar


soluia de baz xB care trebuie s fie admisibil.
Observaia 4.2 Relaia (4.21) justific motivul pentru care n algoritmul simplex
primal, atunci cnd alegem o baz, vom egala toate necunoscutele nebazice cu 0,
adic xj = 0, ( ) j JR. Acest lucru ne permite s determinm necunoscutele
bazice (sistemul rmas este un sistem Cramer) i s vedem dac baza aleas este
sau nu primal admisibil, adic dac xi 0, ( ) j JB.
Se procedeaz n acest fel deoarece, aa cum este specificat i mai nainte,
doar o soluie de baz xB care este i admisibil i pentru care avem xj = 0,
( ) j JR este o soluie optim.

78

CERCETRI OPERAIONALE I TEORIA DECIZIEI

2) Dac ( ) k JR pentru care

z kB ck > 0,
atunci soluia poate fi mbuntit dac xk ia valori pozitive, adic se obine o
soluie admisibil pentru care valoarea funciei obiectiv
z0 = z ( z k c k ) x k z

(4.22)

este mai bun (funcia obiectiv are valoare mai mic). Noua soluie admisibil
obinut nu este ns o soluie de baz avnd m+1 componente xi , i JB, i
xk , k JR.
Din relaia (4.22) observm c funcia obiectiv scade direct proporional cu
valoarea componentei xk, aceasta fiind determinat din relaia (4.18) scris pe
componente
B

xiB xi yikB xk , i J B .
Evident c una din componentele soluiei de baz xi , i JB, trebuie s
devin 0 pentru a putea s permit intrarea noii componente xk , k JR. n acest
fel se obine
B

x
xk i B , i J B
yik

(4.23)

cu yik > 0 pentru a asigura faptul c xk > 0, adic tot o soluie de baz admisibil.
n acelai timp trebuie ca i celelalte componente ale soluiei de baz s
rmn pozitive, acest lucru fiind posibil dac se alege

x
xl
min i
ylk iJ B yik

(4.24)

innd cont de relaia (4.22), valoarea funciei obiectiv va fi mai mic cu


(zk ck) xk
care devine innd cont de relaia (4.23)
xi
( z k ck ) .
yik

(4.25)
79

CERCETRI OPERAIONALE I TEORIA DECIZIEI

Ipoteza n care lucrm este c ( ) k JR, cu zk ck > 0, c o component a


soluiei de baz admisibile xi , i JB, devine 0 (ai va iei din baz), c xk , k JR,
devine o component a unei noi soluii de baz admisibile (ak va intra n noua
B

x
baz n locul lui a ) i va avea valoarea xk i B , cu yik > 0, iar funcia obiectiv
yik
i

se va micora cu

xi
( z k ck ) .
y ik

Pentru ca funcia obiectiv s descreasc cu o valoare ct mai mare trebuie


ca valoarea din relaia (4.25) s fie ct mai mare, aceasta fiind dat de produsul a
x
doi termeni: zk ck i i , fiecare din ei trebuind s fie ct mai mari.
yik
n acest sens vom alege k JR, cu zk ck>0 n care aceast valoare este ct
mai mare. Deci alegem
zk ck = max ( z Bj c j ),

(4.26)

jJ R

care maximizeaz aceast descretere stabilit n relaia (4.25).


Algoritmul simplex primal presupune parcurgerea urmtorilor pai:
Pasul 1: Se alege o baz primal admisibil B.
B

Pasul 2: Se calculeaz soluia de baz x i valoarea funciei obiectiv


B

corespunztoare z .
Pasul 3: Pentru fiecare j JR se determin valorile:

a) yijB , i JB astfel nct a j

yijB a i , j JR;

iJ B

b) z Bj c j , j JR.
Pasul 4: Se cerceteaz semnele diferenelor z j c j , j JR. Avem dou posibiliti:

a) Dac z j c j 0, ( ) j JR, nseamn c soluia admisibil este optim


i algoritmul se oprete.
b) Dac exist cel puin un indice j JR astfel nct z Bj c j > 0, atunci pot
s apar dou situaii:
80

CERCETRI OPERAIONALE I TEORIA DECIZIEI

1. Exist un j JR astfel nct yij 0, ( ) i JB. n acest caz funcia


obiectiv este nemrginit inferior pe P, problema nu are soluii i
algoritmul se oprete.
2. Pentru orice j JR pentru care z Bj c j > 0, exist cel puin un i JB
astfel nct yij > 0, caz n care se trece la pasul urmtor (soluia poate
fi mbuntit).
Pasul 5: Se stabilete vectorul care urmeaz s intre n baz innd cont de
relaia (4.26) (criteriul de intrare n baz):

zkB ck = max ( z Bj c j ).
jJ R

Pasul 6: Se stabilete vectorul care urmeaz s ias din baz innd cont de
relaia (4.24) (criteriul de ieire din baz):

x
xl
min i
ylk jJ B yik

, yik 0 .

Pasul 7: Se nlocuiete n baza primal admisibil B vectorul al cu ak obinnd o


~
nou baz primal admisibil B i se reiau operaiunile pornind de la pasul 2 cu

modificarea valorilor xi , z j c j i yijB dup relaiile:

xk

~
B

~
B
xl
yli
~
ylj
B
xl
B
x

y
, i l , (4.27)
, i
, ij yij yik
, ykj

i
ik
ylk
ylk
ylk
ylk

~
yij
B
xl
, x j c j ( z j c j ) ( z k ck )
.
z z ( z k ck )
ylk
ylk
~
B

(4.28)

Elementul ylk se numete pivot, iar o regul simpl de calcul a valorilor


modificate este urmtoarea:
1) elementele situate pe linia pivotului ylk se mpart la pivot;
2) se completeaz coloanele vectorilor bazici punnd 1 pe locul pe care
acestea l ocup n baz i 0 n rest;

81

CERCETRI OPERAIONALE I TEORIA DECIZIEI

3) celelalte elemente se calculeaz dup regula dreptunghiului astfel:


~

B
de exemplu pentru calculul elementului yij se face diferena produselor

de pe diagonalele (l) i (2), n aceast ordine, mprit la pivot:


yij

(1)

yik

elementul care trebuie nlocuit

ylj

(2)

ylk

pivot

Problemele de programare liniar se rezolv cu ajutorul unui tabel numit


tabel simplex n care se trec toate elementele la care am fcut referire anterior i
care are urmtoarea structur, n ipoteza c dup o rearanjare a coloanelor
matricei sistemului de restricii primele m coloane formeaz o baz primal
admisibil:

cB

a1
a2

c1
c2

x1
x2

.
.
.

.
.
.

.
.
.

al

cl

.
.
.

.
.
.

xl

am

cm

zj
zj cj

.
.
.

Tabelul nr. 4.1 Tabelul simplex


c1 c2 ..... cl ..... cm
cm+1 ...... ck ...... cn
1
2
l
m
a a ..... a ..... a
am+1 ...... ak ...... an
1
0

0 ..... 0 ..... 0
1 ..... 0 ..... 0

y1m+1
y2m+1

... y1k
... y2k

.
.
.

0 ..... 0 ..... 0

.
.
.

ylm+1

...

.
.
.

0 ..... 0 ..... 0

... y1n
... y2n

ylk

... yln

.
.
.

xm

ymm+1

...

ymk ... ymn

zm+1 ... zk ... zn


c1 c2 ..... cl ..... cm
0 0 ..... 0 ..... 0 zm+1 cm+1... zk ck ... zn cn

i
x1 / y1k
x2 / y2k
.
.
.

x l / ylk
.
.
.

x m / ymk

Observaia 4.3 n cazul n care se urmrete maximizarea funciei obiectiv


z = cT x se poate proceda n dou moduri:

1) Se modific criteriul de intrare n baz, i anume la pasul 4:


a) Dac z j c j 0, ( ) j JR, atunci soluia de baz admisibil este
optim i algoritmul se oprete.

82

CERCETRI OPERAIONALE I TEORIA DECIZIEI

b) Dac exist cel puin un indice j JR astfel nct z j c j < 0 se


determin k JR astfel nct:
zkB ck = min ( z Bj c j ).

(4.29)

jJ R

~
B

Criteriul de ieire din baz se pstreaz deoarece acesta asigur faptul c

x este o soluie de baz admisibil (att a componentei care intr prin condiia
yik > 0, ct i a celorlalte componente prin condiia l

x
xl
min i
ylk jJ B yik

, yik 0 ).

2) Se transform funcia obiectiv n minim, i anume max z = min (z),


dup care se aplic algoritmul pentru minim, dup care se revine la maximizarea
funciei obiectiv z.
Exemplul 4.3 S se determine soluia optim pentru urmtoarea problem de
programare liniar:
min z x1 x2 3 x3 5 x4
x x x x 1
2
3
4
1
2 .
x1 2 x2 3 x3
x x
3
2
1
xi 0 , i 1, 2, 3, 4

Rezolvare Mai nti se aduce problema la forma standard prin introducerea


variabilelor ecart x4, x5 i x6. Problema va avea urmtoarea form:
min z x1 x2 3 x3 5 x4
x x x x
1
2
3
4
1
x5
2.
x1 2 x2 3 x3
x x
x6 3
2
1
xi 0, i 1,...,6

83

CERCETRI OPERAIONALE I TEORIA DECIZIEI

Matricea sistemului de restricii este


a1 a2 a3 a4 a5 a6
1 1 1 1 0 0

A 1 2 3 0 1 0
1 1 0 0 0 1

Se alege B = {a4, a5, a6}, avnd n vedere c min {3, 6} = 3. Deoarece


1 0 0
0 1 0 1 0,
0 0 1
rezult c B este o baz i B1 = B i c JB = {4, 5, 6}, iar JR = {1, 2, 3}.
n continuare vom determina soluia de baz x4, x5, x6 nlocuind n sistemul
de restricii x1 = x2 = x3 = 0 (x1, x2 i x3 fiind soluii nebazice).
Gsim soluia de baz x4 = 1, x5 = 2 i x6 = 3. Cum toate componentele sunt
pozitive, rezult c soluia de baz este admisibil i n consecin B este o baz
primal admisibil.
Valorile yij se determin din relaia: a j =

y ji a i .

iJ B

De exemplu a1 = y14 a4+y15 a5+y16 a6, rezult c


1
1
0
0



y
y
y
1
0
1

14
15
16 0 ,
1
0
0
1




de unde vom obine y14 = 1, y15 = 1, y16 = 1.
n mod analog se determin coordonatele coloanelor a2 i a3:
a2 = y24 a4+y25 a5+y26 a6, de unde obinem y24 = 1, y25 = 2, y26 = 1;
a3 = y34 a4+y35 a5+y36 a6, de unde obinem y34 = 1, y35 = 3, y36 = 0.
Coordonatele coloanelor nebazice ale matricei restriciilor A coincid cu
componentele acestora, deoarece baza n raport cu care trebuie determinate
coordonatele coloanelor nebazice este baza canonic din R3.

84

CERCETRI OPERAIONALE I TEORIA DECIZIEI

n continuare determinm celelalte elemente:


z

ci xi 5 1 0 2 0 3 5 ,

iJ B

z 4B
z 5B
z 6B

ci y i 4 5 1 0 0 0 0 5 ;

iJ B

ci y i 5 5 0 0 1 0 0 0 ;

iJ B

ci y i 6 5 0 0 0 0 1 0 ,

iJ B

adic suma produselor dintre componentele bazice ale vectorilor x i c, respectiv


suma produselor dintre componentele bazice ale vectorului x i coordonatele
coloanelor matricei sistemului de restricii A.
Diferenele sunt
z1 c1 = 5 1 = 6, z2 c2 = 5 (1) = 6, z3 c3 = 5 (3) = 8,
z4 c4 = z5 c5 = z6 c6 =0.
Cu aceste date poate fi completat prima etap din tabelul simplex:
Tabelul nr. 4.2 Prima etap de rezolvare a problemei
5
0
0
1
1
3
B
B cB
4
5
6
1
2
x
a
a
a
a
a
a3
a4 5
1
1
0
0
1
1
1
5
a
0
2
0
1
0
1
2
3
6
a
0
3
0
0
1
1
1
0
5
5
0
0
5
5
5
zj
zj cj
0
0
0
6
6
8*

i
1/1
2/3*
-

Cum exist j JR pentru care z Bj c j > 0 i n consecin soluia de baz


admisibil nu este optim.
Deoarece pentru orice j JR pentru care z Bj c j > 0, exist yij > 0, nseamn
c soluia curent poate fi mbuntit.

85

CERCETRI OPERAIONALE I TEORIA DECIZIEI


B

B
Se alege k JR astfel nct z k ck = max ( z j c j ).
jJ R

Rezult k = 3 i deci a va intra n noua baz.

x
Se calculeaz i i se alege l astfel nct l min i , yik 0 .
jJ B y
ik
5
Rezult l = 5 i deci a va fi coloana care va iei din baz.
Cu aceste date vom parcurge cele 3 operaii care ne ajut s determinm
noile valori din tabelul simplex n raport cu noua baz, i anume:
1. elementele situate pe linia pivotului ylk se mpart la pivot;
2. se completeaz coloanele vectorilor bazici punnd 1 pe locul pe care
acestea l ocup n baz i 0 n rest;
3. celelalte elemente se calculeaz dup regula dreptunghiului astfel:
~
B

de exemplu pentru calculul elementului y ij se face diferena produselor de


pe diagonalele (l) i (2), n aceast ordine, mprit la pivot:
yij

(1)

yik

-elementul care trebuie nlocuit

ylj

(2)

ylk

-pivot

Aplicarea acestor operaii i a regulilor de schimbare a bazelor pentru


mbuntirea soluiilor de baz admisibile pn la obinerea soluiei optime duc
la succesiunea dat n tabelul de mai jos.
Tabelul nr. 4.3 Determinarea soluiei optime
5
a
1/3 1/3
0
4/3
1
5/3
3
a 3 2/3
1/3
1
1/3
1
2/3
6
a
0
3
0
0
1
1
1
1/3
5
8/3
0
23/3 31/3
zj
zj cj

0
8/3
0
26/3 34/3*
3/5
1/5
0
4/5
1
a2 1 1/5
3
2/5
1/5
0
1/5
0
a 3 4/5
6
0 16/5 3/5
1/5
1
1/5
0
a
13/5 9/5 2/5
0
7/5
1
zj
*
zj cj

34/5 2/5
0
2/5
0
4

86

0
1
0
3
0
0
1
0
3
0

1/5*

16*

CERCETRI OPERAIONALE I TEORIA DECIZIEI

a2
a3
a1

1
3
1

zj
zj cj

13
4
16
9

3
1
3
3
8

1
0
1
0
0

4
1
5
2
2

0
0
1
1
0

1
0
0
1
0

0
1
0
3
0

n final observm c toate diferenele z j c j sunt negative, ceea ce nseamn c


soluia corespunztoare ultimei baze este optim, aceasta fiind x = (16, 13, 4, 0, 0, 0),
iar valoarea funciei obiectiv corespunztoare acesteia este egal cu 9.
Exemplul 4.4 Prin efectuarea tragerilor asupra unui obiectiv cu dou tipuri de
proiectile, acesta poate suferi deteriorri.
Se cunoate c fiecare lovitur din primul tip de proiectile produce
obiectivului pagube n procent de 15 %, iar cu al doilea tip de proiectile pagube
n procent de 10 %.
S se stabileasc numrul de lovituri din fiecare tip de proiectile care
trebuie utilizate astfel nct pagubele provocate s fie ct mai mari, restriciile
asupra numrului de lovituri fiind date n problema de mai jos.
max z 15 x1 10 x2
x
3
1
.
x2 5

x x 7
1 2
x1 , x2 0

Rezolvare Pentru a aduce problema la forma standard se introduc variabilele


ecart x3, x4 i x5 i se obine:

min ( z ) 15 x1 10 x2

x3
3
x1

x2
x4
5
.

x5 7
x1 x2
xi 0, i 1, 2, 3, 4, 5

n continuare, vom ntocmi tabelul simplex, fr a mai specifica n detaliu


etapele de rezolvare pentru o astfel de problem. Avnd n vedere c funcia
87

CERCETRI OPERAIONALE I TEORIA DECIZIEI

obiectiv este de maxim, prima operaie pe care o vom aplica asupra acesteia este s o
transformm ntr-o funcie de minim.
Tabelul urmtor conine datele care ne conduc la soluia optim a
problemei de minim.
Tabelul nr. 4.4 Determinarea soluiei optime
15
10
0
0
0
B
cB
B
x
1
2
3
4
a
a
a
a
a5
0
3
1
0
1
0
0
a3
4
0
5
0
1
0
1
0
a
5
a
0
7
1
1
0
0
1
0
0
0
0
0
0
zj
zj cj

15*
10
0
0
0
3
1
0
1
0
0
a1 15
4
0
5
0
1
0
1
0
a
5
a
0
4
0
1
1
0
1
45
15
0
15
0
0
zj
*
zj cj

0
10
15
0
0
1
15
3
1
0
1
0
0
a
4
0
1
0
0
1
1
1
a
2
10
4
0
1
1
0
1
a
85
15
10
5
0
10
zj
zj cj

0
0
5
0
10

i
3*

5
4*

Soluia optim a problemei de minim este x1 = 3, x2 = 4, iar valoarea


funciei obiectiv este 85.
Avnd n vedere transformarea realizat asupra problemei de maxim din enun,
soluia optim a acesteia este x1 = 3, x2 = 4, iar valoarea funciei obiectiv este 85.
4.4 Metoda bazei artificiale

n cazul n care problema de programare liniar este n forma standard, dar


matricea A nu conine m vectori care s formeze o baz canonic, se poate construi
o baz artificial prin introducerea unor noi variabile, numite variabile artificiale,
cu ajutorul crora s se poat construi o baz canonic, aa cum se poate vedea mai
jos:
88

CERCETRI OPERAIONALE I TEORIA DECIZIEI

min ( max ) z c T x Wm x ( a )

(a)
,
A x Im x b

(a)
x 0, x 0

unde Wm = (w, w, , w) se numete vectorul penalizrilor avnd toate


componentele egale cu un numr pozitiv w suficient de mare, + sau fiind n
funcie de tipul funciei obiectiv, minim sau maxim.
n acest caz problema de programare liniar extins rezultat se rezolv n
dou etape:
Etapa 1 Pot s apar urmtoarele situaii:

a) S-au eliminat din baz toi vectorii artificiali i se trece la etapa a doua
de rezolvare, deoarece s-a obinut o soluie de baz admisibil fr
componente artificiale.
b) Nu s-au eliminat toi vectorii artificiali, dar soluiile de baz sunt nule i
sunt ndeplinite condiiile de optim. Aceasta nseamn c s-a obinut o
soluie de baz admisibil degenerat.
c) A rmas n baz un vector artificial cruia i corespunde o variabil strict
pozitiv i sunt verificate condiiile de nepozitivitate a diferenelor
z j c j . n acest caz problema nu are optim.
Etapa 2 Se continu algoritmul cu soluia de baz obinut la etapa 1 pn ce
toate cantitile z j c j sunt negative.
Exemplul 4.5 S se determine soluia optim pentru urmtoarea problem de
programare liniar:
max z x1 2 x 2 3 x3 x 4
x 2 x 3 x
15
1
2
3

20 .
2 x1 x 2 5 x3
x 2 x x x 10
1
2
3
4

xi 0, i 1, ...,4

89

CERCETRI OPERAIONALE I TEORIA DECIZIEI

Rezolvare Transformm problema dat ntr-o problem de minim i introducem

variabilele artificiale x5( a ) i x6( a ) .


n acest fel va rezulta problema de programare liniar de mai jos.
Aa cum se poate constata, variabilele artificiale se reflect i n funcia
obiectiv, iar n cazul n care nu se poate ajunge, prin schimbarea succesiv a
bazelor, la o baz primal admisibil care s nu mai depind de aceste variabile,
nseamn c problema dat nu admite soluie optim.
min ( z ) x1 2 x2 3 x3 x4 w ( x5( a ) x6( a ) )

x5( a )
15
x1 2 x2 3 x3

x6( a ) 20
.
2 x1 x2 5 x3
x 2 x x x
10
1
2
3
4

xi 0, i 1, ...,6

n continuare vom ntocmi tabelul simplex, fr a mai specifica n detaliu


etapele de rezolvare pentru o astfel de problem.
Tabelul de mai jos conine datele care ne conduc la soluia optim.

cB

a5
a6
a4

w
w
1
zj

Tabelul nr. 4.5 Determinarea soluiei optime


1
2
3
1
w
B
1
2
3
4
x
a
a
a
a
a5
3
1
0
2
1
15
5
0
0
1
2
20
1
0
1
2
1
10
35.w+10 3.w+1

3.w+2

zj cj

3.w+2

3.w+4

a5
a3
a4

3
4
6

1/5
2/5
3/5

7/5
1/5
9/5

w
3
1
zj

3.w6

zj cj

90

w3 7w6
5
5
w 2 7 w 16
5
5

8.w+1
8.w+4

w
a6
0
1
0

5
4*
10

0
1
0

0
0
1

1
0
0

3/5
1/5
1/5

15/7*
20
10/3

3w 4
5

8 w 4
5

CERCETRI OPERAIONALE I TEORIA DECIZIEI

a2
a3
a4

15/7
25/7
15/7

1/7
3/7
6/7

1
0
0

0
1
0

0
0
1

5/7
1/7
9/7

3/7
5/7
4/7

25/7
15/6*

zj

90/7

1/7

16/7

5/7

zj cj

6/7*

5/2
5/2
5/2

0
0
1

1
0
0

0
1
0

zj

15

1/6

1/2
7/6
0

zj cj

2
3
1

a2
a3
a1

2
3
1

w 16 7 w 5
7
7

9/14
1/2
1

1/3
3/7
2/3

9/7
9/7
w 18 w 9
14
7

5 5 5
Soluia problemei date este x B = , , , 0 , iar valoarea optim a
2 2 2
funciei obiectiv este 15.
4.5 Dualitatea n programarea liniar

Teoria dualitii n programarea liniar, a crei baz a fost pus de teoria de


minmax a lui John von Neumann, ocup un loc important att din punct de
vedere teoretic, ct i practic.
Definiia 4.10 Fie o problem de programare liniar dat sub forma standard:
n

min
z
cj xj

j 1

n
(P) aij x j bi , 1 i m .
j 1
x 0, 1 j n
j

91

CERCETRI OPERAIONALE I TEORIA DECIZIEI

Se numete problem de programare liniar dual (D) asociat problemei


primale (P) problema:
m

max z bi vi
i 1

m
(D) aij vi c j , 1 j n .
i 1
vi oarecare , 1 i m

Problemele (P)-(D) formeaz un cuplu de probleme duale.


Definiia 4.11 Duala unei probleme de programare liniar se construiete dup
urmtoarele reguli:
a) o problem de minimizare (maximizare) se transform ntr-o problem
de maximizare (minimizare);
b) termenii liberi din problema primal devin coeficienii funciei obiectiv
n problema dual, iar coeficienii funciei obiectiv din problema
primal devin termeni liberi n problema dual;
c) matricea coeficienilor sistemului de restricii din problema dual este
transpusa matricei coeficienilor sistemului de restricii din problema
primal;
d) variabilele duale (respectiv din problema primal) asociate unor
restricii din problema primal (respectiv din problema dual)
concordante sunt supuse condiiei de nenegativitate (condiii
concordante nseamn c dac problema este de minim, atunci
restriciile trebuie s fie , iar dac problema este de maxim, atunci
restriciile trebuie s fie );
e) variabilele duale (respectiv din problema primal) asociate unor
restricii din problema primal (respectiv din problema dual)
neconcordante sunt supuse condiiei de nepozitivitate;
f) variabilele duale (respectiv din problema primal) asociate unor
restricii din problema primal (respectiv din problema dual) care sunt
ecuaii nu sunt supuse restriciilor de semn.

92

CERCETRI OPERAIONALE I TEORIA DECIZIEI

Exemplul 4.6 S se scrie duala urmtoarei probleme de programare liniar:

min z x1 2 x2 2
2 x x 2 x 3

1
2
3
(P)
.
x
x
x

2
1
1
2
3

xi 0, i 1, 2, 3
Rezolvare Conform regulilor menionate anterior obinem urmtoarea problem
dual:
max z 3 v1 v 2
2 v v 1
2
1
(D) v1 2 v 2 2 .
v 3 v 2
2
1
v1 0 , v 2 0

Fie cuplul de probleme duale (P) i (D). Notm mulimea soluiilor


admisibile ale problemei (P) cu:
S = { x R n / A x = b, x 0},

(4.30)

iar mulimea soluiilor admisibile ale problemei duale


S* = { v R m / AT v c}.

(4.31)

Legtura dintre cele dou probleme de programare liniar este studiat n


cele ce urmeaz.
Propoziia 4.2 Oricare ar fi x S i v S*, avem <v, b> <x, c>.
Propoziia 4.3 Dac x0 S, v0 S* i < v0, b> = < x0, c>, atunci x0 este soluie
optim pentru problema (P) i v0 este soluie optim pentru problema (D).

Evident c, din propoziiile anterioare i din regulile de trecere la problema


dual, se poate constata c pentru a putea determina soluia optim a problemei
duale trebuie refcut parcursul invers de determinare a soluiei optime a
problemei primale, i n acest sens introducem o noiune care ne sugereaz
modul n care trebuie s ne imaginm determinarea soluiei optime cu algoritmul
simplex dual.
93

CERCETRI OPERAIONALE I TEORIA DECIZIEI

Definiia 4.12 O baz B a problemei (D) se numete dual admisibil dac sunt

satisfcute condiiile z j c j 0, ( ) j 1, 2, ..., n.


Definiia 4.13 O baz care este att primal admisibil, ct i dual admisibil se
numete baz optim a problemelor (P) i (D).

n continuare vom prezenta algoritmul simplex dual.


Acesta este util n momentul n care algoritmul simplex primal nu poate fi
aplicat, n sensul ca este dificil de gsit o baz primal admisibil.
4.6 Algoritmul simplex dual

Paii algoritmului sunt urmtorii:


Pasul 1 Se caut o baz dual admisibil B a problemei (D).
B

Pasul 2 Se calculeaz soluia de baz x i valoarea z .


Pentru fiecare j JR se determin valorile:

a) yijB , i JB astfel nct a j

yijB a i ;

iJ B

b) z Bj c j , j JR.
Pasul 3 Se cerceteaz semnele numerelor xiB , i J B .

a) Dac toate valorile xiB 0, i J B , atunci x este soluie optim a


B

problemei (D);
b) Dac exist cel puin un indice i JB astfel nct xiB < 0, atunci pot s
apar urmtoarele situaii:
b1) exist un i JB astfel nct yij 0, j J R . Atunci problema nu
are soluii i algoritmul se oprete;
b2) dac pentru orice i JB pentru care xiB < 0, exist cel puin un j
JR astfel nct yij < 0, atunci se trece la pasul urmtor.
Pasul 4 Se determin l JB din relaia:

xl = min {xi / xi < 0 i i JB}


care constituie criteriul de ieire din baz.
94

(4.32)

CERCETRI OPERAIONALE I TEORIA DECIZIEI

Pasul 5 Se determin indicele k JR din relaia:


z j c j

z k ck
min
/ j J R , ylj 0 ,
ylk
ylj

care constituie criteriul de intrare n baz.


~
Pasul 6 Se formeaz noua baz B i se trece la pasul 2 folosind aceleai reguli
de calcul ca la algoritmul simplex primal.
Exemplul 4.7 S se determine soluia optim, utiliznd algoritmul simplex dual,
pentru urmtoarea problem de programare liniar:
min z x1 2 x2 3 x3
x x x
7
1
2
3

x3 x 4
10 .
3 x1
x
2 x3
x5 15
1
xi 0 , i 1, ...,5

Rezolvare Pentru a putea obine o baz convenabil (canonic) nmulim fiecare


ecuaie cu 1 obinnd urmtoarea matrice a sistemului de restricii:

a1
1

A 3
1

a2 a3
1 1
0 1
0 2

a4
0
1
0

a5
0
.
0
1

1 0 0
Deoarece 0 1 0 1 0 , rezult c B = {a2, a4, a5} formeaz o baz i
0 0 1

B 1 = B.
Soluiile nebazice fiind
x1 = x3 = 0,
rezult c soluiile bazice sunt:
x2 = 7, x4 = 10 i x5 = 15.
95

CERCETRI OPERAIONALE I TEORIA DECIZIEI


B

Valorile z , yijB , zj i zj cj se determin n acelai mod ca la algoritmul


simplex primal.
Cum valorile

z Bj c j 0 , j J R ,
nseamn c baza aleas este dual admisibil i putem s iniiem determinarea
soluiei optime utiliznd algoritmul simplex dual.
Tabelul nr. 4.6 Prima etap de rezolvare a problemei
1
2
3
0
0
B
cB
B
x
1
2
3
4
a
a
a
a
a5
a2
1
2
1
7
1
0
0
a4
3
0
0
10
1
1
0
5
*
a
1
0
0
15
2
0
1
14
2
2
2
0
0
zj
zj cj

3
0
5
0
0
*
(zj cj) / ylj

5/2

Suntem n cazul b2) cnd pentru orice valoare xiB < 0 exist cel puin un
j JR astfel nct yij < 0.
Alegem min {7, 10, l5} = 15 corespunztor coloanei bazice a5, care ne
conduce la concluzia c a5 iese din baz.
Se determin valorile
=

zj cj
ylj

i se calculeaz

zk ck
5
5
= min {3, } = =
ylk
2
2

z3 c3
, de unde rezult c a3 intr n baz.
y53

Aplicarea operaiilor de la algoritmul simplex primal i a regulilor de


schimbare a bazelor specifice algoritmului simplex dual continu pn la
obinerea soluiei optime, succesiunea etapelor fiind dat n tabelul de mai jos.

96

CERCETRI OPERAIONALE I TEORIA DECIZIEI

Tabelul nr. 4.7 Determinarea soluiei optime


a
2
1/2 1
1/2
0
0
4
*
a
0
5/2 0
5/2
0
1
3
15/2
a
3
1/2 0
1
0
47/2
1/2
2
3
0
zj
zj cj

1/2
0
0
0
*
(zj cj)/ylj

1/5

2
a
2
1
0
1
0
1/5
1
a
1
1
1
0
0
2/5
3
a
3
7
0
0
1
1/5
24
zj
zj cj

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

Algoritmul se oprete deoarece toate valorile xi 0, soluia optim fiind


x1 = 1, x2 = 1 i x3 = 7, iar valoarea funciei obiectiv este 24.
4.7 Reoptimizri i parametrizri

Modelele de programare liniar studiate anterior sunt modele statice, adic


rezolv probleme n care condiiile sunt date n totalitate. De regul ns,
procesele, fie economice, militare etc., sunt dinamice i ca atare exist
posibilitatea modificrii unor anumite valori.
Reoptimizarea sau postoptimizarea const n recalcularea soluiei optime n
cazul n care se modific unele dintre condiiile iniiale. Scopul reoptimizrii
este de a folosi rezultatele anterioare pentru gsirea unei noi soluii optime
micornd astfel volumul calculelor fr a relua algoritmul de la nceput, ci
pornind din punctul n care s-a ajuns.
n cazul reoptimizrii pot s apar urmtoarele situaii:
1) modificarea vectorului b;
2) modificarea vectorului c;
3) modificarea elementelor matricei A (a liniilor sau coloanelor).
Vom analiza doar primele dou cazuri dintre acestea.
Cazul modificrii vectorului b
Fie problema de programare liniar (4.6):
min ( max ) z c T x

.
A x b
x 0

97

CERCETRI OPERAIONALE I TEORIA DECIZIEI

Pentru problema dat fie x B 1 b soluia optim asociat bazei B .


x i a altei valori a
Modificarea vectorului b duce la obinerea altei valori ~
~
funciei obiectiv ~z , adic ~x B 1 b .
Pot s apar urmtoarele situaii pentru noua soluie:
x 0 ),
a) Este optim dac toate componentele soluiei sunt nenegative ( ~
iar valoarea funciei obiectiv va fi z = cT ~
x;
B

x conine i componente negative. n acest caz ~


x nu este optim,
b) Soluia ~
dar este dual admisibil i se poate aplica algoritmul simplex dual. Pentru
rezolvare, n tabelul simplex final se introduce n coloana termenilor
liberi noile valori ale vectorului b i se aplic algoritmul simplex dual.
Cazul modificrii vectorului c

Presupunem c dup rezolvarea unei probleme de programare liniar se


produc modificri asupra vectorului c. n acest caz soluia ~x B 1 b rmne
nemodificat, dar se modific diferenele zj cj i este posibil s nu se mai
pstreze semnul acestora, deci s se modifice criteriul de optim. Pot s apar
deci urmtoarele situaii:
a) Modificarea lui c pstreaz semnul diferenelor zj cj (criteriul de
optim), deci i noua soluie va fi optim.
b) Cel puin una dintre diferenele zj cj, corespunztoare unei diferene ce
nu aparine bazei are semnul schimbat (criteriul de optim nu mai este
satisfcut) i n acest caz se continu optimizarea ei cu algoritmul
simplex primal.
Parametrizarea const n determinarea variantelor posibile de soluii
optime n cazul n care unii coeficieni ai problemei de programare liniar
variaz liniar sau neliniar.
Ca i n cazul reoptimizrii, n cazul parametrizrii pot s apar urmtoarele
situaii:
1) parametrizarea vectorului b;
2) parametrizarea vectorului c;
3) parametrizarea elementelor matricei A (a liniilor sau coloanelor).
i n acest caz ne vom ocupa de primele dou situaii, variaia considerat
fiind doar cea liniar.

98

CERCETRI OPERAIONALE I TEORIA DECIZIEI

Parametrizarea liniar a vectorului b

Considerm problema de programare liniar:


min (max) z c T x

.
A x b( )
x 0

n acest caz se rezolv problema pentru o valoare particular a lui (de


regul =0) i n acest caz soluia problemei asociat bazei B este:

x B B 1 b ,
deoarece nu intervine n valorile zj cj, soluia va fi optim pentru toate valorile
lui pentru care ~
x ( ) 0 . n acest fel obinem un interval 1 , 2 pentru care
baza B este optim. n cazul n care nu aparine intervalului, cel puin una din
x ( ) este negativ i deci trebuie aplicat algoritmul simplex
componentele lui ~
dual. Aplicnd acest algoritm, dup un numr de iteraii se va mpri axa real
n intervale, fiecrui interval fiindu-i asociat o baz optim.
Parametrizarea liniar a vectorului c

Considerm problema de programare liniar:


min (max) z c T x

.
A x b
x 0

n acest caz se rezolv problema pentru o valoare particular a lui (de


regul = 0), dup care se recalculeaz diferenele zj cj din tabelul simplex
(care depind de ). Cum parametrul nu intervine n soluia x , aceasta va fi
soluia optim pentru acele valori ale lui care ndeplinesc criteriul de
optimalitate, adic z j c j 0 (pentru problema de maxim) i respectiv
z j c j 0 (pentru problema de minim). Prin urmare se va obine un

interval 1 , 2 pentru care x este optim. Cnd nu aparine acestui interval,


cel puin una din diferene este negativ i continu rezolvarea problemei cu
99

CERCETRI OPERAIONALE I TEORIA DECIZIEI

algoritmul simplex primal. Se vor obine intervale ale dreptei reale, fiecrui
interval corespunzndu-i cte o soluie optim a problemei.
Exemplul 4.8 ntr-o aplicaie militar, dou tipuri de armament A1 i A2 se pot
transporta pe trei categorii de mijloace de transport T1, T2 i T3. Numrul de
uniti din fiecare tip de armament A1 i A2 este limitat, iar folosirea fiecrei
categorii de mijloc de transport aduce o economie n carburani, pre al pieselor
etc. exprimate n uniti valorice date n tabelul de mai jos:

Tabelul nr. 4.8 Datele problemei


T1
T2
T3
b
A1
2
2
2
20
A2
3
2
1
18
Economie
3
5
4
Cunoscnd c numrul mijloacelor de transport T1 nu poate s depeasc
25 % din totalul mijloacelor de transport, se cere:
a) s se determine numrul de mijloace de transport astfel nct economia
realizat s fie maxim;
b) n cazul n care numrul categoriilor de armament A1 se reduce la
maximum 16 uniti, s se reoptimizeze problema dat;
c) presupunnd c economia realizat prin folosirea lui T1 poate fi mrit la
7 uniti valorice, s se reoptimizeze problema iniial;
d) exist posibilitatea de a mri continuu numrul pieselor din categoria de
armament A1 cu 0 . S se afle economia maxim ce se poate realiza n
funcie de i s se deduc valoarea cea mai convenabil pentru .
Rezolvare Problema de programare liniar ataat are urmtoarea form:

max z 3 x1 5 x2 4 x3

2 x1 2 x2 2 x3 20

.
3 x1 2 x2 x3 18

25
x1
x1 x2 x3
100

xi 0, i 1, 2, 3

100

CERCETRI OPERAIONALE I TEORIA DECIZIEI

Forma standard a acestei probleme este:


min ( z ) 3 x1 5 x2 4 x3

20
2 x1 2 x2 2 x3 x4

x5
18 .
3 x1 2 x2 x3
3 x x x
x6 0
2
3
1
xi 0 , i 1, 6
a) Pornim la rezolvarea primului punct al problemei, mai jos fiind ntocmit
tabelul simplex de determinare a soluiei optime:
Tabelul nr. 4.9 Determinarea soluiei optime pentru punctul a)
3
5
4
0
0
0
B
cB
B
1
2
3
4
5
x
a
a
a
a
a
a6
a4
0
20
2
2
2
1
0
0
5
a
0
18
3
2
1
0
1
0
6
a
0
0
3
1
1
0
0
1
0
0
0
0
0
0
0
zj
zj cj

3
5*
4
0
0
0
4
1
1
1
0
a
0
2
1
0
2
1/2
0
1/2
0
a
5
9
3/2
1
6
1/2
0
1/2
1
a
0
9
9/2
0
45
15/2
5
5/2
0
5/2
0
zj
*
9/2
zj cj
0
3/2
0
5/2
0
3
a
4
2
1
0
1
1
1
0
2
a
5
8
2
1
0
1/2
1
0
6
a
0
10
4
0
0
1/2
0
1
48
6
5
4
3/2
1
0
zj
zj cj

3
0
0
3/2
1

i
10
9*

2
18

Valoarea maxim a funciei obiectiv este 48, iar soluia optim este x1 = 0,
x2 = 8 i x3 = 2.
Deci pentru a obine o economie maxim de carburani, se impune folosirea
mijloacelor de transport de tipul T2 n numr de 8 i a celor de tipul T3 n numr de 2.
b) Prin modificarea vectorului b se calculeaz valoarea
101

CERCETRI OPERAIONALE I TEORIA DECIZIEI

1 1 0 16 2

~
~
x B 1 b = 1 / 2 1 0 18 10 .
1 / 2 0 1 0 8

x are i componente negative, soluia nu este optim i se


Deoarece ~
efectueaz reoptimizarea continund cu algoritmul simplex dual plecnd de la
B
x.
ultima etap a tabelului nr. 4.9, nlocuind valorile din coloana x cu cele ale lui ~
Tabelul nr. 4.10 Determinarea soluiei optime pentru punctul b)
3
5
4
0
0
0
B
cB
B
1
2
3
4
5
x
a
a
a
a
a
a6
a3
1
4
0
2*
1
1
1
0
2
a
2
5
1
10
0
1/2
1
0
6
a
4
0
0
8
0
1/2
0
1
0
32
6
5
4
3/2
1
zj
0

3
0
0
3/2
1
zj cj
(zj cj)/ylj
a5
0
2
a
5
6
a
0
zj
zj cj

2
8
8
40

3
1
1
4
5
2

0
1
0
5
0

1
1
0
5
1

1
1/2
1/2
5/2
5/2

1*
1
0
0
0
0

0
0
1
0
0

Soluia optim n acest caz este: x1 = 0, x2 = 8 i x3 = 0 pentru care se obine


valoarea maxim a funciei obiectiv (economia realizat) de 40 de uniti valorice.
c) Pentru aceast reoptimizare se pleac de la ultima etap a tabelului nr. 4.9
nlocuind coeficientul c1 cu 7, deoarece diferena zj cj devine negativ. Se va
folosi algoritmul simplex primal deoarece baza este primal admisibil.
Tabelul nr. 4.11 Determinarea soluiei optime pentru punctul c)
7
5
4
0
0
0
B
i
cB
B
1
2
3
4
5
x
a
a
a
a
a
a6
1
a3

4
2
0
1
1
1
0
2
2
a
4
5
8
1
0
1/2
1
0
6
4
a
5/2*
0
10
0
0
1/2
0
1
48
6
5
4
3/2
1
0

zj
*

zj cj

1
0
0
3/2
1
0
102

CERCETRI OPERAIONALE I TEORIA DECIZIEI

a3
a2
a1

4
5
7

9/2
3
5/2
101/2

zj
zj cj

0
0
1
7
0

0
1
0
5
0

1
0
0
4
0

9/8
3/4
1/8
3/2
3/2

1
1
0
1
1

1/4
1/2
1/4
1/2
1/2

Valoarea optim este 101/2, iar soluia optim este: x1 = 5/2, x2 = 3 i x3 = 9/2.
d) Parametrizarea problemei se face pentru cazul cnd vectorul b este o
funcie liniar de parametru . Pentru nceput calculm valoarea lui x B ( ) :

2
1 1 0 20

16
1
.
x B ( ) = B b( ) = 1 / 2 1 0 18
2

1/ 2
0 1 0

20

Componentele lui x B ( ) sunt pozitive pentru [2, l6], dar cum este
doar pozitiv, rezult c [0, 16]. Pentru acest interval soluia optim va fi x1 = 0,
16
96 3
x2 =
i x3 = 2 + , iar valoarea optim zmax =
.
2
2
n cazul n care [0, 16] componenta a doua devine negativ i se aplic,
pentru rezolvare, algoritmul simplex dual, pornind de la ultima etap a tabelului nr. 4.9.
Tabelul nr. 4.11 Determinarea soluiei optime pentru punctul d)
3
5
4
0
0
0
B
cB
B
1
2
3
4
5
x
a
a
a
a
a
a6
a3
a

a6

0
zj

zj cj
(zj cj)/ylj

2+
16
2
20
2
96 3
2

1/2

1/2

3/2

3/2
3*

103

CERCETRI OPERAIONALE I TEORIA DECIZIEI

a3
a4
a6

4
0
0

zj
zj cj

18
16+
18
72

3
4
6
12
9

2
2
1
8
3

1
0
0
4
0

0
1
0
0
0

1
2
1
4
4

0
0
1
0
0

Soluia optim este x1 = 0, x2 = 0 i x3 = 18, iar pentru orice 16 , valoarea


maxim a funciei obiectiv este de 72 uniti valorice. Se observ c
influeneaz valoarea maxim numai dac [0,16], pentru acest ultim caz
valoarea maxim nedepinznd de .
Probleme propuse

1. S se rezolve geometric urmtoarele probleme de programare liniar:


max z x1 x2
x x 2
1
2

a) x1 3 x2 6 , b)
2 x x 4
2
1
x1 , x2 0

max z x1 2 x2
2 x x 2
2
1
x1 x2 1 , c)
x 2 x 0
2
1
x1 , x2 0

max 2 x1 3 x2
2 x x 5

1
2
.

x
x
2
10

1
2

x1 , x2 0

2. S se aduc la forma standard urmtoarele probleme de programare liniar:


max (3 x1 5 x2 4 x3 )

x1 2 x2 x3 2

a) 2 x1 x2 2 x3 6 , b)
3 x x 3 x 4
1
2
3

x1 0, x2 R, x3 0

min (3 x1 2 x2 4 x3 )
2 x x x 3
1
2
3

x1 2 x2 x3 7 .

3 x x 2 x 5
1
2
3

x1 , x2 , x3 0

3. S se scrie dualele urmtoarelor probleme de programare liniar:

min (3 x1 2 x 2 4 x3 )
2 x x x 3
1
2
3

x1 2 x 2 x3 7 , b)
a)
3 x x 2 x 5
1
2
3

x1 , x 2 , x3 0
104

max (3 x1 2 x2 4 x3 )

x1 x2 x3 6

x1 x2 4 x3 1 .

3 x 2 x 2 x 4
1
2
3

x1 0, x2 R, x3 0

CERCETRI OPERAIONALE I TEORIA DECIZIEI

4. S se rezolve problemele de programare liniar de mai jos folosind algoritmul


simplex primal sau dual:

max z 10 x1 15 x2
2 x 4 x 40
1
2
a)
,
6

60
x
x
2
1
x1 , x2 0

min z 2 x1 x2 x3 x4

x1 x2 2 x3 - x4 2

6 ;
b) 2 x1 x2 3 x3
x x x x 7
2
3
4
1
xi 0, i 1, 4

max z 4 x1 2 x2 9 x3 11 x4
3 x 2 x 5 x 7 x 3
1
2
3
4
c)
.
2

5
x
x
x
x
2
3
4
1
x 0, i 1, 4
i
5. O unitate de lupt mecanizat trebuie dotat cu trei tipuri de mijloace de lupt
mobile M1, M2 i M3 pe care se pot instala trei tipuri de armament care folosesc
muniie de tipul L1, L2 i L3.
Dotarea fiecrui mijloc de lupt cu categoriile de muniii specificate
precum i preul unitar este dat de urmtorul tabel:
Mijloace
Muniie
L1
L2
L3
Pre

M1

M2

M3

1
1
2
2

1
0
2
1

0
1
1
3

Se cere s se determine cantitatea din fiecare mijloc de lupt astfel nct n


total s fie utilizate cel puin 30 de uniti de muniie de tipul L1, 20 de uniti de
muniie de tipul L2 i 10 uniti de muniie de tipul L3, iar preul total al
mijloacelor de lupt s fie minim.
6. Pentru decontaminarea tehnicii de lupt se pot folosi 3 tipuri de recipieni R1,
R2 i R3 care conin n proporii diferite substanele S1, S2 i S3, precum i o
substan coroziv S4 n proporiile indicate n tabelul de mai jos. Mai trebuie
105

CERCETRI OPERAIONALE I TEORIA DECIZIEI

avut n vedere i faptul c pentru realizarea decontaminrii trebuie asigurat un


minim de cantitate din fiecare dintre substanele S1, S2 i S3.
Recipieni
Substane
S1
S2
S3
Substana S4

R1

R2

R3

3
2
1
5

2
1
3
4

1
2
2
7

Necesar minim
24
30
40
-

S se determine modalitatea optim de utilizare a celor trei recipieni astfel


nct cantitatea total de substan coroziv S4 s fie n cantiti ct mai mici.
7. La dotarea a trei mijloace de lupt M1, M2, M3 se pot folosi dou tipuri de
armament al cror numr total este limitat. Fiecare mijloc de lupt are un anumit
efect de distrugere exprimat n uniti valorice, datele problemei fiind trecute n
tabelul de mai jos:
Mijloace
Armament
A1
A2
Efect

M1

M2

M3

2
1
1,5

3
2
4

2
3
3

15
12
-

Numrul total al mijloacelor de lupt trebuie s fie de cel mult 8. Se cere:


a) Stabilirea numrului optim de mijloace de lupt ce pot fi folosite astfel
nct eficiena total s fie maxim.
b) S se reoptimizeze problema dac se obine o suplimentare a lui A1 cu 5
uniti.
c) S se reoptimizeze problema dac printr-o anumit modalitate poate
crete eficiena lui M1 de dou ori.
d) Exist posibilitatea de a crete numrul A1 cu o valoare 0 uniti.
Cum variaz eficiena total maxim n funcie de i care este cea mai
convenabil suplimentare a numrului A1.

106

You might also like