|
|
Wikipedia-Dijkstrov algoritmus
|
10.2.2011 22:13
Tomas Hreben
|
Chcem sa spitat na wikipendi som si teraz cital o floydovom algoritme a neda mi ale kod co je pouzity ako ukazka v Dijkstrovom algoritme sa uplne zhoduje s Floydovim. Chcel by som sa este spitat ze ako sa da spravit aby mi algoritmus vypisal ze cez ktore vrcholi sa pojde.
stranka na floydov algoritmus: http://en.wikipedia.org/wiki/Floyd%E2%80%93Warshall_algorithm |
|
|
Re: Wikipedia-Dijkstrov algoritmus
|
10.2.2011 23:24
Petr Sklenička
|
Floydův (Floyd-Warshallův) algoritmus slouží k nalezení nejkratších cest mezi všemi dvojicemi vrcholů. Najde tedy metriku grafu. Algoritmus, který zjistí metriku grafu, jsem do článku zahrnul. Neuvedl jsem jen název tohoto algoritmu, takže - počítáme-li metriku grafu, používáme Floydův algoritmus. Tento algoritmus se tedy shoduje s mým kódem pro výpočet metriky. Nevím ale, kde vidíte shodu s Dijkstrovým algoritmem.
Co se týče druhé části dotazu, tak pokud budete chtít cestu mezi vrcholy vypsat, je pozpátku uložena v poli predecessors. Dejme tomu, že hledáte
cestu z vrcholu 0 do vrcholu 3 (beru v úvahu graf z článku). Pak stačí něco takového:
if (node == 3)
{
int tmp;
cout << "Cesta z " << u << " do 3: 3 - ";
tmp = predecessors[3];
while (predecessors[tmp] != predecessors[u])
{
cout << tmp << " - ";
tmp = predecessors[tmp];
}
cout << u;
}
Tento kód stačí dát na místo, kde je v mém kódu komentář, že zde je možné algoritmus ukončit.
|
|
|
Re: Wikipedia-Dijkstrov algoritmus
|
11.2.2011 06:46
Tomas Hreben
|
dakujem za ujasnenie.... a chcel by som sa este spitat ked sa to programuje v Jave tak ako sa spravi ten vypis tam? A co je to za premennu Predecessors? |
|
|
Re: Wikipedia-Dijkstrov algoritmus
|
11.2.2011 10:48
Petr Sklenička
|
Do pole predecessors se ukladaji predchudci danych uzlu. Kdyz to budete chtit napsat v Jave, tak pokud ten kod "opisete" tak se u toho vypisu zmeni jen cout na System.out.println, jinak by to melo byt stejne. Zkratka pokud zachovate algoritmus, jen to prepisete podle Javove syntaxe, moc zmen v kodu nebude. |
|
|
|
|
KOMENTARZE
|
Tylko zarejestrowani użytkownicy mogą dopisywać komentarze.
|
|
Szukanie oprogramowania
|
©Pavel Kysilka - 2003-2024 |
maillinuxsoft.cz | Design:
www.megadesign.cz
|