Sunteți pe pagina 1din 25

Unitatea de nvare 3

PROGRAMAREA LINIAR
Obiectivele unitii de nvare:
nelegerea i nsuirea principalelor (celor mai uzuale) metode de
rezolvare a problemelor de programare liniar;
nsuirea cunotinelor teoretice privind variantele de formulri
generale ale unei probleme de programare liniar, domeniile sale de aplicare,
teoremele matematice fundamentale, problematica programelor duale.
nsuirea cunotinelor de baz i deprinderilor practice necesare
pentru aplicarea metodei programrii liniare la rezolvarea problemelor
specifice ingineriei sistemelor de producie.

Cuprinsul unitii de nvare:


3.1. Formularea problemei de programare liniar. Domenii de aplicare 2
3.1.1. Formularea general a problemei programrii liniare
3.1.2. Domeniile de aplicare a programrii liniare
Teste de autoevaluare (seciunea 3.1)

3.2. Metode de rezolvare a problemelor de programare liniar


3.2.1. Teoremele fundamentale ale programrii liniare
3.2.2. Metoda grafic i metoda variabilelor de ecart
Teste de autoevaluare (seciunea 3.2)
Problem propus (seciunea 3.2)

2
5
6

7
7
9
15
15

3.3. Metoda simplex pentru rezolvarea problemelor de programare


liniar. Programe duale

16

3.3.1. Metoda simplex


3.3.2. Programe duale. Reguli pentru construirea programului dual
Teste de autoevaluare (seciunea 3.3)
Probleme propuse (seciunea 3.3)

16
23
24
25

Bibliografie
Soluiile problemelor propuse (seciunea 3.3)

25
26

Conf. dr. ing. Andrei Dumitrescu

3.1. Formularea problemei de programare liniar.


Domenii de aplicare
n continuare, n cadrul urmtoarelor pri ale cursului, se va pune accent
pe prezentarea unora din metodele cercetrii operaionale, care (dup cum s-a
artat n subseciunea 1.4.2, unde s-a realizat o caracterizare general a
acestora) sunt principalele metode matematice specifice ingineriei sistemelor
de producie. n cadrul unitilor de nvare 3 i 4, vor fi studiate metodele
programrii matematice (liniar abordat n continuare, neliniar i
dinamic), dezvoltate ca metode de rezolvare a problemei programrii de
optimizare, a crei formulare general este prezentat n subseciunea 1.4.3.
Programarea liniar este poate cea mai rspndit i utilizat metod a
cercetrii operaionale, destinat rezolvrii unei clase speciale deseori
ntlnit n practic de probleme ale programrii de optimizare, i anume
cele n care funcia obiectiv este o funcie liniar, iar sistemul de restricii
cuprinde inecuaii liniare nestricte.
Prezentm, n cele ce urmeaz, variante ale formulrii generale a unei
probleme de programare liniar, care mai este numit i program liniar, iar
apoi sunt abordate principalele domenii de aplicare ale acestui tip de probleme

3.1.1. Formularea general a problemei programrii


liniare
Formularea unei probleme de programare liniar se poate obine prin
particularizarea formulrii generale prezentate n subseciunea 1.4.3, rezultnd
enunul de mai jos:
S se determine valorile numerice pentru mulimea de variabile
(necunoscute ale problemei) xj, 1 j n, care satisfac urmtorul sistemul de m
(in)egaliti liniare:
ai1x1 + ai2x2 + ... + ainxn [ , = ] bi,

1im ,

aij, bi R

(3.1)

i condiiile de nenegativitate:
x1 0 , x2 0 ,... , xn 0 ,

(3.2)

pentru care funcia liniar


F = c1x1 + c2x2 +...+ cnxn cj R

(3.3)

i atinge maximul sau minimul.


Precizm c, n formularea prezentat mai sus, (3.1) reprezint sistemul
de restricii al problemei (inegaliti i/sau egaliti); (3.3) funcia obiectiv,
iar xj variabilele de stare ale sistemului (problemei) analizat, ce au sens n
cazurile practice doar dac sunt pozitive (mai mari sau egale cu zero), adic
ndeplinesc condiiile (3.2).
Definiia 1: Se spune c o problem de programare liniar este n (are)
forma canonic dac toate restriciile ei sunt inegaliti concordante i
tuturor variabilelor li se impun condiii de nenegativitate. (O restricie de
tip inegalitate a unei probleme de programare liniar se numete
concordant dac este o inegalitate de tipul cnd se cere maximizarea
2

Bazele Ingineriei Sistemelor de Producie

3. Programarea Liniar

funciei obiectiv i de tipul cnd se cere minimizarea acestei funcii. n


caz contrar, restricia se numete neconcordant.)
n consecin, o problem n form canonic de maximizare se poate
scrie condensat (folosind simboluri de nsumare) astfel:
n

a
j =1

ij

x j bi ,

xj 0 ,

i = 1, 2, , m

j = 1, 2, , n

(3.4)

F = c j x j = maxim ,
j =1

iar o problem n form canonic de minimizare se va scrie astfel:


n

a
j =1

ij

x j bi ,

xj 0 ,

i = 1, 2, , m

j = 1, 2, , n

(3.5)

F = c j x j = minim .
j =1

Observaia A: Orice problem de programare liniar poate fi pus sub o


form canonic de orice tip (de maximizare sau de minimizare), fr a fi
afectat soluia problemei. Astfel:
o egalitate se poate nlocui cu dou inegaliti de sens contrar;
o inegalitate neconcordant devine concordant prin nmulire cu -1;
problema minimizrii funciei F se poate reduce la problema
maximizrii funciei -F, prin relaia de mai jos:
min F = -max (-F),

n care: -F = (-c1) x1 + (-c2) x2 +...+ (-cn) xn . (3.6)

Definiia 2: Se spune c o problem de programare liniar este n (are)


forma standard dac toate restriciile sunt egaliti (ecuaii) i tuturor
variabilelor li se impun condiii de nenegativitate.
Observaia B: Orice problem de programare liniar poate fi adus la
forma standard, deoarece sistemul de inegaliti (3.1) se poate transforma ntrun sistem de ecuaii prin ataarea de variabile de ecart, yi = xn+i 0, la partea
stng a fiecrei inecuaii. Numrul variabilelor de ecart, care la rndul lor
trebuie s ndeplineasc condiii de nenegativitate, al unei probleme de
programare liniar este ntotdeauna egal cu numrul de restricii m din sistemul
de inecuaii (3.1).
Forma standard a unei probleme de programare liniar, pe baza
observaiei de mai sus, este alctuit din aceleai trei elemente, i anume:
funcia obiectiv (n care variabilele de ecart introduse nu apar sau
apar cu coeficieni egali cu zero, ca n relaia de mai jos):
F = c1x1 + c2x2 + ... + cnxn + 0y1+ 0y2 +... + 0ym = maxim (minim) ; (3.7)
condiiile de nenegativitate (care se aplic tuturor variabilelor, n
numr total n + m, n variabile iniiale i m de ecart):
x1 0, x2 0, ..., xn 0, y1 = xn+1 0, y2 = xn+2 0, ..., ym = xn+m 0 ; (3.8)
sistemul de restricii, devenit un sistem de m ecuaii (cu n + m
necunoscute):
3

Conf. dr. ing. Andrei Dumitrescu

ai1x1 + ai2x2 + ... + ainxn + yi = bi,

1im.

(3.9)

Relaia (3.9) este valabil pentru inecuaii cu semnul . Dac


inegalitile au sens contrar ( bi), n forma standard se vor folosi variabile de
ecart cu semnul minus (- xn+i).
Forma condensat standard a unei probleme de programare liniar cu
variabilele de ecart xn+i = yi este urmtoarea:
n

j =1

i =1

funcia obiectiv: F = c j x j + 0 x n +i = maxim (minim) , (3.7a)


condiiile de nenegativitate: x j 0 , 1 j n + m ,

sistemul de restricii:

a
j =1

ij

(3.8a)

x j + x n +i = bi , 1 i m .

(3.9a)

Forma matriceal a unei probleme de programare liniar se obine


definind urmtorii vectori i matrice:
vectorul linie al coeficienilor funciei obiectiv: C = [c1 c2 ... cn] ;
b1
b ;
2
...

bn
x1
x ;
2
...

xn
xn+1
x
n+2
...

xn + m

vectorul coloan al termenilor liberi din (3.1):

B=

vectorul coloan al variabilelor de stare:

X=

vectorul coloan al variabilelor de ecart:

E=

matricea coeficienilor sistemului (3.1):

A = [aij]

1 i m
1 j n

Cu aceste notaii, forma canonic matriceal de maximizare, respectiv


cea de minimizare, se pot scrie astfel:
F = C X = max .
;

A X B, X O
F = C X = min.

A X B, X O ,

(3.10)
(3.11)

unde O este vectorul coloan nul (toate elementele sale sunt egale cu zero).
Forma standard matricial este:
F = C X + O E t = max .

AX + IE = B
,

X O,
EO

(3.12)

unde I este matricea unitate.


Prin alipirea vectorilor X i E (n X), C i O (n C) i a matricelor A i
I (n A), forma standard devine:
4

Bazele Ingineriei Sistemelor de Producie

3. Programarea Liniar

F = CX = max. (min.)
AX = B
X O .

(3.13)

3.1.2. Domeniile de aplicare a programrii liniare


Principalul domeniu de aplicare al programrii liniare l constituie
problemele de alocare optim a resurselor limitate (repartiie de resurse), care
apar frecvent n activitatea de conducere a sistemelor de producie. Astfel, sunt
disponibile mai multe resurse (materii prime, utilaje, for de munc, energie,
capital etc.) n cantiti limitate. Cu ajutorul acestor resurse, trebuie s se
desfoare mai multe activiti (de regul economice, ca de exemplu realizarea
unor procese de producie). Problema const n determinarea nivelului fiecrei
activiti considerate, astfel nct toate activitile s se ncadreze n limitrile
precizate ale resurselor i s fie asigurat satisfacerea unui anumit criteriu,
unic, de optimizare (exprimat printr-o funcie obiectiv), cum ar fi: maximizarea
profitului, minimizarea cheltuielilor etc.
Se consider c avem la dispoziie m resurse diferite, pentru realizarea a
n activiti (fabricarea unor produse). Se noteaz cu bi cantitatea disponibil
din resursa de ordin i (1 i m), iar cu xj nivelul (necunoscut iniial) de
desfurare al activitii de rang j (sau cantitatea n care este realizat un anumit
produs, j) din cele n considerate (1 j n). n mod evident, variabilele xj
trebuie s satisfac condiiile de nenegativitate (3.2). Atunci, aij reprezint
cantitatea de resurs i necesar realizrii unei uniti cantitative a produsului
(activitii) j. Dac se face ipoteza c aij nu depinde de cantitatea produs xj
(ceea ce constituie o simplificare), sistemul de restricii (3.1) toate inegaliti
de tipul exprim condiia ca nivelul disponibil din resursa i, bi, s nu fie
depit de cantitatea total necesar din resursa i. Se urmrete determinarea
variabilelor xj n vederea obinerii unui profit maxim (exprimat prin funcia
obiectiv, F). Dac se urmrete maximizarea profitului, n expresia (3.3) a lui
F, cj = ej - dj , unde ej este preul de vnzare i dj reprezint cheltuielile de
producie (costul), ambele pentru unitatea cantitativ de produs j. i aici se face
ipoteza simplificatoare c ej i dj nu depind nici ele de cantitatea produs din
sortimentul j. Pentru acest caz, se poate da o interpretare precis i variabilelor
de ecart (numite uneori i variabile de abatere), yi; astfel, yi reprezint
cantitatea neutilizat (neconsumat) din resursa i.
Alte aplicaii importante ale programrii liniare sunt urmtoarele:
1) Lansarea n fabricaie (utilizarea optim a capacitii utilajelor
disponibile): se d un numr de operaii ce se pot executa pe un numr de
utilaje diferite i se cere repartizarea optim a operaiilor pe utilaje, astfel nct
timpul (cheltuielile) de producie s fie minime.
2) Problema de transport sau de distribuire (a se vedea seciunea 4.1):
distribuia unui produs de la m centre de aprovizionare (depozite, uniti
productive etc.) la n centre de consum (uniti productive, puncte de desfacere,
magazine etc.), cu minimizarea costurilor de transport.
3) Problema amestecurilor (a dietei): determinarea modului de
amestecare (cantitatea xj din fiecare element disponibil j) a n elemente
disponibile sau substane necesare ntr-un amestec (aliaj, ulei etc.), ce trebuie
s aib anumite proprieti (exprimate matematic prin m restricii liniare),
urmrindu-se minimizarea cheltuielilor de obinere a produsului final
(amestecului), exprimate prin funcia obiectiv F, n care cj este preul unitar al
5

Conf. dr. ing. Andrei Dumitrescu

elementului j. Problema se aplic i n cazul dietei unei colectiviti (animalele


dintr-o cresctorie, personalul unei uniti militare etc.), caz n care restriciile
se refer la anumite cerine de nutriie ale unui amestec de alimente.
4) Planificarea investiiilor ntr-un sistem de producie. n cazul celei
mai simple formulri, se consider c dispunem de o sum total, S, ce poate fi
investit n diverse activiti j, fiecare producnd un profit unitar cj. Se pune
problema stabilirii sumei xj, investit n activitatea j, astfel nct profitul total
s fie maxim. Din punctul de vedere matematic, problema cuprinde funcia
obiectiv (3.3), condiiile de nenegativitate (3.2) i o singur restricie,
exprimat prin egalitatea:
x1 + x2 + + xn = S .

(3.14)

5) Amplasarea unei uniti de producie n funcie de cerinele pieei


(cu scopul maximizrii profitului, a minimizrii riscului etc.).
6) Evaluarea muncii depuse de angajai sau a salariilor acestora.
7) Manipularea materialului cu minimizarea pierderilor.
8) Planificarea produciei (n vederea minimizrii preului de cost).
9) Ordonanarea produciei / fabricaiei (n timp).
n ncheiere, menionm c domeniile de aplicare enunate mai sus sunt
valabile pentru toate domeniile programrii matematice (programare neliniar,
ptratic, dinamic, stohastic etc.). O aplicaie concret se poate modela att
cu ajutorul programrii liniare n general, dac se fac unele ipoteze
simplificatoare ce conduc la liniarizarea problemei ct i cu al celei neliniare,
dac se adopt un model mai complex i deci mai apropiat de realitate. De
multe ori, n practic, se prefer adoptarea ipotezelor de liniaritate, deoarece
modelele matematice liniare sunt mai simple, iar pe baza acestora se pot
formula concluzii calitative care i menin valabilitatea n anumite limite i
ntr-un context neliniar.
Teste de autoevaluare (seciunea 3.1)
1.
2.
3.
4.
5.
6.
7.
8.

Care este diferena dintre forma standard i forma canonic a unei


probleme de programare liniar?
De ce sunt necesare condiiile de ne-negativitate n formularea unei
probleme de programare liniar? Credei c ele sunt necesare i n
formularea unei probleme de programare neliniar?
Ce reprezint inegalitile concordante n cazul unei probleme de
programare liniar? De ce este necesar definirea acestei noiuni?
Ce avantaje credei c prezint forma matriceal a unei probleme de
programare liniar?
Indicai o aplicaie concret a programrii liniare. Considerai c
aplicaia indicat poate fi rezolvat i cu ajutorul programrii neliniare?
Care sunt principalele domenii de aplicare ale programrii liniare n
domeniul ingineriei sistemelor de producie?
Care este rolul variabilelor de ecart n formularea unei probleme de
programare liniar?
Prezentai succint formularea problemei amestecurilor i indicai o
situaie concret care s corespund acestei probleme.

Bazele Ingineriei Sistemelor de Producie

3. Programarea Liniar

3.2. Metode de rezolvare a problemelor


de programare liniar
n cele ce urmeaz, dup enunarea teoremelor care stau la baza tuturor
metodelor de rezolvare a problemelor de programare liniar, vor fi abordate, n
principal cu scop didactic, metoda grafic i metoda variabilelor de ecart, a
cror nelegere este esenial pentru nsuirea tuturor celorlalte metode, dintre
care va fi studiat metoda simplex, n seciunea 3.3.

3.2.1. Teoremele fundamentale ale programrii liniare


n aceast subseciune, vor fi enunate, fr demonstraie (demonstraiile,
pur matematice, nu prezint interes din punctul de vedere al acestui curs), o
serie de teoreme ce reprezint baza matematic a metodelor de rezolvare a
problemelor de programare liniar. nainte de a enuna aceste teoreme, sunt
necesare ns cteva definiii i observaii importante, care se refer la o
problem de programare liniar formulat sub forma standard
corespunztoare relaiilor (3.7), (3.8) i (3.9).
Definiia 1: Se numete soluie a unei probleme de programare liniar
(exprimat n forma standard) o mulime de n+m valori ale variabilelor xj
(inclusiv cele de ecart) care satisfac sistemul restriciilor (3.9).
Definiia 2: Se numete soluie admisibil (posibil) a aceleiai probleme o
soluie ce verific, n plus, i condiiile de nenegativitate (3.8).
Definiia 3: Se numete soluie optimal (optim) acea soluie admisibil
(de regul unic) pentru care funcia - obiectiv F, dat de relaia (3.7), i
atinge maximul / minimul (care optimizeaz funcia obiectiv, F).
Definiia 4: O problem de programare liniar se numete incompatibil
dac mulimea soluiilor admisibile (numit i mulimea programelor), A ,
este vid. Dac A , problema se numete compatibil.
Definiia 5: Dac funcia obiectiv a unei probleme compatibile este
nemrginit pe A, se spune c problema are un optim infinit. Dac problema
are cel puin o soluie (real finit), se spune c prezint un optim finit.
Definiia 6: O soluie, corespunztoare formei standard a unei probleme de
programare liniar, nu neaprat admisibil, se numete soluie de baz dac
mulimea coloanelor din matricea A, corespunztoare componentelor xj
nenule, 1 j n + m, este liniar independent.
Definiia 7: Se numete soluie nedegenerat o soluie de baz care are
exact m componente nenule. Se numete soluie degenerat o soluie de
baz care are mai puin de m componente nenule.
Definiia 8: Variabilele corespunztoare componentelor nenule ale unei
soluii de baz se numesc variabile de baz, iar cele corespunztoare
componentelor nule se numesc variabile secundare (din afara bazei).
Observaia A: Sistemul de restricii (inecuaii sau ecuaii liniare) al
problemei, adic n cazul formei standard sistemul (3.9) de m ecuaii cu
n + m necunoscute, poate avea o infinitate de soluii, o singur soluie sau nici
una (n cazul n care sistemul restriciilor este contradictoriu). Dac problema a
fost formulat corect, cel mai frecvent este cazul cu o infinitate de soluii (lipsa

Conf. dr. ing. Andrei Dumitrescu

de soluii indic faptul c s-au formulat prea multe restricii, astfel c practic
ele nu pot fi ndeplinite simultan n totalitate).
Observaia B: Problema de programare liniar poate avea soluii, dar nici
una dintre ele s fie admisibil, caz n care A = . n situaia n care A , este
posibil ca funcia F s fie nemrginit pe A, adic s existe un ir de soluii
admisibile de-a lungul cruia funcia obiectiv s tind spre +/- (o valoare
optimal infinit).
Observaia C: O consecin a definiiilor 6 i 7 de mai sus este c, n
condiiile n care restriciile (3.9) sunt liniar independente, fiecare dintre
soluiile de baz ale problemei este nedegenerat, deci prezint m componente
xj nenule i n componente xj nule, 1 j n + m.
Teorema 1: Un sistem de ecuaii / inecuaii liniare, de tipul (3.9)
determin o mulime convex care este fie vid, fie poliedric i nemrginit
(cu un numr finit de vrfuri ns), fie un poliedru convex. Aceast mulime
este mulimea soluiilor admisibile, A.
Teorema 2: Dac mulimea (poliedrul) convex a soluiilor admisibile nu
este o mulime vid, fiecare vrf al poliedrului (mulimii A) determin o soluie
de baz i reciproc (o soluie admisibil este un vrf al poliedrului soluiilor
dac i numai dac este o soluie de baz).
Teorema 3: A) Dac mulimea soluiilor admisibile, A, este nevid i
mrginit, problema (programul liniar) are un optim finit.
B) Dac mulimea soluiilor admisibile, A, este nevid i nemrginit,
funcia - obiectiv poate avea valoarea optimal infinit ( ) sau finit.
C) Dac mulimea soluiilor admisibile, A, este vid, programul liniar
nu are soluii (este incompatibil, deoarece sistemul restriciilor este
contradictoriu).
Teorema 4 (fundamental): Dac un program liniar are un optim finit,
atunci funcia obiectiv, F, i atinge optimul (maximul sau minimul) ntr-o
soluie de baz (vrf al poliedrului) sau eventual ntr-o combinaie convex de
soluii de baz (pe o fa a poliedrului). Practic, soluia optim se afl n unul
dintre vrfurile poliedrului convex al soluiilor admisibile, A.
Observaia D: De cele mai multe ori, soluia optimal este unic. n acest
caz, conform teoremei fundamentale enunate mai sus, soluia optimal
corespunde unei soluii de baz. Dac soluia optimal nu este unic, ea poate
corespunde unei combinaii liniare de soluii de baz
Principala consecin a teoremelor enunate mai sus i n special a celei
fundamentale este c va fi deci suficient s cutm soluia optim a problemei
de programare liniar printre elementele mulimii finite a soluiilor de baz vrfurile poliedrului soluiilor admisibile (n numr de C nn+ m ), i nu n mulimea
A, n general infinit. De aici rezult cea mai simpl metod de rezolvare (a
descrierii totale sau a variabilelor de ecart), descris n subseciunea 3.2.2.
n cazul n = 2 (problem cu dou variabile), se poate utiliza i metoda
grafic de rezolvare, prezentat n aceeai subseciune 3.2.2, n principal cu
scop didactic (pentru o mai bun nelegere a celorlalte metode).
Aceste prime dou metode de rezolvare nu pot fi aplicate cu succes n
cazurile uzuale, datorit numrului mare de restricii m i de variabile n
ntlnite n practic. De aceea, metodele uzuale de rezolvare a problemelor de
programare liniar au ca scop simplificarea algoritmului metodei variabilelor
de ecart, prin folosirea unor metode iterative cu reducerea numrului de
8

Bazele Ingineriei Sistemelor de Producie

3. Programarea Liniar

ncercri pentru obinerea soluiilor optime. Cea mai rspndit dintre aceste
metode este metoda simplex (descris n subseciunea 3.3.1), care este
fundamentat teoretic pe forma explicit a unui program liniar (n raport cu o
baz dat) i pe o serie de teoreme mai complexe, pe care (din acest motiv) nu
le vom mai prezenta.
Exist multe alte metode de rezolvare a problemelor de programare
liniar, unele cu caracter general, cum ar fi utilizarea programelor duale (vezi
subseciunea 3.3.2) i altele adaptate unor probleme de structur special, cum
ar fi procedeul pas cu pas sau metoda fluxului ntr-o reea pentru problemele
de transport (a se vedea seciunea 4.1). Exist, de asemenea, unele extinderi ale
programrii liniare, cum este programarea liniar parametric sau cea n
numere ntregi. S-au dezvoltat, de asemenea, metode i algoritmi pentru
analiza sensibilitii i postoptimizare, care studiaz stabilitatea soluiei optime
n cazul (frecvent ntlnit n practic) n care constantele problemei (aij, bi, cj)
nregistreaz unele variaii.

3.2.2. Metoda grafic i metoda variabilelor de ecart


Dup cum s-a artat mai sus, cea mai simpl metod de rezolvare,
consecin direct a teoremelor prezentate, este cea a descrierii totale sau a
variabilelor de ecart, ce presupune parcurgerea a dou etape:
1. determinarea soluiilor de baz ale sistemului de m ecuaii ale
formei standard (corespunztor celor m restricii) cu n+m
necunoscute (cele n variabile iniiale i cele m variabile de ecart);
2. calculul valorii funciei F pentru fiecare soluie de baz admisibil
(avnd doar valori pozitive ale variabilelor) i compararea acestor
valori n vederea determinrii soluiei optimale.
Observaie. Etapa 1 de mai sus presupune rezolvarea unui sistem format
din m ecuaii cu m + n variabile. Un astfel de sistem are un numr infinit de
soluii. Pentru a obine o soluie a sistemului, se aleg valori pentru n dintre
variabile i se obin apoi celelalte (rezolvnd un sistem de m ecuaii cu m
necunoscute). Un procedeu simplu de a alege valori iniiale pentru cte n
necunoscute const n a le anula (a le lua egale cu zero). n acest fel, se obin
cel mult C nn+ m soluii cu m variabile nenule, ntre care se afl i soluiile de
baz ale problemei.
n cazul n = 2 (problem de programare liniar cu numai dou variabile),
se poate utiliza i metoda grafic de rezolvare, care presupune reprezentarea
grafic a restriciilor (3.1) i a condiiilor de nenegativitate, n planul de
coordonate x1 i x2. Rezultatul unei astfel de reprezentri este un poligon
convex, care poate fi, n anumite cazuri, nemrginit sau redus la un punct sau
chiar la o mulime vid.
Definiie: Un poligon nchis se numete convex dac, o dat cu dou puncte,
conine i segmentul care le unete (dac punctele A i B aparin
poligonului, atunci orice punct de pe segmentul AB aparine, de asemenea,
poligonului).
Observaie. Definiia de mai sus se poate extinde la un poliedru convex
(n spaiul n-dimensional) sau la o mulime convex n general. Poligonul
convex obinut prin aplicrea metodei grafice este, de atfel, o reprezentare
grafic a mulimii soluiilor admisibile, A, care este o mulime convex.
9

Conf. dr. ing. Andrei Dumitrescu

n continuare, se reprezint grafic i funcia F, ca o familie de drepte


paralele, iar soluia optimal va corespunde de regul unui vrf al poligonului
convex i anume cel pentru care distana de la dreapta corespunztoare 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 corespunztoare
funciei F, s se obin o infinitate de soluii (o combinaie convex de soluii
de baz) corespunztoare mulimii punctelor segmentului de dreapt ce
definete acea latur a poligonului, definit de dou soluii de baz (vrfuri).
n cazul problemei cu n > 2 variabile (x1, ..., xn), planul x1 - x2 devine un
spaiu n dimensional, iar poligonul devine un poliedru convex, obinut din
intersecia hiperplanelor reprezentnd restricile. n acest caz ns, problema nu
mai poate fi efectiv rezolvat prin aplicarea metodei grafice.
Aplicaia 3.1: Un mic atelier produce dou tipuri de piese de automobil.
Atelierul cumpr piese turnate pe care le strunjete, le gurete i le lefuiete.
Se cunosc urmtoarele date:
Costul pieselor turnate: A 2 /buc.; B 3 /buc.
Preurile de vnzare (de pia) ale produselor: A 5 /buc.; B 6 /buc.
Cheltuielile necesare pentru o or de utilizare a celor trei maini:
- pentru strung: 20 /or;
- pentru maina de gurit: 14 /or;
- pentru maina de lefuit: 17,5 /or.
Capacitile de prelucrare ale celor trei maini, indicate n tabelul 3.1.

Capaciti [buc./or]

Piesa A

Tabelul 3.1.
Piesa B

a strungului

25

40

a mainii de gurit

28

35

a mainii de lefuit

35

25

S se determine valoarea produciei (a celor dou piese, A i B) astfel


nct profitul obinut s fie maxim.
Definirea funciei-obiectiv: n acest scop, se calculeaz profilul adus de
fiecare pies, conform tabelului 3.2 (valorile sunt exprimate n euro/buc.).

Tabelul 3.2.
Piesa B

Operaia

Piesa A

Strunjire
Gurire
lefuire
Achiziie

20/25 = 0,8
14/28 = 0,5
17,5/35 = 0,5
2,0

20/40 = 0,5
14/35 = 0,4
17,5/25 = 0,7
3,0

Total cheltuieli
Pre vnzare

3,8
5,0

4,6
6,0

Profit/pies

1,2

1,4

Dac se produc, n medie, x piese de tip A i y piese de tip B pe or,


profitul pe or va fi (acesta reprezint i funcia obiectiv a problemei):
10

Bazele Ingineriei Sistemelor de Producie

3. Programarea Liniar

F = 1,2 x + 1,4 y = maxim .


Determinarea restriciilor se face pe baza capacitii de producie orare:
D1 (strunjire) x/25 + y/40 1 40 x + 25 y 1000
D2 (gurire) x/28 + y/35 1 35 x + 28 y 980
D3 (lefuire) x/35 + y/25 1 25 x + 35 y 875
Se adaug condiiile de ne-negativitate: x 0 , y 0 .

Rezolvarea prin metoda grafic este ilustrat n figura 3.1. Dreptele Di,
i=1,2,3 , corespund celor trei restricii ale problemei. Dac am reprezenta i
familia de drepte reprezentnd funcia F (pentru a nu ncrca fig. 3.1, acestea
nu au mai fost incluse pe grafic), se obine ca soluie optimal cea
corespunztoare punctului B, i anume:
xopt = 17 buc./or ,

yopt = 13 buc./or .

O (0, 0)
A (0, 25)
B (17, 13) D1D3
C (25, 0)

40
30
A
20
B
10
C
O

10

20

30

40

D1 D2

x
D3

Fig. 3.1. Rezolvarea grafic a Aplicaiei 3.1

Rezolvarea cu metoda variabilelor de ecart:


n formularea modelului de optimizare, se introduc variabilele de ecart
xn+i (n = 2, i = 1, ..., m ; m = 3, n + m = 5) obinnd, din sistemul de restricii al
problemei, urmtorul sistem de ecuaii (la care am adugat condiiile de
nenegativitate i n care s-au folosit notaiile: x1 = u; x2 = v; x3 = w):
40 x + 25 y + u = 1000

35 x + 28 y + v = 980
25 x + 35 y + w = 875

x, y 0
u , v, w 0

S-a obinut astfel un sistem cu m = 3 ecuaii i m + n = 5 necunoscute.


Numrul maxim de soluii de baz obinute este, n acest caz:
2

5 4/
C nn+ m = C52 =
= 10 .
1 2/
Soluiile de baz obinute sunt prezentate n tabelul 3.3. Dintre cele 10
soluii, 6 (menionate ca imposibile n tabel) nu sunt admisibile, deoarece
prezint i valori negative ale variabilelor de baz: soluiile 2, 3, 6, 7, 8 i 10.
Celelalte 4 soluii sunt soluiile de baz admisibile (i anume 1, 4, 5 i 9), care
11

Conf. dr. ing. Andrei Dumitrescu

corespund vrfurilor poligonului convex OABC obinut anterior prin metoda


grafic (a se vedea fig. 3.1).

Tabelul 3.3.
Soluia

Comentarii

1000

980

875

Sol. baz (pct. O)

40

- 140

- 525

Sol. impos.(v, w < 0)

35

125

- 350

Sol. impos.(w < 0)

25

375

280

35

Sol. baz (pct. A)

25

105

250

30

Sol. baz (pct. C)

28

- 120

175

Sol. impos.(u < 0)

35

- 400

Sol. impos.(u, v < 0)

- 125

Sol. impos.(w < 0)

- 245

100/7 120/7

16,94 12,90

25,9

38,39

Sol. optim (pct. B)

10

56/3 35/3 - 115/3

Sol. impos.(u < 0)

Dintre soluiile de baz admisibile, una singur este soluia final


(optim), cea care face ca funcia obiectiv F s-i ating valoarea sa maxim.
Aceast soluie este soluia 9, corespunztoare punctului B din figura 3.1, deci
rezult:

xopt = 17 buc./or ,
yopt = 13 buc./or ,
Fmax = 38,4 /or .
Aplicaia 3.2 (problem cu domeniul OABC nemrginit): S se rezolve
urmtoarea problem de programare liniar.
3 x1 + 4 x 2 12 (d1 )

(d 2 )
2 x1 + x 2 2
x 2x 2
(d 3 )
2
1

x1 , x 2 0
F = 3 x1 + 4 x 2 = max .

Rezolvarea cu metoda grafic, ilustrat n figura 3.2, arat c domeniul


soluiilor posibile este nemrginit, deci valoarea maxim a funciei obiectiv F
se atinge la +. n acest caz, nu exist practic o soluie optim. Se poate
considera o soluie variabil, ca n figur, definit de dreapta d1 i depinznd de
parametrul a, care, pentru a +, conduce la valoarea maxim a lui F (+).
Sistemul obinut prin introducerea variabilelor de ecart este urmtorul:
3 x1 + 4 x2 + x3 = 12

2 x1 + x2 + x4 = 2
x 2x + x = 2
2
5
1
xi 0, i = 1, ...,5
12

Bazele Ingineriei Sistemelor de Producie

3. Programarea Liniar

x2
d2 d1
soluie variabil
3
2

4 4
+ a
5 5
18 3
x2 = + a
5 5

x1 =

B
A

C
-4

-1

A (0, 2)
B (4/5, 18/5)d1d2
C (2, 0)

d3

x1

-1

Fig. 3.2. Rezolvarea grafic a Aplicaiei 3.2


Aplicaia 3.3: Se consider un banc de lucru al unui atelier de reparaii ce
execut dou categorii de reparaii. Resursele disponibile luate n considerare
sunt materialele i fora de munc. Se noteaz cu x1 i x2 volumul (n buci) al
celor dou categorii de reparaii. Resursele necesare sunt indicate n tabelul 3.4.

Categorii de reparaii

x1

x2

Resurse materiale* [kg/buc.]

Tabelul 3.4.
Total disponibil
resurse
15 kg

24 ore

**

Fora de munc [ore/buc.]

Pre unitar de reparaie [/buc]


200
300
* consum unitar de materiale; ** consum unitar de manoper.
S se determine cantitatea optim de produse reparate, x1 i x2, astfel
nct preul (valoarea) produciei realizate s fie maxim.

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


1) funcia obiectiv (preul): F = 200x1 + 300x2 = max.
3 x1 + 5 x2 15
2) sistemul de restricii:

6 x1 + 2 x2 24
3) condiiile de ne-negativitate: x1 0 , x2 0 .

Rezolvarea prin metoda grafic este ilustrat n figura 3.3.


Observaie: Coordonatele vrfurilor poligonului convex OABC
(punctele O, A, B, C), mpreun cu laturile poligonului i ntregul domeniu
OABC, reprezint soluiile posibile ale sistemului de restricii.
Dac reprezentm grafic i familia de drepte F 200 x1 + 300 x2 = d ,
c2
c1

corespunztoare funciei obiectiv F, observm c valoarea maxim a funciei


F se atinge n acel vrf al poligonului pentru care distana de la dreapta
corespunztoare a familiei F la origine este maxim. Astfel, rezult c soluia
optimal a problemei este cea corespunztoare vrfului B (n figura de mai sus
13

Conf. dr. ing. Andrei Dumitrescu

sunt reprezentate dou drepte ale familiei F, una pentru d = 100 i cealalt
pentru d = 975, care trece prin B). Soluia optimal este deci:
x1opt = 3,75 buc. ,
x2opt = 0,75 buc. ,
Fmax = 975 .
x2

x1 = 0

(0; 3)
3)
AA(0;

B (3,75; 0,75)

BC(3,75;
(4; 0) 0,75)

(la x2 = 12)

C (4; 0)
6x1 + 2x2 = 24
A

F = max. [d=975]

3
3x1 + 5x2 = 15

2
- F [d=100]

x2 = 0
C

x1

Fig. 3.3. Rezolvarea grafic a Aplicaiei 3.3

Rezolvarea cu metoda variabilelor de ecart: Se introduc variabilele de


ecart xn+i (n = 2, i = 1, 2) obinnd, din sistemul de restricii, urmtorul sistem
de ecuaii (la care am adugat condiiile de nenegativitate):
3 x1 + 5 x2 + x3 = 15

6 x1 + 2 x2 + x4 = 24

x1 0, x2 0, x3 0, x4 0

Observaie: Sistemul obinut este format din m = 2 ecuaii cu m + n = 4


variabile. Un astfel de sistem are un numr infinit de soluii. Pentru a obine o
soluie a sistemului, se aleg valori pentru n = 2 dintre variabile i se obin apoi
celelalte (rezolvnd un sistem de m = 2 ecuaii cu m = 2 necunoscute). Un
procedeu simplu de a alege valori iniiale pentru cte dou necunoscute const
n a le anula (a le lua egale cu zero). n acest fel, se obin cel mult C nm+ m = C 42 = 6
soluii cu m = 2 variabile nenule, ntre care se afl i soluiile de baz ale
problemei.
Cele 6 soluii obinute sunt prezentate n tabelul 3.5, mpreun cu
valorile corespunztoare ale funciei F i cu precizarea tipului de soluie
(pentru soluiile de baz, s-a indicat i vrful corespunztor al poligonului
OABC).
Observm c cele patru soluii posibile obinute prin aceast metod de
rezolvare (1, 2, 5 i 6) au proprietatea de a coincide cu vrfurile poligonului
convex OABC obinut la rezolvarea prin metoda grafic. Aceste soluii
reprezint deci soluiile de baz ale problemei. Dintre soluiile de baz, una
singur este soluia final (OPTIMAL), cea care face ca funcia obiectiv F
s ating valoarea maxim. Aceast soluie este soluia 6 (corespunztoare
punctului B):
x1opt = 3,75 buc. ;
x2opt = 0,75 buc.
Valoarea maxim a funciei obiectiv, corespunztoare acestei soluii,
este:
Fmax = 200 x1opt + 300 x2opt + 0x3 + 0x4 = 975 .
14

Bazele Ingineriei Sistemelor de Producie

3. Programarea Liniar

Soluia

x1

x2

x3

x4

Tabelul 3.5.
Comentarii

15

24

Soluie de baz (pct. O)

18

900

Soluie de baz (pct. A)

12

- 45

Soluie imposibil (x3 < 0)

-6

Soluie imposibil (x4 < 0)

800

Soluie de baz (pct. C)

3,75

0,75

975

Soluie OPTIMAL
(pct. B, F = max)

Teste de autoevaluare (seciunea 3.2)


1.
2.
3.
4.
5.
6.
7.
8.

Care este diferena dintre o soluie admisibil i o soluie de baz ale


unei probleme de programare liniar?
Enunai principalele teoreme ale programrii liniare i comentai rolul
fiecreia dintre ele.
Care este teorema fundamental a programrii liniare i care este
scopul pentru care a fost enunat?
Ce se nelege prin mulime convex? Indicai un exemplu concret
pentru cazul unui spaiu tridimensional (n = 3).
Care este diferena dintre variabilele de baz i cele din afara bazei? n
ce scop credei c au fost introduse aceste noiuni?
n ce situaii poate fi rezolvat o problem de programare liniar cu
metoda grafic? Pot fi ntlnite astfel de situaii n practic?
Care considerai c este principalul dezavantaj al metodei variabilelor
de ecart, care i limiteaz aplicabilitatea?
Comparai cele dou metode de rezolvare propuse pentru cazul n = 2.
Pe care dintre acestea o preferai?

Problem propus (seciunea 3.2)


S se rezolve, utiliznd succesiv metoda grafic i metoda variabilelor
de ecart (comparndu-se apoi rezultatele obinute), problema de programare
liniar caracterizat de urmtorul model matematic:
12 x1 + 4 x2 48

6 x1 + 10 x2 30
x1 0 , x2 0 .
F = 200x1 + 100x2 = max.

15

Conf. dr. ing. Andrei Dumitrescu

3.3. Metoda simplex pentru rezolvarea problemelor


de programare liniar. Programe duale
n cele ce urmeaz, va fi prezentat cea mai rspndit metod de
rezolvare a problemelor de programare liniar, i anume metoda simplex,
urmat de prezentarea problematicii programelor duale, pe baza crora s-au
dezvoltat alte metode.

3.3.1. Metoda simplex


Metoda SIMPLEX, al crei algoritm a fost elaborat iniial de ctre G. B.
Dantzig, n anul 1947, s-a impus ca fiind cea mai utilizat metod de rezolvare
a problemelor de programare liniar. Aceast metod iterativ permite o
explorare sistematic a mulimii soluiilor de baz ale problemei, enunat n
forma standard, cu mbuntirea soluiei (prin apropierea de soluia
optim) de la o iteraie la alta. Metoda furnizeaz, de asemenea, criterii pentru
stabilirea problemelor cu optim infinit sau pentru care mulimea soluiilor
admisibile este o mulime vid.
Aplicarea metodei simplex unei probleme de programare liniar
presupune parcurgerea, n esen, a urmtoarelor etape de rezolvare (dup ce,
iniial, problema a fost enunat n forma standard):
I. determinarea unei soluii de baz iniiale (baza iniial);
II. trecerea la o alt soluie de baz (alt vrf al poliedrului convex
definit de mulimea soluiilor admisibile), plecnd de la baza iniial /
precedent (vrful iniial / precedent), astfel nct s se obin o valoare mai
mare / mai mic a funciei obiectiv (s se mbunteasc valoarea funciei
obiectiv de maximizat / minimizat);
III. se consider ca soluie optimal o soluie de baz obinut dup
etapa II, atunci cnd nu mai este posibil s se mreasc / micoreze valoarea
funciei obiectiv.
Rezolvarea etapei I presupune practic determinarea unei baze (numit
baza iniial) b n matricea A din sistemul (3.13). Cea mai simpl variant
de rezolvare a acestei etape este s se adopte baza iniial definit astfel:
xj = 0 (pentru 1 j n) i xn+i = bi (pentru 1 i m) .
Aceast soluie nu este ns aplicabil pentru orice program liniar, dei
este valabil pentru cazul n care restriciile problemei (3.1) sunt liniar
independente (ceea ce este greu de verificat n practic). De aceea, s-au
elaborat o serie de metode de gsire a unei baze iniiale, dintre care amintim
metoda celor dou faze (ce utilizeaz aa-numita baz artificial, etapa II a
problemei de programare liniar rezolvndu-se n dou faze).
Etapa II este iterativ i pornete de la forma explicit a programului
liniar n raport cu baza iniial. Aceasta, de fapt, exprim funcia obiectiv a
problemei i variabilele de baz ale soluiei iniiale (cele nenule xn+i definite n
etapa I) n funcie de celelalte variabile, cu valori nule (variabilele din afara
bazei, numite i variabile secundare). Forma explicit algebric a unui
program liniar poate fi scris astfel:

xib +

a
jJ

ij

x j = bi , i I ,
16

(3.15)

Bazele Ingineriei Sistemelor de Producie

F= F

c
jJ

3. Programarea Liniar

xj

(3.16)

n care xib sunt variabilele de baz, I mulimea indicilor variabilelor de baz,

J mulimea indicilor variabilelor secundare, bi valorile variabilelor de baz


(egale cu termenii liberi ai formei explicite), F valoarea funciei obiectiv,
aij coeficienii sistemului de restricii ai formei explicite, c j coeficienii
funciei obiectiv din forma explicit.
n continuare, etapa II urmrete stabilirea unei noi soluii de baz,
obinut prin nlocuirea uneia dintre variabilele de baz (numit variabila ce
iese din baz) ale soluiei iniiale cu una din variabilele secundare (variabila
ce intr n baz). Aceast schimbare a soluiei de baz urmrete ca valoarea
funciei obiectiv s creasc/scad. n acest scop, etapa implic realizarea
urmtorilor trei pai:
10. se alege variabila secundar care s intre n baz (s devin
variabil de baz la iteraia urmtoare), prin aplicarea criteriilor de
intrare n baz;
20. se alege apoi variabila de baz care s ias din baz (s devin
variabil secundar la iteraia urmtoare), prin aplicarea criteriilor
de ieire din baz;
30. se exprim variabilele de baz ale noii soluii de baz i funcia
obiectiv n funcie de noile variabile secundare (din afara bazei),
adic se determin forma explicit a problemei asociat noii baze.
Criterii de intrare n baz (de a alege noua variabil de baz la etapa II):
pentru problemele de maxim: n noua baz intr acea variabil
secundar pentru care coeficientul corespunztor din expresia
funciei obiectiv are cea mai mare valoare pozitiv;
pentru problemele de minim: n noua baz intr acea variabil
secundar pentru care coeficientul corespunztor din expresia
funciei obiectiv negativ i cel mai mare n valoare absolut.

Algoritmul simplex este descris, matematic, de urmtorii pai:


10. se determin o baz iniial n matricea A i se calculeaz
coeficienii formei explicite a programului liniar n raport cu aceast
baz iniial, aij , bi , c j , F din relaiile (3.15) i (3.16);
20. se aplic testul de optimalitate, care stabilete dac s-a obinut
soluia optim: dac c j 0, oricare ar fi j J, atunci soluia de baz
curent este cea optim; n caz contrar (exist cel puin un j J,
pentru care c j < 0), se trece la pasul urmtor;
30. se aplic criteriul de intrare n baz: se determin k J, astfel nct:
ck = min (c j ) ; variabila secundar xk este cea care intr n baz;
jJ

40. se aplic testul pentru optim infinit ce stabilete dac problema are
un optim infinit: dac aik 0, oricare ar fi i I, atunci problema are
un optim infinit; n caz contrar (exist cel puin un i I, pentru care
aik > 0), se trece la pasul urmtor;
0
5 . se aplic criteriul de ieire din baz: se determin r I (variabila xr
fiind cea care iese din baz), prin aplicarea relaiei de mai jos:
17

Conf. dr. ing. Andrei Dumitrescu

b
br
= min i
i

I
;
a
>
0
ik
ark
aik

(3.17)

60. se realizeaz schimbarea bazei, adic se construiete forma explicit


a programului liniar n raport cu noua baz i se revine la pasul 20.
Observaie: Testul de optimalitate (pasul 20) formulat mai sus se refer la
o problem de maximizare. Pentru o problem de minimizare, s-a obinut
soluia optim dac c j 0, oricare ar fi j J. n plus, criteriul de intrare n baz
(pasul 30) se modific pentru o problem de minimizare astfel: ck = max (c j ) .
jJ

Pentru a simplifica aplicarea metodei i a obine mai rapid soluia


optimal, se construiete un tabel, numit tabel simplex, care cuprinde
urmtoarele coloane:
prima coloan, notat CO, conine coeficienii cj ai variabilelor de
baz de la iteraia curent n funcia obiectiv iniial a problemei;
a doua coloan, notat VB, conine variabilele de baz, xib , de la
iteraia respectiv (cea curent);
a treia coloan, notat VVB, conine valorile variabilelor de baz, bi ,
n condiiile n care cele secundare (din afara bazei) au valoarea zero;
coloanele urmtoare (x1, x2, ..., xn+m) conin coeficienii aij ai
sistemului de restricii al formei explicite a programului liniar
corespunztor soluiei de baz a iteraiei curente.
Sub liniile corespunztoare celor m variabile de baz, se introduce o linie
ce conine valoarea funciei obiectiv la iteraia respectiv, F , i coeficienii
formei explicite a problemei corespunztoare iteraiei curente, c j .
Prezentm cteva precizri privind modul de rezolvare a problemei, dac
se utilizeaz exclusiv tabelul simplex:
la prima iteraie (corespunztoare bazei iniiale dac se poate
considera ca soluie de baz iniial cea caracterizat prin xj = 0 i xn+i = bi), n
coloana VB se trec variabilele de ecart, n coloana VVB se scriu valorile
acestora (corespunztoare termenilor liberi din sistemul de restricii al
problemei, bi), iar n coloanele xi se trec coeficienii sistemului de restricii
scris n forma standard (cu variabile de ecart); n linia corespunztoare funciei
obiectiv, se scriu coeficienii c j = cj ;

se alege noua variabil care s intre n baz ca fiind (n cazul unei


probleme de maximizare) cea pentru care coeficientul negativ al liniei funciei
obiectiv este mimim (adic maxim n valoare absolut); dac toi coeficienii
liniei funciei obiectiv sunt pozitivi sau nuli, soluia obinut la iteraia
respectiv este soluia optim a problemei;
se alege variabila care iese din baz pe baza coeficienilor rezultai
din mprirea valorilor bi din coloana VVB la valorile aik din coloana
variabilei ce intr n baz; variabila ce iese corespunde valorii pozitive
minime a coeficientului astfel calculat; dac toi coeficienii astfel calculai
sunt negativi, problema are optim infinit;
se evideniaz (prin ncercuire sau eventual ncadrndu-l ntr-un
dreptunghi) pivotul transformrii bazei pentru iteraia urmtoare; acesta este

18

Bazele Ingineriei Sistemelor de Producie

3. Programarea Liniar

coeficientul ark aflat la intersecia coloanei variabilei ce intr n baz cu linia


variabilei ce iese din baz;
se scrie nti linia noii variabile de baz (cea care intr n baz), xk,
care cuprinde coeficienii calculai prin mprirea coeficienilor liniei
variabilei ce iese din baz, xr, la pivotul transformrii;
se calculeaz ceilali coeficieni utiliznd pivotul i coeficienii de pe
coloana variabilei ce intr n baz prin aplicarea regulii dreptunghiului: dac
ne imaginm dreptunghiul a crui diagonal este determinat de pivot i de
coeficientul ce trebuie transformat, atunci noua valoare a acestuia se obine
mprind la pivot diferena dintre produsul coeficienilor de pe diagonala
considerat i produsul coeficienilor situai pe cealalt diagonal a
dreptunghiului. Aceeai regul se va aplica i liniei funciei obiectiv, pentru
determinarea noilor valori de pe aceasta.
Valorile din coloana VVB de la iteraia corespunztoare soluiei optimale
sunt valorile optime ale necunoscutelor problemei.
n ncheiere, precizm c exist i un algoritm simplex dual, care rezolv
programul liniar dual al problemei date. O alt problem deosebit este cea a
convergenei algoritmului simplex. De asemenea, n cadrul algoritmului
simplex, poate apare fenomenul de ciclare (se ajunge la o baz deja procesat
la o iteraie anterioar), dar exist tehnici pentru evitarea acestui fenomen
Aplicaia 3.4: S se rezolve urmtoarea problem de programare liniar:
x1 + x2 + x3 7
xi 0

x1 + 2 x2 + 2 x3 13
3 x x + x 5 i = 1,2,3
3
1 2

f = 2 x1 + 3x2 + 5 x3 = maxim
Forma standard a problemei se obine din cea canonic din enunul de
mai sus, prin introducerea variabilelor de ecart (funcia - obiectiv f este
aceeai):
x1 + x2 + x3 + x4 = 7
x + 2 x + 2 x + x = 13
1
2
3
5

3 x1 x2 + x3 + x6 = 5

xi 0, 1 i 6

Rezolvare: Prezentm iniial, cu scop didactic, rezolvarea problemei fr


a utiliza tabelul simplex, cu exprimarea clar a formei explicite a problemei
pentru fiecare baz. n mod uzual ns, acest tabel este ntotdeauna utilizat.
Etapa 10: Baza iniial este: x4 = 7, x5 = 13, x6 = 5, pentru care f = 0.
Variabilele din afara bazei sunt necunoscutele iniiale ale problemei: x1, x2, x3.
Etapa 20, iteraia 1: Variabilele bazei iniiale i f se exprim n funcie de
variabilele din afara bazei, pornind de la forma standard a problemei,
obinndu-se astfel forma explicit n raport cu baza iniial:
x4 + x1 + x2 + x3 = 7

x5 + x1 + 2 x2 + 2 x3 = 13
(*)

x6 + 3 x1 x2 + x3 = 5

f = 0 (2 x1 3 x2 5 x3 )
19

x4 = 7
pentru x = 13

5
x1 =0
x6 = 5
x2 = 0
x3 = 0
f =0

Conf. dr. ing. Andrei Dumitrescu

Se alege apoi noua variabil care s intre n baz, astfel nct f s creasc
cel mai rapid. Aceast variabil este x3, ce are coeficientul pozitiv cel mai mare
n expresia funciei obiectiv f.
Se alege variabila din baza iniial care s ias din baz. Aceast
variabil este cea pentru care raportul dintre termenul liber i coeficienii noii
variabile de baz, x3, este pozitiv i minim. Aceti coeficieni sunt:
pentru x4 7/1 = 7;
pentru x5 13/2 = 6,5;
pentru x6 5/1 = 5.
Rezult deci c x6 este variabila care iese din baz. Noua baz este
x3, x4, x5, iar noile variabile din afara bazei sunt x1, x2, x6.
Etapa 20, iteraia 2: Se exprim noua baz i f n funcie de noile variabile
din afara bazei. Din a treia ecuaie (*), se exprim x3 i se nlocuiete apoi n
celelalte ecuaii. Rezult astfel urmtorul sistem, ce reprezint forma explicit
n raport cu noua baz:
x3 = 5
x3 + 3 x1 x2 + x6 = 5

x 2 x + 2 x x = 2 pentru
x4 = 2

1
2
6
() 4

x =0
x5 = 3
x5 5 x1 + 4 x2 2 x6 = 3 x12 =0
f = 25 13 x1 + 8 x2 5 x6 x3 =0 f = 25 (> 0)
Noua variabil care intr n baz este acum x2, unica ce are un coeficient
pozitiv n expresia lui f. Valorile coeficienii variabilelor de baz ce trebuie
determinai pentru a stabili variabila ce iese din baz sunt:
pentru x3 5/-1 = - 5 (<0);
pentru x4 2/2 = 1;
pentru x5 3/4 = 0,75.
Rezult deci c variabila care iese din baz este x5.
Etapa 20, iteraia 3: Noua baz, care este acum x2, x3, x4, se exprima
(alturi de f) n funcie de noile variabile din afara bazei, x1, x5, x6, obinnd
forma explicit n raport cu baza de la aceast iteraie:
5
1
1
3
3

x2 4 x1 + 4 x5 2 x6 = 4
x2 = 4 = 0,75

7
1
1
23 pentru
23
x3 + x1 + x5 + x6 =
x3 =
= 5,75
( ) 4 4

2
4 x1 =0
4

1
1
1
1
x5 =0
x4 + x1 x5 =
x4 = = 0,5

x6 =0
f = 312 3x 2 2 x 2x
f = 31 2 (> 25)
1
5
6

Etapa 30: Observm c toi coeficienii funciei obiectiv f, obinut dup


iteraia 3 din etapa precedent, sunt acum negativi, deci nu mai este posibil,
schimbnd baza, s mrim valoarea lui f. Rezult c soluia obinut mai sus
(dup iteraia 3) este soluia OPTIMAL:
x1opt = 0 ; x2opt = 0,75 ; x3opt = 3,75 .
Valoarea maxim a funciei obiectiv rezult deci:
fmax = 31.
Tabelul simplex corespunztor aplicaiei studiate, care conine toate cele
trei iteraii ale rezolvrii, este tabelul 3.6, prezentat pe pagina urmtoare.
Dup cum se poate observa, coloanele (x1, ... , x6) din tabelul 3.6 conin
coeficienii sistemului corespunztor iteraiei respective (*) pentru iteraia 1,
20

Bazele Ingineriei Sistemelor de Producie

3. Programarea Liniar

(**) pentru iteraia 2 i (***) pentru iteraia 3. Linia de sub cele trei variabile
de baz conine valoarea funciei obiectiv la iteraia respectiv i coeficienii cu
semn schimbat ai lui f din forma explicit corespunztoare iteraiei.
Iteraia

Tabelul 3.6.
x5
x6

CO

VB

VVB

x1

x2

x4

x5

13

(*)

x6

-1

-2

-3

-5

x3

x4

x3

-1

x4

-2

-1

(**)

x5

-5

-2

25

13

-8

x2

3/4

-5/4

1/4

-1/2

x3

23/4

7/4

1/4

1/2

(***)

x4

1/2

1/2

-1/2

31

Prezentm, n ncheiere, un exemplu de calcul al coeficienilor utiliznd


regula dreptunghiului (pentru trecerea de la iteraia 1 la iteraia 2):
7 1 - 1 5
1 1 - 1 3
=2
= 2
1
1
13 1 - 2 5
1 1 - 2 3
x5 :
=3
= 5
1
1
0 1 - (-5) 5
- 2 1 - (-5) 3
f:
= 25
= 13
1
1
VVB
x1

x4 :

11 - 1 (-1)
=2
1
2 1 - 2 (-1)
=4
1
- 3 1 - (-5) (-1)
= 8
1
x2

0 1 - 1 1
= 1
1
0 1 - 2 1
= 2
1
0 1 - (-5) 1
=5
1
x6

Aplicaia 3.5: S se rezolve urmtoarea problem de programare liniar:


3 x1 x2 + 2 x3 7

2 x1 + 4 x2 12
4 x + 3 x + 8 x 10
1
2
3

x1 0, x2 0, x3 0
f = x1 + 3x2 2 x3 = maxim

21

Conf. dr. ing. Andrei Dumitrescu

Forma standard a problemei, obinut din cea canonic de mai sus, prin
introducerea variabilelor de ecart, este urmtoarea (funcia - obiectiv f fiind
aceeai, nu a mai fost scris din nou):
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 iniial este: x4 = 7, x5 = 12, x6 = 10, pentru care f = 0.
Variabilele din afara bazei sunt necunoscutele iniiale ale problemei: x1, x2, x3.
Se trece la ntocmirea tabelului simplex (tabelul 3.7 de mai jos) ncepnd
cu prima iteraie, prin aplicarea regulilor enunate mai sus.
La iteraia 1, variabila care intr n baz este x2, singura care prezint
coeficient negativ n linia funciei-obiectiv. Variabila ce iese din baza iniial
este x5, deoarece prin mprirea coloanei VVB la coloana variabilei x2, se obin
valorile: pentru x4 -7 (valoare negativ); pentru x5 3 (cea mai mic
valoare pozitiv); pentru x6 3,33. Pivotul transformrii este evideniat n
tabel, iar coeficienii pentru iteraia urmtoare s-au calculat conform regulilor
explicate mai sus.

Tabelul 3.7.
Iteraia

Coef.
fc. ob.

VB

VVB

x1

x2

x3

x4

x5

x6

x4

-1

x5

12

-2

x6

10

-4

-3

x2

-1/2

1/4

x4

10

5/2

1/4

x6

-5/2

-3/4

-1/2

3/4

-1

x1

4/5

2/5

1/10

x2

2/5

1/5

3/10

x6

11

10

-1/2

11

12/5

1/5

4/5

La iteraia 2, variabila care intr n baz este x1, singura care prezint
coeficient negativ n linia funciei-obiectiv. Variabila ce iese din baza iniial
este x4, deoarece prin mprirea coloanei VVB la coloana variabilei x1, se
obine o valoare pozitiv doar pentru variabila x4.
22

Bazele Ingineriei Sistemelor de Producie

3. Programarea Liniar

La iteraia 3, se constat c s-a obinut soluia optim, deoarece toi


coeficienii din linia funciei obiectiv f sunt acum pozitivi sau nuli. Ca urmare,
soluia optim a problemei este:
x1opt = 4 ; x2opt = 5 ; x3opt =0 .
Valoarea maxim a funciei obiectiv rezult: fmax = 11.

3.3.1. Programe duale. Reguli pentru construirea


programului dual
n principiu, oricrei probleme de programare liniar i se poate asocia o
alta, numit duala sa, construit n funcie de structura problemei iniiale,
numit problem primal. ntotdeauna sensul optimizrii n cele dou
probleme este diferit: dac una este o problem de maximizare, cealalt este de
minimizare. Teoria dualitii studiaz relaiile dintre programul liniar primal i
cel dual.
n continuare, vom considera doar programe liniare n forma canonic,
avnd condiii de nenegativitate. Astfel, programele liniare de mai jos sunt
programe duale:
n

F
c j x j = min im
=

=
1
j

( P ) x j 0,
1 j n
n

aij x j bi , 1 i m
j =1

G
bi yi = max im
=

i =1

(D) yi 0,
1 i m
m

aij y j c j , 1 j n
i =1

(3.18)

n relaiile (3.18), programul primal este un program de minimizare, (P),


i are funcia obiectiv F, iar programul dual al su este unul de maximizare,
(D), ce prezint funcia obiectiv G.
Prezentm, n continuare, principalele reguli pentru construirea
programului dual, reguli ilustrate i de relaiile de mai sus:
10. Dac programul primal (P) este o problem de maximizare
(minimizare), programul dual (D) va fi o problem de minimizare
(maximizare).
20. Fiecrei restricii din (P) i corespunde n (D) o variabil. Ca
urmare, numrul variabilelor duale yi este egal cu numrul restriciilor
programului primal m (n afara condiiilor de ne-negativitate); fiecare variabil
dual yi poate fi deci pus n coresponden cu restricia primal i.
30. Fiecrei variabile din (P) i corespunde o restricie n (D). Ca
urmare, numrul n al restriciilor din programul dual este egal cu numrul
variabilelor primale xj; fiecare variabil primal xj poate fi deci pus n
coresponden cu restricia dual j.
40. Termenii liberi bi din (P) devin coeficieni ai funciei obiectiv n
(D), iar coeficienii funciei obiectiv cj din (P) devin termeni liberi n (D).
Matricea coeficienilor sistemului de restricii din (D) este transpusa matricei
coeficienilor sistemului de restricii din (P).
50. Dualul programului dual este programul primal.
Utilizarea programelor duale, construite conform regulilor de mai sus, la
rezolvarea problemelor de programare liniar se bazeaz pe urmtoarea:
Teorem fundamental: Se consider un program primal (P) i dualul
su (D). Atunci:

23

Conf. dr. ing. Andrei Dumitrescu

A) Dac (P) are o soluie optim finit, atunci (D) are o soluie
optim finit, iar minF = maxG (valorile optime ale funciilor obiectiv ale
celor dou programe sunt egale).
B) Dac (P) respectiv (D) are soluie optim infinit, atunci (D)
respectiv (P) nu are soluie.
C) Dac (P) respectiv (D) nu are soluie, (D) respectiv (P) fie
nu are soluie, fie are soluie optim infinit.
Consecin (pentru enunul A): Dac x = ( x j ) i y = ( y i ) sunt un cuplu
de soluii de baz, atunci exist relaia:
n

j =1

i =1

F ( x ) = c j x j bi yi = G ( y ) .

(3.19)

Dac x i y sunt soluii optime, simbolul din relaia de mai sus se


nlocuiete cu simbolul =.
Concluzie: Oricrei probleme de programare liniar i se poate ataa un
program dual. Rezolvnd problema, se determin implicit i soluia
programului dual. De multe ori, rezolvarea problemei duale este mai simpl
sau mai rapid.
Exemplu: Urmtoarele dou programe sunt duale:
y1 + y2 y3 1
x1 2 x1 , x2 0
2

x1 + x2 3
y2 + y3 1


x + x 1
y,y ,y 0
1
2

1 2 3
1
max f = x1 + x2
min g = 2 y1 + 3 y2 + y3
2

Teste de autoevaluare (seciunea 3.3)


1. Comparai cele trei metode de rezolvare a problemelor de
programare liniar prezentate. Care credei c este cea mai eficient?
2. Cum se definete forma explicit a unei probleme de programare
liniar i cu ce scop a fost aceasta definit?
3. Care sunt etapele de rezolvare a unei probleme de programare liniar
cu metoda simplex?
4. Care este criteriul de intrare n baz la rezolvarea unei probleme de
programare liniar cu metoda simplex? De ce este necesar utilizarea
unui astfel de criteriu?
5. Care este criteriul de ieire n baz la rezolvarea unei probleme de
programare liniar cu metoda simplex? Care este rolul acestui
criteriu?
6. Care credei c sunt avantajele utilizrii tabelului simplex pentru
rezolvarea unei probleme de programare liniar?
7. Ce sunt programele duale i n ce scop credei c au fost definite?
8. Enunai principalele reguli pentru construirea unui program dual.

24

3. Programarea Liniar

Bazele Ingineriei Sistemelor de Producie

Probleme propuse (seciunea 3.3)


1. S se rezolve, utiliznd metoda simplex, problema de programare
liniar propus la finele seciunii 3.2. S se compare rezultatele i durata
necesar pentru obinerea soluiilor cu cele din cazul aplicrii metodelor
prezentate n seciunea precedent.
2. S se rezolve, utiliznd metoda simplex, urmtoarea problem de
programare liniar:
x1 + 2 x2 + 3 x3 5

2 x1 + x2 + x3 4
x + 2x + 2x 6
2
3
1

x1 0, x2 0, x3 0
f = 5 x1 + 10 x2 + 20 x3 = maxim

Bibliografie
1. Baciu, A., Pascu, A., Puca, E., Aplicaii ale cercetrii operaionale,
Editura Militar, Bucureti, 1988.
2. Brbatu, Gh., Ionescu, V., Cercetarea operaional n ntreprinderile
industriale, Editura Tehnic, Bucureti, 1981.
3. Bebea, N., Metode pentru rezolvarea problemelor de optimizare,
Editura Didactic i Pedagogic, Bucureti, 1976.
4. Dumitrescu, A., Bazele ingineriei sistemelor, Editura Universitii
din Ploieti, 2005.
5. Dumitrescu, I., .a., Aplicaii inginereti ale calculatoarelor, Vol. 2
Optimizri, Editura Didactic i Pedagogic, Bucureti, 1976.
6. Kaufmann, A., Metode i modele ale cercetrii operaionale, Editura
tiinific, Bucureti, 1967.
7. Nica, V., Ciobanu, Gh., .a., Cercetri operaionale, Vol. I, Ed.
Matrix Rom, Bucureti, 1998.
8. Oprian, Gh., Simion, E., Elemente de cercetri operaionale i
criptologie, Editura Politehnica Press, Bucureti, 2002.
9. Rendi, Dorina-Marieta, Metode ale cercetrii operaionale:
programare liniar, teoria jocurilor, teoria grafurilor, Editura
Orizonturi Universitare, Timioara, 2002.
10. Vrnceanu, Gh., Mititelu, t., Probleme de cercetare operaional,
Editura Tehnic, Bucureti, 1978.

Soluiile problemelor propuse (la seciunea 3.3)

1.

Soluia optim este: x1opt = 15/4 ;

2.

Soluia optim este: x1opt = 0; x2opt = 0; x3opt = 5/3; fmax = 100/3.

25

x2opt = 3/4 ; Fmax = 825.