Search
Autor textu: Petr Benda Úprava: Tibor Strašrybka
Toto cvičení předpokládá základní znalost Javy a NetBeans IDE.
Implementujte algoritmy prohledávání stavového prostoru do šířky a do hloubky. Implementujte je pomocí seznamů OPEN a CLOSED, pak se oba algoritmy liší minimálně. Výstupem algoritmu bude první nalezená cesta mezi počátečním a koncovým uzlem, které zadá uživatel. Použijte připravené knihovny uživatelského rozhraní. Prohledávaný prostor je definován planárním grafem.
BFS.java
bfs
noVisio
runBFS_noviso.bat
node.isTarget()
true
expand()
kui.Node
hashCode()
equals()
findWay()
Application.main
runBFS.bat
try { Thread.sleep(10); // 10 ms } catch (InterruptedException ex) { ex.printStackTrace(); }
Nastavení počátečního a koncového uzlu v grafu provedete kliknutím levého tlačítka myši, přiblížení a oddálení kolečkem myši. Pokud držíte pravé tlačítko myši, můžete pohybovat s mapou. Barva expandované hrany určuje dobu, kdy byla expandována. Nejstarší expandované hrany jsou zelené, následují modré, fialové, červené a nejmladší jsou žluté. Zadání nového hledání cesty je možné po stisknutí klávesy r.
r
Implementujte algoritmus A*. Výstupem algoritmu bude nejkratší cesta mezi počátečním a koncovým uzlem, které zadá uživatel. Navrhněte a použijte heuristickou funkci. Použijte připravené knihovny uživatelského rozhraní. Prohledávaný prostor je definován planárním grafem.
AStar.java
InformedSearchingAlgorithm
astar
Nevytvářejte žádné další soubory, všechen potřebný kód umístěte do AStar.java.
kui