Click here to load reader

Cercetarea operationala

  • View
    260

  • Download
    3

Embed Size (px)

Text of Cercetarea operationala

Cercetarea operationala este un ansamblu de metode care isi propun e, in vederea pregatirii deciziilor, sa determine in mod rational solutiile cele mai eficiente. Obiectul cercetarii operationale il constituie sistemele si ele isi propun elaborarea unor metode de analiza a operatiilor indreptate spre un anumit cost, precum si estimarea obiectiva a deciziilor ce pot fi adoptate. Problemele din domeniu CO pot fi clasificate in 3 categorii: 1. Problema in situatii de certitudine 2. Problema in conditii de risc 3. Problema in situatii de incertitudine

Luarea deciziilor in situatii de incertitudine Situatii de incertitudine situatii de risc, cind este nevoie de calculat toate solutiile posibile deoarece nu avem date statistice Criteriul Wald criteriul pesimistului - solu ia optim va fi determinata de valoarea maxim din irul valorilor minime ale factorului de risc

zopt ! maxminzij ] [x y

Criteriul Savage bazat pe matricea de regret, se calculeaza in 2 pasi:

1. Formam matricea de regret (se recomanda ca tabelul sa fie construit pe coloane) uij ! zij max zij 2. Aplicam metoda Wald pt matricea obtinuta: zopt ! max[min uij ]x y

Criteriul Laplace - se bazeaz pe ipoteza lui Bernoulli i presupune c fiecare stare a naturii are aceea i 1 zopt ! max f ( xi yi ) x n probabilitate de existen , iar solu ia optim se va calcula dup rela ia: unde n- num rul factorilor de risc. Criteriul Hurwicz - presupunem ca p- probabilitatea intimplarii celei mai rele stari ale naturii

zopt ! max[(1 p ) max zij p min zij ]x y y

Pentru a calcula oportunitatea de pierdere vom aplica criteriul de optimizare a speran ei matematice. Vom construi matricea pierderilor posibile, unde uij ! zij max zij .x

Metoda SIMPLEX 1. dupa introducerea variabilelor auxiliare, sistemul de ecuatii si f-ia liniara o inscrim intr-o forma care se numeste sistem extinsa11 x1 a12 x 2 ... a1n xn xn 1 ! b1 a 21 x1 a 22 x2 ... a2 n xn xn 2 ! b2 .......... .......... .......... .......... .......... ...... x a x ... a x x ! b a m2 2 mn n n m m m1 1 c1 x1 c2 x 2 ... cn xn ! 0 F propunem ca toate variabilele auxiliare au acelasi semn ca si termenii liberi, in caz contrar folosim, asa numita metoda M

2. Sistemul extins initial, il introducem in primul tabel Simplex. Ultima linie a tabelului, in care e indicata functia scop, se numeste de evaluare. In ea sunt indicati coeficientii f-iei scop cu semnul opus coef i ! ci . In coloana stinga a tabelului inscriem variabilele de baza, in prima linie a Tabelului toate variabilele (evidentiindu-le in acelasi timp pe cele de baza), in a doua coloana termenii liberi ai sistemului extins b1 , b2 ,...bm .Ultima coloana este pregatita pentru relatiile de evaluare, care sunt importante la calculul valorii maxime posibile a variabilei. In zona de lucru a tabelului sunt introdusi coeficientii aij ai variabilelor din sistemul extins (incepind cu a 2-a linie si a 3-a coloana). In continuare tabelul se va mofidica in conformitate cu anumite reguli.

3. Verificam respectarea criteriului optimalitatii in rezolvarea problemelor de maxim prezenta in ultima linie a coeficientilor negativi bi 0 ; (ci " 0) . Daca astfel de coeficienti nu sunt, atunci rezultatul este optim, iar F ! c0 (in coltul sting al tabelului), variabilele de baza iau valorile ai 0 (a 2-a coloana), variabilele care nu sunt de baza sunt egale cu 0, adica obtinem solutia optima de baza. 4. Daca criteriul optimalitatii nu este respectat, atunci cel mai mare coeficient negativ determina coloana pivot s. alcatuim conditiile de evaluare ale fiecarei linii, dupa urmatoarele reguli: 1) g, daca b si a au semne di erite; i is2) g, daca a is ! 0; 3) 0, daca b i ! 0 si a is " 0; 4) bi , daca a i0 si a is au acelasi semn. a is

b Gasim min i . Daca nu avem minim finit, atunci problema nu are un rezultat optim i a is finit Fmax ! g . Daca minimul este finit, atunci alegem linia q, pentru care el este atins (daca sunt citeva, atunci o alegem pe oricare) si o numim linie pivot. La intersectia liniilor pivot si a coloanei se afla elementul pivot a qs . 5. Trecem la urmatorul tabel dupa regulile: a) In coloana stinga inscriem noua baza: in locul variabilei de baza xq - variabila xs

b) In coloanele ce corespund variabilelor de baza, inlocuim zerouri si unitati. 1- in dreptul variabilei proprii; 0 in dreptul variabilei straine; 0 in ultima linie pentru toate variabilele de baza. c) Obtinem o linie noua cu numarul q din cea veche, raportata la valoarea elementului pivot a qs d) Toate celelalte elemente aij se calculeaza dupa regula dreptunghiuluid aij ! aij bid bi ! ais aqj aqs aqs | | | | | | - - - a ij ais - - - a qj a qs

ais bq

In continuare trecem la partea a 3-a a algoritmului. Exemplu: Sa se rezolve problema utilizarii resurselor cu ajutorul tabelului SIMPLEX. x 1 3 x2 x3 ! 18 2 x1 x2 x4 ! 16 Sistemul are forma: x 2 x5 ! 5 x1 x 6 ! 21 3 Functia liniara are forma F 2 x1 3x2 ! 0 . Completam primul tabel Simplex (tab 1) in care variabilele x3 , x4 , x5 , x6 sunt de baza. Ultima linie se completeaza cu coeficientii functiei liniare cu semnul - .

In corespundere cu punctul 3 al algoritmului verificam criteriile optimalitatii. In ultima linie avem coeficientii negativi. Alegem din ei pe cela mai mare dupa modul|-3|; a doua coloana pivot, variabila x2 va trece in cele de baza (aceasta coloana este notata cu sageata). Conform punctului 4 al algoritmului

18 gasim min_ / 3, 16, 5, ga! 5 . A 3-a linie este pivot (marcata cu sageata orizontala). La intersectia' liniei si coloanei pivot sta elementul a32 ! 1

Construim a 2-a tabela dupa regulile punctului 5 al algoritmului: a) In noua baza, variabilele de baza sunt: x3 , x4 , x2 , x6 b) Punem zerourile si unitatile; de exemplu, in celula corespunzatoare variabilei de baza x3 dupa linie si coloana punem 1, iar in celula corespunzatoare variabilei x3 dupa linie, iar variabilei de baza x2 dupa coloana, punem 0. In utlima linie, paralel cu toate variabilele de baza punem 0. A

3-

a33 ! 1 . Ce e e le c 3 0 35 d ; a 11 ! 1 dreptunghiului. De e e plu: b1d 18 ! 1 , etc. ! 1 1Obtine al doilea tabel Simple

e

e

ee e

v

le

dupa re ula

Criteriul optimalitatii nu este realizat. Acum prima coloana este pivot; x1 - trece in cele de baza,

min _ / ; 3

/ 2; g; 7a 3 ; prima linie este pivot, iar a11 - element pivot.

Noul tabel Simple ia forma:

Si de aceasta data crietriul optimalitatii nu este respectat; a 5-a coloana si a 2-a linie sunt pivot, a25 ! 5 - element pivot. Trecem la urmatorul tabel :

Criteriul optimalitatii este respectat, deci Fmax ! 24 , iar rezolvarea optima de baza este (6; 4; 0; 0; 1; 3 .

$

! " #

ELEMENTE DE TEORIA GRAFURILOR1. Moduri de reprezentare ale unui graf A. O prim modalitate de reprezentare este listarea efectiv a tuturor nodurilor i a arcelor sale. B. Putem reprezenta graful dnd pentru fiecare nod mul imea nodurilor cu care formeaz arce n care el este pe prima pozi ie. C. Putem reprezenta geometric graful, printr-un desen n plan, reprezentnd fiecare nod printr -un punct(cercule ) i fiecare arc printr-un segment de curb care are ca extremit i nodurile arcului i pe care este trecut o s geat orientat de la nodul ini ial spre cel final. D. Putem folosi o reprezentare geometric n care nodurile sunt reprezentate de dou ori, n dou iruri paralele, de la fiecare nod din unul din iruri plecnd s ge i spre nodurile cu care formeaz arce n care el este pe prima pozi ie, de pe al doilea ir (reprezentarea prin coresponden ). E. Un graf poate fi reprezentat printr-o matrice p tratic boolean , de dimensiune egal cu num rul de noduri, n care o pozi ie aij va fi 1 dac exist arcul (xi,xj) i 0 n caz contrar, numit matricea adiacen elor directe. F. Un graf poate fi reprezentat printr-o matrice p tratic latin , de dimensiune egal cu num rul de noduri, n care pe o pozi ie aij va fi xixj dac exist arcul (xi,xj) i 0 n caz contrar. Exemplu: Dac n reprezentarea A avem graful G = (X,U), unde X = {x1, x2, x3, x4, x5, x6} i U = {(x1,x1), (x1,x2), (x1,x4), (x1,x5), (x2,x3), (x2,x4), (x2,x6), (x3,x1), (x3,x2), (x4,x5), (x5,x2), (x6,x4)}, atunci n celelalte reprezent ri vom avea: B x 1 p {x1, x2, x4, x5} x2 p {x3, x4, x6} x3 p {x1, x2} x4 p {x5} x5 p {x2} x6 p {x4} x6 x5 x4 x3 C x1 x2

D (reprezentarea prin coresponden ) x1 x2 x3 x4 x5 x6

x1

x2

x3

x4

x5

x6

E

x1 x2 x3 x4 x5 x6 x1 1 x2 0 x3 1 1 0 1 0 1 0 1 1 1 0 0 0 0 1 0

F

x1 x2 x3 x4 x5 x6 x1 x1x1 x1x2 0 x1 x4 x1x5 0 x2 00 x2x3 x2 x4 0 x2x6 0 0 0

x3 x3x1 x3x2 0

2. Concepte de baz n teoria grafurilory y y y y y y y y y y y y y y y

arce adiacente: arce care au o extremitate comun ; drum ntr-un graf: o mul ime ordonat de noduri ale grafului: (x1, x2, ..., xk), cu proprietatea c exist n graf toate arcele de forma (xi,xi+1) i = 1,...,k-1; lungimea unui drum: este num rul arcelor care l formeaz ; drum elementar: un drum n care fiecare nod apare o singur dat ; drum simplu: un drum n care fiecare arc apare o singur dat ; drum hamiltonian: un drum elementar care trece prin toate nodurile grafului; drum eulerian: un drum simplu care con ine toate arcele grafului; lan : un drum n care arcele nu au neap rat acela i sens de parcurgere; circuit: un drum n care nodul ini ial coincide cu cel final; circuit elementar: un drum n care fiecare nod apare o singur dat , cu excep ia celui final, care coincide cu cel ini ial; circuit simplu: un drum n care fiecare arc apare o singur dat ; circuit hamiltonian: un circuit care trece prin toate nodurile grafului; ciclu: este un circuit n care arcele nu au neap rat acela i sens de parcurgere; ciclu elementar: un ciclu n care fiecare nod apare o singur dat , cu excep ia celui final, care coincide cu cel ini ial; graf par ial al unui graf G = (X,U): este un graf G'(X,U') cu U' U; subgraf al unui graf G = (X,+ ): este un graf G'(X',+ ') unde X' X i + '(xi) = +`(xi) X' pentru orice xi X';

3. ARBORI. Problema arborelui de valoare optimn acest subcapitol grafurile vor fi considerate neorientate.

3.1. No iunea de arboreUn arbore este un graf neorientat, finit, conex i f r cicluri. Grafurile din fig. 4.1. sunt arbori.

x1 x1 x1 a)

x1

x1

x1 x1

x1

x1 b) Figura 3.1

x1

x1 c)

Studiul arborilor este justificat de existen a n practic a unui num r mare de probleme care pot fi modelate prin arbori. Dintre acestea amintim:

1. construirea unor re ele de aprovizionare cu ap potabil (sau cu energie electric sau 2. 3. 4. 5. 6. 7. 8. 9. 10.termic etc) a unor puncte de consum, de la un punct central; construirea unor c i de acces ntre mai multe puncte izolate; desf urarea unui joc strategic; luarea deciziilor n mai multe etape (arbori decizionali); evolu ii posibile ale unui sistem pornind de la o stare ini ial ; construirea unei re ele telefonice radiale, a unei re ele de relee electrice; legarea ntr-o re ea a unui num r mare de calculatoare; organigramele ntreprinderilor; studiul circuitelor electrice n electrotehnic (grafe de fluen etc); schemele bloc ale programelor pentru calculatoare etc.

n toate problemele de mai sus se dore te ca, dintre muchiile unui graf neorientat, s se extrag arborele optim din mul imea tuturor arborilor care pot fi extra i din graful dat. Deoarece defini ia arborelui este dificil de aplicat pentru deciderea faptului c un graf este arbore sau nu ( i n special sunt greu de verificat conexitatea i mai ales existen a ciclurilor) exist mai multe caracteriz ri posibile ale unui arbore, acestea fiind date de teorema de mai os:Teorem . Dac H este un graf neorientat finit, atunci urm toarele afirma ii sunt echivalente:

1) H este arbore; 2) H nu con ine cicluri i, dac se unesc printr-o muchie dou noduri neadiacente, se formeazun ciclu ( i numai unul). Arborele este, deci, pentru o mul ime de noduri dat , graful cu num rul maxim de arce astfel nct s se p streze proprietatea c nu are cicluri); H este conex i dac i se suprim o muchie se creeaz dou componente conexe (arborele este graful conex cu num rul minim de arce); H este conex i are n-1 muchii; H este f r cicluri i are n-1 muchii; Orice pereche de noduri este legat printr-un lan i numai unul.

3) 4) 5) 6)

3.2. Algoritmi pentru g sirea arborelui de valoare optimVom da mai os trei algoritmi pentru determinarea unui graf par ial al grafului, care s fie arbore i pentru care suma valorilor arcelor sale s fie minim (sau maxim ). To i algoritmii descri i n continuare extrag arborele prin colectarea una cte una a muchiilor acestuia.

A. Algoritmul lui Kruskal

Pasul 1. Dintre toate muchiile grafului se alege muchia de valoare minim (maxim ). Dac minimuleste multiplu se alege la ntmplare una din muchiile respective. Deoarece acest "la ntmplare" trebuie cumva tradus n limbajul calculatorului, n cazul implement rii unui program bazat pe acest algoritm, vom perturba din start valorile muchiilor, la k muchii cu aceia i valoare V adunnd respectiv valorile I, 2I, ... , k I, unde I este foarte mic (n orice caz, kI mai mic dect diferen a dintre valoarea acestor arce si valoarea imediat superioar a unui arc), pozitiv. Pasul 2. Dintre toate muchiile r mase, se alege cea de valoare minim (maxim ); Pasul 3. Dintre toate muchiile r mase, se alege cea de valoare minim (maxim ), astfel nct s nu se formeze cicluri cu cele deja alese; Pasul 4. Se reia algoritmul de la pasul 3 pn se colecteaz n-1 muchii.

De i s-a demonstrat c algoritmul g se te ntotdeauna arborele optim, el are dezavanta ul c este foarte laborios (de fiecare dat trebuie calculat minimul unei mul imi mari sau foarte mari exist situa ii n practic n care graful are sute de mii de arce) i, n plus, trebuie aplicat un algoritm special ca s respect m condi ia de a nu se forma cicluri, la alegerea unui nou arc.O metod posibil este ca, dup ad ugarea fiec rui arc, s se mpart graful n componente conexe i s alegem apoi un arc care nu are ambele extremit ile n aceea i component conex . De asemenea este clar c , n cazul existen ei arcelor de valori egale, deoare se alege la ce ntmplare, exist mai multe variante de evolu ie a alegerii arcelor. Totu i, cu toate c pot fi mai multe grafuri la care se poate ajunge prin acest algoritm, ele vor avea toate aceea i valoare (minima (sau maxima) posibil ).

Pasul 1. Pentru fiecare nod se alege muchia adiacent de valoare minim (maxim ). Pasul 2. Se eviden iaz componentele conexe, existente n graful par ial format din arcele alese pnn acest moment.

B. Algoritmul lui Sollin

Pasul 3. Pentru fiecare component conex se alege muchia adiacent de valoare minim (maxim ).Prin muchie adiacent unei componente conexe n elegem o muchie care are o singur extremitate printre nodurile componentei respective. Pasul 4. Se reia algoritmul de la pasul 2 pn r mne o singur component conex . Aceasta este arborele optim c utat.

Acest algoritm asigur de asemenea g sirea arborelui optim, necesit mult mai pu ine calcule (la fiecare alegere se calculeaz minimul doar pentru muchiile adiacente unui singur nod), evit automat formarea ciclurilor, dar, pentru grafuri foarte mari, la un moment dat pot exista att de multe componente conexe care trebuie memorate succesiv, nct calculul devine greoi sau, pe calculator, dep e te posibilit ile de memorare ale calculatorului.

Pasul 1. Dintre toate muchiile grafului se alege cea de valoare minim (maxim ); Pasul 2. Dintre toate muchiile adiacente componentei conexe format din arcele alese pn n acestmoment, se alege cea de valoare minim (maxim ); Pasul 3. Se reia pasul 2 pn se colec ioneaz n-1 muchii.

C. O variant a algoritmului lui Kruskal

Algoritmul are toate avanta ele algoritmului lui Sollin i, n plus, lucreaz cu o singur component conex , fiind mult mai u or de implementat pe calculator i mult mai rapid n execu ie.4. Exemplu: Administra ia unei localit i montane a hot rt construirea unor linii de teleferic care s lege ora ul de cele 8 puncte turistice importante din jurul acestuia. n urma unui studiu au fost puse n eviden a toate posibilit ile i costurile de conectare a obiectivele turistice ntre ele i cu ora ul, acestea fiind prezentate n figura 4.1. Se cere g sirea variantei de construc ie de cost minim, care s asigure accesul din ora la oricare din obiectivele turistice.

P2 4 P1 3 P6 5 8 5 3 O 2 P7 6 8 8 2 7 9

P3 C.7 3

8 9 P5 4

P4 8 7 P8

Figura 4.1 RezolvareCondi ia de cost minim implic dou obiective:

1. S se construiasc minimul de arce necesare; 2. S se construiasc cele mai ieftine leg turi. Referitor la num rul de arce necesar, facem observa ia c , dac din ora se va putea a unge la orice obiectiv turistic, atunci se va putea a unge i de la orice sta iune la oricare alta (trecnd prin ora ), deci trebuie ca arcele alese pentru construc ie s formeze la un loc un graf conex. n concluzie, c ut m un graf par ial conex cu un num r minim de arce, adic un arbore. n plus, suma costurilor arcelor sale trebuie s fie minim . Vom aplica pe rnd cei trei algoritmi pentru g sirea acestuia:

A. Kruskal La primul pas poate fi ales unul din arcele OP3 sau OP7, ele avnd valoarea minim 2. Putem alege oricum primul arc dintre cele dou pentru c la al doilea pas va fi ales cel lalt. La pasul trei poate fi ales unul din arcele OP5, OP6 sau P1P6 care au valoarea minim 3. Nici n acest caz nu are vre-o importan ordinea alegerii, deoarece pot fi alese succesiv toate trei f r a se forma nici un ciclu. Al aselea arc poate fi ales dintre arcele P4P5 i P1P2, care au valoarea minim 4. Nici n acest caz nu are vre-o importan ordinea alegerii, deoarece pot fi alese succesiv ambele, f r a se forma nici un ciclu. Urm toarea valoare disponibil a unui arc este 5, dar arcul opt nu poate fi ales dintre arcele OP1, P6P7, de i au valoarea minim 5. Arcul OP1 nu poate fi ales deoarece s-ar forma ciclul OP1P6, iar P6P7 ar duce la ciclul OP6P7. Urm toarea valoare minim este 6, pentru arcul P5P7 dar nu poate fi ales deoarece se formeaz ciclul OP5P7. Valoarea urm toare, 7, o au arcele OP4, P2P3 i P 5P8. OP4 nu poate fi ales deoarece s-ar forma ciclul OP5P4. Arcul P 2P3 nu poate fi ales deoarece s-ar forma ciclul OP6P1P2P3. Arcul P5P8 nu formeaz nici un ciclu i el va fi al optulea arc ales. n acest caz, deoarece s-au adunat 8 arce ntr-un graf cu 9 noduri, am ob inut graful c utat.

Acest arbore este reprezentat n figura 4.2.P2 4 P1 2 3 3 P6 O 2 P7 4 3 P5 7 P8 P3 P4

Figura 4.2 B. Sollin Vom alege: pentru nodul O pentru nodul P1 pentru nodul P2 pentru nodul P3 pentru nodul P4 pentru nodul P5 pentru nodul P6 pentru nodul P7 pentru nodul P8p p p p p p p p p

arcul OP3 arcul P1P6 arcul P1P2 arcul OP3 arcul P4P5 arcul OP5 arcul P1P6 arcul OP7 arcul P5P8

Rezult graful par ial:P2 4 P1 2 3 P6 O 2 P7 Figura 4.3 4 3 P5 7 P8 P3 P4

Dup cum se vede, s-au format dou componente conexe: C1 = {P1,P2,P6} C2 = {O,P3,P4,P5,P7,P8}. Vom alege: pentru C1 p arcul OP6 pentru C2 p arcul OP6 i ob inem o singur component conex , care este arborele c utat. C. Varianta algoritmului lui Kruskal Succesiunea alegerii arcelor va fi: 1 2 3 4 5 6 7 8p p p p p p p p

OP3 OP7 OP6 OP5 P1P6 P1P2 P4P5 P5P8

5. Drumuri optime ntr-un grafn marea ma oritate a problemelor care pot fi modelate prin grafuri nu ne intereseaz numai dac exist sau nu leg turi ntre componentele reprezentate prin nodurile grafului ci i intensitatea acestora. Aceast intensitate are semnifica ia unei valori numerice (pozitive sau negative) asociate arcului corespunz tor leg turii a c rei intensitate o m soar . n aplica iile economice aceast valoare poate fi: lungimea drumului dintre dou localit i; costul parcurgerii rutei reprezentate prin arcul corespunz tor; durata parcurgerii rutei respective; cantitatea transportat pe ruta respectiv ; capacitatea maxim a rutei respective; c tigul realizat prin trecerea de la o stare la alta a sistemului; consum de energie pentru efectuarea trecerii respective; puncta realizat etc.

Una din problemele care poate ap rea n aceste situa ii este g sirea, pentru o anumit pereche de noduri (sau mai multe perechi), a drumului optim ntre acestea. Pentru formalizarea problemei vom introduce no iunea de valoare a unui drum, care este egal cu suma valorilor arcelor care l compun. Vom nota n continuare valoarea unui arc (xi,xj) cu v(x i,xj) sau cu vij. n aceste condi ii putem enun a problema drumului optim astfel: "Dat un graf G = (X,U) i o func ie care asociaz fiec rui arc o valoare real , s se g seasc , pentru o pereche dat de noduri, drumul (drumurile) de valoare optim (minim sau/ i maxim ) ntre cele dou noduri i valoarea acestuia (acestora)" Deoarece este vorba de g sirea minimului unei mul imi de numere reale, prima ntrebare care se pune este dac aceasta admite minim. Dac mul imea nodurilor grafului este infinit atunci pot exista o infinitate de drumuri elementare distincte ntre cele dou noduri i mul imea valorilor acestora poate avea orice form (nchis sau nu, m rginit sau nu) devenind foarte greu de caracterizat cazurile cnd minimul dorit exist . Deoarece totu i ma oritatea covr itoare a problemelor economice se modeleaz prin grafuri cu num r finit de noduri, ne vom limita n continuare doar la acestea. Un num r finit de noduri n atrage dup sine existen a unui num r finit de arce (celn -1

mult n2 ) i a unui num r finit de drumuri elementare ( cel mult n n!

k! ).k !1

1

Deoarece oric rui drum d i corespunde un drum elementar de (ob inut prin eliminarea tuturor subcircuitelor lui d) putem calcula valoarea oric rui drum ca sum ntre valoarea drumului elementar corespunz tor i valorile unor subcircuite ale sale, fiecare nmul it cu num rul de parcurgeri ale circuitului respectiv. Obs. 1. Dac n graf nu exist dect arce de valoare pozitiv atunci exist drum de valoare minim . Obs. 2. Dac n graf nu exist dect arce de valoare negativ atunci exist drum de valoare maxim . Obs. 3. Dac n graf nu exist circuite atunci exist i drum de valoare minim i drum de valoare maxim . Deoarece din cele de mai sus se sesizeaz importan a existen ei circuitelor ntr -un graf vom da n continuare un algoritm de depistare a existen ei circuitelor ntr -un graf: Pasul 1. Se construie te mul imea A format din nodurile pentru care toate arcele incidente sunt incidente spre interior ( noduri n care toate arcele "intr " sau, altfel spus, noduri din care nu "pleac " nici un arc). Pasul 2. Se g sesc toate nodurile care nu sunt din A pentru care toate arcele incidente au cealalt extremitate n A (noduri din care se poate "a unge" doar in A). Dac nu exist nici un astfel de arc se trece la pasul 4. Pasul 3. Se adaug arcele g site la pasul 2 la mul imea A apoi se reia algoritmul de la pasul 2, pentru noua mul ime A. Pasul 4. Dac A con ine mul imea tuturor nodurilor atunci graful nu con ine circuite. Dac au r mas noduri n afara lui A atunci graful con ine circuite.

Algoritmi de g sire a drumului optimDin cauza variet ii nelimitate a grafurilor posibile, nu exist un algoritm care s rezolve orice problem n timp util, dar s-au elaborat o mul ime de algoritmi, fiecare fiind cel mai eficace n anumite cazuri. Ace ti algoritmi pot fi grupa i n cinci categorii: 1. 2. 3. 4. 5. Algoritmi prin calcul matricial (Bellman-Kalaba, I. Tomescu, Bellman-Schimbell); Algoritmi prin a ust ri succesive: (Ford); Algoritmi prin induc ie (Dantzig); Algoritmi prin ordonare prealabil a vrfurilor grafului; Algoritmi prin extindere selectiv (Di kstra).

n continuare vom prezenta trei dintre ace ti algoritmi.

A. Algoritmul lui Ford simplificatAlgoritmul lui Ford simplificat se aplic doar n grafuri care nu admit circuite. Cu a utorul lui se g se te drumul de valoare optim ntre dou noduri fixate xi i x . Printr-o eventual renumerotare a nodurilor putem presupune c nodul de la care porne te drumul este x1, care va fi numit nod ini ial, iar nodul la care se termin este xn, numit nod final. Algoritmul este: Pasul 1. I se d vrfului ini ial valoarea 0 (zero): w(x1 ) = 0 Pasul 2. Se construie te mul imea A format din nodul ini ial: A = {x1} Pasul 3. Se analizeaz nodurile din afara mul imii A. Dac exist noduri n care se poate a unge prin arce directe doar de la nodurile mul imii A, acestea se adaug la mul imea A, cu valoarea: wx x w(xi) = min v , x i , n problemele de minim sau w(xi) = max v , x i , n problemele de maxim wx x x x ,x i x x ,x i

apoi se trece la pasul 4 Dac nu exist nici un nod de acest tip atunci nu exist nici un drum de la x1 la xn. STOP Pasul 4. Se analizeaz mul imea A: Dac xn A atunci valoarea sa reprezint valoarea drumului de valoare optim de la x1 la xn. Pentru g sirea acestui drum se porne te napoi de la nodul final xn i se g sesc nodurile x k1 , x k 2 , ..., x k r care formeaz drumul c utat, unde x k1 = xn, x k r = x1 i fiecare alt indice ki+1 este cel pentru care: w( x k i 1 ) + v( x k i 1 , x k i ) = w( x k i ) STOP Dac xn A se reia algoritmul de la pasul 3.

%

(

&

(

&

))

''

Exemplu: Presupunem dat graful orientat de mai os, n care se dore te g sirea drumului de valoare minim de la nodul x1 la nodul x9. x24 x1 3 x6 5 8 5 3 x5 2 x7 6 8 8 2 9 x8 7 x9 7 9 x3 7 9 3 4 3 x4

Pentru acest graf vom avea succesiv:

1) pas1: w(x1 ) = 0 2) pas2: A = {x1} 3) pas3: Nodurile n care se poate a unge doar din x1 : {x5 } { w{x5) = min( w(x1 ) + v(x1,x5)) = 0 + 5 = 5 4) pas4: x9 A 5) pas3: A = {x1,x5 } i nodurile n care se poate a unge prin arce directe doar din x1 i x5 sunt: {x6 }{ w{x6) = min( w(x1 ) + v(x1,x6), w(x5) + v(x5,x6)) = min(0 + 3 , 5 + 3) = 3 6) pas4: x9 A 7) pas3: A = {x1,x5,x6 } i nodurile n care se poate a unge prin arce directe doar din x1, x5 i x6 sunt: {x2,x7 } { w{x2) = min( w(x1) + v(x1,x2), w(x5 ) + v(x5,x2), w(x6) + v(x6,x2 )) = min(0 + 4,5 + 8,3 + 8) =4 w{x7) = min( w(x5 ) + v(x5,x7), w(x6) + v(x6,x7)) = min(5 + 2,3 + 5) = 7 8) pas4: x9 A 9) pas3: A = {x1,x2,x5,x6,x7 } i nodurile n care se poate a unge prin arce directe doar din x1, x2, x5, x6 i x7 sunt: {x3,x8} { w{x3) = min( w(x2 ) + v(x2,x3), w(x5) + v(x5,x3)) = min(4 + 7,5 + 2) = 7 w{x8) = min( w(x5 ) + v(x5,x8), w(x7) + v(x7,x8)) = min(5 + 9,7 + 6) = 13 10) pas4: x9 A 11) pas3: A = {x1,x2,x3,x5,x6,x7,x8 } i nodurile n care se poate a unge prin arce directe doar din x1, x2,x3,x5, x6, x7 i x8 sunt: {x4 } { w{x4) = min( w(x2) + v(x2,x4), w(x3 ) + v(x3,x4 ),w(x5) + v(x5,x4), w(x8 ) + v(x8,x4)) = min(4 + 9,7 + 3,5 + 7,13 + 4) = 10 12) pas4: x9 A 13) pas3: A = {x1,x2,x3,x4,x5,x6,x7,x8} i nodurile n care se poate a unge prin arce directe doar din x1, x2, x3, x4, x5, x6, x7 i x8 sunt: {x9 } { w{x9 ) = min( w(x3) + v(x3,x9), w(x4) + v(x4,x9 ), w(x7) + v(x7,x9), w(x8 ) + v(x8,x9)) = min(7 + 9, 10 + 3, 7 + 8, 13 + 7) = 13 14) pas4: x9 A i urmeaz s g sim drumul care are lungimea 13. Avem succesiv: w(x9) = w(x4) + v(x4,x9 ) w(x4) = w(x3) + v(x3,x4 ) w(x3) = w(x5) + v(x5,x3 ) w(x5) = w(x1) + v(x1,x5 ) deci drumul c utat este: x1 p x5 p x3 p x4 p x9

Observa ia 1. Dac graful are un circuit atunci se poate demonstra u or c nu vom putea da valoare nici unui nod al acestuia i dac exist vreun drum de la x1 la xn care trece prin unul din nodurile circuitului nu vom putea da valoare nici lui x n, cu toate c exist drum de la x1 la xn. Observa ia 2: Algoritmul necesit pentru memorare i manipulare doar cunoa terea, pentru fiecare nod, a nodurilor spre care "pleac " arce din acesta i valorile acestor arce, fiind mult mai u or de aplicat sau implementat pe calculator. El are ns dezavanta ul c se poate aplica doar n grafuri f r circuite.

B. Algoritmul Ford generalizatAlgoritmul lui Ford generalizat a fost creat cu scopul de a putea g si drumul optim i n grafurile care au circuite. Cu a utorul lui se g se te drumul de valoare optim ntre dou noduri fixate xi i x . Printr-o eventual renumerotare a nodurilor putem presupune c nodul de la care porne te drumul este x1, care va fi numit nod ini ial, iar nodul la care se termin este xn, numit nod final. Algoritmul este: Pasul 1. I se d vrfului ini ial valoarea 0 (zero): w(x0 ) = 0 i tuturor celelalte valoarea +g (ntro problem de minim) sau -g (ntr-o problem de maxim). Pasul 2. n ordinea cresc toare a indicilor nodurilor se calculeaz pentru fiecare nod, pe baz fostelor valori, noile valori cu formula: * w (xi) = min w x i , min j v j , x i n problemele de minim wx x xj j , x i x * sau w (xi) = max w x i , max v , x i n problemele de maxim wx x x x , x i * Pasul 3. Se compar noile valori w (xi) cu fostele valori w(xi): Dac w*(xi ) = w(xi) pentru orice nod xi atunci: dac w(xn) < g (la problema de minim) sau w(xn) > -g (la problema de maxim), valoarea nodului xn reprezint valoarea drumului de valoare minim (maxim ) de la x1 la xn. Pentru g sirea acestui drum se porne te napoi de la nodul final xn i se g sesc nodurile x k1 , x k 2 , ..., x k r care formeaz drumul c utat, unde x k1 = xn, x k r = x1 i fiecare alt indice ki+1 este cel pentru care: w( x k i 1 ) + v( x k i 1 , x k i ) = w( x k i ) STOP dac w(xn) = +g (-g) atunci nu exist nici un drum de la x1 la xn. STOP Dac exist cel pu in un nod pentru care w*(xi ) < w(xi ) se reia algoritmul de la pasul 2 pentru noile valori ale vrfurilor.

Observa ie: Algoritmul poate g si drumul i n grafuri cu circuite dar este evident mult mai lent dect cel simplificat. Pentru scurtarea duratei de execu ie se poate modifica algoritmul n sensul c o valoare nou calculat a unui vrf va fi folosit imediat ca atare la calculul noilor valori ale celorlalte, nu doar dup ce se calculeaz noile valori ale tuturor vrfurilor.

1

1

22

0

n algoritmul Ford simplificat, pentru a g si valoarea nodului final, deci a drumului minim, plec m de la nodul ini ial n toate direc iile posibile, p strnd de fiecare dat toate nodurile analizate. Acest fapt duce la un consum inutil de timp, deoarece foarte multe din aceste noduri nu vor face parte din drumul optim. Pentru a elimina acest nea uns, algoritmul lui Di kstra ncearc s p streze, la fiecare itera ie, mul imea minim de noduri care s le con in pe toate cele care vor forma efectiv drumul optim. n plus, algoritmul se poate aplica i n drumuri cu circuite. Ca un minus este faptul c se aplic doar la probleme de minim. Algoritmul are urm torii pa i: Pasul 1. I se d vrfului ini ial valoarea 0 (zero): w(x0 ) = 0 Pasul 2. Se construie te mul imea A format din nodul ini ial: A = {x1} Pasul 3. Se analizeaz nodurile din afara mul imii A. Dac exist noduri n care se poate ajunge prin arce directe de la noduri din A (nu doar de la nodurile mul imii A, ca la algoritmul lui Ford simplificat) se calculeaz pentru toate acestea: w(xi) = min j v j , x i n problemele de minim wx x x jA x j ,x i

D. Algoritmul lui Dijkstra

dar, spre deosebire de algoritmul lui Ford simplificat, se ad ug la mul imea A doar cel pentru care se ob ine valoarea minim , apoi se trece la pasul 4. Dac nu exist nici un nod de acest tip atunci nu exist nici un drum de la x1 la xn. STOP Pasul 4. Se analizeaz mul imea A: Dac xn A atunci valoarea sa reprezint valoarea drumului de valoare optim de la x1 la xn. Pentru g sirea acestui drum se porne te napoi de la nodul final xn i se g sesc nodurile x k1 , x k 2 , ..., x k r care formeaz drumul c utat, unde x k1 = xn, x k r = x1 i fiecare alt indice ki+1 este cel pentru care: w( x k i 1 ) + v( x k i 1 , x k i ) = w( x k i ) STOP Dac xn A se reia algoritmul de la pasul 3.

Exemplu Vom aplica algoritmul la acela i graf folosit la ceilal i algoritmi, pentru a putea face compara ii:1) pas1: w(x1 ) = 0 2) pas2: A = {x1 } 3) pas3: Nodurile n care se poate a unge i din x1 : {x2, x5, x6} { w{x2) = min( w(x1 ) + v(x1,x2)) = 0 + 4 = 4 w{x5) = min( w(x1 ) + v(x1,x5)) = 0 + 5 = 5 w{x6) = min( w(x1 ) + v(x1,x6)) = 0 + 3 = 3 min(w{x2),w{x5 ),w{x6 )) = w{x6) = 3 4) pas4: x9 A 5) pas3: A = {x1,x6 } i nodurile n care se poate a unge prin arce directe din x1 sau x6 sunt: {x2,x5,x7 }{ w{x2) = min( w(x1 ) + v(x1,x2), w(x6) + v(x6,x2)) = min(0 + 4 , 3 + 8) = 4 w{x5) = min( w(x1 ) + v(x1,x5)) = min(0 + 5) = 5 w{x7) = min( w(x6 ) + v(x6,x7)) = min(3 + 5) = 8 min(w{x2),w{x5 ),w{x7 )) = w{x2) = 4 5) pas4: x9 A

3

6) pas3: A = {x1,x2,x6} i nodurile n care se poate a unge prin arce directe din x1, x2 sau x6 sunt: {x3,x4,x5,x7} { w{x3) = min( w(x2 ) + v(x2,x3)) = min(4 + 7) = 11 w{x4) = min( w(x2 ) + v(x2,x4)) = min(2 + 9) = 11 w{x5) = min( w(x1 ) + v(x1,x5)) = min(0 + 5) = 5 w{x7) = min( w(x6 ) + v(x6,x7)) = min(3 + 5) = 0 min(w{x3 ),w{x4 ),w{x5 ),w{x7 )) = w{x5 ) = 5 7) pas4: x9 A 8) pas3: A = {x1,x2,x5,x6} i nodurile n care se poate a unge prin arce directe din x1, x2, x5, x6 i x7 sunt: {x3,x4,x7,x8 } { w{x3) = min( w(x2 ) + v(x2,x3), w(x5) + v(x5,x3)) = min(4 + 7,5 + 2) = 7 w{x4) = min( w(x2 ) + v(x2,x4), w(x5) + v(x5,x4)) = min(4 + 9,5 + 7) = 12 w{x7) = min( w(x5 ) + v(x5,x7), w(x6) + v(x6,x7)) = min(5 + 2,3 + 5) = 7 w{x8) = min( w(x5 ) + v(x5,x8)) = min(5 + 9) = 14 min(w{x3 ),w{x4 ),w{x7 ),w{x8 )) = w{x3 ) = w{x7) = 7 9) pas4: x9 A 10) pas3: A = {x1,x2,x3,x5,x6,x7 } i nodurile n care se poate a unge prin arce directe din x1, x2, x3, x5, x6, i x7 sunt: {x4,x8,x9 } { w{x4) = min( w(x2 ) + v(x2,x4), w(x3) + v(x3,x4),w(x5) + v(x5,x4 )) = min(4 + 9,7 + 3,5 + 7) =10 w{x8) = min( w(x5 ) + v(x5,x8), w(x7) + v(x7,x8)) = min(5 + 9,7 + 6) = 13 w{x9) = min( w(x3 ) + v(x3,x9), w(x7) + v(x7,x9)) = min(7 + 9,7 + 8) = 15 min(w{x4 ),w{x8 ),w{x9 )) = w{x4 ) = 10 11) pas4: x9 A 12) pas3: A = {x1,x2,x3,x4,x5,x6,x7 } i nodurile n care se poate a unge prin arce directe din x1, x2, x3, x4, x5, x6, i x7 sunt: {x8,x9 } { w{x9) = min( w(x3 ) + v(x3,x9), w(x4) + v(x4,x9), w(x7) + v(x7,x9 )) = min(7 + 9,10 + 3,7+8)=13 w{x8) = min( w(x5 ) + v(x5,x8), w(x7) + v(x7,x8)) = min(5 + 9,7 + 6) = 13 min(w{x8 ),w{x9 )) = w{x8 ) = w{x9 ) = 13 12) pas 4: x9 A i urmeaz s g sim drumul care are lungimea 13. Avem succesiv: w(x9) = w(x4) + v(x4,x9 ) w(x4) = w(x3) + v(x3,x4 ) w(x3) = w(x5) + v(x5,x3 ) w(x5) = w(x1) + v(x1,x5 ) deci drumul c utat este: x1 p x5 p x3 p x4 p x9

6. Re ele de transportntr-o mare varietate de situa ii concrete din practica economic se pune problema deplas rii unei cantit i de materie, energie, informa ie etc., din anumite locuri, numite surse, n alte locuri, numite destina ii. Pentru realizarea acestui transport se folosesc o serie de trasee, numite rute de leg tur . Unit ile indivizibile ale cantit ii Q, care se deplaseaz de-a lungul rutelor ntre surse i destina ii, se numesc unit i de flux, iar ansamblul rutelor, surselor, destina iilor i, eventual, a altor puncte intermediare se nume te re ea de transport. Una dintre acestea este problema determin rii cantit ii maxime (minime) care poate fi transportat de la surse la destina ii, n situa ia n care sursele dispun de cantit i limitate (inferior sau superior), destina iile au un necesar sau o putere de absorb ie limitat inferior sau superior iar pe fiecare rut se poate transporta doar o cantitate cuprins ntre anumite limite. Pentru studiul matematic al acestei situa ii vom da defini iile matematice ale obiectelor implicate n problem i ipotezele modelului.Defini ia 1: Se nume te re ea de transport standard un graf finit, simplu, conex, f r bucle G = (X,U) care are urm toarele propriet i:

1. Exist

i este unic s X a.. intrarea re elei de transport; i este unic t X a.. ie irea re elei de transport;

U s { , U s ! (din care doar "ies" arce), numit

2. Exist

U = , t

{ (n care doar "intr " arce) numit t

3. S-a definit o func ie c: U p R+ care asociaz fiec rui arc u un num r strict pozitiv cunumit capacitatea arcului. Observa ie: Este clar c exemplele obi nuite au doar rareori o singur surs i o singur destina ie. Totu i, printr-o tehnic foarte simpl , orice re ea de transport se poate aduce la forma standard:

1. Dac sunt mai multe surse se introduce un nod suplimentar din care "pleac " cte unarc spre fiecare surs ( i numai spre acestea), iar capacit ile acestor arce vor fi egale cu disponibilurile surselor corespunz toare;

2. Dac sunt mai multe destina ii se introduce un nod suplimentar spre care "pleac " cteun arc din fiecare destina ie ( i numai din acestea), iar capacit ile acestor arce vor fi egale cu necesarurile destina iilor corespunz toare; Defini ia 2: Se nume te flux ntr-o re ea de transport R = (X,U) o func ie N: U p R+ care are urm toarele propriet ile:

P1. 0 e Nu e cu oricare ar fi u din U; valoarea Nu se nume te flux al arcului u

P2.

u U i

N

u

!

u U i

N

u

oricare ar fi i { s,t (suma fluxurilor arcelor care "intr " ntr-

un nod i este egal cu suma fluxurilor arcelor care "ies" din acest nod, cu excep ia nodului ini ial i al celui final. Defini ia 3: Se nume te valoare a fluxului suma fluxurilor arcelor care "pleac " din nodul ini ial s i se noteaz cu *. Defini ia 4: Se nume te flux de valoare maxim ntr-o re ea un flux N n aceast re ea, cu proprietatea c , pentru orice alt flux N' pe aceast re ea, avem * u *'.

Valoarea fluxului de valoare maxim reprezint cea mai mare cantitate care se poate transporta efectiv pe re ea, de la surse la destina ii. Economic vorbind, ne intereseaz , referitor la o re ea, r spunsurile la urm toarele ntreb ri: 1. Putem transporta ntreaga cantitate necesar la destina ii? 2. Dac da, cum transport m efectiv aceast cantitate de la surse la destina ii? 3. Dac nu, din ce motiv nu putem realiza acest transport? 4. Cum putem nl tura cu eforturi minime acest motiv? R spunsul la primele dou ntreb ri se poate afla prin g sirea fluxului de valoare maxim i compararea valorii lui cu suma necesarurilor destina iilor. n plus, valoarea acestuia pe un arc reprezint cantitatea care trebuie transportat pe ruta respectiv , pentru a ob ine aceast valoare a fluxului. R spunsul la ultimele dou ntreb ri porne te de la observa ia c cea mai mare cantitate care poate traversa re eaua de la un cap la altul este egal cu dimensiunea celui mai ngust loc de trecere prin re ea. Dac vrem, deci, s m rim fluxul va trebui s l rgim tocmai acest cel mai ngust loc de traversare al re elei. Pentru formalizarea considera iilor de mai sus vom introduce no iunea de t ietur ntr-o re ea:Defini ia 5: Dat o re ea de transport G(X,U) cu s = nodul ini ial i t = nodul final, se nume te t ietur n re ea o parti ie a mul imii vrfurilor re elei de transport, format din dou submul imi V i W (VW = , VW = X) astfel nct s V i t W.

O t ietur poate fi privit , intuitiv, ca o sec iune a re elei, care las nodul ini ial cu o submul ime din noduri ntr-o parte, nodul final cu restul nodurilor n cealalt parte i reteaz toate arcele care trec dintr-o parte n cealalt . A cunoa te o t ietur este echivalent cu a cunoa te care sunt elementele celor dou mul imi, V i W, care formeaz parti ia.Vom nota o t ietur prin T = (V,W), convenind ca mul imea scris pe prima pozi ie s con in nodul ini ial s al re elei iar cea scris pe a doua, nodul final t.

Defini ia 6: Se nume te capacitate a unei t ieturi T = (V,W) ntr-o re ea de transport G(X,U), notat C(T), suma capacit ilor tuturor arcelor care au extremitatea ini ial n V i cea final n W. C(T) = cuu ! x i ,x j xi x jW

Defini ia 7: Se nume te t ietur de valoare minim ntr-o re ea o t ietur T n aceast re ea, cu proprietatea c , pentru orice alt t ietur T' n aceast re ea, avem C(T) e C(T').

Urm toarele teoreme fac leg tura matematic t ieturile sale:

Teorema 1. Dat o t ietur T = (V,W) i un flux N ntr-o re ea de transport avem:

sau, altfel spus, valoarea unui flux oarecare este egal cu suma fluxurilor arcelor care trec de la V la W din care se scade suma fluxurilor arcelor care trec invers, de la W la V, oricare ar fi t ietura T = (V,W). Corolar: ntr-o re ea de transport valoarea oric rui flux este mai mic sau egal dect valoa-rea oric rei t ieturi. Demonstra ie: Fie T o t ietur oarecare i N un flux oarecare. Avem succesiv:*=

Corolar: ntr-o re ea de transport valoarea fluxului maxim este mai mic sau egal dect valoarea t ieturii minime.

6

6

6

u ! xi ,x j xi x jW

N

u

u ! x i ,x j x i W x j

N

u

e

u ! x i ,x j xi x jW

N

u

e

5

u ! x i ,x x i V x W

u ! xi ,x x i W x V

u ! x i ,x j x i x jW

5

5

*=

N

u

4

dintre fluxurile unei re ele

i

N

u

5

c

u

= C(T)

6

Dac fluxul N este maximal atunci exist o t ietur de capacitate egal cu valoarea fluxului.Demonstra ie: Fie N un flux maximal. Introducem urm torul procedeu de marcare a vrfurilor: Pasul 1. Se marcheaz nodul ini ial s cu 0(zero); Pasul 2. Pentru fiecare vrf marcat xi se marcheaz cu: y [+xi] toate vrfurile nemarcate xj pentru care exist arcul (xi,xj) i N(xi,xj) < c(xi,xj) (adica nodurile spre care mai e loc pentru a se transporta ceva din x i);y

Teorema lui Ford-Fulkerson.

[xi] toate vrfurile nemarcate xj pentru care exist arcul (xj,xi) i N(xj,xi) > 0 (adic toate nodurile spre care pleac deja ceva din xi);

Pasul 3. Se repet pasul 2 pn nu mai poate fi marcat nici un vrf. Dac vrful final t ar fi marcat, atunci ncepnd de la acesta, am putea construi lan ul x k1 , x k 2 , ..., x k r unde x k1 = s, x k r = t i marca ul oric rui vrf x k i 1 este + x k i sau x k i . Ad ugnd la fluxul fiec rui arc al lan ului de tipul ( x k i , x k i 1 ) valoarea:( = min(

x k i ,x k i 1

min

cx k , x k N x k , x k

, x min ,xi i 1 i i 1 k i 1

ki

N x k i , x k i 1 )

i sc znd din fluxul fiec rui arc de tipul ( x k i 1 , x k i ) aceea i valoare (, ob inem un flux de valoare * + (, deci fluxul N nu ar fi maximal. n concluzie vrful t nu va fi marcat. Fie t ietura T = (V,W), unde V este format din mul imea nodurilor marcate iar W din cele nemarcate. n acest caz, pentru fiecare arc (xi,x ) care "traverseaz " t ietura avem: dac xi V atunci N(xi,x ) = c(xi,x ) deoarece nodul x nu e marcat dac xi W atunci N(xi ,x ) = 0 deoarece nodul xi nu e marcat

n acest caz avem:

i teorema e demonstrat .

Teorema lui Ford-Fulkerson poate stabili doar valoarea fluxului maxim dar nu d o metod de g sire a acestuia. Pentru a rezolva problema g sirii fluxului de valoare maxim se poate folosi algoritmul lui Ford-Fulkerson. Pentru expunerea acestuia vom introduce i no iunile de: arc saturat = un arc pe care fluxul este egal cu capacitatea; drum complet = un drum de la nodul ini ial s la nodul final t care con ine cel pu in un arc saturat; flux complet = un flux pentru care orice drum de la nodul ini ial s la nodul final t este complet.

@A

A

u ! x i ,x xi x W

u ! x i ,x xi x W

u ! xi ,x x i W x

A

[email protected]

[email protected]

C(T) =

c

u

=

N

u

N

u

=*

7

8

8

A

9

8

Algoritmul lui Ford-FulkersonETAPA I Se determin un flux complet. Pasul 1. Se numeroteaz nodurile re elei de transport astfel nct x1 = s i xn = t; Pasul 2. Se asociaz grafului fluxul nul (Nu = 0 pentru orice arc u din graf); Pasul 3. n ordine lexicografic , se ia pe rnd fiecare drum D de la nodul ini ial la cel final, se calculeaz valoarea (D = minc u N u i se adaug la fluxul de pe fiecare arc aluD

drumului. Arcul(arcele) unui drum D pentru care s-a ob inut valoarea minim (D va fi dup aceast ad ugare, n mod evident, saturat i deci drumul D va fi complet. Dup epuizarea tuturor drumurilor se ob ine un flux complet, de valoare * = ETAPA II Se determin fluxul maxim Pasul 4. Se marcheaz nodul ini ial s cu 0(zero); Pasul 5. Pentru fiecare vrf marcat xi se marcheaz cu: y [+xi ] toate vrfurile nemarcate x pentru care exist arcul (xi,x ) i N(xi ,x ) < c(xi,x ) (adica nodurile spre care mai e loc pentru a se transporta ceva din xi); y [xi ] toate vrfurile nemarcate x pentru care exist arcul (x ,xi ) i N(x ,xi) > 0 (adic toate nodurile spre care pleac de a ceva din xi); Pasul 6. Se repet pasul 5 pn este marcat nodul final sau pn cnd nu mai poate fi marcat nici un vrf; Pasul 7. Dac nodul final nu a fost marcat atunci fluxul este maxim i algoritmul se opre te, n caz contrar trecndu-se la pasul 8; Pasul 8. Construim un lan ul L = x k1 , x k 2 , ..., x k r unde x k1 = s, x k r = t i marca ul oric rui vrf x k i 1 este + x k i sau x k i . Se calculeaz :(L = min(

(D .D

x k i ,x k i 1

min

cx k , x k N x k , x k

, x min ,xi i 1 i i 1 k i 1

ki

N x k i , x k i 1 )

care se adaug la fluxul fiec rui arc al lan ului de tipul ( x k i , x k i 1 ) fluxul fiec rui arc de tipul ( x k i 1 , x k i ). Pasul 9. Se terge marca ul i se reia algoritmul de la pasul 4.

i se scade din

n final, t ietura de valoare minim este cea n care V = mul imea nodurilor marcate iar W = mul imea nodurilor nemarcate. Observa ia 1. Algoritmul nu asigur ntotdeauna g sirea fluxului maxim, deoarece se poate ca cre terea fluxului la fiecare itera ie s se fac cu cantit i din ce n ce mai mici astfel nct suma lor s nu ating niciodat marginea superioar dat de valoarea t ieturi minime, i algoritmul avnd o infinitate de pa i. Teorema de mai os d o condi ie suficient pentru ca algoritmul s se termine ntr-un num r finit de pa i: Teorem Dac toate capacit ile rutelor re elei sunt numere ra ionale atunci algoritmul lui Ford-Fulkerson are un num r finit de pa i.

C

C

E

B

D

B

D

Tema: Problema liniar . Interpretarea geometric . Intervaluri de stabilitate a planului optim lay y

variatia

func iei obiectiv termenelor liberi

Problem . Consider m o unitate economic care fabric produsele A i B. Pentru ob inerea lor se utilizeaz trei resurse: R1, R2, R3. n tabelul de mai os se dau consumurile specifice i cantit ile disponibile din cele trei resurse, precum i pre urile de vnzare ale celor dou produse.Matricea tehnologic Resurse Produsul A R1 R2 R3 Pre de vnzare (lei) Pre de vnzare (lei) 2 6 6 50 40 Produsul B 4 4 0 60 80 1600 2400 1800 Volumul resurselor

Scopul este de a afla planul optim de produc ie ree ind din restric iile problemei date. Solu ie: Func ia obiectiv este z=f(x1, x2)=50x1+60x2. Modelul matematic pe baza c ruia se stabile te programul optim de produc ie are forma: MAX z ! 50x1 60x 2 2 x1 4 x2 e 1600 6 x1 4 x2 e 2400 x e 1800 6 1 1 u 0, x 2 u 0 x Rezolvarea modelului:Identific m x1 , x2 cu abscisa, respectiv ordonata unui punct din planul raportat la un sistem ortogonal de axe. Vom pune n coresponden dreptele L1, L2, L3, care corespund sistemului ortogonal de axe, fig. 1. n urma calculelor ( d m lui x1 valoarea 0 i calcul m x2, apoi calcul m x2 dup macela i algoritm) ob inem coordonatele dreptelor: L1 trece prin punctele (0, 400) i (800, 0); L2 trece prin punctele (0, 600) i (400, 0); L3 trece prin punctele (300, 0).

Este cunoscut faptul c mul imea punctelor din plan ale c ror coordonate satisfac prima restric ie coincide cu unul din semiplanele determinate de dreapta L1 de ecua ia 2x1+4x2=1600. Mai exact, este vorba de semiplanul care con ine originea (0,0) , deoarece coordonatele acestuia satisfac evident prima restric ie. Analog vom prezenta celelalte semiplane care corespund restric iilor dreptelor L2 i L3. Solu iile admisibile ale problemei se identific cu punctele comune, adic solu iile probelmei se con in n setul multimii ; , (vom nota prin ; figura OABCD). Func ia obiectiv z formeaz o mul ime de drepte paralele care intersecteaz sau nu mul imea ; . De exemplu, lu m puncte din interiorul mul imii, situate pe dreapta z=50x1+60x2 =300 (600), (900), care reprezint diferite combina ii ale solu iilor x1, x2 care dau func iei obiectiv z aceea i valoare 300; (600;900). Examinnd acest exemplu putem deduce urm toarele concluzii: 1. Mul imea ; este convex , adic o dat cu dou puncte con ine i segmentul care le une te. O consecin a acestei propriet i este c solu ia optim , dac exist , se g se te pe frontiera mul imii ; . 2. Frontiera lui ; (in exemplu prezentat) este un contur poligonal cu un num r finit de vrfuri i o solu ie optim care se g se te neap rat ntr-un vrf al poligonului. Aceste concluzii sunt veridice i n cazul problemelor cu dou sau trei variabile (mul imea solu iilor admisibile putnd fi vizualizat n planul R sau spa iul R ) care au constituit sursa ntregii teorii a program rii liniare.2 3

Fig. 1

3. Determin m valorile gradientului problemei din func ia obiectiv z=50x1+60x2, adic deriv m z si ob inem vector (50;60), i le depunem pe grafic. In fig. 1 este reprezentat de vectorul ON. 4. Ne deplas m n direc ia gradientului, n cazul maximiz rii func iei z (n cazul minimiz rii, antigradient), pentru a ob ine solu ia optim .

5. Solu ia problemei n cazul max va fi punctul extremal din setul ; , n direc ia grad (n cazul min, solu ia va fi punctul extremal, n direc ia opus a grad). 6. Este evident ca pentru problema noastra solutia se contine in setul ; , conform fig.2 solutia noastra in urma deplasarii gradientului este punctul B.

Fig. 2 7. Apoi vom g si coordonatele punctului B, i valoarea func iei z. Acest punct este determinat de intersec ia liniilor L1, L2, iar coordonatele lui fiind reprezentate de urm torul sistem : 2 x1 4 x2 ! 1600 6 x1 4 x2 ! 2400 Solu ia sistemului este: x1=200, zmax=z(B)=50*200+60*300=28000. Rezultatele care se ob in vor fi: x1*=200, x2*=300, zmax=28000. Concluzie: n final, n scopul maximiz rii venitului firmei, care de ine un maxim de 28000 lei, firma trebuie s produc 200 unit i de produsul A i 300 unit i de produsul B si in acest caz vom obtine un profit maxim de 28000 lei. Not : n rezolvare problemelor de LP se pot ntlni patru situa ii: 1. 2. 3. 4. Exist solu ia optima unic . Exist solu ii optime alternative sau multiple. Problema de LP nu are solu ii. Problema nu are optim finit. x2=300, i valoarea func iei obiectiv este

Problema liniara din caiet. Problema directa si problema dula Consideram ca o unitate economica care fabrica produsele A si B. Pentru obtinerea lor se utilizeaza 3 resurse R1; R2; R3. In tabel se dau consumurile specifice si cantitatile disponibile din cele 3 resurse, precum si preturile de vinzare ale celor 2 produse:

Resurse R1 R2 R3 Pret de vinzare (lei) Pret de vinzare (lei) Produsul A 2 6 6 50 40

Matricea tehnologica Produsul B 4 4 0 60 80

Volumul resurselor 1600 2400 1800

Scopul este de a afla planul optim de productie reiesind din restrictiile problemei date Modelarea problemei: X1 volumul produsului A X2 volumul produsului B Solutie: f-ia obiectiv : max

modelul matematic pe baza caruia se stabileste programul optim de productie are forma:

Aflam coordonatele dreptelor: (inlocuim in ecuatii pe rind fiecare x cu 0 si il aflam pe celalalt) L1: (0;400); (800;0) L2: (0;600); (400;0) L3: (300;0) Depunem liniile pe grafic si obtinel planul optim de productie/setul solutiilor admisibile (acest plan ne arata totalitatea combinatiilor posibile de producere) Calculam gradientul:

Solutia (punctul) optima va fi pct-ul extrimal din setul solutiilor admisibile in directia grad z. Aflam coordonatele pct-lui optim, vom rezolva sistemul format din ecuatiile liniilor, la intersectia carora se afla punctul, inlocuim in functia obiectiv solutiile x1 si x2 obtinute din sistem si vom afla profitul. Problema duala F-ia obiectiv (este inversa f-iei obiectiv din problema primara):

Q:

sau

...

...

...

...

... ... ... ... ... ... ...

...

Scop economic: de a avea profit maxim utilizind cantitatea optima de resurse (pt o unitate de produs X este nevoie de resurse) Valorile optime ale f-iei directe si duale coincid Consecintele dualitatii:

Forma detaliata: (restrictiile)

Forma aditiva:

Forma matriciala: