Sunteți pe pagina 1din 15

Tehnica Greedy

Este o optiune ce tine de specificul problemei cu implicatii asupra complexitatii. Se bazeaza pe statistica datelor de la intrare din care se extrag caracteristici ale datelor=>alegerea strategiei. Strategia Greedy=strategia in care optimul local se considera optim general. Este o strategie constructiva prin adaugarea treptata de solutii locale care construiesc solutia

Tema : Analiza

algoritmilor

Scopul :

-extindere a metodelor de elaborare a algoritmilor Greedy; -formarea deprinderilor de a utiliza tehnica Greedy la rezolvarea problemelor;

C2.4 Cunoasterea si intelegerea mecanismului algoritmului Greedy. C2.5 Compararea intre Greedy si alte tehnici de programare. C2.6 Aplicarea mecanismului tehnicii Greedy

Problemele au urmatoarea structura:


- Se da o multime A={a1 a2, , an} - Se cere sa determinam o submultime B a multimii A, care indeplineste anumite conditii pentru a fi acceptata ca solutie.

Analiza Algoritmurilor

Pentru a putea decide care dintre algoritmii ce rezolv aceeai problem este mai bun, este nevoie s definim un criteriu de apreciere a valorii unui algoritm. In general, acest criteriu se refer la timpul de calcul i la memoria necesar unui algoritm.

Backtracking este numele unui algoritm general de descoperire a tuturor soluiilor unei probleme de calcul, algoritm ce se bazeaz pe construirea incremental de soluiicandidat, abandonnd fiecare candidat parial imediat ce devine clar c acesta nu are anse s devin o soluie valid.

Greedy - Backtracking
tehnica Greedy poate fi privit ca un caz -particular al tehnicii Backtracking, n care se renun la mecanismul de ntoarcere;
-

- ambele tehnici ofer soluii sub form de vector;


-tehnica Backtracking poate oferi toate soluiile problemei, n timp ce tehnica Greedy ofer o singur soluie; -tehnica Greedy nu dispune de mecanimul ntoarcerii, specific tehnicii Backtracking.

Greedy Metoda trierii


-

tehnica Greedy conduce mai repede la o solutie.

- problemele de tip Greedy pot fi rezolvate prin metoda trierii , genernd consecutiv cele 2n submulimi ale mulimii A; - Dezavantajul metodei trierii const n faptul c timpul cerut pentru executarea algoritmului respectiv este foarte mare.

De remarcat:
Cel care elaboreaz un algoritm Greedy, procednd n modul ales de el, ajunge la rezultatul dorit. Pentru fiecare problem n parte, dup ce se identific un algoritm, este obligatoriu s se demonstreze c aceata conduce la soluia optim. Demonstraia faptul c se ajunge la soluia optim este specific fiecrei probleme n parte.
Tehnica Greedy conduce la timp de calcul polinomial.

Pentru a rezolva o problem cu Greedy, soluia se construiete, dup regula:

Pentru fiecare element care urmez s fie adugat soluiei finale, se efectueaz o alegere a sa din elementele mulimii A (dup un mecanism specific fiecrei probleme n parte), iar dac este posibil, aceasta este adugat. Algoritmul se termin fie cnd a fost gsit soluia cerut, fie cnd s-a constatat inexistena acesteia. Pentru a evita trierea tuturor submultimilor multimii A n metoda Greedy se utilizeaz un criteriu (o regul) care asigur alegerea direct a elementelor necesare.

!!!De obicei regulile de selecie nu sunt indicate n mod explicit n


condiia problemei si totul depinde de ingeniozitatea programatorului.!!!

Schema general a unui algoritm bazat pe metoda Greedy:


While ExistaElemente do begin
AlegeUnElement(x); IncludeElementul(x)

end.

NU ntotdeauna exist un algoritm de tip Greedy care gsete soluia optim.

Exist probleme pentru care nu se cunosc astfel de algoritmi. Mai mult, pentru cele mai multe probleme, nu se cunosc algoritmi Greedy.

Nu tuturor problemelor li se pot aplica algoritmi de tip Greedy. Pentru problemele pentru care nu se cunosc algoritmi care necesit timp polinomial, se caut soliii, chiar dac nu optime, atunci apropiate de acestea, dar care au fost obinute n timp util. Multe din aceste soliii sunt obinute cu Greedy. Astfel de agoritmi se numesc algoritmi euristici.

Probleme pentru care Greedy obine soluia optim

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