Documente Academic
Documente Profesional
Documente Cultură
ro
Metoda Greedy
Prezentare [1]
Metoda Greedy (greedy=lacom) este aplicabil problemelor de optim.
Considerm mulimea finit A={a1,...,an} i o proprietate p definit pe mulimea
submulimilor lui A (notat P(A)):
p() 1
p:P(A){0,1} cu
p(X) p(Y),Y X
prel(A)
S
for i=1,n
if p(S{ai})=1
SS{ai}
SS{x}
Observaii:
- n algoritm nu apare funcia f
- dificultatea const n a concepe procedurile alege, respectiv prel, n care este
"ascuns" funcia f.
Exemplul 1 Se consider mulimea de valori reale A={a1,...,an}. S se determine o
submulime a lui A a crei sum a elementelor este maxim.
Soluie. Vom parcurge mulimea i vom selecta numai elementele pozitive. Dac nu exist
elemente pozitive, soluia este dat de cel mai mare element din mulime. Corectitudinea
soluiei este evident.
Exemplul 2 (Contraexemplu) Se consider mulimea A={a1,...,an} cu elemente pozitive.
S se determine o submulime a lui A de sum maxim, dar cel mult egal cu o valoare M
dat.
Dac alegem la fiecare pas cel mai mare element care poate fi adugat la soluie fr a
depi M, pentru A={6,3,4,2} i M=7 obinem {6}. Dar soluia optim este {3,4} cu suma
egal cu 7.
Continum cu prezentarea unor exemple clasice.
De aceea, pentru a vedea dac activitatea curent ac este compatibil cu toate celelalte
activiti existente la momentul curent n AS este suficient ca sac tuas.
Corectitudine. Idee: faptul c algoritmul de mai sus construiete o soluie optim poate fi
demonstrat prin inducie, innd cont de urmtoarele observaii.
a) Exist o soluie optim care ncepe cu activitatea 1.
b) Fie A o soluie cu 1 A i S' = { kS, sk t1 } mulimea activitilor care ncep dup
ce se termin 1. Problema se reduce la determinarea unei soluii optime pentru S'
(detalii la curs)
Varianta 2 [2]: Considerm o soluie optim O= {o1, ,op} (cu activitile notate astfel nct
to1<= <= top) care are un numr maxim de elemente iniiale n comun cu soluia Greedy AS
= {g1, ,gk}, k<=p. Deoarece pentru orice i=1,,k avem tgi<=toi (a i-a activitate aleas de
algoritmul Greedy are timpul de terminare mai mic sau egal cu a i-a activitate din soluia
optim), rezult p = k i O=AS (detalii la curs).
Variante. Generalizri
1. Problema partiionrii intervalelor (v. laborator, seminar, [2])
2. Cazul n care fiecare interval are asociat o pondere (un profit asociat activitii) i se
cere determinarea unei submulimi de intervale disjuncte de pondere maxim
1 n
Tp(k).
n k1
1 n
(n k 1)L(pk)
n k1
Dac suma greutilor obiectelor este mai mic dect G, atunci ncrcm toate
obiectele: x=(1,...,1). De aceea presupunem n continuare c g1+...+gn>G.
Conform strategiei Greedy, ordonm obiectele descresctor dup ctigul la unitatea
de greutate, deci lucrm n situaia:
c1 c2
c
... n
g1 g2
gn
(*)
yk<xk:
gk(xk-yk)=(1-)(gk+1yk+1++gnyn)
5
(**)
g
gk g j
g
pentru j>k . nlocuind k cu j pentru j>k i folosind (**)
ck c j
ck
cj
rezult f(y)-f(y) 0, deci f(y') f(y). Deoarece y este optim, rezult c f(y') =
f(y). Contradicie, y are mai multe elemente iniiale n comun cu x dect y .
Variante. Generalizri
Problema discret a rucsacului difer de cea continu prin faptul c fiecare obiect
poate fi ncrcat numai n ntregime n rucsac.
S observm c aplicarea metodei Greedy eueaz n acest caz. ntr-adevr, aplicarea
ei pentru: G=5, n=3 i g=(4,3,2), c=(6,4,2.5)
are ca rezultat ncrcarea primul obiect; ctigul obinut este 6. Dar ncrcarea ultimelor dou
obiecte conduce la ctigul superior 6.5.
Bibliografie
1. Horia Georgescu. Tehnici de programare. Editura Universitii din Bucureti 2005
2. Jon Kleinberg, va Tardos - Algorithm Design, 2005 Addison-Wesley Professional
Slideu-rile oficiale pentru aceast carte se pot gsi la
http://www.cs.princeton.edu/~wayne/kleinberg-tardos/pearson/
o versiune mbogit a acestora este accesibil la adresa
http://www.cs.princeton.edu/~wayne/kleinberg-tardos