Sunteți pe pagina 1din 10

Tehnica Greedy

greedy - “ lacom”, “hrăpăreţ”


Problemele au urmatoarea structura:
- Se dă o multime A={a1 a2, …, an}
-Se cere sa determinăm o submulțime B  A, care
îndeplinește anumite condiții pentru a fi acceptată
în calitate de soluție, o astfel de submulțime se
numește soluție posibilă.
-Din mulţimea tuturor soluţiilor posibile se doreşte
determinarea unei soluţii care maximizează sau
minimizează o anumită funcţie obiectiv dată.
O soluție care realizează acest lucru se numește
soluție optimă.
Metoda Greedy –în paşi :
1. Se iniţializează submulţimea B la mulţimea vidă;
2. La fiecare pas se alege un anumit element  x A  (cel mai
promiţător element la momentul respectiv) care poate
conduce la o solutie optimă;
3. se verifică dacă elementul x ales poate fi adăugat la

mulţimea B; dacă da, atunci va fi inclus: B=B { x}; dacă

se alege un x A care nu se poate adăuga mulţimii B, el
nu se mai testează ulterior;
4. procedeul continuă astfel, repetitiv, fie până când a fost
găsită soluţia cerută, fie s-a constatat inexistenţa soluţiei.
Schema generală a unui algoritm bazat pe
metoda Greedy:

While (ExistaElemente) {
AlegeUnElement(x);
IncludeElementul(x);
}
În principiu, problemele de acest tip pot fi rezolvate
prin metoda trierii, generând consecutiv cele 2n
submulţimi Ai ale mulţimii A, doar că timpul cerut de
algoritmul respectiv este foarte mare.

Pentru a evita trierea tuturor submulţimilor, metoda


Greedy utilizează un criteriu care asigură alegerea directă
a elementelor necesare din mulţimea A.
Metoda Greedy nu caută să determine toate soluţiile
posibile ( care ar putea fi prea numeroase) şi apoi să
aleagă din ele pe cea optimă, ci caută să introducă direct
un element x în soluţia optimă.

Tehnica Greedy conduce la timp de calcul polinomial.


Presupunem că mulţimea din care se face alegerea are n
elemente şi că soluţia are tot n elemente (caz maxim). Se
fac n alegeri, la fiecare alegere se fac n teste, rezultă un
algoritm cu timp O(n2).
Avantajul timpului polinomial, conduce la
necesitatea utilizării tehnicii Greedy.

Însă NU întotdeauna există un algoritm de tip


Greedy care găseşte soluţia optimă.

Pentru problemele care nu se cunosc algoritmi ce


necesită timp polinomial, se caută soluţii, chiar dacă
nu optime, dar apropiate de acestea, dar care au fost
obţinute în timp util. Multe din aceste soluţii sunt
obţinute cu Greedy.
Astfel de algoritmi se numesc algoritmi euristici.
Greedy – Metoda trierii
tehnica Greedy conduce mai repede la o soluție.
 problemele de tip Greedy pot fi rezolvate prin metoda
trierii , generînd consecutiv cele 2n submulțimi ale
mulţimii A;
 Dezavantajul metodei trierii constă în faptul că
timpul cerut pentru executarea algoritmului respectiv
este foarte mare.

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