Sunteți pe pagina 1din 10

Programare liniara

October 24, 2009

Printre metodele matematice utilizate n economie un rol important l are programarea liniara,
care ofera posibilitatea obtinerii solutiei optime pentru o gama larga de probleme.
Exemple de probleme de programare liniara
1. probleme de planificare a productiei (folosirea eficienta a resurselor limitate);
2. probleme de transport;
3. probleme de amestec;
ii masinilor;
4. utilizarea optima a capacitat
5. probleme de investitii;

6. reducerea pierderilor la taierea


materialelor.

Problema de folosire eficienta a resurselor

masiniO ntreprindere dispune de R1 , R2 , ..., Rm resurse (materii prime, forta de munca,


ile b1 , b2 , ..., bm , numite si disponibil de resursa sau capacitate de resursa.

unelte) n cantitat
Rezultatul productiei consta n n tipuri de produse P1 , ..., Pn .
Vom nota cu:
cj -beneficiul obtinut pentru o unitate din produsul Pj ;
i din produsul Pj (cantitate
aij -cantitatea din resursa Ri folosita n fabricarea unei unitat
numita si consum specific sau coeficient tehnologic).
i x1 , ..., xn trebuiesc produse din P1 , ..., Pn astfel ncat
benSe pune problema ce cantitat
eficiul total:
n
X
Z=
cj xj
j=1

sa fie maxim; se tine seama de restrictiile impuse de disponibilul limitat.

Datele problemei se pot prezenta, n tabelul de mai jos, dupa cum urmeaza:

R1
R2
..
.

P1
a11
a21
..
.

P2
a12
a22
..
.

Ri
..
.

ai1
..
.

ai2
..
.

Rm

am1
c1

am2
c2

...
...
...

Pj
a1j
a2j
..
.

...
...

...
...
...
...
...

aij
..
.

...
...
...

...
...
...

amj
cj

Pn
a1n
a2n
..
.

b1
b2
..
.

ain
..
.

bi
..
.

amn
cn

bm

Modelul matematic al problemei este:


max [Z =

n
P
j=1

cu conditiile:

a11 x1 + a12 x2 +

a21 x1 + a22 x2 +
...
...

am1 x1 + am2 x2 +

cj xj ]

... a1n xn b1
... a2n xn b2
...
...
... amn xn bm

(1)

(2)

ile (2) se numesc restrictii. Functia


Functia Z este numita functie obiectiv iar inegalitat
f, g, etc.
obiectiv se mai noteaza:
Problema se numeste de programare liniara deoarece toate functiile ce intervin n relatiile
(1) si (2) sunt functii liniare.

Forme ale modelului matematic

n continuare diferite forme ale modelului


Pentru o problema de programare liniara prezentam
matematic.
Restrictiile unei probleme de programare liniara pot fi ecuatii si inecuatii. Variabile care
apar sunt supuse conditiei de negativitate iar functia obiectiv poate fi maximizata sau mini
mizata.

1. Forma generala
max/min

[Z =
n
P
j=1
n
P
j=1
n
P
j=1

n
P
j=1

cj xj ]

aij xj bi ;

1ip

aij xj = bk ;

p+1k <s

aij xj bl ;

s+1l m

xj 0;

j = 1, ..., n

2. Spunem ca o restrictie a unei probleme de programare liniara este concordanta daca


functia obiectiv trebuie minimizata sau o inegalitate cand

este o inegalitate cand

functia obiectiv trebuie maximizata.


Intelegem prin forma canonica modelul n care toate restrictiile sunt concordante iar

variabilele nenegative, adica:


n
n
P
P
min[Z =
cj xj ]
max[Z =
cj xj ]
n
P
j=1

j=1

aij xj bi ; i = 1, ..., m

sau

n
P
j=1

xj 0; j = 1, ..., m

j=1

aij xj bi ; i = 1, ..., m
xj 0; j = 1, ..., m

i:
toate restrictiile sunt egalitat
3. Modelul are forma standard cand
max/min

[Z =
n
P
j=1

n
P
j=1

cj xj ]

aij xj = bi ;

1im

xj 0;

j = 1, ..., n

O problema de programare liniara sub forma generala poate fi adusa la forma standard

echivalente:
sau forma canonica folosind urmatoarele
transformari
i se schimba prin nmultire cu 1,
sensul unei inegalitat
ile se transforma n egalitat
i prin adaugarea

inegalitat
sau scaderea
unor variabile pozitive numite variabile ecart sau variabile de compensare; variabilele ecart nu apar n
functia obiectiv (adica apar cu coeficienti nuli),
i de sens contrar,
o egalitate poate fi nlocuita cu doua inegalitat
deoarce max Z = min(Z), orice problema de maximizare se poate transforma n
una de minimizare.
i se transforma cu ajutorul variabilelor ecart n sistem
Deoarece un sistem de inegalitat

de egalitati, conform observatiei urmatoare,


prin rezolvarea acestuia din urma cunoastem si

solutia sistemului de inegalitati.

rezultat:
Se cunoaste din algebra urmatorul
i:
Fie sistemul de inegalitat

a11 x1 + a12 x2 + ... + a1n xn

a21 x1 + a22 x2 + ... + a2n xn


.............................

am1 x1 + am2 x2 + ... + amn xn

.....

b1
b2
...
bm

(3)

Oricare ar fi (x01 , x02 , ..., x0n ) solutie a sistemului (3) exista constantele nenegative x0n+1 , x0n+2 , ..., x0n+m

astfel ncat
(x01 , x02 , ..., x0n , x0n+1 , x0n+2 , ..., x0n+m )
3

i:
sa fie solutie a sistemului de egalitat

a11 x1 + a12 x2 + ... + a1n xn + xn+1


a21 x1 + a22 x2 + ... + a2n xn + xn+2
.............................

am1 x1 + am2 x2 + ... + amn xn + xn+m

=
b1
=
b2
..... ...
= bm ,

(4)

si reciproc.
ator

i de forma:
Un rezultat aseman
obtinem si n cazul unui sistem de inegalitat
n
X

aij xj bi , i = 1, ..., m.

j=1

Concluzie. Conform celor spuse anterior ne vom ocupa numai de modelul sub forma
standard:
min

[Z =
n
P
j=1

n
P
j=1

cj xj ]

aij xj = bi ;

1im

xj 0;

j = 1, ..., n

(5)

care se poate scrie sub forma matriceala:


min [Z = C T X]
AX = b
X 0,

(6)

unde A = (aij )i=1,...,m;j=1,...,n , bT = (b1 , ..., bm ) ; C T = (c1 , ..., cn ).


cu a1 , ..., an coloanele matricei A, atunci modelul se poate prezenta si sub
Daca notam
forma:
min[Z = C T X]
1
a x1 + ... + an xn = b
(7)
X 0,
Deoarece modelul este al unei probleme practice, trebuie sa aiba cel putin o solutie.

Sistemul are solutii cand


rangA = m < n. Daca m = n, problema are o singura solutie

admisibila si optimizarea este banala.


Daca rangul matricei A este egal cu m, m < n. Rezulta ca exista un minor de ordin m cu
a a restrange

determinantul diferit de zero. Far


generalitatea, putem presupune ca este format
a1 , ..., am sunt liniar
din primele m coloane ale matricei A. In aceste conditii, vectorii coloana:
independenti.

Necunoscutele x1 , ..., xm corespunzatoare,


se numesc variabile de baza.
Matricea A a restrictiilor si vectorul X se pot partitiona astfel:
B
X
A = (B, R); X =
,
XR
unde

B = {a1 , ..., am }, R = {am+1 , . . . , an }, X B

x1
xm+1

..
= ... , X R =
.
.
xm
xn

Atunci sistemul de restrictii (5) se scrie:


B
X
(B, R)
= b BX B + RX R = b.
XR
4

(8)

Deoarece matricea B este inversabila putem determina X B :


X B = B 1 b B 1 RX R .

(9)

Definitie. O solutie a sistemului de restrictii AX = b, ce satisface conditia X 0, se numeste


solutie admisibila sau program.
Multimea P = {X Rn /AX = b, X 0} se numeste multimea programelor.
Definitie. Un program X P pentru care obtinem valoarea minima a functiei Z se numeste
program optim.
Observatie.
deoarece Z = min{C T X/X P } = C T X , avem
C T X C T X, X P .
daca P = , convenim sa punem Z = .
daca Z = , spunem ca problema (5) are minim infinit.
Definitie. O solutie a sistemului de restrictii (5) se numeste solutie de baza daca toate
componentele sale diferite de zero corespund coloanelor liniar independente ale matricei A.
Observatie.
X B = B 1 b.

O solutie de baza se poate obtine din (9) pentru X R = 0 si aceasta este

Definitie. O solutie de baza X B = B 1 b si X R = 0 a sistemului AX = b care satisface


conditia X 0 se numeste program de baza ( sau solutie admisibila de baza ).
Definitie. Un program de baza cu exact m componente pozitive se numeste program de baza
nedegenerat. In caz contrar se numeste program de baza degenerat.
(Teorema fundamentala a programarii
liniare)
Teorema.

1. Daca problema (5) are un program atunci are un program de baza.


2. Daca problema (5) are un program optim atunci are un program de baza optim.
Observatie. Din teorema rezulta ca din punct de vedere teoretic determinarea programului
optim se realizeaza astfel:
se demonstreaza ca problema are program optim;

se determina toate programele de baza;


se cauta printre acestea acela care este optim.

Metoda simplex de rezolvare a problemei de programare


liniara

In 1951 matematicianul Dantzig a creat un algoritm ce permite explorarea n mod sistematic


a multimii programelor de baza prin trecerea de la un program la altul care este cel putin tot
de bun ca cel precedent. Deci, problema care se pune este: cum se trece de la o baza
atat

la o alta baza care ne va furniza un alt program de baza.


Metoda simplex consta n construirea succesiva a unor solutii de baza din ce n ce mai
a se obtine solutia optima.

bune pan

Fie problema de programare liniara:


min[Z = C T X]
AX = b
X0

(10)

cu B = {a1 , a2 , ..., am } si R = {am+1 , ..., an }. Atunci A = (B, R), unde B formeaza o


Notam
Sistemul de restrictii devine:
baza.

cu solutia:

BX B + RX R = b

(11)

X B = B 1 b B 1 RX R .

(12)

Fie JB = {i/1 i m} si JR = {i/m + 1 i n}.

Solutia corespunzatoare
bazei B este:
X

= B 1 b, X

Se noteaza cu:
zj =

= 0.

ci aB
ij

(13)

jJB

(Criteriul de optim) Daca pentru o baza B avem


Teorema.
j = zj cj 0, j JR ,

atunci programul de baza corespunzator


bazei B este program optim pentru problema de

programare liniara.
Daca pentru o baza exista un indice k JR pentru care
Teorema.
k = zk ck > 0,

atunci programul de baza corespunzator


nu este optim.
Daca pentru o baza B exista un indice k JR pentru care
Teorema.
k = zk ck > 0,
iar coordonatele vectorului ak n baza B, aB
ij 0, pentru orice i JB , atunci problema (10)
are optim infinit.
k > 0 si vectorul ak are si compo Fie o baza B pentru care k JR astfel ncat
Teorema.
B
nente strict pozitive, adica exista aik > 0, 1 i m. Daca indicele l JB este acela pentru
care se obtine
xB
xB
i
l
/aB
>
0}
=
,
0 = min{ B
i
aik ik
aB
lk
e ce difera de baza B printr-un singur vector (vectorul al s-a nlocuit cu ak ) este o
atunci baza B
B
e B este tot atat

de buna ca si X , adica
baza admisibila si solutia de baza corespunzatoare
X
B
ZeB Z .

operatia de a alege dintre diferentele j > 0 pe


1. Criteriul de intrare n baza:
k = max(zj cj ) = zk ck
j

arata ca vectorul ak va intra n noua baza.


valoarea
2. Criteriul de iesire din baza:
0 = min{
i

xB
i
}
aB
ik

vectorul care par


ases
te baza.
cu aB
ik > 0, indica
e se numeste iteratie a algoritmului simplex.
3. Trecerea de la baza B la baza B
Aceasta este baza
4. In metoda simplex ne intereseaza la pornire o baza lesnicioasa.
Daca matricea A contine aceasta baza,
vectorii aj care nu se gasesc

unitara.
n baza
vor avea n baza unitara coordonatele asa cum apar ele n matrice. Daca matricea A nu
exista procedee prin care se obtine aceasta baza la primul pas.
contine baza unitara,

Algoritmul simplex

Se
Pasul 0: se scrie matricea A si se identifica baza unitara (presupunand
ca exista).
n sistemul de restrictii X R = 0.
determina solutia initiala de baza X B , impunand
Deoarece n baza unitara aB
te tabelul:
ij = aij se ntocmes
B

CB

XB

c1
a1
ak1
1

c2
a2
ak2
2

....
...

cn
an
akn
n

Pasul 1: Pentru fiecare j JR = {m + 1, m + 2, ..., n} se calculeaza diferentele j :

zj cj
n cazul problemei de minim
j =
cj zj n cazul problemei de maxim ,
unde zj =

m
P
i=1

ci aij , m + 1 j n. Diferentele j cu 1 j m (cele corespunzatoare

vectorilor bazei) sunt egale cu zero.

1. Daca j 0, j JR , STOP; X B este conform criteriului de optim, solutia optima.


2. Daca exista indici j JR pentru care j > 0 se aplica criteriul de intrare n baza

alegandu-se
diferenta k = max j care indica vectorul ak ce intra n noua baza.
jJR

3. Daca toate componentele vectorului ak sunt mai mici sau egale cu zero, STOP,
problema are optim infinit.
Daca vectorul ak are si componente pozitive, pentru acestea se calculeaza rapoartele
xB
i
si se alege
aik
xB
xB
0 = min{ i } = l ;
aik
alk
vectorul al par
ases
te baza fiind nlocuit cu ak .
conform criteriului de iesire din baza,
Elementul de la intersectia liniei l cu coloana k se numeste
Se obtine o noua baza.
pivot.
Pasul 2: Se reface tabelul simplex:

a. se scrie noua baza;

b. se completeaza coloana c corespunzatoare;

ita la pivot;
c. ncepand
cu coloana lui X B , linia l a pivotului se scrie mpart
d. se completeaza vectorii unitari ai noii baze;
e. celelalte elemente ale tabelului se calculeaza conform formulelor de schimbare a
bazei cu regula dreptunghiului;
f. se calculeaza diferentele j si se reia Pasul 1 si 2.

5.1

Tehnici ale bazei artificiale pentru determinarea unui program initial


de baza

In aplicarea algoritmului simplex este necesara existenta unei baze initiale unitare. In cazul n
care aceasta baza nu figureaza printre coloanele matricei A si nu apare nici dupa efectuarea

compensarilor
prin adaugarea
variabilelor ecart este necesar sa folosim tehnici prin care sa
obtinem acest lucru.

Fie problema de programare liniara:


min[Z = C T X]
AX = b
X0

(14)

Adaug
and

pentru care matricea A a sistemului de restrictii (14) nu contine baza unitara.


o variabila artificiala xai 0, i = 1, ..., m, n fiecare restrictie a problemei (14), obtinem
cate
sistemul:
AX + IX a = b

n
X

aij xj + xai = bi , i = 1, . . . , m.

(15)

j=1

O solutie a sistemului (15) este solutie si pentru sistemul (14), daca n aceasta solutie
elementele xai , i = 1, . . . , m sunt toate zero (numai n acest caz solutia sistemului (15) verifica
si sistemul (14).
Asociem problemei (14) o problema extinsa al carui sistem de restrictii este (15). Vom
sa gasim

urmari
o solutie de baza a modelului extins n care variabilele artificiale sa fie variabile nebazice (adica sa aiba valori nule). O astfel de solutie de baza a problemei extinse va
reprezenta n anumite conditii o solutie de baza initiala pentru problema (14) cu care se poate
ncepe algoritmul simplex.
5.1.1

Metoda penalizarii

Fie problema de programare liniara:


min[Z = C T X]
AX = b
X0

(16)

Se asociaza
pentru care matricea A a sistemului de restrictii (16) nu contine baza unitara.

problemei (16) o problema extinsa:


min[Z = C T X + T X a ]
AX + IX a = b
X, X a 0

(17)

unei variabile artificiale xai .


obtinuta prin adaugarea
la fiecare restrictie a cate
Aceste

variabile artificiale vor crea n matricea A baza unitara.


foarte
In functia obiectiv variabilele artificiale apar cu coeficienti egali cu M , un numar
atunci
mare pozitiv care nu va permite functiei obiectiv sa si atinga valoarea minima decat
n solutia optima nu vor mai fi variabile artificiale.
cand
Observatie. In cazul problemei de max coeficientii variabilelor artificiale din functia obiectiv
sunt -M iar n cazul problemei de min coeficientii variabilelor artificiale din functia obiectiv sunt
M.
Coeficientul M se numeste coeficient de penalizare.
Problema (17) se rezolva cu ajutorul algoritmului simplex.
algoritmului simplex se pot ntalni
urmatoarele

Pe parcursul aplicarii
situatii:
asit
baza; se continua
la un anumit moment al algoritmului toti vectorii artificiali au par
a se obtine solutia optima.

algoritmul pan

variabile artificiale. In
algoritmul simplex s-a ncheiat, dar n solutia optima au ramas
acest caz:
9


a) daca variabilele artificiale ramase
n solutia optima au toate valoarea zero, problema initiala admite solutie.

b) daca variabilele artifciale ramase


n solutia optima nu au toate valoarea zero, problema initiala nu are solutie.
un vector artificial par
ases
te baza, n general el
Observatie. Pe parcursul algoritmului, cand
deci n etapele urmatoare

nu va mai reveni n baza,


el nu se mai ia n considerare.

10

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