Sunteți pe pagina 1din 4

4.3.

Conţinutul unităţii de învăţare

4.3.1. Noţiuni de programare liniară

Diverse probleme economice şi sociale au soluţie prin o serie de probleme de optimizare.


De exemplu:
1. probleme de planificare a investiţiilor (probleme de utilizare oprimă a unor resurse);
2. probleme de transport;
3. probleme de planificare a producţiei;
4. alocare optimă de fonduri băneşti;
5. probleme de nutriţie.

Model economic:

Problema utilizării optime a unor resurse

O întreprindere produce articolele A1, A2, ... An utilizând materiile prime (resursele) M1,
M2, ... Mm (disponibil de forţă de muncă, capital, energie). Resursele sunt în cantităţi limitate, din,
de exemplu Mj dispunem de o cantitate maximă b j (cunoscută). Se cunosc, de asemenea:
• consumurile tehnologice: aij ( aij  0 ) cantitatea din Mj ce se consumă pentru a fabrica o


unitate din Ai i  1, n, j  1, m 
A1 A2  An
M1 a11 a12  a1n
M2 a21 a22  a2 n

Mm am1 am 2  amn

• beneficiile unitare ci (ci  0), i  1, n reprezentând suma realizată prin valorificarea unei
unităţi din produsul Ai.
Notăm cu xi , i  1, n cantitatea de produs Ai ce va fi fabricată. Cunoaşterea lui xi,
reprezentând obiectivul final într-o problemă de planificare a producţiei.
n
Încasările totale fiind f  x1 , x2  xn    ci xi
i 1
În cazul în care unitatea dispune de materii prime, se pune problema utilizării lor astfel
încât să obţină încasări totale cât mai mari.

 max f  n c x
   ii
i 1
n
1   aij xi  b j , j  1, m
i 1
 xi  0, i  1, n

Matriceal problema se scrie
 max  f  CX

1   AX  B
X  0

Putem spune că la un model de programare liniară avem:
1. o funcţie obiectiv (liniară în toate variabilele)
f = c1x1 + c2x2 + ... + cnxn
2. un sistem de restricţii formate din ecuaţii şi inecuaţii liniare
3. condiţii de nenegativitate asupra variabilelor
4. un criteriu de optim – de „minim” sau de „maxim”

4.3.2. Forma standard a unei probleme de programare liniară (PPL)


Considerând o problemă de programare liniară, având drept criteriu de optim „min” (de
exemplu, minimizarea cheltuielilor) aceasta se va scrie în formă standard astfel:

 min  f  c1 x1  c2 x 2    cn xm

 a11 x1  a12 x2    a1n xn  b1
     
 2   a21 x1 a22 x2 a 2 n xn b2
 
 am1 x1  am 2 x2    amn xn  bm

 x2  0, x2  0,  xn  0

sau matriceal
 max  f  CX

 2   AX  B
X  0

Definiţia 1. Un vector X0  0 ce verifică relaţia AX = B se numeşte soluţie posibilă a
modelului.
Definiţia 2. O soluţie posibilă X0 pentru care numărul de componente nenule r este mai mic
sau egal cu m, iar vectorii ce corespund componentelor nenule sunt liniar independenţi se
numeşte soluţie de bază.
În cazul în care r  m soluţia de bază se numeşte degenerată.
Teorema 1. Dacă o problemă de programare liniara admite soluţii posibile atunci aceasta
admite cel puţin o soluţie de bază.
Definiţia 3. Soluţia posibilă X este optimă dacă pentru orice soluţie posibilă X avem:
CX  CX
Teorema 2. Dacă X0 este o soluţie optimă de bază a problemei de programare liniară (PL)
atunci vectorii ce corespund componentelor nenule ale lui X0 sunt liniari independenţi.
Definiţia 4. Se spune ca o problema de programare liniară admite:
 optim unic dacă mulţimea soluţiilor optime conţine un singur element;
 optim multiplu dacă mulţimea soluţiilor optime conţine cel puţin două elemente.

4.3.3. Tabelul simplex


Fie problema de programare liniară
X RRn, C RRm
AMmn(RR)
m  n, rang A = m
min f  CX

 AX  B
X  0

Pentru rezolvarea acestuia procedăm astfel:
1. Se întocmeşte lista cu vectorii corespunzători coloanelor matricei
A: a1, a2, ... an
2. dintre vectorii a1, a2, ... an se alege o bază
 
T  ai1 , ai2 ,... aim .
3. Se calculează componentele BT ale vectorilor B în baza T.
4. Se determină componentele vectorilor a1 , a2 , ... an  în baza T şi se trec în tabelul
SIMPLEX.
Cj: C1 C2 Cn
CB
B XB
coeficienţii a1 a2 an
baza soluţia
bazici
C1 ai1
componentele

C2
lui B în

ai2
baza T

... ...
Cm aim
Zj Z0 Z1 Zn

 j  Cj  Z j
m
Z j   C jaj , Z0  CB X B
i 1
5. Dacă  j  0 atunci
• baza T este optimă;
• soluţia de bază BT completată cu zerourile necunoscutelor este soluţie optimă de bază;
• valoarea optimă a funcţiei obiectiv este Z0 şi rezolvarea s-a încheiat. Dacă   pentru care
  0, baza T nu este optimă şi se trece la punctul 6.
6. Se va introduce în bază vectorul a (unde indicele  este dat de cea mai mare diferenţă
negativă în modul) parcurgând etapele următoare:
a. se împarte coloana BT la coloana componentelor lui a (numai componentele strict
pozitive);
b. se alege rezultatul minim;
c. vectorul a iese din bază şi intră în bază vectorul a;
d. elementul aflat pe linia  şi coloana  se numeşte pivot.
7. Completarea tabloului simplex se va face astfel:
• baza nouă se obţine prin scoaterea lui a din bază şi înlocuirea cu a;
• coloana pivotului devine vector unitar;
• linia pivotului se împarte la pivot, rezultatul trecându-se în final pe linia ;
• pentru restul elementelor rămase din tabel se aplică regula dreptunghiului, astfel elementul
ce se calculează este dat de:
produsul elementelor produsul elementelor

de pe diagonala pivotului de pe cealaltă diagonală
pivot
• se completează liniile anexă;
• se revine la punctul 5.

OBSERVAŢII
• La ieşirea din bază dacă sunt mai multe rapoarte minime egale poate ieşi oricare din
variabilele corespunzătoare fără a influenţa soluţia finală.
• Dacă  j  0, j  1, n , cu  j  0, m  1  j  n , atunci algoritmul ia sfârşit cu decizia de
optim finit unic.
• Dacă  j  0, j  1, n , şi există  j0  0, m  1  j0  n , atunci algoritmul ia sfârşit cu
decizia de optim finit unic dacă Z j0 k  0,1  k  m , sau cu decizia de optim finit multiplu dacă
există măcar un Z j0 k  0 , caz în care se caută şi celelalte soluţii optime şi se determină soluţia
optimă generală.
• Dacă la căutarea variabilei ce părăseşte baza pe coloana ce intră în bază nu avem nici un
element strict pozitiv (toate negative sau zero) algoritmul se va încheia cu concluzia optim infinit.

4.3.4. Probleme care au soluţia iniţială de bază


Dacă există soluţii de bază iniţială înseamnă ca problema de programare liniară este de
forma următoare:
 min  f  C B X B + C S X S
 B S
 I m X + SX  B
X  0

Putem deduce uşor că soluţia iniţială de bază este de forma: X   B,0  .
t

Observaţie: matricea unitate formată nu conţine obligatoriu primele m coloane.


Algoritmul simplex decurge conform etapelor deja menţionate mai sus.

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