{{indexmenu_n>9}}
Obsah této stránky bude přístupný od 10. 4. 2017.
====== Prohledávání stavového prostoru - informované prohledávání ======
//Autoři textu: Milan Rollo, Eduard Semsch, Štěpán Urban, Viliam Lisý a Petr Benda// \\ //Úprava: Tibor Strašrybka//
==== Úvod ====
Cvičení je zaměřeno na procvičení znalostí o **informovaném prohledávání** stavového prostoru. Cílem je, aby studenti pochopili UCS algoritmus, greedy algoritmus, A* a byli schopni uvažovat o jejich vlastnostech a omezeních. Plán cvičení je:
* Informované prohledávání stavového prostoru
* Prohledávání podle dosavadní ceny - příklad na mapě. Uniform Cost Search //(f = g)//
* Prohledávání podle budoucí ceny, greedy - příklad na mapě. //(f = h)//
* A, A* jako kombinace výše zmíněných - příklad na mapě. //(f = g + h)//
* Prakticky orientovaná diskuse o vlastnostech A*.
===== Příklady =====
==== Bludiště ====
Máte dánu mapu bludiště. Černá políčka jsou neprostupná, cena průchodu šedým polem je 3, bílým polem 1, úkolem je naplánovat cestu z místa A do místa B (nebo C) s minimální cenou.
{{:courses:a3b33kui:cviceni:obrazky:08_obr1.png?800|Mapa bludiště}}
=== 1) Algoritmus se stejnoměrnou cenou (Uniform cost search, UCS) ===
Použijte UCS algoritmus pro nalezení cesty do bodu B, při startu v bodu A. Nalezne algoritmus optimální řešení?
=== 2) Hladové uspořádané prohledávání (Greedy best-first search) ===
Aplikujte best-first search algoritmus. Jako hodnotící funkci využijte vzdálenost od cíle v taxikářské metrice (suma absolutních rozdílů v obou souřadnicích, také manhattanská vzdálenost). Při stejném ohodnocení jsou preferována bílá pole, při stejném ohodnocení bílých polí je následovník vybrán náhodně.
Úkol stejný jako výše, liší se jen algoritmus.
=== 3) A, A* ===
Aplikujte algoritmus A, heuristika je opět dána vzdáleností do cíle v taxikářské metrice.
Úkol stejný jako výše, porovnejte počet kroků a optimalitu řešení mezi třemi algoritmy. Jde v tomto případě o algoritmus A nebo A*?
==== Rozvrhování produkce ====
V továrně je třeba naplánovat (rozvrhovat) výrobu 50 druhů produktů na výrobní lince. Omezení jsou dána **kapacitou** linky v kusech/hodinu pro každý druh produktu a požadavky na **dodávky** daného počtu kusů různých produktů v čase (řádově stovky požadavků). Zisk (tzn. optimalita) je ovlivněn rovnoměrností zatížení linky (kvůli ceně přesčasů a prostojů) a cenou za den skladování každého předčasně vyrobeného kusu.
Z praktických důvodů (čas nastavení strojů) je nutné pokud možno vyrábět souvislé zakázky kusů jednoho druhu. Nulový počáteční sklad.
Navrhněte formální zápis problému, popište stavový prostor a omezení, navrhněte heuristiku a diskutujte o vlastnostech A* algoritmu při řešení této úlohy.
==== Příklad na heuristiku ====
**Letadlo:** Může letět ve čtyřech letových hladinách, spotřeba paliva v první je 5 jednotek paliva/jednotka vzdálenosti, druhé 4 atd. Spotřeba paliva při stoupání je 10, při klesání 1. Letadlo se má přemístit mezi letišti vzdálenými 10 jednotek vzdálenosti. Nádrž letadla pojme 50 jednotek paliva, optimalizujte spotřebu.
{{:courses:a3b33kui:cviceni:obrazky:08_obr2.png?800|Letové hladiny}}