====== 02 Prohledávání II ====== Některé cesty vedou k nalezení cíle možná rychleji. Jak to můžeme odhadnout. Heuristická funkce. Jaké heuristiky jsou //nejlepší, přípustné//? * Diskuse nad řešením prvního DÚ * Quizz I, II * Prohledávací rozcvička ===== Quizz I ===== > {{page>courses:b3b33kui:internal:quizzes#Plánování letových hladin}} ===== Quizz II ===== > {{page>courses:b3b33kui:internal:quizzes#padajici_2_vejce}} ===== 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}} ===== programování hledání ===== * Python [[https://docs.python.org/3/library/queue.html|queue]] nebo [[https://docs.python.org/3.6/library/heapq.html|heapq]] vám mohou pomoci při ukládání uzlů prohledávacího stromu. ===== různé ===== * [[http://tristanpenman.com/demos/n-puzzle/|visualizace]] řešení n-1 puzzle