Sunteți pe pagina 1din 7

Bazele Ingineriei Sistemelor de Producție

Suport pentru Activitati Aplicative – Tema 1

METODE DE REZOLVARE A PROBLEMELOR


DE PROGRAMARE LINIARĂ
4 AA

BREVIAR TEORETIC

Formularea generală a problemei programării liniare:


Să se determine valorile numerice pentru mulţimea de variabile (necunoscute ale
problemei, numite și variabile de stare) xj, 1  j  n, care satisfac sistemul de m
(in)egalităţi liniare (numit sistem de restricţii al problemei):
ai1x1 + ai2x2 + ... + ainxn  bi, 1im, aij, bi R
şi condiţiile de nenegativitate: x1  0 , x2  0 ,... , xn  0 ,
pentru care funcţia liniară (numită funcţie obiectiv): F = c1x1 + c2x2 + ... + cnxn
îşi atinge maximul (minimul).
Sistemul de inegalităţi se poate transforma într-un sistem de ecuaţii prin ataşarea
de variabile de ecart yi = xn+i  0, la partea stângă a fiecărei inecuaţii:
ai1x1 + ai2x2 + ... + ainxn + yi = bi , 1im
iar F = c1x1 + c2x2 +.... + cnxn + 0·y1 +...+ 0·ym .
Numărul variabilelor de ecart este întotdeauna egal cu numărul de restricţii m din
sistemul de inecuaţii.
Prima formulare prezentată mai sus se numeşte forma canonică a unei probleme
de programare liniară, iar cea de a doua (cu yi = xn+i) este numită forma standard a
aceleiaşi probleme.

Teoremele fundamentale ale programării liniare:


Definiţia 1: Se numeşte soluţie a problemei de programare liniară (exprimată în
forma standard) mulţimea de n+m valori xj (inclusiv cele de ecart) care satisfac sistemul
de restricţii.
Definiţia 2: Se numeşte soluţie admisibilă (posibilă) a problemei o soluţie care
verifică, în plus, şi condiţiile de ne-negativitate xj  0, 1  j  n.
Definiţia 3: Se numeşte soluţie optimală acea soluţie de bază (de regulă unică)
pentru care funcţia - obiectiv F îşi atinge maximul / minimul.

1
U.P.G. Ploieşti / Facultatea de Inginerie Mecanică şi Electrică / Departamentul Inginerie Mecanică

Definiţia 4: Se numeşte soluţie de bază o soluţie admisibilă care prezintă m


componente xj nenule şi n componente xj = 0 (în condiţiile în care restricţiile sunt liniar
independente).
Teorema 1: Un sistem de ecuaţii / inecuaţii liniare determină o mulţime convexă
care este fie vidă, fie poliedrică şi nemărginită, fie un poliedru convex. Această mulţime
este mulţimea soluţiilor admisibile.
Teorema 2: Dacă mulțimea (poliedrul) soluţiilor admisibile nu este o mulţime
vidă, fiecare vârf al poliedrului determină o soluţie de bază şi reciproc.
Teorema 3: A) Dacă mulţimea soluţiilor admisibile este nevidă şi mărginită,
problema are un optim finit.
B) Dacă mulţimea soluţiilor admisibile este nevidă şi nemărginită, funcţia -
obiectiv poate avea valoarea optimală infinită (   ) sau finită.
C) Dacă mulţimea soluţiilor admisibile este vidă, programul liniar nu are soluţii
(este incompatibil, deoarece sistemul restricţiilor este contradictoriu).
Teorema 4 (fundamentală): Dacă o problemă de programare liniară are un optim
finit, atunci funcţia obiectiv îşi atinge optimul (maximul sau minimul) într-o soluţie de
bază (vârf al poliedrului) sau eventual într-o combinaţie convexă de soluţii de bază.
Practic, soluţia optimă se află în unul dintre vârfurile poliedrului convex al soluţiilor
admisibile.

Metoda grafică și metoda variabilelor de ecart:


Este deci suficient să căutăm soluţia optimală printre soluţiile de bază - vârfurile
poliedrului (în număr de C nm m ), de unde rezultă cea mai simplă metodă de rezolvare (a
descrierii totale sau a variabilelor de ecart), care presupune parcurgerea a două etape:
1. determinarea soluţiilor de bază ale sistemului de m ecuaţii ale formei
standard (corespunzător celor m restricţii) cu n+m necunoscute (cele n
variabile iniţiale şi cele m variabile de ecart);
2. calculul valorii funcţiei F pentru fiecare soluţie de bază admisibilă şi
compararea acestor valori în vederea determinării soluţiei optimale.
În cazul n = 2 (problemă cu două variabile), se poate utiliza şi metoda grafică de
rezolvare, care presupune reprezentarea grafică a restricţiilor şi a condiţiilor de ne-
negativitate, în planul de coordonate x1 şi x2. Rezultatul unei astfel de reprezentări este
un poligon convex (definit ca un poligon închis, astfel încât, dacă îl „părăsim” de-a
lungul unei linii drepte, nu se mai revine în interiorul său), care poate fi, în anumite
cazuri, nemărginit sau redus la un punct sau chiar la o mulţime vidă.
În continuare, se reprezintă grafic şi funcţia F, ca o familie de drepte paralele, iar
soluţia optimală va corespunde de regulă unui vârf al poligonului convex şi anume cel
pentru care distanţa de la dreapta corespunzătoare a familiei F la origine este maximă.
Este însă posibil ca, în cazul în care o latură a poligonului convex este paralelă cu
familia de drepte corespunzătoare funcţiei F, să se obţină o infinitate de soluţii (o
combinaţie convexă de soluţii de bază) corespunzătoare mulţimii punctelor segmentului
de dreaptă ce defineşte acea latură a poligonului, definită de două soluţii de bază
(vârfuri).
În cazul problemei cu n > 2 variabile (x1, ..., xn), planul x1 - x2 devine un spaţiu n –
dimensional, iar poligonul devine un poliedru convex, obţinut din intersecţia
hiperplanelor reprezentând restricţile. În acest caz însă, problema nu mai poate fi
rezolvată prin aplicarea metodei grafice.

2
Bazele Ingineriei Sistemelor de Producţie – suport pentru Activități Aplicative IEDM, ID (Tema 1)

Metoda simplex și tabelul simplex:


Metodele uzuale de rezolvare a problemelor de programare liniară au ca scop
simplificarea algoritmului metodei variabilelor de ecart (datorită numărului mare de
restricţii m şi de variabile n întâlnite în practică), prin folosirea unor metode iterative cu
reducerea numărului de încercări pentru obţinerea soluţiilor optime. Cea mai răspândită
dintre aceste metode este metoda simplex, elaborată iniţial de către G. B. Dantzig, în
anul 1947.
Metoda SIMPLEX presupune parcurgerea următoarelor etape de rezolvare a unei
probleme:
10. determinarea unei soluţii de bază iniţiale (baza iniţială); de regulă, cea
pentru care xj = 0 (1  j  n) şi xn+i = bi (1  i  m);
20. trecerea la o altă soluţie de bază (alt vârf al poliedrului convex), plecând de
la baza iniţială / precedentă (vârful iniţial / precedent), astfel încât să se obţină o valoare
mai mare / mai mică a funcţiei - obiectiv (să se „îmbunătăţească” valoarea funcţiei
obiectiv de maximizat / minimizat);
30. se consideră ca soluţie optimală o soluţie de bază obţinută după etapa 20,
când nu mai este posibil să se mărească / micşoreze valoarea funcţiei obiectiv.
Etapa 20 este iterativă şi se realizează astfel:
 se exprimă variabilele bazei iniţiale (cele nenule xn+i din 10) în funcţie de
celelalte (numite variabilele din afara bazei) şi se exprimă la fel şi funcţia obiectiv
(practic se stabileşte forma explicită a programului liniar în raport cu baza iniţială);
 se stabilește noua soluţie de bază, obţinută prin înlocuirea uneia dintre
variabilele de bază (numită variabila ce „iese” din bază) ale soluţiei iniţiale cu una din
variabilele secundare (variabila ce „intră” în bază). Această schimbare a soluţiei de
bază urmăreşte ca valoarea funcţiei obiectiv să crească/scadă. Variabila secundară care
să „intre” în bază se alege prin aplicarea criteriilor de intrare în bază, iar variabila de
bază care să „iasă” din bază se alege apoi prin aplicarea criteriilor de ieşire din bază;
 se exprimă variabilele de bază ale noii soluţii de bază şi funcţia obiectiv în
funcţie de noile variabile secundare (din afara bazei).
Criterii de intrare în bază (de a alege noua variabilă de bază la etapa 20):
 pentru problemele de maxim: în noua bază intră acea variabilă secundară
pentru care coeficientul corespunzător din expresia funcţiei obiectiv are cea mai mare
valoare pozitivă;
 pentru problemele de minim: în noua bază intră acea variabilă secundară
pentru care coeficientul corespunzător din expresia funcţiei obiectiv este negativ şi are
cea mai mare valoare negativă.
Pentru a simplifica aplicarea metodei şi a obţine mai rapid soluţia optimală, se
construieşte un tabel, numit tabel simplex. Prima coloană a acestui tabel, CO, conţine
coeficientul variabilei de bază în funcţia obiectiv inițială a problemei. A doua coloană,
notată VB, conţine variabilele din bază de la iteraţia respectivă. A treia coloană, notată
VVB, conţine valorile variabilelor bazei când cele din afara bazei au valoarea zero.
Coloanele următoare (x1, ..., xn+m) conţin coeficienţii, cu semn schimbat, ai
sistemului corespunzător iteraţiei respective, dar scrise cu toate necunoscutele în stânga
egalităţii. Linia de sub cele trei variabile din bază conţine valoarea funcţiei obiectiv la
iteraţia respectivă şi coeficienţii lui F din sistemul corespunzător iteraţiei, cu semn
schimbat.

3
U.P.G. Ploieşti / Facultatea de Inginerie Mecanică şi Electrică / Departamentul Inginerie Mecanică

Prezentăm câteva precizări privind modul de rezolvare a problemei dacă se


utilizează exclusiv tabelul simplex, aşa cum se procedează de obicei:
- la prima iteraţie (corespunzătoare bazei iniţiale), în coloana VB se trec
variabilele de ecart, în coloana VVB se scriu valorile acestora (corespunzătoare
termenilor liberi din sistemul de restricţii al problemei), iar în coloanele xi se trec
coeficienţii sistemului de restricţii scris în forma standard (cu variabile de ecart);
- se alege noua variabilă care să „intre” în bază ca fiind (în cazul unei
probleme de maxim) cea pentru care coeficientul negativ al liniei funcţiei obiectiv este
maxim în valoare absolută; dacă toţi coeficienţii sunt pozitivi sau nuli, soluţia obţinută
la iteraţia respectivă este soluţia optimală a problemei (cazul iteraţiei 3 din tabelul
simplex al problemei rezolvate mai jos);
- se alege variabila care iese din bază pe baza coeficienţilor rezultaţi din
împărţirea valorilor din coloanei VVB la cele din coloana variabilei ce „intră” în bază;
variabila ce „iese” corespunde valorii pozitive minime a coeficientului astfel calculat;
dacă toţi coeficienţii astfel calculaţi sunt negativi, problema are optim infinit;
- se evidenţiază (prin încercuire) pivotul transformării bazei pentru iteraţia
următoare; acesta este coeficientul aflat la intersecţia coloanei variabilei ce „intră” în
bază cu linia variabilei ce „iese” din bază;
- se scrie întâi linia noii variabile de bază (cea care „intră” în bază), care, de
fapt, cuprinde coeficienţii calculaţi prin împărţirea coeficienţilor liniei variabilei ce
„iese” din bază, xr, la pivotul transformării;
- se calculează ceilalţi coeficienţi utilizând pivotul şi coeficienţii de pe coloana
variabilei ce „intră” în bază, conform regulii dreptunghiului: dacă ne imaginăm
dreptunghiul a cărui diagonală este determinată de pivot şi de coeficientul ce trebuie
„transformat”, atunci noua valoare a acestuia se obţine împărţind la pivot diferenţa
dintre produsul coeficienţilor de pe diagonala pivotului şi produsul coeficienţilor situaţi
pe cealaltă diagonală a dreptunghiului. Aceeaşi regulă se va aplica şi liniei funcţiei
obiectiv, pentru determinarea noilor valori de pe aceasta.
Valorile din coloana VVB de la iteraţia corespunzătoare soluţiei optimale sunt
valorile optime ale necunoscutelor problemei.

PROBLEME REZOLVATE

Problema nr. 1: Se consideră un banc de lucru al unui atelier de reparaţii ce


execută două categorii de reparaţii. Resursele disponibile luate în considerare sunt
materialele şi forţa de muncă. Se notează cu x1 şi x2 volumul (în bucăţi) al celor două
categorii de reparaţii. Resursele necesare sunt indicate în tabelul de mai jos:
Total disponibil
Categorii de reparaţii x1 x2
resurse
Resurse materiale* [kg/buc.] 3 5 15 kg
Forţa de muncă [ore/buc.]
**
6 2 24 ore
Preţ unitar de reparaţie [€/buc] 200 300 -
* consum unitar de materiale; ** consum unitar de manoperă.
Să se determine cantitatea optimă de produse reparate, x1 şi x2, astfel încât preţul
(valoarea) producţiei realizate să fie maximă.

4
Bazele Ingineriei Sistemelor de Producţie – suport pentru Activități Aplicative IEDM, ID (Tema 1)

Formularea modelului de optimizare (al problemei de programare liniară):


1) funcţia – obiectiv (preţul): F = 200x1 + 300x2 = max.
 3x  5 x 2  15 
2) sistemul de restricţii: ( R) 1 
6 x1  2 x 2  24
3) condiţiile de ne-negativitate: x1 ≥ 0 , x2 ≥ 0 .
Rezolvarea prin metoda grafică este ilustrată în figura de mai jos:
x2 x1 = 0 A (0; 3)
B (3,75; 0,75)
C (4; 0)
(la x2 = 12)

6x1 + 2x2 = 24

A F = max. [d=975]
3

2 3x1 + 5x2 = 15
-F [d=100] B x2 = 0

O C
3 4 5 x1

Observaţie: Coordonatele vârfurilor poligonului convex OABC (punctele O, A,


B, C), împreună cu laturile poligonului şi întregul domeniu OABC, reprezintă soluţiile
posibile ale sistemului de restricţii.
Dacă reprezentăm grafic şi familia de drepte F  200 x1  300 x2  d 
,
 c1 c2 
corespunzătoare funcţiei – obiectiv F, observăm că valoarea maximă a funcţiei F se
atinge în acel vârf al poligonului pentru care distanţa de la dreapta corespunzătoare a
familiei F la origine este maximă. Astfel, rezultă că soluţia optimală a problemei este
cea corespunzătoare vârfului B (în figura de mai sus sunt reprezentate două drepte ale
familiei F, una pentru d = 100 şi cealaltă pentru d = 975, care trece prin B). Soluţia
optimală este deci:
x1opt = 3,75 buc. , x2opt = 0,75 buc. , Fmax = 975 €.
Rezolvarea cu metoda variabilelor de ecart: Se introduc variabilele de ecart xn+i (n
= 2, i = 1, 2) obţinând, din (R), următorul sistem de ecuaţii (la care am adăugat
condiţiile de nenegativitate):
 3x1  5 x2  x3  15
 x1  0, x2  0
6 x1  2 x2  x4  24
Observaţie: Sistemul obţinut este format din m = 2 ecuaţii cu m+n = 4 variabile.
Un astfel de sistem are un număr infinit de soluţii. Pentru a obţine o soluţie a sistemului,
se aleg valori pentru n = 2 dintre variabile şi se obţin apoi celelalte (rezolvând un sistem
de m = 2 ecuaţii cu m = 2 necunoscute). Un procedeu simplu de a alege valori iniţiale
pentru câte două necunoscute constă în a le anula (a le lua egale cu zero). În acest fel, se

5
U.P.G. Ploieşti / Facultatea de Inginerie Mecanică şi Electrică / Departamentul Inginerie Mecanică

obţin cel mult C nm m  C 42  6 soluţii cu m = 2 variabile nenule, între care se află şi
soluţiile de bază ale problemei.
Cele 6 soluţii obţinute sunt prezentate în tabelul de mai jos, împreună cu valorile
corespunzătoare ale funcţiei F şi cu precizarea tipului de soluţie (pentru soluţiile de
bază, s-a indicat şi vârful corespunzător al poligonului OABC).
Soluţia x1 x2 x3 x4 F Comentarii
1 0 0 15 24 0 Soluţie de bază (pct. O)
2 0 3 0 18 600 Soluţie de bază (pct. A)
3 0 12 - 45 0 - Soluţie imposibilă (x3 < 0)
4 5 0 0 -6 - Soluţie imposibilă (x4 < 0)
5 4 0 13 0 900 Soluţie de bază (pct. C)
6 3,75 0,75 0 0 975 Soluţie OPTIMALĂ
(pct. B, F = max)

Observăm că cele patru soluţii posibile obţinute prin această metodă de rezolvare
(1, 2, 5 şi 6) au proprietatea de a coincide cu vârfurile poligonului convex OABC
obţinut la rezolvarea prin metoda grafică. Aceste soluţii reprezintă deci soluţiile de bază
ale problemei. Dintre soluţiile de bază, una singură este soluţia finală (OPTIMALĂ),
cea care face ca funcţia – obiectiv F să atingă valoarea maximă. Această soluţie este
soluţia 6 (corespunzătoare punctului B): x1opt = 3,75 buc. ; x2opt = 0,75 buc.
Valoarea maximă a funcţiei obiectiv, corespunzătoare acestei soluţii, este:
Fmax = 200 x1opt + 300 x2opt + 0x3 + 0x4 = 975 €.

Problema nr. 2: Să se rezolve următoarea problemă de programare liniară:


 3x1  x2  2 x3  7
  xi  0
  2 x1  4 x2  12 
 4 x  3x  8 x  10 i  1,2,3
 1 2 3

f   x1  3x2  2 x3  maxim
Forma standard a problemei, obţinută din cea canonică de mai sus, prin
introducerea variabilelor de ecart, este (funcţia - obiectiv f este aceeaşi):
 3x1  x2  2 x3  x4  7
  2 x  4 x  x  12
 1 2 5

 4 x1  3x2  8 x3  x6  10
 xi  0, 1  i  6
Rezolvare: Baza iniţială este: x4 = 7, x5 = 12, x6 = 10, pentru care f = 0.
Variabilele din afara bazei sunt necunoscutele iniţiale ale problemei: x1, x2, x3.
Se trece la întocmirea tabelului simplex începând cu prima iteraţie, prin aplicarea
regulilor enunţate mai sus.
La iteraţia 1, variabila care „intră” în bază este x2, singura care prezintă coeficient
negativ în linia funcţiei-obiectiv. Variabila ce „iese” din baza iniţială este x5, deoarece
prin împărţirea coloanei VVB la coloana variabilei x2, se obţin valorile: pentru x4  -7

6
Bazele Ingineriei Sistemelor de Producţie – suport pentru Activități Aplicative IEDM, ID (Tema 1)

(valoare negativă); pentru x5  3 (cea mai mică valoare pozitivă); pentru x6  3,33.
Pivotul transformării este evidenţiat în tabel, iar coeficienţii pentru iteraţia următoare s-
au calculat conform regulilor explicate mai sus.
La iteraţia 2, variabila care „intră” în bază este x1, singura care prezintă coeficient
negativ în linia funcţiei-obiectiv. Variabila ce „iese” din baza iniţială este x4, deoarece
prin împărţirea coloanei VVB la coloana variabilei x1, se obţine o valoare pozitivă doar
pentru variabila x4.
La iteraţia 3, se constată că s-a obţinut soluţia optimă, pentru că toţi coeficienţii
din linia funcţiei obiectiv f sunt acum pozitivi sau nuli. Ca urmare, soluţia optimă a
problemei este: x1opt = 4 ; x2opt = 5 ; x3opt =0 .
Valoarea maximă a funcţiei obiectiv rezultăi: fmax = 11.
Tabelul simplex pentru rezolvarea problemei este următorul:
Coef.
Iteraţia VB VVB x1 x2 x3 x4 x5 x6
fcţ. ob.

0 x4 7 3 -1 2 1 0 0
0 x5 12 -2 4 0 0 1 0
1
0 x6 10 -4 3 8 0 0 1

0 1 -3 2 0 0 0

3 x2 3 -1/2 1 0 0 1/4 0
0 x4 10 5/2 0 2 1 1/4 0
2
0 x6 1 -5/2 0 8 0 -3/4 1

9 -1/2 0 2 0 3/4 0

-1 x1 4 1 0 4/5 2/5 1/10 0


3 x2 5 0 1 2/5 1/5 3/10 0
3 11
0 x6 0 0 10 1 -1/2 1

11 0 0 12/5 1/5 4/5 0