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.