Sunteți pe pagina 1din 16

METODA:TRIERII,GREEDY

ȘI RELUĂRII
METODA TRIERII

Definiție:

• Se numește metoda trierii metoda ce identifică


toate soluțiile unei probleme in dependență de
mulțimea soluțiilor posibile. Toate soluțiile se
indentifică prin valori, ce aparțin tipurilor de date
studiate: integer, boolean, enumerare sau
subdomeniu. În probleme mai complicate este
nevoie de a reprezenta aceste elemente prin
tablouri, articole sau mulțimi.
Schema de aplicare a metodei trierii este
reprezentată mai jos:
• Schema generală a unui algoritm bazat pe metoda trierii poate
fi redată cu ajutorul unui ciclu:

• For i:= 1 to n do
• if SolutiePosibila (Si) then PrelucraereaSolutiei (Si)

Unde SolutiePosibila este o funție booleană care returnează


valoarea true dacă elementul Si satisface condițiile problemei și
false în caz contrar, iar PrelucraereaSolutiei este o procedură
care efectuează prelucrarea elementului selectat.
• Concluzie

• Avantajul principal al algoritmilor bazați pe metoda


trierii constă în faptul că programele respective sunt
relativ simple, iar depanarea lor nu necesită teste
sofisticate. În majoritatea problemelor de o reală
importanță practică metoda trierii conduce la algoritmii
exponențiali. Întrucît algoritmii exponențiali sunt
inacceptabili în cazul datelor de intrare foarte mari,
metoda trierii este aplicată numai în scopuri didactice
sau pentru elaborarea unor programe al căror timp de
execuție este critic.
EXEMPLU
TEHNICA GREEDY

• Un algoritm greedy va funcţiona asemănător


modului de gândire al unui om lacom: va
consuma elemente dintr-o anumită secvenţă, de
fiecare dată luând acel element, ce se potrivește
cel mai bine cu un anumit criteriu, fără a privi în
perspectivă. Deși prima impresie ar fi că această
abordare este una greșită, datorită conotaţiei
cuvântului lacom, totuși uneori algoritmii de acest
tip pot duce la soluţii simple și eficiente.
• Un algoritm greedy este potrivit atunci când trebuie să luăm o
serie de decizii, și anume pe cea mai convenientă la un
moment dat. Această alegere este un optim local, iar speranţa
este ca, într-un final să fie obţinută soluţia globală, însă nu se
întâmplă așa întotdeauna. Pentru un algoritm dat, va trebui să
determinăm dacă soluţia este sau nu optimă. În cele mai multe
situaţii avem: - O mulţime de candidaţi ( valori de ales, noduri
in graf etc.) - O funcţie care verifică dacă o mulţime de
candidaţi constituie o soluţie posibilă, nu neapărat optimă, a
problemei - O funcţie care verifică dacă o mulţime de candidaţi
este fezabilă, adică dacă este posibil să completăm această
mulţime astfel încât să obţineam o soluţie posibilă (nu
neapărat optimă). - O funcţie de selecţie ce indică într-un
anumit moment care este cel mai potrivit dintre candidaţii
nefolosiţi. - O funcţie obiectiv care dă valoarea unei soluţii
(timpul necesar executării tuturor lucrărilor într-o anumită
ordine), lungimea drumului pe care l-am găsit etc).
• Schema generală a unui algoritm bazat pe metoda Greedy poate fi redata cu
ajutorul unui ciclu :
• While ExistaElemente do
• Begin
• AlegeUnElement (x) ;
• IncludeElementul(x);
• end
• Funcție ExistaElemente returneaza valoara true daca în mulțimea A există elemente
care satisfac criteriul de selecție. Procedura AlegeUnElement extrage din mulțimea A
un astfel de element x , iar procedura IncludeElementul înscrie elementul selectat în
submulțimea B.
Complexitatea temporală

A algoritmurilor bazați pe metoda Greedy poate fi


evaluată urmând schema generală de calcul. De obicei
timpul cerut de procedurile ExistaElemente,
AlegeUnElement și IncludeElementul este de oridinul n.
În componența ciclului while aceste proceduri se
execută cel mai mult de n ori
EXEMPLU
METODA RELUĂRII

• În metoda reluării se presupune că soluția problemei pe care


trebuie să o rezolvăm poate fi reprezentată printr-un vector:
X=(x1,x2,...,xk,...,xn).Fiecare componentă xk a vectorului X
poate lua valori dintr-o anumită mulțime Ak, k=1,2,...,n. Se
consideră că cele mk elemente ale fiecărei mulțimi Ak sânt
ordonate conform unui criteriu bine stabilit
DENUMIREA ENGLEZĂ

• Menționăm faptul că anume micșorarea lui k dă nume metodei


studiate, cuvântul ,, reluare,, semnificând revenirea la alte
varinte de alegere a variabililor x1,x2,...,xk-1. Evident ,
aceeași semnificație o are și denumirea engleză a metodei în
studiu-backtracking
SCHEMA GENERALĂ

• begin
• If k;=n then
• Begin
• x[k] : = PrimulElement (k);
• If continuare (k) then Reluare (k+1)’
• While ExistaSuccesor (k) do
• Begin
• X[k]:=succesor (k);
• If continuare (k) then reluare (k+1)
• End; {while}
• End {then}
• Else PrelucareaSolutiei;
• end; {reluare}
EXEMPLU:
SFÂRȘIT