====== 02 Prohledávání I ======
Budeme diskutovat jak hledat, když nevím jak je cíl daleko. Co znamená, že algoritmus prohledávání je //úplný, optimální//.
* diskuse nad řešením prvního DÚ
* AI-gym problémy?
* Quizz
===== prohledávácí rozcvička =====
Ačkoli mnozí jste již netrpěliví skočit na hledání cesty v bludišti, začněte jednoduchým grafem. Je to menší problém, bude se vám snáz krokovat a debugovat. Hledání cesty v grafech z přednášky si můžete vyzkoušet pomocí {{ :courses:b3b33kui:cviceni:program_po_tydnech:kuigraphs.py |''kuigraphs.py''}}. Základní komunikační rozhraní je stejné jako pro ''kuimaze''. Tedy
import kuigraphs
env = kuigraphs.KuiGraph()
observation = env.reset()
states_with_costs = env.expand(state) # list of tuples ('a',1)
env.set_path(path)
''state'' je písmeno, jako v přednášce, 'S', 'a', ... 'G'. Vyzkoušejte různé strategie prohledávání. Pokud napíšete dostatečně obecně, stejný kód bude fungovat i pro případ
env = kuimaze.InfEasyMaze()
Rozmyslete si trochu nad papírem datové struktury, které budete potřebovat.
> {{page>courses:b3b33kui:internal:cviceni:tyden_02#programming}}
===== hledání cesty v bludišti =====
V prostředí [[courses:b3b33kui:cviceni:prohledavani_stavoveho_prostoru:start|Prohledávání stavového prostoru]] naprogramujte nalezení nejlevnější cesty. Nezapomeňte, že cena přechodu mezi pozicemi nemusí být nutně všude stejná.