předchozí - obsah části - obsah - další | dotazy/odpovědi

Heuristické algoritmy ··· Problém obchodního cestujícího

Mějme neorientovaný hranově ohodnocený graf. Úkolem je najít v něm takovou "okružní cestu" (kružnici), která prochází všemi uzly a má nejkratší možnou délku. Naimplementujte v Javě jednoduché heuristické hledání takové cesty založené na tom, že v každém uzlu za předpokládané optimální pokračování cesty zvolíme takový dosud nenavštívený sousední uzel, do nějž vede nejkratší hrana (s nejnižším ohodnocením). Za výchozí uzly "okružní cesty" volíme postupně všechny uzly a z nalezených cest vybereme tu nejkratší. Proces řešení spusťte např. stiskem tlačítka v GUI. Hrany nalezené kružnice můžete na grafu barevně odlišit.

pozn.: Pascalská verze algoritmu je k vidění např. ve starších materiálech I065 nebo na webu http://www.fi.muni.cz/~xskrivan/vyuka/I065/2000-jaro/index.html - tato verze ale nalezne jen cestu z jednoho výchozího uzlu. Bude třeba ji "obalit" ještě jedním cyklem a v něm měnit výchozí uzel.

pozn.: Heuristický algoritmus nemusí vždy nalézt optimální řešení.


předchozí - obsah části - obsah - další | dotazy/odpovědi
Slidy předmětu byly navštíveny krát.