Sunteți pe pagina 1din 8

CAPITOLUL III PROGRAMARE DINAMIC

Dac analizm natura problemelor care au fost rezolvate prin programare liniar sau prin teoria grafurilor, constatm c procesul economic pe care doream s l optimizm se desfura ntro singur faz (etap sau perioad). innd cont de faptul c exist numeroase probleme de optimizare care modeleaz procese economice care se desfoar n mai multe perioade i la fiecare perioad trebuie s stabilim soluia optim, viziunea static poate constitui un neajuns. Este evident faptul c succesiunea de soluii nu se poate determina innd seama numai de parametrii fiecrei perioade analizate n parte, i c este necesar s identificm o succesiune de soluii care optimizeaz ntregul proces analizat. Problemele economice care reclam o suit de decizii secveniale se caracterizeaz prin faptul c o decizie care adoptat ntr-o anumit perioad are att un efect economic imediat, ct i unul de lung durat, care influeneaz i asupra celorlalte etape. Optimizarea proceselor secveniale se obine prin metodele unei teorii matematice relativ recent constituite i care se numete programare dinamic. Creatorul acestei teorii este Richard Bellman, iar lucrarea sa fundamental este Dynamic Programming aprut n anul 1957. Programarea dinamic are un cmp larg de aplicaie n cercetarea operaional (organizarea produciei, gestiunea stocurilor, rennoirea echipamentelor), precum i n alte domenii (navigaie cosmic, procese cu conexiune invers etc.). S presupunem un proces secvenial a crui desfurare n timp depinde de o variabil care poate lua o mulime de valori n fiecare etap. Ne putem decide pentru o valoare determinat a variabilei n fiecare etap i din aceast cauz ea se numete variabil de decizie sau de control. O succesiune oarecare de decizii constituie o politic i cea care ne intereseaz este politica optim, de pild aceea care conduce la un cost total minim al procesului. Deosebim dou tipuri principale de procese secveniale: a) deterministe, cnd la fiecare faz procesul este controlat n ntregime de decizia pe care o lum; b) stohastice, atunci cnd evoluia procesului se desfoar sub dubla influen a deciziilor i a hazardului. Se numete politic optim acea succesiune de decizii care optimizeaz procesul n ansamblu lui, fiind vorba de un proces determinist. n cazul unui proces stohastic, se folosete n mod corespunztor noiunea de strategie optim. Procesele dinamice pot fi continue sau discrete. Un exemplu de proces discret este urmtorul: o ntreprindere trebuie s-i ntocmeasc planul de aprovizionare anual pentru un anumit material; se consider 12 perioade (luni) i pentru fiecare perioad se stabilete cantitatea de aprovizionat, astfel ca pe ntregul an s rezulte un cost total minim. Procesele dinamice discrete pot avea orizontul limitat (n exemplu de mai sus 12 perioade) sau nelimitat. 3.1. Introducere Programarea Dinamic (PD) este o metod de rezolvare a unor probleme de optimizare n care se opereaza pe FAZE (SECVENTE) numite n continuare PERIOADE. Prin aplicarea acestei metode, soluia optim se obtine n urma rezolvarii unui ir de probleme de optimizare LEGATE INTRE ELE, fiecare de de dimensiune si complexitate mult mai mic decat problema original. Dei teoretic PD este aplicabil oricarei probleme de optimizare multidimensional, totui metoda a dat rezultate foarte bune - n sensul uurrii rezolvrii - numai pe anumite clase de probleme cum sunt cele care modeleaz evoluia n timp a unui proces economic sau probleme de alocare (repartiie).
1

3.2. Probleme de alocare unidimensional Presupunem ca avem la dispoziie o anumit resurs economic. Termenul poate reprezenta, dupa caz, un anume tip de materii prime, for de munc, energie, bani sau un anumit serviciu etc. Se produce un CONFLICT de INTERESE din faptul ca aceast resurs poate fi utilizat n MAI MULTE MODURI. Un mod particular de utilizare a resursei n cauz se va numi n continuare ACTIVITATE. Ca urmare a utilizrii resursei ntr-o activitate sau alta rezult un anumit VENIT. i acest termen are o sfer foarte larg putnd desemna un produs finit, o sum de bani sau pur i simplu satisfacia. Mrimea venitului depinde de cantitatea de resurse alocat activitii respective, dar i de specificul acesteia. n continuare vom adopta urmatoarele ipoteze simplificatoare: 1) Venitul rezultat din diferitele activiti poate fi msurat cu o unitate de masura comuna. 2) Venitul rezultat dintr-o activitate nu depinde de alocrile fcute n alte activiti. 3) Venitul total este egal cu suma veniturilor individuale. Problema fundamental const n a repartiza resursa ntre activitile concurente de aa manier ncat venitul total sa fie MAXIM. 3.3. Un model matematic Ordonm ntr-un mod oarecare activitile i le numerotm: 1, 2,, N. n continuare, fiecare activitate va fi identificat prin numrul su de ordine. Asociem fiecrei activiti i o FUNCIE DE UTILITATE gi reprezentnd DEPENDENA VENITULUI su de cantitatea de RESURS ALOCAT. Conform ipotezei 2), gi depinde numai de cantitile xi de resurs alocat activitii i, asa c gi(xi) va reprezenta venitul obinut din activitatea i ca urmare a alocrii cantitii xi. Indicele i din simbolul gi al funciei de utilitate este menit s arate c venitul rezultat din activitatea i depinde nu numai de volumul de resurse alocat, dar i de specificul acestei activiti (altfel spus, funciile de utilitate pot diferi de la o activitate la alta). n diferitele situaii practice functia gi poate fi dat: printr-o expresie ANALITIC, de exemplu: gi(xi)=aixi+bi, cu ai, bi constante (CAZ LINIAR); sau gi(xi)=aixi2+bixi (CAZ NELINIAR-PATRATIC). printr-o lista de VALORI NUMERICE corespunz[toare unor NIVELE ale resursei alocate, ca de exemplu: xi gi(xi) 0 0 1 2 3 4 0,18 0,38 0,46 0,51 0,55 5

Venitul total rezultat n urma alocrii resursei n cele N activiti va fi dat de expresia: V(x1,x2,,xN) = g1(x1) + g2(x2) ++ gN(xN) (1)

ca urmare a ipotezelor 1) si 3). Maximizarea functiei V se impune, datorit faptului c resursa se afl disponibil ntr-o cantitate limitat S. Astfel, alocrile fcute diferitelor activiti trebuie sa satisfac cerinele: x1 + x2 + +xN=S (2) xi 0, i = 1,,N (3)

Obiectivul nostru este acela de a maximiza funcia V(x1,x2,,xN) din (1) pe multimea tuturor ALOCRILOR (x1,x2,,xN) care satisfac restricia (2) i condiiile de nenegativitate (3). 3.4. Posibiliti de rezolvare. Dificulti S notm cu (P) problema de optimizare rezultat: (P) (max)V(x1,,xN) = g1(x1) + + gN(xN) x1 ++ xN = S xi 0, 1 i N

(P) = problem de PROGRAMARE MATEMATIC cu o singur RESTRICIE LINIAR i o funcie obiectiv SEPARABIL i NELINIAR N GENERAL. Dac funciile g1,,gN sunt derivabile, iar variabilele x1,,xN pot lua orice valoare real nenegativ, (P) se poate rezolva utilizind aparatul matematic al analizei clasice - Teoria EXTREMELOR CU LEGTURI. Nu insistm asupra acestei metode, deoarece ea va fi studiata ulterior. Semnalm totui faptul c n multe situaii concrete metoda MULTIPLICATORILOR LAGRANGE nu se dovedete a fi eficient din cauza formei complicate pe care o pot avea funciile de utilitate gi. Metoda amintit este inaplicabila n cazul n care funciile gi nu sunt derivabile sau n cazul n care variabilele xi nu pot lua dect valori nenegative INTREGI. n asemenea situaii care nu sunt puine se impun metodele de optimizare noi. 3.5. Rezolvarea problemelor de alocare unidimensionale (P) prin (PD) Ideea metodei const n a ngloba problema (P) ntr-o FAMILIE de probleme de alocare difereniate prin numrul de activiti i cantitatea de resurs disponibil. n loc de a privi STATIC procesul alocarii disponibilului S ntre cele N activiti, aceasta nsemnnd considerarea diferitelor variante de repartiie (x1,,xN) i clasificarea lor dup venitul posibil de realizat, vom adopta un punct de vedere DINAMIC n care alocrile se fac UNA CATE UNA. Mai precis, vom determina venitul maxim care se obine efectund o alocare numai n PRIMA activitate, dup care vom afla care este venitul maxim rezultat din efectuarea unei alocri n PRIMELE DOU activiti, apoi n PRIMELE TREI, s.a.m.d. n toate aceste procese PARIALE cantitatea de resurs alocat va fi VARIABIL dar nedepind plafonul maxim S - aa c rezultatele nu vor fi simple mrimi numerice, ci niste FUNCTII reprezentnd DEPENDENA VENITULUI MAXIM fa de volumul de resurs alocat. n termeni mai precii, pentru fiecare ntreg 1 n N i fiecare 0 s S vom considera problema de alocare unidimensional similar cu (P): Pn(s) (max)V(x1,,xn) = g1(x1) ++ gn(xn) x1 ++ xn = s xi 0, i=1,, n

Cu noua notatie (P) devine PN(S).


3

Vom nota cu fn(s) maximul obiectivului problemei Pn(s), adic venitul maxim rezultat din alocarea cantitii s n regiunile (activitile) 1, 2,, n: fn(s) = MAX [g1(x1) ++ gn(xn)], x1 ++ xn = s i xi 0 (4)

Rezult c maximul obiectivului problemei originale (P) este fN(S). Notm c pentru n fixat i s variabil fn este o FUNCIE de o singur variabil s al crei domeniu de valori admisibile este intervalul [0, S]. Este evident ca pentru n=1, f1=g1, adic: f1(s) = g1(s) pentru () 0 s S Pentru n>1 valorile funciei fn se deduc pe baza urmtoarei relaii de RECUREN: Pentru 0 s S fn(s) = MAX[f n-1(s-xn)+gn(xn)], 0 xn s ECUAIA FUNDAMENTAL A PD Demonstratia relatiei de recurenta (5) relev urmtorul principiu general cunoscut sub numele de PRINCIPIUL DE OPTIMALITATE al lui BELLMAN. O strategie OPTIM are proprietatea c oricare ar fi STAREA INIIAL i DECIZIA INIIAL, deciziile rmase constituie o strategie OPTIM n raport cu STAREA care rezult din prima decizie. ALGORITM DE REZOLVARE A PROBLEMEI (P) PRIN PD Etapa I (INIIALIZARE): Pentru fiecare 0 s S definim f1(s) = g1(s) Etapa n (1<n<N): Definim funcia fn n fiecare 0 s S dup formula (5) i notm cu xn*(s) acea valoare a variabilei xn n care se realizeaz EFECTIV maximul din (5).. : : Etapa N: Calculm fN(S)= max [fN-1(S-xn)+gN(xN)]
0 xN S

(5)

Etapa final (de determinare a alocrii OPTIMALE (x1*,,xN*)). Componentele acesteia se determina DIN APROAPE N APROAPE de la sfrit la nceput astfel: xN*=xN*(S) Pentru () 1 n N xn*=xn*(s - sn), unde sn=xn+1*++xN* EXEMPLU NUMERIC Conducerea unei firme a decis s fac un efort investiional pentru impulsionarea vnzrilor sale n 4 piee diferite. Suma total de investit este S=10 milioane $. Experii firmei au evaluat profiturile posibil de realizat n funcie de investiia fcut n una sau alta dintre piee. Problema const n a vedea cum trebuie repartizate cele 10 milioane pentru ca profitul firmei s fie maxim.

SUMA INVESTITA 0 1 2 3 4 5 6 7 8 9 10 REZOLVARE: PIATA1 0 0,28 0,45 0,65 0,78 0,90 1,02 1,13 1,23 1,32 1,38

PROFITURI PIATA 2 PIATA 3 0 0 0,25 0,15 0,41 0,25 0,55 0,40 0,65 0,50 0,75 0,50 0,80 0,73 0,85 0,82 0,88 0,90 0,90 0,96 0,90 1,00

PIATA 4 0 0,20 0,33 0,42 0,48 0,48 0,56 0,58 0,60 0,60 0,60

1. Reprezentai n graficul suma investit profitul realizat pentru cele 4 piee. 2. Dependena ntre profit i suma investit nu este dat printr-o expresie analitic ci prin cateva valori corespunztoare unor nivele ale investitiei exprimate prin valori ntregi. Din acest motiv, suma total va fi imparit de aa manier ncat investiia n fiecare zon s fie exprimat tot printr-un numr ntreg, evident nenegativ. Reprezentnd grafic dependena investiie - profit probabil constatm ca ea nu este liniar i c pe masur ce suma investit crete, curba corespondent are tendina de aplatizare ca urmare a efectului de saturare. Modelul matematic nu difer de cel prezentat n general dect prin cerina ca variabilele sa ia numai valori ntregi, dat fiind maniera particular n care s-au dat funciile de utilitate. El este: S se determine x*1, x*2, x*3, x*4 care maximizeaz profitul (x1,x2,x3,x4)=g1(x1)+g2(x2)+g3(x3)+g4(x4) cu restricia x1+x2+x3+x4=10 si conditia xi 0, ntregi, i=1, 2, 3, 4 unde xi = suma prevazut a se investi n piaa i, iar gi(xi) este profitul probabil rezultat din aceasta investiie. Pentru fiecare numr ntreg 0 s 10 i 1 n 4 definim fn(s) = profitul maxim rezultat din investirea a s $ n primele 1, 2,, n piee. Conform teoriei generale: f1(s)=g1(s), s = 0, 1,, 10; fn(s) =
0x s n

max [fn-1(s-xn) + gn(xn)],

s= 0, 1,, 10 i 1 < n < 4;

f4(10) = max [f3(10-x4) + g4(x4)]


0 x 10 4

f1=g1(s)

g2

f2

(x1, x2)

g3

f3

(x1, x2, x3)

g4

f4

(x1, x2, x3, x4)

0 1 2 3 4 5 6 7 8 9 10

0 0,28 0,45 0,65 0,78 0,90 1,02 1,13 1,23 1,32 1,38

0 0,25 0,41 0,55 0,65 0,75 0,80 0,85 0,88 0,90 0,90

0 0,28 0,53 0,70 0,90 1,06 1,20 1,33 1,45 1,57 1,68

0 0,15 0,25 0,40 0,50 0,62 0,73 0,82 0,90 0,96 1,00

0 0,28 0,53 0,70 0,90 1,06 1,21 1,35 1,48 1,60 1,73

0 0,20 0,33 0,42 0,48 0,53 0,56 0,58 0,60 0,60 0,60

1,81

Deducerea alocrii optimale: f4(10) = f3(8) + g4(2) x*4 = 2 f3(8) = f2(7) + g3(1) x*3 = 1 f2(7) = f1(4) + g2(3) x*2 = 3 f4(10) =g4(10) x*1=4

3.6. O problem de ncrcare a unui vapor


S presupunem c avem de ncrcat un vapor cu o ncrctur format din mrfuri de diferite tipuri. Mrfurile sosesc la ncrcare n containere de diferite mrimi, fiecare marf fiind aezat totui n containere de aceeai mrime. Un container n care se afl marfa i, i = 1,, N are o anumit greutate Wi i o anumit valoare Vi. Exist un plafon W al greutii ncrcturii. Cte containere din fiecare tip de marf trebuie ncrcate n limita greutii maxime W, astfel nct valoarea ncrcturii sa fie maxim? Modelul matematic

i =1

wixi W (6)

(P)

xi 0, ntregi maxV(x1,, xN) =

i =1

v i x i

n care xi = numrul de containere n care se afl marfa i. Se presupune c i W este ntreg. Pentru () 1 n N i 0 w W ntregi, notm cu fn(w) valoarea maxim a unei ncrcturi cu greutatea cel mult egal cu w format din mrfurile 1, 2,, n. Evident fn(w) = maxV(x1,, xn), unde V(x1,,xn) este funcia obiectiv din problema:
n

i =1

wixi W (7)
n

Pn(w)

xi 0, ntregi maxV(x1,, xn) =

i =1

vixi

Noi suntem interesai n a afla fN(W) = maxV(x1,, xN) i combinaia (x*1,, x*N) care realizeaz aceast valoare maxim. Pentru n = 1 avem: f1(w) = v1[w/w1], [] = partea ntreag n > 1 ecuaia de dinamic este: fn(w) =
0 x [w/w ] n n

max

[f n-1(w - wnxn) + vnxn] ,

0wW

(8)

cu observaia c pentru: n = N se calculeaz numai fN(W) =


0 x [W/W ] N N

max

[f N-1(W - wNxN) + vNxN]

(9)

Exemplu numeric: Considerm dat problema de ncrcare a unui vapor descris de informaiile: w1=2 w2=4 w3=5 W=11 v1=5; v2=12; v3=16; al crei model este: (P) maxV(x1,x2,x3) = 5x1 + 12x2 + 16x3 2x1 + 4x2 + 5x3 11 x1,x2,x3 0, ntregi

Rezolvare: n = 1: n>1: f1(w) = v1[w/w1] fn(w) =


0x [w/w ] n n

max

[f n-1(w-wnxn)+vnxn]

Exemplu de calcul: f2(9) = max [f1(9-4x2)+12x2] = max [f1(9-4x2)+12x2] = max{f1(9)+0; f1(5)+12; f1(1)+24}=24, pentru x2 = 2 f2(9) = f1(1) + 122 x1 = 0 => (x1, x2) ce realizeaz maximul f2(9) este (0,2).
0 x [9/4] 2 x = 0,1,2 2

f3(11) =

0 x [11/5] 3

max {f2(11-5x3)+16x3} = max {f2(11-5x3)+16x3} = max{f2(11)+0;f2(6)+16;f2(1)+32}


x = 0,1,2 3

= max{29+0;17+16;0+32} = 33, pentru x3 = 1; f3(11) = f2(6) + 161 (x1, x2) = (1,1) Soluia optim de ncrcare: x*1 = x*2 = x*3 = 1 maxV = 33 Interpretare economic:

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