Umělá inteligence I. Roman Barták, KTIML. roman.bartak@mff.cuni.cz http://ktiml.mff.cuni.cz/~bartak



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

Obsah: Problém osmi dam

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

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

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

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

Dnešní program odvozování v Bayesovských sítích exaktní metody (enumerace, eliminace proměnných) aproximační metody y( (vzorkovací techniky)

Základy umělé inteligence

Matice sousednosti NG

5 Rekurze a zásobník. Rekurzivní volání metody

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

DYNAMICKÉ PROGRAMOVÁNÍ A PROBLÉM BATOHU

Algoritmy a datové struktury

Plánování úloh na jednom stroji

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

GRAFY A GRAFOVÉ ALGORITMY

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

12. Aproximační algoritmy

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

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

VYSOKÁ ŠKOLA EKONOMICKÁ V PRAZE. Optimalizace trasy při revizích elektrospotřebičů

přirozený algoritmus seřadí prvky 1,3,2,8,9,7 a prvky 4,5,6 nechává Metody řazení se dělí:

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

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

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.

Základní datové struktury

Kapitola 11. Vzdálenost v grafech Matice sousednosti a počty sledů

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

zejména Dijkstrův algoritmus pro hledání minimální cesty a hladový algoritmus pro hledání minimální kostry.

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

Agent pracující v částečně pozorovatelném prostředí udržuje na základě senzorického modelu odhaduje, jak se svět může vyvíjet.

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

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

GEOGRAFICKÉ INFORMAČNÍ SYSTÉMY 6

IB108 Sada 1, Příklad 1 Vypracovali: Tomáš Krajča (255676), Martin Milata (256615)

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

Databázovéa informačnísystémy NÁVRH IMPLEMENTACE 3 PARALELNÍ PROCESY V DATABÁZÍCH

Řešení problému batohu dynamickým programováním, metodou větví a hranic a aproximativním algoritmem

Masarykova univerzita. Fakulta informatiky. Evoluce pohybu

Cílem kapitoly je seznámit studenta se seznamem a stromem. Jejich konstrukci, užití a základní vlastnosti.

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

TÉMATICKÝ OKRUH TZD, DIS a TIS

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

Anotace. Dynamické programování, diskrétní simulace.

8 A (strana 1) Soubory a složky, procházení, orientace

ADT STROM Lukáš Foldýna

Použití databází. Mnoho postupů, které si ukážeme pro prací s formulářů využijeme i při návrhu tiskových sestav.

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ FAKULTA INFORMAČNÍCH TECHNOLOGIÍ. Uživatelská příručka k programu FloodFilling Art

Naučit se, jak co nejsnadněji přejít od verze TopoLu pro Windows k verzi TopoL xt. Cílem není vysvětlení všech možností programu.

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

Implementace A* algoritmu na konkrétní problém orientace v prostoru budov

ORIENTOVANÉ GRAFY, REPREZENTACE GRAFŮ

Stromy, haldy, prioritní fronty

METODY REPREZENTACE A ZPRACOVÁNÍ ZNALOSTÍ V UMĚLÉ INTELIGENCI

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

Tento počítač. 1 Seznámení s programem. 2 Spuštění programu. Adresářové operace Popis programu Tento počítač, podstata adresářových operací.

Implementace seznamů do prostředí DELPHI pomocí lineárního seznamu

Signálové a mezisystémové převodníky

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.

Binární vyhledávací stromy II

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í

Funkce zadané implicitně

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

Prioritní fronta, halda

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

3. Prohledávání grafů

Adresní vyhledávání (přímý přístup, zřetězené a otevřené rozptylování, rozptylovací funkce)

Obecný úvod do autoelektroniky

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

DJ2 rekurze v SQL. slajdy k přednášce NDBI001. Jaroslav Pokorný

Obsah. KAPITOLA 1 Dříve než začneme 19 Kdysi dávno aneb střípky z historie algoritmických strojů třicátá léta 22

Koncept Hayekova stroje pro řízení robotů Khepera IV

Algoritmizace prostorových úloh

TGH06 - Hledání nejkratší cesty

Standardně máme zapnutý panel nástrojů Formátování a Standardní.

8. Geometrie vrací úder (sepsal Pavel Klavík)

Heuristiky, best-first search, A* search

Datové struktury Úvod

Skořepina v SolidWorks

Programování 3. hodina. RNDr. Jan Lánský, Ph.D. Katedra informatiky a matematiky Fakulta ekonomických studií Vysoká škola finanční a správní 2015

Rekurzivní algoritmy

8) Jaké jsou důvody pro použití víceprůchodového překladače Dříve hlavně kvůli úspoře paměti, dnes spíše z důvodu optimalizace

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

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

Seminář z IVT Algoritmizace. Slovanské gymnázium Olomouc Tomáš Kühr

Úvod do informatiky. Miroslav Kolařík. Zpracováno dle učebního textu R. Bělohlávka: Úvod do informatiky, KMI UPOL, Olomouc 2008.

Tento text je stručným shrnutím těch tvrzení Ramseyovy teorie, která zazněla

ČESKÁ ZEMĚDĚLSKÁ UNIVERZITA V PRAZE. Teze diplomové práce

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

Dynamické programování

bfs, dfs, fronta, zásobník

NPRG030 Programování I 3/2 Z --- NPRG031 Programování II --- 2/2 Z, Zk

+ ω y = 0 pohybová rovnice tlumených kmitů. r dr dt. B m. k m. Tlumené kmity

1. Minimální kostry Od mìsteèka ke kostøe

13. Třídící algoritmy a násobení matic

Genetické algoritmy a jejich praktické využití

Algoritmizace I. Ak. rok 2015/2016 vbp 1. ze 132

Na začátku rozdělíme práci a určíme, které podproblémy je potřeba vyřešit. Tyto

Vícekriteriální hodnocení variant metody

Transkript:

Umělá inteligence I Roman Barták, KTIML roman.bartak@mff.cuni.cz http://ktiml.mff.cuni.cz/~bartak Na úvod Agent s reflexy pouze převádí současný vjem na jednu akci. Agent s cílem umí plánovat několik akcí dopředu pro dosažení cíle. Podívejme se na jeden typ agentů s cílem agenty řešící úlohy. Co je to úloha a co je její řešení? Jak nalézt řešení úkolu? Prohledávací algoritmy BFS, DFS, DLS, IDS, BiS Poznámka: Budeme se zabývat neinformovanými algoritmy, tj. algoritmy, které nevyužívají speciální znalost problému.

Příklad Inteligentní agenti maximalizují míru svého výkonu, což si mohou zjednodušit formulací cílů a snahou jich dosáhnout. Situace a možný postup řešení agent je v Rumunsku ve městě Arad míra výkonu se skládá z mnoha složek (chce být opálený, užít si noční život, prohlédnout okolí, ), což komplikuje rozhodovací proces nechť ale agent má na zítra nevratnou letenku z Bukurešti formulací cíle dostat se do zítřka do Bukurešti se rozhodovací problém zjednodušuje cíl určuje žádoucí stav světa, potřebuje ale další stavy světa, přes které se k cíli dostaneme, a akce, které nás mezi stavy budou posouvat formulace úlohy stavy mohou být města, přes která pojedeme (aktuální poloha na silnici je zbytečně jemná) akce mohou být přejezdy mezi městy (akce typu zvedni a polož nohu jsou příliš jemné) Jak ale najdeme cestu do Bukurešti, když na rozcestí jsou jen tři nejbližší města a žádné není Bukurešť? Uvažujme, že máme mapu Rumunska, můžeme tedy prozkoumat různé cesty (prohledávání), vybrat tu nejlepší a potom se po ní vydat (exekuce). Řešení úloh se skládá ze čtyř hlavních kroků: formulace cíle Jaké jsou žádoucí stavy světa? formulace úlohy Jaké akce a stavy je vhodné uvažovat pro dosažení cíle? vyřešení úlohy Jak najít nejlepší posloupnost stavů vedoucí k cíli? realizace řešení Známe-li požadované akce, jak je budeme realizovat? Řešení úloh

Formulace úloh Dobře formulovaná úloha se skládá z: počátečního stavu in(arad) popisu možných akcí typicky funkcí následníka, který pro každý stav vrátí akci a stav, kam nás akce převede SUCCESSOR-FN(in(Arad)) = go(sibiu), in(sibiu) implicitně definuje stavový prostor (množina stavů dosažitelných z počátečního stavu) cesta je potom posloupnost stavů propojených akcemi testu cíle funkce určující zda daný stav je cílový nebo ne, může být třeba výčet cílových stavů { in(bucharest) } ceny cest numerická cena každé cesty, určuje míru výkonu agenta Budeme předpokládat, že cena cesty se skládá z nezáporných cen akcí po cestě. Řešením úlohy je cesta z počátečního stavu do stavu cílového. Optimální řešení je řešení z nejmenší cenou cesty mezi všemi řešeními. V naší formulaci jsme použili abstrakci stavu světa ignorujeme počasí, stav silnice, abstrakci akcí neuvažujeme zapnutí rádia, čerpání paliva, Abstrakce Jaká je správná abstrakce? abstraktní řešení lze rozvést na konkrétní (validita) z libovolného místa v Aradu najdeme cestu do libovolného místa v Sibiu provádění akcí z řešení je snazší než původní úloha (užitečnost) cestu z Aradu do Sibiu můžeme svěřit řidiči bez dalšího plánování Bez možnosti pracovat s abstrakcemi by nás reálný svět zahltil.

Hračky Hračky (toy problems) slouží pro ilustraci a porovnání řešících technik. Svět vysavače stavy (robot smetí) počátek, cíl následník (L, R, S) Loydova osmička stavy (pozice kostiček) počátek, cíl následník (L, R, U, D) 8-královen umístit na šachovnice 8 královen bez ohrožení inkrementální reprezentace (přidáváme královny) reprezentace úplných stavů (posouváme královny) Reálné úlohy To je to, co lidi zajímá. Hledání cest stavy (reprezentace míst) počátek (teď a tady), cíl (tam a včas) následník cenová funkce (čas, cena, ) Okružní cesty cíl (navštívit každé město alespoň jednou) stavy (aktuální a navštívený místo) TSP (Travelling Salesman Problem), NP-těžký Sestavování produktů stav (pozice robotické ruky součástky) cíl (sestavený produkt) následník (pohyby kloubů ) cena (celkový čas sestavení sestavení proteinů z posloupnosti aminokyselin

Hledáme řešení Když už máme formulované úlohy, jak je vyřešíme? Prohledávání stavového prostoru začneme v počátečním stavu (kořenový uzel) otestujeme, zda počáteční stav není zároveň cílový pokud není cílový, provedeme expanzi stavu, čímž generujeme novou množinu stavů vybereme další stav pro pokračování pomocí prohledávací strategie Uzel vs. stav Stavový prostor se liší prohledávacího stromu stejně jako stav není uzel stromu! Uzel prohledávacího stromu obsahuje aktuální stav odkaz na rodiče akci, která vedla od rodiče do aktuálního stavu cenu cesty (z kořene), g(n) hloubku (počet kroků od kořene)

Okraj Při prohledávání potřebujeme také reprezentovat soubor uzlů pro expandování okraj (fringe). Uzly z okraje jsou nazývány listy. Abychom usnadnili výběr uzlu z okraje, budeme okraj reprezentovat frontou s následujícími operacemi: MAKE-QUEUE(element, ) EMPTY?(queue) FIRST(queue) REMOVE-FIRST(queue) INSERT(element, queue) INSERT-ALL(elements, queue) Stromové prohledávání

Prohledávací algoritmus vrátí řešení nebo neúspěch. Měření výkonu Výkon algoritmu budeme posuzovat ze čtyř hledisek: úplnost Pokud existuje řešení, najde ho? optimalita Najde algoritmus optimální řešení? časová složitost Jak dlouho trvá nalezení řešení? prostorová složitost Kolik paměti pro prohledávání potřebujeme? Čas a prostor typicky měříme vzhledem k nějaké míře složitosti problému. větvící faktor b (maximální počet následníků) vhodné, když je stavový prostor reprezentován implicitně (počátek a následníci) hloubka d (hloubka nejméně zanořeného cílového uzlu) cesta m (délka maximální cesty ve stavovém prostoru) cena prohledávání (kolik času a prostoru potřebujeme) celková cena (kombinuje cenu prohledávání a cenu nalezeného řešení) Informovanost Dnes se podíváme na tzv. neinformované (slepé) prohledávání nemá žádnou dodatečnou informaci o stavech, kromě popisu úlohy tj. umí rozpoznat cílový stav od necílového a generovat následníky Příště doplníme informované (heuristické) prohledávání u stavů dokáže rozlišit, jak jsou slibné na cestě k řešení např. prostřednictvím odhadu ceny zbývající do cíle

Breadth-first search Jdeme do šířky Vždy nejprve expandujeme celou vrstvu prohledávacího stromu než postoupíme do další z okraje vybereme uzel v nejmenší hloubce v obecném prohledávacím algoritmu použijeme frontu typu FIFO (first-in-first-out) bílé uzly = okraj šedé uzly = expandované, zůstávají v paměti zelené uzly = zatím neviditelné Breadth-first search Jdeme do šířky analýza Je to metoda úplná (za předpokladu konečného větvení). Nejdříve nalezený cíl nemusí být optimální! optimum lze garantovat, pokud je cena neklesající funkcí hloubky Časová složitost (počet navštívených uzlů pro cíl v hloubce d, který je na konci vrstvy) 1+b+b 2 +b 3 + +b d + b(b d -1) = O(b d+1 ) Paměťová složitost v paměti drží všechny navštívené uzly, tj. stejná jako časová složitost O(b d+1 ) Paměť je větší problém než čas ale ani čas není zanedbatelný. b = 10 10.000 uzlů/sec. 1000 bytů/uzel hloubka 2 4 6 8 10 12 14 uzly 1100 111100 10 7 10 9 10 11 10 13 10 15 čas 0.11 sec. 11 sekund 19 minut 31 hodin 129 dní 35 let 3523 let paměť 1 megabyte 106 megabytes 10 gigabytes 1 terabyte 101 terabytes 10 petabytes 1 exabyte

Uniform-cost search Do šířky dle ceny Modifikace BFS pro hledání optimálního řešení. Jako první expandujeme uzel s nejmenší cenou cesty od kořene. Pozor na kroky s nulovou cenou, mohou vést k cyklům! Úplnost (a nalezení optima) lze garantovat, pokud je cena každé akce větší či rovna konstantě ε. Časová (a paměťová) složitost záleží na ceně cesty spíše než na hloubce O(b1+ C*/ ε ), kde C* je cena optimálního řešení může být mnohem horší než u BFS, protože se často prohledávají dlouhé cesty s krátkými kroky než se zkusí cesty s delšími a možná vhodnějšími kroky Depth-first search Jdeme do hloubky Vždy expandujeme nejhlubší uzel až se dostaneme do vrstvy, kde nelze expandovat, a pak se vrátíme k uzlu s menší hloubkou v obecném prohledávacím algoritmu použijeme frontu typu LIFO (last-in-first-out), tj. zásobník často se implementuje rekurzivně bílé bílé uzly uzly == okraj okraj šedé šedé uzly uzly == expandované expandované vv paměti paměti černé černé uzly uzly == expandované expandované smazané smazané zelené zelené uzly uzly == neviditelné neviditelné

Depth-first search Jdeme do hloubky analýza Pokud se vydá špatnou cestou, nemusí najít řešení (není úplný) a samozřejmě nemusí najít optimum. Časová složitost O(b m ), kde m je maximální hloubka může se stát, že d << m, kde d je hloubka řešení Paměťová složitost stačí si pomatovat jednu cestu z kořene společně se sousedními uzly expandovaný uzel s prozkoumanými potomky lze odstranit O(bm), kde m je maximální navštívená hloubka Lze ještě zlepšit technikou známou jako backtracking! generuje jednoho následníka (místo všech) O(m) stavů mění stav na místě (místo kopírování), pokud tedy umí obnovit původní stav na základě akce O(1) stavů a O(m) akcí Depth-limited search Omezení hloubky Problém s neomezenými stromy můžeme řešit přidáním limitu l na hloubku prohledávání. uzly v hloubce l se považují jako uzly bez následníků algoritmus vrací řešení, neúspěch nebo vyčerpání limitu (cut-off) časová složitost O(b l ), prostorová složitost O(bl) pokud l < d, pak řešení nenajdeme (d je hloubka řešení) pokud d << l, pak často prohledáváme zbytečně mnoho Jak určit vhodný limit? použitím informací o problému např. pro hledání cesty ve světě 20-ti měst, můžeme použít limit 19 studiem mapy můžeme získat ještě přesnější limit mezi libovolnými dvěma městy se lze dostat do 9-ti kroků (tzv. průměr grafu)

Iterative deepening DFS Iterování hloubky Jak zúplnit prohledávání s omezenou hloubkou? budeme postupně zvětšovat limit l spojíme tak výhody BFS a DFS úplnost (pro konečné větvení) garance optimality (pro cenu závislou na hloubce) malé paměťové nároky O(bd) a co časová složitost? d b 1 + (d-1)b 2 + + 3b d-2 +2b d-1 + 1b d = O(b d ) fakticky lepší než BFS, které často přidá ještě jednu vrstvu Př. (b= 10, d = 5): BFS = 1.111.100, DFS = 111.110, IDS = 123.450 IDS je preferovaná metoda slepého prohledávání ve velkém prostoru a s neznámou hloubkou řešení. Iterative deepening DFS Iterování hloubky příklad

Bidirectional search Z obou stran Můžeme také kombinovat prohledávání od počátku s prohledáváním od cíle (dokud se někde nepotkají). Proč? b d/2 + b d/2 << b d Př. (b= 10, d = 6): BFS = 11.111.100, BiS = 22.200 Jak? Před expanzí uzlu vždy zkontrolujeme, zda není v okraji druhého prohledávacího stromu. Potřebujeme mít v paměti alespoň jeden ze stromů O(b d/2 ), test přítomnosti uzlu lze provést v konstantním čase (hašování). Použijeme-li z obou stran prohledávání do šířky, dostaneme úplný algoritmus garantující nalezení optima. Pozpátku? Při prohledávání od počátku jdeme přes stavy, co ale prohledáváme při cestě od cíle? Je-li cíl jediný stav, můžeme jít také přes stavy (cesta Arad Bucharest). Je-li cílem více explicitně daných stavů (svět vysavače), můžeme zavést umělý stav, jehož jsou dané cílové stavy předchůdci nebo můžeme skupinu stavů vidět jako jediný meta-stav. Nejtěžším případem jsou implicitně dané cílové stavy (8- královen), kdy je potřeba najít kompaktní popis umožňující test přítomnosti stavu z dopředné fáze. Jiný problém je jak definovat předchůdce stavu. Předchůdcem n je každý stav, jehož je n následníkem. Nejtěžším případem jsou implicitně definované přechody pomocí nějaké funkce.

Shrnutí Kritérium Breadth-First Uniform-cost Depth-First Depth-limited Iterative deepening Bidirectional search Úplnost? ANO* ANO* NE ANO, if l d ANO ANO* Čas b d+1 b C*/ ε b m b l b d b d/2 Prostor b d+1 b C*/ ε bm bl bd b d/2 Optimalita? ANO* ANO* NE NE ANO ANO b větvící faktor d nejmenší hloubka (optimálního) řešení C* cena optimálního řešení ε minimální nárůst ceny (minimální cena akce) m maximální navštívená hloubka l limit hloubky * úplnost při omezeném větvení (BFS) optimalita při minimálním nárůstu ceny resp. jednotkové ceně (BFS) Závěrečné poznámky opakující se stavy Zatím jsme ignorovali jednu z typických obtíží prohledávání expanzi již navštívených stavů. ne vždy je to problém (vhodná formulace problému 8-královen) někdy ale výrazně zvětší prohledávaný strom d+1 stavů (a) vede na strom s 2 d listy (b) Co s tím? můžeme se pomatovat již expandované stavy tzv. uzavřené stavy pokud se do uzavřeného stavu dostaneme znova, dále ho v prohledávání neexpandujeme

Závěrečné poznámky částečná informace Zatím jsme uvažovali statické, plně pozorovatelné, diskrétní a deterministické prostředí. Co dělat v případě, že agentovi chybí informace? žádné senzory (nevíme v jakém jsme stavu) pracujeme s domnělým (belief) stavem množina reálných stavů a hledáme domnělý stav obsahující pouze cílové stavy (conformant problems) neurčitý výsledek akce plány s alternativními větvemi (contingency problems) neznámé akce řešení průzkumem (exploration problems) Domnělý stav reprezentuje množinu možných stavů světa (svět vysavače).