Aici sunt prezentate diferențele dintre versiunile selectate și versiunea curentă a paginii.
Ambele părți revizuirea anterioară Versiuni anterioare Urmatoarea versiune | Versiuni anterioare Urmatoarea versiune Ambele părți următoarea reviziune | ||
laboratoare:laborator-13 [2017/02/19 21:23] mihai.iacov |
laboratoare:laborator-13 [2017/02/19 23:30] mihai.iacov [1.2 Greedy vs. Dijkstra] |
||
---|---|---|---|
Linia 13: | Linia 13: | ||
| | ||
*În multe cazuri, funcţia de " | *În multe cazuri, funcţia de " | ||
- | | + | |
====1.2 Greedy vs. Dijkstra==== | ====1.2 Greedy vs. Dijkstra==== | ||
+ | |||
+ | Folosind noţiunile de mai sus, încercăm să identificăm funcţiile de cost potenţial pentru următoarea problemă: găsirea unui drum de cost minim de la un nod sursă(S) la un nod destinaţie(D) într-un graf. | ||
+ | |||
+ | | ||
+ | *Un candidat face parte din soluţie dacă drumul căutat trece prin el | ||
+ | | ||
+ | | ||
+ | | ||
===Greedy=== | ===Greedy=== | ||
- | funcţia de **cost** = posibilul cost din punctul | + | Definim |
+ | Metoda Greedy construieşte soluţia alegând mereu **optimul local**, cu alte cuvinte | ||
+ | *h(C) = 0, pentru că deja am inclus nodul C în soluţia parţială | ||
+ | *h(N) = costul muchiei (C,N), pentru orice nod N care **nu este deja** în soluţia parţială | ||
===Dijkstra=== | ===Dijkstra=== | ||
- | funcţia de **cost** = costul din punctul iniţial până în punctul | + | Definim |
+ | |||
+ | <note important> | ||
+ | |||
+ | ===Observaţii=== | ||
+ | |||
+ | *În general, nu este **necesar** şi nici **suficient** ca funcţia de cost potenţial a unui nod să fie 0 pentru ca acel nod să facă parte din soluţia finală. | ||
+ | | ||
+ | *La algoritmul lui Dijkstra, în afară de nodurile S şi D, celelalte noduri au cost potenţial nenul(excepţie dacă există muchii de cost 0). | ||
+ | |||
+ | <note warning> | ||
+ | |||
+ | ===Performanţe=== | ||
+ | |||
+ | | ||
+ | | ||
f = g + h | f = g + h |