Sunteți pe pagina 1din 8

1

PROGRAMAREA LINIAR

Prezentare general

Mulimea sistemelor economice concrete i multitudinea problemelor conducerii
acestora au creat o diversitate de reprezentri economico-matematice, denumite modele.
Varietatea acestora este determinat, n principal, de structura "obiectului" analizat, de
scopul cercetrii precum i de informaia disponibil.
Modelele de programare matematic i mai ales subclasa acestora modelele de
programare liniar ocup un loc deosebit de important, att n teoria ct i n practica
economic. Teoria economic a beneficiat de aportul abordrii interdisciplinare care a permis
aprofundarea analizei eficienei maximale a sistemelor complexe, a permis descoperirea unor
concepte noi ale optimului economic, a perfecionat metodele de cercetare i cunoatere iar
practica economic s-a mbogit cu un instrument deosebit de util analizei economice i
fundamentrii deciziilor.
Structura modelului general de programare liniar se constituie n primul rnd prin
mulimea de activiti {A
1
, A
2
, ... A
n
} care compun sistemul economic analizat, mulimea de
resurse utilizate {R
1
, R
2
, ... R
m
} precum i prin relaiile tehnico-economice dintre acestea.
Legtura dintre activiti i resurse este determinat de tehnologia de fabricaie
corespunztoare fiecrei activiti A
j
(j=1,...,n) i poate fi caracterizat numeric prin vectorul
coloan a
(j)
de componente (a
1j
, a
2j
, ... a
mj
). Elementele {a
ij
, i = 1,...,m; j = 1,...,n} se numesc
coeficieni tehnici sau coeficieni de consum specific i arat ce cantitate din resursa R
i
se
consum pentru producerea unei uniti din produsul (serviciul) P
j
(ca rezultat al activitii
A
j
). Toate "tehnologiile" de fabricaie definite de vectorii coloan a
(j)
se pot organiza ntr-o
matrice A cu m linii i n coloane; fiecare linie se refer la o resurs R
i
(i = 1,...,m) i fiecare
coloan se refer la o activitate A
j
(j = 1,...,n).
Notnd cu x
j
(j = 1,...,n) rezultatul activitii A
j
ntr-o perioad dat i cu b
i
(i = 1,...,m)
cantitile disponibile din resursele R
i
(i = 1,...,m), se pot scrie matematic urmtoarele
restricii tehnico-economice:
(1)
m n mn 2 m2 1 m1
2 n 2n 2 22 1 21
1 n 1n 2 12 1 11
b x a ... x a x a
b x a ... x a x a
b x a ... x a x a
s + + +
s + + +
s + + +

sau Ax s b

unde A =
|
|
|
.
|

\
|
mn m2 m1
2n 22 21
1n 12 11
a a a
a a a
a a a

. . .

; x =
|
|
|
.
|

\
|
n
2
1
x
x
x
.
i b =
|
|
|
.
|

\
|
n
2
1
b
b
b
.


Fiecare inecuaie/restricie ncorporeaz dou afirmaii:

a. cantitatea consumat dintr-o resurs nu poate depi volumul disponibil
(propoziie de logic economic)
b. consumul total R
ij
din resursa R
i
pentru efectuarea activitii A
j
este proporional
cu intensitatea acesteia, adic cu x
j
, deci R
ij
(-)
= a
ij
x
j
(ipotez simplificatoare)

(-)
De aici rezult posibilitatea s calculm coeficienii a
ij
pe baza informaiilor disponibile privind cantitile
consumate R
ij
i nivelul x
j
: a
ij
=
j
x
ij
R
; i = 1,...,m; j = 1,...,n
2


Sistemul de restricii (1) realizeaz legtura dintre resurse i activiti prin intermediul
celor m restricii liniare.
Modelul problemei de programare liniar conine restricii de tipul (1) precum i un
criteriu de "performan" care s permit evaluarea eficienei fiecrei activiti. n funcie de
scopul urmrit, putem alege drept criteriu de eficien un indicator care msoar efortul, unul
care msoar rezultatul sau un indicator exprimat ca raport ntre rezultat i efort (sau efort pe
rezultat).
Este evident c eficiena maxim nseamn minimizarea efortului i maximizarea
rezultatului, iar conceptul de optim se definete, n acest caz, ca un program xe R
n
care
minimizeaz sau maximizeaz o funcie obiectiv i, n acelai timp, satisface toate restriciile
tehnico-economice.
Presupunnd c fiecare component a vectorului linie c = (c
1
, c
2
, ..., c
n
) msoar
eficiena unei uniti din rezultatul activitii A
j
, atunci se poate introduce funcia liniar:
f(x) = c
1
x
1
+ c
2
x
2
+ ... + c
n
x
n

care evalueaz performana oricrui program x.
Sintetiznd, obinem urmtorul program de programare liniar:

( ) | |

= >
e >
e s

=
=
n 1, j 0 x
I k b x a
I i b x a
x optim
j
2
n
1 j
k j kj
1
n
1 j
i j ij
f
x


Relaiile (1), (2) i (3) constituie mpreun modelul general al unei probleme de
programare liniar, avnd fiecare un rol specific:
1. relaia (1), unde f(x) =

=

n
1 j
j j
c x este denumit funcia obiectiv de eficien a
problemei, evalueaz eficiena/performana fiecrei variante de program x;
2. relaiile (2) de tipul

=
s
n
1 j
i j ij
b x a reprezint restricii de tip resurse; iar restriciile
de tipul

=
>
n
1 j
k j kj
b x a se refer la restricii tehnico-economice de tip calitativ (i
ca urmare indicatorul b
k
este limita inferioar impus "reetei optime";
3. relaia (3) x
j
> 0 j = 1,...,n, numit condiia de nenegativitate a variabilelor, asigur
obinerea unei soluii realizabile din punctul de vedere al logicii economice.
Dup cum s-a artat la nceput, structura concret a unei aplicaii n economie este
determinat n primul rnd de obiectivul urmrit.
Astfel, n cazul problemei determinrii structurii sortimentale optime a produciei, se
cunosc cantitile disponibile (cantitile de care se poate face rost pe perioada analizat) din
fiecare materie prim {b
i
, i =1,...,m}, coeficienii tehnologici {a
ij
, i = 1,...,m, j = 1,...,n} (a
ij

reprezint cantitatea din materia prim i necesar fabricrii unei uniti din produsul de tipul
unde I
1
I
2
= {1,2,...,m}
(1)
(2)
(3)
3

j), cantitile maxime {
j
x , j = 1,...,n} i minime {
j
x , j = 1,...,n} ce pot fi produse din fiecare
sortiment n perioada analizat i profiturile unitare {p
j
, j = 1,...,n} ale fiecrui tip de produs.
Se cere gsirea acelor cantiti x
j
care trebuie fabricate din fiecare tip de produs astfel nct s
se obin profitul maxim, n condiiile nedepirii disponibilurilor din fiecare resurs.
Pentru simplificarea modelului, se presupune c preul unui bun nu depinde de
cantitatea produs din acesta sau din celelalte, consumul din fiecare materie prim este direct
proporional cu cantitatea produs i, pentru fiecare bun, consumurile dintr-o resurs sau alta
nu se condiioneaz reciproc.
Problema matematic echivalent este:

( )

= >
= s s
= s + + +
+ + +
=
n 1,..., j 0 x
n 1,..., j x x x
m 1,..., i b x a ... x a x a
x p ... x p x p max
j
j j j
i n in 2 i2 1 i1
n n 2 2 1 1
n 1, j x
j


n unele probleme, n loc de profiturile p
j
se cunosc veniturile unitare v
j
sau costurile
unitare c
j
sau alt criteriu de eficien, scopul fiind maximizarea venitului, minimizarea
costurilor respectiv optimul indicatorului de eficien respectiv, sau toate la un loc. De
asemenea pot lipsi condiiile de limitare a produciei sau pot exista i alte condiii.
La o problem de programare operativ a produciei restriciile se refer la o serie de
maini (utilaje) cu care se execut produsele dorite, b
i
fiind disponibilul de timp al utilajului i
pe perioada analizat iar a
ij
timpul necesar prelucrrii unui produs de tipul j pe utilajul i,
scopul fiind maximizarea produciei.
Ca urmare, modelul are forma:

( )

= >
= s + + +
+ + +
=
n 1,..., i 0 x
m 1,..., i b x a ... x a x a
x ... x x max
j
i n in 2 i2 1 i1
n 2 1
n) 1,..., j ( x
j


Dac se dorete obinerea unui meniu (reete furajere), care s asigure necesarurile {b
i
,
i = 1,...,m} dintr-un numr de m substane eseniale organismului, avnd la dispoziie un
numr de n alimente, cunoscndu-se cantitile {a
ij
, i = 1,...,m, j = 1,...,n} din fiecare substan
pe care le conine o unitate de msur din fiecare aliment i costurile {c
j
, j = 1,...,n} unei
uniti de msur din fiecare aliment, putem scrie modelul:

( )

= >
= > + + +
+ + +
=
n 1,..., j 0 x
m 1,..., i b x a ... x a x a
x c ... x c x c min
j
i n in 2 i2 1 i1
n n 2 2 1 1
n) 1,..., j (
j
x


4

Variabilele x
j
reprezint, n acest caz, cantitatea din fiecare aliment ce va intra n
meniu iar f(x) =

=

n
1 j
j j
c x este costul total al reetei definit de vectorul x.

Vom ncheia exemplificarea cu prezentarea modelului amestecului optim de produse
petroliere. Presupunem c o rafinrie dispune de n tipuri de benzine, prin amestecarea
acestora urmnd s obin o benzin cu m caracteristici impuse i la un pre minim posibil. O
serie de caracteristici trebuie s fie ndeplinite cu o limit inferioar (de exemplu cifra
octanic), altele cu o limit superioar (de exemplu densitatea sau temperatura de fierbere) i
altele cu egalitate (de exemplu cantitatea necesar), aceste limite fiind
1
i
b , i = 1,...,m
1
,
2
i
b , i =
1,...,m
2
respectiv
3
i
b , i = 1,...,m
3
cu m
1
+ m
2
+ m
3
= m. De asemenea, trebuie inut cont de
cantitile disponibile din fiecare benzin D
i
, i = 1,...,n. Se cunosc caracteristicile fiecrei
benzine disponibile, date ntr-o matrice A e M
mn
, unde a
ij
este valoarea caracteristicii i
pentru benzina j i preurile unitare ale fiecrei benzine, notate p
j
, j = 1,...,n. Dac notm cu x
j
,
j = 1,...,n, cantitile din fiecare benzin care vor forma amestecul optim, atunci avem de
rezolvat problema:

= >
= s
+ + = =
+ + = s
= >
|
|
.
|

\
|

=
=
=
=
n 1,..., j 0 x
n 1,..., j D x
m 1,..., m m i b x a
m m 1,..., m i b x a
m 1,..., i b x a
p min
j
j j
2 1
n
1 j
3
i j ij
2 1 1
n
1 j
2
i j ij
1
n
1 j
1
i j ij
n
1 j
j j
x
j
x

Algoritmul simplex


Se consider problema de programare (2) i un program de baz nedegenerat X

.
Dup unele renumerotri i rearanjri putem considera
( )
X x x x
m
T

=
1 2
0 0 0 , ,..., , , ,..., ; deci
variabilele x x x
m 1 2
, ,..., sunt principale iar x x
m n +1
,..., secundare, iar vectorii coloan
a a a
m 1 2
, ,..., formeaz baza B a programului de baz X

. Fie
{ }
N a a a
m m n
=
+ + 1 2
, ,..., .
Mai notnd:
X
x
x
X
x
x
C
c
c
C
c
c
p
m
s
m
n
p
m
s
m
n
=
|
\

|
.
|
|
|
=
|
\

|
.
|
|
|
=
|
\

|
.
|
|
|
=
|
\

|
.
|
|
|
+ + 1 1 1 1
. . . . ; ; ; problema (2) poate fi scris:
( )
( )
7
0
min f X C X C X
B X N X L
X
p
T
p s
T
s
p s
= +
+ =
>


nmulind BX NX L
p s
+ = la stnga cu B
1
obinem:
( ) 8
1 1
E X B N X B L
p s
+ =


5

care reprezint transcrierea sistemului de restricii n baza B, cci dac scriem
a z a j n
j
ij
i
i
m
= s s
=

1
1 , (exprimarea vectorilor coloan n funcie de vectorii bazei B) vom
avea:
z
ij ij
= s s = s s o pentru 1 i, j m si z pentru m+1 j n.
ij
0 Corespunztor programului X

problema
(2) devine:
( )
( )
9
1
1
f X c x
x z x x
i i
i
m
i ij j i
j m
n

=
+ =

=
= +


Deci x
i

sunt componentele vectorului L n baza B.


( )
L B X B L X z B N
ij
i m
m j n
= = =

s s
+ s s
1
1
1
1
iar
Deci relaia (8) devine:
( ) 10
1
X B NX X
p s
+ =

de unde
( ) 11
1
X X B NX
p s
=

i atunci
: ( )
( ) ( )
f X C X C X C X B NX C X C X C C B N X
p
T
p s
T
s p
T
s s
T
s p
T
s
T
p
T
s
= + = + = +
1 1

sau explicit:
( ) ( ) 12
1 1 1
f X c x c c z x
i i
i
m
j j ij
i
m
j m
n
j
= +
|
\

|
.
|
= = = +


Notnd: c x Z c z Z m j n
i i
i
m
i ij
i
m
j

= =

= = + s s
1 1
1 si , atunci:
( ) ( ) ( )
13
1
f X Z c Z x
j j j
j m
n
= +
= +


Observm c
( )
Z f X C B L
p
T

= =

si Z
1
.
Acum putem asocia problemei PL- min urmtorul tabel:

C B
p
+ +

c
1
c
2
c
n

X

+

a
1
a
2
a
n

vector
ii
bazei
z z z
z z z
n
m m mm
11 12 1
1 2
...
...
. . .

componente
le nenule
ale lui X


C Z
j j


.............................
............
( )
f X



Teorema II.4.1. Dac X

este un program de baz nedegenerat pentru PL - min i n


tabelul asociat (S) avem ( ) c Z m j n
j j
> + s s 0 1 atunci X

este program optim.



Demonstraie: Din (13) avem:
( )
( ) ( )

( ) f X f X c Z x f X
j j
j m
n
j
= +
>
>
= +
>


_
0
1
0
pentru orice program admisibil X. Deci X

este optim.

(S)
6

Teorema II.4.2. Dac X

este un program de baz nedegenerat i n tabelul simplex


asociat (S) exist un t, m t n + s s 1 , astfel nct ( ) c Z i m
t t
< s s s 0 0 1 si z
it
, atunci PL - min
nu are optim finit.

Demonstraie: Fie:
( )
X x x xn
T
=
1
2 , ,..., unde:
x R
x x z i m
x m j n j t
t
i
i it
j
= e
= s s
= + s s =
+

,
;
; ,

1
0 1

Astfel avem ( ) x j n
j
> s s 0 1 .
Pentru 1s s i m avem:
( ) a x a x a x a x z a a x a z a
ij j
j
n
ij j
j
m
ij j
j m
n
ij j jt
j
m
it ij j
j
m
ij jt it
j
m
= = = + = = =

= + = + = + =
1 1 1 1 1 1



(folosind (9)) = +
|
\

|
.
| + =
= + = =

a x z x a z a
ij j jh h
h m
n
j
m
ij jt
j
m
it
1 1 1

= +
|
\

|
.
| + = + =
= + = +
|
\

|
.
|
|
= +
+ = = +
= = = + = = + =
= = = + = = = + =
= + =



a x a z x a a a x a z x
a x a z x a x x a z a x
x a a x x
ij j
j
m
ij
j
m
jh h
h m
n
it it ij j
j
m
ij jh h
h m
n
j
m
ij j
j
m
ij jh h
j
m
h m
n
ij j
j
m
h ij jh
j
m
h m
n
ij j
j
m
h ih
h m
n
ij j
j
m
1 1 1 1 1 1
1 1 1 1 1 1 1
1 1

(renotm pe h cu j)
j ij
j m
n
ij j
j
n
i
a a x b
= + =

= =
1 1
Deci X este soluie
admisibil. Avem:
( ) ( ) ( ) f X c x c Z x c x c Z
j j
j
m
j j
j m
n
j
j j
j
m
t t
= + = +
= = + =


1 1 1

din definirea lui X .
Deoarece > < 0 0 si c
t
Z
t
atunci
( )
f X

, adic funcia obiectiv nu are
optim finit.

Teorema II.4.3. Dac X

este un program de baz nedegenerat pentru PL - min, iar n


tabelul simplex asociat (S) exist un t, m t n c Z
t t
+ s s < 1 0 cu i cel puin un indice i, 1s s i m,
astfel nct z
it
> 0, atunci alegnd s s m , 1 s s , dup criteriul:
( ) 14 1 0
x
z
x
z
i m z
s
st
i
it
it

= s s >


`
)
min / ,
se poate substitui n baza B vectorul a
s
cu vectorul a
t
, obinnd o baz B' , corespunztoare
unui program de baz X' care amelioreaz valoarea funciei obiectiv.

Demonstraie. Deoarece z
st
= 0, folosind lema substituiei rezult c nlocuind a
s
n B
cu a
t
sistemul de vectori nou obinut B' , este o baz. Soluia de baz corespunztoare lui B' este
dat tot de lema substituiei:
7

( ) 15
1
0
0
0 1
x x
x
z
z i m i s
x
x
x
z
x m j n j t
i i
s
st
it
s
t
s
st
j
'
'
'
'
, ,
, ,
= s s =
=
= >
= + s s =


cu toate componentele nenegative (pentru 1s s = i m i s , dac z
it
s 0 atunci
( ) x x
x
z
z
i i
s
st
it
'
= +

, deci o sum de numere nenegative; iar dac z


it
> 0 avem x z
x
z
x
z
i it
i
it
s
st
'
=
|
\

|
.
|

i innd seama de (14) nseamn c x
i
'
este produs de dou numere nenegative).
Deci
( )
X x x x
n
T
' , ,...,
' ' '
=
1 2
este o soluie de baz. Valoarea funciei obiectiv pentru X' este:
( )
( ) ( ) ( ) ( ) ( ) f X f X c Z x f X c Z x f X
j j
j m
n
j t t t
' .
' '
= + = + <
= +


1


Acum putem prezenta algoritmul simplex pentru o problem PL - min n form
standard.
-Pasul 1
0
: Se gsete un program de baz nedegenerat X

cu baza B; se construiete tabelul


simplex (S).
-Pasul 2

: Se verific dac diferenele c Z


j j
> 0pentru orice j j n ,1s s . Dac DA se trece
la pasul 5; dac NU, dintre toate diferenele c Z
j j
, negative, se alege cea mai mic. Indicele
j corespunztor s-l notm cu t. (Dac exist mai muli t se alege primul de la stnga la
dreapta). Vectorul a
t
va intra n baz. Se cerceteaz dac z
it
s 0 pentru 1s s i m. Dac DA,
se trece la pasul 4, dac NU, se trece la pasul 3.
-Pasul 3

: Se alege s, astfel nct


x
z
x
z
i m z
s
st
i
it
it

= s s >


`
)
min / , 1 0 .
Vectorul a
s
va iei din baz. Elementul z
st
devine pivot. Se construiete un nou tabel simplex
folosind regula dreptunghiului:
a) se mparte linia pivotului la pivot.
b) n coloana pivotului, elementele z cu j t
sj
= se nlocuiesc cu 0
c) elementele z i s j t
ij
, , cu = = se nlocuiesc cu z z
z z
z
ij ij
it sj
st
' =

.
Se obine un alt program de baz X' cu baza B' i o nou valoare a funciei obiectiv.
Se revine la pasul 2

cu B B = ' i X X

= '
-Pasul 4
0
.Concluzie: PL - min nu are optim finit I algoritmul se oprete.
-Pasul 5

.Concluzie: PL - min are optim X

iar valoarea minim ( ) f X

". STOP.
Exemplul II.4.1. Fie problema:

min
, , ... ,
f x x x x x
x x x x x
x x x x x
x j
j
= + + + +
+ + + + =
+ + + + =

> =
5 7 9 2
3 2 5 3 7
2 3 4
0 12 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5

Alegem ( ) X
T

= 12 0 0 0 , , , , . Avem:
{ } a a a a a B a a
1 2 3 4 5 1 2
3
2
2
1
1
1
5
3
3
1
=
|
\

|
.
| =
|
\

|
.
| =
|
\

|
.
| =
|
\

|
.
| =
|
\

|
.
| = ; ; ; ; ,
8

Coordonatele vectorilor a a
1 2
si n baza B sunt
1
0
|
\

|
.
|, respectiv
0
1
|
\

|
.
|. Pentru a afla
coordonatele lui a
3
se procedeaz astfel: punem a a a R
3
1
1
2
2
1 2
= + e o o o o , , ,
deci:
o o
o o
o o
1 2
1 2
1 2
3
2
2
1
1
1
3 2 1
2 1
|
\

|
.
|+
|
\

|
.
| =
|
\

|
.
|
+ =
+ =

ceea ce ne d o o
1 2
1 1 = = , . Deci n baza B, a
B
3
1
1
=

|
\

|
.
|.
Analog se gsesc: a a
B B
4 5
1
1
1
3
=
|
\

|
.
| =
|
\

|
.
| ,
Aadar tabelul simplex corespunztor bazei B are forma:

5 7 9 2 1

a a a a a
1 2 3 4 5


5
7

a
a
1
2

1 0 1 1 -
1

0 1 -1 1
1
2

c Z
j j
0 0 11 -10 -
15
19
Deci a
5
intr n baz, a
2
iese din baz, z
25
- pivot. Se execut pivotajul i obinem:

5
1
a
a
1
5

1 1/3 2/3 0

0 1/3 -1/3 1/3 1
5 3
2 3
/
/

c Z
j j

0 5 6 -5 0
9

Intr n baza a
4
i iese a
1
.

2
1

a
a
4
5

3 4 1 4 1 2 1 0
1 4 1 4 1 2 0 1
/ / /
/ / /

5 4
1 4
/
/

c Z
j j

15/4 25/4 17/2 0 0
11 4 /

i am obinut ( ) c Z j
j j
> s s 0 1 5.Deci programul optim este
( ) 0,0,0,5 4 1 4 / , / min
T
f cu =
11
4
.
Algoritmul se aplic i problemelor PL - max n forma standard cu
observaia c ( ) max min f f = . De asemenea algoritmul se aplic i n cazul n care funcia
obiectiv are forma f c x R
j j
j
n
= + e
=

1
o o , , deoarece punctele de extrem ale acesteia sunt
aceleai cu punctele de extrem ale funciei: g c x
j j
j
n
=
=

1
.

Neacu Horaiu Dorin
Student an I, Facultatea de tiine Economice i Administraie Public,
Specializarea Administrarea Afacerilor
3
4/3
( ) X f X '
/
/
' =
|
\

|
.
|
|
|
|
|
=
5 3
0
0
0
2 3
9

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