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



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

Základy umělé inteligence

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

Algoritmizace prostorových úloh

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

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

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]

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

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

Úvod do teorie grafů

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

Vzdálenost uzlů v neorientovaném grafu

Grafové algoritmy. Programovací techniky

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

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

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

Grafové algoritmy. Programovací techniky

Prohledávání stavového prostoru

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

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

Heuristiky, best-first search, A* search

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

Matice sousednosti NG

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

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

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

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

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

Obsah: Problém osmi dam

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.

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

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

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

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

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

Dijkstrův algoritmus

ORIENTOVANÉ GRAFY, REPREZENTACE GRAFŮ

bfs, dfs, fronta, zásobník

Použití dalších heuristik

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

Algoritmus pro hledání nejkratší cesty orientovaným grafem

Principy indukce a rekursivní algoritmy

ALGORITMY A DATOVÉ STRUKTURY

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

Cvičení 5 - Průchod stromem a grafem

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

TGH06 - Hledání nejkratší cesty

07 Základní pojmy teorie grafů

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

Algoritmy a datové struktury

Stromy, haldy, prioritní fronty

Plánování úloh na jednom stroji

Algoritmy výpočetní geometrie

Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od jara 2017

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

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

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

Algoritmizace. 1. Úvod. Algoritmus

B3B33ALP - Algoritmy a programování - Zkouška z předmětu B3B33ALP. Marek Boháč bohacm11

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

Výhody a nevýhody jednotlivých reprezentací jsou shrnuty na konci kapitoly.

B3B33ALP - Algoritmy a programování - Zkouška z předmětu B3B33ALP. Marek Boháč bohacm11

ALGORITMY UMĚLÉ INTELIGENCE VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ FAKULTA STROJNÍHO INŽENÝRSTVÍ ÚSTAV AUTOMATIZACE A INFORMATIKY

UNIVERZITA PARDUBICE

prohled av an ı graf u Karel Hor ak, Petr Ryˇsav y 16. bˇrezna 2016 Katedra poˇ c ıtaˇ c u, FEL, ˇ CVUT

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

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

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/

Optimalizace & soft omezení: algoritmy

= 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

3. Prohledávání grafů

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

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

10. Složitost a výkon

Metody síťové analýzy

Přijímací zkouška - matematika

popel, glum & nepil 16/28

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

UMĚLÁ INTELIGENCE URČENO PRO VZDĚLÁVÁNÍ V AKREDITOVANÝCH STUDIJNÍCH PROGRAMECH EVA VOLNÁ

Dynamické datové struktury I.

4EK311 Operační výzkum. 5. Teorie grafů

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

Jan Březina. Technical University of Liberec. 21. dubna 2015

Heuristiky, best-first search, A* search.

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

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.

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

Definice 7.2. Nejmenší přirozené číslo k, pro které je graf G k-obarvitelný, se nazývá chromatické číslo (barevnost) grafu G a značí se χ(g).

Obecná informatika. Matematicko-fyzikální fakulta Univerzity Karlovy v Praze. Podzim 2012

ŘEŠITEL HRY GRIDDLERS

Jan Březina. Technical University of Liberec. 30. dubna 2013

Algoritmy na ohodnoceném grafu

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

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

Dynamické programování

5 Orientované grafy, Toky v sítích

Plánování se stavovým prostorem

Operační výzkum. Síťová analýza. Metoda CPM.

Algoritmy I, složitost

Drsná matematika III 10. demonstrovaná cvičení Kostry grafů

Transkript:

Stavový prostor a jeho prohledávání SP = formalismus k obecnějšímu uchopení a vymezení problému, který spočívá v nalezení posloupnosti akcí vedoucích od počátečního stavu úlohy (zadání) k požadovanému řešení SP = nástroj, jak použít na konkrétní problémy (urč. typu) již existující (popř. i nové) řešící algoritmy Stavový prostor je určen: SP = <S, O> Konečnou neprázdnou množinou stavů S (ve zcela obecném případě i nekonečnou) Neprázdnou konečnou množinou operátorů O, kde každý operátor je parciální funkcí na stavovém prostoru (nemusí být definován všude) α: S S Ú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ů Plán (řešení) P pro danou úlohu U je taková posloupnost operátorů <α 1, α 2,., α n>, která splňuje následující podmínky s 1 = α 1 (s 0 ) s 2 = α 2 (s 1 ). s n = α n (s n-1 ) = α n-1(α n-2(... (α 2(α 1(s 0 )))), přičemž s n je definováno a je prvkem množiny cílových stavů C. Příklad 1 Jsou dány dvě nádoby, větší A o obsahu a litrů, a menší B obsahu b litrů: na začátku jsou obě prázdné ( = počáteční stav) cílem je stav, kdy nádoba A je prázdná a v B je přesně 2 (a b) litrů vody K dispozici je neomezený zdroj vody a nádoby nemají označené míry. Naplňte nádobu B ( = najděte posloupnost akcí takovou, že bude splněn daný cíl). Reprezentace stavů: - Zvolení vhodné reprezentace je jednou z důležitých podmínek efektivního vyřešení konkrétního problému. Stavy jsou v naprosté většině případůgenerovány v průběhu algoritmu (ne předpočítány) Stav: dvojice <c A, c B > množství vody v nádobách A,B počáteční stav <0, 0> jediný cílový stav <0, 2 (a b)> přechody (= operátory): vylití A: <c A, c B > <0, c B > vylití B: <c A, c B > <0, c BA, 0> napnění A, B přelití A do B <c A, c B > <max(c A (b - c B ), 0), min(c A + c B, b)> možné jsou samozřejmě i další operátory

Prohledávání stavového prostoru Stavový prostor lze reprezentovat orientovaným grafem G (stavovým grafem, stromem) G = (V; E), V: vrchloly (uzly), E: hrany - uzel reprezentuje stav, - hrana reprezentuje přechod mezi stavy. Řešení úloh pak lze formulovat jako hledání přijatelné cesty v orientovaném grafu z počátečního uzlu do některého z cílových uzlů (viz obr.1). Pozn.: k jednotlivým hranám je často přiřazena i cena vykonání daného přechodu.... 4,2 0,2 Způsoby prohledávání stav. prostoru Obr. 1 Stavový prostor úlohy přelévání vody 1) Neinformované prohledávání (dnes): Do šířky uzly k expanzi řadíme do fronty, náročné na paměť Varianta: vždy prodloužit cestu minimální ceny Do hloubky uzly řadíme do zásobníku, sejde z cesty a je mimo; nutno ošetřit cykly IDFS do hloubky s omezením max. hloubky, iterativně prohlubovat Dvousměrné prohledávání od poč. stavu i od cíle 2) Informované prohledávání (příště) - pořadí prohledávání na základě další informace, odhadu vzdálenosti stavu od cíle, vyjádřeného tzv. heuristikou h(uzel). paprskové (beam search) gradientní (hill-climbing) uspořádané (best-first) A*

Dle čeho hodnotit jednotlivé algoritmy: Pokud má být algoritmus výběru cesty úspěšný musí splňovat dvě základní vlastnosti: 1) Musí vést k prohledávání, což znamená, že se musí procházet stavovým prostorem a přitom se vyhnout cyklům. 2) Musí být systematický. Při rozlišování mezi jednotlivými algoritmy se uplatňují zejména tyto kritéria: Úplnost: garantuje algoritmus nalezení řešení (pokud toto existuje)? Časová složitost: jak dlouho to potrvá? asymptotická reprezentace složitosti Paměťová náročnost: kolik paměti je zapotřebí? Optimalita: nalezne algoritmus to nejlepší řešení v případě existence více řešení? Neinformované (slepé) metody prohledávání 1. Prohledávání do šířky 1. CLOSED = { }, OPEN = {s 0 }, kde s 0 je počáteční stav. Je-li s 0 současně i cílový stav, pak ukonči prohledávání. 2. Je-li OPEN prázdný, pak řešení neexistuje ukonči prohledávání! 3. Vyber a současně vymaž první stav ze seznamu OPEN, označ jej s i a zapiš jej do seznamu CLOSED. 4. Expanduj stav s i. Pokud stav i nemá následovníky nebo všichni následovníci byli již expandováni (t.j. jsou v seznamu CLOSED), jdi na krok 2. 5. Zapiš všechny následovníky stavu i, kteří nejsou v seznamu CLOSED na konec seznamu OPEN. 6. Pokud některý z následovníků stavu je cílovým stavem, tj. řešení bylo právě nalezeno, ukonči prohledávání, jinak pokračuj krokem č. 2. Obr. 2 Prohledávání do šířky 2. Prohledávání do hloubky (s omezením max na délku větve) 1. CLOSED = { }, OPEN = {s 0 }, kde s 0 je počáteční stav. Je-li s 0 současně i cílový stav, pak ukonči prohledávání. 2. Je-li OPEN prázdný, řešení neexistuje ukonči prohledávání!

3. Vyber a současně vymaž první stav ze seznamu OPEN, označ jej s i a zapiš jej do seznamu CLOSED 4. Pokud se hloubka uzlu i rovná maximální přípustné hloubce max, pokračuj krokem 2. 5. Expanduj stav s i. Pokud stav s i nemá následovníky nebo všichni následovníci byli již expandováni (t.j. jsou v seznamu CLOSED), jdi na krok 2. 6. Zapiš všechny následovníky stavu s i, kteří nejsou v seznamu CLOSED na začátek seznamu OPEN. 7. Pokud některý z následovníků stavu je cílovým stavem, tj. řešení bylo právě nalezeno, ukonči prohledávání, jinak pokračuj krokem č. 2. Obr. 3 Prohledávání do hloubky Příklad 2. Řeka. Na jednom břehu je farmář, vlk, koza, zelí a lodička. Vlk by rád sežral kozu, koza si dělá zálusk na zelí. Do lodičky může farmář vzít jen jedno zvíře nebo zelí. Dvě zvířata nebo zvíře a zelí se na lodičku najednou nevejdou. Koza ani vlk pádlovat překvapivě neumí. Jak dostane farmář vlka, kozu i zelí na druhou stranu tak, aby na jednom břehu nikdy nebyla koza s vlkem nebo se zelím bez dohledu farmáře? Příklad 3. Obměna úlohy s vlkem, kozou a zelím. Je o malinko složitější. Řeka. Na jednom břehu tři misionáři a tři kanibalové. Lodička, do které se vejdou maximálně dvě osoby. Jak se všichni přepraví na druhou stranu tak, aby nikdy na žádném břehu nebyla přesila kanibalů nad misionáři? Příklad 4. Opice má v kleci ve středu klece u stropu pověšený banán, na který dosáhne pouze, když vyleze na bednu. Opice je v jednom rohu, bedna ve druhém. Má k dispozici 4 akce: O = { chyť, vylez, presun(odkud,kam), jdi(odkud,kam) } Může opice za daných okolností získat banán?

Další metody slepého prohledávání 1) Prohledávání do hloubky s omezením max. hloubky Úplné, nicméně ne optimální (nenalezne nutně nejkratší cestu). Pokud je omezení příliš přísné, ztrácí se i úplnost a nemusí najít řešení vůbec. Časová i paměťová složitost obdobné jako u klas. prohledávání do hloubky ovšem vztažené ke zvolenému limitu. 2) Iterativní prohlubování Prohledávání do hloubky s iterativně se zvyšující hloubkou prohledávání. Preferováno zejména v situacích, kdy SP je velmi rozsáhlý a hloubka řešení není známa. 1. maxhloubka = 1 2. DFS(maxHloubka) //do hloubky s omezením max_hloubka 3. if cílnalezen then end else maxhloubka = maxhloubka + 1 and go to 2. 3) Dvousměrové (Bidirectional) Současný postup hledání od poč. stavu k cíli i od cílového stavu k počátku (inverzní cesta). Závěrem Srovnání klíčových parametrů jednotlivých algoritmů lze nalézt v tabulce níže (tab.1). Tab.1 Srovnání jednotlivých algoritmů slepého prohledávání Criterion Breadth Depth- Depth- Iterative Bidirectional First First Limited Deepening Čas b d b m b l b d b d/2 Paměť b d b.m b.l b.d b d/2 Optimalita Ano Ne Ne Ano Ano Úplnost Ano Ne Ano, if l >= d Ano Ano b.. faktor větvení d.. hloubka řešení nejbližšího počátku m.. max. hloubka stromu l.. omezení hloubky