Sunteți pe pagina 1din 55

Matematici speciale

Capitolul 1

Programare liniar (I)


Conf. dr. ing. mat. Ovidiu Bljin

1. Probleme de programare liniar


2. Elemente de programare liniar

MS - Cursul 1

Cap.1. Programare liniar

1. Probleme de programare liniar


1.1. Exemple de probleme de programare
liniar
1.2. Forme ale problemelor de programare
liniar
1.3. Interpretarea economic

MS - Cursul 1

Cap.1. Programare liniar

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.
MS - Cursul 1

Cap.1. Programare liniar

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.

MS - Cursul 1

Cap.1. Programare liniar

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.
MS - Cursul 1

Cap.1. Programare liniar

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,..,
MS - Cursul 1

Cap.1. Programare liniar

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
MS - Cursul 1

Cap.1. Programare liniar

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.
MS - Cursul 1

Cap.1. Programare liniar

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

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

Restriciile de capacitate ale celor m utilaje:


n

aij x j 1,

i = 1, m

j =1

MS - Cursul 1

Cap.1. Programare liniar

10

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

MS - Cursul 1

Cap.1. Programare liniar

11

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).
MS - Cursul 1

Cap.1. Programare liniar

12

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.
MS - Cursul 1

Cap.1. Programare liniar

13

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

MS - Cursul 1

Cap.1. Programare liniar

14

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

MS - Cursul 1

Cap.1. Programare liniar

15

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.
MS - Cursul 1

Cap.1. Programare liniar

16

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

a11 x1 + a12 x2 + L a1n xn b1


LLLLLLLLLLL
am1 x1 + am 2 x2 + L amn xn bm

x j 0 , j = 1, n
MS - Cursul 1

Cap.1. Programare liniar

min c T x

Ax b
x0

17

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

MS - Cursul 1

Cap.1. Programare liniar

18

Definiie. O problem de PL are forma mixt dac


toate restriciile sunt fie ecuaii, fie inegaliti
concordante i toate variabilele sunt supuse condiiei
de nenegativitate:
min (max) c T x
A x b
1
1
A2 x = b2
x 0

MS - Cursul 1

Cap.1. Programare liniar

19

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

MS - Cursul 1

aT x y =
a x
y0
T

Cap.1. Programare liniar

20

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:
MS - Cursul 1

Cap.1. Programare liniar

21

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

MS - Cursul 1

Cap.1. Programare liniar

22

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.

MS - Cursul 1

Cap.1. Programare liniar

23

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:
MS - Cursul 1

Cap.1. Programare liniar

24

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

MS - Cursul 1

Cap.1. Programare liniar

25

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

x1 , x2 , x3 0

Forma canonic de maximizare a problemei este


urmtoarea:

MS - Cursul 1

Cap.1. Programare liniar

26

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

3 x2 + x3 7

x1 , x2 , x3 0

MS - Cursul 1

Cap.1. Programare liniar

27

1.3. Interpretarea economic


Fie problema de PL:

MS - Cursul 1

min (max) z = c j x j
j =1

n
aij x j bi , 1 i k
j =1
n
aij x j bi , k + 1 i l
j =1
n
aij x j = bi , l + 1 i m
j =1
x j 0, 1 j n

Cap.1. Programare liniar

(1)
(2)
(3)
(4)
(5)
28

Relaia (1) exprim matematic funcia obiectiv


z i arat evaluarea volumului activitilor desfurate
la nivelurile xj, prin intermediul coeficienilor cj, ce
pot fi costuri unitare n cazul problemelor de minim,
sau profituri unitare, n cazul problemelor de maxim.
Relaiile (2)-(4) constituie sistemul de restricii
ale problemei, exprim diverse cerine tehnico-economice de desfurare a activitii, de plan, de pia etc.
Ele sunt scrise cu ajutorul coeficienilor tehnicoeconomici aij, constani ntr-un interval de timp
determinat.
Termenii liberi bi cuantific, dup caz, resursele
MS - Cursul 1

Cap.1. Programare liniar

29

disponibile materiale, financiare, de capaciti de


producie sau normative minimale, capacitatea
minim de absorbie a pieii etc.
Restriciile (2) coreleaz volumul consumului
activitilor cu cel al disponibilului din fiecare resurs.
Restriciile (3) impun un volum al activitilor
peste limitele minimale.
Restriciile (4) impun realizarea strict a unui
plafon prestabilit.
Relaiile (5) exprim condiiile de nenegativitate impuse variabilelor xj i au ca sens economic
nivelul de desfurare al activitilor.
MS - Cursul 1

Cap.1. Programare liniar

30

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

MS - Cursul 1

Cap.1. Programare liniar

31

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.
MS - Cursul 1

Cap.1. Programare liniar

32

Vom nota mulimea soluiilor posibile ale


problemei (*) prin:
n
P = {x R 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.
MS - Cursul 1

Cap.1. Programare liniar

33

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.
MS - Cursul 1

Cap.1. Programare liniar

34

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 .
MS - Cursul 1

Cap.1. Programare liniar

35

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 .
MS - Cursul 1

Cap.1. Programare liniar

36

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


2

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 .
x3 = (17 / 3, 25/6, 0, 5/2) este o soluie de baz
3
f
(
x
) = f min = 71 / 3.

nedegenerat optim;
T

MS - Cursul 1

Cap.1. Programare liniar

37

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 / x1, x2P, x1 x2, / (0,1) astfel nct
x = x1 + (1 - ) x 2.
Teorem. O soluie posibil este soluie de baz
dac i numai dac este vrf pentru mulimea P.
MS - Cursul 1

Cap.1. Programare liniar

38

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.

MS - Cursul 1

Cap.1. Programare liniar

39

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.
MS - Cursul 1

Cap.1. Programare liniar

40

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:

MS - Cursul 1

Cap.1. Programare liniar

41

Exemplu. Mulimea soluiilor admisibile P care


satisfac sistemul de restricii:
3x + 2 y 6
x + 2 y 4
x0

y 0

MS - Cursul 1

este domeniul haurat din figur:

Cap.1. Programare liniar

42

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.

MS - Cursul 1

Cap.1. Programare liniar

43

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

MS - Cursul 1

Cap.1. Programare liniar

44

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.
MS - Cursul 1

Cap.1. Programare liniar

45

Exemplu. Fie problema de programare liniar:


[max] z = x + y
x + 2 y 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
MS - Cursul 1

Cap.1. Programare liniar

46

dreapta s aib un punct n comun cu poligonul.


Punctul respectiv are coordonatele (2, 3).

MS - Cursul 1

Cap.1. Programare liniar

47

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.
MS - Cursul 1

Cap.1. Programare liniar

48

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.
MS - Cursul 1

Cap.1. Programare liniar

49

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):
MS - Cursul 1

Cap.1. Programare liniar

50

(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
MS - Cursul 1

Cap.1. Programare liniar

51

MS - Cursul 1

Cap.1. Programare liniar

52

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.
MS - Cursul 1

Cap.1. Programare liniar

53

Exemplu. Fie problemele de PL:

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

x 0, y 0

[min] z = 5 x + 3 y
x + 2 y 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
MS - Cursul 1

Cap.1. Programare liniar

54

minim se obine cnd distana de la origine la


curbele de nivel este minim, n punctul (0, 2).

MS - Cursul 1

Cap.1. Programare liniar

55

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