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

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

Ú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ů

Obsah: Problém osmi dam

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

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

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

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

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

Základy umělé inteligence

Algoritmizace prostorových úloh

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

! Kyberne(ka!a!umělá!inteligence! 8.!Hraní!dvouhráčových!her,!adversariální! prohledávání!stavového!prostoru!!!!

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

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

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

Základy umělé inteligence

bfs, dfs, fronta, zásobník

Matice sousednosti NG

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

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

Grafové algoritmy. Programovací techniky

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

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

Hanojská věž. T2: prohledávání stavového prostoru. zadání [1 1 1] řešení [3 3 3] dva možné první tahy: [1 1 2] [1 1 3]

Department of Cybernetics Czech Technical University in Prague. pechouc/kui/games.pdf

Plánování se stavovým prostorem

MATEMATICKÁ TEORIE ROZHODOVÁNÍ

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

Logika a logické programování

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

Prohledávání stavového prostoru

Pravidlové znalostní systémy

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

Grafové algoritmy. Programovací techniky

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

Aproximativní algoritmy UIN009 Efektivní algoritmy 1

MATEMATICKÁ TEORIE ROZHODOVÁNÍ

ŘEŠITEL HRY GRIDDLERS

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

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

Expertní systémy. 1. Úvod k expertním systémům. Cíl kapitoly:

Plánování: reprezentace problému

Evoluční algoritmy. Podmínka zastavení počet iterací kvalita nejlepšího jedince v populaci změna kvality nejlepšího jedince mezi iteracemi

Stromy, haldy, prioritní fronty

Optimizing Limousine Service with AI. David Marek

Expe xp rtn t í n í sys s t ys é t my m PSY 481

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.

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

Umělá inteligence a rozpoznávání

Základní datové struktury III: Stromy, haldy

Optimalizace & soft omezení: algoritmy

Heuristiky, best-first search, A* search

Úvod do teorie grafů

Slepé prohledávání do šířky Algoritmus prohledávání do šířky Při tomto způsobu prohledávání máme jistotu, že vždy nalezneme koncový stav, musíme ale p

Asociační pravidla. Informační a komunikační technologie ve zdravotnictví. Biomedical Data Processing G r o u p

Usuzování za neurčitosti

Počítačové šachy. Otakar Trunda

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

7. Inferenční metody. Inferenční metody Václav Matoušek, Josef Strolený Úvod do znalostního inženýrství, ZS 2014/

2. Řešení úloh hraní her Hraní her (Teorie a algoritmy hraní her)

10. Složitost a výkon

Paralelní grafové algoritmy

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

Lineární diskriminační funkce. Perceptronový algoritmus.

UITS / ISY. Ústav inteligentních systémů Fakulta informačních technologií VUT v Brně. ISY: Výzkumná skupina inteligentních systémů 1 / 14

Časová a prostorová složitost algoritmů

Algoritmus Minimax. Tomáš Kühr. Projektový seminář 1

Časová složitost / Time complexity

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

popel, glum & nepil 16/28

TGH06 - Hledání nejkratší cesty

TGH09 - Barvení grafů

Plánování v prostoru plánů

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

Emergence chování robotických agentů: neuroevoluce

u odpovědí typu A, B, C, D, E: Obsah: jako 0) CLP Constraint Logic Programming

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

Hraní her. (Teorie a algoritmy hraní her) Řešení úloh hraní her. Václav Matoušek /

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Dijkstrův algoritmus

ORIENTOVANÉ GRAFY, REPREZENTACE GRAFŮ

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Dynamické datové struktury II.

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.

Optimalizační algoritmy inspirované chováním mravenců

UNIVERZITA PARDUBICE

ALGORITMY A DATOVÉ STRUKTURY

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

Algoritmy pro hraní tahových her

TGH06 - Hledání nejkratší cesty

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 12.

Znalostní technologie proč a jak?

Algoritmy a datové struktury

Obsah: CLP Constraint Logic Programming. u odpovědí typu A, B, C, D, E: jako 0)

IUVENTAS Soukromé gymnázium a Střední odborná škola, s. r. o. Umělá inteligence. Jméno: Třída: Rok:

10. Techniky formální verifikace a validace

Obsah: Hry vs. Prohledávání stavového prostoru Algoritmus Minimax. Nedeterministické hry Hry s nepřesnými znalostmi

Reprezentace znalostí - úvod

Obsah: Hry vs. Prohledávání stavového prostoru Algoritmus Minimax. Nedeterministické hry Hry s nepřesnými znalostmi. 72 studentů

Téma 48 (dříve 47) Martin Staviař, 16. srpna 2006

Transkript:

Neinformované metody prohledávání stavového prostoru Michal Pěchouček Gerstner Laboratory Agent Technology Group, Czech Technical University in Prague http://labe.felk.cvut.cz/~ tkrajnik/kui2/data/k333/1.pdf

ṕuvodní poznámka o umělé inteligenci Umělá inteligence, jako věda o poznání lidského uvažování a povahy lidských znalostí pomocí modelování těchto na počítači, se děĺı do 3 základních větví: symbolický funkcionalismus škola umělé inteligence, která je založena na modelování inteligence pomocí modelování manipulace se symboly a jejich representace příklad: znalostní systémy, automatické dokazování, plánování konecionismus škola umělé inteligence, která je založena na modelování inteligence pomocí velkého počtu stejných, fixně svázaných a interagujících výpočetních jednotek příklad: neuronové sítě behavioralismus který je založen na předpokladu že kombinací velkého počtu specializovaných, ale neinteligentních procesů (černých krabiček) lze dosáhnout inteligentního chování příklad: inteligentní robotika hybridní přístupy: multi-agentní přístupy, genetické algoritmy, artificial life,... /Úvod

ṕuvodní poznámka o umělé inteligenci Symbolický funkcionlismus je založen na modelování dvou základních aspektů inteligentního uvažování: znalostí uvažování Obojí lze modelovat na různých úrovních obecnosti. Silné metody umožňují obecné modely uvažování, zatímco slabé metody jsou specifické :: Zjednodušená úloha umělé inteligence podle symbolického funkcionalismu tedy zní: jak reprezentovat ty správné znalosti a naprogramovat takové uvažovací mechanismy, které obohatí soubor znalostí o nové hypotézy. /Úvod

ṕuvodní poznámka o umělé inteligenci Mějme dva extrémní případy implementace umělé inteligence podle symbolického funkcionalismu: silný znalosti jsou reprezentovány pomocí systému predikátové logiky a uvažování je reprezentováno výpočetním modelem dedukce slabý znalosti jsou reprezentovány jako množina výroků a uvažování je reprezentováno pomocí souboru if-then pravidel V obojím případě je množina nových znalostí (ať už vytvořených nebo hypotetických) veliká a je potřeba ji inteligentně vytvářet a prohledávat. Strategie prohledávání je součástí modelu uvažování. Prostor nových znalostí se nazývá stavový prostor. Při řešení problémů se skládá stavový prostor z meziřešení či pomocných hypotéz. Některá meziřešení jsou klasfikovaná jako cílová řešení. /Stavový prostor

pstavový prostor Řešení problémů, jako jeden z projevů inteligentní uvažování, je chápáno jako problém nalezní (z počátečního stavu s 0 ) takového stavu s n, který splňuje vlastnosti požadovaného řešení goal(s n ). Takovéto stavy nazýváme cílové s goal. V některých případech se definuje řešení problému jako problém nalezeni cesty z počátečního uzlu do uzlu cílového. Zde neprohledáváme prostor uzlů ale prostor cest. Problém prohledávání stavového prostoru je tedy definován pomocí počátečního stavu - s 0 vlastností cílových stavů goal(s n ) množiny stavových operátorů, objektivní funkce, ohodnocení ceny použití stavových operátoru Příklady: 8-queens problem, cryptaritmetic, šachy, 8-puzzle, dokazování v matema-tice, porouzmění přirozenému jazyku, plánování a rozvrhování, robotická navigace, Situace se vážně komplikuje v případě, že se jedná o dynamicky se měnící stavový prostor například, pří řešení problému v dynamickém prostředí nebo hře s kompetitvním oponentem. /Stavový prostor

p8-puzzle /Stavový prostor

pthe 8 queen problem /Stavový prostor

pcryptoarithmetic forty solution: 19786 e.g. f=2, o=9, r=7, etc. + ten + 850 + ten + 850 --------- --------- sixty 31486 /Stavový prostor

ptravelling Salesman /Stavový prostor

pprohledávání Stavového Prostoru Stejně jako při modelování umělé inteligence tak při prohledávání stavového prostoru řešíme problémy s reprezentací stavového prostoru implementace stavových operátorů (fun-kce expand), zabránění cyklům,... algoritmu prohledávání rozhodnutí, který operátor expandovat jako první, odhady, heuristiky co požadujeme od úspěšného algoritmu? je zaručeno, že algoritmus najde řešení, prohledá celý stavový prostor? úplnost ukončí se algoritmus? najde algoritmus vždy optimální řešení? optimalita jaká je komplexita prohledávání? časová and paměťová náročnost /Stavový prostor

pprohledávání Stavového Prostoru /Stavový prostor

pprohledávání Stavového Prostoru /Stavový prostor

pprohledávání Stavového Prostoru /Stavový prostor

pprohledávání Stavového Prostoru /Stavový prostor

pprohledávání Stavového Prostoru /Stavový prostor

pstrategie neinformovaného prohledávání stavového prostoru dopředné řetězení forward chaining prohledává prostor od počátku k cíli, aplikuje stavové operátory za účelem nalezení nových stavů, process iterativně pokračuje než je nalezeno řešení zpětné řetězení backward chaining prohledává prostor od cíle k počátku hledá stavové operátory, které generují aktuální stavy podmínky těchto operátorů generují nové cíle process pokračuje až do stavu, který popisuje daný problém oboustranné prohledávání prohledává stavový prostor z obou stran /Stavový prostor

pstrategie neinformovaného prohledávání stavového prostoru algoritmy prohledávání se děĺı také podle toho v jakém pořadí jsou aplikovány aplikovatelné stavové operátory prohledávání do hloubky vždy aplikuje stavový operátor na co nejčerstvěji rozbalený stav, v případě selhání aplikuje backtracking prohledávání do šířky nejprve prohledá všechny stavy, které jsou stejně daleko od počátečního stavu před tím než expanduje o další úroveň datové struktury pro prohledávání stavového prostoru: 1. stavový prostor ve formě orientovaného grafu 2. seznamy, které se používají pro prohledávání stavového prostoru : open list seznam otevřených stavů, slouží k řízení stavové expanze closed list seznam prohledaných uzlů, slouží k zabránění zacyklení /BFS

pprohledávání do šířky Breadth First Search (BFS) /BFS

pprohledávání do šířky Breadth First Search (BFS) /BFS

pprohledávání do šířky Breadth First Search (BFS) begin _open <= [Start] while (_open =/= []) do begin X <= first(_open) _open <= _open - [X] if X = GOAL then return(success) else begin E <= expand(x) _open <= _open + E end end return(failure) end. /BFS

pprohledávání do šířky Breadth First Search (BFS) /BFS

pvsuvka - analýza algoritmů function SUM(_seq) _sum <= 0 for i : 1 to length(_seq) _sum = _sum + _seq return _sum /BFS

pvsuvka - analýza algoritmů function SUM(_seq) _sum <= 0 for i : 1 to length(_seq) _sum = _sum + _seq return _sum doba trvání algoritmu? /BFS

pvsuvka - analýza algoritmů function SUM(_seq) _sum <= 0 for i : 1 to length(_seq) _sum = _sum + _seq return _sum doba trvání algoritmu? pro seq = n, T (n) = 2n + 2 /BFS

pvsuvka - analýza algoritmů function SUM(_seq) _sum <= 0 for i : 1 to length(_seq) _sum = _sum + _seq return _sum doba trvání algoritmu? pro seq = n, T (n) = 2n + 2 pro různá n můžem pracovat s T (n) avg a T (n) worst asymptotická analýza algortimu? /BFS

pvsuvka - analýza algoritmů function SUM(_seq) _sum <= 0 for i : 1 to length(_seq) _sum = _sum + _seq return _sum doba trvání algoritmu? pro seq = n, T (n) = 2n + 2 pro různá n můžem pracovat s T (n) avg a T (n) worst asymptotická analýza algortimu? T (n) O(f(n)) if T (n) kf(n) forall n /BFS

pvsuvka - analýza algoritmů function SUM(_seq) _sum <= 0 for i : 1 to length(_seq) _sum = _sum + _seq return _sum doba trvání algoritmu? pro seq = n, T (n) = 2n + 2 pro různá n můžem pracovat s T (n) avg a T (n) worst asymptotická analýza algortimu? T (n) O(f(n)) if T (n) kf(n) forall n classes of problems: P problémy O(n), O(log n) NP problémy nondeterministické P problémy NP-úplné problémy třída NP problémů, které nejsou P a mají exp. náročnost /BFS

pvlastnosti BFS /BFS

pvlastnosti BFS úplné: /BFS

pvlastnosti BFS úplné: ANO (je-li b konečné) /BFS

pvlastnosti BFS úplné: ANO (je-li b konečné) čas: /BFS

pvlastnosti BFS úplné: ANO (je-li b konečné) čas: 1 + b + b 2 + b 3 +... + b d = O(b d+1 ) tzn. exponenciálně podle d /BFS

pvlastnosti BFS úplné: ANO (je-li b konečné) čas: 1 + b + b 2 + b 3 +... + b d = O(b d+1 ) tzn. exponenciálně podle d paměť: /BFS

pvlastnosti BFS úplné: ANO (je-li b konečné) čas: 1 + b + b 2 + b 3 +... + b d = O(b d+1 ) tzn. exponenciálně podle d paměť: O(b d ) /BFS

pvlastnosti BFS úplné: ANO (je-li b konečné) čas: 1 + b + b 2 + b 3 +... + b d = O(b d+1 ) tzn. exponenciálně podle d paměť: O(b d ) optimální: /BFS

pvlastnosti BFS úplné: ANO (je-li b konečné) čas: 1 + b + b 2 + b 3 +... + b d = O(b d+1 ) tzn. exponenciálně podle d paměť: O(b d ) optimální: ano, optimalizuje-li se hloubka /DFS

pprohledávání do hloubky Depth First Search (DFS) /DFS

pprohledávání do hloubky Depth First Search (DFS) /DFS

pprohledávání do hloubky Depth First Search (DFS) /DFS

pprohledávání do hloubky Depth First Search (DFS) /DFS

pprohledávání do hloubky Depth First Search (DFS) /DFS

pprohledávání do hloubky Depth First Search (DFS) begin _open <= [Start] while (_open =/= []) do begin X <= first(_open) _open <= _open - [X] if X = GOAL then return(success) else begin E <= expand(x) _open <= _open + E end end return(failure) end. /DFS

pprohledávání do hloubky Depth First Search (DFS) begin _open <= [Start] while (_open =/= []) do begin X <= first(_open) _open <= _open - [X] if X = GOAL then return(success) else begin E <= expand(x) _open <= E + _open end end return(failure) end. /DFS

pprohledávání do hloubky Depth First Search (DFS) begin _open <= [Start], _closed <= [] while (_open =/= []) do begin X <= first(_open) _closed <= _closed + [X], _open <= _open - [X] if X = GOAL then return(success) else begin E <= expand(x) E <= E - _closed _open <= _open + E end end return(failure) end. /DFS

pvlastnosti DFS /DFS

pvlastnosti DFS úplné: /DFS

pvlastnosti DFS úplné: NE (není-li b konečné, nebo existují-li smyčky) /DFS

pvlastnosti DFS úplné: NE (není-li b konečné, nebo existují-li smyčky) čas: /DFS

pvlastnosti DFS úplné: NE (není-li b konečné, nebo existují-li smyčky) čas: 1 + b + b 2 + b 3 +... + b d = O(b d+1 ) tzn. exponenciálně podle d /DFS

pvlastnosti DFS úplné: NE (není-li b konečné, nebo existují-li smyčky) čas: 1 + b + b 2 + b 3 +... + b d = O(b d+1 ) tzn. exponenciálně podle d paměť: /DFS

pvlastnosti DFS úplné: NE (není-li b konečné, nebo existují-li smyčky) čas: 1 + b + b 2 + b 3 +... + b d = O(b d+1 ) tzn. exponenciálně podle d paměť: O(bd) /DFS

pvlastnosti DFS úplné: NE (není-li b konečné, nebo existují-li smyčky) čas: 1 + b + b 2 + b 3 +... + b d = O(b d+1 ) tzn. exponenciálně podle d paměť: O(bd) optimální: /DFS

pvlastnosti DFS úplné: NE (není-li b konečné, nebo existují-li smyčky) čas: 1 + b + b 2 + b 3 +... + b d = O(b d+1 ) tzn. exponenciálně podle d paměť: O(bd) optimální: ne /IDDFS

palternativní strategie DLDS (Depth-limited) search: prohledávání do hloubky s omezenou hloubkou prohledávání IDDFS (Iterative deepening) search: prohledávání do hloubky s iterativní se zvyšující hloubkou prohledávání Algorithm: 1. depth_bound=1 2. DFS with a depth_bound 3. if success then end else depth_bound = depth_bound + 1 and go to the step 2. /IDDFS

palgoritmus IDDFS prohledávání /IDDFS

palgoritmus IDDFS prohledávání /IDDFS

palgoritmus IDDFS prohledávání /IDDFS

palgoritmus IDDFS prohledávání /IDDFS

pvlastnosti IDDFS /IDDFS

pvlastnosti IDDFS úplné: /IDDFS

pvlastnosti IDDFS úplné: ANO (je-li b konečné) /IDDFS

pvlastnosti IDDFS úplné: ANO (je-li b konečné) čas: /IDDFS

pvlastnosti IDDFS úplné: ANO (je-li b konečné) čas: d1 + (d 1)b + (d 2)b 2 + (d 3)b 3 +... + b d < db d = O(b d ) /IDDFS

pvlastnosti IDDFS úplné: ANO (je-li b konečné) čas: d1 + (d 1)b + (d 2)b 2 + (d 3)b 3 +... + b d < db d = O(b d ) paměť: /IDDFS

pvlastnosti IDDFS úplné: ANO (je-li b konečné) čas: d1 + (d 1)b + (d 2)b 2 + (d 3)b 3 +... + b d < db d = O(b d ) paměť: O(bd) /IDDFS

pvlastnosti IDDFS úplné: ANO (je-li b konečné) čas: d1 + (d 1)b + (d 2)b 2 + (d 3)b 3 +... + b d < db d = O(b d ) paměť: O(bd) optimální: /IDDFS

pvlastnosti IDDFS úplné: ANO (je-li b konečné) čas: d1 + (d 1)b + (d 2)b 2 + (d 3)b 3 +... + b d < db d = O(b d ) paměť: O(bd) optimální: ano, optimalizuje-li se hloubka /IDDFS

pvlastnosti IDDFS úplné: ANO (je-li b konečné) čas: d1 + (d 1)b + (d 2)b 2 + (d 3)b 3 +... + b d < db d = O(b d ) paměť: O(bd) optimální: ano, optimalizuje-li se hloubka provnání: pro b = 10 a d = 5 v nejhorším případě: N(ids) = 50 + 400 + 3, 000 + 20, 000 + 100, 000 = 123, 450 N(bfs) = 10 + 100 + 1, 000 + 10, 000 + 100, 000 = 111, 100 /IDDFS

palternativní strategie Bidirectional search /IDDFS

pporovnání Strategíı kritérium/algoritmus BFS DFS Dlim IDDFS BiDir čas b n b n b n b n b d 2 paměť b n bn bl bn b d 2 optimalita ano ne ne ano ano úplnost ano ne ne ano ano /IDDFS