Sunteți pe pagina 1din 4

Exemple de probleme rezolvate prin algoritmi de tip Greedy: 1.

Determinarea arborelui parial de cost minim (soluia este ntotdeauna optim) a. Algoritmul lui Kruskal b. Algoritmul lui Prim 2. Problema rucsacului a. ntreag (nu a fost gsit nici un algoritm rapid care s ofere soluia optim, se crede c nu exist un astfel de algoritm) b. continu 3. Interclasarea optim a n vectori 4. Suma maxim dintr-o mulime de numere 5. Plata unei sume (cu bancnot unitate) 6. Problema paznicului 7. Determinarea unui produs de transpoziii 8. Algoritmul Dijkstra Exemplele de mai sus snt probleme tipice, enunurile lor pot fi ntlnite ca atare sau cu diverse variaiuni.

1. Arborele parial de cost minim (maxim). Ambii algoritmi au fost studiai anterior, n cadrul discuiei despre grafuri de tip arbore.

2. Problema rucsacului. Se consider un mijloc de transport cu o capacitate dat ( ). Cu acesta trebuie transportate * +. Fiecare obiect ocup o capacitate specific i aduce un obiecte dintr-o mulime ctig specific . Se cere s se determine o modalitate de ncrcare care s maximizeze ctigul obinut. Dac obiectele transportate pot fi fracionate, problema este numit continu. n acest caz se va utiliza ntotdeauna ntreaga capacitate de transport. Dac obiectele nu pot fi fracionate, problema este numit ntreag. n acest caz e posibil ca soluia obinut s nu utilizeze ntreaga capacitate de transport. De asemenea, soluia obinut poate s nu fie optim. n plus, e posibil s existe o soluie de utilizare a ntregii capaciti de transport, dar aceasta s nu fie gsit prin algoritm de tip greedy.

3. Interclasarea optim a vectorilor. Se d un numr de vectori, fiecare fiind sortat cresctor. Vectorii trebuie interclasai astfel nct s se efectueze ct mai puine micri de elemente.

4. Suma maxim.

* Se d o mulime de elemente reale submulime astfel nct suma elementelor submulimii

+. Se cere s se determine o s fie cea mai mare posibil.

5. Plata unei sume (cu bancnot unitate). Se cere s se plteasc o sum folosind ct mai puine bancnote din tipurile (valorile) , tiind c printre acestea se afl i bancnota cu valoare unitate. Snt disponibile cantiti nelimitate din fiecare tip de bancnot. Dac bancnota cu valoare unitate nu ar fi disponibil, nu e sigur obinerea unei soluii prin utilizarea metodei optimului local. Alt algoritm poate conduce la o soluie.

6. Problema paznicului. Se d o livad n care pomii snt plasai pe linii, cte pe fiecare linie. Distanele ntre pomii adiaceni snt egale att pe linie ct i ntre linii. n una din cele poziii se afl un paznic, care poate vedea pomii pe orice direcie, dar dac mai muli pomi se afl pe exact aceeai direcie l vede doar pe cel mai apropiat. Se cere s se determine ); a) numrul de pomi pe care poate s i vad paznicul din poziia ( b) care este poziia din care paznicul poate s vad cel mai mare numr de pomi.

7. Produs de transpoziii. Se d o permutare un produs de transpoziii: a) oarecare; b) de forma ( ). ( ). Se cere s se descompun aceast permutare ntr-

8. Algoritmul Dijkstra. Algoritmul Dijkstra pentru gsirea celor mai scurte drumuri ntr-un graf, pornind de la un vrf dat a fost studiat n cadrul discuiei despre grafuri.

Exemple de problem care se rezolv prin metoda backtracking: 1. 2. 3. 4. 5. 6. 7. Problema celor 8 (n) dame. Problema cavalerilor mesei rotunde. Plata unei sume (cu/fr bancnot unitate). Generarea tuturor permutrilor. Generarea tuturor aranjamentelor. Generarea tuturor combinrilor. Problema colorrii hrilor.

1. Problema celor 8 (n) dame. Se cere s se aeze 8 regine pe o tabl de ah astfel nct s nu existe regine care se atac. S se gseasc toate posibilitile de aezare a damelor. Problema se poate extinde la regine, pe o tabl de dimensiuni .

2. Problema cavalerilor mesei rotunde. n jurul unei mese rotunde snt aezai cavaleri. La un moment dat izbucnesc conflicte ntre vecini. Se cere s se aeze cavalerii la mas astfel nct ntre oricare doi vecini din aezarea iniial s existe 1 sau dou alte persoane.

3. Plata unei sume (cu/fr bancnot unitate) Fie tipuri de bancnote, cu valorile nominale . Din fiecare tip este disponibil cantitatea . S se determine toate modalitile n care se poate plti o sum folosind aceste bancnote.

4. Generarea permutrilor S se genereze toate permutrile posibile cu elemente.

5. Generarea aranjamentelor S se genereze toate aranjamentele dintr-o mulime cu elemente, luate cte .

Aplicaie: s se genereze toate posibilitile de creare a unui drapel cu culori (aezate vertical, de la lance), avnd la dispoziie culori. Condiie suplimentar: n mijloc trebuie s se afle o anumit culoare.

6. Generarea combinrilor

S se genereze toate combinrile dintr-o mulime cu

elemente, luate cte .

7. Problema colorrii hrilor Se d o hart cu ri. Relaiile de vecintate snt reprezentate ntr-o matrice de adiacen. S se genereze toate posibilitile de colorare hrii cu ajutorul a c culori, innd cont c dou ri vecine nu pot avea aceeai culoare. Care este numrul minim de culori care pot fi folosite?