Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Stavový prostor. • 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.

Podobné prezentace


Prezentace na téma: "Stavový prostor. • 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."— Transkript prezentace:

1 Stavový prostor

2 • 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 • 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 • Ř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

6 • 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 • 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(n 2 ) • vyzkoušíme zpracovat 100 stavů • jak dlouho bude trvat zpracování 10 6 stavů?

8 • Seznam OPEN a CLOSED • Seznam OPEN je fronta (FIFO) 1.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í. 2.Pokud je seznam OPEN prázdný, řešení neexistuje, ukonči prohledávání. 3.Vymaž první stav (označíme jej i) v seznamu OPEN a zapiš tento stav do seznamu CLOSED. 4.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. 5.Zapiš všechny následovníky stavu i, kteří nejsou v seznamu CLOSED na konec seznamu OPEN. 6.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 • 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 • Seznam OPEN je zásobník (LIFO) 1.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í. 2.Pokud je seznam OPEN prázdný, řešení neexistuje, ukonči prohledávání. 3.Vymaž první stav (označím jej i) v seznamu OPEN a zapiš tento stav do seznamu CLOSED. 4.Pokud se hloubka uzlu i rovná maximální přípustné hloubce, pokračuj krokem č.2. 5.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. 6.Zapiš všechny následovníky stavu i, kteří nejsou v seznamu CLOSED, na začátek seznamu OPEN. 7.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 • 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 cestu a 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

13 • 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 (greedy search) • prohledávání do hloubky • Zvolíme nadějnou cestu a v případě, že nenajdeme cílový stav, vrátíme se do výchozího stavu a začneme znovu jinou cestou

14 • 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

16 • 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.


Stáhnout ppt "Stavový prostor. • 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."

Podobné prezentace


Reklamy Google