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.

Slides:



Advertisements
Podobné prezentace
Lineární klasifikátor
Advertisements

Grafové algoritmy.
NEJKRATŠÍ CESTY MEZI VŠEMI UZLY
PLANARITA A TOKY V SÍTÍCH
Prohledávání stavového prostoru
Zajímavé aplikace teorie grafů
LOGISTICKÉ SYSTÉMY 6/14.
DB1 – 9. cvičení Optimalizace dotazu Konkurenční přístup a deadlock Indexace Transakce.
Diskrétní matematika Opakování - příklady.
Aplikace teorie grafů Základní pojmy teorie grafů
Modulární systém dalšího vzdělávání pedagogických pracovníků JmK v přírodních vědách a informatice CZ.1.07/1.3.10/ Prezentace zadání a řešení Teorie.
PA081 Programování numerických výpočtů
ALGO – Algoritmizace 1. cvičení
Sample Solutions CTU Open Contest 2012 Czech Technical University in Prague.
Genetické algoritmy. V průběhu výpočtu používají náhodné operace. Algoritmus není jednoznačný, může projít více cestami. Nezaručují nalezení řešení.
Proč?. pokud jsme schopni vytvořit stroj, který bude úlohu řešit problém je algoritmizovatelný příklad.
Problém obchodního cestujícího a příbuzné úlohy K611 - Ústav aplikované matematiky FD ČVUT.
Algoritmizace 9. Ročník.
ADT Strom.
Medians and Order Statistics Nechť A je množina obsahující n různých prvků: Definice: Statistika i-tého řádu je i-tý nejmenší prvek, tj., minimum = statistika.
Skip-List je datová struktura, která může být použita jako náhrada za vyvážené stromy. představují pravděpodobnostní alternativu k vyváženým stromům (struktura.
FORMALIZACE PROJEKTU DO SÍŤOVÉHO GRAFU
LOGISTICKÉ SYSTÉMY 7/14.
Heuristické metody Heuristiky dělíme na primární a duální.
SÍŤOVÁ ANALÝZA.
Seminář – Základy programování
STANOVENÍ NEJISTOT PŘI VÝPOŠTU KONTAMINACE ZASAŽENÉHO ÚZEMÍ
TI 7.1 NEJKRATŠÍ CESTY Nejkratší cesty - kap. 6. TI 7.2 Nejkratší cesty z jednoho uzlu Seznámíme se s následujícími pojmy: w-vzdálenost (vzdálenost na.
Algoritmizace a základy programování
Paměťové obvody a vývoj mikroprocesoru
Úvod do algoritmizace Obsah: Algoritmus, algoritmizace
EKONOMICKO MATEMATICKÉ METODY
Dostupné z Metodického portálu ISSN: , financovaného z ESF a státního rozpočtu ČR. Provozováno Výzkumným ústavem pedagogickým v Praze.
Projektové plánování Projektové řízení Ing. Jiří Šilhán.
Optimalizace versus simulace 9.přednáška. Obecně o optimalizaci  Maximalizovat nebo minimalizovat omezujících podmínkách.  Maximalizovat nebo minimalizovat.
Lineární rovnice Lineární rovnice s jednou neznámou máj vzorec
Fakulta životního prostředí Katedra informatiky a geoinformatiky
3. Přednáška posloupnosti
CW – 05 TEORIE ROZHODOVACÍCH PROCESŮ
Artificial Intelligence (AI).  „Úloha patří do oblasti umělé inteligence, jestliže řešení, které najde člověk považujeme za projev jeho inteligence.
P-těžké, np-těžké a np-úplné problémy
Zablokování (deadlock, smrtelné objetí, uváznutí)
Jedna z největších světových firem v oblasti logistiky 20 leté zkušenosti po celém světě Konzultantské služby.
Výpočetní složitost Odhlédneme-li od realizace algoritmu na konkrétním hardwaru a v konkrétním prostředí informačního systému, lze časovou složitost hodnotit.
Gradientní metody Metoda největšího spádu (volný extrém)
Automatizovaná podpora výběru nástroje pro dobývání znalostí Jakub Štochl.
hledání zlepšující cesty
Automaty a gramatiky.
Plánování trajektorie pro bezpilotní letoun za účelem sledování pozemních objektů pomocí inerciálně stabilizované kamerové platformy Michal Kreč Vedoucí.
Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 1 / 15Doc. Josef Kolář (ČVUT)Prohledávání stavového prostoruGRA, LS 2013/14, Lekce 11.
Sylabus V rámci PNV budeme řešit konkrétní úlohy a to z následujících oblastí: Nelineární úlohy Řešení nelineárních rovnic Numerická integrace Lineární.
Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 1 / 15Doc. Josef Kolář (ČVUT)NP-úplné problémyGRA, LS 2012/13, Lekce 13 1 / 14 NP-ÚPLNÉ.
Návrh a implementace algoritmů pro údržbu,
Kvadratické nerovnice
HRW kap. 3, také doporučuji projít si dodatek E
Algoritmizace a programování Algoritmy 2 – Vývojové diagramy (sekvence)
Teorie portfolia Markowitzův model.
NEJKRATŠÍ CESTY Nejkratší cesty - kap. 6.
Úvod do databázových systémů
ALGORITMY UMĚLÉ INTELIGENCE
Úvod do programování 11. hodina
Definiční obor a obor hodnot
Znázornění dopravní sítě grafem a kostra grafu Předmět: Teorie dopravy - cvičení Ing. František Lachnit, Ph.D.
Úvod do programování 11. hodina
PROLOG strategie vyhodnocení dotazu
Optimalizace SQL dotazů
Toky v sítích.
Soustavy lineárních rovnic
Prohledávání grafů.
Algoritmizace a datové struktury (14ASD)
Transkript prezentace:

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

• 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

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

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

• 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ů?

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

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

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

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

• 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

• 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

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