53
Proiectarea algoritmilor: Algoritmi greedy Dorel Lucanu Faculty of Computer Science Alexandru Ioan Cuza University, Ia¸ si, Romania [email protected] PA 2014/2015 D. Lucanu (FII - UAIC) Algoritmi greedy PA 2014/2015 1 / 42

[9] greedy

Embed Size (px)

DESCRIPTION

[9] greedy

Citation preview

  • Proiectarea algoritmilor: Algoritmi greedy

    Dorel Lucanu

    Faculty of Computer ScienceAlexandru Ioan Cuza University, Iasi, Romania

    [email protected]

    PA 2014/2015

    D. Lucanu (FII - UAIC) Algoritmi greedy PA 2014/2015 1 / 42

  • Outline

    1 Prezentarea generala a paradigmeiMatroizi

    2 Studii de cazProblema rucsacului I (varianta continua)Arborele partial de cost minim

    D. Lucanu (FII - UAIC) Algoritmi greedy PA 2014/2015 2 / 42

  • Prezentarea generala a paradigmei

    Plan

    1 Prezentarea generala a paradigmeiMatroizi

    2 Studii de cazProblema rucsacului I (varianta continua)Arborele partial de cost minim

    D. Lucanu (FII - UAIC) Algoritmi greedy PA 2014/2015 3 / 42

  • Prezentarea generala a paradigmei

    Modelul matematic

    Fie S o multime finita de intrari si C o colectie de submultimi ale lui S .Spunem ca C este accesibila daca satisface axioma de accesibilitate:

    (X C)X 6= = (x X )X \ {x} C (1)

    Daca C este accesibila atunci perechea (S , C) se numeste sistem accesibil.Exercitiu

    Fie G = (V ,E ) un graf. Definim S(G ) = E siC(G ) = {X E | X este arbore}. Sa se arate ca (S(G ), C(G )) estesistem accesibil. Reamintim ca un arbore este un graf conex fara cicluri.

    Exercitiu

    Fie G = (V ,E ) un graf. Definim S(G ) = E si C(G ) = {X E | (V ,X )este o colectie de arbori (padure) }. Sa se arate ca (S(G ), C(G )) estesistem accesibil.

    D. Lucanu (FII - UAIC) Algoritmi greedy PA 2014/2015 4 / 42

  • Prezentarea generala a paradigmei

    Modelul matematic

    O submultime X C se numeste baza daca este maximala, i.e. nu existax S \ X astfel ncat X {x} C.O submultime X C care nu este baza se numeste extensibila. Cu altecuvinte, daca X este extensibila atunci exista y S \ X astfel ncatX {y} C.Exercitiu

    Fie G = (V ,E ) un graf si (S(G ), C(G )) un sistem accesibil definit ca nunul din exercitiile de pe slide-ul 4. Un arbore partial este una arbore careinclude toate varfurile grafului. Sa se arate ca, n fiecare caz, un arborepartial este baza.

    D. Lucanu (FII - UAIC) Algoritmi greedy PA 2014/2015 5 / 42

  • Prezentarea generala a paradigmei

    Modelul matematic

    Clasa de probleme pentru care se pot defini algoritmi greedy estedefinita de urmatoarea schema:

    Se considera date un sistem accesibil (S , C) si o functie obiectivf : C R. Problema consta n determinarea unei baze B Ccare satisface:

    f (B) = optim{f (X ) | X baza n C}

    In general, prin optim vom ntelege minim sau maxim.

    D. Lucanu (FII - UAIC) Algoritmi greedy PA 2014/2015 6 / 42

  • Prezentarea generala a paradigmei

    Modelul matematic

    Strategia greedy consta n gasirea unui criteriu de selectie a elementelordin S care candideaza la formarea bazei optime (care da optimul pentrufunctia obiectiv). Acest criteriu este numit alegere greedy sau alegere aoptimului local. Formal, optimul local are o urmatoarea definitie:

    f (X {x}) = optim{f (X {y}) | y S \ X ,X {x} C} (2)

    D. Lucanu (FII - UAIC) Algoritmi greedy PA 2014/2015 7 / 42

  • Prezentarea generala a paradigmei

    Modelul matematic

    Aceasta strategie este descrisa schematic de urmatorul algoritm:

    greedy(S, B) {S1 = S;

    B = ;while (B este extensibila) {

    alege un optim local x din S1 conform cu (2)S1 = S1 \ {x};B = B {x};

    }}

    D. Lucanu (FII - UAIC) Algoritmi greedy PA 2014/2015 8 / 42

  • Prezentarea generala a paradigmei

    Analiza algoritmului greedy pentru matroizi

    Presupunem ca pasul de alegere greedy selecteaza elemente x n timpulO(kp) unde k = #S1 si ca testarea conditiei B {x} C se face n timpulO(`q), unde ` = #B. Avem k + ` n. Multimile S si B pot fireprezentate astfel ncat costul operatiilor B {x} si S1 {x} sa fie egalcu O(1). Deoarece pasul de alegere este executat de n ori rezulta castrategia are timpul de executie

    T (n) = O(np + 1q) + + O(1p + nq)= O(1p + + np + 1q + + nq)= O(np+1 + nq+1) = O(nmax(p+1,q+1))

    Operatiile peste multimile S1 si B vor trebui descrise n functie dereprezentarile concrete ale acestora.

    D. Lucanu (FII - UAIC) Algoritmi greedy PA 2014/2015 9 / 42

  • Prezentarea generala a paradigmei

    Modelul matematic

    Din pacate, numai conditia de accesibilitate nu asigura existentatotdeauna a unui criteriu de alegere locala care sa conduca la determinareaunei baze optime. Aceasta nseamna ca, pentru anumite probleme, putemproiecta algoritmi greedy care nu furnizeaza solutia optima ci o bazapentru care functia obiectiv poate avea valori apropiate de cea optima.Acesta este cazul, de exemplu, pentru anumite probleme netractabile.

    D. Lucanu (FII - UAIC) Algoritmi greedy PA 2014/2015 10 / 42

  • Prezentarea generala a paradigmei Matroizi

    Plan

    1 Prezentarea generala a paradigmeiMatroizi

    2 Studii de cazProblema rucsacului I (varianta continua)Arborele partial de cost minim

    D. Lucanu (FII - UAIC) Algoritmi greedy PA 2014/2015 11 / 42

  • Prezentarea generala a paradigmei Matroizi

    Definitie matroizi

    Vom prezenta o clasa particulara de algoritmi greedy pentru carealegerile optime locale conduc la determinarea unei baze optime.Perechea M = (S , C) se numeste matroid daca satisface urmatoareleconditii:

    proprietatea de ereditate:

    X C X 6= = (x X )X \ {x} C,

    proprietatea de interschimbare:

    X ,Y C |X | < |Y | = (y Y \ X )X {y} C.

    D. Lucanu (FII - UAIC) Algoritmi greedy PA 2014/2015 12 / 42

  • Prezentarea generala a paradigmei Matroizi

    Exemple

    Exercitiu

    Fie G = (V ,E ) un graf. Sa se arate ca (E , {X E | X este arbore}) nueste matroid. Care dintre proprietati nu este satisfacuta?

    Exercitiu

    Fie G = (V ,E ) un graf. Sa se arate ca

    (E , {X E | (V ,X ) este padure })este matroid.

    D. Lucanu (FII - UAIC) Algoritmi greedy PA 2014/2015 13 / 42

  • Prezentarea generala a paradigmei Matroizi

    Matroizi ponderati

    Un matroid ponderat este un matroid M = (S , C) n care fiecare elementx S are asociata o pondere w(x). Problemele pe care le consideram aicisunt definite dupa urmatorul sablon:

    Se considera dat un matroid ponderat M = (S , C,w). DacuaX S atunci definim w(X ) =

    xXw(x). Problema consta n

    determinarea unei baze B C care satisface:

    w(B) = max{w(X ) | X baza n C}

    D. Lucanu (FII - UAIC) Algoritmi greedy PA 2014/2015 14 / 42

  • Prezentarea generala a paradigmei Matroizi

    Algoritmul greedy pentru matroizi

    Determinarea optimului local consta n selectarea unui x S \ X astfelncat

    w(x) = max{w(y) | y S \ X ,X {y} C.}Deoarece optimul local este determinat numai pe baza ponderilorelementelor ramase, algoritmul greedy consta n testarea tuturorelementelor din S n ordinea descrescatoare a ponderilor w(x):

    greedyMatr(S, w, B) {sorteaza S descrescator dupa w(x)B = ;foreach x S considerat n ordine descrescatoare dupa w(x)

    if (B {x} C) B = B {x};}

    D. Lucanu (FII - UAIC) Algoritmi greedy PA 2014/2015 15 / 42

  • Prezentarea generala a paradigmei Matroizi

    Analiza algoritmului greedy pentru matroizi

    Lema

    Fie x primul element din S ales de algoritmul greedyMatr. Exista o bazaoptima A care contine x .

    Demonstratie. Fie A o baza optima. Daca x A, atunci luam A = A.Presupunem ca x 6 A. Luam pentru nceput A = {x}. Din definitiaalgoritmului greedyMatr, A C. Utilizand proprietatea de interschimbaren mod repetat, adaugam elemente din A la pana cand |A| = |A|. Existay A astfel ncat A = A \ {x} {y}. Din modul de alegere a lui x , avemw(x) w(y) care implica:

    w(A) = w(A) w(x) + w(y) w(A).

    Deoarece A este optima, rezulta w(A) = w(A) si de aici avem ca A esteoptima. Acum demonstratia lemei este terminata. sfdem

    D. Lucanu (FII - UAIC) Algoritmi greedy PA 2014/2015 16 / 42

  • Prezentarea generala a paradigmei Matroizi

    Analiza algporitmului greedy pentru matroizi

    Teorema

    Daca M = (S , C,w) este un matroid ponderat, atunci algoritmulgreedyMatr determina o baza optima.

    Demonstratie. Fie acum M = (S ,w , C), undeS = {y S | {x , y} C},w = w |S (restrictia lui w la S ) siC = {X C | X {x} C}.Aplicand proprietatea de ereditate rezulta ca M este matroid si daca Aeste o baza optima a lui M, atunci A \ {x} este o baza optima pentru M (matroizii au proprietatea de substructura optima). Aplicand unrationament inductiv, obtinem ca B \ {x} este baza optima pentru M .sfdem

    D. Lucanu (FII - UAIC) Algoritmi greedy PA 2014/2015 17 / 42

  • Prezentarea generala a paradigmei Matroizi

    Analiza algoritmului greedy pentru matroizi

    In cazul matroizilor ponderati, timpul de executie pentru cazul cel mainefavorabil poate fi redusa la O(n log n) daca testarea conditieiB {x} C se face n timpul O(1).

    D. Lucanu (FII - UAIC) Algoritmi greedy PA 2014/2015 18 / 42

  • Studii de caz

    Plan

    1 Prezentarea generala a paradigmeiMatroizi

    2 Studii de cazProblema rucsacului I (varianta continua)Arborele partial de cost minim

    D. Lucanu (FII - UAIC) Algoritmi greedy PA 2014/2015 19 / 42

  • Studii de caz Problema rucsacului I (varianta continua)

    Plan

    1 Prezentarea generala a paradigmeiMatroizi

    2 Studii de cazProblema rucsacului I (varianta continua)Arborele partial de cost minim

    D. Lucanu (FII - UAIC) Algoritmi greedy PA 2014/2015 20 / 42

  • Studii de caz Problema rucsacului I (varianta continua)

    Problema

    Rucsac IInput n obiecte notate cu 0, 1, . . . , n 1 de dimensiuni (greutati)

    w0,w1, . . . ,wn1, respectiv, si un rucsac de capacitate M.Daca n rucsac se pune o parte fractionara xi din obiectul i ,0 xi 1, atunci se obtine un profit pi xi (pi > 0).Umplerea rucsacului cu fractiunile (cantitatile) x0, . . . , xn1aduce profitul total

    n1i=0 pixi .

    Output Partile fractionare x0, . . . xn1 care aduc un profit total maxim.

    D. Lucanu (FII - UAIC) Algoritmi greedy PA 2014/2015 21 / 42

  • Studii de caz Problema rucsacului I (varianta continua)

    Formulare matematica

    Problema ar putea fi formulata si ca o problema de optim, n modulurmator:

    functia obiectiv:

    maxn1i=0

    pixi

    restrictii:n1i=0

    wixi M0 xi 1 pentru i = 0, . . . , n 1

    Dacan1

    i=0 wi M atunci profitul maxim se obtine candxi = 1, 0 i n 1. De aceea vom presupune ca

    n1i=0 wi > M. In acest

    caz, nu toate fractiunile xi pot fi egale cu 1. In plus, rucsacul poate fiumplut exact, i.e., putem alege xi astfel ncat

    n1i=0 wixi = M.

    D. Lucanu (FII - UAIC) Algoritmi greedy PA 2014/2015 22 / 42

  • Studii de caz Problema rucsacului I (varianta continua)

    Definirea sistemului accesibil

    Multimea de intrari este S = {(i , xi ) | 0 i < n, xi [0, 1]}.O submultime X S este n C daca((i , xi ), (i , xi ) X )i = i = xi = xi si

    {xiwi | (i , xi ) X} M.Are loc proprietatea de ereditate:X C, (i , xi ) X = X{(i , xi)} C}NU are proprietatea de interschimbare (deci nu se poate aplica teorema dela matroizi):w = (7, 4, 5), M = 10, X = {(0, 1)}, Y = {(1, 1), (2, 1)}Avem |X | = 1, |Y | = 2, dar nu exista (i , y) Y a.. X {(i , y)} C.Functia asociata intrarilor:f (i , xi ) = xipi ,f (X ) =

    {f (i , xi ) | (i , xi ) X}D. Lucanu (FII - UAIC) Algoritmi greedy PA 2014/2015 23 / 42

  • Studii de caz Problema rucsacului I (varianta continua)

    Alegere greedy care NU e OK

    La fiecare pas se va introduce n rucsac obiectul care aduce profit maxim.La ultimul pas, daca obiectul nu ncape n totalitate, se va ntroducenumai acea parte fractionara a sa, care umple exact rucsacul.

    Exemplu: Presupunem n = 3,M = 10, iar dimensiunile si profiturileobiectelor date de urmatorul tabel:

    0 1 2

    wi 6 4 8pi 3 4 6

    Algoritmul rucsacC va determina solutia x = (0,1

    2, 1) care produce

    profitul

    pixi =1

    2 4 + 1 6 = 8. Se observa ca vectorul x = (0, 1, 3

    4)

    produce un profit mai bun:

    pixi = 1 4 +

    3

    4 6 = 17

    2> 8. sfex

    D. Lucanu (FII - UAIC) Algoritmi greedy PA 2014/2015 24 / 42

  • Studii de caz Problema rucsacului I (varianta continua)

    Alegere greedy care ESTE OK

    La fiecare pas va fi introdus n rucsac obiectul care aduce profit maxim peunitatea de capacitate (greutate) utilizata, adica obiecul care maximizeaza

    fractiapiwi

    peste multimea obiectelor neintroduse nca.

    La ultimul pas, daca obiectul nu ncape n totalitate, se va ntroducenumai acea parte fractionara a sa, care umple exact rucsacul.

    D. Lucanu (FII - UAIC) Algoritmi greedy PA 2014/2015 25 / 42

  • Studii de caz Problema rucsacului I (varianta continua)

    Algoritmul greedy

    rucsacC(w, p, x, n) {S ={0,..., n-1};for i = 0 to n-1 x[i] = 0;

    C = 0;

    while ((C < M) and (S 6= )) {alege i S care maximizeaza profitul pe unitatea de greutate peste SS = S\{i}if (C + w[i] M) {

    C = C + w[i];

    x[i] = 1;

    } else {C = M;

    x[i] =M Cw[i]

    }}

    }D. Lucanu (FII - UAIC) Algoritmi greedy PA 2014/2015 26 / 42

  • Studii de caz Problema rucsacului I (varianta continua)

    Analiza

    Presupunemp0w0 pn1

    wn1. Fie x = (x0, , xn1) solutia generata

    de procedura rucsacC. Daca xi = 1, 0 i < n, atunci evident ca aceastasolutie este optima.

    Altfel, fie j primul indice pentru care xj 6= 1. Din algoritm, se observa caxi = 1 pentru orice 0 i < j si xi = 0 pentru i > j .Fie y = (y0 yn1) o solutie optima (care maximizeaza profitul).

    D. Lucanu (FII - UAIC) Algoritmi greedy PA 2014/2015 27 / 42

  • Studii de caz Problema rucsacului I (varianta continua)

    Analiza

    Lema

    Fie k cel mai mic indice pentru care xk 6= yk . Atunci yk < xk si k j .

    Demonstratie. Exista urmatoarele posibilitati:

    (i) k < j . Rezulta xk = 1 si de aici yk 6= xk implica yk < xk .(ii) k = j . Deoarece

    xi wi = M si xi = yi , 1 i < j , rezulta ca

    yk < xk (altfel

    yi wi > M care constituie o contradictie).

    (iii) k > j . Rezultan1i=0

    yi wi >j

    i=0xi wi = M. Contradictie.

    sfdem

    D. Lucanu (FII - UAIC) Algoritmi greedy PA 2014/2015 28 / 42

  • Studii de caz Problema rucsacului I (varianta continua)

    Analiza

    Lema

    Exista o solutie optima z care coincide cu x pe pozitiile 0, . . . , k (z e maiaproape de x decat y).

    Demonstratie.Marim yk cu diferenta pana la xk si scoatem aceasta diferenta dinsecventa (yk+1, . . . , yn1) astfel ncat capacitatea utilizata sa ramna totM. Rezulta o noua solutie z = (z0, . . . , zn1) care satisface:

    zi = xi , 0 i kk

  • Studii de caz Problema rucsacului I (varianta continua)

    Analiza

    Avem:

    n1i=0

    zi pi =

    0i

  • Studii de caz Problema rucsacului I (varianta continua)

    Analiza

    Teorema

    Procedura rucsacC determina solutia optima (cu profit maxim).

    Demonstratie. Aplicam n mode repetat lema de pe slide-ul 29 pana candse obtine o solutie optima care coincide cu x . sfdem

    D. Lucanu (FII - UAIC) Algoritmi greedy PA 2014/2015 31 / 42

  • Studii de caz Problema rucsacului I (varianta continua)

    Analiza

    Timpul de executie a algoritmului rucsacC este O(n2). Dar daca intrarile

    satisfacp0w0 pn1

    wn1, atunci algoritmul rucsacC necesita timpul

    O(n). La acesta trebuie adaugat timpul de preprocesare (ordonare) careeste O(n log n).

    D. Lucanu (FII - UAIC) Algoritmi greedy PA 2014/2015 32 / 42

  • Studii de caz Arborele partial de cost minim

    Plan

    1 Prezentarea generala a paradigmeiMatroizi

    2 Studii de cazProblema rucsacului I (varianta continua)Arborele partial de cost minim

    D. Lucanu (FII - UAIC) Algoritmi greedy PA 2014/2015 33 / 42

  • Studii de caz Arborele partial de cost minim

    Problema

    Arborele partial de cost minimInput Un graf ponderat G = (V ,E ) cu functia de cost c : E R.Output un arbore partial de cost minim.

    D. Lucanu (FII - UAIC) Algoritmi greedy PA 2014/2015 34 / 42

  • Studii de caz Arborele partial de cost minim

    Modelul matematic

    Reamintim ca un arbore partial al lui G este un subgraf conex fara ciclurice include toate varfurile lui G . Fie A o multime de muchii. O muchie{i , j} este sigura pentru A daca A {{i , j}} este o submultime a unuiarbore partial de cost minim. Urmatorul algoritm generic, bazat pestrategia greedy, determina arborele partial descris ca o multime de arce:

    APCM(V,E,c) {A = ;E1 = E;while A nu formeaza arbore partial {

    determina o muchie {i, j} E1 sigura AE1 = E1 \ {{i, j}}A = A {{i, j}}

    }}

    D. Lucanu (FII - UAIC) Algoritmi greedy PA 2014/2015 35 / 42

  • Studii de caz Arborele partial de cost minim

    Modelul matematic

    Teorema

    A determinat de algoritmul APCM este arbore partial de cost minim pentruG = (V ,E ).

    Demonstratie. Invariantul buclei while: A este o submultime a unuiarbore partial de cost minim. sfdem

    D. Lucanu (FII - UAIC) Algoritmi greedy PA 2014/2015 36 / 42

  • Studii de caz Arborele partial de cost minim

    Algoritmul lui Kruskal

    Multimea A este o colectie de arbori (padure). Pasul de alegere localaselecteaza muchia de cost minim care nu formeaza circuite cu muchiilealese pana n acel moment.

    Reamintim ca (E , {X E | (V ,X ) este o padure }) este matroid.

    D. Lucanu (FII - UAIC) Algoritmi greedy PA 2014/2015 37 / 42

  • Studii de caz Arborele partial de cost minim

    Algoritmul lui Kruskal

    1 2

    3 4

    5

    10

    20

    50

    2030

    30

    4010

    1 2

    3 4

    5

    10

    2030

    10

    D. Lucanu (FII - UAIC) Algoritmi greedy PA 2014/2015 38 / 42

  • Studii de caz Arborele partial de cost minim

    Algoritmul lui Kruskal

    1 2

    3 4

    5

    10

    20

    50

    2030

    30

    4010

    1 2

    3 4

    5

    10

    2030

    10

    D. Lucanu (FII - UAIC) Algoritmi greedy PA 2014/2015 38 / 42

  • Studii de caz Arborele partial de cost minim

    Algoritmul lui Kruskal

    1 2

    3 4

    5

    10

    20

    50

    2030

    30

    4010

    1 2

    3 4

    5

    10

    2030

    10

    D. Lucanu (FII - UAIC) Algoritmi greedy PA 2014/2015 38 / 42

  • Studii de caz Arborele partial de cost minim

    Algoritmul lui Kruskal

    1 2

    3 4

    5

    10

    20

    50

    2030

    30

    4010

    1 2

    3 4

    5

    10

    2030

    10

    D. Lucanu (FII - UAIC) Algoritmi greedy PA 2014/2015 38 / 42

  • Studii de caz Arborele partial de cost minim

    Algoritmul lui Kruskal

    1 2

    3 4

    5

    10

    20

    50

    2030

    30

    4010

    1 2

    3 4

    5

    10

    20

    30

    10

    D. Lucanu (FII - UAIC) Algoritmi greedy PA 2014/2015 38 / 42

  • Studii de caz Arborele partial de cost minim

    Algoritmul lui Kruskal

    1 2

    3 4

    5

    10

    20

    50

    2030

    30

    4010

    1 2

    3 4

    5

    10

    2030

    10

    D. Lucanu (FII - UAIC) Algoritmi greedy PA 2014/2015 38 / 42

  • Studii de caz Arborele partial de cost minim

    Algoritmul lui Kruskal

    O implementare eficienta a algoritmului lui Kruskal se obtine reprezentandA printr-o structura union-find :

    Kruskal(V,E,c) {A = ;foreach (i V) single(i);sorteaza E crescator dupa c;foreach ({i, j} E n ordine crescatoare)

    if (find(A, i) 6= find(A, j)union(A,i,j);

    }

    D. Lucanu (FII - UAIC) Algoritmi greedy PA 2014/2015 39 / 42

  • Studii de caz Arborele partial de cost minim

    Algoritmul lui Prim

    Multimea A este arbore. Pasul de alegere locala selecteaza muchia de costminim care, mpreuna cu celelalte alese pana n acel moment, pastreazaproprietatea de arbore. O implementare eficienta a algoritmului lui Prim seobtine prin ntretinerea unei structuri min-heap, pe care o notam cu Q.Fiecarui varf i i se asociaza o valoare cheie(i) ce reprezinta minimul dintrecosturile muchiilor care unesc acel varf cu un varf din arborele construitpana n acel moment. Pe timpul executiei algoritmului, Q va memora, pebaza valorilor cheie(i) definite mai sus, varfurile care nu sunt n arbore.

    Reamintim ca (E , {X E | X este arbore }) NU este matroid, asa catrebuie demonstrata corectitudinea.

    D. Lucanu (FII - UAIC) Algoritmi greedy PA 2014/2015 40 / 42

  • Studii de caz Arborele partial de cost minim

    Algoritmul lui Prim

    1 2

    3 4

    5

    10

    20

    50

    2030

    30

    4010

    1 2

    3 4

    5

    1 2

    3 4

    5

    10

    20

    50

    30

    40 10

    D. Lucanu (FII - UAIC) Algoritmi greedy PA 2014/2015 41 / 42

  • Studii de caz Arborele partial de cost minim

    Algoritmul lui Prim

    1 2

    3 4

    5

    10

    20

    50

    2030

    30

    4010

    1 2

    3 4

    5

    1 2

    3 4

    5

    10

    20

    50

    30

    40 10

    D. Lucanu (FII - UAIC) Algoritmi greedy PA 2014/2015 41 / 42

  • Studii de caz Arborele partial de cost minim

    Algoritmul lui Prim

    1 2

    3 4

    5

    10

    20

    50

    2030

    30

    4010

    1 2

    3 4

    5

    1

    2

    3 4

    5

    10

    20

    50

    30

    40 10

    D. Lucanu (FII - UAIC) Algoritmi greedy PA 2014/2015 41 / 42

  • Studii de caz Arborele partial de cost minim

    Algoritmul lui Prim

    1 2

    3 4

    5

    10

    20

    50

    2030

    30

    4010

    1 2

    3 4

    5

    1 2

    3 4

    5

    10

    20

    50

    30

    40 10

    D. Lucanu (FII - UAIC) Algoritmi greedy PA 2014/2015 41 / 42

  • Studii de caz Arborele partial de cost minim

    Algoritmul lui Prim

    1 2

    3 4

    5

    10

    20

    50

    2030

    30

    4010

    1 2

    3 4

    5

    1 2

    3

    4

    5

    10

    20

    50

    30

    40

    10

    D. Lucanu (FII - UAIC) Algoritmi greedy PA 2014/2015 41 / 42

  • Studii de caz Arborele partial de cost minim

    Algoritmul lui Prim

    1 2

    3 4

    5

    10

    20

    50

    2030

    30

    4010

    1 2

    3 4

    5

    1 2

    3 4

    5

    10

    20

    50

    30

    40

    10

    D. Lucanu (FII - UAIC) Algoritmi greedy PA 2014/2015 41 / 42

  • Studii de caz Arborele partial de cost minim

    Algoritmul lui Prim

    1 2

    3 4

    5

    10

    20

    50

    2030

    30

    4010

    1 2

    3 4

    5

    1 2

    3 4

    5

    10

    20

    50

    30

    40

    10

    D. Lucanu (FII - UAIC) Algoritmi greedy PA 2014/2015 41 / 42

  • Studii de caz Arborele partial de cost minim

    Algoritmul lui Prim

    Multimea A va fi A = {{j , parinte(j)} | j V \ {r} \ Q}, unde r este radacinaarborelui (aleasa arbitrar) si parinte(j) este adresa varfului care realizeazavaloarea cheie(j):

    Prim(V,E,c) {Q = V;foreach (i Q) cheie[i] = ;cheie[r] = 0;

    parinte[r] = -1;

    while (Q 6= ) {i = Q.read(); Q.pop();

    foreach (j G.a[i]) // G.a[i] lista de adiacentaif (j Q and c(i,j) < cheie[j]) {

    parinte[j] = i;

    cheie[j] = c({i,j});Q.replace(j);

    }}

    }D. Lucanu (FII - UAIC) Algoritmi greedy PA 2014/2015 42 / 42

    Prezentarea generala a paradigmeiMatroizi

    Studii de cazProblema rucsacului I (varianta continua)Arborele partial de cost minim