Sunteți pe pagina 1din 51

CO - Cursul 1

Universitatea POLITEHNICA din Bucureti

Cercetri Operaionale

Autor curs: Conf. dr. ing. mat. Ovidiu Bljin


Cap.1. Programare liniar

CO - Cursul 1

Capitolul 1

PROGRAMARE LINIAR
(I)

Cap.1. Programare liniar

CO - Cursul 1

1. Probleme de programare liniar 2. Elemente de programare liniar

Cap.1. Programare liniar

CO - Cursul 1

1. Probleme de programare liniar


1.1. Exemple de probleme de programare liniar 1.2. Forme ale problemelor de programare liniar

Cap.1. Programare liniar

CO - Cursul 1

Condiiile n care se desfoar o anumit activitate economic analizat conduc la un sistem de relaii - ecuaii sau inecuaii - care conin variabilele problemei i coeficienii tehnologici care o caracterizeaz. Aceste relaii reprezint restriciile problemei. Scopul studiului este optimizarea unui anumit rezultat dependent de variabilele problemei. n formularea problemelor de programare matematic, obiectivul apare sub forma unei funcii, denumit funcie obiectiv (scop), ale crei valori maxime sau minime sunt cutate.
Cap.1. Programare liniar

CO - Cursul 1

Restriciile problemei i funcia obiectiv, cu anumite condiii impuse variabilelor, constituie modelul matematic al problemei. Dac att funcia obiectiv ct i restriciile sunt funcii liniare, atunci modelul este o problem de programare liniar.

Cap.1. Programare liniar

CO - Cursul 1

1.1. Exemple de probleme de programare liniar


Exemplu. Problem de organizare a produciei O firm trebuie s realizeze n tipuri de produse Pj (j =1,..., n), folosind m tipuri de resurse Ri (i = 1,.., m). Se cunosc: coeficienii tehnologici aij (cantitatea din resursa Ri necesar producerii unei uniti din produsul Pj i care nu depinde de intensitatea la care urmeaz s se desfoare procesul de producie); cantitile disponibile bi din resursele Ri; profitul unitar cj pentru fiecare produs Pj.
Cap.1. Programare liniar

CO - Cursul 1

S se ntocmeasc programul (planul) optim de producie al firmei astfel nct profitul total realizat s fie maxim. Elaborarea modelului matematic al problemei: Se noteaz cu xj (j = 1,..., n) cantitatea din produsul Pj ce urmeaz a fi produs. Funcia obiectiv este profitul total, care trebuie maximizat: [max] f = c1 x1 + c2 x2 + L + cn xn Restriciile problemei se datoreaz limitrii resurselor. Consumul din fiecare resurs Ri (i = 1,..,
Cap.1. Programare liniar

CO - Cursul 1

m) nu poate depi cantitatea disponibil:


ai1x1 + ai 2 x2 + L + ain xn bi , i = 1, m

Condiiile asupra variabilelor sunt de nenegativitate: xj 0 (j =1,, n). Modelul matematic al problemei are forma:
[max] f = c1 x1 + c2 x2 + L + cn xn a11 x1 + a12 x2 + L + a1n xn b1 LLLLLLLLLLL am1 x1 + am 2 x2 + L + amn xn bm x 0, x 0, ..., x 0 2 n 1

Cap.1. Programare liniar

CO - Cursul 1

10

Exemplu. Problem de utilizare a capacitii utilajelor O firm realizeaz n tipuri de produse care pot fi fabricate pe m utilaje, care au capaciti de producie limitate pe o anumit perioad. Se cunosc: procentul aij din capacitatea utilajului i (i = 1,..., m) necesar pentru fabricarea unei uniti din produsul j (j = 1,..., n); profitul unitar cj al produsului j. S se stabileasc un program de fabricaie care s permit utilizarea optim a capacitii disponibile a celor m utilaje.
Cap.1. Programare liniar

CO - Cursul 1

11

Elaborarea modelului matematic: Variabilele problemei sunt cantitile de produse fabricate n perioada considerat. Se noteaz cu xj (j = 1,, n) numrul de produse de tipul j. Funcia obiectiv este profitul total obinut de firm pentru cele n tipuri produse; funcia trebuie maximizat:
[max] f = c j x j
j =1 n

Restriciile de capacitate ale celor m utilaje:

aij x j 1,
j =1

i = 1, m

Cap.1. Programare liniar

CO - Cursul 1

12

Modelul matematic al problemei are forma:


n [max] f = c j x j j =1 n aij x j 1, i = 1, m j =1 x j 0, j = 1, n

Cap.1. Programare liniar

CO - Cursul 1

13

1.2. Forme ale problemelor de programare liniar


Definiie. Forma general a unei probleme de programare liniar:
[min] ([max]) z = c1 x1 + c2 x2 + L + cn xn a x + a x + L + a x ()(=)b 1n n 1 11 1 12 2 a21 x1 + a22 x2 + L + a2 n xn ()(=)b2 LLLLLLLLLLLLLLL a x + a x + L + a x ()(=)b m2 2 mn n m m1 1

unde coeficienii cj R, aij R, bi R (i = 1,,m; j = 1,.., n).


Cap.1. Programare liniar

CO - Cursul 1

14

Funcia liniar z este funcia obiectiv a problemei; ea trebuie minimizat sau maximizat. Celelalte relaii constituie sistemul de restricii ale problemei. n fiecare relaie apare doar unul din simbolurile " ", " ", " = ". Membrul stng al fiecrei relaii este o funcie liniar n variabilele x1 , x2 ,..., xn . Definiie. O problem de programare liniar (PL) const n optimizarea (minimizarea sau maximizarea) unei funcii liniare, cu respectarea unor restricii (egaliti i/sau inegaliti) liniare.
Cap.1. Programare liniar

CO - Cursul 1

15

Definiie. O problem de PL are forma standard dac toate restriciile sunt ecuaii i toate variabilele sunt supuse condiiei de nenegativitate. Problema de PL n forma standard scris explicit: [min] ([max]) z = c1 x1 + c2 x2 + L + cn xn a11x1 + a12 x2 + L a1n xn = b1 LLLLLLLLLLL am1 x1 + am 2 x2 + L amn xn = bm x 0, x 0, ..., x 0 2 n 1

Cap.1. Programare liniar

CO - Cursul 1

16

Problema de PL n forma standard scris restrns:


n [min] ([max]) z = c j x j j =1 n aij x j = bi , 1 i m j =1 x j 0, 1 j n

Problema de PL scris n format matriceal: min (max) c T x Ax = b x0


Cap.1. Programare liniar

CO - Cursul 1

17

Observaie. Din punct de vedere algebric, sistemul de restricii (ecuaii liniare) Ax = b poate fi: incompatibil, compatibil unic determinat sau compatibil nedeterminat. Evident, numai ultimul caz prezint interes practic, pentru c doar atunci se pune efectiv problema de a alege dintre mai multe soluii pe cea mai bun. Definiie. O restricie a unei probleme PL se numete concordant dac este o inegalitate de tipul " " cnd funcia obiectiv este minimizat i este de tipul " " cnd funcia este maximizat.
Cap.1. Programare liniar

CO - Cursul 1

18

Definiie. O problem de PL are forma canonic dac toate restriciile sunt concordante i toate variabilele sunt supuse condiiei de nenegativitate. O problem de PL de minimizare, n form canonic, se scrie explicit, respectiv, matriceal:

min z = c1x1 + c2 x2 + L + cn xn + + L a x a x a x b 11 1 12 2 1 1 n n LLLLLLLLLLL am1 x1 + am 2 x2 + L amn xn bm x j 0 , j = 1, n


Cap.1. Programare liniar

min c T x Ax b x0

CO - Cursul 1

19

O problem de PL de maximizare, n form canonic, se scrie explicit, respectiv, matriceal: max z = c1 x1 + c2 x2 + L + cn xn T max c x L a x a x a x b + + 11 1 12 2 1 1 n n Ax b LLLLLLLLLLL x0 am1 x1 + am 2 x2 + L amn xn bm x j 0 , j = 1, n

Cap.1. Programare liniar

CO - Cursul 1

20

Orice problem de PL n forma general poate fi adus la forma standard, canonic sau mixt cu urmtoarele transformri echivalente: a) sensul unei inegaliti se schimb prin nmulire cu -1; b) transformarea unei inegaliti ntr-o egalitate se realizeaz prin introducerea unei variabile, numit variabil de compensare (abatere sau ecart), y 0, astfel nct:
aT x + y = a x y0
T

aT x y = a x y0
T

Cap.1. Programare liniar

CO - Cursul 1

21

c) o egalitate poate fi nlocuit de acelai semn: T a x T a x = T sau - a x

cu dou inegaliti
aT x T - a x

d) o variabil nepozitiv se poate nlocui cu o variabil nenegativ prin substituia: y = x x0 y0

e) o variabil arbitrar se poate nlocui cu dou variabile nenegative prin substituia:


Cap.1. Programare liniar

CO - Cursul 1

22

x= yz x arbitrar y, z 0

f) transformarea operatorului maxim n minim (sau invers) se realizeaz prin schimbarea semnelor coeficienilor din funcia obiectiv:
n min ci xi = max ci xi i =1 i =1 Observaii: 1) Variabilele de compensare nu apar i n expresia funciei obiectiv a problemei (coeficienii lor n funcia obiectiv sunt nuli).
n
Cap.1. Programare liniar

CO - Cursul 1

23

2) n problemele de PL cu semnificaie economic concret, variabilele de compensare introduse primesc, la rndul lor, interpretri economice precise; se motiveaz astfel includerea acestor variabile n setul variabilelor iniiale. Rezolvarea unei probleme de PL const n determinarea valorilor variabilelor care satisfac restriciile problemei i care optimizeaz funcia obiectiv.

Cap.1. Programare liniar

CO - Cursul 1

24

Exemplu. S se scrie formele echivalente ale problemei de PL: min (3x1 5 x2 + 2 x3 ) x1 + 4 x2 + 3 x3 = 15 1 2 x1 x2 3 x2 + x3 7 x ,x ,x 0 1 2 3

Soluie. Problema din enun este n forma general. Forma standard a problemei se obine prin introducerea variabilelor de compensare x4 i x5, nenegative, n ultimele dou restricii:
Cap.1. Programare liniar

CO - Cursul 1

25

min (3x1 5 x2 + 2 x3 ) x1 + 4 x2 + 3x3 = 15 x4 =1 2 x1 x2 3x2 + x3 + x5 = 7 x ,..., x 0 5 1

Forma canonic de minimizare a problemei se obine prin transformarea primei restricii a problemei originale n dou inegaliti de tipul " ":

Cap.1. Programare liniar

CO - Cursul 1

26

min (3 x1 5 x2 + 2 x3 ) x1 + 4 x2 + 3 x3 15 - x1 4 x2 3 x3 15 2x x 1 1 2 3 x2 x3 7 x1 , x2 , x3 0

Forma canonic de maximizare a problemei este urmtoarea:

Cap.1. Programare liniar

CO - Cursul 1

27

max (3x1 + 5 x2 2 x3 ) x1 + 4 x2 + 3x3 15 x1 4 x2 3x3 15 2 x + x 1 1 2 3 x2 + x3 7 x1 , x2 , x3 0

Cap.1. Programare liniar

CO - Cursul 1

28

2. Elemente de programare liniar


2.1. Soluii ale problemelor de programare liniar 2.2. Interpretarea geometric a unei probleme de programare liniar 2.3. Metoda grafic de rezolvare a problemelor de programare liniar

Cap.1. Programare liniar

CO - Cursul 1

29

2.1. Soluii ale problemelor de programare liniar


Fie problema de PL n forma standard:
min [max] z = c T x Ax = b x0

(*)

unde x, c Rn, b Rm, A Mm n , cu rang A = m.


Definiie. Vectorul xRn ale crui componente satisfac restriciile i condiiile date n (*) se numete soluie posibil (admisibil sau realizabil) sau program al problemei de PL.
Cap.1. Programare liniar

CO - Cursul 1

30

Vom nota mulimea soluiilor posibile ale problemei (*) prin: P = {x R n Ax = b, x 0} Observaie: Evident, prezint interes practic situaia n care mulimea P .
Definiie. Soluia posibil x1 este mai bun dect soluia posibil x2, dac z(x1) z(x2) cnd pentru funcia obiectiv z se cere minimul, respectiv, z(x1) z(x2) cnd pentru funcia obiectiv z se cere maximul.
Cap.1. Programare liniar

CO - Cursul 1

31

Definiie. Vectorul xRn se numete soluie de baz pentru sistemul de ecuaii Ax = b dac: a) x este soluie a sistemului Ax = b; b) coloanele din matricea A corespunztoare componentelor nenule ale lui x formeaz o mulime liniar independent. Definiie. O soluie de baz x* este soluie optim a unei probleme de PL dac z(x*) are cea mai mic valoare posibil n cazul unei probleme de minimizare, respectiv, cea mai mare valoare posibil n cazul unei probleme de maximizare.
Cap.1. Programare liniar

CO - Cursul 1

32

Exemplu. Se consider problema de PL n forma standard:


[min] f = 3 x1 + x2 + 4 x3 + x4 x + 2x + x 2x = 9 2 3 4 1 + x4 = 4 x1 x2 x1 + x2 + x3 + 3 x4 = 6 x 0, j = 1, 4 j
x1 = (11 / 3, 2/3, 6, 1) T este o soluie posibil, deoarece

verific sistemul de restricii i condiiile de nenegativitate; f ( x1 ) = 110 / 3 .


Cap.1. Programare liniar

CO - Cursul 1

33

o soluie de baz nedegenerat, deoarece verific sistemul de restricii, condiiile de nenegativitate i are m = 3 componente strict pozitive; f ( x 2 ) = 274 / 7 .
x = (17 / 3, 25/6, 0, 5/2) este o soluie de baz nedegenerat optim; f ( x 3 ) = f min = 71 / 3.
3 T

x 2 = (23 / 7 , 0, 50/7 , 5/7 ) este


T

Cap.1. Programare liniar

CO - Cursul 1

34

Mulimea programelor (soluiilor admisibile) P este o mulime convex i nchis. Frontiera sa este compus din toate punctele ale cror coordonate satisfac, cu egalitate, cel puin una dintre restricii.
Definiie. Vectorul x P se numete vrf (punct de extremum) al mulimii P dac x nu poate fi scris ca o combinaie liniar convex nebanal de vectori din P, adic / (0,1) astfel nct / x1, x2P, x1 x2, 1 2 x = x + (1 - ) x . Teorem. O soluie posibil este soluie de baz dac i numai dac este vrf pentru mulimea P.
Cap.1. Programare liniar

CO - Cursul 1

35

Definiie. Se numete baz a unei probleme de PL n forma standard un grup de m coloane din matricea A liniar independente. Definiie. Baza B care satisface condiia B 1b 0 se numete baz primal admisibil.

Cap.1. Programare liniar

CO - Cursul 1

36

2.2. Interpretarea geometric a unei probleme de programare liniar


2.2.1. Geometria restriciilor
Relaia ai1 x1 + ai 2 x2 + L + ain xn = bi reprezint n spaiul n-dimensional un hiperplan, care mparte spaiul n dou semispaii exprimate analitic prin dou inegaliti. n spaiul R2 hiperplanul este o dreapt care mparte planul n dou semiplane (sau regiuni). n spaiul R3 hiperplanul este un plan care mparte spaiul n dou semispaii.
Cap.1. Programare liniar

CO - Cursul 1

37

Exemplu. Fie restricia 2x + 3y 12 i semispaiul nchis format din punctele care satisfac restricia. Punctul O (0, 0) nu aparine dreptei 2x + 3y = 12, iar coordonatele sale verific inegalitatea. Ca urmare, semispaiul conine originea O:

Cap.1. Programare liniar

CO - Cursul 1

38

Exemplu. Mulimea soluiilor admisibile P care satisfac sistemul de restricii:


3x + 2 y 6 x + 2 y 4 x0 y0

este domeniul haurat din figur:

Cap.1. Programare liniar

CO - Cursul 1

39

Exemplu. Fie restricia 4x + 2y + 5z 20 ce definete un semispaiu nchis n R3. Acesta se poate reprezenta n spaiul tridimensional prin trasarea planului 4x + 2y + 5z = 20. Punctul origine O verific restricia.

Cap.1. Programare liniar

CO - Cursul 1

40

Exemplu. Mulimea soluiilor admisibile P care satisfac sistemul de restricii:


5 x + 3 y + 5 z 15 10 x + 4 y + 5 z 20 este domeniul haurat din figur: x0 y0 z0

Cap.1. Programare liniar

CO - Cursul 1

41

2.2.2. Geometria funciei obiectiv


Funcia obiectiv a unei probleme de PL este: z = c1 x1 + c2 x2 + L + cn xn Relaia de mai jos, n care k este o constant oarecare, reprezint ecuaia unui hiperplan: c1 x1 + c2 x2 + L + cn xn = k Soluia unei probleme de PL de maximizare este reprezentat de punctul (punctele) x din mulimea soluiilor admisibile P pentru care valoarea lui k este cea mai mare posibil. Din punct de vedere geometric, soluia este dat de hiperplanul care intersecteaz mulimea P, pentru care k este maxim.
Cap.1. Programare liniar

CO - Cursul 1

42

Exemplu. Fie problema de programare liniar:


[max] z = x + y x + 2y 8 3 x + 2 y 12 x 0, y 0

Ecuaia hiperplanului x + y = k reprezint o dreapt numit i curb de nivel a funciei obiectiv. Din geometria analitic se tie c distana d de la origine la dreapta de nivel x + y = k este d = k / 2. Deci, valoarea maxim a lui k se obine atunci cnd d are valoarea maxim. Deoarece soluia optim satisface att sistemul de restricii, ct i ecuaia curbei de nivel, este necesar ca
Cap.1. Programare liniar

CO - Cursul 1

43

dreapta s aib un punct n comun cu poligonul. Punctul respectiv are coordonatele (2, 3).

Cap.1. Programare liniar

CO - Cursul 1

44

2.3. Metoda grafic de rezolvare a problemelor de programare liniar


Metoda grafic poate fi utilizat numai pentru rezolvarea problemelor de PL cu dou variabile. Mulimea P se reprezint grafic. n spaiul R2 oricare restricie a problemei reprezint o dreapt care mparte planul n dou semiplane (regiuni). Se traseaz dreapta i cu ajutorul unui punct arbitrar ales, dar care s nu aparin dreptei, se decide care dintre cele dou semispaii este cel care convine. O soluie posibil a problemei este soluie de baz dac i numai dac este vrf pentru mulimea P.
Cap.1. Programare liniar

CO - Cursul 1

45

Soluia (soluiile) de baz optim a problemei se alege dup compararea valorilor funciei obiectiv calculate pentru soluiile de baz. Observaii: 1) Soluia optim a unei probleme de PL este chiar unul din vrfurile poligonului reprezentnd mulimea soluiilor posibile P. 2) n cazul n care curbele de nivel sunt drepte paralele cu una din laturile poligonului soluiilor admisibile, soluiile optime ale problemei sunt n numr infinit; din punct de vedere geometric, ele sunt punctele de pe acea latur a poligonului.
Cap.1. Programare liniar

CO - Cursul 1

46

Exemplu. S se rezolve problema de PL:


[max] z = 5 x1 + 4 x2 3 x + 2 x 21 2 1 x1 + x2 8 x1 6 x2 7 x1 , x2 0

Soluie. Condiiile de nenegativitate ale variabilelor implic utilizarea primului cadran al sistemului de axe x1Ox2 pentru reprezentarea grafic a dreptelor (obinute din cele patru restricii ale problemei):
Cap.1. Programare liniar

CO - Cursul 1

47

(d1 ) : 3 x1 + 2 x2 = 21 (d 2 ) : x1 + x2 = 8 (d3 ) : x1 =6 (d 4 ) : x2 = 7

i a dreptei (curba de nivel) (d): 5x1 + 4 x2 = 20. Intersecia celor patru semiplane este reprezentat prin mulimea haurat din figur i este mulimea P a soluiilor admisibile (posibile). Cel puin unul din vrfurile acestui poligon convex, O(0, 0), A(6, 0), B(6, 3/2), C(5, 3), D(1, 7), E(0, 7) este soluie optim a problemei. Pentru a-l determina se nlocuiesc, pe rnd, coordonatele acestor
Cap.1. Programare liniar

CO - Cursul 1

48

Cap.1. Programare liniar

CO - Cursul 1

49

puncte n expresia funciei obiectiv z. Avem: z(O) = 5 0 + 4 0 = 0 z(A) = 5 6 + 4 0 = 30 z(B) = 5 6 + 4 3/2 = 36 z(C) = 5 5 + 4 3 = 37 z(D) = 5 1 + 4 7 = 33 z(E) = 5 0 + 4 7 = 28 Valoarea maxim se obine pentru punctul C(5, 3). Prin urmare, soluia optim a problemei * * este x1 = 5, x 2 = 3. Valoarea corespunztoare a * z funciei obiectiv este = z max = 37.
Cap.1. Programare liniar

CO - Cursul 1

50

Exemplu. Fie problemele de PL:

[max] z = 5 x + 3 y x + 2y 4 3x + 2 y 9 x 0, y 0

[min] z = 5 x + 3 y x + 2y 4 3x + 2 y 9 x 0, y 0

Pentru problema de maximizare, curbele de nivel au n comun cu tronsonul soluiilor admisibile un segment, orict de mare ar fi distana de la origine la respectivele drepte. Funcia obiectiv poate lua valori orict de mari, are valoarea optim infinit. Pentru problema de minimizare, valoarea
Cap.1. Programare liniar

CO - Cursul 1

51

minim se obine cnd distana de la origine la curbele de nivel este minim, n punctul (0, 2).

Cap.1. Programare liniar