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: f(x1,x2,xn) = c i x i
i =1 n

-din resursa Ej s-a consumat n total cantitatea

aij x i ,
i =1 n i =1

j = 1, m ; j = 1, m ;
17

-costul total al materiei prime Ej consumate este j


Matematici aplicate in economie

aij x i

Programare liniar

-cheltuielile totale pentru achiziionarea tuturor materiilor prime necesare realizrii 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: maxim f(x1,x2,xn) =

ci xi
i =1

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

2)Dac unitatea productiv dispune de un capital S, care va folosi la achiziionarea materiilor prime necesare 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 xi
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
18 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. Costul total de transport are forma:
n m

c ij xij .
i =1 j =1

Modelele sunt :

m 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 i pentru problema neechilibrat

ai = b j
i =1 j =1

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 , 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 b i i = 1 m . minim f(x1,x2,xn) = c i x i ; j =1 ij j i =1 x 0 i = 1, n i
n

Matematici aplicate in economie

19

Programare liniar

Un model asemntor cu acesta prezentat mai sus este problema amestecurilor de benzine, impunnd drept condiie alegerea celor mai ieftine 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 funcie liniar reala 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 m 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.
20 Matematici aplicate in economie

Programare liniar

Acestea sunt: [max] f =TCX; AX b X 0 AX b . X 0 (2)

[min] f =TCX ;

(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 AX = b . X 0

[min] f =TCX

( sau [max] f = TCX );

(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 in restrictiile 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 variabilele de compensare, dup cum cere restricia respectiv.
Exemplu. S se aduc la forma standard problema de programare liniar

urmtoare

Matematici aplicate in economie

21

Programare liniar

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

x1 + 2 x 2 + x 3 x 4 200 + x 4 100 2x1 x 2 x j 0 , j = 1,4

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; 2 x1 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 0 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


22 Matematici aplicate in economie

Programare liniar

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

max f=c1x1+c2x2++cnxn;

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.

Matematici aplicate in economie

23

Programare liniar 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, 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:
j a j = 1j a1 + 2j a2 + ...... + m am , j= m + 1 m + n . ,

Tabelul simplex pentru baza curent este urmtorul: c1 c2crcmcj CB c1 c2 . cr . cm k B a1 a2 . ar . am xB x1 x2 . xr . xm f0 a1 a2aramaj 1 0..0.0.1j 0 1..0.0.2j 0 0..10..rj. 0 0..01..mj. 00.0.0 j cm+n am+n 1m+n 2m+n rm+n mm+n m+n

..

24 Matematici aplicate in economie

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. (fk=TCBak)
B

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-fk>0 (pentru problema de maxim) sau k =fk-ck>0 (pentru problema de minim), atunci soluia XB nu este optim. Se alege baz.
Criteriu de optim infinit. Dac toate componentele vectorului care intr n max {
k

>0} = j . Vectorul aj 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

kj

, pentru care kj > 0. Se alege raportul minim:

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

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
25

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.

E xem pl S se rezolve problema de programare liniar, utiliznd algoritmul u.

simplex:

max f = 5x1 + 4x2 + 3x3 x1 + 2x2 + 2x3 10 2x1 + x2 2x2 - x3 8 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 2x2 - x3 +x5 =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 CB 0 0 0 k=ck-fk B a4 a5 a6 XB 10 8 8 0 a1 1
(2)

c2= 4 a2 2 1 2 2=4

c3= 3 a3 2 0 -1 3=3

c4= 0 c5 =0 a4 1 0 0 4=0 a5 0 1 0 5 =0

c4 =0 a6 0 0 1 6 =0

10/1 8/2 -

0 1=5

Ultima linie a diferenelor se calculeaz conform definiiei , astfel:

26 Matematici aplicate in economie

Programare liniar

f1 = CB

1 a1 =(0, 0, 0) 2 =0 ; c1-f1= 5 0 =5 0 2 a2 =(0, 0, 0) 1 =0; c2 f2 = 4 - 0=4 2

f2 = CB

f3= CB

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

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= vectorii a4, a1, a6. Calculul elementelor noului tabel se va efectua cu metoda Gauss - Jordan. Tabloul simplex este urmatorul: c1= 5 CB 0 5 0 k=ck-fk B a4 a1 a6 XB 6 4 8 20 a1 0 1 0 1 =0 c2= 4 a2 3/2 1/2 2 2 =3/2 c3= 3 a3
(2)
1 5

x5

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

c4= 0 a4 1 0 0 4 =0

c5 =0 a5 -1/2 1/2 0 5 =-5/2

c4 =0 a6 0 0 1 6 =0

0 -1 3 =3

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

27

Programare liniar

c1= 5 CB 3 5 0 k=ck-fk B a3 a1 a6 XB 3 4 11 29 a1 0 1 0 1 =0

c2= 4 a2 3/4 1/2 11/4 2=-3/4

c3= 3 a3 1 0 0 3 =0

c4= 0 a4 1/2 0 1/2 4=-3/2

c5 =0 a5 -1/4 1/2 -1/4 5 =-7/4

c4 =0 a6 0 0 1 6 =0

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 n + 2 = b2 22 2 2n n 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 .
28 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 n+2 n + m + 2 = b2 22 2 2n n 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; min f = 4x1 + 3x2 + 5x3 2x1 + x2 -5x3 x4 x1 + x2 + x3 =300 - x5 = 75; xj 0 x1, x2 ,x3 0.
Soluie. Aducem problema la forma standard fr a modifica f

j = 1,5 .
29

Matematici aplicate in economie

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 - x5 x6 =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 CB M M k=fk- ck M 4 k=fk- ck 0 4 k=fk- ck a5 a1 75 150 600 a6 a1 150 75 B a6 a7 XB 300 75 a1 2
(1) 3M-4

c2= 3 a2 1 1 2M-3 -1 1 -M+1 -1/2 1/2 -1

c3= 5 a3 -5 1 -4M-5 -7 1 -7M-1 -7/2 - 5/2 - 15

c4= 0 a4 -1 0 -M -1 0 -M - 1/2 - 1/2 -2

c5= 0 a5 0 -1 -M
(2)

c6= M a6 1 0 0 1 0 0 -

c7= M a7 0 1 0 75 -

150
75

0 1 0 0 1 0

-1
2M-4

1 0 0

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.
30 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 S1 S2 Cost unitar(Mii u.m./t) U1 20 10 5 U2 10 20 4 U3 30 10 4,5 U4 20 30 3 Necesar (g) 18000 21000

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

31

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 = 17 , 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 x7 = 1300 = 300 - x1+x2 - 2x3+x4 x1+2x2+x3+3x4 5 CB 0 0 M k=fk- ck 0 3 M k=fkck 0 3 4,5 k=fkck a5 a4 a3 100/7 4500/7 1200/7 2700 a5 a4 a8 700 300 1200 B a5 a6 a8 XB 1300 300 2100 a1 0 -1 1 M-5 2 -1 4 4M-8 -2/7 1/7 4/7 -2 4 a2 1 1 2 2M-4 -1 1 -1 -M-1 -3/7 5/7 -1/7 -2,5 4,5 a3 0 -2 1 M-4,5 4 -2
(7) 7M-0,5

+ x6 x7 3 a4 2
(1)

x7 +x8= 2100; xj 0, j=1,..,8. 0 a5 1 0 0 0 1 0 0 0 1 0 0 0 0 a6 0 1 0 0 -2 1 -3 -3M+3 -2/7 1/7 -3/7 -1,5 0 a7 -1 -1 -1 -M 1 -1 2 2M-3 -1/7 -3/7 2/7 0* M a8 0 0 1 0 0 0 1 0 -1200/7 700/4

650 300 700

3
3M-3

0 1 0 0 0 1 0 0

0 0 1 0

32 Matematici aplicate in economie

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 CB 0 3
0 k =fk ck

4 a2 -1/2 1/2 -1/2 -2,5

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

3 a4 0 1 0 0

0 a5 1 0 0 0

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

0 a7 0 0 1 0

B a5 a4 a7

XB 100 900 600 2700

a1 0 1 2 -2

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

33

Programare liniar Soluie. Aducem problema la forma standard, prin adugarea variabilelor de

compensare x5 i x6: 2x1 + x2 -2x4 = 300 = 600 2x2 +x3+ x4 +x5 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 = 600 2x2 +x3+ x4 +x5 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 CB -M 0 -M
cj-fj

6 a2 1 2 2
6+3M

-2 a3 0 1 1
-2+M

4 a4 -2 1 1
4-M

0 a5 0 1 0
0

0 a6 0 0 -1
-M

-M a7 1 0 0
0

-M a8 0 1 0
0

B a7 a5 a8

XB 200 600 120

a1
(2)

100

0 1
10+3M

120

10 0 -M
cj-fj

a1 a5 a8

100 600 20

1 0 0
0

1/2 2 3 /2
3/2M+1

0 1 1
-2+M

-1 1
(2) 2M+14

0 1 0
0

0 0 -1
-M

0 0 1
0

600
10

10 0 4
cj-fj

a1 a5 a4

110 590 10
1140

1 0 0
0

5/4 5/4 3/4


-19/2

1/2 1/2 1/2


-9

0 0 1
0

0 1

- 1/2
(1/ 2)

1180

-1/2
0
7

10 0 4
cj-fj

a1 a6 a4

700 1180 600


9400

1 0 0
0

5/2 5/2 2
-27

1 1 1
-16

0 0 1
0

1 2 1
-14

0 1 0
0

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


34 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 ; 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 = 15 . ,

x1, x2 ,x3 0.

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

c1=2 CB 0 -M
cj-fj

c2=1 c3=2 a2 1 1
1+M

c4=0 c4= - M a4 1 0
0

B a4 a5

XB 20 30

a1 5 -1
2-M

a3
(1)

a5 0 1
0

20

1
2+M

2 -M
cj-fj

a3 a5

20 10

5 -6 -8-6M

1 0 -1

1 0 0

1 -1

0 1

-2-M 0

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 Resurse Ap Gaz metan Beneficiu unitar Consumuri specifice P1 2 10 10 P2 3 50 15 P3 2 30 25
35

Disponibil 40.000 t 500.000 mc

Matematici aplicate in economie

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 3x1 + x2 - 2 x3 = 2 4x1 +3x2 +2 x3= 1 x1, x2 , x3 0

b) max f = 3x1 + 2x2 x3 +16 x4 3x1+2x2+5x3+4x4 8 x1+x2+2x3+x4 4 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 2x1 + x2 +3x3 4 5x1 + 2x2 +7x3 8 x1, x2,x3 0

b)

max f = 10 x1 +15 x2 2x1 +4x2 40 6x1 +2x2 60 x1, x2 0

c)

max f = 4x1 + x2 +6 x3 2x1 +3x2 +x3 7 3x1 + x2 +x3 11 x1, x2, x3 0

d) min f = x1 +3x2 4x3 - 2x4 -9x5 x1 + x3 x4 x5 = 3 x1 +x2 2x3 - 3x5 = -1 x1, x2, x3 ,x4, x5 0 f) max f = x1 + 2x2 +3x3 - x4 x1 +2x2 +3x3 2 x1+ x2 + 5x3 =15 =20

e)

min f = 9x1 + 3x2 +2 x3 4x1 + x2 +5 x3 = 7 3x1 + x2 +4 x3 5 x1, x2 , x3 0

x1 +2x2 + x3 +x4 =10; x1, x2 ,x3,x4 0. h) min f = 6x1 + x2 3x1 + x2 4 x1, x2 0

g)

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

x1 +2 x2 3

36 Matematici aplicate in economie

Programare liniar 5. S se determine valoarea maxim i minim a funciei

f = 9x4 -14x5 -8 x6 cu restriciile x1 x2 + x4 x5 x6 = 2 - 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

1 x1 x3 + 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

37

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