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



Podobné dokumenty
Matice sousednosti NG

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

Použití dalších heuristik

Dijkstrův algoritmus (připomenutí)

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

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

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

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

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

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

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

Stromy, haldy, prioritní fronty

DYNAMICKÉ PROGRAMOVÁNÍ A PROBLÉM BATOHU

Rekurzivní algoritmy

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

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

Pokročilé haldy. prof. Ing. Pavel Tvrdík CSc. Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010

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

Univerzita Karlova v Praze Matematicko-fyzikální fakulta. Vedoucí práce: RNDr. Martin Pergel, Ph.D.

Vzdálenost uzlů v neorientovaném grafu

TGH10 - Maximální toky

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

Obsah: Problém osmi dam

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

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

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

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.

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

TGH04 - procházky po grafech

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

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

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

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

ORIENTOVANÉ GRAFY, REPREZENTACE GRAFŮ

PLANARITA A TOKY V SÍTÍCH

Algoritmizace Dynamické programování. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010

Heuristické řešení problémů. Seminář APS Tomáš Müller

Aproximativní algoritmy UIN009 Efektivní algoritmy 1

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

Distribuovaná synchronizace. Paralelní a distribuované systémy. 11. Přednáška Vzájemné vyloučení. Centralizovaný algoritmus - fronta procesů

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

Interpret jazyka IFJ2011

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

ROZHODOVACÍ PROCEDURY A VERIFIKACE PAVEL SURYNEK, KTIML

Heuristiky, best-first search, A* search

Uvažujeme jen hry s nulovým součtem, tj. zisk jednoho. Střídá se náš tah, kde maximalizujeme svůj zisk, s tahem

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

2. Mřížky / Záplavové vyplňování

Časová a prostorová složitost algoritmů

BAKALÁŘSKÁ PRÁCE. Numerické metody jednorozměrné minimalizace

= je prostý orientovaný graf., formálně c ( u, v) 0. dva speciální uzly: zdrojový uzel s a cílový uzel t. Dále budeme bez

Informatika Algoritmy

Paralelní grafové algoritmy

ALG 04. Zásobník Fronta Operace Enqueue, Dequeue, Front, Empty... Cyklická implementace fronty. Průchod stromem do šířky

Interaktivní segmentace obrazu s využitím algoritmu pro maximalizaci toku v síti.

TOKY V SÍTÍCH II. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze

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]

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

Algoritmizace a programování. Ak. rok 2012/2013 vbp 1. ze 44

Ant Colony Optimization

Algoritmy na ohodnoceném grafu

Heuristiky, best-first search, A* search

Genetické programování

Programování. s omezujícími podmínkami. Roman Barták. rová hranová konzistence

KMA/PDB. Karel Janečka. Tvorba materiálů byla podpořena z prostředků projektu FRVŠ č. F0584/2011/F1d

Algoritmy a datové struktury

Úvod do teoretické informatiky(2017/2018) cvičení 11 1

NP-ÚPLNÉ PROBLÉMY. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze

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

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

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

Heuristiky, best-first search, A* search

Union-Find problém. Kapitola 1

Algoritmy I, složitost

Hranová konzistence. Arc consistency AC. Nejprve se zabýváme binárními CSP. podmínka odpovídá hraně v grafu podmínek

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

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

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

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

Dynamické programování

Obousměrné prohledávání. Tomáš Hřebejk

Kapitola 7: Návrh relačních databází. Nástrahy relačního návrhu. Příklad. Rozklad (dekompozice)

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

Složitost a NP-úplnost

Dynamic programming. Optimal binary search tree

Reprezentace aritmetického výrazu - binární strom reprezentující aritmetický výraz

TGH08 - Optimální kostry

Dynamické programování. Optimální binární vyhledávací strom

Základy algoritmizace c2005, 2007 Michal Krátký, Jiří Dvorský1/39

V každém kroku se a + b zmenší o min(a, b), tedy vždy alespoň o 1. Jestliže jsme na začátku dostali 2

Volné stromy. Úvod do programování. Kořenové stromy a seřazené stromy. Volné stromy

Algoritmizace prostorových úloh

Prohledávání stavového prostoru

IV113 Validace a verifikace. Převod LTL formule na Büchi automat. Jiří Barnat

Heuristiky, best-first search, A* search

Heuristiky, best-first search, A* search

Uvažujeme jen hry s nulovým součtem, tj. zisk jednoho. Střídá se náš tah, kde maximalizujeme svůj zisk, s tahem

dag a dp v něm, bellman-ford, floyd-warshall

ADT prioritní fronta. Haldy. Další operace nad haldou. Binární halda. Binomické stromy. Časová složitost jednotlivých operací.

TGH06 - Hledání nejkratší cesty

Transkript:

Umělá inteligence UI (AI) - součást informatiky s průniky mimo obor Stručná historie UI 1943-56 začátky (modelování neuronů a sítí na počítači) 1952-69 velká očekávání (GPS, Lisp, microworlds) 1966-74 vystřízlivění 1969-79 znalostní systémy (zpracování nejistoty, plánování) 1980-88 UI se stává průmyslem (5. generace, star wars) od 1986 - znovuobjevení neuronových sítí současnost - mobilní agenti? Co je to UI?? Etické, politické, sociální otázky? Letošní cena nadace Vize 2000 - Joseph Weizenbaum Umělá inteligence - odst. 10.1 TI 8 / 1

Řešení problémů hledáním UI v širším pohledu - viz předmět 33ZUI Implementační nástroje UI - viz předmět 36JUI Zde se věnujeme jen části navazující na grafovou tématiku. "Problem Solving" Problém (specifikace problému) souhrn informací, podle nichž je možno rozhodovat se, co dělat Počáteční stav operátor/akce stavový prostor cílový stav cesta řešení cena cesty cena hledání graf problému Umělá inteligence - odst. 10.1 TI 8 / 2

8 nebo 15 - problém Zadání: Tabulka/krabička 3 3 nebo 4 4 s kameny číslovanými 1 až 8 (nebo 15) a jedním volným místem. Úkol: posouváním seřadit kameny. 11 9 4 15 1 3 12 7 5 8 6 13 2 10 14 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 2 8 3 1 6 4 7 5 1 2 3 8 4 7 6 5 Umělá inteligence - odst. 10.1 TI 8 / 3

Neinformované hledání? Co nás zajímá na zvolené strategii hledání? úplnost - zaručuje nalezení řešení (pokud existuje) výpočetní (časová) složitost paměťová složitost optimálnost - nalezne se nejlepší řešení? Neinformované (slepé) vs. informované (heuristické) hledání Běžné strategie neinformovaného hledání: prohledávání do šířky prohledávání uspořádaným výběrem (uniform cost) prohledávání do hloubky obousměrné prohledávání Umělá inteligence - odst. 10.1 TI 8 / 4

Rozdíl - graf problému je implicitní a (potenciálně) nekonečný Důsledek: nejsou FRESH uzly, jen OPEN a CLOSED musíme uchovávat stav problému struktura grafu je zadána operačně (generováním následníků) Data ukládaná pro každý uzel pred: open: TRUE / FALSE stav: Umělá inteligence - odst. 10.1 TI 8 / 5

BFS (Γ, s, t) Prohledávání do šířky (s,t jsou stavy problému) 1 ps:=createnode(s) 2 ps^.open := TRUE; ps^.pred := NIL 3 InitQueue; Enqueue(ps); Found := FALSE 4 while not (EmptyQueue or Found) do 5 pu := QueueFirst if then! problém! 6 if pu^.stav = t then Found := TRUE 7 else for všechna v Γ(u) do 8 if v je nový stav 9 then pv := CreateNode(v); pv^.open := TRUE 10 pv^.pred := pu; Enqueue(pv) 11 Dequeue; pu^.open := FALSE 12 return Found? Složitost? Umělá inteligence - odst. 10.1 TI 8 / 6

Prohledávání uspořádaným výběrem (uniform cost) Předpokládá ocenění cest k uzlům f(n) - hodnotící funkce 1 S:= ; InitQueue(Q) 2 Enqueue(Q,s); Found:=FALSE 3 while not (Empty(Q) or Found) do 4 u:= ExtractMin(Q); S:=S {u} 5 if u=t then Found:=TRUE 6 else for každé v Γ(u) do 7 if v je nový uzel 8 then zařaď v do Q s hodnotou f(v) 9 else přepočti f(v) a možná zařaď 10 Dequeue(Q) 11 return Found Umělá inteligence - odst. 10.1 TI 8 / 7

Dikstrův algoritmus: f(n) = d(s,u)? Nalezne se optimální řešení? Podmínka: hodnoty f(n) neklesají podél cesty řešení. Splněno automaticky, když se cena uzlu počítá jako součet cen jednotlivých hran (akcí) a když jsou tyto ceny nezáporné. TI 8 / 8

Prohledávání do hloubky?jak prohledávat do hloubky nekonečný stavový prostor? Řešení: omezení hloubky hledání (? úplnost?) iterativní prohlubování Obousměrné prohledávání (do šířky) Podmínka: explicitně zadaný cílový stav Umělá inteligence - odst. 10.1 TI 8 / 9

Srovnání neinformovaných metod BFS Unif. Cost DFS Lim. Depth Iter. Deep. Bidirect čas b d b d b m b k b d b d/2 paměť b d b d b.m b. k b.d b d/2 optimal ANO ANO NE NE ANO ANO úplnost ANO ANO NE ANO pro k>=d ANO ANO d = délka cesty řešení, m = hloubka hledání, k = omezení hloubky Umělá inteligence - odst. 10.1 TI 8 / 10

Heuristické hledání Předpokládejme, že jsme schopni odhadovat célku (zbývající) cesty k cíli - heuristická funkce h(u). Označení: g(u)... délka cesty od počátku do u, d(s,u) h(u)... délka cesty od u do cíle, d(u,t) f(u)... hodnotící funkce uzlu (kombinuje g a h) ĝ'(u), h'(u), f'(u)... aproximace g, h, f Použijeme uspořádané hledání s hodnotící funkcí f(u): f '(u) = h'(u)... Best/First f '(u) = h'(u) + g'(u)... A* (A-star) f '(u) = α. h'(u) + (1- α). g'(u) Heuristické hledání - odst. 10.2 TI 8 / 11

Přípustnost heuristického hledání Přípustný algoritmus hledání - najde optimální řešení (min. cestu), pokud existuje. Lemma: Nechť h'(u) h(u) pro všechny uzly. Potom až do skončení A* existuje na minimální cestě P(s,t) otevřený uzel u' tak, že f '(u) f(s) D: P= s=u 0, u 1, u 2,... v,..., u n =t je min. cesta, v otevřený f '(v) = h'(v) + g'(v), přitom g'(v) = g(v) - předchůdci CLOSED, h'(v) h(v) tedy f '(v) = h'(v) + g'(v) h(v) + g(v) = f(v) = f(s) Heuristické hledání - odst. 10.2 TI 8 / 12

V: Nechť h'(u) h(u) pro všechny uzly a délky všech hran jsou větší než jisté δ > 0. Pak je algoritmus A* přípustný. h'(u) je konzistentní... pro každé u,v platí h'(u) - h'(v) d(u,v) V: Nechť h'(u) je konzistentní a u byl uzavřen během A*. Potom je g'(u) = g(u). V: Nechť A 1 * je A* s heuristickou funkcí h 1 '(u), A 2 * je A* s heuristickou funkcí h 2 '(u), h 1 '(u) > h 2 '(u) pro všechny uzly mimo cílových, h 1 '(u) je konzistentní Potom každý uzel expandovaný algoritmem A 1 * bude expandován také algoritmem A 2 *. více informované hledání Heuristické hledání - odst. 10.2 TI 8 / 13

Hledání s omezenou pamětí Paměťová složitost A*... počet uzlů roste s b d, d = délka cesty řešení.? Jak dosáhnout zlepšení? Pokud h'(u) - h(u) = O(log h(u)), pak roste počet uzlů pomaleji. Jak ale nalézt takové h'(u)?? Jak vyjít s danou velikostí paměti? Dvě varianty A*: IDA* - iterative deepening A* SMA* - simplified memory-bounded A* Heuristické hledání - odst. 10.2 TI 8 / 14

IDA* 1 function IDA* (s, Γ); 2 f_limit := f(s); solution := nil; 3 while (solution = nil) and (f_limit < ) 4 do solution, f_limit := DFS(s,f_limit) 5 if solution = nil 6 then return failure 7 else return solution Heuristické hledání - odst. 10.2 TI 8 / 15

1 function DFS (u, f_lim); 2 if f(u) > f_lim then return nil, f(u); 3 if goal(u) then return u, f_lim; 4 next_f := ; 5 for x in Γ(u) do 6 sol, fnew := DFS(x, f_lim); 7 if sol nil then return sol, f_lim; 8 next_f := min(next_f, fnew); 9 return nil, next_f Vrátí řešení nebo nejbližší hodnotu f za limitem Heuristické hledání - odst. 10.2 TI 8 / 16

SMA* Problémy IDA* opakované hledání stejných cest žádné předávání informace mezi iteracemi SMA* se snaží pamatovat, co lze využije všechnu dostupnou paměť brání opakování stavů za jistých podmínek je přípustný Heuristické hledání - odst. 10.2 TI 8 / 17

Základní myšlenka SMA * generuje se následník a není místo pro jeho uložení vypustí se uzel s nejhorší hodnotou f '(u) u jeho předchůdce se pamatuje délka nejlepší cesty ze zapomenutého podstromu zapomenutý uzel se re-generuje, jen když se ostatní uzly ukázaly ještě horší Heuristické hledání - odst. 10.2 TI 8 / 18

Obousměrné heuristické hledání do šířky heuristické - ideál heuristické - skutečnost Kriteria: optimálnost cesty / počet generovaných uzlů Heuristické hledání - odst. 10.2 TI 8 / 19

Zlepšení obousměrného heuristického hledání směrování vln u v f(u)=g s (u)+h(u,v)+g t (v) přibližné směrování vln D s D s, D t - uzly nejvzdálenější od s / t, úprava každou n-tou iteraci D t Heuristické hledání - odst. 10.2 TI 8 / 20