Sunteți pe pagina 1din 20

Programare Liniara

Introducere concis
a

Material preluat din notele de curs ale lui Thomas S. Ferguson

Introducere

O problem
a de programare liniara poate fi definita ca problema maximiz
arii sau minimiz
arii
unei functii liniare care trebuie sa satisfaca niste constrangeri liniare. Constrangerile pot fi
egalit
ati sau inegalit
ati.
Un exemplu concret este urmatorul: Sa se determine numerele x1 si x2 care maximizeaz
a
suma x1 + x2 care satisface constrangerile x1 0, x2 0, si
x1 + 2 x2 4
4 x1 + 2 x2 12
x1 + x2 1
Aceast
a problem
a are 2 necunoscute (x1 si x2 ) si 5 constrangeri. Toate constrangerile sunt
inegalit
ati liniare, n sensul c
a fiecare dintre ele consta dintr-o inegalitate a unei functii liniare
a variabilelor. Primele 2 constrangeri, x1 0 si x2 0, sunt speciale. Aceste constrangeri se
numesc constr
angeri de non-negativitate (engl. nonnegativity constraints) si apar frecvent n
problemele de programare liniara. Celelalte constrangeri se numesc constr
angeri principale.
Functia pe care dorim s
a o maximizam sau sa o minimizam se numeste functie obiectiv. In
acest exemplu, functia obiectiv este x1 + x2 .
Intruc
at apar doar 2 variabile, aceasta problema poate fi rezolvata reprezentand grafic
multimea de puncte din plan care satisfac toate constrangerile (numita multime de constr
angeri) iar apoi g
asind acele puncte ale multimii de constrangeri care maximizeaza functia
obiectiv. Fiecare constr
angere de inegalitate este satisfacuta de punctele unui semiplan, deci
multimea de constr
angeri este o intersectie de semiplane. In acest exemplu, multimea de
constr
angeri este figura pentagonala ilustrata n Figura 1.
Solutia problemei const
a n gasirea punctului (x1 , x2 ) din multimea de constrangeri pentru care functia obiectiv x1 + x2 este maxima. Functia x1 + x2 este constanta pe liniile cu
panta -1, de exemplu pe linia x1 + x2 = 1. Valoarea lui x1 + x2 creste cand deplasam linia
cu panta -1 mai departe de origine. Deci, trebuie gasita linia cu panta -1 care se afla cel mai
departe de origine si intersecteaza multimea de constrangeri. Aceasta are loc n punctul de
intersectie al liniilor x1 + 2 x2 = 4 si 4 x1 + 2 x2 = 12, adica n punctul (x1 , x2 ) = (8/3, 2/3).
Valoarea functiei obiectiv n acest punct este 8/3+2/3=10/3.
Exercitiile 1 si 2 pot fi rezolvate folosind aceasta metoda grafica.
Este evident c
a n general functia obiectiv, fiind liniara, atinge mereu valoarea maxim
a
sau minim
a n un ,,colt al multimii de constrangeri, daca multimea de constrangeri este
1

6
4 x1 + 2 x2 = 12

5
x1 + x2 = 1

4
3
2
1

punct optim
x1 + 2 x2 = 4

Figure 1: Multimea de constrangeri pentru problema data ca exemplu.


m
arginit
a de un contur poligonal. Ocazional, maximul poate fi atins si de-a lungul unei
ntregi muchii sau suprafete a multimii de constrangeri, dar atunci maximul apare si n un
punct colt al multimii de constrangeri.
In cazurile c
and apar mai multe variabile si mai multe constrangeri, problemele de programare liniar
a nu mai pot fi rezolvate asa usor, folosind metoda grafica. Unele variabile pot
fi constr
anse s
a fie non-negative, iar alte variabile pot fi neconstranse. Unele constrangeri
pot fi egalit
ati iar altele pot fi inegalitati. Un rol special l joaca doua clase de probleme,
pe care le numim problema de maxim standard si problema de minim standard. In aceste
probleme, toate variabilele sunt constranse sa fie non-negative iar toate constrangerile sunt
inegalit
ati.
In aceste cazuri presupunem date urmatoarele date:


b1
c1
..
..
un m-vector b = . , un n-vector c = . , si
bm

cn

a11
a21

o matrice m n-dimensionala A = .
..

a12
a22
..
.

..
.

a1n
a2n

..
.

am1

am2

amn

ale c
aror elemente sunt numere reale.

Problema de maxim standard: Sa se gaseasca un n-vector x = (x1 , . . . , xn )T care s


a
maximizeze functia liniar
a
cT x = c1 x1 + + cn xn
si care s
a satisfac
a constr
angerile liniare
a11 x1 + a12 x2 + + a1n xn b1
a21 x1 + a22 x2 + + a2n xn b2
..
.
am1 x1 + am2 x2 + + amn xn bm
si x1 0, x2 0, . . . , xn 0. Alternativ, putem scrie aceste constrangeri n forma matriceal
a
mult mai compact
a A x b si x 0.
Problema de minim standard: Sa se gaseasca un n-vector y = (y1 , . . . , xm ) care s
a
minimizeze functia liniar
a
yT b = y1 b1 + + ym bm
si care s
a satisfac
a constr
angerile liniare
y1 a11 + a21 x2 + + ym am1 c1
y1 a12 + a22 x2 + + ym am2 c2
..
.
y1 a1n + y2 a2n + + ym amn cn
si y1 0, y2 0, . . . , ym 0. Alternativ, putem scrie aceste constrangeri n forma matriceal
a
mult mai compact
a yT A cT si y 0.
Este de remarcat faptul ca problema de minim standard face uz de , iar problema de
maxim standard face uz de . Exemplul introductiv este o problema de maxim standard.

Exemplul 1: Problema dietei


Se presupun disponibile m feluri diferite de mancare M1 , . . . , Mm , care contin nutrienti
N1 , . . . , Nn esentiali pentru sanatate. Fie cj doza zilnica minim necesara de nutrient Nj ,
si bi pretul pe unitate de mancare Mi . Fie aij cantitatea de nutrient Nj continuta n o
unitate de m
ancare Mi . Problema este de a asigura cantitatea necesara de nutrienti cu un
cost minim.
Fie yi num
arul de unit
ati de mancare Mi ce trebuiesc cumparate zilnic. Costul pe zi al
unei astfel de diete este
b1 y1 + b2 y2 + . . . + bm ym .
(1)
Cantitatea de nutrient Nj continuta n aceasta dieta este
a1j y1 + a2j y2 + amj ym
pentru j = 1, . . . , n. Acest
a dieta este luata n considerare doar daca satisface conditiile de
minim necesar de nutrienti, adica doar daca
a1j y1 + a2j y2 + amj ym cj
3

pentru j = 1, . . . , n.

(2)

Deoarece nu putem cump


ara o cantitate negativa de mancare, avem implicit si constrangerile
y1 0, y2 0, . . . ym 0.

(3)

Problema devine: s
a se minimizeze (1) ncat sa satisfaca constrangerile liniare (2) si (3).
Aceasta este o evident problema de minim standard.

Exemplul 2: Problema transportului


Consider
am I porturi sau unitati de productie P1 , . . . , PI care furnizeaza un anumit produs,
si J piete M1 , . . . , MJ la care se doreste furnizarea acestui produs. Fiecare port Pi detine
o cantitate si de produs (i = 1, 2, . . . , I), si fiecare piata Mj trebuie sa primeasca cantitatea
rj (j = 1, . . . , J). Fie bij costul de transport al unei unitati de produs de la portul Pi la
piata Mj . Problema este de a satisface cererile pietelor cu un cost minim de transport.
Fie yij cantitatea de produs trimis de la Pi la Mj . Costul total de transport este
I X
J
X

yij bij .

(4)

i=1 j=1

Cantitatea trimis
a de la Pi este
s
a impunem constr
angerea

PJ

J
X

j=1

yij , si deoarece volumul disponibil la Pi este si , trebuie

yij si

pentru i = 1, . . . , I.

(5)

j=1

Cantitatea trimis
a la piata Mj este
s
a respect
am constr
angerea
I
X

PI

i=1

yij rj

yij , si deoarece cantitatea ceruta este rj , trebuie

pentru j = 1, . . . , J.

(6)

i=1

Intruc
at se presupune c
a nu putem trimite o cantitate negativa de la Pi la Mj , impunem si
constr
angerile
yij 0 pentru i = 1, . . . , I si j = 1, . . . , J.
(7)
Aceast
a problem
a se poate reformula ca o problema de minim standard. Numarul variabilelor y este I J. Ins
a care este valoarea lui n? n este numarul total de constrangeri
principale, deci n = I + J, dar unele constrangeri sunt cu n timp ce altele sunt cu .
In problema de minim standard, toate constrangerile sunt cu . Putem realiza acest lucru
nmultind constr
angerile (5) cu -1:
J
X
(1)yij sij

pentru i = 1, . . . , I.

(8)

j=1

Problems obtinut
a ,,minimizeaza (4) n raport cu constrangerile (8), 6) si (7) este acum n
form
a standard. Exercitiul 3 solicita scrierea matricii A pentru aceasta problema.
4

Exemplul 3: Problema analizei activit


atii
Se consider
a n activit
ati A1 , . . . , An disponibile n o companie facand uz de m resurse
R1 , . . . , Rm (ore de lucru, otel, etc.) Fie bi cantitatea disponibila de resursa Ri , si aij
cantitatea de resurs
a Ri folosita n efectuarea activitatatii Aj cu intensitate unitara. Fie cj
valoarea net
a pentru companie a efectuarii activitatii Aj cu intensitate unitara. Problema
este de a alege intensit
atile de efectuare a diverselor activitati pentru a maximiza valoarea
de productie a companiei n raport cu resursele specificate.
Fie xj intensitatea de efectuare a operatiei Aj . Valoarea acestei alocari de activitate este
n
X

cj xj .

(9)

j=1

Cantitatea de resurs
a Ri folosita in aceasta alocare de activitate nu poate fi mai mare dec
at
bi , deci
n
X
aij xj bi pentru i = 1, . . . , m.
(10)
j=1

Se presupune c
a nu putem efectua o activitate cu intensitate negativa, deci
x1 0, x2 0, . . . , xn 0.

(11)

Problema devine: S
a se maximizeze (9) n raport cu constrangerile liniare (10) si (11).
Aceasta este o problem
a de maxim standard.

Exemplul 4: Problema aloc


arii optime
Se consider
a I persoane disponibile pentru J lucrari. Valoarea persoanei i care lucreaz
a1
zi la lucrarea j este aij pentru i = 1, . . . , I si j = 1, . . . , J. Problema este de a gasi o alocare
de lucr
ari la persoane care sa maximizeze valoarea totala.
O alocare este o alegere de numere xij pentru i = 1, . . . , I si j = 1, . . . , J, unde xij
reprezint
a proportia din timpul persoanei i alocat pentru a efectua lucrarea j. Adica
J
X

xij 1

pentru i = 1, . . . , I

(12)

xij 1

pentru j = 1, . . . , J

(13)

j=1
I
X
i=1

si
xij 0

pentru i = 1, . . . , I si j = 1, . . . , J.

(14)

Relatia (12) reflect


a faptul ca o persoana nu poate aloca mai mult de 100% din timpul s
au
de lucru, (13) nseamn
a c
a doar o singura persoana are voie sa efectueze o lucrare la un
moment dat, iar (14) afirm
a ca nimeni nu poate lucra o durata negativa de timp.

Problema este de a maximiza valoarea totala


I X
J
X

aij xij

i=1 j=1

n raport cu constr
angerile (12), (13) si (14). Aceasta este o problema de maxim standard
cu n = I + J si n = I J.

Terminologie

Functia care se maximizeaz


a sau minimizeaza se numeste functie obiectiv.
Un vector x pentru pentru problema de minim standard, sau y pentru problema de
maxim standard, este fezabil daca satisface constrangerile liniare ale problemei.
Multimea vectorilor fezabili se numeste multime de constr
angeri.
O problem
a de programare liniara este fezabil
a daca multimea sa de constrangeri este
nevid
a. In caz contrar, problema este nefezabil
a.
O problem
a fezabil
a de de maxim (resp. minim) este nem
arginit
a daca functia obiectiv
poate lua valori pozitive oric
at de mari (resp. negative oricat de mici) pentru vectorii fezabili.
In caz contrar, problema este m
arginit
a.
Deci, o problem
a de programare liniara poate fi de 3 feluri: fezabil marginita, fezabil
nem
arginit
a, si nefezabil
a.
Valoarea unei probleme fezabile de maxim (resp. minim) este valoarea maxima (resp.
minim
a) a functiei obiectiv pentru valori de intrare din multimea de constrangeri.
Un vector fezabil pentru care functia obiectiv atinge valoarea problemei se numeste
optim.

Toate problemele de programare liniar


a pot fi convertite n o form
a
standard
O problem
a de programare liniara a fost definita ca maximizarea sau minimizarea unei
functii liniare n raport cu niste constrangeri liniare. Toate problemele de acest fel pot fi
convertite n o form
a de maxim standard daca se aplica tehnicile descrise n continuare.
O problem
a de minim poate fi transformata n o problema de maxim
Pnstandard nmultind
functia obiectiv cu -1. In mod asemanator, constrangerile de forma j=1 aij xj bi pot fi
Pn
reformulate n forma j=1 (aij ) xj bi . Mai sunt 2 cazuri problematice:
1. Unele constr
angeri sunt egalit
ati. O constrangere de egalitate
n
X

aij xj = bi

j=1

poate fi eliminat
a rezolvand ecuatia pentru un xj pentru care aij 6= 0 si apoi nlocuind
xj cu aceast
a solutie n toate celelalte constrangeri si n functia obiectiv.
2. Unele variabile nu sunt constr
anse s
a fie nenegative. O variabila nerestrictionata xj
poate fi nlocuit
a cu diferenta a doua variabile nenegative, xj = uj vj , unde uj 0 si
6

vj 0. Aceast
a nlocuire introduce n problema o variabila n plus si doua constrangeri
de nenegativitate.
Deci, orice teorie derivat
a pentru probleme n format standard este aplicabila pentru probleme generale. Totusi, din punct de vedere al calculului, largirea numarului de variabile si
a num
arului de constr
angeri n cazul 2 este de nedorit. Vom vedea mai tarziu cum se pot
evita aceste neajunsuri.

Exercitii
1. Se consider
a urm
atoarea problema de progrmare liniara: Sa se gaseasca y1 si y2 care
minimizeaz
a y1 + y2 n raport cu constrangerile urmatoare
y1 + 2 y2 3
2 y1 + y2 5
y2 0.
S
a se ilustreze grafic multimea de constrangeri si apoi sa se rezolve problema.
2. S
a se detemine x1 si x2 care maximizeaza a x1 + x2 n raport cu constrangerile liniare
ilustrate n Figura 1. Sa se determine valoarea problemei ca functie de a.
3. S
a se scrie matricea A a problemei de transport n forma standard.
4. S
a se aduc
a urm
atoarea problema de programare liniara n forma standard. S
a se
g
aseasc
a x1 , x2 , x3 , x4 care maximizeaza x1 + 2 x2 + 3 x3 + 4 x4 + 5 n raport cu constr
angerile
4 x1 +3 x2 + 2 x3 + x4 10
x1
x3 + 2 x4 = 2
x1 + x2 + x3 + x4 1,
si
x1 0, x3 0, x4 0.

Dualitate

Fiecare program linear are un program linear dual. Mai ntai definim notiunea de dualitate
pentru programe standard. Ca si n sectiunea precedenta, c si x sunt n-vectori, b si y sunt
m-vectori, iar A este o matrice m n de numere reale. Presupunem ca m 1 si n 1.
Definitia 1 Dualul problemei de maxim standard
(1) s
a se maximizeze cT x
n raport cu constr
angerile Ax b si x 0
este problema de minim standard
(2) s
a se minimizeze yT b
n raport cu constr
angerile yT A cT si y 0.
7

In continuare vom reanaliza exemplul numeric din sectiunea precedenta: Sa se determine


numerele x1 si x2 care maximizeaza suma x1 + x2 care satisface constrangerile x1 0,
x2 0, si
x1 + 2 x2 4
4 x1 + 2 x2 12
(15)
x1 + x2 1.
Dualul acestei probleme de maxim standard este problema de minim standard: S
a se
g
aseasc
a y1 , y2 si y3 care minimizeaza 4 y1 + 12 y2 + y3 n raport cu constrangerile y1 0,
y2 0, y3 0, si
y1 + 4 y2 y3 1
2 y1 + 2 y2 + y3 1.
Dac
a problema de minim standard (2) este transformata n o problema de maxim standard
(nmultind A, b si c cu -1), dualul ei este prin definitie o problema de minim standard care,
atunci c
and este transformata n o problema de maxim standard (din nou, prin schimbarea
de semn a coeficientilor) devine exact (1). Deci, dualul problemei de minim standard (2)
este problema de maxim standard (1). Problemele (1) si (2) se numesc duale una celeilalte.
Problema general
a de maxim standard si problema duala de minim standard pot fi
ilustrate simultan:
x1
x2

xn
y1 a11
a12 a1n b1
a22 a2n b2
y2 a21
(16)
..
..
..
..
..
.
.
.
.
.
ym

am1
c1

am2
c2

amn
cn

bm

Ilustrarea exemplului nostru numeric concret este


y1
y2

x1
1
4
1

x2
2
4
2
12
1

(17)

Relatia dintre o problem


a standard si dualul ei este indicata de teorema urmatoare si corolariile ei.
Teorema 1 Dac
a x este fezabil pentru problema de maxim standard (1) si dac
a y este
fezabil pentru dualul ei (2), atunci
cT x yT b.
(18)
Demonstratie. cT x yT A x yT b. Prima inegalitate rezulta din x 0 si cT yT A. A
doua inegalitate rezult
a din y 0 si A x b.

Corolarul 1 Dac
a o problem
a standard si dualul ei sunt fezabile, atunci ambele probleme
sunt fezabil m
arginite.

Demonstratie. Dac
a y este fezabil pentru problema de minim, atunci (18) indica faptul c
a
yT b este o margine superioara pentru valorile lui cT x cand x este fezabil pentru problema
de maxim. Implicatia inversa se demonstreaza similar.
Corolarul 2 Dac
a exist
a fezabilii x si y pentru o problem
a de maxim standard (1) si duT
alul (2) astfel nc
at c x = y T b, atunci ambii sunt optimi pentru problemele lor respective.
Demonstratie. Dac
a x este un vector fezabil oarecare pentru (1), atunci cT x y T b =
T
c x .

Teorema urm
atoare este fundamentala prin felul n care completeaza descrierea relatiei
dintre o problem
a standard si dualul ei. Teorema indica faptul ca ipotezele Corolarului 2
sunt satisf
acute dac
a una din probleme este fezabil marginita. Demonstratia acestei teoreme
nu este la fel de usoar
a ca si teorema precedenta si corolariile ei. Amanam demonstrarea ei p
an
a c
and vom putea da o demonstrare constructiva cu ajutorul metodei simplex.
(Metoda simplex este o metoda algoritmica de rezolvare e problemelor de progrmare liniar
a).
Deasemenea, se va putea vedea ca aceasta teorema contine Teorema Minimax pentru jocuri
finite din Teoria Jocurilor.
Teorema 2 (Teorema de dualitate) Dac
a o problem
a de programare liniar
a standard
este fezabil m
arginit
a, atunci si dualul ei este o problem
a fezabil m
arginit
a si exist
a vectori
optimi pentru ambele probleme.
Identific
am 3 posibilit
ati pentru un program liniar. Programul poate fi fezabil marginit
(f.m.), fezabil nem
arginit (f.n.), sau nefezabil (n.) Deci pentru un program si dualul s
au
avem 9 combinatii de posibilitati. Corolarul 1 indica faptul ca 3 din cele 9 combinatii nu
pot s
a apar
a: Dac
a o problema si dualul sau sunt ambele fezabile, atunci ambele trebuie s
a
fie fezabil m
arginite. Prima concluzie a Teoremei de Dualitate indica imposibilitatea altor 2
alternative: Dac
a un program este fezabil marginit atunci dualul sau nu poate fi nefezabil.
Intr
arile marcate cu in diagrama de mai jos indica imposibilitati. Cele 4 alternative
r
amase pot s
a apar
a.
f.m.
f.m.
f.n.
n.

f.n

n.

Figure 2: Problema de maxim standard


In continuare prezent
am un exemplu de aplicare a Corolarului 1. Consideram urmatoarea
problem
a de maxim:
S
a se g
aseasc
a x1 , x2 , x3 , x4 care sa maximizeze 2 x1 + 4 x2 + x3 + x4 n raport cu
constr
angerile xj 0 pentru toti j, si
x1
2 x1

+3 x2
+ x2
x2

+ x4
+4 x3
9

+ x4

4
3
3.

(19)

Problema dual
a este: Sa se gaseasca y1 , y2 , y3 care minimizeaza 4 y1 + 3 y2 + 3 y3 n
raport cu constr
angerile yi 0, si
y1
3 y1

+2 y2
+ y2

y1

+ y3
4 y3
+ y3

2
4
1
1.

(20)

Vectorul (x1 , x2 , x3 , x4 ) = (1, 1, 1/2, 0) satisface constrangerile problemei de maxim iar valoarea functiei obiectiv este 13/2. Vectorul (y1 , y2 , y3 ) = (11/10, 9/20, 1/4) satisface constr
angerile problemei de minim si are deasemenea valoarea 13/2. Deci ambii vectori sunti
optimi pentru problemele lor respective.
O consecint
a important
a a Teoremei de Dualitate este
Teorema 3 (Theorema de echilibru) Fie x si y vectori fezabili patru problema de
maxim standard (1) si pentru dualul ei (2). Atunci x si y sunt optimi dac
a si numai
dac
a
n
X

yi = 0 pentru toti i pentru care


aij xj < bi
(21)
j=1

si
xj = 0

pentru toti j pentru care

m
X

yi aij > ci

(22)

i=1

Demonstratie. ,,Dac
a: Ecuatia (11) implica yi = 0 cu exceptia cazului n care
bi . In acest caz avem
m
X

yi bi =

m
X

yi

i=1

i=1

n
X

aij xj =

m X
n
X

Pn

yi aij xj .

j=1

aij xj =

(23)

i=1 j=1

j=1

Analog, ecuatia (22) implic


a
n
m X
X

yi aij xj =

i=1 j=1

n
X

cj xj .

(24)

j=1

In cazul acesta, din Corolarul 2 rezulta ca x si y sunt optimi.


,,Numai dac
a: La fel ca si la nceputul demonstratiei Teoremei 1, avem ca
n
X

cj xj

j=1

m X
n
X

yi aij xj

i=1 j=1

m
X

yi bi .

(25)

i=1

Din Teorema de Dualitate rezulta ca daca x si y sunt optimi, atunci partea stanga este
egal
a cu cea dreapt
a, deci avem egalitati peste tot n (25). Egalitatea dintre primul si ultimul
termen poate fi rescris
a astfel
!
n
m
X
X

cj
yi aij xj = 0.
(26)
j=1

i=1

10

Deoarece x si y sunt fezabili, fiecare termen din P


suma este nenegativ. Suma poate fi
m
zero doar dac
a toti termenii sunt zero. Deci, daca i=1 yi aij > cj , atunci xj = 0. Un
Pn
rationament analog indic
a si ca daca j=1 aij cj < bi , atunci yi = 0.

Ecuatiile (21) si (22) pretind ca unei inegalitati stricte (care este constrangere a unei
probleme standard) s
a i corespunda o constrangere de tip egalitate n problema duala,

Exemplu rezolvabil cu Teorema de Echilibru


S
a se rezolve problema duala a problemei introductive (15). Mai precis, sa se gaseasc
a
y1 , y2 , y3 care minimizeaz
a 4 y1 + 12 y2 + y3 n raport cu constrangerile y1 0, y2 0,
y3 0, si
y1 + 4 y2 y3 1
(27)
2 y1 + 2 y2 + y3 1.
Problema dual
a a fost deja rezolvata si stim deja ca optimul ei este (x1 , x2 ) = (8/3, 2/3).

Deci x1 > 0 si x2 > 0. Din (22) stim ca optimul y produce egalitate n ambele inegalit
ati
din (27) (2 ecuatii cu 3 necunoscute). Daca testam constrangerile principale ale problemei
de maxim pentru optimul x , observam ca
x1 + 2 x2 = 4

(egalitate)

4 x1 + 2 x2 = 12

(egalitate)

x1 + x2 < 1

(inegalitate stricta)

Din conditia (21) rezult


a c
a y3 = 0. Rezolvand cele 2 ecuatii ramase:
y1 + 4 y2 = 1
2 y1 + 2 y2 = 1
deducem c
a (y1 , y2 ) = (1/3, 1/6). Deoarece vectorul y = (y1 , y2 , y3 ) este fezabil, Teorema
de Echilibru implic
a faptul ca el este si optim. Ca test, putem calcula valoarea problemei
si vedem ca ea coincide cu valoarea problemei de maxim. 
pentru y: 4 13 + 12 16 = 10
3 ,
In concluzie, dac
a b
anuim optimul unei probleme, putem ncerca sa gasim optimul problemei duale astfel: Se determina o solutie a problemei duale folosind ecuatiile (21) si (22)
din Teorema de Echilibru, si apoi verificam daca solutia gasita este un optim.

Interpretarea dualului
Pe l
ang
a ajutorul dat n aflarea unui optim, problema duala ofera avantaje n interpretarea
problemei originale. In cazuri concrete, problema duala puate fi analizata prin intermediul
problemei originale.
Ca exemplu concret considera, problema dietei care este o problema de minim standard de forma (2). Dualul ei este problema de maxim standard (1). Pentru nceput, vom
interpreta variabilele duale x1 , . . . , xn . In constrangeri duale avem:
n
X

aij xj bi ,

j=1

11

(28)

unde variabila bi reprezint


a pretul pe unitate de mancare Mi , iar aij reprezinta unitatile de
nutrient Nj pe unitate de m
ancare Mi . Pentru a putea compara cele 2 parti ale constrangerii
(28), xj trebuie s
a fie m
asurat n multipli de pret pe unitate de mancare Mi . (Acest tip
de analiz
a se numeste analiz
a dimensional
a.) Deoarece cj este cantitatea de nutrient Nj
Pn
necesar
a zilnic, functia obiectiv j=1 aij xj reprezinta pretul total al nutrientilor necesari
zilnic. Se urm
areste fixarea unui vector x de preturi pentru nutrienti care sa maximizeze
aportul total de nutrienti pe zi n raport cu constr
Pn angerile x 0 si astfel ncat valoarea
total
a a nutrientilor din m
ancarea Mi , care este j=1 aij xj , sa nu fie mai mare decat costul
total bi al m
anc
arii respective.
Ne putem imagina un antreprenor care ofera spre vanzare nutrienti fara mancare, de
exemplu vitamine sau tablete minerale. Oferta lui este de a vinde nutrientul Nj la un pret
xj pe unitate de nutrient Nj . Daca doreste sa initieze o afacere, trebuie sa aleaga xj astfel
ca pretul pe care-l cere pentru un amestec de nutrienti care nlocuieste mancarea Mi s
a
nu fie mai mare dec
at costul mancarii Mi . Aceasta este constrangerea (28). Daca aceste
constr
angeri au loc pentru toti i, putem
Pn face afaceri cu el. Asadar, antreprenorul alege x
pentru a maximiza venitul lui total j=1 cj xj respectand aceste constrangeri. (De fapt,
nu vomP
economisi bani negociind cu el deoarece Teorema
Pnde Dualitate afirma ca minimul
m
nostru i=1 yi bi coincide cu maximul antreprenorului j=1 cj xj .) Desi nu exista astfel
de antreprenori, aceste preturi reflecta valorile nutrientilor impuse de preturile pietei de
alimente si de nevoile noastre de nutrienti.

Exercitii
1. S
a se g
aseasc
a dualul urmatoarei probleme de minim standard. Sa se determine
y1 , y2 , y3 care s
a minimizeze y1 + 2 y2 + y3 n raport cu constrangerile yi 0 pentru toti i, si
y1 2 y2 + y3 2
y1 + y2 + y3 4
2 y1
+ y3 6
y1 + y2 + y3 2.
2. Consider
am problema din Exercitiul 1. Sa se arate ca (y1 , y2 , y3 ) = (2/3, 0, 14/3)
este optim pentru aceasta problema, si ca (x1 , x2 , x3 , x4 ) = (0, 1/3, 2/3, 0) este optim
pentru problema dual
a.
3. Se consider
a problema urmatoare: Sa se maximizeze 3 x1 + 2 x2 + x3 n raport cu
x1 0, x2 0, x3 0, si
x1
2 x1
x1
x1

x2
+x2
+x2

+ x3
+3 x3
+2 x3
+ x3

4
6
3
8.

(a) S
a se specifice problema duala.
(b) S
a presupunem ca banuim ca vectorul (x1 , x2 , x3 ) = (0, 6, 0) este optim pentru
problema de maxim. Sa se foloseasca Teorema de Echilibru pentru a rezolva
problema dual
a, si apoi sa se demonstreze ca banuiala este corecta.
12

4. (a) S
a se specifice dualul problemei de transport.
(b) Dati o interpretare pentru dualul problemei de transport.

Operatia de pivotare

Fie sistemul de ecuatii


3 y1
y1
5 y1

+2 y2
3 y2
+ y2

+3 y3
+ y3 = s3

= s1
= s2

(29)

care exprim
q variabilele dependente s1 , s2 , s3 n functie de variabilele independente y1 , y2 , y3 .
S
a presupunem c
a vrem s
a obtinem y2 , s2 , si s3 n functie de y1 , s! si y3 . Daca rezolv
am
prima ecuatie pentru y2 si nlocuim valoarea obtinuta pentru y2 n celelalte ecuatii, obtinem
y2
y1 3( 12 s1 32 y1 ) + 3 y3
5 y1 + ( 12 s1 32 y1 ) + y3

= 21 s1 23 y1
= s2
= s3 .

care, dup
a simplificare, devine
23 y1
11
2 y1
7
2 y1

+ 12 s1
32 s1
+ 21 s1

= y2
+3 y3
+y3

= s2
= s3 .

Acest exemplu este un caz special al urmatoarei probleme generale. Presupunem dat un
sistem de n functii liniare cu m necunoscute, scris n forma matriceala
yT A = sT

(30)

a11
a21

unde yT = (y1 , . . . , ym ), sT = (s1 , . . . , sn ), si A = .


..
am1
(30) reprezint
a sistemul

a12
a22
..
.

..
.

a1n
a2n

.. . Deci ecuatia
.

am2

amn

y1 a11 + a21 x2 + + ym am1 = s1


y1 a12 + a22 x2 + + ym am2 = s2
..
.
y1 a1n + y2 a2n + + ym amn = sn
n care s1 , . . . , sn sunt variabile dependente, iar y1 , . . . , ym sunt variabile independente.
Dac
a vrem s
a interschimbam o variabila dependenta sj cu o variabila independenta yi ,
putem realiza acest lucru doar daca aij 6= 0. Daca aij 6= 0, putem rezolva a j-a ecuatie a
sistemului de ecuatii pentru yi :
yi =

1
(y1 aij . . . yi1 a(i1)j + sj yi+1 a(i+1)j . . . ym amj )
aij
13

(31)

iar apoi putem inlocui n celelate ecuatii yi cu expresia obtinuta pentru yi . De examplu, a
k-a ecuatie a sistemului devine






aik a1j
aik
aik amj
y1 a1k
+ . . . + sj
+ . . . + ym amk
= sk .
(32)
aij
aij
aij
In final rezult
a un sistem de ecuatii de forma
y1 a
11
..
.

+...+

sj a
i1
..
.

+...+

ym a
m1
..
.

= s1
..
.

y1 a
1j
..
.

+...+

sj a
ij
..
.

+...+

ym a
mj
..
.

= yi
..
.

y1 a
1n

+ . . . + sj a
in

+ + ym a
mn

= sn

(33)

n care relatia dintre a


hk si ahk se poate afla din (31) si (32):
1
aij
ahj
=
aij
aik
=
aij

a
ij =
a
hj
a
ik

a
hk = ahk

pentru h 6= i
pentru k 6= j
aik ahj
aij

pentru k 6= j si h 6= i.

Aceast
a procedur
a de calcul se poate mecaniza usor daca ilustram matricea m n-dimensional
a A ca un tabel cu y1 , . . . , ym de sus n jos n stanga tabelului, si cu s1 , . . . , sn de
la st
anga la dreapta deasupra tabelului. Tabelul din stanga Figurii 3 reprezinta sistemul
original de ecuatii, 30. Pentru a indica ca interschimbam yi si sj , incadram n un dreptunghi
cu elementele
elementul aij , pe care-l numim pivot. Tabelul din dreapta indica matricea A
a
hk calculate n modul indicat mai devreme.
y1
..
.

s1
a11
..
.

sj
a1j
..
.

sn
a1n
..
.

yi
..
.
ym

ai1
..
.
am1

aij
..
.
amj

ain
..
.
amn

y1
..
.

s1
a11
..
.

yu
a1j
..
.

sn
a1n
..
.

sj
..
.

ai1
..
.

aij
..
.

ain
..
.

ym

am1

amj

amn

Figure 3: Operatia de pivotare.


poate fi exprimat
Regula de pivotare pentru calculul elementelor noii matrici A
a n
format simbolic, astfel:
p
c

r
q

1/p
c/p
14

r/p
q (r c/p)

Metoda de pivotare se poate folosi pentru a calcula inversa unei matrici A. Ideea este
de a interschimba toate variabilele independente cu variabile dependente aplicand succesiv
operatia de pivotare.

Exemplu

3 1 5
Pentru a inversa matricea A = 2 3 1 consideram sistemul de ecuatii yT A = sT
0 3 1
cu variabilele independente date de elementele vectorului yT = (y1 , y2 , y3 ) si variabilele
dependente date de elementele vectorului sT = (s1 , s2 , s3 ). Vom aplica repetat operatia de
pivotare pentru a obtine sistemul de ecuatii cu forma matriciala sT B = yT .
y1
y2
y3

s1
3
2
0

s2
s1
s3

y2
.3
1.4
.9

s2
1
3
3

.6 1.4
Deci B = .2 .3
.6 .9

s3
5
y1

s1
1
1
y3

y1
.2
.6
.6

y2
32

s2

s3

1
2

11
2
23

7
2
1
2

y1
.6
.2
.6

y2
1.4
.3
.9

y3
.7
s
= 1
1.6
s2
1.1
s3

y1
s1
s3

y2
32
1
2

s2
-5
3
3

y3
72

21
1

y3
1.6
.7
1.1

1.6
.7 . Se poate demonstra usor ca B = A1 .
1.1

Exercitii
1. S
a se rezolve sistemul de ecuatii yT A = sT care are forma tabelara urmatoare
y1
y2
y3
y4

s1
1
0
1
1

s2
1
2
1
2

s3
0
1
0
2

s4
2
1
3
1

pentru y1 , y2 , y3 , y4 pivotand n ordinea indicata mai jos:


(a) pivotul 1 la pozitia (1,1).
(b) pivotul de la pozitia (2,3); acest pivot va fi -1.
(c) pivotul de la pozitia (4,2); acest pivot va fi 1.
(d) pivotul de la pozitia 3,4. Acest pivot va fi 3.
Apoi s
a se rearanjeze liniile si coloanele pentru a gasi matricea A1 , si sa se verifice
c
a produsul matricii rezultate cu A este matricea identitate.

15

Metoda simplex

Tablou simplex
Notiunea de tablou simplex este utila pentru a rezolva problema de minim standard:
S
a se g
aseasc
a vectorul y care sa minimizeze functia obiectiv yT b n raport cu constr
angerile liniare y 0 si yT A cT .
O operatie util
a d.p.d.v. conceptual este sa transformam inegalitatile problemei n egalit
ati,
prin introducerea de variabile de abatere (engl. slack variables). Aceste variabile sunt componentele n-vectorului s = (s1 , . . . , sn ) astfel ncat sT = yT A cT . Problema poate fi
reformulat
a astfel:
S
a se g
aseasc
a y si s care sa minimizeze yT b n raport cu constrangerile y 0, s 0
T
T
si s = y A cT .
Un tablou simplex este gandit sa reprezinte sistemul de ecuatii liniare sT = yT A cT .
Ultima coloan
a reprezint
a vectorul b pentru care vrem sa minimizam produsul scalar yT b.

y1
y2
..
.

s1
a11
a21
..
.

s2
a12
a22
..
.

sn
a1n
a2n
..
.

b1
b2
..
.

ym
1

am1
c1

am2
c2

amn
cn

bm
0

Figure 4: Tablou simplex


Dac
a c 0 si b 0, atunci y = 0 si s = c este solutie evidenta a problemei deoarece:
minimul este atins pentru y = 0 si s = c, iar valoarea minima esteP
yT b = 0. Aceast
a
m
T
T
solutie fezabil
a deoarece y 0, s 0 si s = y A c, si totodata i=1 yi bi nu poate
fi mai mic dec
at 0 deoarece y 0 si b 0.
In continuare consider
am cazul ramas, n care fie c nu este negativ (adica ultimul r
and
are un element negativ printre primele n elemente), fie b nu este negativ (adica ultima
coloan
a are un element negativ printre primele m elemente).
S
a presupunem c
a a11 6= 0 si ca aplicam operatia de pivotare n raport cu acest element al matricii A, incluz
and n procesul de pivotare si ultima linie si coloana a tabloului
simplex. Va rezulta un tablou nou care are pe prima linie elementele vectorului r =
(r1 , . . . , rn ) = (y1 , s2 , . . . , sn ), iar pe prima coloana elementele vectorului t = (t1 , . . . , tm ) =
(s1 , y2 , . . . , ym ).

16

s1
y2
..
.

y1
a
11
a
21
..
.

s2
a
12
a
22
..
.

sn
a
1n
a
2n
..
.

ym
1

a
m1

c1

a
m2

c2

a
mn

cn

b1
b2
..
.
bm
v

Sistemul de ecuatii sT = yT A cT este echivalent cu sistemul de ecuatii rT = tT A


T
reprezentat de tabloul rezultat prin pivotare. Mai mult, functia obiectiv y b poate fi rescris
a
(nlocuind y1 cu valoarea sa n functie de s1 )
m
X
i=1

y i bi =

a21 b1
am1 b1
c1 b1
b1
+ v
s1 + (b2
)y2 + . . . + (bm
)ym +
= tT b
a11
a11
a11
a11

care apare n ultima coloan


a a noului tablou.
Problema initia
a a fost transformata n problema urmatoare echivalenta:
n raport cu constrangerile y 0,
S
a se g
aseasc
a vectorii y si s care sa minimizeze tT b
c
, unde t = (s1 , y2 , . . . , ym ) si rT = (y1 , s2 , . . . , sn ).
s 0 si r = tT A
0 avem solutia optima t = 0 si r =
Din nou, dac
a
c 0 si b
c cu valoarea v.
Acest proces de pivotare poate fi iterat pana cand obtinem un tablou simplex care are
doar elemente pozitive n ultima linie si ultima coloana, cu exceptia elementului din dreapta
jos. Valoarea elementului din dreapta jos va reprezenta valoarea minima a functiei obiectiv.
Ceea ce am obtinut este metoda pivotului arbitrar (engl. pivot madly method).
Metoda pivotului arbitrar: Pivoteaza la ntamplare pana cand se ajunge n situatia n
care toate intr
arile din ultima linie si coloana, cu exceptia elementului din dreapta jos, sunt
nenegative. In acest caz, vectorul optim se obtine setand 0 pentru variabilele din stanga,
si valorile din ultimul r
and ca valori pentru variabilele din primul rand. Valoarea optim
a
apare n coltul din dreapta jos.
Aceast
a metod
a paote fi ajustata sa rezolve si problema duala
S
a se maximizeze cT x n raport cu constrangerile x 0 si Ax b.
In acest caz introducem variabilele aleatoare u = b A x. Problema devine
S
a se g
aseasc
a x si u care sa maximizeze cT x n raport cu constrangerile x 0, u 0,
si u = b A x. Putem folosi acelasi tablou simplex pentru a rezolva aceasta problem
a
dac
a scriem constr
angerea u = b A x n forma u = A x b.
u1
u2
..
.

x1
a11
a21
..
.

x2
a12
a22
..
.

xn
a1n
a2n
..
.

1
b1
b2
..
.

um
0

am1
c1

am2
c2

amn
cn

bm
0

17

La fel ca si n cazul problemei duale, se observa ca daca c 0 si b 0 atunci solutia


este evident
a: x = 0, u = b, iar valoarea este zero (deoarece problema este echivalent
a cu
minimizarea functiei obiectiv cT x).
Dac
a se aplic
a operatia de pivotare asupra tabelului simplex din Figura 5 pana c
and
ultimul r
and si ultima coloana (cu exceptia colturilor) contine elemente nenegative, se obtine
simultan solutia problemei duale si a problemei initiale.

u1
u2
..
.

x1
a11
a21
..
.

x2
a12
a22
..
.

xn
a1n
a2n
..
.

1
b1
b2
..
.

um
1

am1
c1

am2
c2

amn
cn

bm
0

Figure 5: Tabloul simples pentru problema originala si problema duala

Exemplu
Se consider
a problema urmatoare: Sa se maximizeze 5 x1 + 2 x2 + x3 n raport cu constr
angerile xi 0 pentru toti i {1, 2, 3} si
x1
3 x1

+3 x2
x2
+ x2

x3
+x3

6
4
7.

Problema dual
a este: S
a se minimizeze 6 y1 + 4 y2 + 7 y3 n raport cu constrangerile yi 0
pentru toti i {1, 2, 3} si
y1
+3 y3 5
3 y1 +y2
+y3 2
y1 +y2
1.
Tabloul simplex este
y1
y2
y3
1

x1
1
0
3
5

x2
3
1
1
2

x3
1
1
0
1

1
6
4
7
0

Dac
a se aplic
a pivot
ari care permuta y2 cu x3 , si y3 cu x1 , obtinem tabloul simplex
y3
y1
x3
x1
1

5/3

x2

2/3

18

y2

23/3
4
7/3
47/3

Acest tablou simplex indic


a solutiile ambelor probleme. Valoarea ambelor probleme este
47/3. Vectorul optim pentru problema de maxim este x = ( 37 , 0, 4), iar vectorul optim
pentru problema de minim este y = (0, 1, 53 ).

Metoda simplex
Metoda simplex este metoda pivotului arbitrar modificata cu un criteriu de alegere a pivotului pentru fiecare iteratie.
Se observ
a c
a dac
a la un moment dat obtinem un tablou simplex
t

c
A
c

b
v

cu b 0 atunci obinem imediat un punct fezabil pentru problema de maxim (de fapt, un
punct extrem pentru multimea de constrangeri), si anume punctul care satisface r = 0 si
t = b. Valoarea functiei obiectiv n acest punct este v.
Analog, dac
a c 0, atunci obtinem un punct fezabil pentru problema de minim. Acest
punct fezabil satisface r = c si t = 0.
Reguli de pivotare pentru problema de maxim.
Cazul 1: b 0.
Dac
a c 0, punctul fezabil este si optim, si metoda se termina.
Altfel, se alege la ntamplare o coloana cu ultimul element negativ, de ex. coloana
j0 cu cj0 < 0.
a) Dac
a exist
a i cu ai,j0 > 0, alege i0 pentru care bi /ai,j0 este minim, si pivoteaz
a
n raport cu ai0 ,j0 .
b) Dac
a nu exist
a un astfel de i, problema de maxim este fezabil nemarginit
a.
Cazul 2: b are un element negativ bi . Alege k astfel ncat bj 0 pentru j < k si bk < 0.
Dac
a exist
a ak,j < 0 alege j0 astfel ncat ak,j0 < 0 (pivotul va fi n coloana j0 ).
Compar
a bk /ak,j0 si bi /ai,j0 pentru care bi 0 si ai,j0 > 0 si alege i0 pentru care
bi0 /ai0 ,j0 este minim. Pivotul va fi ai0 ,j0 .
Dac
a ak,j 0 pentru toti j, atunci problema de maxim este nefezabila.

Metoda simplex dual


Metoda simplex a fost formulata d.p.d.v. al problemei de maxim. Evident ca problema
poate fi reformulat
a si ca o problema de minim. In particular, daca un vector fezabil a
fost deja g
asit pentru problema de minim (adica ultimul rand al tabloului simplex are toate
elementele nenegative), este mai eficient sa mbunatatim acest vector cu alt vector fezabil
dec
at s
a aplic
am regula pentru Cazul 2 al problemei de maximizare.
Regulile de pivotare pentru problema de minim sunt urmatoarele.
Cazul 1: c 0. Alege orice rand i0 cu ultimul element bi0 negativ. Apoi alege dintre j cu
ai0 ,j < 0 pe j0 pentru care cj0 /ai0 ,j0 este cel mai aproape de 0. Pivotul va fi ai0 ,j0 .
19

Cazul 2: Exist
a cj < 0. Alege k astfel ncat cj 0 pentru j < k si ck < 0. Alege orice i0
astfel nc
at ai0 ,k > 0. Compara ck /ai0 ,k si cj 0 si alege j0 pentru care cj0 /ai0 ,j0
este cel mai aproape de 0. Pivotul va fi ai0 ,j0 .

Exercitii
1. S
a se maximizeze x1 2 x2 3 x3 x4 n raport cu constrangerile xj 0 pentru toti
j {1, 2, 3, 4} si
x1 x2 2 x3 x4 4
2 x1 + x3 4 x4 2
2 x1 + x2 + x4 1.
2. S
a se minimizeze 2 y2 + y3 n raport cu constrangerile yi 0 pentru toti i {1, 2, 3}
si
y1 2 y2 3
4 y1 + y2 + 7 y3 1
2 y1 3 y2 + y + 3 5.
3. S
a se maximizeze 3 x1 + 4 x2 + 5 x3 n raport cu constrangerile xj 0 pentru toti j si
x1 + 2 x2 + 2 x3 1
3 x1 + x3 1
2 x1 x2 1.

20

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