ºÝºÝߣ

ºÝºÝߣShare a Scribd company logo
Metoda GreedyMetoda Greedy
Tehnica GreedyTehnica 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
finala.Problema=problemele locale care dau solutii ce se
asambleaza in solutia finala. Obs: cand strategia nu duce la o
solutie(in cazul neliniaritatilor)
Se da o multime A si se cere (B inclus in A) care are criteriile
obligatorii si se cer si criteriile de optimalitate
neobligatorii.Solutia este de a alege un elem. din A succesiv care
maximalizeaza optimalitatea in momentul alegerii lui=>se
construieste B prin respectarea criteriilor obligatorii.Solutiile cu
ajutorul alg. Dextra.
Metode de instruire folositeMetode de instruire folosite
•Conversatia euristica
•Observatia participativa
•Expunerea
•Invatarea prin descoperire dirijata
•Metoda orientata pe exemple si pe rezolvarea de exercitii in
laborator
•Modelarea matematica
•Instruirea asistata de calculator
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
in calitate de solutie.
- tehnica Greedy poate fi privită ca un caz particular al
tehnicii Backtracking, în care se renunţă la mecanismul de
întoarcere;
- ambele tehnici oferă soluţii sub formă de vector;
-tehnica Backtracking poate oferi toate soluţiile problemei,
în timp ce tehnica Greedy oferă o singură soluţie;
-tehnica Greedy nu dispune de mecanimul întoarcerii,
specific tehnicii Backtracking.
Greedy - Backtracking
- tehnica Greedy conduce mai repede la o solutie.
- 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.
Greedy – Metoda trierii
·        Pentru a rezolva o problemă cu Greedy, soluţia
se construieşte, după regula:
Pentru fiecare element care urmeză să fie adăugat
soluţiei finale, se efectuează o alegere a sa din elementele
mulţimii A (după un mecanism specific fiecărei probleme
în parte), iar dacă este posibil, aceasta este adăugat.
Algoritmul se termină fie cînd a fost găsită soluţia cerută,
fie cînd s-a constatat inexistenţa 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 selecţie nu sunt indicate în mod explicit în condiţia 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 tuturor problemelor li se pot aplica algoritmi de
tip Greedy.
Pentru problemele pentru care nu se cunosc
algoritmi care necesită timp polinomial, se caută
soliţii, chiar dacă nu optime, atunci apropiate de
acestea, dar care au fost obţinute în timp util.
Multe din aceste soliţii sunt obţinute cu Greedy.
Astfel de agoritmi se numesc algoritmi euristici.
Metoda Greedy are două componente:
- stabilirea soluţiei de început;
- optimizarea acesteia.
Să luăm un exemplu concret , pe baza căruia vom ilustra cum se
‘’construieşte’’ soluţia.
Fie secvenţa :
8, 7, 8, 4, 9, 7, 5, 5, 4, 8, 7, 5, 9.
Deoarece A (1) este 8, nefiind număr prim se porneşte cu soluţia iniţială
S:=0 (dacă A (1) ar fi fost număr prim, am fi pornit cu soluţia s:=A(1)).
Apoi valorile lui S vor fi:
S:=0
S:=0+7=7
S:=7+5=12
De remarcat caracterul constructiv al soluţiei. Un termen curent (fie acesta
A( i )) contribuie la valoarea lui S dacă îndeplineşte două condiţii :
- este un număr prim;
- n-a mai fost utilizat.
Dacă in prealabil ordonăm crescător secvenţa considerată obţinem:
4, 4, 5, 5, 5, 7, 7, 7, 8, 8, 8, 9, 9
şi astfel se “vede’’ mult mai uşor repetabilitatea unui numar prim( faţă de
situaţia iniţială când pentru a constata dacă un număr prim a fost sau nu
utilizat trebuie să parcurgem întreaga secvenţă de fiecare dată ).
Pe baza afirmaţiilor anterioare rezultă un model de rezolvare pentru problema
propusă, model care dă structura generală a metodei Greedy :
Citire ( n , A);
Ordonare ( n , A );
If A [1] = NumarPrim Then S := A[1]
Else S:=0;
I := 2;
While I ≤ n do
begin
If (A[ I] <> A(I-1) )and (A [I] =Numarprim ) Then S := S +A [I]
I := I+1;
End;
Tehnica Greedy conduce la timp de calcul
polinomial.
Motivul care conduce la acest timp de calcul, tine de
mecanismul tehnicii.
Să presupunem că mulţimea din care se face alegerea are n
elemente si că soluţia are tot n elemente (caz maxim). Se fac n alegeri, la
fiecare alegere se fac n teste, rezulta un algoritm cu timp O(n2
).
De multe ori este necesar ca elementele mulţimii A să fie sortate,
pentru ca apoi să alegem din acestea, iar sortarea necesita un timp minim
O(n * log2n). Insă sortarea se efectuează la început. Prin urmare, acest
timp se adună, deci nu influenţează rezultatul.

More Related Content

Metoda Greedy

  • 2. Tehnica GreedyTehnica 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 finala.Problema=problemele locale care dau solutii ce se asambleaza in solutia finala. Obs: cand strategia nu duce la o solutie(in cazul neliniaritatilor) Se da o multime A si se cere (B inclus in A) care are criteriile obligatorii si se cer si criteriile de optimalitate neobligatorii.Solutia este de a alege un elem. din A succesiv care maximalizeaza optimalitatea in momentul alegerii lui=>se construieste B prin respectarea criteriilor obligatorii.Solutiile cu ajutorul alg. Dextra.
  • 3. Metode de instruire folositeMetode de instruire folosite •Conversatia euristica •Observatia participativa •Expunerea •Invatarea prin descoperire dirijata •Metoda orientata pe exemple si pe rezolvarea de exercitii in laborator •Modelarea matematica •Instruirea asistata de calculator
  • 4. 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 in calitate de solutie.
  • 5. - tehnica Greedy poate fi privită ca un caz particular al tehnicii Backtracking, în care se renunţă la mecanismul de întoarcere; - ambele tehnici oferă soluÅ£ii sub formă de vector; -tehnica Backtracking poate oferi toate soluÅ£iile problemei, în timp ce tehnica Greedy oferă o singură soluÅ£ie; -tehnica Greedy nu dispune de mecanimul întoarcerii, specific tehnicii Backtracking. Greedy - Backtracking
  • 6. - tehnica Greedy conduce mai repede la o solutie. - 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. Greedy – Metoda trierii
  • 7. ·        Pentru a rezolva o problemă cu Greedy, soluÅ£ia se construieÅŸte, după regula: Pentru fiecare element care urmeză să fie adăugat soluÅ£iei finale, se efectuează o alegere a sa din elementele mulÅ£imii A (după un mecanism specific fiecărei probleme în parte), iar dacă este posibil, aceasta este adăugat. Algoritmul se termină fie cînd a fost găsită soluÅ£ia cerută, fie cînd s-a constatat inexistenÅ£a 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 selecÅ£ie nu sunt indicate în mod explicit în condiÅ£ia problemei si totul depinde de ingeniozitatea programatorului.
  • 8. Schema generală a unui algoritm bazat pe metoda Greedy: While ExistaElemente do begin AlegeUnElement(x); IncludeElementul(x) end.
  • 9. 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ă soliÅ£ii, chiar dacă nu optime, atunci apropiate de acestea, dar care au fost obÅ£inute în timp util. Multe din aceste soliÅ£ii sunt obÅ£inute cu Greedy. Astfel de agoritmi se numesc algoritmi euristici.
  • 10. Metoda Greedy are două componente: - stabilirea soluÅ£iei de început; - optimizarea acesteia. Să luăm un exemplu concret , pe baza căruia vom ilustra cum se ‘’construieÅŸte’’ soluÅ£ia. Fie secvenÅ£a : 8, 7, 8, 4, 9, 7, 5, 5, 4, 8, 7, 5, 9. Deoarece A (1) este 8, nefiind număr prim se porneÅŸte cu soluÅ£ia iniÅ£ială S:=0 (dacă A (1) ar fi fost număr prim, am fi pornit cu soluÅ£ia s:=A(1)). Apoi valorile lui S vor fi: S:=0 S:=0+7=7 S:=7+5=12 De remarcat caracterul constructiv al soluÅ£iei. Un termen curent (fie acesta A( i )) contribuie la valoarea lui S dacă îndeplineÅŸte două condiÅ£ii : - este un număr prim; - n-a mai fost utilizat. Dacă in prealabil ordonăm crescător secvenÅ£a considerată obÅ£inem: 4, 4, 5, 5, 5, 7, 7, 7, 8, 8, 8, 9, 9 ÅŸi astfel se “vede’’ mult mai uÅŸor repetabilitatea unui numar prim( faţă de situaÅ£ia iniÅ£ială când pentru a constata dacă un număr prim a fost sau nu utilizat trebuie să parcurgem întreaga secvenţă de fiecare dată ).
  • 11. Pe baza afirmaÅ£iilor anterioare rezultă un model de rezolvare pentru problema propusă, model care dă structura generală a metodei Greedy : Citire ( n , A); Ordonare ( n , A ); If A [1] = NumarPrim Then S := A[1] Else S:=0; I := 2; While I ≤ n do begin If (A[ I] <> A(I-1) )and (A [I] =Numarprim ) Then S := S +A [I] I := I+1; End;
  • 12. Tehnica Greedy conduce la timp de calcul polinomial. Motivul care conduce la acest timp de calcul, tine de mecanismul tehnicii. Să presupunem că mulÅ£imea din care se face alegerea are n elemente si că soluÅ£ia are tot n elemente (caz maxim). Se fac n alegeri, la fiecare alegere se fac n teste, rezulta un algoritm cu timp O(n2 ). De multe ori este necesar ca elementele mulÅ£imii A să fie sortate, pentru ca apoi să alegem din acestea, iar sortarea necesita un timp minim O(n * log2n). Insă sortarea se efectuează la început. Prin urmare, acest timp se adună, deci nu influenÅ£ează rezultatul.