ALGORITMY UMĚLÉ INTELIGENCE

Slides:



Advertisements
Podobné prezentace
Grafové algoritmy.
Advertisements

LOGISTICKÉ SYSTÉMY 14/15.
NEJKRATŠÍ CESTY MEZI VŠEMI UZLY
PLANARITA A TOKY V SÍTÍCH
OBECNÉ OPTIMALIZAČNÍ MODELY
Dostačující podmínky •Sporný cyklus –Cyklus ve sporném orientovaném grafu •Sporné kolo –Struktura sporných cyklů.
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.
Prohledávání stavového prostoru
Dualita úloh lineárního programování a analýza citlivosti
Projektové řízení Modul č.1.
10. Dynamické datové struktury
Red-Black Stromy Binární Vyhledávací Stromy, u kterých je časová složitost operací v nejhorším případě rovná O(log n)
Aplikace teorie grafů Základní pojmy teorie grafů
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 [GA]
Vypracoval: Ladislav Navrátil, EI-4 Umělá inteligence Zaměření Expertní systémy.
Proč?. pokud jsme schopni vytvořit stroj, který bude úlohu řešit problém je algoritmizovatelný příklad.
Úvod do umělé inteligence
Algoritmy zpracování textů II
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í.
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.
FORMALIZACE PROJEKTU DO SÍŤOVÉHO GRAFU
Matematické metody v ekonomice a řízení II
LOGISTICKÉ SYSTÉMY 7/14.
Matematické metody v ekonomice a řízení II
Řešení dynamických problémů s podmínkami Pavel Surynek Univerzita Karlova v Praze Matematicko-fyzikální fakulta.
SÍŤOVÁ ANALÝZA.
TI 6.1 STROMY A KOSTRY Stromy a kostry. TI 6.2 Stromy a kostry Seznámíme se s následujícími pojmy: kostra grafu, cyklomatické číslo grafu, hodnost grafu.
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.
ORIENTOVANÉ GRAFY V této části se seznámíme s následujícími pojmy:
Algoritmy a programovací techniky
EKONOMICKO MATEMATICKÉ METODY
Systémy pro podporu managementu 2
Stromy.
Artificial Intelligence (AI).  „Úloha patří do oblasti umělé inteligence, jestliže řešení, které najde člověk považujeme za projev jeho inteligence.
STROMY Datová struktura sestávající z uzlů
VLASTNOSTI GRAFŮ Vlastnosti grafů - kap. 3.
Systémy pro podporu managementu 2 Inteligentní systémy pro podporu rozhodování 1 (DSS a znalostní systémy)
7. Typ soubor Souborem dat běžně rozumíme uspořádanou množinu dat, uloženou mimo operační paměť počítače (na disku). Pascalský soubor je abstrakcí skutečného.
Umělá inteligence Minského definice: UI je věda o vytváření strojů nebo systémů, které budou při řešení určitého úkolu užívat takového postupu, který –
Vedení tepla Viktor Sláma SI – I 23. Zadání Vhodné uložení vyhořelého jaderného paliva je úkol pro současnou generaci. Zaměřme se na jednu nepatrnou část.
Směrování - OSPF.
hledání zlepšující cesty
Přehled metod umělé inteligence a její historie (bakalářská práce) Vedoucí práce: Ing. Ladislav Beránek, CSc., MBA Vypracoval: Michal Jelínek.
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.
Směrování -RIP. 2 Základy směrování  Předpoklady:  Mějme směrovač X  Směrovač nemůže znát topologii celé sítě  X potřebuje určit směrovač pro přístup.
Vstup: Úplný graf G=(V,E), ohodnocení hran d:E → R + Výstup: Nejkratší Hamiltonovská cesta HC v grafu G Najdi minimální kostru K grafu G Pokud K neobsahuje.
Planarita a toky v sítích
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É.
Elektrotechnická fakulta ČVUT KATEDRA KYBERNETIKY Vedoucí prof. Ing. Vladimír Mařík, DrSc. KATEDRA KYBERNETIKY ELEKTROTECHNICKÁ.
Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 1 / 15Doc. Josef Kolář (ČVUT)Toky v sítích IIGRA, LS 2013/14, Lekce 10 1 / 35 TOKY V.
Elektrotechnická fakulta ČVUT KATEDRA KYBERNETIKY Vedoucí prof. Ing. Vladimír Mařík, DrSc. KATEDRA KYBERNETIKY ELEKTROTECHNICKÁ.
TI 3.1 UPOZORNĚNÍ Reprezentace grafů, odst. 4.1 dne (za týden) bude X36TIN dvakrát dne (za 5 týdnů) bude X36OSY dvakrát skripta.
NEJKRATŠÍ CESTY Nejkratší cesty - kap. 6.
Dobývání znalostí z databází znalosti
ZAL – 6. cvičení 2016.
STROMY A KOSTRY Stromy a kostry - odst. 3.2.
PROLOG strategie vyhodnocení dotazu
PLANARITA A TOKY V SÍTÍCH
Výpočetní složitost algoritmů
Inteligentné rozhodovacie systémy
Různé algoritmy mají různou složitost
Toky v sítích.
NEJKRATŠÍ CESTY MEZI VŠEMI UZLY
Algoritmizace Dynamické programování
Prohledávání grafů.
Transkript prezentace:

ALGORITMY UMĚLÉ INTELIGENCE

Algoritmy umělé inteligence Seznámíme se s následujícími pojmy: stavovýprostor, operátor/akce, graf úlohy, cesta řešení informované a neinformované algoritmy hledání, algoritmus iterativního prohlubování, hodnotící a heuristická funkce, paprskové prohledávání, algoritmus A*, algoritmus IDA* přípustné hledání, konzistentní heuristická funkce obousměrné hledání, směrování vln Skripta kap. 10, str. 164 – 171 UI - kap. 10

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 ? Cena nadace Vize 2000 za rok 2002 - Joseph Weizenbaum

Ř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, v X36TIN 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

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

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í

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:

BFS (, s, t) (s,t jsou stavy problému) Prohledávání do šířky BFS (, s, t) (s,t jsou stavy problému) 1 ps  CreateNd(s) 2 ps.open  TRUE; ps.pred  NIL 3 InitQueue; Enqueue(ps); Found  FALSE 4 while not (EmptyQueue or Found) { 5 pu  QueueFirst 6 if (pu.stav = t) { Found  TRUE } 7 else { for všechna v(u) { 8 if (v je nový stav) { pv  CreateNd(v); pv.open  TRUE; pv.pred  pu; Enqueue(pv) } } } Dequeue; pu.open  FALSE } 13 return Found ? Složitost ? ! problém !

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

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í. Je splněno automaticky: když se cena uzlu počítá jako součet cen jednotlivých hran (akcí) podél odpovídající cesty a když jsou tyto ceny nezáporné.

Prohledávání do hloubky ? Jak prohledávat do hloubky nekonečný stavový prostor ? Řešení: omezení hloubky hledání (? úplnost ?) iterativní prohlubování Další možnosti ? Obousměrné prohledávání (do šířky) Podmínka: explicitně zadaný cílový stav

Srovnání neinformovaných metod d = délka cesty řešení, m = hloubka hledání, k = omezení hloubky

Heuristické hledání Předpokládejme, že jsme schopni odhadovat dé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) g'(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)

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=u0, u1, u2, ... v, ..., un=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) v je tedy hledaným uzlem u'

h'(u) je konzistentní ... pro každé u,v platí h'(u) - h'(v)  d(u,v) 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ť A1* je A* s heuristickou funkcí h1'(u), A2* je A* s heuristickou funkcí h2'(u), h1'(u)  h2'(u) pro všechny uzly, h1'(u) je konzistentní Potom každý uzel expandovaný algoritmem A1* bude expandován také algoritmem A2*. více informované hledání

Hledání s omezenou pamětí Paměťová složitost A* ... počet uzlů roste s bd, 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*

IDA* 1 function IDA* (s, ); 2 f_limit  f(s); solution  nil; 3 while (solution = nil) and (f_limit < ) 4 { solution, f_limit  DFS(s,f_limit) } 5 if (solution = nil) { return failure } 6 else { return solution }

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

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ý

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ší

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

Zlepšení obousměrného heuristického hledání směrování vln f(u)=gs(u)+h(u,v)+gt(v) u v přibližné směrování vln Ds, Dt - uzly nejvzdálenější od s / t, úprava každou n-tou iteraci Ds Dt

Kontrolní otázky ... přijdou později