"Agent Hledač" (3. přednáška)

Podobné dokumenty
Umělá inteligence I. Roman Barták, KTIML.

Neinformované metody prohledávání stavového prostoru Michal Pěchouček, Milan Rollo. Department of Cybernetics Czech Technical University in Prague

Heuristiky, best-first search, A* search

Heuristiky, best-first search, A* search.

Heuristiky, best-first search, A* search.

Heuristiky, best-first search, A* search.

Umělá inteligence I. Roman Barták, KTIML.

Heuristiky, best-first search, A* search

Heuristiky, best-first search, A* search

Heuristiky, best-first search, A* search

Obsah: Problém osmi dam

Úloha ve stavovém prostoru SP je <s 0, C>, kde s 0 je počáteční stav C je množina požadovaných cílových stavů

Heuristiky, best-first search, A* search

State Space Search Step Run Editace úloh Task1 Task2 Init Clear Node Goal Add Shift Remove Add Node Goal Node Shift Remove, Add Node

Algoritmizace prostorových úloh

bfs, dfs, fronta, zásobník, prioritní fronta, halda

Hledáme efektivní řešení úloh na grafu

Neinformované metody prohledávání stavového prostoru. Gerstner Laboratory Agent Technology Group, Czech Technical University in Prague

Algoritmy a datové struktury

Základy umělé inteligence

bfs, dfs, fronta, zásobník, prioritní fronta, halda

Grafové algoritmy. Programovací techniky

bfs, dfs, fronta, zásobník

Grafové algoritmy. Programovací techniky

1. Prohledávání stavového prostoru

1. Prohledávání stavového prostoru

PROBLÉM OSMI DAM II. Problém osmi dam. Obsah:

TGH05 - aplikace DFS, průchod do šířky

Obsah prezentace. Základní pojmy v teorii o grafech Úlohy a prohledávání grafů Hledání nejkratších cest

Prohledávání stavového prostoru

Metody návrhu algoritmů, příklady. IB111 Programování a algoritmizace

Úvod do teorie grafů

TGH05 - aplikace DFS, průchod do šířky

Algoritmy na ohodnoceném grafu

Základy informatiky. Teorie grafů. Zpracoval: Pavel Děrgel Úprava: Daniela Szturcová

Prohledávání do šířky = algoritmus vlny

Řešení: PŘENESVĚŽ (N, A, B, C) = přenes N disků z A na B pomocí C

PROHLEDÁVÁNÍ GRAFŮ. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze

Základy informatiky. 07 Teorie grafů. Kačmařík/Szturcová/Děrgel/Rapant

Vzdálenost uzlů v neorientovaném grafu

TGH06 - Hledání nejkratší cesty

TGH06 - Hledání nejkratší cesty

4EK311 Operační výzkum. 5. Teorie grafů

07 Základní pojmy teorie grafů

Diskrétní matematika. DiM /01, zimní semestr 2018/2019

Prohledávání do šířky a do hloubky. Jan Hnilica Počítačové modelování 15

Algoritmus pro hledání nejkratší cesty orientovaným grafem

Matice sousednosti NG

Jan Březina. Technical University of Liberec. 21. dubna 2015

NEJKRATŠÍ CESTY I. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze

Umělá inteligence. UI (AI) - součást informatiky s průniky mimo obor Stručná historie UI. Letošní cena nadace Vize Joseph Weizenbaum

3. Prohledávání grafů

Jan Březina. Technical University of Liberec. 30. dubna 2013

10. Složitost a výkon

Select sort: krok 1: krok 2: krok 3: atd. celkem porovnání. výběr nejmenšího klíče z n prvků vyžaduje 1 porovnání

Optimalizace. Obsah přednášky. DÚ LP - Okružní problém. Lineární optimalizace. DÚ LP - Okružní problém. DÚ LP - Okružní problém

STROMOVE ALGORITMY Prohledavani do sirky (level-order) Po vodorovnejch carach fronta

Zdůvodněte, proč funkce n lg(n) roste alespoň stejně rychle nebo rychleji než než funkce lg(n!). Symbolem lg značíme logaritmus o základu 2.

Drsná matematika III 10. demonstrovaná cvičení Kostry grafů

Ukážeme si lineární algoritmus, který pro pevné k rozhodne, zda vstupní. stromový rozklad. Poznamenejme, že je-li k součástí vstupu, pak rozhodnout

bin arn ı vyhled av an ı a bst Karel Hor ak, Petr Ryˇsav y 23. bˇrezna 2016 Katedra poˇ c ıtaˇ c u, FEL, ˇ CVUT

Použití dalších heuristik

Hry a UI historie. von Neumann, 1944 algoritmy perfektní hry Zuse, Wiener, Shannon, přibližné vyhodnocování

Datové struktury 2: Rozptylovací tabulky

Stromy. Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta a kol.

ALGORITMIZACE 2010/03 STROMY, BINÁRNÍ STROMY VZTAH STROMŮ A REKURZE ZÁSOBNÍK IMPLEMENTUJE REKURZI PROHLEDÁVÁNÍ S NÁVRATEM (BACKTRACK)

TGH08 - Optimální kostry

TGH10 - Maximální toky

Kostry. 9. týden. Grafy. Marie Demlová (úpravy Matěj Dostál) 16. dubna 2019

Informatika navazující magisterské studium Přijímací zkouška z informatiky 2018 varianta A

Rekurzivní algoritmy

jednoduchá heuristika asymetrické okolí stavový prostor, kde nelze zabloudit připustit zhoršují cí tahy Pokročilé heuristiky

Prioritní fronta, halda

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

ORIENTOVANÉ GRAFY, REPREZENTACE GRAFŮ

Cvičení 5 - Průchod stromem a grafem

Seminář z umělé inteligence. Otakar Trunda

Vraťme se k základům: DFS = Depth First Search

Dynamické datové struktury III.

8 Přednáška z

Grafy. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 13.

Obecná informatika. Matematicko-fyzikální fakulta Univerzity Karlovy v Praze. Podzim 2012

Metody síťové analýzy

Spojový seznam. Jan Kybic.

HEURISTICKÉ ALGORITMY PRO ŘEŠENÍ ÚLOH OBCHODNÍHO CESTUJÍCÍHO

Dynamické programování

11. Tabu prohledávání

1. Převeďte dané číslo do dvojkové, osmičkové a šestnáctkové soustavy: a) b)

TGH12 - Problém za milion dolarů

Intervalové stromy. Představme si, že máme posloupnost celých čísel p 0, p 1,... p N 1, se kterou budeme. 1. Změna jednoho čísla v posloupnosti.

A4B33ZUI Základy umělé inteligence

Stromy. Strom: souvislý graf bez kružnic využití: počítačová grafika seznam objektů efektivní vyhledávání výpočetní stromy rozhodovací stromy

TGH09 - Barvení grafů

Metodický koncept k efektivní podpoře klíčových odborných kompetencí s využitím cizího jazyka ATCZ62 - CLIL jako výuková strategie na vysoké škole

Výhody a nevýhody jednotlivých reprezentací jsou shrnuty na konci kapitoly.

popel, glum & nepil 16/28

Algoritmy výpočetní geometrie

NPRG030 Programování I, 2018/19 1 / :03:07

1. Nejkratší cesta v grafu

Lineární spojový seznam (úvod do dynamických datových struktur)

Transkript:

"Agent Hledač" (3. přednáška)

Přehled 3. přednášky v této přednášce se budeme zabývat "goal-based" agenty

Přehled 3. přednášky v této přednášce se budeme zabývat "goal-based" agenty připomeňme, že "goal-based" agent se snaží nalézt posloupnost akcí, vedoucích k cíli

Přehled 3. přednášky v této přednášce se budeme zabývat "goal-based" agenty připomeňme, že "goal-based" agent se snaží nalézt posloupnost akcí, vedoucích k cíli budeme zkoumat obecné "postupy", jak tuto posloupnost najít

Příklad dovolená v Rumunsku Agent je na prázdninách v Rumunsku.

Příklad dovolená v Rumunsku Agent je na prázdninách v Rumunsku.

Příklad dovolená v Rumunsku Agent je na prázdninách v Rumunsku. zítra mu letí letadlo z Bukureště.

Příklad dovolená v Rumunsku Agent je na prázdninách v Rumunsku. zítra mu letí letadlo z Bukureště. Pojďme trochu abstrahovat.

Příklad dovolená v Rumunsku Agent je na prázdninách v Rumunsku. zítra mu letí letadlo z Bukureště. Pojďme trochu abstrahovat. Oradea 71 Neamt Zerind 87 75 151 Iasi Arad 140 92 Sibiu 99 Fagaras 118 80 Vaslui Timisoara Rimnicu Vilcea 111 142 Lugoj Pitesti 211 97 70 98 Mehadia 146 101 85 Urziceni Hirsova 75 138 86 Dobreta 120 Bukurešť 90 Craiova Giurgiu Eforie

Dovolená v Rumunsku (cesta v grafu) Přímo se nabízí grafová formulace

Dovolená v Rumunsku (cesta v grafu) Přímo se nabízí grafová formulace prostředí je dáno grafem (silniční síť Rumunska)

Dovolená v Rumunsku (cesta v grafu) Přímo se nabízí grafová formulace prostředí je dáno grafem (silniční síť Rumunska) agent se pohybuje po hranách tohoto grafu mezi vrcholy

Dovolená v Rumunsku (cesta v grafu) Přímo se nabízí grafová formulace prostředí je dáno grafem (silniční síť Rumunska) agent se pohybuje po hranách tohoto grafu mezi vrcholy jeho cílem je najít cestu z vrcholu Arad do vrcholu Bukurešť

Dovolená v Rumunsku (cesta v grafu) Přímo se nabízí grafová formulace prostředí je dáno grafem (silniční síť Rumunska) agent se pohybuje po hranách tohoto grafu mezi vrcholy jeho cílem je najít cestu z vrcholu Arad do vrcholu Bukurešť (případně je cílem najít nejkratší cestu)

Agent vysavač hledání pořádku Robotický vysavač, nacházející se

Agent vysavač hledání pořádku Robotický vysavač, nacházející se (pro jednoduchost)

Agent vysavač hledání pořádku Robotický vysavač, nacházející se (pro jednoduchost) v místnosti rozdělené na dvě pole L a P.

Agent vysavač hledání pořádku Robotický vysavač, nacházející se (pro jednoduchost) v místnosti rozdělené na dvě pole L a P. Umí se pohybovat doprava

Agent vysavač hledání pořádku Robotický vysavač, nacházející se (pro jednoduchost) v místnosti rozdělené na dvě pole L a P. Umí se pohybovat doprava, doleva

Agent vysavač hledání pořádku Robotický vysavač, nacházející se (pro jednoduchost) v místnosti rozdělené na dvě pole L a P. Umí se pohybovat doprava, doleva a vysávat.

Agent vysavač hledání pořádku Robotický vysavač, nacházející se (pro jednoduchost) v místnosti rozdělené na dvě pole L a P. Umí se pohybovat doprava, doleva a vysávat. Cílem je dosáhnout čisté místnosti.

Agent vysavač hledání pořádku Robotický vysavač, nacházející se (pro jednoduchost) v místnosti rozdělené na dvě pole L a P. Umí se pohybovat doprava, doleva a vysávat. Cílem je dosáhnout čisté místnosti. vrchol grafu

Agent vysavač hledání pořádku Robotický vysavač, nacházející se (pro jednoduchost) v místnosti rozdělené na dvě pole L a P. Umí se pohybovat doprava, doleva a vysávat. Cílem je dosáhnout čisté místnosti. vrchol grafu stav světa + pozice robota

Agent vysavač hledání pořádku Robotický vysavač, nacházející se (pro jednoduchost) v místnosti rozdělené na dvě pole L a P. Umí se pohybovat doprava, doleva a vysávat. Cílem je dosáhnout čisté místnosti. vrchol grafu stav světa + pozice robota hrana grafu

Agent vysavač hledání pořádku Robotický vysavač, nacházející se (pro jednoduchost) v místnosti rozdělené na dvě pole L a P. Umí se pohybovat doprava, doleva a vysávat. Cílem je dosáhnout čisté místnosti. vrchol grafu stav světa + pozice robota hrana grafu odpovídá jedné ze tří možných akcí

Agent vysavač hledání pořádku Robotický vysavač, nacházející se (pro jednoduchost) v místnosti rozdělené na dvě pole L a P. Umí se pohybovat doprava, doleva a vysávat. Cílem je dosáhnout čisté místnosti. vrchol grafu stav světa + pozice robota hrana grafu odpovídá jedné ze tří možných akcí cílový vrchol

Agent vysavač hledání pořádku Robotický vysavač, nacházející se (pro jednoduchost) v místnosti rozdělené na dvě pole L a P. Umí se pohybovat doprava, doleva a vysávat. Cílem je dosáhnout čisté místnosti. vrchol grafu stav světa + pozice robota hrana grafu odpovídá jedné ze tří možných akcí cílový vrchol stav, kde jsou obě pole čistá

Agent vysavač hledání pořádku Jdi vpravo ej v sá Vy L L Jdi vpravo P Jdi vlevo Vys áve L L P Jdi vpravo L P Vys á P Jdi vlevo Jdi vlevo L j P j ve Jdi vlevo vej L P Jdi pravo P sá Vy L P

Agent 008 Loydova osmička 7 2 4 51 2 3 5 6 4 5 6 8 3 1 7 8 Počáteční stav Cílový stav

Agent 008 Loydova osmička 7 2 4 51 2 3 5 6 4 5 6 8 3 1 7 8 Počáteční stav Cílový stav vrchol grafu

Agent 008 Loydova osmička 7 2 4 51 2 3 5 6 4 5 6 8 3 1 7 8 Počáteční stav Cílový stav vrchol grafu pozice kostiček

Agent 008 Loydova osmička 7 2 4 51 2 3 5 6 4 5 6 8 3 1 7 8 Počáteční stav Cílový stav vrchol grafu pozice kostiček hrana grafu

Agent 008 Loydova osmička 7 2 4 51 2 3 5 6 4 5 6 8 3 1 7 8 Počáteční stav Cílový stav vrchol grafu pozice kostiček hrana grafu pohnutí kostičkou (volným místem)

Agent 008 Loydova osmička 7 2 4 51 2 3 5 6 4 5 6 8 3 1 7 8 Počáteční stav Cílový stav vrchol grafu pozice kostiček hrana grafu pohnutí kostičkou (volným místem) cílový vrchol

Agent 008 Loydova osmička 7 2 4 51 2 3 5 6 4 5 6 8 3 1 7 8 Počáteční stav Cílový stav vrchol grafu pozice kostiček hrana grafu pohnutí kostičkou (volným místem) cílový vrchol kostičky jsou srovnané podle čísel

Agent 008 Loydova osmička 7 2 4 51 2 3 5 6 4 5 6 8 3 1 7 8 Počáteční stav Cílový stav vrchol grafu pozice kostiček hrana grafu pohnutí kostičkou (volným místem) cílový vrchol kostičky jsou srovnané podle čísel Optimální řešení (t.j. na nejmenší počet tahů) n-verze tohoto hlavolamu je NP-těžký problém.

Obchodní cestující (TSP) Obchodní cestující chce navštívit nějaká města a vrátit se na začátek. V jakém pořadí je má navštěvovat tak, aby minimalizoval vzdálenost, kterou bude muset urazit?

Obchodní cestující (TSP) Obchodní cestující chce navštívit nějaká města a vrátit se na začátek. V jakém pořadí je má navštěvovat tak, aby minimalizoval vzdálenost, kterou bude muset urazit? vrchol grafu

Obchodní cestující (TSP) Obchodní cestující chce navštívit nějaká města a vrátit se na začátek. V jakém pořadí je má navštěvovat tak, aby minimalizoval vzdálenost, kterou bude muset urazit? vrchol grafu kombinace následujících údajů: město, ve kterém se obchodní cestující nachází

Obchodní cestující (TSP) Obchodní cestující chce navštívit nějaká města a vrátit se na začátek. V jakém pořadí je má navštěvovat tak, aby minimalizoval vzdálenost, kterou bude muset urazit? vrchol grafu kombinace následujících údajů: město, ve kterém se obchodní cestující nachází a stav navštívenosti jednotlivých měst

Obchodní cestující (TSP) Obchodní cestující chce navštívit nějaká města a vrátit se na začátek. V jakém pořadí je má navštěvovat tak, aby minimalizoval vzdálenost, kterou bude muset urazit? vrchol grafu kombinace následujících údajů: město, ve kterém se obchodní cestující nachází a stav navštívenosti jednotlivých měst hrana grafu

Obchodní cestující (TSP) Obchodní cestující chce navštívit nějaká města a vrátit se na začátek. V jakém pořadí je má navštěvovat tak, aby minimalizoval vzdálenost, kterou bude muset urazit? vrchol grafu kombinace následujících údajů: město, ve kterém se obchodní cestující nachází a stav navštívenosti jednotlivých měst hrana grafu silnice spojující města

Obchodní cestující (TSP) Obchodní cestující chce navštívit nějaká města a vrátit se na začátek. V jakém pořadí je má navštěvovat tak, aby minimalizoval vzdálenost, kterou bude muset urazit? vrchol grafu kombinace následujících údajů: město, ve kterém se obchodní cestující nachází a stav navštívenosti jednotlivých měst hrana grafu silnice spojující města cílový vrchol

Obchodní cestující (TSP) Obchodní cestující chce navštívit nějaká města a vrátit se na začátek. V jakém pořadí je má navštěvovat tak, aby minimalizoval vzdálenost, kterou bude muset urazit? vrchol grafu kombinace následujících údajů: město, ve kterém se obchodní cestující nachází a stav navštívenosti jednotlivých měst hrana grafu silnice spojující města cílový vrchol vrchol odpovídající počátečnímu městu, ve kterém jsou všechna města navštívena

Obchodní cestující (TSP) Obchodní cestující chce navštívit nějaká města a vrátit se na začátek. V jakém pořadí je má navštěvovat tak, aby minimalizoval vzdálenost, kterou bude muset urazit? vrchol grafu kombinace následujících údajů: město, ve kterém se obchodní cestující nachází a stav navštívenosti jednotlivých měst hrana grafu silnice spojující města cílový vrchol vrchol odpovídající počátečnímu městu, ve kterém jsou všechna města navštívena NP-těžký problém.

Montážní linka P R R R R R

Montážní linka P R R R R R vrchol grafu

Montážní linka P R R R R R vrchol grafu kombinace poloh jednotlivých kloubů robotického ramene a jednotlivých součástí

Montážní linka P R R R R R vrchol grafu kombinace poloh jednotlivých kloubů robotického ramene a jednotlivých součástí hrana grafu

Montážní linka P R R R R R vrchol grafu kombinace poloh jednotlivých kloubů robotického ramene a jednotlivých součástí hrana grafu pohnutí jednotlivého robotického kloubu

Montážní linka P R R R R R vrchol grafu kombinace poloh jednotlivých kloubů robotického ramene a jednotlivých součástí hrana grafu pohnutí jednotlivého robotického kloubu cílový vrchol

Montážní linka P R R R R R vrchol grafu kombinace poloh jednotlivých kloubů robotického ramene a jednotlivých součástí hrana grafu pohnutí jednotlivého robotického kloubu cílový vrchol stav, kde jednotlivé součásti jsou složeny

Hledáme řešení strom akcí Idea Procházet všechny možné posloupnosti akcí a zjistit, která vede k cíli

Hledáme řešení strom akcí Idea Procházet všechny možné posloupnosti akcí a zjistit, která vede k cíli Postupným procházením vytváříme strom

Hledáme řešení strom akcí Idea Procházet všechny možné posloupnosti akcí a zjistit, která vede k cíli Postupným procházením vytváříme strom uzly ve stromu jsou posloupnosti akcí

Hledáme řešení strom akcí Idea Procházet všechny možné posloupnosti akcí a zjistit, která vede k cíli Postupným procházením vytváříme strom uzly ve stromu jsou posloupnosti akcí každému uzlu odpovídá stav světa (po provedení dané posloupnosti akcí)

Hledáme řešení strom akcí Idea Procházet všechny možné posloupnosti akcí a zjistit, která vede k cíli Postupným procházením vytváříme strom uzly ve stromu jsou posloupnosti akcí každému uzlu odpovídá stav světa (po provedení dané posloupnosti akcí) dvěma různým uzlům mohou odpovídat stejné stavy světa (!)

Hledáme řešení strom akcí Idea Procházet všechny možné posloupnosti akcí a zjistit, která vede k cíli Postupným procházením vytváříme strom uzly ve stromu jsou posloupnosti akcí každému uzlu odpovídá stav světa (po provedení dané posloupnosti akcí) dvěma různým uzlům mohou odpovídat stejné stavy světa (!) chceme najít uzel, jehož stav je cílovým stavem

Strom akcí robot vysavač l,š,š

Strom akcí robot vysavač l,š,š vysávej jdi vpravo jdi vlevo l,č,š l,š,š p,š,š

Strom akcí robot vysavač l,č,š l,š,š vysávej vysávej jdi vpravo jdi vlevo p,č,š jdi vpravo l,č,š l,š,š jdi vlevo p,š,š l,č,š

Strom akcí robot vysavač l,č,š l,š,š vysávej vysávej jdi vpravo jdi vlevo p,č,š jdi vpravo l,č,š l,š,š jdi vlevo p,š,š l,č,š vysávej jdi vpravo jdi vlevo p,š,č l,š,š p,š,š

Strom akcí robot vysavač l,č,š l,š,š l,š,š vysávej vysávej jdi vpravo jdi vlevo jdi vlevo p,č,š jdi vpravo l,č,š l,š,š jdi vpravo p,š,š jdi vlevo p,š,š vysávej l,č,š vysávej jdi vpravo jdi vlevo l,č,š p,š,č l,š,š p,š,š

Strom akcí robot vysavač l,č,š l,š,š l,š,š vysávej vysávej jdi vpravo jdi vlevo jdi vlevo p,č,š jdi vpravo l,č,š l,š,š jdi vpravo p,š,š jdi vlevo p,š,š vysávej l,č,š vysávej jdi vpravo jdi vlevo l,č,š p,š,č l,š,š p,š,š různé uzly odpovídající stejným stavům

Prohledávání stromu akcí idea Postupně budujeme strom akcí, dokud nenarazíme na cílový stav.

Prohledávání stromu akcí idea Postupně budujeme strom akcí, dokud nenarazíme na cílový stav. v každém kroku dle nějaké strategie vybereme uzel ve stromu akcí

Prohledávání stromu akcí idea Postupně budujeme strom akcí, dokud nenarazíme na cílový stav. v každém kroku dle nějaké strategie vybereme uzel ve stromu akcí v tomto uzlu strom rozšíříme

Prohledávání stromu akcí idea Postupně budujeme strom akcí, dokud nenarazíme na cílový stav. v každém kroku dle nějaké strategie vybereme uzel ve stromu akcí v tomto uzlu strom rozšíříme za každou akci, kterou je možné v daném uzlu (resp. stavu) provést přidáme do stromu akcí nový uzel

Prohledávání stromů tree search def treesearch ( problem, strategy ): # Inicializuj strom. tree = node ( problem. initial_state ()) while True : # Zvol kandidata k expanzi dle strategie. leaf_ node = strategy ( problem, tree ) # Mame reseni, vrat posloupnost kroku. if problem. is_goal ( leaf_node. state () ): return leaf_ node # Expanduj kandidata ( pridej do stromu # uzly, ktere sousedi s kandidatem ). stav = leaf_ node. state () for a in stav. possible_ actions (): nb_stav = stav. act (a) leaf_node. add_child ( a, node ( nb_stav ) )

Prohledávací strategie hodnotící kritéria úplnost

Prohledávací strategie hodnotící kritéria úplnost (vždy nalezne cílový stav, pokud existuje)

Prohledávací strategie hodnotící kritéria úplnost (vždy nalezne cílový stav, pokud existuje) optimálnost

Prohledávací strategie hodnotící kritéria úplnost (vždy nalezne cílový stav, pokud existuje) optimálnost (posloupnost akcí vedoucí do cílového stavu bude optimální)

Prohledávací strategie hodnotící kritéria úplnost (vždy nalezne cílový stav, pokud existuje) optimálnost (posloupnost akcí vedoucí do cílového stavu bude optimální) časová složitost

Prohledávací strategie hodnotící kritéria úplnost (vždy nalezne cílový stav, pokud existuje) optimálnost (posloupnost akcí vedoucí do cílového stavu bude optimální) časová složitost (kolik uzlů je třeba vygenerovat)

Prohledávací strategie hodnotící kritéria úplnost (vždy nalezne cílový stav, pokud existuje) optimálnost (posloupnost akcí vedoucí do cílového stavu bude optimální) časová složitost (kolik uzlů je třeba vygenerovat) paměťová náročnost

Prohledávací strategie hodnotící kritéria úplnost (vždy nalezne cílový stav, pokud existuje) optimálnost (posloupnost akcí vedoucí do cílového stavu bude optimální) časová složitost (kolik uzlů je třeba vygenerovat) paměťová náročnost (kolik uzlů je třeba držet v paměti)

Prohledávací strategie hodnotící kritéria úplnost (vždy nalezne cílový stav, pokud existuje) optimálnost (posloupnost akcí vedoucí do cílového stavu bude optimální) časová složitost (kolik uzlů je třeba vygenerovat) paměťová náročnost (kolik uzlů je třeba držet v paměti) Časová složitost a paměťová náročnost se měří jako funkce

Prohledávací strategie hodnotící kritéria úplnost (vždy nalezne cílový stav, pokud existuje) optimálnost (posloupnost akcí vedoucí do cílového stavu bude optimální) časová složitost (kolik uzlů je třeba vygenerovat) paměťová náročnost (kolik uzlů je třeba držet v paměti) Časová složitost a paměťová náročnost se měří jako funkce b faktor větvení (branching factor)

Prohledávací strategie hodnotící kritéria úplnost (vždy nalezne cílový stav, pokud existuje) optimálnost (posloupnost akcí vedoucí do cílového stavu bude optimální) časová složitost (kolik uzlů je třeba vygenerovat) paměťová náročnost (kolik uzlů je třeba držet v paměti) Časová složitost a paměťová náročnost se měří jako funkce b faktor větvení (branching factor) d hloubka optimálního řešení

Prohledávací strategie hodnotící kritéria úplnost (vždy nalezne cílový stav, pokud existuje) optimálnost (posloupnost akcí vedoucí do cílového stavu bude optimální) časová složitost (kolik uzlů je třeba vygenerovat) paměťová náročnost (kolik uzlů je třeba držet v paměti) Časová složitost a paměťová náročnost se měří jako funkce b faktor větvení (branching factor) d hloubka optimálního řešení m hloubka prohledávaného stromu

Prohledávací strategie uninformed search prohledávání do šířky (BFS)

Prohledávací strategie uninformed search prohledávání do šířky (BFS) prohledávání do hloubky (DFS)

Prohledávací strategie uninformed search prohledávání do šířky (BFS) prohledávání do hloubky (DFS) omezená hloubka (depth limited, DLS)

Prohledávací strategie uninformed search prohledávání do šířky (BFS) prohledávání do hloubky (DFS) omezená hloubka (depth limited, DLS) iterování hloubky (iterative deepening, IDS)

Prohledávací strategie uninformed search prohledávání do šířky (BFS) prohledávání do hloubky (DFS) omezená hloubka (depth limited, DLS) iterování hloubky (iterative deepening, IDS)

BFS prohledávání do šířky 0111 uzel zvolený k expanzi 01 011 010 0110 0101 potenciální kandidát k expanzi (nutno udržovat v paměti) 0 0100 0011 001 0010 00 0001 000 0000

BFS prohledávání do šířky 0111 uzel zvolený k expanzi 01 011 010 0110 0101 potenciální kandidát k expanzi (nutno udržovat v paměti) 0 0100 0011 001 0010 00 0001 000 0000

BFS prohledávání do šířky 0111 uzel zvolený k expanzi 01 011 010 0110 0101 potenciální kandidát k expanzi (nutno udržovat v paměti) 0 0100 0011 001 0010 00 0001 000 0000

BFS prohledávání do šířky 0111 uzel zvolený k expanzi 01 011 010 0110 0101 potenciální kandidát k expanzi (nutno udržovat v paměti) 0 0100 0011 001 0010 00 0001 000 0000

BFS prohledávání do šířky 0111 uzel zvolený k expanzi 01 011 010 0110 0101 potenciální kandidát k expanzi (nutno udržovat v paměti) 0 0100 0011 001 0010 00 0001 000 0000

BFS prohledávání do šířky 0111 uzel zvolený k expanzi 01 011 010 0110 0101 potenciální kandidát k expanzi (nutno udržovat v paměti) 0 0100 0011 001 0010 00 0001 000 0000

BFS prohledávání do šířky 0111 uzel zvolený k expanzi 01 011 010 0110 0101 potenciální kandidát k expanzi (nutno udržovat v paměti) 0 0100 0011 001 0010 00 0001 000 0000

BFS prohledávání do šířky 0111 uzel zvolený k expanzi 01 011 010 0110 0101 potenciální kandidát k expanzi (nutno udržovat v paměti) 0 0100 0011 001 0010 00 0001 000 0000

BFS prohledávání do šířky 0111 uzel zvolený k expanzi 01 011 010 0110 0101 potenciální kandidát k expanzi (nutno udržovat v paměti) 0 0100 0011 001 0010 00 0001 000 0000

BFS prohledávání do šířky 0111 uzel zvolený k expanzi 01 011 010 0110 0101 potenciální kandidát k expanzi (nutno udržovat v paměti) 0 0100 0011 001 0010 00 0001 000 0000

BFS prohledávání do šířky 0111 uzel zvolený k expanzi 01 011 010 0110 0101 potenciální kandidát k expanzi (nutno udržovat v paměti) 0 0100 0011 001 0010 00 0001 000 0000

BFS prohledávání do šířky 0111 uzel zvolený k expanzi 01 011 010 0110 0101 potenciální kandidát k expanzi (nutno udržovat v paměti) 0 0100 0011 001 0010 00 0001 000 0000

BFS prohledávání do šířky 0111 uzel zvolený k expanzi 01 011 010 0110 0101 potenciální kandidát k expanzi (nutno udržovat v paměti) 0 0100 0011 001 0010 00 0001 000 0000

BFS prohledávání do šířky 0111 uzel zvolený k expanzi 01 011 010 0110 0101 potenciální kandidát k expanzi (nutno udržovat v paměti) 0 0100 0011 001 0010 00 0001 000 0000

BFS prohledávání do šířky 0111 uzel zvolený k expanzi 01 011 010 0110 0101 potenciální kandidát k expanzi (nutno udržovat v paměti) 0 0100 0011 001 0010 00 0001 000 0000

BFS prohledávání do šířky 0111 uzel zvolený k expanzi 01 011 010 0110 0101 potenciální kandidát k expanzi (nutno udržovat v paměti) 0 0100 0011 001 0010 00 0001 000 0000

BFS prohledávání do šířky 0111 uzel zvolený k expanzi 01 011 010 0110 0101 potenciální kandidát k expanzi (nutno udržovat v paměti) 0 0100 0011 001 0010 00 0001 000 0000

BFS prohledávání do šířky 0111 uzel zvolený k expanzi 01 011 010 0110 0101 potenciální kandidát k expanzi (nutno udržovat v paměti) 0 0100 0011 001 0010 00 0001 000 0000

BFS prohledávání do šířky 0111 uzel zvolený k expanzi 01 011 010 0110 0101 potenciální kandidát k expanzi (nutno udržovat v paměti) 0 0100 0011 001 0010 00 0001 000 0000

BFS prohledávání do šířky 0111 uzel zvolený k expanzi 01 011 010 0110 0101 potenciální kandidát k expanzi (nutno udržovat v paměti) 0 0100 0011 001 0010 00 0001 000 0000

BFS prohledávání do šířky 0111 uzel zvolený k expanzi 01 011 010 0110 0101 potenciální kandidát k expanzi (nutno udržovat v paměti) 0 0100 0011 001 0010 00 0001 000 0000

BFS prohledávání do šířky 0111 uzel zvolený k expanzi 01 011 010 0110 0101 potenciální kandidát k expanzi (nutno udržovat v paměti) 0 0100 0011 001 0010 00 0001 000 0000

BFS prohledávání do šířky 0111 uzel zvolený k expanzi 01 011 010 0110 0101 potenciální kandidát k expanzi (nutno udržovat v paměti) 0 0100 0011 001 0010 00 0001 000 0000

BFS prohledávání do šířky úplnost:

BFS prohledávání do šířky úplnost: ANO (pokud je b konečné)

BFS prohledávání do šířky úplnost: ANO (pokud je b konečné) časová složitost:

BFS prohledávání do šířky úplnost: ANO (pokud je b konečné) časová složitost: 1

BFS prohledávání do šířky úplnost: ANO (pokud je b konečné) časová složitost: 1 + b

BFS prohledávání do šířky úplnost: ANO (pokud je b konečné) časová složitost: 1 + b + b 2

BFS prohledávání do šířky úplnost: ANO (pokud je b konečné) časová složitost: 1 + b + b 2 + + b(b d 1)

BFS prohledávání do šířky úplnost: ANO (pokud je b konečné) časová složitost: 1 + b + b 2 + + b(b d 1) = O(b d+1 )

BFS prohledávání do šířky úplnost: ANO (pokud je b konečné) časová složitost: 1 + b + b 2 + + b(b d 1) = O(b d+1 ) paměťová náročnost:

BFS prohledávání do šířky úplnost: ANO (pokud je b konečné) časová složitost: 1 + b + b 2 + + b(b d 1) = O(b d+1 ) paměťová náročnost: O(b d+1 ) (celý strom akcí se uchovává v paměti)

BFS prohledávání do šířky úplnost: ANO (pokud je b konečné) časová složitost: 1 + b + b 2 + + b(b d 1) = O(b d+1 ) paměťová náročnost: O(b d+1 ) (celý strom akcí se uchovává v paměti) optimalita:

BFS prohledávání do šířky úplnost: ANO (pokud je b konečné) časová složitost: 1 + b + b 2 + + b(b d 1) = O(b d+1 ) paměťová náročnost: O(b d+1 ) (celý strom akcí se uchovává v paměti) optimalita: to závisí

BFS prohledávání do šířky úplnost: ANO (pokud je b konečné) časová složitost: 1 + b + b 2 + + b(b d 1) = O(b d+1 ) paměťová náročnost: O(b d+1 ) (celý strom akcí se uchovává v paměti) optimalita: to závisí (ano, pokud všechny akce stojí stejně, jinak je třeba modifikovat)

BFS prohledávání do šířky úplnost: ANO (pokud je b konečné) časová složitost: 1 + b + b 2 + + b(b d 1) = O(b d+1 ) paměťová náročnost: O(b d+1 ) (celý strom akcí se uchovává v paměti) optimalita: to závisí (ano, pokud všechny akce stojí stejně, jinak je třeba modifikovat) Největším problémem je paměťová náročnost.

BFS prohledávání do šířky úplnost: ANO (pokud je b konečné) časová složitost: 1 + b + b 2 + + b(b d 1) = O(b d+1 ) paměťová náročnost: O(b d+1 ) (celý strom akcí se uchovává v paměti) optimalita: to závisí (ano, pokud všechny akce stojí stejně, jinak je třeba modifikovat) Největším problémem je paměťová náročnost. b = 10, 10000 uzlů/sec., uzel = 1Kb hloubka uzly čas paměť 2 1100 0.1 s 1 Mb 4 111100 11 s 106 Mb 6 10 7 19 min 10 Gb 8 10 9 31 h 1 Tb 10 10 11 129 dní 101 Tb 12 10 13 35 let 10 Petabyte 14 10 15 3523 let 1 Exabyte

DFS prohledávání do hloubky 0111 uzel zvolený k expanzi 01 011 010 0110 0101 potenciální kandidát k expanzi (nutno udržovat v paměti) 0 0100 0011 001 0010 00 0001 000 0000

DFS prohledávání do hloubky 0111 uzel zvolený k expanzi 01 011 010 0110 0101 potenciální kandidát k expanzi (nutno udržovat v paměti) 0 0100 0011 001 0010 00 0001 000 0000

DFS prohledávání do hloubky 0111 uzel zvolený k expanzi 01 011 010 0110 0101 potenciální kandidát k expanzi (nutno udržovat v paměti) 0 0100 0011 001 0010 00 0001 000 0000

DFS prohledávání do hloubky 0111 uzel zvolený k expanzi 01 011 010 0110 0101 potenciální kandidát k expanzi (nutno udržovat v paměti) 0 0100 0011 001 0010 00 0001 000 0000

DFS prohledávání do hloubky 0111 uzel zvolený k expanzi 01 011 010 0110 0101 potenciální kandidát k expanzi (nutno udržovat v paměti) 0 0100 0011 001 0010 00 0001 000 0000

DFS prohledávání do hloubky 0111 uzel zvolený k expanzi 01 011 010 0110 0101 potenciální kandidát k expanzi (nutno udržovat v paměti) 0 0100 0011 001 0010 00 0001 000 0000

DFS prohledávání do hloubky 0111 uzel zvolený k expanzi 01 011 010 0110 0101 potenciální kandidát k expanzi (nutno udržovat v paměti) 0 0100 0011 001 0010 00 0001 000 0000

DFS prohledávání do hloubky 0111 uzel zvolený k expanzi 01 011 010 0110 0101 potenciální kandidát k expanzi (nutno udržovat v paměti) 0 0100 0011 001 0010 00 0001 000 0000

DFS prohledávání do hloubky 0111 uzel zvolený k expanzi 01 011 010 0110 0101 potenciální kandidát k expanzi (nutno udržovat v paměti) 0 0100 0011 001 0010 00 0001 000 0000

DFS prohledávání do hloubky 0111 uzel zvolený k expanzi 01 011 010 0110 0101 potenciální kandidát k expanzi (nutno udržovat v paměti) 0 0100 0011 001 0010 00 0001 000 0000

DFS prohledávání do hloubky 0111 uzel zvolený k expanzi 01 011 010 0110 0101 potenciální kandidát k expanzi (nutno udržovat v paměti) 0 0100 0011 001 0010 00 0001 000 0000

DFS prohledávání do hloubky 0111 uzel zvolený k expanzi 01 011 010 0110 0101 potenciální kandidát k expanzi (nutno udržovat v paměti) 0 0100 0011 001 0010 00 0001 000 0000

DFS prohledávání do hloubky 0111 uzel zvolený k expanzi 01 011 010 0110 0101 potenciální kandidát k expanzi (nutno udržovat v paměti) 0 0100 0011 001 0010 00 0001 000 0000

DFS prohledávání do hloubky 0111 uzel zvolený k expanzi 01 011 010 0110 0101 potenciální kandidát k expanzi (nutno udržovat v paměti) 0 0100 0011 001 0010 00 0001 000 0000

DFS prohledávání do hloubky 0111 uzel zvolený k expanzi 01 011 010 0110 0101 potenciální kandidát k expanzi (nutno udržovat v paměti) 0 0100 0011 001 0010 00 0001 000 0000

DFS prohledávání do hloubky 0111 uzel zvolený k expanzi 01 011 010 0110 0101 potenciální kandidát k expanzi (nutno udržovat v paměti) 0 0100 0011 001 0010 00 0001 000 0000

DFS prohledávání do hloubky 0111 uzel zvolený k expanzi 01 011 010 0110 0101 potenciální kandidát k expanzi (nutno udržovat v paměti) 0 0100 0011 001 0010 00 0001 000 0000

DFS prohledávání do hloubky 0111 uzel zvolený k expanzi 01 011 010 0110 0101 potenciální kandidát k expanzi (nutno udržovat v paměti) 0 0100 0011 001 0010 00 0001 000 0000

DFS prohledávání do hloubky 0111 uzel zvolený k expanzi 01 011 010 0110 0101 potenciální kandidát k expanzi (nutno udržovat v paměti) 0 0100 0011 001 0010 00 0001 000 0000

DFS prohledávání do hloubky 0111 uzel zvolený k expanzi 01 011 010 0110 0101 potenciální kandidát k expanzi (nutno udržovat v paměti) 0 0100 0011 001 0010 00 0001 000 0000

DFS prohledávání do hloubky 0111 uzel zvolený k expanzi 01 011 010 0110 0101 potenciální kandidát k expanzi (nutno udržovat v paměti) 0 0100 0011 001 0010 00 0001 000 0000

DFS prohledávání do hloubky 0111 uzel zvolený k expanzi 01 011 010 0110 0101 potenciální kandidát k expanzi (nutno udržovat v paměti) 0 0100 0011 001 0010 00 0001 000 0000

DFS prohledávání do hloubky 0111 uzel zvolený k expanzi 01 011 010 0110 0101 potenciální kandidát k expanzi (nutno udržovat v paměti) 0 0100 0011 001 0010 00 0001 000 0000

DFS prohledávání do hloubky úplnost:

DFS prohledávání do hloubky úplnost: NE (pokud je hloubka nekonečná

DFS prohledávání do hloubky úplnost: NE (pokud je hloubka nekonečná nebo pokud jsou smyčky)

DFS prohledávání do hloubky úplnost: NE (pokud je hloubka nekonečná nebo pokud jsou smyčky) časová složitost:

DFS prohledávání do hloubky úplnost: NE (pokud je hloubka nekonečná nebo pokud jsou smyčky) časová složitost: O(b m )

DFS prohledávání do hloubky úplnost: NE (pokud je hloubka nekonečná nebo pokud jsou smyčky) časová složitost: O(b m ) problém, pokud je d << m pokud jsou řešení hustě rozložená, je mnohem rychlejší než BFS paměťová náročnost:

DFS prohledávání do hloubky úplnost: NE (pokud je hloubka nekonečná nebo pokud jsou smyčky) časová složitost: O(b m ) problém, pokud je d << m pokud jsou řešení hustě rozložená, je mnohem rychlejší než BFS paměťová náročnost: O(m) (lineární!)

DFS prohledávání do hloubky úplnost: NE (pokud je hloubka nekonečná nebo pokud jsou smyčky) časová složitost: O(b m ) problém, pokud je d << m pokud jsou řešení hustě rozložená, je mnohem rychlejší než BFS paměťová náročnost: O(m) (lineární!) optimalita:

DFS prohledávání do hloubky úplnost: NE (pokud je hloubka nekonečná nebo pokud jsou smyčky) časová složitost: O(b m ) problém, pokud je d << m pokud jsou řešení hustě rozložená, je mnohem rychlejší než BFS paměťová náročnost: O(m) (lineární!) optimalita: NE

DFS prohledávání do hloubky úplnost: NE (pokud je hloubka nekonečná nebo pokud jsou smyčky) časová složitost: O(b m ) problém, pokud je d << m pokud jsou řešení hustě rozložená, je mnohem rychlejší než BFS paměťová náročnost: O(m) (lineární!) optimalita: NE

DLS,IDS prohledávání do omezené hloubky DLS prohledávání do hloubky, ale strom usekneme na hladině l a hlouběji nejdeme.

DLS,IDS prohledávání do omezené hloubky DLS prohledávání do hloubky, ale strom usekneme na hladině l a hlouběji nejdeme. IDS postupně aplikujeme DLS s větším a větším l

DLS,IDS prohledávání do omezené hloubky DLS prohledávání do hloubky, ale strom usekneme na hladině l a hlouběji nejdeme. IDS postupně aplikujeme DLS s větším a větším l úplnost:

DLS,IDS prohledávání do omezené hloubky DLS prohledávání do hloubky, ale strom usekneme na hladině l a hlouběji nejdeme. IDS postupně aplikujeme DLS s větším a větším l úplnost: ANO

DLS,IDS prohledávání do omezené hloubky DLS prohledávání do hloubky, ale strom usekneme na hladině l a hlouběji nejdeme. IDS postupně aplikujeme DLS s větším a větším l úplnost: ANO časová složitost:

DLS,IDS prohledávání do omezené hloubky DLS prohledávání do hloubky, ale strom usekneme na hladině l a hlouběji nejdeme. IDS postupně aplikujeme DLS s větším a větším l úplnost: ANO časová složitost: O(b d )

DLS,IDS prohledávání do omezené hloubky DLS prohledávání do hloubky, ale strom usekneme na hladině l a hlouběji nejdeme. IDS postupně aplikujeme DLS s větším a větším l úplnost: ANO časová složitost: O(b d ) paměťová náročnost:

DLS,IDS prohledávání do omezené hloubky DLS prohledávání do hloubky, ale strom usekneme na hladině l a hlouběji nejdeme. IDS postupně aplikujeme DLS s větším a větším l úplnost: ANO časová složitost: O(b d ) paměťová náročnost: O(d) (lineární!)

DLS,IDS prohledávání do omezené hloubky DLS prohledávání do hloubky, ale strom usekneme na hladině l a hlouběji nejdeme. IDS postupně aplikujeme DLS s větším a větším l úplnost: ANO časová složitost: O(b d ) paměťová náročnost: O(d) (lineární!) optimalita:

DLS,IDS prohledávání do omezené hloubky DLS prohledávání do hloubky, ale strom usekneme na hladině l a hlouběji nejdeme. IDS postupně aplikujeme DLS s větším a větším l úplnost: ANO časová složitost: O(b d ) paměťová náročnost: O(d) (lineární!) optimalita: ANO (pokud všechny akce stojí stejně, jinak je třeba modifikovat)

DLS,IDS prohledávání do omezené hloubky DLS prohledávání do hloubky, ale strom usekneme na hladině l a hlouběji nejdeme. IDS postupně aplikujeme DLS s větším a větším l úplnost: ANO časová složitost: O(b d ) paměťová náročnost: O(d) (lineární!) optimalita: ANO (pokud všechny akce stojí stejně, jinak je třeba modifikovat)

Prohledávání z obou konců

Částečně pozorovatelné, nedeterminované světy