1 Stavový prostor. 1.1 Základní definice



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

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

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

MATEMATICKÁ TEORIE ROZHODOVÁNÍ

Základy umělé inteligence

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

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

Pravdpodobnost výskytu náhodné veliiny na njakém intervalu urujeme na základ tchto vztah: f(x)

Rozvrhování na více procesorech

Správa obsahu ízené dokumentace v aplikaci SPM Vema

Zbytky zákaznického materiálu

Cykly Intermezzo. FOR cyklus

27. asové, kmitotové a kódové dlení (TDM, FDM, CDM). Funkce a poslání úzkopásmových a širokopásmových sítí.

1. Predikátová logika jako prostedek reprezentace znalostí

Doc. Ing. Tomáš Šubrt, Ph.D. PEF ZU v Praze MODELY OPTIMÁLNÍHO D LENÍ ZAKÁZEK

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

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

Ing. Jaroslav Halva. UDS Fakturace

Rzné algoritmy mají rznou složitost

DUM. Databáze - úvod

Pedání smny. Popis systémového protokolování. Autor: Ing. Jaroslav Halva V Plzni Strana 1/6

MATEMATIKA MATEMATIKA

Dlitel, násobek Znak dlitelnosti Prvoíslo, íslo složené, rozklad na prvoinitele Nejvtší spolený dlitel, nejmenší spolený násobek

Instalace multiimportu

Každý datový objekt Pythonu má minimáln ti vlastnosti. Identitu, datový typ a hodnotu.

Datový typ POLE. Jednorozmrné pole - vektor

popel, glum & nepil 16/28

Promnné. [citováno z

Splajny a metoda nejmenších tverc

Základy umělé inteligence

Základní pojmy klasického sudoku hlavolamu. Techniky odkrývání bunk. Technika Naked Single. Technika Hidden Single

4. Lineární diferenciální rovnice rovnice 1. ádu

Prbh funkce Jaroslav Reichl, 2006

KUSOVNÍK Zásady vyplování

GYMNÁZIUM CHEB SEMINÁRNÍ PRÁCE

PÍRUKA A NÁVODY PRO ÚELY: - RUTINNÍ PRÁCE S DATY

Stromy, haldy, prioritní fronty

Definice : Jsou li povrchové pímky kolmé k rovin, vzniká kolmá kruhová válcová plocha a pomocí roviny také kolmý kruhový válec.

Algoritmizace prostorových úloh

Expertní Systémy. Umělá inteligence Alan Turing: Computing Machinery and Intelligence. Mind 59, 1950, s

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

PRÁCE S GRAFICKÝMI VÝSTUPY SESTAV

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

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

L I C H O B Ž N Í K (2 HODINY) ? Co to vlastn lichobžník je? Podívej se napíklad na následující obrázky:

Pídavný modul rozvaha lze vyvolat z hlavní nabídky po stisku tlaítka Výkazy / pídavné moduly.

R O V N O B Ž N Í K (2 HODINY)

VYTVÁENÍ VÝBROVÝCH DOTAZ

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

IMPORT DAT Z TABULEK MICROSOFT EXCEL

Vysoká škola báská Technická univerzita Ostrava Institut geoinformatiky. Analýza dojíždní z dotazníkového šetení v MSK. Semestrální projekt

Základy informatiky. Teorie grafů. Zpracoval: Pavel Děrgel Úprava: Daniela Szturcová

1 Píklady popisu typických konstrukcí

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

Grafové algoritmy. Programovací techniky

Úvod do plánování: Zadání úloh PDDL

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

MOOVODY Moovody se oznaují trubice, které vybíhají z moové pánviky ledvin a odvádí vzniklou mo do moového mchýe.

Projektovéízení a strategický management - východiska programového financování - IPVZ, 2008

2.1 Pokyny k otev eným úlohám. 2.2 Pokyny k uzav eným úlohám. Testový sešit neotvírejte, po kejte na pokyn!

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

METODY OCEOVÁNÍ PODNIKU DEFINICE PODNIKU. Obchodní zákoník 5:

Bezpenost dtí v okolí škol z pohledu bezpenostního auditora

Prezentaní program PowerPoint

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

Grafové algoritmy. Programovací techniky

1. MODELY A MODELOVÁNÍ. as ke studiu: 30 minut. Cíl: Po prostudování této kapitoly budete umt: Výklad Model

dq T dq ds = definice entropie T Entropie Pi pohledu na Clausiv integrál pro vratné cykly :

HEURISTICKÉ ALGORITMY PRO ŘEŠENÍ ÚLOH OBCHODNÍHO CESTUJÍCÍHO

1. Exponenciální rst Spojitý pípad. Rstový zákon je vyjáden diferenciální rovnicí

Lepení plexi v bonici pružnými lepidly

1 KOMBINATORIKA, KLASICKÁ PRAVDPODOBNOST

Zpráva k semestrální práci z pedmtu 36PT programovací techniky

Obsah Úvod...2 Slovníek pojm Popis instalace...3 Nároky na hardware a software...3 Instalace a spouštní...3 Vstupní soubory

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

Univerzální ovlada LP20 DÁLKOVÝ OVLADA S MOŽNOSTÍ UENÍ SE OD PVODNÍCH OVLADA

Modulární systém dalšího vzdělávání pedagogických pracovníků JmK. v přírodních vědách a informatice CZ.1.07/1.3.10/

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

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

9. Kombinatorika, pravd podobnost a statistika

Heuristiky, best-first search, A* search

Usuzování za neurčitosti

Informatika navazující magisterské studium Přijímací zkouška z informatiky 2018 varianta A

1.16 Lineární stabilita (pouze Fin 3D)

Lineární algebra Petriho sítí

17. Elektrický proud v polovodiích, užití polovodiových souástek

Dijkstrův algoritmus

DRUHY ROVNOBŽNÍK A JEJICH VLASTNOSTI 1 HODINA

Dokumentaní píruka k aplikaci. Visor: Focení vzork. VisorCam. Verze 1.0

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

! " # $ % # & ' ( ) * + ), -

NEWTONOVY POHYBOVÉ ZÁKONY

Zajišujeme: Gajdošova 61/3154, Ostrava

Efektivní uení. Žádná zpráva dobrá zpráva. (Structured training) Schopnost pracovat nezávisí od IQ. Marc Gold

Stanovení požadavk protismykových vlastností vozovek s ohledem na nehodovost

2. M ení t ecích ztrát na vodní trati

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

4 - Architektura poítae a základní principy jeho innosti

Úvodní studie (pokraov

Transkript:

1 Stavový prostor Poátení období výzkumu v oblasti umlé inteligence (50. a 60. léta) bylo charakterizováno pedstavou, že nkolik jednoduchých ale mocných technik umožní vytváet inteligentní všeešící programy. Používané techniky byly založeny na vnitním (strojovém) modelu svta a na schopnosti vytváet v tomto modelu plán pro ešení dané úlohy. Model svta byl obvykle založen na stavovém prostoru. 1.1 Základní definice Def. 1.1: Stavový prostor S p = (S, ) je dvojce tvoená 1. množinou stav S = {s} 2. množinou operátor (pechod mezi stavy) = {} s k = ki (s i ) (s k se nazývá následník, s i se nazývá pedchdce) Píkladem stavového prostoru jsou možná rozložení disk u hlavolamu Hanojské vže. Tento hlavolam je tvoen temi tykami, na kterých je navleeno nkolik rzn velikých disk. Jeden stav tohoto prostoru je vidt na Obr. 1.1. Velikost stavového prostoru tohoto hlavolamu samozejm záleží na potu disk, pro n disk je to 3 n (každý z n disk mže být na jedné ze tí tyek), pro ti disky je stavový prostor znázornn na Obr. 1.2. Použitý formalismus kóduje pozicí velikost disku (první zleva je nejvtší disk) a íslem tyky (1 je levá krajní tyka). Obr. 1.1 Hanojské vže (stav (112)) Obr. 1.2 Stavový prostor hanojských vží

Operátory se odvodí na základ pravidla, že se postupn pesouvají disky mezi tykami, piemž: 1. mže se pesouvat vždy jeden disk, 2. vtší disk se nemže položit na menší. Celkem je k dispozici 6 operátor: 12, 13, 21, 23, 31, 32, kde ki znamená pesu volný disk z k na i. Jiným píkladem je rozložení osmi íslic v mížce 3x3 u hlavolamu lišák (Obr. 1.3). Tento stavový prostor obsahuje 9! = 362880 stav. 2 8 3 1 6 4 7 _ 5 Obr. 1.3 Lišák V tomto stavovém prostoru jsou definovány 4 operátory: 1 : když _ není v horním ádku, pesu _ nahoru 2 když _ není v dolním ádku, pesu _ dol 3 : když _ není v levém sloupci, pesu _ vlevo 4 : když _ není v pravém sloupci, pesu _ vpravo Def. 1.2: Úloha ve stavovém prostoru (S p, s 0, G) je definována jako stavový prostor, tj. 1. množina stav S = {s} 2. množina pechod mezi stavy = {} plus 3. poátení stav s 0 4. množina koncových stav G = {g} V pípad Hanojské vže je poátení stav na Obr. 1.4 a (jediný) koncový stav na Obr. 1.5. Obr. 1.4 Hanojské vže - poátení stav Obr. 1.5 Hanojské vže - koncový stav

V pípad lišáka je poátením stavem libovolné uspoádání íslic a jediným koncovým stavem stav z Obr. 1.6. 1 2 3 8 _ 4 7 6 5 Obr. 1.6 Lišák - koncový stav V pípad, že pomocí stavového prostoru chceme reprezentovat šachy, bude poátením stavem výchozí rozložení figurek na šachovnici a množinou koncových stav nap. všechny pozice, ve kterých bílý dává mat. Velikost stavového prostoru je asi 35 100 (prmrn 35 možností v každém tahu, prmrná délka partie 50 tah). Def. 1.3: ešení úlohy ve stavovém prostoru je nalezení posloupnosti operátor 1 2 d takových, že s 1 = 1 (s 0 ) s 2 = 2 (s 1 ) s 3 = 3 (s 3 )... g = d (s d-1 ) neboli nalezení cesty z poáteního stavu s 0 do nkterého z koncových stav g (d je délka cesty). Def. 1.4: ídící strategie je algoritmus, který v každém kroku volí vhodný operátor: musí vést k prohledávání (musí zabraovat cyklm) musí být systematické Def. 1.5: Strom ešení úlohy je grafová reprezentace procesu hledání ešení kde uzly odpovídají stavm a hrany odpovídají pechodm mezi stavy daným aplikací operátor. Ve chvíli, kdy pro njaký stav je použitelných více operátor se stává klíovou otázka, který operátor zvolit. Pro volbu prvního operátoru v pípad hanojských vží ukazuje píslušný podstrom Obr. 1.7, pro volbu prvního operátoru v pípad hlavolamu lišák ukazuje píslušný podstrom Obr. 1.8. Volba operátoru pro daný stav mže být založena na myšlence postupn zkusit aplikovat všechny použitelné operátory, mže být založena na njakém kritériu, které hodnotí vhodnost jednotlivých operátor, nebo mže být volba operátoru náhodná.

Obr. 1.7 První krok Hanojské vže Obr. 1.8 První krok lišák

1.2 Prohledávání stavového prostoru Metody prohledávání lze dlit do tí základních skupin: slepé - úplné prohledávání nevyužívající žádné dodatené informace zde postupn aplikujeme všechny použitelné operátory, heuristické - úplné nebo ástené prohledávání využívající hodnocení zvolené cesty zde operátory vybíráme na základ njakého kritéria, náhodné zde volíme operátory náhodn. Systematické (nenáhodné) strategie (resp.algoritmy) jsou založeny na expanzi (rozvinutí) daného stavu (uzlu). Rozvinutím uzlu se myslí aplikace všech použitelných operátor; získáme tak všechny následníky daného uzlu. Algoritmy obvykle využívají dva seznamy: seznam rozvinutých uzl ROZVIN a seznam nerozvinutých uzl NEROZVIN. 1.2.1 Slepé prohledávání 1.2.1.1 Prohledávání do šíky Pi prohledávání do šíky jsou následníci vybíráni pro expanzi ze seznamu typu fronta (Obr. 1.9). Postupn procházíme strom ešení po vrstvách a prohledáme všechny uzly, které mají menší hloubku než je hloubka koncového stavu. Každý uzel pitom navštívíme nejvýše jednou. Schematicky je tento zpsob znázornn na Obr. 1.10, postup algoritmu pak na Obr. 1.11. Pi tomto zpsobu prohledávání máme jistotu, že vždy nalezneme optimální ešení (koncový stav s nejmenší hloubkou). Obr. 1.9 Algoritmus prohledávání do šíky

Obr. 1.10 Schéma prohledávání do šíky krok NEROZVIN ROZVIN 1 A Ø 2 B, C A 3 C, D, E A, B 4 D, E, F, G, H A, B, C Konec Obr. 1.11 Postup algoritmu do šíky Obr. 1.12 Lišák - prohledávání do šíky (pevzato z 1)

1.2.1.2 Prohledávání do hloubky Pi prohledávání do hloubky jsou následníci vybíráni pro expanzi ze seznamu typu zásobník (Obr. 1.13). Na rozdíl od prohledávání do šíky mžeme nkterými uzly procházet vícekrát, nebo se asto musíme navracet (tzv. backtracking). Schematicky je tento zpsob znázornn na Obr. 1.14, postup algoritmu na Obr. 1.15. Pi tomto zpsobu prohledávání nemusíme nalézt optimální ešení (koncový stav s nejmenší hloubkou) a dokonce žádné ešení (pokud má stavový prostor nekonenou vtev, do které zabloudíme ). Pro úlohy s koneným stavovým prostorem a s jedním koncovým stavem ale nalezneme stejné ešení jako pi prohledávání do šíky. Obr. 1.13 Algoritmus prohledávání do hloubky Obr. 1.14 Schéma prohledávání do hloubky

krok NEROZVIN ROZVIN 1 A Ø 2 B, C A 3 D, E, C A, B 4 I, J, E, C A, B, D 5 J, E, C A, B, D, I 6 E, C A, B, D, I, J 7 C A, B, D, I, J, E 8 F, G, H A, B, D, I, J, E, C Konec Obr. 1.15 Postup algoritmu "do hloubky" Všimnme si, že pokud bychom pi slepém prohledávání do hloubky místo první zleva, tak jak je znázornno na Obr. 1.14 zvolili strategii první zprava, Nalezli bychom koncový stav podstatn rychleji (Obr. 1.16). krok NEROZVIN ROZVIN 1 A Ø 2 C, B A 3 H, G, F, B A, C Konec Obr. 1.16 Postup algoritmu "do hloubky" zprava Obr. 1.17 Lišák - prohledávání do hloubky (pevzato z 1)

1.2.1.3 Prohledávání se stejnou cenou (uniform cost) V každém kroku se expanduje uzel, který má nejmenší akumulovanou cenu (cenu cesty od poátku do tohoto uzlu). Jde o zobecnní slepého prohledávání do šíky (prohledávání do šíky je prohledávání s jednotnou cenou, kde cena je hloubka uzlu). 1.2.1.4 Omezené prohledávání do hloubky Omezené prohledávání do hloubky se od klasického prohledávání do hloubky liší pouze v tom, že je dána maximální hloubka, do které se prohledává. Uzly této hloubky se již dále nerozvíjejí. Tímto zpsobem lze eliminovat problémy s nekonenou vtví. 1.2.1.5 Iterativní prohlubování Iterativní prohlubování je vlastn omezené prohledávání do hloubky, pro které se postupn zvtšuje maximální hloubka, do které se prohledává. Prohledává se tedy (do hloubky) nejprve stavový prostor hloubky 1, pak do hloubky 2, pak do hloubky 3 atd. Tato varianta dokáže odstranit i druhý problém klasického prohledávání do hloubky, nebo nalezne optimální ešení (pokud existuje). 1.2.2 Heuristické prohledávání Heuristické prohledávání je založeno na kritériu (heuristice), které umožuje posoudit vhodnost použití jednotlivých operátor aplikovatelných na daný stav. Vhodnost operátoru mžeme intuitivn chápat jako to, do jaké míry nás použití operátoru piblíží ke koncovému stavu (ešení úlohy). Jako bychom napíklad s využitím mapy plánovali trasu pro cestu z msta A (Praha) do msta B (Pelhimov) s cílem minimalizovat délku cesty. Obr. 1.18 Plánování cesty Praha - Pelhimov

Def. 1.6: Heuristická funkce je funkce, která každému stavu s piadí íslo, vyjadující jeho kvalitu z hlediska ešení úlohy. Vhodnost operátoru (a tedy kvalita píslušného následníka) mže být v dané úloze definována rzn. Rzné podoby kritéria samozejm ovlivní volbu operátor a tím i dobu (poet krok) potebných k nalezení ešení. Vrame se k hlavolamu lišák (Obr. 1.8), kde mžeme jako možné heuristiky uvažovat nap.: H1: poet chybn umístných íslic, H2: Manhattan vzdálenost od koncového stavu. Význam první heuristiky je zejmý. Druhá heuristika vyjaduje, kolik tah (ve smru vodorovném resp. svislém) je každá chybn umístná íslice vzdálena od své správné pozice. Podíváme-li se na volbu operátoru pro první tah dle Obr. 1.8, pak kvalitu stav 1 až 4 pro ob heuristiky vidíme v Tab. 1.1. Ob heuristiky vyhodnotí jako nejlepší tah 1 3. Pro druhý tah už budou doporuení obou heuristik odlišná (Tab. 1.2). Zatímco heuristika H1 vyhodnotí jako stejn kvalitní tahy 3 6 i 3 7 (a mli bychom tedy uvažovat ob možnosti), heuristika H2 vyhodnotí jako nejlepší tah 3 7, což je tah, skuten vedoucí nejrychleji k ešení úlohy. stav 1 stav 2 stav 3 stav 4 H1 4 5 3 5 H2 5 5 4 7 Tab. 1.1 Lišák - heuristiky pro první tah stav 3 stav 6 stav 7 stav 8 H1 3 3 3 4 H2 4 5 3 5 Tab. 1.2 Lišák - heuristiky pro druhý tah Heuristika musí být volena tak, aby umožovala správné fungování prohledávacích algoritm. To vyjaduje následující definice a vta. Def. 1.7: Algoritmus heuristického prohledávání se nazývá pípustný jestliže pro libovolný ohodnocený graf ukoní svoji innost nalezením optimální cesty k cíli. Vta 1.1: Jestliže heuristická funkce každému uzlu piadí hodnotu, která je nezáporným dolním odhadem skutené ceny, pak algoritmus je pípustný (a píslušná funkce se nazývá pípustná). ím blíže jsme se svým odhadem skuten cen, tím lepší bude náš algoritmus (tím mén uzl musíme prohledat, abychom nalezli ešení). Def. 1.8: Algoritmus využívající (pípustnou) heuristickou funkci H 1 je informovanjší než algoritmus využívající (pípustnou) heuristickou funkci H 2, práv když s S: H 1 (s) H 2 (s) s i S: H 1 (s i ) > H 2 (s i ) O heuristice H 1 pak ekneme, že dominuje heuristice H 2.

1.2.2.1 Paprskové prohledávání (beam search) Heuristické omezené prohledávání do šíky kde heuristikou je odhad vzdálenosti ke koncovému stavu. Jako pi prohledávání do šíky zaazujeme následníky do fronty ale tu pak uspoádáme dle heuristiky a vybereme jen uritý poet nejlépe hodnocených uzl. Obr. 1.19 Algoritmus paprskového prohledávání

1.2.2.2 Gradientní prohledávání (hill climbing) Heuristické prohledávání do hloubky, kde heuristikou je odhad vzdálenosti ke koncovému stavu. Následníky rozvinutého uzlu nejprve uspoádáme dle heuristiky a pak zaadíme do zásobníku. Obr. 1.20 Gradientní prohledávání Lokální varianta tohoto algoritmu je založena na tom, že pro daný stav volíme dle heuristiky nejlepšího následníka a pracujeme pouze s ním. Seznam NEROZVIN je tedy jednoprvkový. Tato varianta tedy hledá pouze lepší uzel, než je ten souasný. To mže zpsobit adu problém: uváznutí v lokálním extrému (žádný následník není lepší než rozvíjený uzel, který ale nepedstavuje ešení problému), problém plošiny (rozvíjený uzel i jeho následníci jsou stejn kvalitní není tedy jasné kterým smrem postupovat). Problém uváznutí v lokálním extrému ilustruje na píklad hlavolamu lišák Obr. 1.22. Žádný z následník uvedeného stavu není ve smyslu heuristiky H1 lepší. Prohledávání by tedy skonilo.

Obr. 1.21 Lokální varianta gradientního prohledávání a 2 b 8 _ 4 c 6 d Obr. 1.22 Lokální extrém hlavolamu lišák 1.2.2.3 Uspoádané prohledávání (best-first) Úplné heuristické prohledávání do hloubky- doplnní gradientního prohledávání o pam. Pro další krok vybíráme nejlepší uzel z celého seznamu NEROZVIN. V pípad, že heuristikou je odhad vzdálenosti ke koncovému stavu, se tomuto zpsobu prohledávání rovnž íká greedy search.

Obr. 1.23 Uspoádané prohledávání 1.2.2.4 Algoritmus A* Algoritmus A* je založen na myšlence, že nejkratší cesta z poátku do cíle pes stav s se skládá z nejkratší cesty z poátku do stavu s a z nejkratší cesty ze stavu s do cíle. Jsme-li pi ešení úlohy ve stavu s, pak cestu z poátku do tohoto stavu známe (ozname g(s)), zbývá nalézt nejkratší cestu do cíle. Cena pechodu z poáteního stavu pes stav s do koncového stavu je tedy definována jako f(s) = g(s) + h(s) kde heuristika h(s) je dolní odhad ceny pechodu ze stavu s do koncového stavu. Pro h(s) = 0 realizuje algoritmus A* prohledávání do šíky. Pro hlavolam lišák je na Obr. 1.25 znázornn strom ešení úlohy pro funkci f(s) = g(s) + h(s) kde g(s) je hloubka uzlu h(s) je poet chybn umístných íslic. íslo v kroužku udává pro každý uzel s hodnotu f(s).

Obr. 1.24 Algoritmus A* Obr. 1.25 Lišák - algoritmus A* (pevzato z 1)

1.2.3 Hodnocení jednotlivých strategií Prohledávací strategií budeme rozumt poadí, v jakém jsou expandovány jednotlivé uzly. Strategie mžeme hodnotit podle (AI Berkeley kap 3): úplnosti zda strategie vždy nalezne ešení, pokud existuje asové složitosti poet uzl, které jsou expandovány prostorové složitosti maximální poet uzl, které jsou souasn uloženy v pamti optimality zda nalezené ešení je vždy nejlepší (má nejnižší cenu) asovou a prostorovou složitost budeme vyjadovat jako funkci: maximálního vtvícího faktoru ve stromu ešení (ozname b), hloubky nejlepšího ešení (ozname d), maximální hloubky stavového prostoru mže být nekonená (ozname m). algoritmus úplnost as prostor optimalita do šíky ano O(b d +1) O(b d +1) ano do hloubky ne O(b m ) O(bm) ne uniform cost ano O(b (C/ε) ) O(b (C/ε) ) ano omezené do hloubky l ano pro l>d O(b l ) O(bl) ne iterativní prohlubování ano O(b d ) O(bd) ano paprskové O(bd) O(bd) ne greedy ne O(b m ) O(bm) ne A * ano exponenciální všechny uzly v pamti ano Tab. 3 Hodnocení prohledávacích algoritm 1.3 Systémy pro ešení úloh ve stavovém prostrou 1.3.1 General Problem Solver (GPS) Jak už název systému napovídá, jde o algoritmus pro obecné ešení úloh (ve stavovém prostoru). Algoritmus který byl svými autory A. Newellem a H. Simonem poprvé prezentován v roce 1957 patí do zlatého fondu umlé inteligence. Teoretickým východiskem algoritmu je tzv. analýza prostedk a cíl (means and end analyzis). Jde o metodu postupného rozkladu úlohy na podúlohy metodou výpotu diferencí. Dekompozice úlohy na podúlohy, které je možno ešit samostatn, je pomrn astý zpsob ešení složitých problém ve chvílích, kdy náklady na dekompozici problému a ešení obou podúloh jsou menší, než náklady na ešení pvodní úlohy. Schématicky vidíme dekompozici hanojských vží na Obr. 1.26. První podúlohou je pesun dvou disk na prostední tyku, pak následuje tah (122) -> (322), a pak ešíme podúlohu pedunu dvou disk na pravou tyku. Pokud podúloha není elementární úlohou (tj. úlohou, kterou lze vyešit použitím jediného operátoru), opt ji rozložíme na podúlohy, atd. Pi ešení úlohy se tedy využívá i rekurze.

Obr. 1.26 Dekompozice hanojských vží General Problem Solver využívá ti základní procedury: TRANSFORM, REDUCE a APPLY. Procedura TRANSFORM se snaží transformovat stav s na stav s, procedura REDUCE redukuje odchylku d mezi stavem s a s a procedura APPLY aplikuje operátor na stav s. Popis procedur uvádíme dle (Havel, 1980). Procedura TRANSFORM(s,s ) 1. vyhledej všechny odchylky mezi stavem s a s (jestliže žádná neexistuje, je úloha vyešena). Nech d je nejzávažnjší odchylka. 2. použij proceduru REDUCE(d,s,s ). Nech výsledkem redukce odchylky je stav s 3. použij proceduru TRANSFORM(s,s ) Obr. 1.27 Procedura TRANSFORM

Procedura REDUCE(d,s,s ) 1. vyhledej operátor který je schopen zmenšit odchylku d 2. ov, zda je použitelný na stav s. Pokud ne, vra se ke kroku 1. 3. použij proceduru APPLY(, s) a pejdi do stavu s Obr. 1.28 Procedura REDUCE Procedura APPLY(,s) 1. porovnej podmínku aplikovatelnosti operátoru se stavem s a nalezni nejdležitjší odchylku d. Je-li aplikovatelný, vra s = (s), jinak a. použij proceduru REDUCE(d,s,s ) pro redukci odchylky. Nech výsledkem redukce je stav s. b. použij proceduru APPLY(, s ) a vydej výsledný stav Obr. 1.29 Procedura APPLY Jak je vidt, všechny procedury jsou do sebe zanoeny. Procedura TRANSFORM realizuje (zhruba eeno) prohledávání do šíky, procedura REDUCE realizuje (zhruba eeno) prohledávání do hloubky a procedura APPLY realizuje (zhruba eeno) navracení. Následující píklad ilustruje použití systému GPS na hanojské vže o tech discích. Píslušný stavový prostor byl již díve uveden na Obr. 1.2. ešení této úlohy má tedy podobu volání TRANSFORM((111),(333)) Odchylky mezi stavy budeme zepisovat ve tvaru DIFF(disk, aktuální_tyka, cílová_tyka). Mezi stavy (111) a (333) jsou tedy ti odchylky, v poadí dle závažnosti: DIFF(nejvtší_disk, 1, 3) DIFF(prostední_disk, 1, 3) DIFF(nejmenší_disk, 1, 3) Zavolá se tedy REDUCE(DIFF(nejvtší_disk, 1, 3),(111),(311))). Vhodným operátorem by byl 13, který je pedán procedue APPLY. Tento operátor ale nelze použít, nebo na nejvtším disku leží zbývající dva disky. Mezi stavem (111) a stavem, kdy lze použít operátor 13 na nejvtší disk (jde o stav (122)) jsou dv odchylky: DIFF(prostední_disk, 1, 2) DIFF(nejmenší_disk, 1, 2). Nejzávažnjší z nich je teba odstranit procedurou REDUCE(DIFF(prostední_disk, 1, 2), (111), (122))). Vhodným operátorem by byl 12, který je pedán procedue APPLY. Tento operátor ale nelze použít, nebo na prostedním disku leží nejmenší disk. Mezi stavem (111) a stavem, kdy lze použít operátor 12 na prostední disk (jde o stav (113)) je jediná odchylka DIFF(nejmenší_disk, 1, 3).

Tuto odchylku lze odstranit procedurou REDUCE(DIFF(nejmenší_disk, 1, 3), (111), (113))). Procedurou APPLY mžeme pímo aplikovat operátor 13 na nejmenší disk a ze stavu (111) pejdeme do stavu (113). Nyní se vrátíme k otázce, jak pejít do stavu (122). Mezi aktuálním stavem (113) a stavem (122) jsou dv odchylky: DIFF(prostední_disk, 1, 2) DIFF(nejmenší_disk, 3, 2). Nejzávažnjší odchylku je teba odstranit procedurou REDUCE(DIFF(prostední_disk, 1, 2), (113), (122))). Vhodným operátorem je 12, který je pedán procedue APPLY. Tento operátor mžeme pímo aplikovat a dostaneme se tak do stavu (123). Mezi stavem (123) a (122), který je naším podcílem je jediná odchylka DIFF(nejmenší_disk, 3, 2). Procedura REDUCE(DIFF(nejmenší_disk, 1, 2), (123), (122))) zjistí, že vhodným operátorem je 32, který je aplikován procedurou APPLY. Získáme tak stav (122) a mžeme se vrátit k nejvtšímu disku. Mezi stavem (122) a cílovým stavem (333) jsou ti odchylky DIFF(nejvtší_disk, 1, 3) DIFF(prostední_disk, 2, 3) DIFF(nejmenší_disk, 2, 3) Nejzávažnjší odchylku je teba odstranit procedurou REDUCE(DIFF(nejvtší_disk, 1, 3), (122), (333))). Vhodným operátorem je 13, který je pedán procedue APPLY. Tento operátor mžeme pímo aplikovat a dostaneme se tak do stavu (322). a.t.d. Pipomeme si ješt, jak lze hlavolam hanojské vže vyešit (s využitím stejné základní myšlenky dekompozice na podúlohy a rekurze) s využitím programovacích jazyk LISP a Prolog. Podoba programu v LISPu je na Obr. 1.30 a podoba programu v Prologu je na Obr. 1.31. (DEFUN HANOJ (LAMBDA (N) (PRESUN_VEZ N 'A 'B 'C) )) (DEFUN PRESUN_VEZ (LAMBDA (K X Y Z) ((EQ K 0)) (PRESUN_VEZ (DIFFERENCE K 1) X Z Y) (TAH X Z) (PRESUN_VEZ (DIFFERENCE K 1) Y X Z) )) (DEFUN TAH (LAMBDA (X Z) (PRIN1 "Presun disk z ") (PRIN1 X) (PRIN1 " na ") (PRIN1 Z)) Obr. 1.30 Hanojské vže v LISPu

hanoj(n) :- presun_vez(n,a,b,c). presun_vez(0,_,_,_) :-!. presun_vez(n,x,y,z) :- M is N-1, presun_vez(m,x,z,y), tah(x,z), presun_vez(m,y,x,z). tah(a,b) :- write([a, -->, B]),nl. Obr. 1.31 Hanojské vže v Prologu 1.3.2 STRIPS Systém STRIPS (Stanford Research Institute Problem Solver) byl vyvinut na po. 70. let jako následník systému GPS. Vývoj systému byl inspirován oblastí robotiky, jeho algoritmus má ale obecné použití. Stavy ešené úlohy jsou popsány formulemi predikátové logiky 1. ádu v klauzulárním tvaru. Pravidla pro pechody mezi stavy jsou popsána trojicemi (C,D,A), kde C je podmínka aplikovatelnosti pravidla, D je množina klauzulí, které budou odstranny z popisu aktuálního stavu, A je množina klauzulí, které budou k popisu aktuálního stavu pidány. Místo o odstraování diferencí se v systému STRIPS mluví o splování cíl; objeví-li se nová odchylka, vznikne nový podcíl, který je teba splnit. ešení úlohy zaíná tak, že se systém snaží splnit zadaný cíl úlohy. Vybírá tedy takové pravidlo, v jehož seznamu se vyskytl fakt odpovídající zadanému cíli. Najde-li takové pravidlo, pokrauje stejným zpsobem v plnní cíl uvedených v samostatném seznamu cíl pravidla. Tento rekurzivní proces koní tehdy, když jsou splnny všechny cíle (popis systému dle [Z U]). 1.3.3 Planner Systém Planner byl vyvíjen na MIT (Massachusetts Institute of Technology) paraleln k systému STRIPS. Systém rozlišuje dva typy dat: tvrzení (konkrétní poznatky o konkrétních pedmtech tedy fakty) a teorémy (obecné poznatky chápané jako procedury). Soubor všech tvrzení je uložen v bázi fakt tato tvrzení jsou považována za pravdivá. I systém PLANNER je zamen cílov, tzn. Že jednotlivé píkazy jsou volány cílem jehož má být dosaženo (tvrzením, které má být dokázáno). Vyhodnocování píkaz je založeno na mechanismu navracení (backtracking), pi kterém se zaznamenává úspch i neúspch pi dosažení dílích cíl oproti rekurzivního ízení využívajícího zásobník PLANNER využívá stromovou strukturu. 1.3.4 SOAR SOAR (State, Operator And Result) je další systém založený na prohledávání. Jedná se o stále živý systém vyvinutý v 80 letech na Carnegie Mellon University. V souasnosti je SOAR chápaný jako integrovaná architektura pro ešení problém, uení a interakci s okolím, vše s využitím znalostí reprezentovaných v podob pravidel (ai.eecs.umich.edu/soar/).

Cviení: 1) Koza, vlk, zelí. Jde o známou historku o sedlákovi, který má pes eku pevézt kozu, vlka a zelí. Na loku se s ním vejde pouze jeden pevážený objekt. Pitom nesmí nechat bez dozoru vlka a kozu ani kozu a zelí. Navrhnte formalismus ešení této úlohy ve stavovém prostoru (stavy, operátory) a najdte ešení. 2) Misionái a kanibalové. Nemén známá historka o tech misionáích a tech kanibalech, kteí se potebují pepravit pes eku. Naleznou loku, do které se ale vejdou pouze dv osoby. Pitom na žádném behu nesmí zstat více kanibal než misioná. Navrhnte formalismus ešení této úlohy ve stavovém prostoru (stavy, operátory) a najdte ešení. 3) Japonský pevozník. Modifikace pedcházející úlohy. Pes eku se potebuje pepravit rodina (otec, matka dva synové a dv dcery), a policista eskortující vzenkyni. Pitom: Na prám smí maximáln dv osoby. Otec nesmí být s žádnou z dcer bez pítomnosti matky. Matka nesmí být s žádným ze syn bez pítomnosti otce. Vzenkyn nesmí být sama s žádným lenem rodiny. Pouze policajt a rodie mohou ídit prám. Navrhnte formalismus ešení této úlohy ve stavovém prostoru (stavy, operátory) a najdte ešení. 4) Garsonka (Jiroušek). Po malování garsoniéry zstal nábytek rozmístn tak, že v obývacím pokoji je postel a keslo a v ložnici je stl a skí. Úkolem je umístit stl a keslo do obývacího pokoje a do ložnice postel a skí. Pitom: Kuchyského koutu se vejde pouze skí Do obývacího pokoje i do ložnice se najednou vejdou jen dva kusy nábytku Keslo neprojde dvemi do ložnice Do zádveí se vejde pouze keslo Pi pemisování nábytku musí zstat ulika volná Navrhnte formalismus ešení této úlohy ve stavovém prostoru (stavy, operátory) a najdte ešení.

Literatura: 1. Havel I.: Robotika. SNTL Praha 1980. 2. Jiroušek R.: Metody reprezentace a zpracován.ní znalostí v umlé inteligenci. Skripta VŠE, 1995 3. Maík V., Štpánková O., Lažanský J.: Umlá inteligence XXXXX 4. Umlá inteligence a rozpoznávání. Skripta Z U, 1998.