Drum Critic

  • View
    219

  • Download
    0

Embed Size (px)

Text of Drum Critic

  • Capitolul 1

    Retele de activitate. Metoda

    drumului critic

    1.1 Notiunea de graf

    Fie X o multime nevida si cel putin numarabila de elemente numitenoduri sau varfuri.

    Definitia 1.1.1 Numim graf perechea (X,), unde X X, adica omultime de perechi ordonate sau nu de elemente din X.

    Daca X este o multime finita, atunci graful (X,) se numeste graf

    finit, n caz contrar se zice ca avem un graf infinit.

    Definitia 1.1.2 Daca toate perechile distincte din sunt ordonate, graful se

    numeste orientat. In cazul contrar, graful se numeste neorientat.

    Pentru un graf orientat (X,) perechea ordonata (x, y) , x, y X,se numeste arc, x fiind extremitatea initiala, iar y extremitatea finalaa arcului. In cazul unui graf neorientat o pereche neordonata (x, y) ,x, y X se numeste muchie.

    Observatia 1.1.1 In afara grafurilor din Definitia ?? mai exista si grafuri

    n care multimea consta atat din arce cat si din muchii. Aceste grafuri se

    numesc grafuri mixte.

    In continuare noi o sa lucram numai cu grafuri orientate si finite, faraa mai specifica acest lucru, mentionand totusi n cateva locuri si denumireanotiunilor corespunzatoare de la grafurile neorientate.

    Un graf orientat si finit va fi notat prin (X,), undeX = {x1, x2, . . . , xn}va reprezenta multimea varfurilor, iar multimea arcelor.

    Un graf (X,) se reprezinta geometric n modul urmator:a) fiecare varf este reprezentat printr-un punct din plan;b) fiecare arc (xi, xj) se reprezinta printr-o linie (dreapta sau curba) careuneste cele doua extremitati si pe care se afla o sageata cu sensul de la xi laxj (vezi fig.1). Daca xi coincide cu xj, zicem ca avem o bucla.

    Este de mentionat faptul ca astfel de scheme se ntalnesc cu o marefrecventa sub diverse nume n diverse domenii: sociograme (n psihologie,sociologie), simplexe (n topologie), circuite electrice (n fizica, electronica),diagrame de organizare (economie, retele de comunicatie, chimie), arborigenealogici, etc. Teoria grafurilor are deci obiect de studiu un instrumentmatematic util stiintelor de comportament, teoriei informatiei, teoriei jocurilor,teoriei retelelor de transport, teoriei multimilor, precum si altor domenii.

    Fig.1

    Intr-un graf neorientat muchia se reprezinta printr-un arc fara sageata.Intr-un arc (xi, xj) varful xi se numeste predecesorul lui xj, iar xj

    succesorul lui xi.

    1

  • Exemplul 1.1.1 Graful (X,) dat prin X = {x1, x2, x3, x4, x5}, ={(x1, x2), (x1, x3), (x1, x4), (x2, x3), (x3, x2), (x2, x4), (x3, x4), (x3, x5), (x4, x5)} estereprezentat n Fig. 2. In aceeasi figura este reprezentat si graful neorientat

    corespunzator lui.

    Fig.2

    Definitia 1.1.3 Fie (X,) un graf dat. Numim subgraf al grafului dat, un

    graf (X1,1), unde X1 X si 1 .Subgraful (X1,1) se obtine din graful (X,) prin suprimare a unuia

    sau a mai multor varfuri si a arcelor aferente lor.

    Definitia 1.1.4 Numim drum ntr-un graf o succesiune de arce, adiacente

    doua cate doua, la fel orientate, la care extremitatea finala a unui arc coin-

    cide cu extremitatea initiala a arcului precedent.

    Un drum n care extremitatea finala a ultimului arc coincide cu extrem-

    itatea initiala a primului arc se numeste circuit.

    Un drum se da prin scrierea ntre acolade (sau alte tipuri de paran-

    teze) a succesiunii varfurilor prin care trec arcele care constituie drumul sau

    mentionand arcele din care se compune.

    Definitia 1.1.5 Numarul de arce dintr-un drum se numeste lungimea lui.

    Definitia 1.1.6 Matricea patratica B = (bij), i, j = 1, n, definita astfel

    bij =

    {1 , daca (xi, xj) 0 , daca (xi, xj)

    se numeste booleana (asociata) atasata grafului (X,)

    2

  • Exemplul 1.1.2 Fie (X,) graful din Fig. 3.

    Fig.3

    Matricea booleana atasata grafului este

    B =

    x1 x2 x3 x4 x5x1 0 1 1 0 0x2 0 0 0 1 0x3 0 1 0 0 1x4 0 1 0 0 1x5 0 0 0 0 0

    Definitia 1.1.7 Matricea patratica D = (dij), i, j = 1, n, definita astfel

    dij =

    {1 , exista drum de la xi la xj

    0 , nu exista drum de la xi la xj,

    se numeste matricea drumurilor atasata grafului (X,).

    Exemplul 1.1.3 Pentru graful din Fig 3 matricea drumurilor este

    D =

    x1 x2 x3 x4 x5x1 0 1 1 1 1x2 0 1 0 1 1x3 0 1 0 1 1x4 0 1 0 1 1x5 0 0 0 0 0

    Definitia 1.1.8 Matricea patratica L = (lij), i, j = 1, n, definita astfel

    lij =

    {xixj , daca (xi, xj) 0 , daca (xi, xj)

    se numeste matricea latina atasata grafului (X,).

    3

  • Exemplul 1.1.4 Pentru graful din figura 3 matricea latina este

    L =

    x1 x2 x3 x4 x5x1 0 x1x2 x1x3 0 0x2 0 0 0 x2x4 0x3 0 x3x2 0 0 x3x5x4 0 x4x2 0 0 x4x5x5 0 0 0 0 0

    In rezolvarea unor probleme teoretice sau practice se introduc si altetipuri de matrice atasate unui graf, care se defineste n cadrul respectiv.

    1.2 Probleme de optim n grafuri

    In multe probleme practice suntem pusi n situatia de a atasa fiecaruiarc din graful asociat problemelor respective un numar (timp de deplasarede-a lungul arcului, cost de transport de-a lungul arcului, beneficiu etc.)care, ntr-o astfel de situatie, se interpreteaza ca lungimea sau capacitateaarcului. De obicei, ntr-o astfel de problema practica se cere drumul delungime optima (maxima sau minima).

    Vom mai considera ca graful asociat problemei nu are circuite, dar areun varf de intrare x1 si un varf de iesire xn.

    1.2.1 Algoritmul Bellman

    Algoritmul elementar Bellman are la baza principiul de optimalitate allui Bellman: orice politica optimala este formata din subpolitici op-timale.

    Prin acest algoritm fiecarui varf xi i se ataseaza un numar di, reprezentandlungimea minima a drumurilor de la x1 la xi.

    Consideram d1 = 0. Acum, sa presupunem ca dorim sa gasim pe dl,unde varful xl este succesorul varfurilor xi, xj si xk, la care au fost dejacalculate numerele di, dj si dk. Atunci lungimea minima dl de la x1 la xl sedetermina prin formula

    dl = min(di + cil, dj + cjl, dk + ckl)

    unde cil, cjl si ckl sunt capacitatile corespunzatoare arcelor (xi, xl), (xj, xl) si(xk, xl).

    In formula lui dl subliniem n paranteze valoarea pentru care minimuleste atins. Dupa determinarea tuturor numerelor d1, d2, . . . , dn, valoarea luidn este lungimea minima a drumului de la x1 la xn, iar pornind de la xn sprex1 si citind varfurile subliniate, obtinem drumul de lungime minima.

    4

  • Pentru un drum de lungime maxima se lucreaza n mod analog, nlocuindminimul cu maximul.

    Exemplul 1.2.1 Pentru graful din Fig. 4 sa se afle drumul de lungime

    minima.

    Fig.4

    Avem succesiv:

    d1 = 0,d3 = min{d1 + 7} = 7,d2 = min{d1 + 2, d3 + 4} = min{2, 10} = 2,d4 = min{d2 + 3, d3 + 9} = min{5, 16} = 5,d5 = min{d2 + 4, d4 + 8} = min{6, 13} = 6,d6 = min{d5 + 3, d4 + 2} = min{9, 7} = 7,d7 = min{d5 + 9, d6 + 7} = min{15, 14} = 14.

    Prin urmare, lungimea minima este 14, iar drumul care are aceastalungime este: dmin = {x1, x2, x4, x6, x7}. In Fig.4 arcele drumului minimsunt dublate cu linie ntrerupta.

    Exemplul 1.2.2 Pentru graful din Fig. 5 sa se afle drumul de lungime

    maxima.

    5

  • Fig.5

    Avem succesiv:

    d1 = 0,d2 = d1 + 2 = 2,d3 = max{d2 + 9, d2 + 14} = 16,d4 = d2 + 5 = 7,d5 = d4 + 7 = 14,d6 = d2 + 3 = 5,d7 = max{d3 + 4, d6 + 8} = max{20, 13} = 20,d8 = max{d5 + 5, d7 + 10} = max{19, 30} = 30,d9 = d7 + 9 = 29,d10 = d7 + 9 = 29,d11 = d8 + 8 = 38,d12 = max{d10 + 5, d11 + 0} = max{34, 38} = 38,d13 = max{d11 + 7, d12 + 6, d9 + 10} = max{45, 44, 39} = 45,d14 = d13 + 3 = 48.

    Prin urmare, lungimea maxima este 48, iar drumul care are aceastalungime este: dmax = {x1, x2, x4, x5, x3, x7, x8, x11, x13, x14}. In Fig.5 arceledrumului maxim sunt dublate cu linie ntrerupta.

    1.2.2 Algoritmul BellmanKalaba

    Pentru determinarea drumului optim ntre doua varfuri ale unui graf se cal-culeaza, n etape succesive, pentru fiecare varf, cote (valori de marcaj).

    Ideea de baza este aceeasi ca si la procedeul elementar, dar acum calcululse realizeaza mai simplu, prin introducerea unei nmultiri speciale a uneimatrice cu o coloana a sa.Notam cu C = (cij)i,j=1,n, matricea n care elementele cij sunt date prin

    cij =

    l(xi, xj), daca exista arcul (xi, xj),0, daca i = j,, daca nu exista arcul (xi, xj),

    unde l(xi, xj) reprezinta valoarea atasata arcului (xi, xj) al grafului, simbolul reprezinta + (sau un numar foarte mare pozitiv), cand se cere drumulde lungime minima, respectiv (sau un numar foarte mare, n modul,negativ), cand se cere drumul de lungime maxima.

    Notam cu l(k)i , i = 1, n, valoarea (cota) atasata varfului xi n etapa k,

    unde, de obicei, se ia l(1)i = cin, cand se cauta drumul de lungime optima

    ntre x1 si xn.Se determina valorile l

    (k)i , pas cu pas, prin rezolvarea sistemului

    l(k)i = min

    j=1,n

    (cij + l

    (k1)j

    ), k = 2, 3, . . . , i = 1, n,

    6

  • cand se cere drumul de lungime minima.Algoritmul se ncheie atunci cand l

    (k)i = l

    (k+1)i , iar l

    (k)1 reprezinta lungimea

    minima a drumului de la x1 la xn.Pentru a stabili efectiv drumul de lungime minima se procedeaza astfel:

    pornind de la x1, pentru fiecare arc (xi, xj) se decide apartenenta sa la drumul

    minim daca l(k)j l

    (k)i = cij = l(xi, xj).

    Observatia 1.2.1 Etapele algoritmului se pot organiza astfel:

    l(1)i reprezinta ultima coloana a matricei C;

    se nmulteste matricea C cu aceasta coloana l(1)i dupa regula: . se nlocuieste

    cu +, iar + se locuieste cu min (astfel se determina valorile l(2)i );

    se continua succesiv pentru diferite valori ale lui k, pana cand se obtin doua

    coloane identice (l(k)i = l

    (k+1)i ).

    Exemplul 1.2.3 Sa se determine drumul de lungime minima ntre varfurile

    x1 si x7 din