2. Tehnica Greedy presupune că problemele peTehnica Greedy presupune că problemele pe
care trebuie să le rezolvăm au următoareacare trebuie să le rezolvăm au următoarea
structură:structură:
se dă o mulţime A={a1, a2, …, an} formată dinse dă o mulţime A={a1, a2, …, an} formată din
nn elemente;elemente;
se cere să determinăm o submulţime B, Bse cere să determinăm o submulţime B, B
aparţine A, care îndeplineşte anumite condiţiiaparţine A, care îndeplineşte anumite condiţii
pentru a fi acceptată ca soluţiepentru a fi acceptată ca soluţie
DefiniţieDefiniţie
4. FuncţiaFuncţia ExistaElementeExistaElemente returneazăreturnează
valoareavaloarea truetrue dacă în mulţimea A existădacă în mulţimea A există
elemente care satisfac criteriul (regula) deelemente care satisfac criteriul (regula) de
selecţie.selecţie.
ProceduraProcedura AlegeUnElementAlegeUnElement extrage dinextrage din
mulţimea A un astfel de elementmulţimea A un astfel de element xx..
ProceduraProcedura InculdeElementulInculdeElementul înscrieînscrie
elementul selectat în submulţimea B.elementul selectat în submulţimea B.
Iniţial B este o mulţime vidă.Iniţial B este o mulţime vidă.
5. Complexitatea temporalăComplexitatea temporală a algoritmilor bazaţi pea algoritmilor bazaţi pe
metodametoda GreedyGreedy poate fi evaluată urmînd schemapoate fi evaluată urmînd schema
generală de calcul prezentată mai sus. De obicei,generală de calcul prezentată mai sus. De obicei,
timpul cerut de proceduriletimpul cerut de procedurile ExistaElementeExistaElemente,,
AlegeUnElementAlegeUnElement şişi IncludeElementulIncludeElementul este deeste de
ordinulordinul nn. În componenţa ciclului. În componenţa ciclului whilewhile acesteaceste
proceduri se execută cel mult deproceduri se execută cel mult de nn ori. Prin urmare,ori. Prin urmare,
algoritmii bazaţi pe metoda Greedy sunt algoritmialgoritmii bazaţi pe metoda Greedy sunt algoritmi
polinomiale. Pentru comparare, amintim căpolinomiale. Pentru comparare, amintim că
algoritmii bazaţi pe trierea tuturor submulţimilor Ai,algoritmii bazaţi pe trierea tuturor submulţimilor Ai,
Ai se include în A, sunt algoritmi de ordinul O(2 laAi se include în A, sunt algoritmi de ordinul O(2 la
puterea n), deci exponenţiali. Cu regret, metodaputerea n), deci exponenţiali. Cu regret, metoda
Greedy poati fi aplicată numai atunci, cînd dinGreedy poati fi aplicată numai atunci, cînd din
enunţul problemei poate fi dedusă regula careenunţul problemei poate fi dedusă regula care
asigură selecţia directă a elementelor necesare dinasigură selecţia directă a elementelor necesare din
mulţimea A.mulţimea A.
6. Complexitatea temporalăComplexitatea temporală a algoritmilor bazaţi pea algoritmilor bazaţi pe
metodametoda GreedyGreedy poate fi evaluată urmînd schemapoate fi evaluată urmînd schema
generală de calcul prezentată mai sus. De obicei,generală de calcul prezentată mai sus. De obicei,
timpul cerut de proceduriletimpul cerut de procedurile ExistaElementeExistaElemente,,
AlegeUnElementAlegeUnElement şişi IncludeElementulIncludeElementul este deeste de
ordinulordinul nn. În componenţa ciclului. În componenţa ciclului whilewhile acesteaceste
proceduri se execută cel mult deproceduri se execută cel mult de nn ori. Prin urmare,ori. Prin urmare,
algoritmii bazaţi pe metoda Greedy sunt algoritmialgoritmii bazaţi pe metoda Greedy sunt algoritmi
polinomiale. Pentru comparare, amintim căpolinomiale. Pentru comparare, amintim că
algoritmii bazaţi pe trierea tuturor submulţimilor Ai,algoritmii bazaţi pe trierea tuturor submulţimilor Ai,
Ai se include în A, sunt algoritmi de ordinul O(2 laAi se include în A, sunt algoritmi de ordinul O(2 la
puterea n), deci exponenţiali. Cu regret, metodaputerea n), deci exponenţiali. Cu regret, metoda
Greedy poati fi aplicată numai atunci, cînd dinGreedy poati fi aplicată numai atunci, cînd din
enunţul problemei poate fi dedusă regula careenunţul problemei poate fi dedusă regula care
asigură selecţia directă a elementelor necesare dinasigură selecţia directă a elementelor necesare din
mulţimea A.mulţimea A.