Documente Academic
Documente Profesional
Documente Cultură
Tematic CURS
I.
II.
III.
IV.
V.
PROGRAMARE LINIAR
1.1.
1.2.
1.3.
1.4.
1.5.
2.2.
2.3.
Noiuni generale
3.2.
Modele deterministe
3.3.
Modele probabiliste
Concepte de baz
4.2.
4.3.
4.4.
4.5.
Tematic - SEMINAR
1. Probleme economice care conduc la modele de optimizare liniar
-
probleme de nutriie
metoda grafic
algoritmul simplex
modele deterministe
modele probabiliste
algoritmul Bellman-Kalaba
I.
PROGRAMARE LINIAR
1.1.
FORMA GENERAL
Se spune c o problem de programare liniar (P.P.L.) este prezentat sub forma general
dac este scris astfel:
[] = 1 1 + 2 2 + +
1 1 + 2 2 + + ,
1
1 1 + 2 2 + + = , + 1
1 1 + 2 2 + + , + 1
0 ,
0 ,
,
1
+1
+1
Deci o P.P.L. este dat sub forma general dac, indiferent de scopul optimizrii (min sau
max), aceasta are restricii de toate felurile i variabile de toate semnele.
Observaie. Cnd se spune c
FORMA STANDARD
O problem de programare liniar este prezentat sub forma standard dac este scris astfel:
[] =
=1
= ,
=1
0 ,
sau matricial:
[] =
=
0
unde:
= ( )1 (),
1
= (1 , 2 , , ) ,
1
2
= ( )
= ( ) ,
Deci o P.P.L. este dat sub forma standard dac aceasta are toate restriciile egaliti i toate
variabilele nenegative.
FORME CANONICE
[] = =1
=1
0 ,
sau matricial:
[] =
0
[] = =1
=1
0 ,
sau matricial:
[] =
0
1.2.
0
0 ,
1,
Observaie. Orice numr real se poate scrie ca diferena a dou numere reale pozitive.
Etapa a-II-a Transformarea inegalitilor n egaliti - se face prin introducerea unor
variabile de compensare (egalizare, ecart) nenegative, prin adunarea la membrul cel mic al
fiecrei inegaliti:
dac =1 , atunci =1 + = , 0
dac =1 , atunci
echivalent
=1 = + , 0 sau
=1 = , 0
1.3.
() ()
(*)
unde:
= ( )1 (),
1
= ( ) ,
= (1 , 2 , , ) ,
1
2
= ( ) .
Pentru o P.P.L. se poate ca mulimea soluiilor posibile s se afle ntr-una din situaiile:
1. = (este mulimea vid), caz n care se spune c restriciile problemei sunt
contradictorii;
2. = {} se reduce la un singur punct, caz n care nu exist posibilitatea alegerii
celei mai bune soluii pentru c soluia posibil fiind unic ea este i cea mai bun i
cea mai rea;
3. are cel puin 2 elemente, caz n care exist posibilitatea alegerii celei mai bune
soluii, printr-un procedeu sau algoritm specific.
Din punct de vedere practic, primele dou cazuri sunt lipsite de interes.
Teorema 1. Mulimea soluiilor posibile este convex, adic odat cu oricare dou
puncte ale sale, segmentul care le unete aparine, de asemenea, mulimii:
() 1 , 2 , segmentul [1 , 2 ] = {1 + (1 ) 2 [0,1]} .
Teorema 2. Dac o P.P.L. (n variabile continue) admite mai mult de o soluie posibil,
atunci ea admite o infinitate de soluii posibile.
Soluii de baz
Fie = {1 , 2 , , } () matricea restriciilor problemei, unde coloana
conine coeficienii necunoscutei a sistemului de restricii, 1 .
Sistemul de restricii, scris desfurat, poate fi pus sub forma:
1 1 + 2 2 + + =
unde:
(**)
1
2
= ( ) , 1 .
Teorema 4. Orice soluie de baz a P.P.L. (*) este vrf al mulimii soluiilor posibile ale
problemei i reciproc.
Deci
Observaie.
Un punct se numete punct extrem sau vrf al mulimii convexe dac nu
exist nici o pereche de puncte 1 , 2 i (0,1) astfel nct = 1 + (1 ) 2 .
Geometric, este vrf al lui C orice punct care nu se poate afla pe nici un segment de dreapt
n interiorul segmentului.
Soluii optime
Definiia 4. O soluie posibil 0 a problemei P.P.L. (*) se numete soluie optim
dac satisface i cerina de optim:
( 0 ) = [opt] ()
Teorema 6. Soluia optim a P.P.L. (*) se afl printre vrfurile mulimii soluiilor posibile
ale problemei.
Dac P.P.L. are optim finit, atunci acesta se afl ntr-un vrf al lui (tronson sau
poliedru convex).
Dac P.P.L. are optim infinit, putem admite c acesta este atins n punctul de la infinit
(care aparine lui numai cnd este nemrginit).
Prin urmare, att metoda grafic, ct i metoda algebric, presupun parcurgerea a dou etape:
Etapa I - etapa de enumerare a soluiilor de baz
Etapa a-II-a - etapa de evaluare a soluiilor de baz.
De fapt, aceasta este metoda de enumerare i evaluare a soluiilor, ntlnit i n alte clase
de probleme de optimizare.
METODA SIMPLEX
Scopul metodei simplex este de a alege soluia optim pornind de la un vrf oarecare al lui
, adic de la o soluie de baz, i trecnd apoi la un alt vrf care s fie o soluie mai bun
dect precedenta (n sensul optimului).
Algoritmul simplex va lua sfrit n dou situaii i anume:
s-a ajuns la cea mai bun soluie, constatndu-se dac problema are optim unic sau
multiplu;
nu se poate ajunge la cea mai bun soluie (pentru c nu exist) i se ia decizia c
problema nu are optim finit (problema are optim infinit).
ntrebrile la care trebuie s rspund orice metod de rezolvare a unei probleme de
optimizare, n particular i metoda simplex, sunt urmtoarele:
Cum pornim?
Cum trecem de la o soluie la alta?
Cum ne oprim?
Presupunem c problema de programare liniar (P.P.L.) este prezentat (adus)
la forma standard:
[] =
=
0
unde: (), , , .
Observaie. Deoarece [] = [](), este neesenial alegerea unei probleme
care cere maximizarea funciei obiectiv.
Presupunem < ; rezult c are cel puin 2 elemente. Cum este mulime convex,
rezut c are o infinitate de elemente, situaie n care P.P.L. prezint interes din punct de
vedere practic.
Notm matricea sistemului de restricii
coeficienilor necunoscutei , ,
1, .
= 1 ,
1, .
Observaie. n practic se urmrete ca baza iniial s fie format din vectorii unitari, adic
s fie baza canonic = {1 , 2 , , } .
Fie soluia de baz a P.P.L. corespunztoare bazei B:
={
> 0, 1 ( )
= 0,
+ 1 ( )
Deci = ( ) , unde: = 1 .
( ) = = (
) = + = .
) (
Notm:
, 1
= = 1 = { 1
, + 1
i cu
0, 1
= = { , + 1 .
Prin urmare, diferenele corespunztoare coloanelor vectorilor bazei curente sunt nule.
= 1
+1
CRITERIUL DE OPTIM
Dac toate diferenele 0, 1 , atunci problema de programare liniar admite
optim finit i e soluie optim.
Pentru ca acest criteriu de optim s poat fi folosit indiferent de scopul optimizrii (max sau
min), diferenele se calculeaz:
= {
, 1 , pentru
, 1 , pentru
MBUNTIREA SOLUIEI
CRITERIUL DE INTRODUCERE N BAZ
Dac exist un indice nebazic 0 , + 1 0 pentru care 0 > 0 , atunci se poate gsi
o nou soluie de baz cel puin la fel de bun ca i vechea soluie de baz (n sensul
optimului).
Dac exist mai multe diferene > 0, atunci se poate alege oricare vector corespunztor,
fr a influena soluia final.
De regul, se alege pentru care:
0 = max { > 0}
1
0
0 0
= min {
1
> 0}
0 0
10
20
unde: ( ) = 0 sunt coordonatele (n baza B) vectorului 0 determinat la criteriul de
0
intrare n baz.
Deci vectorul prsete baza, iar n locul lui va intra vectorul . Cu alte cuvinte, nu
stricm baza n totalitate.
Observaie. Efectund rapoartele de la criteriul eliminrii din baz, se poate ntmpla ca:
1. S existe dou sau mai multe rapoarte minime egale, caz n care poate prsi baza
B oricare dintre vectorii care conduc la acest rezultat fr s fie afectat soluia
optim.
2. S nu existe nici un > 0 (adic 0 0, 1 ), caz n care algoritmul ia
sfrit cu decizia de optim infinit
(P)
(1)
(D)
(2)
Problema (1) se numete primala, iar problema (2) se numete duala i reciproc. Perechea de
probleme (1) (2) se numete cuplu dual sau cuplu de probleme duale.
Teorem.
Duala dualei unei probleme de programare liniar este chiar problema de optimizare dat.
Altfel spus, duala dualei coincide cu primala.
Definiia 2. Se spune c o problem de programare liniar are restriciile concordante cu
funcia obiectiv, dac aceasta are forma de prezentare:
[] =
sau
[] =
Observaie.
Cel mai frecvent definiia dualitii sau a cuplului de probleme duale este dat prin
intermediul cuplului (P) (D) din definiia 1. n acest caz se introduce aa numitul concept de
dualitate simetric. Pornind de la dualitatea simetric se poate deduce apoi orice cuplu de
probleme duale, cupluri de dualitate nesimetric.
ntre problemele unui cuplu primal-dual exist anumite legturi precise a cror cunoatere
nseamn posibilitatea scrierii dualei oricrei probleme de programare liniar:
dac problema primal cere maximizarea funciei obiectiv, atunci n problema dual
se va cere minimizarea funciei obiectiv i reciproc;
numrul de restricii ale primalei indic numrul de variabile ale problemei duale i
reciproc;
numrul de variabile ale primalei indic numrul de restricii ale dualei i reciproc;
termenii liberi din primal devin coeficieni ai funciei obiectiv din dual i reciproc;
coeficienii funciei obiectiv din primal devin termeni liberi n dual i reciproc;
dac primala are matricea A a coeficienilor necunoscutelor sistemului de restricii,
atunci duala va avea ca matrice ;
dac primala are restricii:
inegaliti concordante,
inegaliti neconcordante,
egaliti,
acestora le corespund n dual, respectiv:
variabile 0,
variabile 0,
variabile de semne oarecare ( ).
dac primala are:
variabile 0,
variabile 0,
variabile de semne oarecare ( ),
acestora le corespund n dual, respectiv:
inegaliti concordante,
inegaliti neconcordante,
egaliti.
(P)
(D)
[] =
0
Condiia necesar i suficient ca 0 i 0 s fie soluii optime este aceea ca ele s satisfac
relaiile:
0 ( 0 ) = 0
( 0 ) 0 = 0
(
=1
0 ) 0
=1
=0
( 0 ) 0 = 0
=1
=1
Prin urmare:
dac soluia optim 0 a primalei satisface cu inegalitate strict restricia i a
problemei, atunci 0 = 0,
1, ;
dac soluia optim 0 a dualei satisface cu inegalitate strict restricia j a problemei,
atunci 0 = 0,
1, ;
dac o component 0 a soluiei optime a dualei este strict pozitiv, atunci soluia
optim 0 a primalei satisface cu egalitate restricia i a problemei,
1, ;
dac o component 0 a soluiei optime a primalei este strict pozitiv, atunci soluia
optim 0 a dualei satisface cu egalitate restricia j a problemei,
1, .
Evident c fiecare dintre cele dou probleme ale cuplului dual (P) (D) poate fi soluionat
direct cu algoritmul simplex.
ntr-un astfel de context, se pun dou ntrebri:
1. poate fi dedus soluia uneia dintre probleme pe baza rezolvrii celeilalte?
2. dac rspunsul la prima ntrebare este afirmativ, care dintre probleme poate fi
soluionat mai rapid (mai eficient)?
Teorem.
Dac una din problemele duale (P) (D) are soluie optim, atunci soluia optim a celeilate
este dat de diferenele corespunztoare variabilelor de compensare ale problemei
rezolvate, considerate n valoare absolut (| |).
n practic nu se d un cuplu dual, ci doar o problem de programare liniar care poate fi
rezolvat direct sau prin intermediul dualei sale. De regul, se alege problema de maximizare
deoarece soluionarea este mai rapid.
DEPOZITE
11
21
12
22
Necesar
CENTRE DE CONSUM
Disponibil
1
2
S se determine
,
1, ,
1, care satisfac:
[] =
=1 =1
= ,
1,
=1
= ,
1,
=1
> 0,
1, ,
1,
=
=1
=1
=1
=1
=
=1
=1
dac
=1 > =1 (oferta depete cererea), atunci, pentru echilibrare, se
dac
=1 < =1 (cererea depete oferta), atunci, pentru echilibrare, se
1
2
1
1
+
Determinm:
min ()
() = 2 + 2 = 0
2 =
2 Q cl
volumul optim al unei comenzi
cs
Q cs
Q
2 cl
T
perioada optim de aprovizionare
v
Q cs
C 2 Q cl cs gestiunea optim
1
2
1 .
(, ) = ( + 1 +
2 ) ( = )
2
2
Din relaiile:
= ,
1 =
2 =
2
( )2
+
+
2
2
Punctele de extrem ale funciei (, ) se vor gsi printre punctele staionare, adic soluiile
sistemului:
(,)
{(,)
=0
(, ) punct staionar
=0
unde:
= =
stocul optim
2
1
= = perioada optim de aprovizionare
= 2
gestiunea optim
: (()) , = 0,1,2, , ,
unde: {
sau
unde:
() = ( < ) 0, () = 0,1, ,
=0 () = 1
Se cunosc :
1 costul unitar de penalizare pentru excedent de stoc;
2 costul unitar de penalizare pentru lips de stoc.
Cererea fiind aleatoare, distingem 2 situaii:
- excedent de stoc; mrfurile rmase n cazul excedentului de stoc,
se vnd cu o pierdere unitar 1 datorit fie deprecierii mrfii,
fie vinderii acesteia cu un pre redus;
> - lips de stoc; n acest caz se fac cheltuieli suplimentare unitare 2
pentru reaprovizionare cerute de nevoia de satisfacere a cererii.
n cadrul acestui model cheltuielile specifice de stocaj sunt mici n comparaie cu 1 i 2
i, n consecin, se neglijeaz.
Cazul discret
Variabila aleatoare care d excedentul de stoc are repartiia:
= ( () ) , = 0,1,2, , ,
() 0, ()
0,
=0 () = 1
= ( () ) , = + 1,
Folosind definiia mediei unei variabile aleatoare, gsim:
( ) = ( ) ()
=0
( ) = ( ) ()
=+1
() = 1 ( ) () + 2 ( ) ()
=0
=+1
Cum () este o funcie discret, rezult c minimul ei va fi atins n punctul pentru care:
{
( 1) > ( )
( + 1) > ( )
Prin urmare, pentru a determina stocul optim trebuie s rezolvm sistemul de inecuaii:
{
( 1) > ()
( + 1) > ()
(*)
1 +2
Observaii.
1. Deoarece funcia de repartiie () este nedescresctoare, din relaia (*) rezult c
este un minim absolut pentru funcia cost mediu.
2. Dac ( 1) < = (), atunci ( ) = ( + 1), deci minimul funciei cost
mediu are loc pentru dou valori i + 1.
3. Dac ( 1) = < (), atunci ( 1) = ( ), deci minimul funciei cost
mediu are loc pentru dou valori 1 i .
Gestiunea optim este:
( ) = 1 ( ) () + 2 ( ) ()
=0
= +1
Cazul continuu
Variabilele aleatoare excedent de stoc i lips de stoc au repartiiile:
( () ) ,
[0, ]
( () ) ,
[, ]
( ) = ( ) ()
0
( ) = ( ) ()
() = 1 ( ) () + 2 ( ) ()
0
1 +2
Observaii.
1. ( ) > 0 este punct de minim pentru funcia ().
2. Cum () este funcie nedescresctoare, rezult c este minim unic (absolut).
Gestiunea optim (costul total minim) va fi:
( ) = 1 ( ) () + 2 ( ) ()
0
4.1.
Definiia 4.1. Un graf orientat este o pereche de forma = (, ) unde X este o mulime
finit i = {(, ) , } . Elementele lui X se numesc vrfuri sau noduri ale
lui G, iar perechile (, ) se numesc arce ale grafului G: x este extremitatea iniial (surs),
y extremitatea final (destinaie) pentru arcul (, ).
Graful = (, ) admite o reprezentare geometric n plan, obinut astfel:
vrfurile se plaseaz n plan n poziii distincte oarecare;
pentru fiecare arc (, ), punctele x i y se unesc printr-un segment orientat.
Exemplu. Considerm graful orientat = (, ) dat de:
= {1 , 2 , 3 , 4 }
= {(1 , 3 ), (1 , 4 ), (2 , 1 ), (3 , 2 ), (3 , 4 )}
2
3
Distingem:
drum elementar un drum n care fiecare nod apare o singur dat;
drum neelementar - un drum care trece de dou sau mai multe ori prin acelai nod.
Un drum elementar care trece prin toate nodurile grafului se numete drum hamiltonian.
Lungimea unui drum este egal cu numrul arcelor care l formeaz.
Numrul de noduri la care se poate ajunge din nodul se numete puterea de atingere a
nodului i se noteaz ( ).
4.2.
1, ( , )
= {
,
0, ( , )
() .
1, .
0
0
1
0
1
0
0
0
1
0)
1
0
= {
1,
, () .
1,
0,
4.3.
Algoritm 1.
Pas 1. Se construiete matricea arcelor A.
Pas 2. Se calculeaz succesiv puterile matricei A pn la 1.
Pas 3. Se calculeaz matricea drumurilor:
= + 2 + + 1 = ( + )2
Observaie. Dac ne intereseaz doar existena drumurilor dintre noduri, nu i numrul lor,
atunci vom folosi nmulirea i adunarea boolean.
Algoritm 2.
Pas 1. Se construiete matricea arcelor A.
Pas 2. Pentru fiecare linie i, se adun boolean la aceasta toate liniile j pentru care = 1.
Pas 3. Se reia pasul 2 pn cnd, dup o aplicare a acestuia, matricea rmne aceeai.
Ultima matrice obinut este matricea drumurilor D.
Observaie. Aceti algoritmi sunt destul de leni n ceea ce privete aplicarea pe calculator.
Ambele procedee ne arat existena sau nu a unui drum ntre dou noduri, eventual ce
lungime are ( existena drumurilor de lungime k, dac s-au folosit operaiile algebrei
booleene) i cte sunt de aceast lungime ( numrul drumurilor de lungime k, dac s-au
folosit operaiile obinuite).
Totui, n problemele practice cel mai important este s tim care sunt efectiv aceste drumuri.
1
1
1
0
1
1
1
0
1
1)
1
0
4.4.
(1)
2
Teorem
Dac ntr-un graf orientat, fr circuite exist un drum hamiltonian, atunci acesta este unic.
(1)
(1)
2
unde: = {
( , ),
( , )
( , )
, () ,
1, .
Pas 2. Din matricea (1) - matricea latin, prin suprimarea primei litere,
se obine matricea (0) - matricea destinaiilor posibile.
Pas 3. Se calculeaz:
Operaia de concatenare (&) (nmulire latin) respect regulile din nmulirea obinuit a
matricelor, cu urmtoarele precizri:
dac una din componentele participante la calcul este *, atunci rezultatul este *;
n caz contrar, rezultatul compunerii const n scrierea n continuare a vrfurilor
componente ale simbolurilor participante.
4.5.
n marea majoritate a problemelor care pot fi modelate prin grafuri nu ne intereseaz numai
dac exist sau nu legturi ntre componentele reprezentate prin nodurile grafului, ci i
intensitatea acestora. Aceast intensitate are semnificaia unei valori numerice (pozitive sau
negative) asociate arcului corespunztor legturii a crei intensitate o msoar.
n aplicaiile economice aceast valoare poate fi:
lungimea drumului dintre dou localiti;
costul parcurgerii rutei reprezentate prin arcul corespunztor;
durata parcurgerii rutei respective;
cantitatea transportat pe ruta respectiv etc.
Una din problemele care poate aprea n aceste situaii este gsirea, pentru o anumit pereche
de noduri sau mai multe perechi, a drumului optim ntre acestea.
Pentru formalizarea problemei vom introduce noiunea de:
valoare a unui drum suma valorilor arcelor care l compun.
( , ) ,
0,
+ ,
{ ,
() ( , )
=
. , ( , )
. , ( , )
(1, , min1,
( + 1, ))
(1, , max1,
( + 1, )) .
,
1, .
Pasul 3. Dup calcularea fiecrei linii noi, se compar elementele ei cu cele ale precedentei:
dac = 1, , ()
1, , atunci se oprete recurena i ultima linie calculat
conine valorile optime ale drumurilor de la celelalte noduri la nodul .
dac 1, , pentru cel puin un indice j, se trece la calcularea noii linii +1 .
Pasul 4. Pentru gsirea drumului care d valoarea minim de la un nod la nodul ,
se gsesc, ncepnd napoi de la ultima linie, pe care s-au obinut valorile finale, nodurile
1 , 2 , , care formeaz drumul cutat, unde: 1 = , = , iar fiecare alt indice
+1 este cel pentru care s-a obinut minimul (maximul) de pe poziia al liniei .
Observaie. Pentru grafuri foarte mari, algoritmul necesit un volum mare de memorie, prin
necesitatea memorrii matricei M, care este greu de manipulat. Chiar dac, din cele 2 arce
posibile, graful ar avea doar un procent foarte mic, matricea grafului va avea tot 2 poziii de
memorat i analizat.