1 / 16

Umělá inteligence

Umělá inteligence. Stavový prostor. „Opakování“. Existují úlohy, pro které není k dispozici univerzální algoritmus řešení různé hry problém batohu, problém obchodního cestujícího Přesto je člověk schopen je řešit lidské řešení je nedeterministické musíme mít znalosti o problému

rafiki
Télécharger la présentation

Umělá inteligence

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Umělá inteligence Stavový prostor

  2. „Opakování“ • Existují úlohy, pro které není k dispozici univerzální algoritmus řešení • různé hry • problém batohu, problém obchodního cestujícího • Přesto je člověk schopen je řešit • lidské řešení je nedeterministické • musíme mít znalosti o problému • musíme znát strategie • nedokážeme řešení úlohy zapsat jako sekvenci opakujících se kroků • on-line úlohy

  3. „Opakování“ • Pokud nedokážeme úlohu algoritmizovat, můžeme zkusit všechny možnosti (brute-force) • Příklad: piškvorky • při pokusu o algoritmizaci strategie zjistíme, že algoritmus roste se složitostí úlohy • pro 3×3 potřebujeme jiný algoritmus než pro 5×5 • počet variant tahů roste faktoriálem • → nelze zkoušet všechny možnosti • nejjednodušší strategie – blokování • nevede k cíli, a její implementace je netriviální • úlohu je potřeba řešit zcela jinak

  4. Co s tím? • Řešením je převést (libovolnou) úlohu do stavového prostoru • definujeme stavy – situace, ve kterých se může řešení problému nacházet • přechody mezi stavy – operace pro transformaci jednoho stavu na druhý • často velmi abstraktní • řešení úlohy = nalezení požadovaného stavu a cesty k němu ve stavovém prostoru • stavový prosto reprezentujeme pomocí grafu

  5. Ukázka

  6. Strategie prohledávání • prohledávání do hloubky • prohledávání do šířky • hledání prvního nejlepšího • A* • algoritmy iterativního vylepšování • simulované žíhání, gradientní sestup • nedeterministické algoritmy • neuronové sítě • genetické algoritmy • …

  7. Vsuvka • paměťová náročnost • počet stavů, které musíme prohledat • začínáme pesimistickými odhady • musíme prohledat všechny stavy • pak optimalizujeme • časová náročnost • rychlost jakou roste počet operací, které musíme provést • máme algoritmus s časovou složitostí O(n2) • vyzkoušíme zpracovat 100 stavů • jak dlouho bude trvat zpracování 106 stavů?

  8. Prohledávání do šířky • Seznam OPEN a CLOSED • Seznam OPEN je fronta (FIFO) • Zapiš počáteční stav do seznamu OPEN, seznam CLOSED je prázdný. Je-li počáteční stav současně stavem cílovým, ukonči prohledávání. • Pokud je seznam OPEN prázdný, řešení neexistuje, ukonči prohledávání. • Vymaž první stav (označíme jej i) v seznamu OPEN a zapiš tento stav do seznamu CLOSED. • Expanduj stav i. Pokud tento stav nemá následovníky nebo všichni následovníci byli již expandování (tj. jsou v seznamu CLOSED), pokračuj krokem č. 2. • Zapiš všechny následovníky stavu i, kteří nejsou v seznamu CLOSED na konec seznamu OPEN. • Pokud některý z následovníků stavu i je cílovým stavem, řešení bylo nalezeno, ukonči prohledávání. Jinak pokračuj krokem č. 2.

  9. Prohledávání do šířky • Výhodou prohledávání do šířky je to, že tímto postupem najdeme nejprve nejdříve dosažitelné cílové stavy. • Tedy najdeme nejkratší cestu z výchozího do cílového stavu. • Piškvorky 3×3 je možné skončit po 5 až 9 tazích • prohledáváním do šířky nalezneme nejprve výherní stavy dosažitelné po 5 tazích. • Nevýhodou prohledávání do šířky je nutnost udržovat seznam uzlů OPEN, což vede k velké paměťové náročnosti algoritmu.

  10. Prohledávání do hloubky • Seznam OPEN je zásobník (LIFO) • Zapiš počáteční stav do seznamu OPEN, seznam CLOSED je prázdný. Je-li počáteční stav současně stavem cílovým, ukonči prohledávání. • Pokud je seznam OPEN prázdný, řešení neexistuje, ukonči prohledávání. • Vymaž první stav (označím jej i) v seznamu OPEN a zapiš tento stav do seznamu CLOSED. • Pokud se hloubka uzlu i rovná maximální přípustné hloubce, pokračuj krokem č.2. • Expanduj stav i. Pokud tento stav nemá následovníky nebo všichni byli již expandováni (tj. jsou v seznamu CLOSED), pokračuj krokem č.2. • Zapiš všechny následovníky stavu i, kteří nejsou v seznamu CLOSED, na začátek seznamu OPEN. • Pokud některý z následovníků stavu i je cílovým stavem, řešení bylo nalezeno, ukonči prohledávání. Jinak pokračuj krokem č.2.

  11. Prohledávání do hloubky • Výhoda– realizace rekurzivní funkcí – není nutné pracovat se seznamem OPEN (zásobník programu). • Rychleji najde nějaké řešení (ne nutně nejlepší) • Toto je velmi významná výhoda v případě omezených zdrojů - lze prohledávání ukončit dříve než prohledávání do šířky. • Zvolíme cestua v případě, že nenajdeme cílový stav, vrátíme se do výchozího stavu a začneme znovu jinou cestou. • Postupy navracení do výchozího stavu se nazývá backtracking.

  12. Ukázka

  13. Optimalizace • Neinformované prohledávání je funkční, ale neefektivní • Znalosti o problému a strategie transformujeme na informovaný výběr stavů, které budou prohledány dříve • Nejjednodušší strategie: hledání prvního (očekávaného) nejlepšího (greedysearch) • prohledávání do hloubky • Zvolíme nadějnou cestua v případě, že nenajdeme cílový stav, vrátíme se do výchozího stavu a začneme znovu jinou cestou

  14. Hledání prvního nejlepšího • minimalizace odhadované ceny dosažení cíle. • prvně je expandován uzel, který se zdá být nejblíže cíli • náklady na dosažení cíle z nějakého okamžitého stavu lze jen odhadnout, • odhady nákladů se počítají pomocí heuristické funkce (označovaná jako h): • h(n) = odhadnutá cena nejlevnější cesty ze stavu v uzlu n do stavu cílového

  15. Ukázka – bludiště

  16. A* • Hodnocení stavu (uzlu) se rozkládá na dvě složky • f(n) = g(n) + h(n) • g(n) dává cenu cesty od startu do n • h(n) odhaduje cenu nejlevnější cesty z n do cíle f(n) = odhadnutá cena nejlevnějšího řešení přes uzel n do cíle. • Pokud je g() konstantní, redukuje se na algoritmus prvního nejlepšího.

More Related