Sunteți pe pagina 1din 21

Programare liniar

Programare liniar
Programarea liniar este un capitol important al cercetrilor operaionale, cu o
larg aplicare n practica de zi cu zi, dar mai ales n economie.Vom ilustra cteva
direcii de aplicare ale programrii liniare in activitatea productiv.
A. Problema utilizrii optime a unor resurse
Se urmrete producerea reperelor
R1,R2,Rn
n fabricarea crora se utilizeaz materiile prime (resursele)
E1,E2,.Em (resursele mai pot fi: disponibil de for de munc, disponibil de
capital, energie).
Resursele sunt disponibile n cantiti limitate; asfel din resursa Ej dispunem
de o cantitate maxim bj, cunoscut n prealabil.
Se mai cunosc:
- consumurile tehnologice: i = 1, n i j= 1, m aij 0 este cantitatea din
resursa Ej ce se consum pentru a fabrica o unitate din produsul Ri;
-beneficiile unitare: i= 1, n ci este suma obinut prin vnzarea unei uniti
de produs Ri;
-costurile unitare de achiziie pentru materiile prime: j= 1, m j este suma
necesar cumprrii unei uniti din materia prima Ej;
-capital total disponibil: S reprezinta suma total disponibil pentru
achiziionarea de resurse in vederea realizrii produciei.
Vom nota cu xi (i= 1, n ) cantitatea de produs ce va fi fabricat.

Cunoaterea mrimilor xi, i= 1, n reprezint scopul final ntr-o problem de


planificarea produciei.

n aceste condiii:
-ncasrile totale rezultate din vnzarea produselor sunt date de:
n

f(x1,x2,xn) = c i x i
i 1

-din resursa Ej s-a consumat n total cantitatea

aij x i ,

j 1, m ;

i 1

-costul total al materiei prime Ej consumate este j

aij x i

j = 1, m ;

i 1

Matematici aplicate in economie

23

Programare liniar
-cheltuielile totale pentru achiziionarea tuturor materiilor prime necesare realizrii
m

produciei vor fi

aij x i j

j 1 i 1

Se pot prezenta dou modele diferite, care au ca scop determinarea mrimilor


x1,x2,xn.
1)Dac unitatea are materiile prime E1,E2,.Em n cantitile b1,b2,bm
cunoscute, se pune problema utilizrii acestora ntr-un mod care s conduc la
ncasri totale ct mai mari.
n acest caz modelul matematic poate fi scris:
n

maxim f(x1,x2,xn) =

ci x i ;
i 1

n
aij x i b j j 1, m
i 1
x i 0
i 1, n

2)Dac unitatea productiv dispune de un capital S, cu care dorete s


achiziioneze materii prime pentru fabricarea produselor R1,R2,Rn asfel nct
ncasrile totale s fie ct mai mari i s se recupereze capitalul investit.
Modelul matematic va fi :
n

maxim f(x1,x2,xn) =

ci x i ;
i 1

n m

aij x i j S

i 1 j 1
n
c i x i S ; x i 0
i 1

i 1, n

Aceste modele pot fi completate cu numeroase detalii reprezentnd condiii


suplimentare de care trebuie s se in seama.

B.Problema aprovizionrii (cu o singur marf)


Se ia n considerare un sistem de depozite D1,D2,Dn: n depozitul Di se afl
cantitatea ai de marf (i= 1, n ). Se tie c aceast marfa este destinat unor
consumatori C1,C2,Cm. Beneficiarul Cj are nevoie de cantitatea bj de marf (j= 1, m ).
Notm cu cij (0 c ij ) costul transportului unei unitai de marf de la depozitul Di
la consumatorul Cj. Acest model are scopul de a determina cantitaile xij
( i 1, n , j 1, m ) de marf ce vor fi scoase din depozitul Di i trimise beneficiarului Cj,
astfel nct costul transportului ntregii cantiti de produse s fie ct mai mic. Cazul
cij= arat c transportul de la Di la Cj este imposibil. Vom prezenta modele care
vor conine ca restricii condiiile ca totalul mrfii extrase dintr-un depozit s nu
24
Matematici aplicate in economie

Programare liniar
depaeasc marfa existent n acel depozit, iar cantitatea total de marf primit de
un beneficiar s nu fie sub necesarul acelui beneficiar.
n

Costul total de transport are forma:

cij x ij .
i 1 j 1

Modelele sunt :

x ij ai i 1, n

j 1

n m
n

minim c ij x ij ;
x ij b j j 1, m
i 1 j 1
i 1

i 1, n , j 1, m
x ij 0

pentru problema echilibrat, n care

ai b j
i 1

j 1

i pentru problema neechilibrat


m

x ij ai i 1, n

n j 1
n m

minim c ij x ij ; x ij b j j 1, m
.
i 1 j 1
i 1
i 1, n , j 1, m
x ij 0

C.Problema de nutriie
Se tie din cercetrile nutriionitilor c un sistem de alimentaie, ntr-un
anumit interval de timp trebuie s conin anumite substane active, care se gsesc
n diverse tipuri de alimente. Notm cu Si substanele active necesare i= 1, m , cu Aj
alimentele care trebuie procurate j= 1, n i care conin aij cantitate din substana Si pe
unitatea de aliment Aj. Notm cu xj cantitatea din alimentul Aj, cu cj costul unitar al
alimentului Aj i cu bi necesarul din substana Si. Se pune problema: care sunt
cantitile de alimente xj, care pot fi procurate mai ieftin, fr abatere de la
alimentaia tiinific.
Modelul matematic este:

n
a x bi i 1, m
minim f(x1,x2,xn) = c i x i ; j 1 ij j
.
i 1
x i 0
i 1, n
n

Un model asemntor cu acesta prezentat mai sus este problema


amestecurilor de benzine, impunnd drept condiie alegerea celor mai ieftine
25
Matematici aplicate in economie

Programare liniar
amestecuri cu condiia obinerii unui produs final cu anumite caracteristici tehnice
(putere caloric, temperatur de aprindere, grad de rafinare) care s fie inferioare
sau superioare unor anumite mrimi prestabilite. Se poate rezolva i problema
alctuirii celui mai ieftin amestec din diferite sortimente de crbune pentru nclzirea
cazanelor cu aburi, cu anumite caracteristici tehnice.

O problema de programare liniar (model de programare liniar) este formata


din:
-

o funcie obiectiv (funcie scop) care este o funcional liniar cu variabilele

x1,x2,xn
f(x1,x2,..xn)=c1x1+c2x2+..+cnxn

- un sistem de restricii format din ecuaii i inecuaii liniare

- condiii asupra variabilelor


( de obicei, condiii de nenegativitate x1 0 ,x2 0 ,xn 0 )

- un criteriu de optim, care poate fi minim sau maxim.

Vom folosi matricele


c1

.
C= , b =
.

c
n

b1

.
. , A =

b
n

a11

.
.

a
m1

. . a1n

. .
.
,X=
. .
.

. . amn

x1

.
. .

x
n

(1)

Se numete o restricie concordant , o restricie care:


-

n problemele de maxim are semnul

n problemele de minim are semnul .

n celelalte cazuri restriciile se numesc neconcordante.


Din modelele prezentate mai sus s-au dedus dou forme particulare ale problemei
de programare liniar, numite forme canonice.
Acestea sunt:

26
Matematici aplicate in economie

Programare liniar

[max] f =TCX;

AX b

X 0

(2)

[min] f =TCX ;

AX b
.

X 0

(3)

Am notat cu X 0 , condiiile care arat c toate componentele vectorului X sunt


nenegative.
Observaie. n formele canonice (2) sau (3) ale problemei de programare
liniar, restriciile sunt concordante.

Se numete forma standard a problemei de programare liniar, forma

[min] f =TCX

( sau [max] f = TCX );

AX b
.

X 0

(4)

Evident c sistemul de restrictii AX=b poate fi incompatibil, compatibil unic


determinat sau compatibil nedeterminat. Numai ultimul caz este cu adevrat
interesant, pentru c numai atunci se pune efectiv problema de a alege din mai
multe soluii pe cea bun.

Pentru a aduce o problema de programare liniar la forma standard, singura


forma pe care tim s o rezolvm, vom aduga sau scdea noi variabile pozitive
problemei, numite variabile de compensare sau variabile de ecart.

Observaii.
1) Se poate trece de la o problem de maxim la una de minim folosind relaia:
max f = - min (-f ) si invers.
2) Dac problema de programare liniar nu are forma canonica, atunci se
adaug sau se scad varibilele de compensare, dup cum cere restricia respectiv.

Exemplu. S se aduc la forma standard problema de programare liniar


urmtoare

[max] f = 16x1+20 x2 2x3+3x4 ;

Matematici aplicate in economie

x 1 2x 2 x 3 x 4 200

x 4 100
2 x1 x 2

xj 0
, j 1,4

27

Programare liniar
Se adaug o variabil de compensare la prima restricie i se scade o variabil din a
doua restricie. Forma standard este

x1 2 x 2 x 3 x 4 x 5 200

[max] f = 16x1+20 x2 2x3+3x4; 2x 1 x 2


x 4 x 6 100 .

x j 0 , j 1,6

Se poate demonstra c orice problem de programare liniar se poate aduce


la forma standard i c aceasta are aceleai soluii ca i problema iniial.
Soluiile unei probleme de programare liniar
Fie problema de programare liniar (P.L)
AX b
[min] f =TCX ;
.
X

Un vector X0Rn care verific sistemul de restricii AX=b, ct i condiiile de


nenegativitate X 0 ale unei (P.L) se numete soluie posibil a problemei
(admisibil sau realizabil sau program).

O soluie posibil X0 cu numrul de componente nenule, rm, iar vectorii matricei


A care corespund componentelor nenule sunt liniar independeni, se numete
soluie de baz; dac r m, soluia de baz se numete degenerat.

Un vector X0Rn, soluie posibil pentru (P.L) se numete soluie optim


(program optim) a problemei (P.L) dac optimizeaz funcia f, adic dac
pentru orice soluie posibil X are loc relaia TC X0 TCX.
Toi algoritmii de rezolvare a unei probleme liniare au o caracteristic

comun: metoda iterativ - se pornete de la o soluie posibil iniial care se


modific treptat, pn cnd funcia de eficien devine optim sau se dovedete c
optimul nu exist. Esena fiecrei metode este determinarea soluiei iniiale i
mbunatirea ei cu un algoritm de calcul. Noi vom prezenta algoritmul lui Dantzig
numit algoritmul simplex.

Metoda simplex, pentru prima dat publicat de americanul G. B. Dantzig n


1947, presupune analizarea anumitor soluii realizabile de baz i trecerea de la o
soluie la alta mai bun, prin schimbarea unui vector din baz. Mai exact, se
pornete de la o soluie realizabil de baz (care se deduce ct mai simplu posibil),
se testeaz optimalitatea acestei solutii folosind un test de optimalitate. Dac soluia
este optim metoda ia sfrit, dac nu, se trece la o alt soluie de baz,
28
Matematici aplicate in economie

Programare liniar
corespunztoare unei baze care difer de precedenta printr-un singur vector.
Alegerea vectorului se face prin criteriul de intrare n baz. Vectorul, pe care acesta
l nlocuiete se alege conform criteriului de ieire din baz.
Criteriul de ieire din baz se deduce din condiia de admisibilitate a noii
soluii; criteriul de intrare n baz se obine din condiia ca noua soluie s
mbunteasc valoarea funciei de eficien.
Determinarea unei soluii iniiale de baz
Fie problema de programare liniar cu forma canonic:
a11 x1 a12 x 2 ... a1n x n b1
a x a x ... a x b
22 2
2n n
2
21 1
...........................................
a x a x ... a x b
m2 2
mn n
m
m1 1
x1 0, x 2 0,.....x n 0

max f=c1x1+c2x2++cnxn ;

i presupunem c toi termenii liberi sunt pozitivi, adic b1 0,...,bm 0, adugm


variabilele de compensare: xn+1,xn+2,xn+m 0 i se obine forma standard:

max f=c1x1+c2x2++cnxn;

a11 x1 a12 x 2 ... a1n x n x n 1 b1


a x a x ... a x x
22 2
2n n
n 2 b2
21 1
.
...........................................

a x a x ... a x x
m2 2
mn n
n m bm
m1 1

x1 0, x 2 0,.....x n m 0

Rangul matricei sistemului de ecuaii de mai sus este m, deoarece matricea


sistemului conine exact m vectori unitari, pe care i vom nota: an+1,an+2,,an+m.
O soluie de baz trebuie s aib maxim m componente nenule. Drept
soluie iniial vom lua o soluie foarte uor de determinat i anume: x1=x2=.=xn=0, xn+1=b1, xn+2=b2,, xn+m=bm.
Cum toate componentele termenului liber sunt pozitive, rezult c soluia
sistemului

de

restricii

al

problemei

de

programare

liniar:

XT=(0,0,,0,b1,b2,bm)Rn+m servete drept soluie iniial de baz.


Observaie. Se tie c problema de programare liniar se poate aduce mereu
la forma standard, totui condiia suplimentar b1 0 ,...,bm0 face ca ntotdeauna
soluia iniial s poat fi dedus ca mai sus.
Metoda simplex are n vedere testarea optimalitii soluiei de baz (iniiale)
curente; n caz c soluia este optim, algoritmul se oprete; dac nu este optim,
Matematici aplicate in economie

29

Programare liniar
soluia se modific prin modificarea unui vector din baza curent, aplicnd criteriul
de intrare n baz; acest nou vector care se alege prin criteriul de intrare n baz,
nlocuiete un vector din vechea baz, care se alege prin criteriul de ieire din baz.
Noua soluie se calculeaz utiliznd metoda Gauss-Jordan. Aceast soluie
se va testa la rndul ei, cu criteriul de optimalitate, etc. Algoritmul ia sfrit dup un
numr finit de pai.
Organizarea calculelor - tabelul simplex
Presupunem, fara a reduce generalitatea, c baza curent B este format din
primii m vectori ai matricei sistemului de restricii din forma standard, a1,a2,,am,
deci primele m componente ale soluiei x1,x2,,xm sunt diferite de 0.
Vom nota CB subvectorul lui C format cu componentele lui C corespunztoare bazei
B. Se observ c vectorii bazei se exprim n felul urmtor n baza B:
a1=1a1+0a2++0am;a2=0a1+1a2++0am;.,am =0a1+0a2++1am.
De asemenea, aa cum am vzut mai sus, toi vectorii a j care nu aparin
bazei se pot exprima prin:
a j 1j a1 2j a2 ...... mj am , j= m 1, m n .

Tabelul simplex pentru baza curent este urmtorul:

c1 c2crcmcj

cm+n

CB

xB

a1 a2aramaj

am+n

c1

a1

x1

1 0..0.0.1j

1m+n

c2

a2

x2

0 1..0.0.2j

2m+n

cr

ar

xr

0 0..10..rj.

..

cm

am

xm

0 0..01..mj.

mm+n

f0

00.0.0 j

m+n

30
Matematici aplicate in economie

rm+n

Programare liniar
Reguli practice pentru aplicarea algoritmului simplex
1.Criteriul de optimalitate. Dac toate diferenele k=ck-fk (pentru problema
de maxim) sau k= fk-ck (pentru problema de minim) corespunztoare vectorilor care
nu sunt n baza curent B sunt negative sau egale cu 0, soluia XB este optim i
algoritmul se oprete.

2.Criteriul de intrare in baz. Dac cel puin una dintre diferenele


corespunztoare vectorilor care nu se afl n baza curent, este pozitiv, k=ck-fk0
(pentru problema de maxim) sau k =fk-ck0 (pentru problema de minim), atunci
soluia XB nu este optim. Se alege

max {

0} = j . Vectorul aj intr n

baz.
Criteriu de optim infinit. Dac toate componentele vectorului care intr n
baz

(la o anumit iteraie a simplexului) sunt negative sau nule, problema admite

optim infinit.
3.Criteriul de ieire din baz. Se aplic dup aplicarea criteriului de intrare
n baz. Se adaug o nou coloan n tabelul simplex, coloana , n care se scriu
rapoartele

xk
, pentru care kj 0. Se alege raportul minim:
j
k

x
x
min kj , kj 0 = rj care indic vectorul ar care iese din baz.
k
r

4.Stabilirea pivotului.
La intersecia liniei vectorului ar, care iese din baz, cu coloana vectorului aj, care
intr n baz, se afl pivotul rj 0, care se foloseste n metoda lui Gauss-Jordan
pentru obinerea noului tabel simplex.

Elementele noului tabel simplex se vor calcula astfel:


-linia pivotului se mparte la pivot;
-coloana pivotului are elementele egale cu 0, cu excepia elementului de pe locul
pivotului, care este 1;
-celelalte elemente se calculeaz dup regula dreptunghiului: pentru calculul unui
element se formeaz un dreptunghi care intr-un vrf are pivotul, n vrful opus
Matematici aplicate in economie

31

Programare liniar
elementul pe care vrem s-l nlocuim din vechiul tabel; acest dreptunghi se
calculeaz ca un determinant de ordin 2, dar cu precizarea c diagonala care se ia
cu semnul + este mereu cea pe care se afl pivotul.Valoarea obtinuta se mparte la
pivot si astfel se calculeaza fiecare element din noul tablou simplex.
Se obine o nou soluie. Noua baz B1, va conine n locul lui ar vectorul aj, iar
coloana lui aj va deveni vector unitar, cu coordonata de ordin r egala cu 1 i celelalte
0.

Exemplu.S se rezolve problema de programare liniar, utiliznd algoritmul


simplex:

max f = 5x1 + 4x2 + 3x3


x1 + 2x2 + 2x3 10
2x1 + x2

2x2 - x3 8

x1, x2 ,x3 0.

Soluie. Se aduce problema la forma standard, adugndu-se variabilele de


compensare x4, x5, x6 0. Funcia de eficien rmne neschimbat.
max f = 5x1 + 4x2 + 3x3+0x4+0x5+0x6
x1 + 2x2 + 2x3 + x4
2x1 + x2

+x5

2x2 - x3

=10
= 8
+x6 = 8

xj 0 , j= 1,6 .

Baza iniial este baza unitar, format cu vectorii coloan a4,a5,a6 din
matricea sistemului de restricii. Soluia iniial de baz se alege astfel: x1=x2=x3=0,
x4=10(din prima restricie), x5=8(din a doua restricie), x6=8(din a treia restricie).
Construim tabelul simplex iniial, n care apare soluia iniial de baz, matricea
sistemului de restricii, baza initiala:
c1= 5

c2= 4

c3= 3

c4= 0 c5 =0

c4 =0

CB

XB

a1

a2

a3

a4

a5

a6

a4

10

10/1

a5

(2)

8/2

a6

-1

1=5

2=4

3=3

4=0

5 =0

6 =0

k=ck-fk

Ultima linie a diferenelor se calculeaz conform definiiei , astfel:


32
Matematici aplicate in economie

Programare liniar
f1 =

CBT

1

a1 =(0, 0, 0) 2 =0 ; c1-f1= 5 0 =5
0

f2 =

CBT

2

a2 =(0, 0, 0) 1 =0; c2 f2 = 4 - 0=4
2

CBT

2

a3 =(0, 0, 0) 0 =0; c3 f3 = 3 - 0=3;f4=0; c4-f4=0; f5=0, c5-f5 =0; f6=0, c6-f6=0.
1

f3=

Criteriul de optimalitate se aplic dup calcularea diferenelor j. Soluia nu


este optim, deoarece nu toate diferenele sunt negative sau egale cu 0. Vom
schimba baza curent, prin inlocuirea unui vector n baz. Criteriul de ieire din baz
indic alegerea max { 5,4,3 } = 5 =c1f1, deci vectorul a1 intr n baz, j=1. Vom
stabili vectorul care iese din baz i pentru aceasta adugm coloana .
Criteriul de ieire din baz arata ca vectorul care va fi inlocuit in baza este a5,
deoarece min {10,4} = 4=

x5
. Pivotul iteraiei este 2. Noua baz va fi format din
51

vectorii a4, a1, a6.


Calculul elementelor noului tabel se va efectua cu metoda Gauss - Jordan.
Tabloul simplex este urmatorul:
c1= 5

c2= 4

c3= 3

c4= 0

c5 =0

c4 =0

CB

XB

a1

a2

a3

a4

a5

a6

a4

3/2

(2)

-1/2

a1

1/2

1/2

a6

-1

20

1 =0

3 =3

4 =0

k=ck-fk

2 =3/2

5 =-5/2

6 =0

Soluia indicat de acest tabel este XT=(4,0,0,6,0,8), iar valoarea funciei este
de 20. Aplicm iar criteriile de optimalitate pentru a studia aceast soluie .
Linia diferenelor arat c soluia nu este optim i intr n baz a3; coloana lui
arat iee din baz vectorul a4. Pivotul este 2.Noua baz va fi format din vectorii a3,
a1, a6. Iteraia corespunztoare este dat de tabelul de mai jos:

Matematici aplicate in economie

33

Programare liniar
c1= 5

c2= 4

c3= 3

c4= 0

c5 =0

c4 =0

CB

XB

a1

a2

a3

a4

a5

a6

a3

3/4

1/2

-1/4

a1

1/2

1/2

a6

11

11/4

1/2

-1/4

29

1 =0

2=-3/4

3 =0

4=-3/2

5 =-7/4

6 =0

k=ck-fk

Soluia corespunztoare este XT = (4,0,3,0,0,11), iar valoarea functiei de eficien


este 29.Testul de optimalitate indic faptul c aceast soluie este optim.
Determinarea unei soluii iniiale de baz, cnd problema are forma canonic:
min f=c1x1+c2x2++cnxn
a11 x1 a12 x 2 ... a1n x n b1
a x a x ... a x b
22 2
2n n
2
21 1
...........................................
a x a x ... a x b
m2 2
mn n
m
m1 1

x1 0, x 2 0,.....x n 0

Presupunem c termenii liberi sunt pozitivi: b1 0 ,b2 0,, bm 0.


Aducem problema la forma standard:
min f=c1x1+c2x2++cnxn
a11 x1 a12 x 2 ... a1n x n x n 1 b1
a x a x ... a x x
22 2
2n n
n 2 b2
21 1
...........................................

a x a x ... a x x
m2 2
mn n
n m bm
m1 1
x j 0, j 1, n m

Dac procedm ca in cazul anterior, vom lua drept soluie iniial de baz, soluia:
x1=x2=.=xn=0, xn+1= -b1,xn+2= - b2,,xn+m= - bm,
ns acesta nu este i realizabil, pentru c ea nu satisface condiiile algoritmului
simplex.
Pentru a obine o soluie admisibil de baz, vom introduce n fiecare
egalitate o nou variabil pozitiva, care s nlesneasc alegerea soluiei iniiale.
Aceste m variabile pe care le introducem se numesc variabile artificiale, iar metoda
de lucru pe care o expunem se numete metoda variabilelor artificiale sau
metoda penalizrii .
34
Matematici aplicate in economie

Programare liniar
Se modific i funcia de eficien astfel :
-dac problema este de minim, atunci se adaug la funcia de eficien iniial,
variabilele artificiale cu coeficienii de penalizare M (M pozitiv, foarte mare);

-dac problema este de maxim, atunci se adaug la funcia de eficien iniial,


variabilele artificiale cu coeficienii de penalizare -M (negativ, -)
Astfel, dup adugarea variabilelor artificiale xn+m+1, xn+m+2, xn+2m sistemul
de restricii devine :
a11 x1 a12 x 2 ... a1n x n x n 1 x n m 1 b1
a x a x ... a x x x
22 2
2n n
n2
n m 2 b2
21 1
...........................................
.

a x a x ... a x x
m2 2
mn n
n m x n 2 m bm
m1 1
x j 0, j 1, n 2m

Soluia iniial de baz pentru problema cu restriciile de mai sus poate fi


acum una convenabil i anume: x1=x2=.=xn==xn+m=0,
xn+m+1=b1,xn+m+2=b2,xn+2m=bm.
Iniial, variabilele artificiale sunt n baz; le putem elimina treptat din baz
dac asociem fiecarei variabile artificiale un coeficient foarte mare n funcia de
eficien, practic , care se numete coeficient de penalizare si se noteaz cu M.
n concluzie, funcia de eficien se modific, devenind:
min w = c1x1+c2x2++cnxn+Mxn+m+1+Mxn+m+2+Mxn+2m.
Dac totui, la finalul rezolvrii problemei de programare liniar prin metoda
variabilelor artificiale cel putin una din variabilele artificiale are vector n baza
optim, rezult c problema dat nu admite soluie.
Exemplu.
S se rezolve problema de programare liniar, utiliznd algoritmul simplex:
min f = 4x1 + 3x2 + 5x3
2x1 + x2 -5x3 300;
x1 + x2 + x3 75;

x1, x2 ,x3 0.

Soluie. Aducem problema la forma standard fr a modifica f


min f = 4x1 + 3x2 + 5x3
2x1 + x2 -5x3 x4
x1 + x2 + x3
Matematici aplicate in economie

=300
- x5 = 75;

xj 0

j 1,5 .
35

Programare liniar
Vom aduga variabilele artificiale x6, x7, introducndu-le n restricii cu
coeficientul 1 i n funcia de eficien cu coeficientul de penalizare M:
min w = 4x1 + 3x2 + 5x3+Mx6+Mx7
2x1 + x2 - 5x3 x4+
x1 + x2 + x3

x6

- x5

=300
+ x7= 75

xI 0, l=1,7.
Soluia iniial de baz este x1=x2=x3=x4=x5=0, x6=300, x7=75.
Calculele aferente algoritmului simplex sunt redate n tabelul urmtor. Pentru calculul
liniei diferenelor i stabilirea criteriilor de optimalitate i de intrare n baz se
folosete j=fjcj. La prima iteraie, se calculeaza max {1=3M4, 2=2M-3}=1, a1
intr n baz.
c1= 4

c2= 3

c3= 5

c4= 0

c5= 0

c6= M

c7= M

a3

a4

a5

a6

a7

CB

XB

a1

a2

a6

300

-5

-1

150

a7

75

(1)

-1

75

3M-4

2M-3

-4M-5

-M

-M

k=fk- ck
M

a6

150

-1

-7

-1

(2)

75

a1

75

-1

-M+1

-7M-1

-M

2M-4

k=fk- ck
0

a5

75

-1/2

-7/2

- 1/2

a1

150

1/2

- 5/2

- 1/2

600

-1

- 15

-2

k=fk- ck

O variabil artificial care iese din baz, nu va mai intra n baz, fapt care justific
eliminarea din calcul a coloanelor a7 i a8 din tabelul de mai sus.
Soluia optim a problemei este: x1=150, x2=x3=x4=0, x5=75, min f =600.
Soluie optim multipl.Calcul soluiei optime generale
Dac o problem de programare liniar are mai multe soluii optime de baz, atunci
orice combinaie liniar convex a acestor soluii este de asemenea o soluie optim.
O soluie este multipl dac n iteraia optim j=0 pentru un vector aj care nu
aparine bazei, atunci este posibil s introducem n baz vectorul aj pentru a
determina alt soluie optim care va conduce la aceeai valoare a funciei de
eficien.
36
Matematici aplicate in economie

Programare liniar
Exemplu.
Se face un amestec de uleiuri minerale U1,U2,U3,U4, n vederea obtinerii unui
produs finit cu anumite caliti i n cantitate de cel puin 800 l. Amestecul trebuie s
conin substanele S1 i S2 n cantitate de cel puin 18000 g, respectiv 21000
g.Coninutul de substane S1 i S2 ale fiecrui tip de ulei i costurile unitare sunt date
in tabelul urmator:

Uleiuri (coninut n g/ l)
Substane

U1

U2

U3

U4

S1

20

10

30

20

18000

S2

10

20

10

30

21000

Cost unitar(Mii u.m./t)

4,5

Necesar (g)

Cum trebuie fcut amestecul cu cost total minim? Ce cantitate din fiecare ulei trebuie
pus in acest amestec?
Soluie.
Fie xi, i 1,4 cantitile din uleiurile Ui care trebuie puse n amestec. Funcia de
eficien este costul total al amestecului. Ea trebuie minimizat:
min f = 5 x1+4x2+4,5 x3+3x4 (mii u.m.)
Restricia referitoare la cantitate este:
x1+x2+x3+x4 800.
Celelalte dou restricii se refer la substanele S1 i S2 necesare
amestecului:
20 x1+10x2+30x3+20x4 18000
10 x1+20x2+10x3+30x4 21000.
Condiiile de nenegativitate asupra variabilelor sunt:x1 ,x2 , x3, x4 0.
Deci, modelul matematic al problemei de amestec este :
min f = 5x1+4x2+4,5 x3+3x4
x1+x2+x3+x4 800; 20 x1+10x2+30x3+20x4 18000;10 x1+20x2+10x3+30x4 21000
x1 ,x2 , x3 , x4 0.

mprim cu 10 restriciile doi i trei si se aduce problema la forma standard :

Matematici aplicate in economie

37

Programare liniar
min f =5 x1+4x2+4,5 x3+3x4
x1+x2+x3+x4 x5 = 800
2 x1+x2+3x3+2x4 x6 = 1800
x1+2x2+x3+3x4 x7 = 2100; xj 0, j 1,7
Pentru a reduce calculele, vom scdea din ecuaia cu termenul liber cel mai mare,
pe rnd fiecare dintre ecuaiile sistemului de restricii, adic din ecuaia a treia se
scade prima i apoi a doua i astfel se obine un sistem echivalent cu cel dat.
Matricea ataat acestui ultim sistem este :
0 1 0 2 1 0 1

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

conine doi vectori unitari a5 i a6; nu este nevoie pentru determinarea soluiei iniial
de baz dect de o singur variabil artificial, x8 i va fi adugat la ultima restricie.
Problema de programare liniar devine :
min f =5 x1+4x2+4,5 x3+3x4+Mx8
x2

+2x4 +x5

- x1+x2 - 2x3+x4

x7

= 1300

+ x6 x7

= 300

x1+2x2+x3+3x4

x7 +x8= 2100; xj 0, j=1,..,8.

4,5

CB

XB

a1

a2

a3

a4

a5

a6

a7

a8

a5

1300

-1

650

a6

300

-1

-2

(1)

-1

300

a8

2100

-1

700

M-5

2M-4

M-4,5

3M-3

-M

k=fk- ck

a5

700

-1

-2

a4

300

-1

-2

-1

a8

1200

-1

(7)

-3

1200/7

4M-8

-M-1

7M-0,5

-3M+3

2M-3

k=fkck
0

a5

100/7

-2/7

-3/7

-2/7

-1/7

a4

4500/7

1/7

5/7

1/7

-3/7

4,5

a3

1200/7

4/7

-1/7

-3/7

2/7

--

2700

-2

-2,5

-1,5

0*

k=fkck

38
Matematici aplicate in economie

700/4

Programare liniar
Soluia optim este XoT=(0,0,

1200 4500 100


,
,
, 0 ,0), iar valoarea minim a funciei
7
7
7

de eficien este f min = 2700.


Pe linia diferenelor f7- c7 = 0, fr ca vectorul a7 s fie n baz. Pentru a determina o
alt soluie optim vom introduce n baz vectorul a7 i vom construi un nou tabel
simplex
5

4,5

CB

XB

a1

a2

a3

a4

a5

a6

a7

a5

100

-1/2

1/2

-1/2

a4

900

1/2

3/2

-1/2

a7

600

-1/2

7/2

-3/2

2700

-2

-2,5

-1,5

k =fk ck

Soluia optim obinut este X1T=( 0 , 0 , 0, 900, 100, 0 , 600) .


Se poate construi o combinaie liniar convex a celor dou soluii optime care
reprezint soluia optim general:
X() = X0+(1-)X1, [0,1]
Pentru orice [0,1], f(X())=4,5

1200
1800
+3(900 ) = 2700, adic valoarea
7
7

funciei de eficien rmne minim.


Rezolvarea unei probleme de programare liniar care nu are forma
canonica. In acest caz, se aduce problema la forma standard, cu toi termenii liberi
ai sistemului de restricii pozitivi. Matricea sistemului corespunztor problemei adus
la forma standard va indica care sunt vectorii coloan unitari existeni si daca este
necesar se va aplica metoda penalizrii.
Vom construi tabelul simplex, cu baza iniial format din vectori unitari, care pot fi:
-

vectori corespunztori variabilelor problemei sau

vectori corespunztori variabilelor de compensare sau

vectori corespunztori variabilelor artificiale.


Exemplu. S se rezolve problema de programare liniar:
max f = 10x1 + 6x2 -2x3+ 4x4
2x1 + x2

-2x4 =300

2x2 + x3+x4 600


x1 +2x2+ x3 +x4 120 ; x1, x2 ,x3 ,x4 0.
Matematici aplicate in economie

39

Programare liniar
Soluie. Aducem problema la forma standard, prin adugarea variabilelor de
compensare x5 i x6:
2x1 + x2
-2x4
= 300
2x2 +x3+ x4 +x5
= 600
x1 +2x2+ x3 + x4
- x6 = 120; xj 0, j= 1,6 .
2 1 0 2 0 0

Matricea sistemului de restricii este acum :


A= 0 2 1 1 1 0 .
1 2 1 1 0 1

Ea conine un singur vector unitar, vom aduga dou variabile artificiale, notate x7 i
x8 la restricia nti i a treia. Astfel, problema devine:
max f = 10x1 + 6x2 -2x3+ 4x4 -Mx7 Mx8
2x1 + x2
-2x4
+x7
= 300
2x2 +x3+ x4 +x5
= 600
x1 +2x2+ x3 + x4 -x6 +x8 = 120;
xj 0, j= 1,8 .
Acum baza iniial va fi format din vectorii unitari a5,a7, a8
10

-2

-M

-M

CB

XB

a1

a2

a3

a4

a5

a6

a7

a8

-M

a7

200

(2)

-2

100

a5

600

-M

a8

120

-1

120

10+3M

6+3M

-2+M

4-M

-M

cj-fj
10

a1

100

1/2

-1

a5

600

600

-M

a8

20

3 /2

(2)

-1

10

3/2M+1

-2+M

2M+14

-M

cj-fj
10

a1

110

5/4

1/2

- 1/2

a5

590

5/4

1/2

(1/ 2)

1180

a4

10

3/4

1/2

-1/2

1140

-19/2

-9

cj-fj
10

a1

700

5/2

a6

1180

5/2

a4

600

9400

-27

-16

-14

cj-fj

Solutia optima este XT=( 700 , 0 , 0, 600, 0, 1180 ).


40
Matematici aplicate in economie

Programare liniar
Exemplu de problem care nu admite soluie
S se rezolve problema de programare liniar, utiliznd algoritmul simplex:
max f = 2x1 + x2 + 2x3
5x1 + x2 + x3 20
-x1 + x2 + x3 = 30 ;

x1, x2 ,x3 0.

Soluie. Aducem problema la forma standard adugnd variabila de compensare x4


la restricia nti i variabila artificial x5 la restricia a doua .
max w = 2x1 + x2 + 2x3 - Mx5
5x1 + x2 + x3+ x4
-x1 + x2 + x3

=20
+x5 =30;

xj 0

j 1,5 .

c1=2

c2=1

c3=2

c4=0

c4= - M

CB

XB

a1

a2

a3

a4

a5

a4

20

(1)

20

-M

a5

30

-1

2-M

1+M

2+M

cj-fj
2

a3

20

-M

a5

10

-6

-1

-8-6M

-1

-2-M 0

cj-fj

Ultima iteraie a tabelului de mai sus indic optimalitatea soluiei datorit faptului c
toate diferenele sunt j = c j- fj sunt negative sau 0.
Totui variabila artificial x5 , a rmas n baz cu valoarea 10, x50; deci problema
initiala nu admite soluie.
Probleme propuse
1. O ntreprindere fabric trei tipuri de produse folosind gaz metan i ap.
Consumurile specifice, disponibilul de ap i gaz, precum i beneficiile nete unitare
sunt date n tabelul de mai jos:
Produse

Consumuri specifice

Resurse

P1

P2

P3

Ap

40.000 t

Gaz metan

10

50

30

500.000 mc

Beneficiu unitar

10

15

25

Matematici aplicate in economie

Disponibil

41

Programare liniar
a) Cum se organizeaz producia, dac se urmrete maximizarea
beneficiului total?
b) Dac i propune acelai scop, cu aceleai resurse, dar trebuie s
produc cel puin 3000 uniti din P1,cum trebuie organizat producia?
2. S se rezolve problemele:
a)

min f = 3x1 - 2x2 + x3

b) max f = 3x1 + 2x2 x3 +16 x4

3x1 + x2 - 2 x3 = 2

3x1+2x2+5x3+4x4 8

4x1 +3x2 +2 x3= 1

x1+x2+2x3+x4 4

x1, x2 , x3 0

x1, x2 , x3 ,x4 0 .

3. O main produce trei produse P1,P2,P3.Produsul P1 aduce ntreprinderii un venit


de 3 u.m. pe unitatea de produs, P2 de 12 u.m. iar P3 de 4 u.m. Randamentul mainii
este de 75, 25 i respectiv 50 buci/or pentru P1,P2,P3. Vnzrile sunt limitate
pentru P1 la 1500, pentru P2 la 500 i pentru P3 la 1000 buci.tiind c maina
lucrez sptmnal 45 ore, s se determine repartiia produciei, astfel nct
beneficiul s fie maxim.
4.S se rezolve urmtoarele probleme de programare liniar:
a)

min f = 4x1 + 8x2 +3x3

b)

2x1 + x2 +3x3 4

c)

2x1 +4x2 40

5x1 + 2x2 +7x3 8

6x1 +2x2 60

x1, x2,x3 0

x1, x2 0

max f = 4x1 + x2 +6 x3

d) min f = x1 +3x2 4x3 - 2x4 -9x5

2x1 +3x2 +x3 7


3x1 + x2 +x3 11

x1
+ x3 x4 x5 = 3
x1 +x2 2x3
- 3x5 = -1

x1, x2, x3 0
e)

g)

max f = 10 x1 +15 x2

min f = 9x1 + 3x2 +2 x3

x1, x2, x3 ,x4, x5 0


f) max f = x1 + 2x2 +3x3 - x4

4x1 + x2 +5 x3 = 7

x1 +2x2 +3x3

=15

3x1 + x2 +4 x3 5

2 x1+ x2 + 5x3

=20

x1, x2 , x3 0

x1 +2x2 + x3 +x4 =10; x1, x2 ,x3,x4 0.

max f = x1 + 3x2 +6x3


5x1 +2x2 +3x3 =11
3x1 + x2 +2x3 8
x1, x2 , x3 0

42
Matematici aplicate in economie

h)

min f = 6x1 + x2

x1 +2 x2 3
3x1 + x2 4
x1, x2 0

Programare liniar
5. S se determine valoarea maxim i minim a funciei
f = 9x4 -14x5 -8 x6
cu restriciile
x1

+ x4 x5 x6 = 2

x2

- 5x4 + 4x5 + 7x6 = 2

x3 + 2x3 + x5 x6 = 5
x1, x2, x3 ,x4, x5, x6 0
6. S se determine maximul funciei f = x1 + 2x2 +2x3 +x4 cu restriciile
x1 x 3 +

1
x4 = 1;
2

x2 + x3 x4 = 1;
x1, x2, x3 ,x4 0
7. S se determine minimul funciei f = x2 -2 x3 + 2 x5
in condiiile
x1 + 3x2 - x3 +
-2x2 + 4x3 +x4

2x5

=7
= 12

-4x2 + 3x3 + 8x5 + x6 = 10


x1, x2, x3 ,x4, x5, x6 0

Matematici aplicate in economie

43

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