Obsah
5. | Struktura programu – datové struktury
|
6. | Struktura programu – predikáty
|
Úryvek
"Řešení
Stavový prostor úlohy obsahuje 9! = 362880 stavů. Teoreticky by tedy bylo možno provést úplné prohledání celého stavového prostoru. Naše řešení však používá algoritmus prohledávání s heuristickým ohodnocením, tzv. algoritmus A*.
Tento algoritmus přednostně otvírá ty cesty k cíli, které mají lepší ohodnocení získané pomocí heuristické funkce g. Toto ohodnocení se sečte s cenou současné cesty f, čímž získáme výslednou hodnotu h. Podle této hodnoty je postup zařazen do prioritní fronty, ze které jsou odebírány stavy s nejnižším ohodnocením.
Algoritmus A* sice nezaručuje, že bude nalezena nejkratší cesta, přesto je navržen tak, aby při „nepříliš chybné“ heuristické funkci „zřídkakdy nalezl příliš špatné řešení“. (Podrobnosti viz [1])
Heuristická funkce
Jako heuristické ohodnocení používá náš algoritmus součet vzdáleností každého kamene od jeho cílové pozice. (V tzv. Manhattanské metrice, kde r = x+y.)
Další vylepšení
Při generování tahů, možných při aktuálním stavu desky, se neuvažuje takový tah, který by byl jen tahem opačným k minulému tahu (tj. pokud poslední tah byl „vlevo“, nikdy se nezkouší tah „vpravo“ jako pokračování).
Jako prostředek dalšího urychlení algoritmu se v každém kroku ořízne fronta otevřených stavů na 16 nejperspektivnějších stavů. Tím se samozřejmě hypoteticky otevírá možnost, že toto omezení spolu s chybnou heuristickou funkcí nedokáže vůbec najít cestu k cíli, praktické výsledky však tuto možnost nepotvrzují.
Ne každou desku hry Lišák je možno legálními tahy dovést do cílového stavu. Přesněji řečeno, graf tahů ve stavovém prostoru má právě dvě komponenty. Program toto testuje, a pokud je daná deska nedohratelná, predikát vyres (viz níže) selže, aniž by došlo k jinak nevyhnutelnému nekonečnému cyklu při hledání neexistujícího řešení."
Vlastnosti
Číslo práce: | 6840 |
---|
Autor: | - |
Typ školy: | VŠ |
Počet stran:* | 2 |
Formát: | Nezadáno |
Odrážky: | Nezadáno |
Obrázky/grafy/schémata/tabulky: | Ne |
Použitá literatura: | Ne |
Jazyk: | čeština |
Rok výroby: | 2002 |
Počet stažení: | 506 |
Velikost souboru: | 7 KiB |
* Počet stran je vyčíslen ve standardu portálu a může se tedy lišit od reálného počtu stran. |
STÁHNOUT PRÁCI
Práci nyní můžete stáhnout kliknutím na odkazy níže.
Zabalený formát ZIP: x453a1f5f39b94.zip (7 kB)
Nezabalený formát:
Práce do 2 stránek a práce uvolněné zdarma (na žádost autorů nebo z popudu týmu) jsou volně ke stažení.