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

Podobné dokumenty
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ů

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

Heuristiky, best-first search, A* search

Algoritmizace prostorových úloh

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

Základy umělé inteligence

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

Heuristiky, best-first search, A* search.

Grafové algoritmy. Programovací techniky

Heuristiky, best-first search, A* search.

Heuristiky, best-first search, A* search

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

Heuristiky, best-first search, A* search.

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

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

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

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

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

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

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

Heuristiky, best-first search, A* search

Grafové algoritmy. Programovací techniky

Základy umělé inteligence

Heuristiky, best-first search, A* search

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

Heuristiky, best-first search, A* search

1 Úvod do celočíselné lineární optimalizace

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

popel, glum & nepil 16/28

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

bfs, dfs, fronta, zásobník

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

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

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

Třídy složitosti P a NP, NP-úplnost

UNIVERZITA PARDUBICE

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

Operace na datových strukturách

Programování v čistém Prologu

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

Úvod do teorie grafů

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]

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

Operace na datových strukturách

Datové struktury Úvod

Algoritmy a datové struktury

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

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


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

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

ÚLOHY S POLYGONEM. Polygon řetězec úseček, poslední bod je totožný s prvním. 6 bodů: X1, Y1 až X6,Y6 Y1=X6, Y1=Y6 STANOVENÍ PLOCHY JEDNOHO POLYGONU

Časová a prostorová složitost algoritmů

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

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

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

Hry a UI historie. agent musí brát v úvahu akce jiných agentů jak ovlivní jeho. vliv ostatních agentů prvek náhody. Hry: Obsah:

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


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

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

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

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

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

Dekompozice problému, AND/OR grafy

Globální matice konstrukce


Logické programování I

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

Moderní systémy pro získávání znalostí z informací a dat



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

Vzdálenost uzlů v neorientovaném grafu

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

HRY A UI HISTORIE. Hry vs. Prohledávání stavového prostoru. Obsah:

ALGORITMY A DATOVÉ STRUKTURY

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

Úvod do informatiky. Miroslav Kolařík

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

Prolog PROgramming in LOGic část predikátové logiky prvního řádu rozvoj začíná po roce 1970 Robert Kowalski teoretické základy Alain Colmerauer, David


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

Rekurzivní algoritmy

ORIENTOVANÉ GRAFY, REPREZENTACE GRAFŮ


Úvod do teorie her

Aplikovaná matematika I

ť ř ě ř ě é š ě ř ě ů ěž é ř č é ě ší č é š ě š ř ř é é ě ě é ř č š š ž ž é š é š č Í š š é é ř š š ě Í é ě ě ř ě ě é ř é ř ý ž ě ř Š ě ů ů é ů š ý ě

vyhledávací stromové struktury

Složitější domény. Petr Štěpánek. S využitím materialu Krysztofa R. Apta

Prioritní fronta, halda

Matematické modelování 4EK201

Plánování se stavovým prostorem

ŘEŠITEL HRY GRIDDLERS


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

3. úloha - problém batohu metodami branch & bound, dynamické programování, heuristika s testem

Transkript:

Úvod do umělé inteligence RÉ S úkol: Rozestavte po šachovnici 8 dam tak, aby se žádné dvě vzájemně neohrožovaly. -mail: hales@fi.muni.cz http://nlp.fi.muni.cz/uui/ bsah: rohledávání do hloubky rohledávání do šířky rohledávání s postupným prohlubováním Shrnutí vlastností algoritmů neinformovaného prohledávání ¼ ¼ ¼Ð¼ ¼Ð¼ ¼ ¼ ¼ ¼ Õ ¼ ¼ ¼ ¼Ð¼ Õ ¼ ¼ ¼ ¼ Õ ¼ ¼ ¼Ð¼ ¼ ¼ ¼ ¼ ¼ Õ celkem pro 8 dam existuje 92 různých řešení Úvod do umělé inteligence 3/12 1/22 Úvod do umělé inteligence 3/12 2/22 RÉ S datová struktura osmiprvkový seznam [X1/Y1, X2/Y2, X3/Y3, X4/Y4, X5/Y5, X6/Y6, X7/Y7, X8/Y8] Solution = [1/4, 2/2, 3/7, 4/3, 5/6, 6/8, 7/5, 8/1] solution(s) : template(s), sol(s). sol ([]). sol([x/y thers]) : sol(thers), member(x,[1,2,3,4,5,6,7,8]), member(y,[1,2,3,4,5,6,7,8]), noattack(,[]). noattack(x/y,[x1/y1 thers]) : X=\=X1, Y=\=Y1, Y1 Y=\=X1 X, Y1 Y=\=X X1, template([x1/y1, X2/Y2, X3/Y3, X4/Y4, X5/Y5, X6/Y6, X7/Y7, X8/Y8]).? solution(solution). Solution = [8/4, 7/2, 6/7, 5/3, 4/6, 3/8, 2/5, 1/1] ; Solution = [7/2, 8/4, 6/7, 5/3, 4/6, 3/8, 2/5, 1/1] ; Yes RÉ S počet možností u řešení = 64 63 62... 57 1.8 10 14 omezení stavového prostoru každá dáma má svůj sloupec počet možností u řešení = 8 7 6... 1 = 40320 solution(s) : template(s), sol(s). sol ([]). sol ([ X/Y thers]) : sol(thers), member(y,[1,2,3,4,5,6,7,8]), noattack(,[]). noattack(x/y,[x1/y1 thers]) : Y=\=Y1, Y1 Y=\=X1 X, Y1 Y=\=X X1, template([1/y1,2/y2,3/y3,4/y4,5/y5,6/y6,7/y7,8/y8]). Úvod do umělé inteligence 3/12 3/22 Úvod do umělé inteligence 3/12 4/22

RÉ S k souřadnicím x a y přidáme i souřadnice diagonály u a v u = x y v = x+y x = [1..8] y = [1..8] u = [ 7..7] v = [2..16] po každém umístění dámy aktualizujeme seznamy volných pozic počet možností u řešení = 2 057 solution(yist) : sol(yist,[1,2,3,4,5,6,7,8],[1,2,3,4,5,6,7,8], [ 7, 6, 5, 4, 3, 2, 1,0,1,2,3,4,5,6,7], [2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]). sol ([],[], y,u,v). sol([y Yist ],[ X x1],y,u,v) : del(y,y,y1), U is X Y, del(u,u,u1), is X+Y, del(,v,v1), sol(yist,x1,y1,u1,v1). % když del nenajde tem, končí neúspěchem del(tem,[tem ist ], ist ). del(tem,[ irst ist ],[ irst ist1 ]) : del(tem,ist, ist1 ). roblémndam pron = 100: řešení...10 400 řešení...10 158 řešení...10 52 RÁÁÍ STÉ RSTRU Řešení problému prohledáváním stavového prostoru: stavový prostor, předpoklady statické a deterministické prostředí, diskrétní stavy počáteční stav cílová podmínka přechodové akce init(state) goal(state) move(state,ewstate) rohledávací strategie prohledávací strom: kořenový uzel uzel prohledávacího stromu: stav rodičovský uzel přechodová akce hloubka uzlu cena g(n) cesty,c(x,a,y) přechodu (optimální) řešení Úvod do umělé inteligence 3/12 5/22 Úvod do umělé inteligence 3/12 6/22 počáteční stav (např.) ŠÍ ŘÍ SUČ cílový stav 7 2 4 1 2 RÉ T YSČ 5 6... 3 4 5 8 3 1 6 7 8 máme dvě místnosti (, ) jeden vysavač (v nebo ) v každé místnosti je/není špína počet stavů je2 2 2 = 8 hra na čtvercové šachovnicim msn = m 2 1očíslovanými kameny příklad pro šachovnici 3 3, posunování osmi kamenů (8-posunovačka) stavy pozice včech kamenů akce pohyb prázdného místa akce ={doeva,do rava, ysávej} ptimální řešení obecné n-posunovačky je -úplné očet stavů u 8-posunovačky... 9!/2 =181 440 u 15-posunovačky... 10 13 u 24-posunovačky... 10 25 Úvod do umělé inteligence 3/12 7/22 Úvod do umělé inteligence 3/12 8/22

ŘŠÍ RÉU RÁÁÍ RÁÉ RÉY ŘŠTÉ RÁÁÍ ostra algoritmu: solution(solution) : init(state),solve(state,solution). hledání cesty z městado města hledání itineráře, problém obchodního cestujícího solve(state,[state]) : goal(state). solve(state,[state Sol]) : move(state,ewstate),solve(ewstate,sol). návrh S čipu move(state,ewstate) definuje prohledávací strategii navigace auta, robota,... postup práce automatické výrobní linky orovnání strategií: návrh proteinů 3-sekvence aminokyselin nternetové vyhledávání informací úplnost časová složitost prostorová složitost složitost závisí na: b faktor větvení (branching factor) d hloubka cíle (goal depth) m maximální hloubka větve/délka cesty (maximum depth/path, může být?) Úvod do umělé inteligence 3/12 9/22 Úvod do umělé inteligence 3/12 10/22 rohledávání do hloubky RÁÁÍ UY rohledává se vždy nejlevější a nejhlubší neexpandovaný uzel (epth-first Search, S) RÉ RÁÁÍ prohledávání do hloubky prohledávání do hloubky s limitem prohledávání do šířky prohledávání podle ceny prohledávání s postupným prohlubováním Úvod do umělé inteligence 3/12 11/22 Úvod do umělé inteligence 3/12 12/22

rohledávání do hloubky rohledávání do hloubky RÁÁÍ UY RÁÁÍ UY STST procedurální programovací jazyk uzly se uloží do zásobníku (fronty ) rolog využití rekurze solution(ode,solution) : depth first search([],ode,solution). depth first search(ath,ode,[ode ath]) : goal(ode). depth first search(ath,ode,sol) : move(ode,ode1), \+ member(ode1,ath),depth first search([ode ath],ode1,sol). úplnost není úplný (nekonečná větev, cykly) není optimální časová složitost (b m ) prostorová složitost (bm), lineární ejvětší problém nekonečná větev = nenajde se cíl, program neskončí! Úvod do umělé inteligence 3/12 13/22 Úvod do umělé inteligence 3/12 14/22 rohledávání do hloubky rohledávání do šířky RÁÁÍ UY S T RÁÁÍ ŠÍŘY rohledává se vždy nejlevější neexpandovaný uzel s nejmenší hloubkou. (readth-first Search, S) Řešení nekonečné větve použití zarážky = limit hloubky l solution(ode,solution) : depth first search limit(ode,solution,l). depth first search limit(ode,[ode], ) : goal(ode). depth first search limit(ode,[ode Sol],axepth) : axepth>0, move(ode,ode1), ax1 is axepth 1,depth first search limit(ode1,sol,ax1). neúspěch (fail) má dvě možné interpretace vyčerpání limitu nebo neexistenci řešení lastnosti: úplnost není úplný (prol < d) není optimální (pro l > d) časová složitost (b l ) prostorová složitost (bl) dobrá volba limitu l podle znalosti problému Úvod do umělé inteligence 3/12 15/22 Úvod do umělé inteligence 3/12 16/22

rohledávání do šířky rohledávání do šířky RÁÁÍ ŠÍŘY procedurální programovací jazyk uzly se uloží do fronty () rolog udržuje seznam cest ylepšení: solution(start,solution) : breadth first search([[start ]], Solution). breadth first search([[ode ath] ],[ ode ath]) : goal(ode). breadth first search([[ ath] aths],solution) : bagof([, ath], (move(,),\+ member(,[ ath])), ewaths), ewaths\=[], append(aths,ewaths,ath1),!, breadth first search(ath1,solution); breadth first search(aths,solution). append append dl seznam cest: [[a]] [[b,a],[c,a]] [[c,a],[d,b,a],[e,b,a]] [[d,b,a],[e,b,a],[f,c,a],[g,c,a]] l(a) t(a,[l(b),l(c)]) t(a,[t(b,[l(d),l(e)]),l(c)]) t(a,[t(b,[l(d),l(e)]),t(c,[l(f),l(g)])]) bagof(+rom,+íl,-sezn) postupně vyhodnocuje íl a všechny vyhovující instance rom řadí do seznamu Sezn p :- a,b;c. p :- (a,b);c. RÁÁÍ ŠÍŘY STST úplnost je úplný (pro konečné b) časová složitost prostorová složitost je optimální podle délky cesty/není optimální podle obecné ceny 1+b+b 2 +b 3 +...+b d +b(b d 1) = (b d+1 ), exponenciální vd (b d+1 ) (každý uzel v paměti) ejvětší problém paměť: loubka Uzlů Čas aměť 2 1100 0.11 sek 1 4 111 100 11 sek 106 6 10 7 19 min 10 8 10 9 31 hod 1 T 10 10 11 129 dnů 101 T 12 10 13 35 let 10 14 10 15 3 523 let 1 ni čas není dobrý potřebujeme informované strategie prohledávání. Úvod do umělé inteligence 3/12 17/22 Úvod do umělé inteligence 3/12 18/22 rohledávání do šířky rohledávání s postupným prohlubováním RÁÁÍ S STUÝ RUÁÍ RÁÁÍ Y prohledávání do hloubky s postupně se zvyšujícím limitem (terative deepening S, S) limit=3 S je optimální pro rovnoměrně ohodnocené stromy prohledávání podle ceny (Uniform-cost Search) je optimální pro obecné ohodnocení fronta uzlů se udržuje uspořádaná podle ceny cesty lastnosti: úplnost je úplný (pro cena ǫ) je optimální (pro cena ǫ, g(n) roste) časová složitost počet uzlů sg, (b 1+ /ǫ ), kde... cena optimálního řešení prostorová složitost počet uzlů sg, (b 1+ /ǫ ) Úvod do umělé inteligence 3/12 19/22 Úvod do umělé inteligence 3/12 20/22

rohledávání s postupným prohlubováním Shrnutí vlastností algoritmů neinformovaného prohledávání RÁÁÍ S STUÝ RUÁÍ STST úplnost je úplný (pro konečné b) je optimální (pro g(n) rovnoměrně neklesající funkce hloubky) časová složitost d(b)+(d 1)b 2 +...+1(b d ) = (b d ) prostorová složitost (bd) kombinuje výhody S a S: nízké paměťové nároky lineární, úplnost zdánlivé plýtvání opakovaným generováním generuje o jednu úroveň míň, např. prob = 10,d = 5: (S) = 50+400+3000+20000+100000 = 123450 (S) = 10+100+1000+10000+100000+999990 = 1111100 SRUTÍ STSTÍ RTŮ RÉ RÁÁÍ lastnost do do hloubky do podle s postupným hloubky s limitem šířky ceny prohlubováním úplnost ne ano, prol d ano ano ano ne ne ano ano ano časová složitost (b m ) (b l ) (b d+1 ) (b 1+ /ǫ ) (b d ) prostorová složitost (bm) (bl) (b d+1 ) (b 1+ /ǫ ) (bd) S je nejvhodnější neinformovaná strategie pro velké prostory a neznámou hloubku řešení. Úvod do umělé inteligence 3/12 21/22 Úvod do umělé inteligence 3/12 22/22