LINUXSOFT.cz
Nazwa użytkownika: Hasło:     
    CZ UK PL

> Komentarze :: článek Grafy a grafové algoritmy I

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
Wikipedia-Dijkstrov algoritmus 10.2.2011 22:13 Tomas Hreben
  L Re: Wikipedia-Dijkstrov algoritmus 10.2.2011 23:24 Petr Sklenička
    L Re: Wikipedia-Dijkstrov algoritmus 11.2.2011 06:46 Tomas Hreben
      L Re: Wikipedia-Dijkstrov algoritmus 11.2.2011 10:48 Petr Sklenička
Tylko zarejestrowani użytkownicy mogą dopisywać komentarze.
> Szukanie oprogramowania
1. Pacman linux
Download: 4709x
2. FreeBSD
Download: 8881x
3. PCLinuxOS-2010
Download: 8386x
4. alcolix
Download: 10651x
5. Onebase Linux
Download: 9455x
6. Novell Linux Desktop
Download: 0x
7. KateOS
Download: 5950x

1. xinetd
Download: 2236x
2. RDGS
Download: 937x
3. spkg
Download: 4334x
4. LinPacker
Download: 9595x
5. VFU File Manager
Download: 3024x
6. LeftHand Mała Księgowość
Download: 6842x
7. MISU pyFotoResize
Download: 2598x
8. Lefthand CRM
Download: 3395x
9. MetadataExtractor
Download: 0x
10. RCP100
Download: 2867x
11. Predaj softveru
Download: 0x
12. MSH Free Autoresponder
Download: 0x
©Pavel Kysilka - 2003-2024 | mailatlinuxsoft.cz | Design: www.megadesign.cz