UMĚLÁ INTELIGENCE 2. Umělá inteligence může být jako obor chápána různě, například:



Podobné dokumenty
Inteligentní agenti. Agentem zde rozumíme cokoliv, co vnímá své prostředí pomocí sensorů a působí na to prostředí pomocí efektorů.

RACIONÁLNÍ AGENTI. Racionální agenti a současné směřování umělé inteligence

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

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

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

VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ

Algoritmizace diskrétních. Ing. Michal Dorda, Ph.D.

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

Dijkstrův algoritmus

Složitost Filip Hlásek

Emergence chování robotických agentů: neuroevoluce

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

SENZORY PRO ROBOTIKU

SIGNÁLY A LINEÁRNÍ SYSTÉMY

Časová a prostorová složitost algoritmů

12. Globální metody MI-PAA

Statistická teorie učení

Datové struktury 2: Rozptylovací tabulky

Algoritmizace. 1. Úvod. Algoritmus

Základy umělé inteligence

Úvod do mobilní robotiky NAIL028

Neuronové časové řady (ANN-TS)

Implementace A* algoritmu na konkrétní problém orientace v prostoru budov

Zpětnovazební učení Michaela Walterová Jednoocí slepým,

Usuzování za neurčitosti

1 Tyto materiály byly vytvořeny za pomoci grantu FRVŠ číslo 1145/2004.

Algoritmy. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 15. dubna / 39

Pokročilé operace s obrazem

Základy algoritmizace. Pattern matching

OPTIMALIZAČNÍ ÚLOHY. Modelový příklad problém obchodního cestujícího:

Základy umělé inteligence

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

TÉMATICKÝ OKRUH Softwarové inženýrství

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

Agent pracující v částečně pozorovatelném prostředí udržuje na základě senzorického modelu odhaduje, jak se svět může vyvíjet.

7. Rozdělení pravděpodobnosti ve statistice

Teorie her a ekonomické rozhodování. 4. Hry v rozvinutém tvaru

Úvod do zpracování signálů

Stonožka jak se z výsledků dozvědět co nejvíce

Kontingenční tabulky v MS Excel 2010

Zápočtový projekt předmětu Robotizace a řízení procesů

IMOSI - MODELACE A SIMULACE LEARN 2013 správně možná špatně

BINÁRNÍ NEBO BI-VALENTNÍ LOGIKA

Definice 9.4. Nedeterministický algoritmus se v některých krocích může libovolně rozhodnout pro některé z několika možných různých pokračování.

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

ROZHODNUTÍ EVROPSKÉ CENTRÁLNÍ BANKY (EU)

Markov Chain Monte Carlo. Jan Kracík.

Úvod do mobilní robotiky AIL028

Negativní informace. Petr Štěpánek. S použitím materiálu M.Gelfonda a V. Lifschitze. Logické programování 15 1

Markovské metody pro modelování pravděpodobnosti

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

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Teorie her a ekonomické rozhodování. 8. Vyjednávací hry

Teorie rozhodování (decision theory)

NP-úplnost problému SAT

Rozhodovací procesy 3

ČVUT FEL X36PAA - Problémy a algoritmy. 5. úloha - Seznámení se se zvolenou pokročilou iterativní metodou na problému batohu

CommonTestsAndGames03

Lokální definice (1) plocha-kruhu

SEKVENČNÍ LOGICKÉ OBVODY

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

Mužský princip a ženský princip

Výroková a predikátová logika - III

10. Techniky formální verifikace a validace

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

ANTAGONISTICKE HRY 172

popel, glum & nepil 16/28

Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice

Hledání správné cesty

Studentská tvůrčí a odborná činnost STOČ 2015

Generování pseudonáhodných. Ing. Michal Dorda, Ph.D.

U Úvod do modelování a simulace systémů

Teorie her a ekonomické rozhodování. 2. Maticové hry

2.6. VLASTNÍ ČÍSLA A VEKTORY MATIC

Dobývání znalostí. Doc. RNDr. Iveta Mrázová, CSc. Katedra teoretické informatiky Matematicko-fyzikální fakulta Univerzity Karlovy v Praze

Algoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem.

1. Matematická logika

Buněčné automaty a mřížkové buněčné automaty pro plyny. Larysa Ocheretna

SYSTÉMOVÁ METODOLOGIE (VII) Kybernetika. Ak. rok 2011/2012 vbp 1

Pravidlové znalostní systémy

Simulace pohybu chodců pomocí celulárních modelů

Optimalizace & soft omezení: algoritmy

Rozhodovací procesy v ŽP HRY A SIMULAČNÍ MODELY

Semestrální práce z předmětu Matematické modelování Modely vyjednávání

Co je nového v aplikaci PaperPort 12?

Lekce 01 Úvod do algoritmizace

Návod k požadavkům ISO 9001:2015 na dokumentované informace

Studie webů automobilek

3. Třídy P a NP. Model výpočtu: Turingův stroj Rozhodovací problémy: třídy P a NP Optimalizační problémy: třídy PO a NPO MI-PAA

Úloha - rozpoznávání číslic

Úvod do teorie informace

STATISTICKÉ ODHADY Odhady populačních charakteristik

63. ročník Matematické olympiády 2013/2014

Rozhodovací procesy 2

Numerické metody a programování. Lekce 8

Modelování a simulace Lukáš Otte

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]

Stanovení nejistot při výpočtu kontaminace zasaženého území

12 DYNAMIKA SOUSTAVY HMOTNÝCH BODŮ

4EK311 Operační výzkum. 1. Úvod do operačního výzkumu

Transkript:

UMĚLÁ INTELIGENCE 2 Umělá inteligence může být jako obor chápána různě, například: 1. Systém myslící jako člověk souvislost s psychologií a poznáváním 2. Systém chovající se jako člověk východisko je Turingův test 3. Systém myslící racionálně popis řešení logikou (sylogismus, aj.) 4. Systém chovající se racionálně poskytuje co nejlepší řešení Zde se budeme zabývat především agenty, kteří se chovají racionálně, neboli agenty, kteří se snaží vždy poskytnout správné řešení, tj. dělat správné věci. Racionálně se chovající (dále jen racionální ) agenti v současnosti představují preferovaný směr. Racionální agenti nezaručují dokonalou racionalitu jimi nalezeného řešení. To může být dáno např. složitostí prostředí, v němž působí (výpočetní složitost). Ideálem je vždy dosažení dokonalého racionálního agenta, ale je nutno mít na paměti, že v realitě mívá agent svou racionalitu omezenou, a to z nejrůznějších důvodů.

UMĚLÁ INTELIGENCE 2 K základům umělé inteligence (UI) přispělo a přispívá mnoho různých oborů (filosofie, matematika, neurologie, psychologie, konstrukce počítačů, teorie řízení a kybernetika, lingvistika, aj.). Ekonomie od roku 1776 (Adam Smith) také slouží pro inspiraci rozvoje umělé inteligence (Smith tehdy publikoval ideu, že ekonomie se má považovat za vědu vystupují zde agenti maximalizující svůj blahobyt): Jak rozhodovat, aby byl maximalizován zisk? Jak toho dosáhnout, když ostatní mohou postupovat jinak? Jak toho dosáhnout, když ten zisk může být k dispozici až v daleké budoucnosti? Za zrod umělé inteligence se považuje rok 1956 (John McCarthy na universitě Princetown je údajně autorem termínu artificial intelligence, přestože vhodnějším názvem by snad bylo computational rationality). Umělá inteligence prošla obdobími jak nadneseného vyzvedávání, tak odmítání. Od roku 1987 je již považována za samostatný vědní obor. Inteligentní agenti se v UI objevují přibližně od roku 1995.

UMĚLÁ INTELIGENCE 2 V současnosti oblast umělé inteligence zahrnuje mnoho nejrůznějších druhů aktivit, například: Autonomní plánování a časové rozvržení činností Hraní her (jako modelů vysoce složitých činností) Samočinné řízení procesů Diagnostika Logistické plánování Robotika Porozumění přirozenému (lidskému) jazyku A mnoho dalších Umělá inteligence se uplatňuje především tam, kde není možno využít exaktních matematických postupů vlivem složitosti problémů, a přesto je potřeba tyto problémy řešit. Je nutno tolerovat určitý stupeň nedokonalosti nalezených řešení.

UMĚLÁ INTELIGENCE 2 Inteligentní agenti Agentem zde rozumíme cokoliv, co vnímá své prostředí pomocí sensorů a působí na to prostředí pomocí efektorů. Člověk-agent z tohoto hlediska má oči, uši a další orgány jako sensory; dále má ruce, nohy, ústa a další části těla jako efektory. Robot-agent nahrazuje kamerami a infračervenými detektory sensory. Efektory jsou vlastně tvořeny různými motory. Softwarový agent pro vnímání a působení na prostředí disponuje bitovými řetězci. Cílem je návrh (umělých) agentů, kteří jsou inteligentně a výkonně schopni působit na své prostředí.

UMĚLÁ INTELIGENCE 2 Činnost agentů Za racionálního agenta budeme považovat takového, který provádí správné věci. V prvním přiblížení je správná věc taková věc, která umožňuje agentovi nejlepší úspěch. Jak a kdy se měří výkonnost agenta? Pro různé agenty neexistuje stejný způsob měření úspěšnosti. Měření (a vyhodnocení) míry úspěšnosti není vhodné provádět subjektivně (tedy přímo agentem), např. agent to není schopen udělat, apod. Proto se používá objektivní míra úspěšnosti, kdy je agent pozorován např. námi z vnějšku v jeho prostředí. Např. (libovolný) agent, jehož úkolem je vysávat nečistotu z podlahy, může být jednoduše posuzován z hlediska množství odstraněné špíny během osmi hodin. Komplexnější posouzení může vzít do úvahy faktor spotřeby el. proudu, množství produkovaného hluku, apod.

UMĚLÁ INTELIGENCE 2 Činnost agentů Další otázkou je kdy agentovu výkonnost vyhodnocovat. Na začátku vysávání může některý agent vysávat usilovně a za hodinu polevit, jiný může pracovat rovnoměrně celou pracovní dobu, další např. celou dobu své existence. Tomu je nutno přizpůsobit měření. Je nutno také rozlišovat mezi racionalitou a vševědoucností (zde agent zná skutečný výsledek svých akcí a tomu může přizpůsobit svou činnost to je však v realitě nemožné docílit). Racionalita je zaměřena na očekávaný úspěch na základě toho, co je agentem vnímáno (mnoho věcí nelze předvídat a vnímat). Racionalita závisí v libovolném čase na těchto čtyřech věcech: Na měření výkonnosti, které definuje stupeň úspěchu. Na všem, co agent vnímal do daného okamžiku (tzv. sekvence vnímání, což je kompletní historie agentova vnímání). Na znalostech agenta o jeho prostředí. Na akcích, které agent může provádět.

UMĚLÁ INTELIGENCE 2 Činnost agentů Definice ideálního racionálního agenta: Pro jakoukoliv sekvenci vnímání, ideální racionální agent učiní vše, co se od něj očekává pro maximalizaci míry jeho výkonnosti, a to na základě evidence poskytnuté sekvencí vnímání a znalosti, kterou agent disponuje. Například před přechodem křižovatky by se měl robot rozhlédnout doleva a doprava; bez toho jeho (post mortem zkoumaná) sekvence vnímání neodhalí, že vkročil do silnice bez rozhlédnutí a srazilo ho auto takový robot ovšem není racionální a jeho akce přejít křižovatku má nízkou míru výkonnosti. Důležitou součástí racionality (tj. rozumnosti ) je získávání užitečné informace. Otázka: lze považovat normální hodinky za jednoduchého racionálního agenta? Proč ano či ne? (Vnímání, úprava času při přechodu do jiné časové zóny...)

UMĚLÁ INTELIGENCE 2 Ideální mapování ze sekvence vnímání do akcí Pokud tedy závisí chování agenta na jeho sekvenci vnímání do určitého okamžiku, lze každého agenta popsat pomocí tabulky akcí, které vykonává jako odezvu na každou (doposud) možnou sekvenci vnímání (pro mnoho agentů by byl seznam velice dlouhý). Tento seznam budeme nazývat mapováním ze sekvencí vnímání do akcí. Mapování popisuje agenta a ideální mapování ideálního agenta. Specifikace akcí, které má agent provádět jako odezvu na dané sekvence vnímání, dává možnost vzniku ideálního agenta. Není ovšem nutno vytvářet explicitní tabulku s buňkou pro každou možnou sekvenci vnímání lze často definovat specifikaci bez vyčerpávajícího výčtu. (Např. výpočet druhé mocniny na kalkulačce nepotřebuje znát hodnotu pro každou možnou kombinaci stlačení tlačítek mapování lze vytvořit např. metodou Newtona.)

UMĚLÁ INTELIGENCE 2 Autonomie Ideální racionální agent by měl obsahovat nějakou vestavěnou znalost. Pokud takovou znalost má a je založen výhradně na ní, pak ovšem postrádá autonomii (jeho akce pak nezávisí na vnímání). Autonomie systému je dána vlastní zkušeností či znalostí agenta. Nelze ovšem např. požadovat kompletní autonomii agenta na slovo jdi, a je nutno se vyhnout jeho nahodilé činnosti. Agent by měl mít schopnost se učit (získávat znalost). Skutečně autonomní inteligentní agent musí být schopen úspěšné činnosti v širokém rozsahu různých prostředí, a to za předpokladu, že má dost času k adaptaci.

UMĚLÁ INTELIGENCE 2 Struktura inteligentního agenta Návrh programu pro umělého agenta je úkolem moderní umělé inteligence. Programem zde rozumíme funkci, která implementuje agentovo mapování z vnímání na akce. Program obvykle běží na určitém typu počítače, tj. vyžaduje se určitá architektura: agent = architektura + program. Před návrhem a implementací programu je nutno dobře znát možná vnímání a akce. Rovněž je nutno znát očekávanou výkonnost a cíle činnosti agenta, a také v jakém prostředí bude agent aktivní. Některá reálná prostředí mohou být ve skutečnosti velmi jednoduchá (robot pro třídění součástek). Oproti tomu někteří softwaroví agenti (softbot = software robot) existují ve složitých, neomezených doménách (např. softbot navržený pro létání na leteckém simulátoru pro Boening 747, softbot pro prohlížení on-line zpráv a výběr zajímavých pro zákazníky, a podobně).

UMĚLÁ INTELIGENCE 2 Příklady typů agentů TYP AGENTA VNÍMÁNÍ AKCE CÍLE PROSTŘEDÍ medicínský diagnostický systém systém analýzy satelitních snímků robot sbírající součástky řízení čističky interaktivní učitel angličtiny symptomy, nálezy, pacientovy odpovědi pixely různé intensity, barva pixely různé intensity teplota, tlak napsaná slova otázky, testy, léčba tisk kategorie záběru zvednutí součástky a její uložení do přihrádky otevření, zavření ventilů; přizpůsobení teploty tisk cvičení, nápověda, opravy zdravý pacient, minimální náklady správná kategorizace umístění součástek do správných přihrádek maximalizace čistoty, vydatnosti, bezpečnosti maximalizace studentových výsledků v testech pacient, nemocnice obrazy z obíhajícího satelitu pás přepravující součástky čistička soubor studentů

UMĚLÁ INTELIGENCE 2 Programy agentů Jednoduchá základní kostra vnímá prostředí a generuje akce, např.: function Skeleton-Agent(percept) returns action static: memory // agentova paměť světa memory Update-Memory(memory, percept) action Choose-Best-Action(memory) memory Update-Memory(memory, action) return action Po každém vyvolání funkce je agentova paměť aktualizována vzhledem k novému vjemu (vstup funkce). Je vybrána nejlepší akce a skutečnost o výběru akce je rovněž uložena do paměti. Paměť setrvává mezi jednotlivými vyvoláními funkce.

UMĚLÁ INTELIGENCE 2 Stačí pouze hledat odpovědi? K napsání jednoduchého agentova programu stačí např. vytvořit vyhledávací tabulku: function Table-Driven-Agent(percept) returns action static: percepts // na počátku prázdná sekvence table // tabulka indexovaná sekvencemi // vnímání, na počátku daná append percept to the end of percepts action Lookup(percepts, table) return action Agent je založen na předem stanovené tabulce. Hlídá si sekvenci vnímání a pouze vyhledá nejlepší akci. V paměti se uchovává celková sekvence vnímání, která slouží jako index do tabulky, která obsahuje příslušné akce pro všechny možné sekvence.

UMĚLÁ INTELIGENCE 2 Stačí pouze hledat odpovědi? Metoda hledání odpovědí pro vjemy může selhat: Tabulka potřebná pro jednoduchého agenta, jehož úkolem je pouze hrát šachy, by potřebovala přibližně 35 100 buněk. Pro návrháře by to znamenalo velice dlouhý čas pro vytvoření tabulky. Agent nemá žádnou autonomii, protože výpočet (výběr) nejlepší akce je zcela zabudován. Se změnou prostředí nějakým neočekávaným způsobem by mohl agent zcela zhavarovat. I kdybychom agenta vybavili nějakým učícím mechanismem, aby měl nějaký stupeň autonomie, trvalo by nesmírně dlouho se naučit správné hodnoty pro všechny buňky tabulky. Přesto ukázaná funkce Table-Driven-Agent implementuje požadované mapování. Je ovšem nutno pochopit, proč usuzující agent na rozdíl od pouze vyhledávajícího může být lepší při vyhnutí se uvedeným čtyřem nedostatkům.

UMĚLÁ INTELIGENCE 2 Stačí pouze hledat odpovědi? Příklad: Předpokládejme agenta umělého řidiče taxi. Úloha řízení není uzavřená: neexistuje limit pro možné nové kombinace okolností, které mohou nastat. TYP AGENTA řidič taxíku VJEMY AKCE CÍLE PROSTŘEDÍ kamery, rychloměr, GPS, sonar, mikrofon točení volantem, akcelerace, brzdění, mluvení k pasažérovi bezpečná, rychlá, předpisová a pohodlná jízda, maximální zisk silnice, další doprava, chodci, zákazníci

UMĚLÁ INTELIGENCE 2 Stačí pouze hledat odpovědi? Příklad (pokračování): Polohu, účast ostatních objektů na silnici, rychlost... potřebuje taxi znát. To lze získat z vjemů poskytovaných příslušnými zařízeními (kamery, rychloměr, atd.). Znalost projíždění zatáčkami vyžaduje akcelerometr. Stav vozidla je dán senzory v motoru, v elektrické výbavě... Akce jsou více-méně tytéž jako u řidiče-člověka: kontrola motoru plynovým pedálem kontrola řízení volantem a brzdami Navíc komunikace s dalšími vozidly, syntezátor hlasu pro mluvení na pasažéry.

UMĚLÁ INTELIGENCE 2 Stačí pouze hledat odpovědi? Příklad (pokračování): Míra výkonnosti: dojetí na správné místo minimalizace spotřeby a opotřebení minimalizace času a ceny cesty minimalizace narušení dopravních pravidel a omezování dalších řidičů maximalizace bezpečnosti a pohodlí pasažérů maximalizace zisku je zřejmé, že některé požadavky jsou konfliktní, takže je nutno nalézt kompromisy Prostředí: může být na lokálních silnicích, na dálnicích? v oblasti se sněhem nebo bez? jízda vždy vpravo nebo i vlevo (Británie, Japonsko)? Čím větší omezení, tím snadnější návrh.

UMĚLÁ INTELIGENCE 2 Stačí pouze hledat odpovědi? Nyní je nutno rozhodnout, jak vytvořit reálný program pro mapování vjemů na akce. Různá hlediska řízení mohou vyžadovat různé typy programů zde budeme uvažovat čtyři typy: Jednoduší reflexní agenti. Agenti sledující svět. Agenti zaměření na cíl. Užitkově zaměření agenti.

UMĚLÁ INTELIGENCE 2 Stačí pouze hledat odpovědi? Jednoduší reflexní agenti Explicitní vyhledávací tabulky nepřicházejí do úvahy: visuální vstup z jednoduché kamery přichází v množství 50 MB/s (25 obrázků za vteřinu, 1000x1000 pixelů s 8 bity na barvy a 8 bity informace o intensitě). Tabulka by pak musela mít pro jednu hodinu 2 60x60x50M buněk, což je zjevně přílišný paměťový požadavek.je ovšem možné sloučit části tabulky existují některé obecně se vyskytující vstup/výstupní asociace, např. brzdí-li automobil před námi a jeho brzdová světla se rozsvítí, naše auto by mělo rovněž začít brzdit. To vede k možnosti použití pravidel typu IF-THEN (pravidlo typu podmínka-akce).

UMĚLÁ INTELIGENCE 2 Stačí pouze hledat odpovědi? Jednoduší reflexní agenti (pokračování) Lidé takovýchto vstup/výstupních asociací rovněž používají mnoho (některá pravidla se naučí, jiná pocházejí z reflexů). Obrázek ukazuje strukturu jednoduchého reflexního agenta ve schematické formě, a ukazuje, jak agentovi pravidla umožňují propojit vjemy s akcemi: Agent Sensory Jaký je svět nyní IF-THEN Jaká akce má být provedena Efektory

UMĚLÁ INTELIGENCE 2 Stačí pouze hledat odpovědi? Jednoduší reflexní agenti (pokračování) Jednoduchý reflexní agent hledá pravidlo, jehož podmínka odpovídá současné situaci (určené vjemem) a pak provede akci s tím pravidlem asociovanou: function Simple-Reflex-Agent(percept) returns action static: rules // soubor IF-THEN pravidel state Interpret-Input (percept) rule Rule-Match (state, rules) action Rule-Action[rule] return action

UMĚLÁ INTELIGENCE 2 Stačí pouze hledat odpovědi? Agenti sledující svět Jednoduchý reflexní agent pracuje pouze tehdy, když správné rozhodnutí může být vytvořeno na základě okamžitého vjemu. Pokud auto vpředu je současný model, je možné z jednoduchého obrázku z kamery poznat, zda svítí brzdová světla či ne. Starší modely mohou mít jiná uspořádání a jejich brzdění nemusí být detekováno. Proto musí agent-řidič udržovat určitý druh vnitřního stavu pro správný výběr akce. Zde není vnitřní stav příliš rozsáhlý potřebuje jen předchozí snímek kamery k určení stavů, kdy se co rozsvítí nebo nějak změní na autě vpředu při jeho brzdění, ukazování změny směru jízdy (blinkr, nebo mechanická ručka,...), apod.

UMĚLÁ INTELIGENCE 2 Stačí pouze hledat odpovědi? Agenti sledující svět (pokračování) Obdobně je nutno uvážit, že senzory nemusejí vždy poskytnout kompletní informaci o stavu na silnici, v jízdních pruzích apod. V takových případech musí agent udržovat nějakou vnitřní stavovou informaci k odlišení stavů světa, které generují stejný perceptuální vstup, ale jsou výrazně odlišné (tj. jsou zapotřebí výrazně odlišné akce). Např. (1) nejede-li ve vedlejším pruhu auto nebo (2) není-li vidět, generuje tentýž vstup, avšak ve druhém případě je správnou akcí pokračování v původním pruhu, v prvním případě možnost přejetí do vedlejšího.

UMĚLÁ INTELIGENCE 2 Stačí pouze hledat odpovědi? Agenti sledující svět (pokračování) Aktualizace vnitřní stavové informace vyžaduje dva druhy znalosti zakódované do agentova programu: 1. Je nutno znát, jak se svět vyvíjí nezávisle na agentovi např. předjíždějící automobil bude obecně blíže za námi než před okamžikem. 2. Je nutno znát, jak vlastní agentovy akce ovlivňují svět přejíždí-li agent do pravého pruhu, vzniká po něm přinejmenším dočasně mezera v původním pruhu, nebo že po cca pěti minutách jízdy směrem na sever se nachází cca pět kilometrů severně od místa, kde byl před pěti minutami (věci zdánlivě triviální pro člověka, ale pro stroj-agenta je nutno takto uvažovat).

UMĚLÁ INTELIGENCE 2 Stačí pouze hledat odpovědi? Agenti sledující svět (pokračování) Schema reflexního agenta s interním stavem: stav vývoj světa účinek akcí IF-THEN Agent Sensory Jaký je svět nyní Jaká akce má být provedena Efektory

UMĚLÁ INTELIGENCE 2 Stačí pouze hledat odpovědi? Agenti sledující svět (pokračování) Příslušná funkce v pseudokódu: function Reflex-Agent-With-State(percept) returns action static: rules // soubor IF-THEN pravidel state // popis stavu současného světa state Update-State (state, percept) rule Rule-Match (state, rules) action Rule-Action[rule] state Update-State (state, action) return action

UMĚLÁ INTELIGENCE 2 Stačí pouze hledat odpovědi? Agenti zaměření na cíl Znalost okamžitého stavu prostředí nemusí ve všech případech postačovat k rozhodnutí o činnosti. Na křižovatce může taxi jet doleva, doprava, nebo rovně. Správné rozhodnutí závisí na tom, jaký je cíl jízdy. Agent tedy potřebuje ještě informaci o cíli jízdy. Agentův program pak může zkombinovat tuto informaci s informací o výsledcích možných akcí (tatáž informace byla použita k aktualizaci vnitřního stavu u reflexního agenta) k rozhodnutí o výběru správné akce k dosažení cíle. Někdy je to jednoduché (jedna akce), jindy složité (dlouhá posloupnost zatáčení apod. pro nalezení cesty k dosažení cíle). Umělá inteligence používá různé metody pro vyhledávání a plánování k tomuto účelu.

UMĚLÁ INTELIGENCE 2 Stačí pouze hledat odpovědi? Agenti zaměření na cíl (pokračování) Je dobré si povšimnout, že tento typ rozhodování se fundamentálně liší od používání pravidel typu IF-THEN v tom, že zahrnuje úvahy o budoucnosti: Co se stane když udělám to-a-to? a Pomůže mi to nějak?. U návrhů reflexních agentů se tato informace explicitně nepoužívá, protože návrhář předem stanovil správné akce pro různé případy. Reflexní agent brzdí, když před sebou uvidí svítit brzdová světla. Cílově zaměřený agent v principu může uvažovat o tom, že pokud má auto před ním rozsvícená brzdová světla, tak zpomalí. Z toho, jak se obvykle svět vyvíjí, plyne, že jediná akce k zamezení nárazu (dosažení cíle nesrazit se) je brzdit.

UMĚLÁ INTELIGENCE 2 Stačí pouze hledat odpovědi? Agenti zaměření na cíl (pokračování) Cílově zaměřený agent se může zdát méně efektivní, ale je daleko flexibilnější. Začne-li např. pršet, cílový agent může aktualizovat svou znalost o efektivnosti jeho brzd to může automaticky ovlivnit změny relevantních chování, aby se vyhovělo novým podmínkám. U reflexního agenta by bylo nutno přepsat velké množství pravidel typu podmínka-akce. Dále je cílově zaměřený agent také mnohem flexibilnější vzhledem k dosažení různých cílů. Jednoduchou specifikací nového cíle dojezdu lze získat agenta s novým/aktualizovaným chováním. Pravidla reflexního agenta, kdy zatočit a kdy jet přímo, fungují pouze pro jeden cíl dojezdu. Pro dojezd jinam musí být všechna vyměněna.

UMĚLÁ INTELIGENCE 2 Stačí pouze hledat odpovědi? Agenti zaměření na cíl (pokračování) Cílově zaměřený agent: stav vývoj světa účinek akcí sensory jaký je svět nyní co se stane po akci A cíle Agent jaká akce by měla být provedena efektory

UMĚLÁ INTELIGENCE 2 Stačí pouze hledat odpovědi? Užitkově zaměření agenti Cíle samy o sobě nepostačují ke generování vysoce kvalitního chování agenta. Např. existuje mnoho sekvencí akcí, které dostanou taxík do jeho určeného cíle tím je tedy dosaženo cíle. Na druhé straně lze cíl ovšem dosáhnout za různých okolností: rychleji, bezpečněji, spolehlivěji, levněji, apod. Cíle pouze poskytují hrubé rozlišení mezi přínosnými a nepřínosnými stavy. Obecnější míra výkonnosti by měla poskytnout exaktní srovnání různých stavů světa (nebo sekvencí stavů) podle toho, do jaké míry jsou pro agenta přínosné, pokud jich dosáhne. (Pro přínosnost se používá termín agentův užitek.)

UMĚLÁ INTELIGENCE 2 Stačí pouze hledat odpovědi? Užitkově zaměření agenti (pokračování) Užitek je tedy funkce, která mapuje určitý stav na reálné číslo, které dále slouží pro určení asociovaného stupně přínosnosti. Kompletní specifikace funkce užitku umožňuje racionální rozhodování ve dvou případech, nastanou-li nějaké potíže s dosažením cílů: 1. Pokud existují konfliktní cíle, pak pouze některé mohou být dosaženy (např. rychlost a bezpečnost). Funkce užitku zde stanoví vhodný kompromis. 2. Pokud existuje několik cílů, na jejichž splnění se agent může zaměřit a žádného z nich nelze dosáhnout s jistotou, pak užitečnost poskytuje způsob jak přiřadit váhu pravděpodobnosti úspěchu vzhledem k důležitosti dosažení cílů.

UMĚLÁ INTELIGENCE 2 Stačí pouze hledat odpovědi? Užitkově zaměření agenti (pokračování) Agent, který vlastní explicitní funkci užitku, může vytvářet racionální rozhodnutí, ale musí porovnávat potenciálně dosažitelné užitky, k nimž vedou různé posloupnosti akcí. Cíle, i když jsou z tohoto hlediska hrubější, umožňují agentovi výběr akce přímo, a to za předpokladu, že akce vyhovují pro dosažení cíle. Existují také případy, kdy lze převést funkci užitku na soubor cílů takovým způsobem, že cílově zaměřený agent při použití těchto cílů dosáhne stejného rozhodnutí o činnosti jako užitkově zaměřený agent používající danou funkci. Jiným příkladem užitkově zaměřeného agenta je např. agent hrající nějakou hru (šachy), který musí vytvářet značně jemná rozlišování mezi různými pozicemi vznikajícími na šachovnici.

UMĚLÁ INTELIGENCE 2 Stačí pouze hledat odpovědi? Užitkově zaměření agenti (pokračování) Užitkově zaměřený agent: stav vývoj světa účinek akcí užitek Agent sensory jaký je svět nyní co se stane po akci A jaký užitek takový stav přinese jaká akce by měla být provedena efektory

UMĚLÁ INTELIGENCE 2 Prostředí Vlastnosti prostředí Prostředí má několik charakteristik. Základní odlišnosti: Přístupné a nepřístupné: zda agentovy sensory umožňují poskytnout kompletní informaci o stavu prostředí. Pokud ano, je prostředí přístupné, jinak je nepřístupné. Sensory by měly umožnit získat údaje relevantní pro výběr akce. Přístupné prostředí má tu výhodu, že si agent nemusí udržovat vnitřní stavy sledovaného světa. Deterministické a nedeterministické: je-li následující stav prostředí zcela určen současným stavem a akcemi zvolenými agentem, pak se jedná o deterministické prostředí. V principu nemá agent starosti s nejistotou v přístupném a deterministickém prostředí. Zda je prostředí deterministické se obvykle musí určit přímo z hlediska agenta.

UMĚLÁ INTELIGENCE 2 Prostředí Vlastnosti prostředí (pokračování) Episodické a neepisodické: v episodickém prostředí je agentova znalost/zkušenost rozdělena mexi episody. Každá episoda se skládá z agentových vnímání následovaných akcemi. Kvalita agentovy akce závisí pouze na dané episodě, protože následné episody na předcházejicích nezávisejí co do jejich vlastní kvality. Episodická prostředí mají výhodu v tom, že agent nemusí myslet dopředu. Statické a dynamické: pokud se prostředí mění během agentova uvažování, pak je prostředí z jeho hlediska dynamické, jinak je statické. Statická prostředí mají výhodu v tom, že během svého uvažování nemusí agent sledovat svět, a také se nemusí zabývat časem. Semidynamické: pokud se prostředí nemění v čase, ale agentova výkonnost na čase záleží, mluvíme o semidynamickém prostředí.

UMĚLÁ INTELIGENCE 2 Prostředí Vlastnosti prostředí (pokračování) Diskrétní a kontinuální: existuje-li omezené množství odlišných a jasně určených vnímání a akcí, pak se jedná o diskrétní prostředí (např. šachy jsou diskrétní prostředí existuje pevné množství možných tahů v každé pozici). Řízení taxíku je kontinuální rychlost a poloha taxíku včetně ostatních vozidel se mění v intervalu spojitých hodnot. Pozn.: Při dostatečně jemné úrovni granularity může dokonce i prostředí taxíku být diskrétní, protože obraz kamery je digitalizován na diskrétní hodnoty pixelů, ale smysluplný program agenta je normálně na abstraktnější úrovni, tj. na úrovni, kde je granularita považována za spojitou záležitost. Zjevně nejobtížnější případ nastane, když je prostředí nepřístupné, neepisodické a dynamické; obdobně je to i v případě prostředí dynamického. Rovněž se ukazuje, že většina reálných situací je tak složitá, že to, zda je prostředí doopravdy deterministické, je záležitost sporná a pro praktické účely se zachází se situací jako s nedeterministickou.

UMĚLÁ INTELIGENCE 2 Prostředí Vlastnosti prostředí (pokračování) Následující tabulka ukazuje některé známější typy prostředí: PROSTŘEDÍ šachy s hodinami šachy bez hodin přístupné deterministické episodické statické diskrétní ano ano ne semi ano ano ano ne ano ano poker ne ne ne ano ano backgammon (vrhcáby) ano ne ne ano ano řízení taxi ne ne ne ne ne medicínská diagnostika ne ne ne ne ne analýza obrazů ano ano ano semi ne

UMĚLÁ INTELIGENCE 2 Prostředí Vlastnosti prostředí (pokračování) Následující tabulka ukazuje některé známější typy prostředí (pokračování): PROSTŘEDÍ robot třídící součástky přístupné deterministické episodické statické diskrétní ne ne ano ne ne řízení čističky ne ne ne ne ne interaktivní učitel angličtiny ne ne ne ne ano

UMĚLÁ INTELIGENCE 2 Prostředí Vlastnosti prostředí (pokračování) Hodnoty v tabulce mohou ovšem záviset na tom, jak je vytvořen pojem (tzv. konceptualizace) prostředí a agentů. Poker je deterministický, pokud si agent může udržovat údaje o sledování pořadí karet v balíčku, jinak bude poker nedeterministický. Obdobně může dojít k tomu, že prostředí je episodické na vyšší úrovni, než se odehrávají agentovy jednotlivé akce. Např. šachový turnaj se skládá z posloupnosti her (partií). Každá partie je episoda, protože přínos tahů, provedených agentem v jedné partii, pro celkovou úroveň agentovy výkonnosti není ovlivněn tahy z příští partie. Na druhé straně je nutno uvažovat fakt, že během jedné partie jsou jednotlivé tahy spolu určitým způsobem provázány, takže agent je musí promýšlet v nějakém počtu dopředu.

UMĚLÁ INTELIGENCE 2 Prostředí Programy pro prostředí Obecný program pro prostředí ilustruje základní vztah mezi agenty a prostředími: procedure Run-Environment(state, Update-Fn, agents, termination) inputs: state // počáteční stav prostředí Update-Fn // funkce pro modifikaci prostředí agents // soubor agentů termination // predikát k otestování na závěr repeat for each agent in agents do Percept[agent] Get-Percept(agent, state) end for each agent in agents do Action[agent] Program[agent]Percept([agent]) end state Update-Fn (actions, agents, state) until termination(state)

UMĚLÁ INTELIGENCE 2 Prostředí Programy pro prostředí (pokračování) Uvedený základní program pracuje v principu tak, že předává každému agentovi jeho vjemy (percepce), od každého agenta získává jeho akci, a pak aktualizuje prostředí. Simulátory prostředí mohou být založeny na uvedené programové kostře: simulátor dostane jako vstup jednoho (či více) agenta a zařídí, aby opakovaně každý agent obdržel správné vjemy; poté získá akce agentů. Následně simulátor aktualizuje prostředí na základě akcí, případně vlivu dalších dynamických procesů (které však nejsou agenty, např. déšť). Prostředí je tedy definováno počátečním stavem a aktualizační funkcí. (Pozn.: Každý agent pracující v simulovaném prostředí by samozřejmě měl fungovat i v reálném prostředí, které poskytuje tytéž druhy vjemů a přijímá tytéž druhy akcí.)

UMĚLÁ INTELIGENCE 2 Prostředí Programy pro prostředí (pokračování) Procedura Run-Environment musí korektním způsobem testovat agenty v prostředí. Pro některé druhy agentů (např. takové, kteří se účastní dialogu v přirozeném jazyce) může postačovat pouhé sledování jejich chování. Pro získání detailnějších informací o agentově výkonnosti se začlenuje nějaký kód pro měření výkonnosti. Může to být např. funkce Run-Eval-Environment: měří výkonnost každého agenta a vrací seznam výsledných skóre. Proměnná score obsahuje sledování skóre pro každého agenta (viz následujcí funkci Run-Eval-Environment):

UMĚLÁ INTELIGENCE 2 Prostředí Programy pro prostředí (pokračování) function Run-Eval-Environment(state, Update-Fn, agents, termination, Performance-Fn) returns scores local variables: scores // vektor daný počtem agentů // na počátku vše 0 repeat for each agent in agents do Percept[agent] Get-Percept(agent, state) end for each agent in agents do Action[agent] Program[agent]Percept([agent]) end state Update-Fn(actions, agents, state) scores Performance-Fn(scores, agents, state) until termination(state) return scores

UMĚLÁ INTELIGENCE 2 Prostředí Programy pro prostředí (pokračování) Měření výkonnosti obecně může záviset na celkové posloupnosti stavů prostředí generovaných během činnosti programu. Obvykle se však používá jednoduchá akumulace (součet, výpočet průměru, nebo použití maxima). Např. uvážíme-li měření výkonnosti agenta vysávajícího podlahy a použijeme-li jako míru celkové množství odstraněné špíny, pak scores jednoduše udržuje hodnotu o tom, kolik špíny již bylo doposud vysáto. Run-Eval-Environment vrací míru výkonnosti pro jedno prostředí, definované jedním počátečním stavem a konkrétní aktualizační funkcí.

UMĚLÁ INTELIGENCE 2 Prostředí Programy pro prostředí (pokračování) Agent je však obvykle navržen pro práci ve třídě prostředí, čímž se rozumí celý soubor různých prostředí. Například se může jednat o šachový program, který hraje proti širokému souboru lidských a strojových protihráčů. Pokud bychom takový program navrhli proti jedinému protihráči, pak by mohlo dojít k tomu, že se sice využijí konkrétní slabosti daného protivníka, ale nemuseli bychom získat program hrající obecně dobře (viz Deep Blue pro Garry Kasparova). Z toho plyne zřejmý požadavek: pro měření výkonnosti agenta je zapotřebí generátor prostředí, který (s určitou pravděpodobností) vybírá konkrétní prostředí, v němž je agent testován. Nás pak zajímá průměrná agentova výkonnost přes celou třídu prostředí.

UMĚLÁ INTELIGENCE 2 Prostředí Programy pro prostředí (pokračování) Je nutno ovšem při realizaci simulátoru prostředí dbát na rozdíl mezi stavovou proměnnou simulátoru prostředí a stavovou proměnnou v agentovi: Agent nesmí vidět stavovou proměnnou simulátoru prostředí. Agentova stavová proměnná může pouze nabývat hodnot na základě agentových vjemů, bez kompletního přístupu k informacím.

UMĚLÁ INTELIGENCE 2 Prostředí Příklad prostředí a agentů ve světě vysávání špíny Uvedený svět lze popsat následovně: Vjemy: každý vysavačový agent dostává tříprvkový vektor vjemů pro každé kolo vysávání. První element (z dotykového sensoru) dává 1 pokud stroj do něčeho vrazí, jinak 0. Druhý element (fotosensor na spodku stroje) dává 1 pokud je zjištěno smetí, jinak 0. Třetí element dává 1 pokud je agent ve výchozím místě ( doma ), jinak 0. Akce: pět akcí je k dispozici jdi vpřed, otoč se doprava o 90, otoč se doleva o 90, vysaj smetí, vypni se. Cíle: Cílem každého agenta je odstranit smetí a vrátit se domů. Exaktnější zadání: 100 bodů za každý vysátý kus smetí, -1 bod za každou akci, -1000 bodů pokud se agent vypne jinde než doma. Prostředí: je dáno mřížkou se čtverci. Některé čtverce obsahují překážky (zdi, nábytek, apod.), jiné obsahují volný prostor. Některé volné čtverce obsahují smetí. Každá akce jdi vpřed je přesun na další čtverec, pokud tam není překážka v tom případě agent zůstane stát v původním čtverci, ale dotykový senzor je nadále aktivní. Vysaj smetí vždy odstraní detekovaný kus smetí. Vypni se vždy zcela ukončí simulaci.

UMĚLÁ INTELIGENCE 2 Prostředí Příklad prostředí a agentů ve světě vysávání špíny (pokračování) Složitost prostředí lze měnit ve třech směrech: Tvar místnosti: v nejjednodušším případě má místnost n n čtverců (pro nějaké pevné n). Obtížnější případ nastane změnou na tvar obdélníka, tvar písmene L, nebo nepravidelný tvar, případně série místností spojených chodbami. Nábytek: umístění nábytku vytváří složitější problém. Z hlediska agentavysavače nemusí vjem rozlišovat mezi zdí a kusem nábytku, obojí aktivuje sensor tak, že vydá hodnotu 1. Rozmístění smetí: nejjednodušší je smetí rozmístit rovnoměrně v místnosti. Realističtější je více smetí umístit v určitých lokacích (např. dlouhá a velmi používaná cesta do další místnosti, nebo kolem židle u jídelního stolu, apod.).

UMĚLÁ INTELIGENCE 2 Řešení úloh pomocí agentů Řešení úloh (problémů) z hlediska inteligentních agentů znamená, jak může agent dosáhnout cílů a jaké by měly být sekvence akcí, které mohou k daným cílům vést. Řešený problém zde představuje cíl a soubor prostředků pro dosažení cíle. Proces prozkoumávání prostředků (tj. co mohou prostředky, které jsou k dispozici, dosáhnout), se nazývá vyhledávání (či prohledávání, pátrání). Agent řešící problémy typ agenta zaměřeného na cíle. Například jednoduchý reflexní agent je příliš omezen (kvůli svým vlastnostem nemůže uvažovat směrem do budoucna).

UMĚLÁ INTELIGENCE 2 Řešení úloh pomocí agentů Agenti, kteří řeší problémy, rozhodují o své činnosti tím, že se snaží nalézt sekvence akcí, které vedou k požadovaným stavům. Obecně se o inteligentních agentech předpokládá, že provádějí akce tak, aby prostředí procházelo posloupností stavů z hlediska maximalizace měřené výkonnosti (méně obecně: z hlediska účinnosti agenta splnit vybraný cíl). Prvním krokem k řešení problému je formulace cíle, založená na okamžité situaci. Za cíl lze např. považovat soubor stavů světa a to takové stavy, v nichž je cíl splněn. Na akce pak lze hledět jako na činnosti, které způsobí přechody mezi jednotlivými stavy světa, takže úkolem agenta je nalézt vhodné akce k dosažení cílového stavu.

UMĚLÁ INTELIGENCE 2 Řešení úloh pomocí agentů Obecně nelze uvažovat o akcích na určité detailní úrovni. Například při požadavku vyjet z parkoviště není pro agenta vhodné usuzovat o akcích typu natoč volant 6 stupňů doleva apod., protože generace řešení na takovéto úrovni detailů by mohla být ve většině případů nezvládnutelným problémem (člověk také neusuzuje tímto způsobem). Formulace problému je proces rozhodnutí, jaké akce a stavy uvažovat; tato formulace následuje po formulaci cíle. Dostatečná znalost: lze dojet z jednoho města do druhého, výběr z více cest, apod. Pokud není k dispozici dostatek informací a k cíli se lze dostat více možnostmi, pak agent nemá nic lepšího než náhodně zvolit. Obecně platí, že pokud má agent několik možností neznámé hodnoty, pak k rozhodnutí o své činnosti potřebuje napřed prozkoumat různé možné posloupnosti akcí vedoucích do stavů o známé hodnotě, a pak prostě vybrat tu nejlepší sekvenci. Tento proces se nazývá vyhledávání.

UMĚLÁ INTELIGENCE 2 Řešení úloh pomocí agentů Algoritmus vyhledávání má jako vstup řešený problém. Na výstupu poskytuje řešení ve formě sekvence akcí. Jakmile je řešení nalezeno, je doporučeno (nabídnuto) k provedení tzv. výkonná fáze. Z toho plyne jedna z možností, jak navrhnout agenta na základě trojice pojmů: 1) formuluj, 2) vyhledej, 3) proveď. Po provedení zvolené sekvence akcí pak agent zvolí nový cíl a vše se pro aktuální situaci opakuje znovu.

UMĚLÁ INTELIGENCE 2 Řešení úloh pomocí agentů Jednoduchý agent řešící problém: function Simple-Problem-Solving-Agent(p) returns action inputs: p // vjem (percepce) static: s // sekvence akcí, na počátku prázdná state // popis stavu současného světa g // cíl (goal), na počátku prázdný problem // formulace problému state Update-State(state, p) // aktualizace stavu if s is empty then g Formulate-Goal(state) // formulace cíle problem Formulate-Problem(state, g) s Search(problem) // hledání sekvence akcí action Recommendation(s, state) // 1. akce v sekvenci s Remainder(s, state) // ostatní akce v sekvenci return action

UMĚLÁ INTELIGENCE 2 Řešení úloh pomocí agentů Formulace problémů Formulace problémů závisí na množství znalostí, které má agent k dispozici, aby bylo možno uvažovat jeho akce a stavy, v nichž se ocitne. To závisí na propojení agenta s prostředím pomocí jeho vjemů a akcí. Existují čtyři základní různé typy problémů: 1) problémy pro jeden stav, 2) problémy pro více stavů, 3) problémy nahodilé, 4) problémy k prozkoumání.

UMĚLÁ INTELIGENCE 2 Řešení úloh pomocí agentů Formulace problémů (pokračování) Typy problémů Uvažme opět svět vysávání nečistoty: Nechť pro jednoduchost obsahuje pouze dvě místa. Každé z míst může nebo nemusí obsahovat nečistotu. Agent se může zpočátku nacházet v libovolném z obou míst. Existuje celkem 8 možných stavů světa, {1, 2, 3, 4, 5, 6, 7, 8}, viz následující obrázek. Agent má k dispozici tři možné akce (v této verzi světa): Doleva, Doprava, Vysávat. Dále předpokládejme, že vysávání je účinné na 100%. Cílem je zlikvidovat veškerou nečistotu, tj. cíl je ekvivalentní s dosažením množiny stavů {7, 8}.

UMĚLÁ INTELIGENCE 2 Řešení úloh pomocí agentů Formulace problémů (pokračování) Agent-vysavač a jeho svět s osmi možnými stavy: 1 2 3 4 5 6 7 8

UMĚLÁ INTELIGENCE 2 Řešení úloh pomocí agentů Formulace problémů (pokračování) Předpokládejme dále, že agentovy sensory mu poskytují dostatek informace k tomu, aby přesně věděl, v jakém stavu se nachází (svět je přístupný) a dále, že agent ví, co každá jeho akce udělá. Pak je možné exaktně spočítat, v jakém stavu bude po jakékoliv sekvenci akcí. Pokud je např. počáteční stav 5, pak lze určit, že po sekvenci akcí [Doprava, Vysávat] bude dosaženo cílového stavu. To je nejjednodušší případ, zvaný problém jednoho stavu.

UMĚLÁ INTELIGENCE 2 Řešení úloh pomocí agentů Formulace problémů (pokračování) Uvažujme dále agenta, který zná všechny důsledky svých akcí, ale má omezený přístup ke stavům světa (např. v extrémním případě nemusí mít žádné sensory). V takovém případě jediné, co agent ví, je, že jeho počátečním stavem je jeden z množiny stavů {1, 2, 3, 4, 5, 6, 7, 8}. Kupodivu agentova kritická situace není beznadějná protože ví, k čemu po jeho akcích dochází, pak může určit, že např. po akci Doprava se ocitne v jednom ze stavů {2, 4, 6, 8}. Ve skutečnosti může agent odhalit, že po akční sekvenci [Doprava, Vysávat, Doleva, Vysávat] je zaručeno dosažení cíle bez ohledu na počáteční stav. Shrnutí: Pokud není svět plně přístupný, pak agent musí uvažovat o množině stavů, do nichž se může dostat, nikoliv o jednotlivých stavech. Uvedená situace se nazývá vícestavový problém.

UMĚLÁ INTELIGENCE 2 Řešení úloh pomocí agentů Formulace problémů (pokračování) Případ neznalosti důsledku akcí lze řešit obdobným způsobem. Uvažujme situaci, kdy prostředí se jeví nedeterministické (a splňuje Murphyho pravidlo): Akce zvaná Vysávání někdy umístí nečistotu na koberec, ale pouze v tom případě, že tam ještě není žádná nečistota. Pokud agent tedy ví, že se nachází např. ve stavu 4, pak také ví, že bude-li vysávat, dosáhne jednoho ze stavů {2, 4}. Pro jakýkoliv známý počáteční stav existuje posloupnost akcí, která zaručuje dosažení cílového stavu.

UMĚLÁ INTELIGENCE 2 Řešení úloh pomocí agentů Formulace problémů (pokračování) Někdy ovšem neznalost zabraňuje agentovi nalézt sekvenci zaručující dosažení cíle. Dejme tomu, že agent je ve světě Murphyho pravidla, má poziční sensor a sensor pro lokaci nečistoty, ale nemá sensor schopný detekovat nečistotu v jiných místech (čtvercích). Řekněme, že sensory poskytují informaci, že agent je v jednom ze stavů {1, 3}.??

UMĚLÁ INTELIGENCE 2 Řešení úloh pomocí agentů Formulace problémů (pokračování) Agent může formulovat sekvenci akcí [Vysát, Doprava, Vysát]. Vysátí změní stav na jeden z {5, 7}, pohyb doprava na jeden z {6, 8}. Je-li skutečným stavem 6, pak sekvence akcí je úspěšná; pokud 8, pak plán selhal. Pokud by agent vybral jednodušší sekvenci akcí [Vysát], pak to někdy může uspět, ale ne vždy. Ukazuje se, že neexistuje žádná fixní posloupnost akcí, která by zaručila řešení problému.

UMĚLÁ INTELIGENCE 2 Řešení úloh pomocí agentů Formulace problémů (pokračování) V uvedeném případě má agent cestu k řešení problému z jednoho stavu {1, 3}: vysát, zatočit doprava, a pak vysát pouze pokud tam je nečistota. Tento postup ovšem vyžaduje možnost vnímání během exekuční fáze. V tomto případě musí agent spočítat celý strom akcí (nikoliv jen sekvenci pro jednu akci). Obecně se každá z větví stromu zabývá možnou nahodilostí, která se může objevit. Proto se tato situace nazývá problém nahodilosti. V realitě k těmto problémům patří velké množství situací, protože přesná predikce je nemožná z tohoto důvodu např. lidé obvykle důkladně sledují situaci při přecházení silnice nebo při řízení.

UMĚLÁ INTELIGENCE 2 Řešení úloh pomocí agentů Formulace problémů (pokračování) Problémy jednoho stavu a více stavů mohou být zpracovávány podobnými vyhledávacími technikami. Problémy s nahodilostí však vyžadují mnohem složitější algoritmy a často vedou ke změně návrhu agenta, kdy agent může provést akci před nalezením zaručeného plánu. To je užitečné proto, že může být snazší nebo lepší prostě něco začít dělat a teprve pak zjišťovat, jaké nahodilosti se objevily, ve srovnání s postupem, kdy se předem uvažuje každá možná nahodilost, která by se mohla vyskytnout během exekuční fáze. Agent pak může pokračovat v řešení problému za předpokladu získání přídavné informace. Tento postup se nazývá prokládání činnosti vyhledávání a exekuce.

UMĚLÁ INTELIGENCE 2 Řešení úloh pomocí agentů Dobře definované problémy a řešení Pod pojmem problém zde budeme rozumět souhrn informací, které agent použije k rozhodnutí o své činnosti. Základními prvky definice problému jsou stavy a akce: Počáteční stav stav, o němž agent ví, že v něm je. Operátor soubor agentových možných akcí. Termín operátor se používá k popisu akce, a to pomocí pojmů, jakých stavů lze docílit provedením akce z konkrétního stavu. Někdy se používá formulace následnická funkce S: je-li dán konkrétní stav x, pak S(x) vrací soubor stavů dosažitelných z x libovolnou jednou akcí. Stavový prostor problému soubor všech stavů dosažitelných z počátečního stavu libovolnou sekvencí akcí.

UMĚLÁ INTELIGENCE 2 Řešení úloh pomocí agentů Dobře definované problémy a řešení (pokračování) Cesta ve stavovém prostoru jde prostě o jakoukoliv sekvenci akcí, která vede z jednoho stavu do druhého. Test cíle test aplikovaný agentem na popis jednoho z cílů, zda jde o cílový stav. Pokud je cílových stavů více, test cíle rozezná, zda se o jeden z nich jedná či nikoliv. Pozn.: Někdy je cíl specifikován nějakou abstraktní vlastností spíše než explicitně vyjmenovaným seznamem stavů. Např. v šachu jde o dosažení cíle mat (protivníkův král je napaden figurou a nemá kam ustoupit, a ani to napadení nelze zlikvidovat, tj. dalším tahem lze krále vzít bez ohledu na to, co oponent vlastnící daného krále udělá). Funkce ceny cesty g funkce g přiřazující dané cestě nějaké náklady (nebo cenu). Nadále budeme uvažovat o ceně cesty jako o sumě cen za jednotlivé akce podél dané cesty.

UMĚLÁ INTELIGENCE 2 Řešení úloh pomocí agentů Dobře definované problémy a řešení (pokračování) Počáteční stav, soubor operátorů, test cíle a cena cesty dohromady definují problém. Typ dat representující problém: datatype Problem components: Initial-State, Operators, Goal-Test, Path-Cost-Function Instance uvedeného typu dat slouží jako vstup vyhledávacího algoritmu; výstupem je řešení, tj. cesta z počátečního stavu do stavu vyhovujícímu cílovému testu. Pro zpracování vícestavových problémů se provede jednoduchá modifikace: problém je složen z počátečního souboru stavů a dále ze souboru operátorů. Test cíle a funkce ceny cesty zůstávají jako předtím. Cesta nyní propojuje soubor stavů a řešením se nyní rozumí cesta vedoucí do souboru těch stavů, které vyhovují cílovým stavům. Stavový prostor je nahrazen prostorem souboru stavů.

UMĚLÁ INTELIGENCE 2 Řešení úloh pomocí agentů Měření výkonnosti řešení problémů Tři možnosti: 1. Bylo vůbec nalezeno řešení? 2. Je řešení dobré (tj. cesta s nízkou cenou)? 3. Jaká byla cena za nalezené řešení vzhledem k požadované paměti a času? Celková cena vyhledávání je tvořena součtem ceny cesty a ceny vyhledávání (v robotice se cena vyhledávání, tj. části prováděné před interakcí s prostředím, nazývá offline cena a cena cesty online cena).

UMĚLÁ INTELIGENCE 2 Řešení úloh pomocí agentů Měření výkonnosti řešení problémů (pokračování) Např. cesta z města A do města B: cena cesty může být úměrná počtu kilometrů plus náklady za opotřebení na různých typech silnic. Cena vyhledávání závisí na okolnostech: Ve statickém prostředí je nulová (nezávislost na čase). Je-li nějaká urgentní potřeba dojet do B, pak je prostředí semidynamické, protože delší uvažování o cestě cenu zvýší (můžeme uvažovat o přibližně lineární závislosti na době výběru, přinejmenším pro kratší časové úseky). Zde je tedy nutno dát dohromady kilometry a sekundy (cenu cesty a cenu vyhledávání, což není obecně snadný problém. Navíc pro velmi malé stavové prostory je snadné najít řešení s minimální cenou cesty. Pro rozsáhlé a komplikované problémy je nutno nalézt kompromis.

UMĚLÁ INTELIGENCE 2 Řešení úloh pomocí agentů Měření výkonnosti řešení problémů (pokračování) Výběr stavů a akcí Příklad: dojet z města Arad do města Bucharest, přičemž k dispozici je mapa cest: O r a d e a N e a m t Z e r i n d A r a d Ia s i S i b i u F a g a r a s V a s l u i T i m i s o a r a R i m n i c u V i l c e a L u g o j P i t e s t i M e h a d i a U r z ic e n i H i r s o v a D o b r e t a C r a i o v a B u c h a r e s t G iu r g i u E f o r i e

UMĚLÁ INTELIGENCE 2 Řešení úloh pomocí agentů Měření výkonnosti řešení problémů (pokračování) Odpovídající stavový prostor má 20 stavů (měst), každý stav je definován pouze polohou specifikovanou jako město. Počáteční stav je tedy v Aradu, test cíle je je to Bucharest?. Operátory odpovídají jízdě po silnicích mezi městy. Jedno možné řešení: Arad Sibiu Rimnicu Vilcea Pitesti Bucharest. (Je mnoho dalších řešení.) K rozhodnutí o tom, které řešení je lepší, je nutno znát, co měří funkce ceny: celkovou délku cesty nebo celkový čas cesty? Daná mapa neobsahuje ani jedno, takže se použije počet kroků (průjezdních silnic mezi městy): to je 3 přes Sibiu a Fagaras, tedy nejlepší řešení.

UMĚLÁ INTELIGENCE 2 Řešení úloh pomocí agentů Příklady problémů Obvykle je vhodné uvažovat o problémech her a o problémech reálných (které jsou opravdové, avšak obvykle mnohem obtížnější pro hledání řešení). U problémů her je ale snadnější vytvořit jasný a exaktní popis, takže mohou být snadněji použity pro srovnání různých metod apod. Problémy her 8-hlavolam:

UMĚLÁ INTELIGENCE 2 Řešení úloh pomocí agentů Příklady problémů (pokračování) Při řešení problému seřazení posuvných kosteček je vhodné použít určité triky, které řešení usnadní. Příklad: místo použití operátorů typu přesun kostky s číslem 4 na volnou pozici je mnohem rozumnější použít operátory typu volná pozice mění místo s kostkou nalevo, apod. (Vede to k menšímu počtu operátorů.) Lze vytvořit následující formulaci: Stavy: popis stavu specifikuje umístění každé z osmi kosteček na jednom z devíti polí (je užitečné zahrnout i pozici volného místa). Operátory: volné místo se pohybuje doleva, doprava, nahoru, dolů. Test cíle: stav se shoduje s cílovou konfigurací na obrázku. Cena cesty: každý krok stojí 1 (cesta stojí totéž, co je její délka).

UMĚLÁ INTELIGENCE 2 Řešení úloh pomocí agentů Příklady problémů (pokračování) 8-hlavolam patří ke skupině úloh přemísťování bloků, což obecně jsou NP-kompletní problémy, kde nelze očekávat, že bude nalezeno řešení lepší než pomocí vyhledávacího algoritmu. Principiálně stejná, avšak značně složitější úloha 15-hlavolam se spolu s 8-hlavolamem používá často k testování nových vyhledávacích algoritmů v umělé inteligenci.

UMĚLÁ INTELIGENCE 2 Řešení úloh pomocí agentů Příklady problémů (pokračování) Osm dam na šachovnici 8x8 (resp. N dam na šachovnici NxN) patří do skupiny tzv. dobře definovaných problémů.

UMĚLÁ INTELIGENCE 2 Řešení úloh pomocí agentů Algoritmy iterativního vylepšování Pro řadu dobře definovaných problémů (např. 8 dam, VLSI) platí, že popis stavu sám o sobě obsahuje veškerou informaci potřebnou pro řešení. Konkrétní cesta k řešení (zda je řešení dosaženo tak či jinak) nemusí být (a často není) relevantní. V těchto případech poskytují algoritmy s iterativním vylepšováním nejpraktičtější přístup. Např. lze začít se všemi 8 dámami na šachovnici nebo všemi vodiči v konkrétních spojovacích kanálech řešeného obvodu VLSI. Pak můžeme pohybovat dámami ve snaze redukovat počet vzájemného napadání, nebo přemísťovat vodič z jednoho kanálu do druhého ve snaze redukovat zahlcení. Ideou je začít s kompletní konfigurací a modifikacemi zlepšit kvalitu.

UMĚLÁ INTELIGENCE 2 Řešení úloh pomocí agentů Algoritmy iterativního vylepšování (pokračování) Pro představu lze uvažovat o stavech umístěných na povrchu nějaké krajiny. Výška povrchu v nějakém místě odpovídá vyhodnocovací funkci (evaluation) pro stav v daném bodě (current state): e v a l u a t i o n c u r r e n t sta te

UMĚLÁ INTELIGENCE 2 Řešení úloh pomocí agentů Algoritmy iterativního vylepšování (pokračování) Podle myšlenky iterativního vylepšování je vhodné se v krajině pohybovat a hledat nejvyšší vrcholek, tj. optimální řešení. Iterativní vylepšování obvykle udržuje údaje pouze o cestě aktuálního uzlu a nehledí dále než k bezprostředním sousedům daného stavu (hledání vrcholku hory v mlze zároveň s postižením zapomnětlivostí). Přes zmíněné nedostaky je tento postup v řadě velmi obtížných případů praktický typickou ukázkou použití zmíněného postupu jsou umělé neuronové sítě. Jednou ze skupin zmíněných algoritmů je tzv. slézání kopce (v originále hill-climbing, někdy pojmenované také jako gradient descent, tj. gradientní sestup). Další skupinou jsou algoritmy tzv. simulovaného žíhání (simmulated annealing). Zde se zmíníme o lezení po kopcích.

UMĚLÁ INTELIGENCE 2 Řešení úloh pomocí agentů Algoritmy iterativního vylepšování (pokračování) Slézání kopce (gradientní sestup) Algoritmus je symbolicky popsán následovně: function Hill-Climbing(problem) returns stav řešení inputs: problem // problém local variables: current // aktuální stav-uzel next // další stav-uzel current Make-Node(Initial-State[problem]) loop do next následný uzel s nejvyšší hodnotou if Value[next] < Value[current] then return current current next end

UMĚLÁ INTELIGENCE 2 Řešení úloh pomocí agentů Algoritmy iterativního vylepšování (pokračování) Ve smyčce se hledající pohybuje směrem ke vzrůstající hodnotě (do kopce). Algoritmus nepracuje s vyhledávacím stromem, takže datová struktura pro uzel musí pouze zaznamenávat stav a jeho hodnotu Value. Uvedený jednoduchý postup má tři známé nedostatky: Lokální maxima: po dosažení lokálního maxima se algoritmus zastaví, přestože globální maximum je mnohem lepší. Roviny: ve všech směrech poskytuje vyhodnocovací funkce stejnou hodnotu, takže postup krajinou vede k náhodné cestě. Hřebeny: hřeben má strmě klesající strany, takže se na něj lze dostat snadno, ale další stoupání hřebenu k vrcholku je velmi mírné a dochází k oscilaci hledání ze strany na stranu se zanedbatelným pokrokem v přibližování se k maximu.

UMĚLÁ INTELIGENCE 2 Řešení úloh pomocí agentů Algoritmy iterativního vylepšování (pokračování) V každém případě se algoritmus dostane do bodu, odkud se nelze dostat výš. V takových případech se lze pokusit znovu z jiného startovacího bodu k tomu se používá metoda zvaná slézání kopce s náhodným počátkem, takže dochází k sérii hledání z náhodně vybraných různých míst, a nejlepší dosažené řešení se uchovává. Ukončení vyhledávání pak závisí na tom, zda byl stanoven maximální předem stanovený počet těchto hledání nebo zda doposud dosažený nejlepší výsledek nebyl po nějaký počet iterací zlepšen. Pro dostatečný počet iterací může (ovšem i nemusí) hledání s náhodným restartem nakonec najít optimální řešení. Úspěch zmíněného typu hledání velmi silně závisí na tvaru povrchu, který je dán prostorem uvažovaných stavů. S malým počtem lokálních maxim je řešení nalezeno rychle. Realistické problémy však představují spíše podobu povrchu dikobraza.

UMĚLÁ INTELIGENCE 2 Řešení úloh pomocí agentů Algoritmy iterativního vylepšování (pokračování) Pro NP-kompletní problémy nelze dosáhnout lepší než exponenciální časové závislosti. Přesto jsou takto založené metody velmi často úspěšné proto, že poskytují velmi dobré řešení, i když to nemusí být zrovna optimum (a často není možné ani zjistit, jaké to optimum vlastně je). Proto se použije nějaký přijatelný výsledek dosažený po nepříliš velkém počtu iterací praktické hledisko hraje často výraznou roli (např. časové omezení na vyřešení úlohy).

UMĚLÁ INTELIGENCE 2 Řešení úloh pomocí agentů Aplikace pro problémy vyhovující omezením (CSP) Problémy vyhovující omezením (Constraint Satisfaction Problems) mohou být řešeny metodami iterativního zlepšování tak, že napřed jsou všem proměnným dosazeny nějaké hodnoty a pak za použití modifikačních operátorů se konfigurace pohybuje směrem k řešení. Modifikační operátory jednoduše přiřazují jiné hodnoty proměnným. Např. pro problém 8 dam je počátečním stavem 8 dam nějak rozestavených na šachovnici a modifikační operátor může dámou pohnout o políčko vedle. Tyto algoritmy se nazývají heuristické opravování, neboť napravují nekonsistence aktuální konfigurace. Při výběru nové hodnoty proměnné se (heuristicky) vybírají takové hodnoty, které jako výsledek dávají minimální konflikty s ostatními proměnnými tzv. heuristika min-konflikt:

UMĚLÁ INTELIGENCE 2 Řešení úloh pomocí agentů Aplikace pro problémy vyhovující omezením (CSP) (pokračování) 2 2 3 3 1 2 3 1 2 2 3 2 3 0 Problém je zde vyřešen ve dvou krocích. Čísla ve sloupci s dámou, jejíž postavení se vylepšuje (Dh8 v pravém dolním rohu), udávají, s kolika jinými dámami je v konfliktu. Dáma je přesunuta na pole h6 (prostřední diagram), kde má konflikt s Df6. Dáma z pole f6 našla nekonfliktní místo na poli f1 a protože další konflikty nejsou, úloha je vyřešena.

UMĚLÁ INTELIGENCE 2 Řešení úloh pomocí agentů Aplikace pro problémy vyhovující omezením (CSP) (pokračování) Překvapivě je metoda min-konflikt úspěšná pro mnoho problémů s omezením (CPS), např. problém s milionem dam má průměrné řešení v méně než 50 krocích. V nedávné době byla min-konflikt použita pro plánování pozorování vesmírného teleskopu Hubble (HST, Hubble Space Telescope), kde redukovala čas nutný pro naplánování týdenního pozorování ze tří týdnů na přibližně 10 minut (astronomové si mohou podávat žádosti o pozorování pomocí HST a velké množství velmi různých žádostí vyžaduje velmi dobrý rozvrh).

Metody informovaného hledání Podstatou metod informovaného vyhledávání je snaha zabránit hledacím algoritmùm, aby zabloudily. Neinformované hledání, diskutované døíve, je schopno najít øešení problémù systematickým generováním nových stavù a testováním, zda splòují cílové podmínky. Potíž je v tom, že ve vìtšinì pøípadù jsou vysoce neefektivní (èas, prostor, optimalita,...). Informované hledání je založeno na strategii, která využívá znalost specifickou pro daný problém, a nalezení cíle je mnohem efektivnìjší, vèetnì lepší možnosti dosáhnout optimálního øešení. Hledání prvního nejlepšího Doposud bylo obecnì možné, po formulaci problému v termínech stavù a operátorù, nìjakým zpùsobem urèitou znalost aplikovat pro hledání cíle. Avšak pokud je problém tzv. dobøe definovaný, volby jsou omezené. Napø. pøi použití algoritmu General-Search se dá znalost použít na jediném místì ve funkci zaøazování do fronty, kde se urèuje, který uzel má být expandován jako pøíští. Obvykle se znalost toho, jak urèit uzel, stanovuje vyhodnocovací funkcí (evaluation function), která vrací èíslo urèující míru (nebo nedostatek) potøeby expandovat uzel. Pokud jsou uzly uspoøádány tak, že ty s nejlepším ohodnocením jsou expandovány jako první, nazývá se tato strategie jako hledání prvního nejlepšího (best-first search). Ilustrace možné implementace této funkce je na následujícím obrázku. -59-

function Best-First-Search(problem, Eval-Fn) returns sekvence øešení inputs: problem // problém Eval-Fn // vyhodnocovací funkce Queuing-Fn funkce seøazující uzly pomocí Eval-Fn return General-Search(problem, Queuing-Fn) Pozn.: Název vyhledej první nejlepší ve skuteènosti znamená jen to, že získáme uzel, ketrý se zdá být nejlepším (jinak by cesta k øešení byla snadná pøímoèará, což obecnì neexistuje). Vzhledem k tomu, že funkce hledání nejlepšího uzlu není vševìdoucí, mùže být hledání samozøejmì svedeno z cesty. Správný název by tedy mìl být spíše hledání zdánlivì prvního nejlepšího. Obdobnì, jako existuje skupina algoritmù General-Search pro rùzné funkce zaøazování do fronty, je k dispozici skupina Best-First-Search algoritmù s rùznými vyhodnocovacími funkcemi. Tyto Best-First-Search algoritmy se snaží najít nenákladná øešení, typicky používají nìjakou odhadovací míru pro cenu øešení a snaží se ji minimalizovat. Jednou z již ukázaných možností byla cena cesty g k rozhodnutí, kterou cestu prodloužit (viz pøedchozí diskuse k tzv. dobøe definovaným problémùm a øešením). Míra g však pøímo nesmìøuje k cíli. Aby bylo hledání pøímo zamìøeno na cíl, musí použitá míra v sobì zahrnovat nìjaký odhad ceny cesty z nìjakého stavu do nejbližšího cílového stavu. Lze použít nejménì dva základní pøístupy k uvedenému øešení: pokus expandovat uzel nejbližší k cíli a pokus expandovat uzel na nejlevnìjší cestì k øešení. -60-

Laèné vyhledávání minimalizující odhadovanou cenu dosažení cíle Jednou z nejjednodušších strategií hledání prvního nejlepšího je minimalizace odhadované ceny dosažení cíle. Znamená to, že vždy je prvnì expandován uzel, který se zdá být nejblíže cíli. Pro vìtšinu (reálných) problémù lze náklady na dosažení cíle z nìjakého okamžitého stavu jen odhadnout, nikoliv urèit pøesnì. Funkce, která poèítá takové odhady nákladù, se nazývá heuristická funkce, obyèejnì oznaèovaná jako h: h(n) = odhadnutá cena nejlevnìjší cesty ze stavu v uzlu n do stavu cílového. Hledání prvního nejlepšího, které používá h k výbìru dalšího expandovaného uzlu, se nazývá laèné hledání (greedy search). Symbolický kód pro laèné hledání s danou funkcí h: function Greedy-Search(problem) returns øešení nebo neúspìch return Best-First-Search(problem, h) Formálnì vzato, h mùže být jakoukoliv funkcí. Jediným požadavkem je, aby h(n) = 0 jestliže n je cíl. Heuristické funkce jsou vždy specifické pro daný problém, tj. aplikaènì závislé. Pro pøíklad uvažme opìt cestování z mìsta Arad do Bucharest. Mapka je stejná jako døíve, avšak pøídavná informace je zde k dispozici ve formì kilometrové vzdálenosti tras mezi jednotlivými mìsty. Pro obdobné problémy je dobrou heuristickou funkcí pøímoèará vzdálenost v øadì k cíli, neboli SLD (Straight-Line Distance): h SLD(n) = pøímoèará øadová vzdálenost mezi n a cílovým místem. -61-

SLD h lze zde spoèítat jen tehdy, jsou-li známy souøadnice mìst v Rumunsku. Kromì toho zde platí, že cesta z A do B je pøevážnì vždy správným smìrem, takže tento druh pøídavné informace umožòuje heuristice pomoci v redukci ceny vyhledávání. Další obrázek ukazuje pokrok laèného vyhledávání pøi hledání cesty z Aradu do Bucharesti: -62-

Pomocí heuristiky SLD se expanduje jako první uzel z Aradu do Sibiu, protože je bližší (dle pøídavné informace) Bucharesti než Zerind nebo Timisoara (viz vzdálenosti rùzných mìst od Bucharesti). Dalším uzlem je ze stejného dùvodu Fagaras, a odtud už to je pøímo do Bucharesti (ta je cílem, protože její vzdálenost od sebe sama je nula). V tomto pøíkladì funguje heuristika skvìle, protože našla øešení bez expanse uzlù, které nejsou na cestì. Je však cesta optimální? Optimální není, protože nalezená cesta je o 32 km delší než cesta pøes Rimnicu Vilcea a Pitesti. Optimální cesta nebyla heuristikou nalezena, protože Faragas je Buchuresti blíže z hlediska SLD než Rimnicu Vilcea, proto cesta pøes Faragas byla expandována jako první. Ukázaná heuristická strategie preferuje nejvìtší nalezený kus cesty k cíli vzhledem k tomu, že tento velký kus odebere nejvìtší èást ze zbývající cesty do cíle (Fagaras Bucharest = 211 km, Rimnicu Vilcea Pitesti Bucharest = 97+101 km, a 97 odebere ménì ze zbytku než 211), aniž by se starala o to, zda je to nejlepší vzhledem k délce cesty proto je název hledání laèné, hltavé (greedy). Pøesto praxe ukazuje, že laènost pøináší velmi dobré výsledky (i když se jedná o jeden ze sedmi smrtelných høíchù). Laènost pøináší jako positivum rychlé nalezení cíle, i když ne vždy optimální. Optimalita by vyžadovala dùkladnìjší analýzu z hlediska uvažování o celé dlouhé vzdálenosti, nikoliv pouze bezprostøední nejlepší výbìr. Laèné hledání je citlivé na chybný poèátek. Uvažme problém cesty z Iasi do Fagarasu: heuristika nabízí první expansi uzlu Neamt, což je ovšem slepá ulièka. Øešením je expanze Vaslui, což je ale z hlediska heuristiky do cíle dále. Z Vaslui pak do Urziceni, Bucharesti a Fagarasu, což z hlediska heuristiky jsou zbyteèné expanse uzlù, pokud je okamžitý stav v Neamtu. Navíc, pøi zanedbání opatrnosti vzhledem k detekci opakovaných stavù, mùže dojít k nekoneèným oscilacím mezi Neamtem a Iasi. Laèné hledání pøipomíná hledání prvnì do hloubky v tom, že preferuje jednu cestu do cíle, ale pøi objevení slepé ulièky se vrací zpìt. Rovnìž má stejné neduhy: není optimální a není kompletní (mùže se vydat na nekoneènou cestu a nikdy se nevrátit k vyzkoušení odlišné možnosti). Nejhorší èasová složitost m je O(b ), kde m je max. hloubka hledání. Stejná je i prostorová složitost (uzly jsou uchovávány v pamìti). Podstatná redukce složitosti vyžaduje kvalitní heuristiku h a také závisí na konkrétním problému. -63-

Minimalizace celkové ceny cesty: hledání A * Laèné hledání h(n) má uvedené pøednosti a nedostatky. Uniformnì-cenové hledání g(n) minimalizuje cenu cesty do daného okamžiku; je optimální a kompletní, ale mùže být velmi neefektivní. Kombinací výhod obou strategií lze získat alternativní funkci, pøièemž postaèuje prostì jejich hodnoty seèíst: f(n) = g(n) + h(n). Protože g(n) dává cenu cesty od startu do n a h(n) odhaduje cenu nejlevnìjší cesty z n do cíle, pak platí f(n) = odhadnutá cena nejlevnìjšího øešení pøes n. Pøi hledání nejlevnìjšího øešení je tedy rozumné prvnì zkusit uzel s nejmenší hodnotou f. Existuje dokonce dùkaz, že tato strategie je kompletní a optimální za pøedpokladu urèitého omezení pro h: Omezením je výbìr funkce h takové, která nikdy nepøecení cenu dosažení cíle. Taková funkce h se nazývá pøijatelná heuristika. Pøijatelné heuristiky jsou v principu optimistické, protože pøedpokládají, že cena øešení problému je menší než je ve skuteènosti. Tento pøedpoklad se pøenáší do funkce f: Je-li h pøijatelná, pak f(n) nikdy nepøecení skuteènou cestu nejlepšího øešení pøes n (pøi pøecenìní ceny by pak cesta nebyla vybrána, i když je správným øešením). Hledání prvního nejlepšího s použitím f jako vyhodnocovací funkce a h jako * pøijatelné funkce se nazývá hledání A. Symbolický zápis funkce: * function A -Search(problem) returns øešení nebo neúspìch return Best-First-Search(problem, g+h) Pøíkladem pøijatelné heuristiky je výše uvedená h SLD (nejkratší cesta mezi dvìma body je pøímá cesta úseèka). -64-

* Obrázek ukazuje nìkolik prvních krokù hledání A pøi použití heuristiky h SLD. * Za povšimnutí stojí, že A preferuje expansi z Rimnicu Vilcea pøed expansí z Fagarasu. Pøestože Fagaras je blíže Bucharesti, cesta do Fagarasu není tak efektivní v pøiblížení se Bucharesti jako cesta do Rimnicu Vilcea (uzly mají oznaèení f = g+h, pøièemž hodnoty h jsou SLD vzdálenosti do Bucharesti z døíve uvedeného obrázku): Vlastnosti hledání A * Obrázek hledání pomocí A demonstruje jednu základní vìc: podél libovolné * cesty z koøene, f-cena nikdy neklesá. To není náhodou a heuristiky, které tuto vlastnost nenarušují, se nazývají monotónní (v r. 1984 bylo dokázáno, že heuristika je monotónní tehdy a jen tehdy, pokud splòuje pravidlo tzv. trojúhelníkové nerovnosti pøímoèaré vzdálenosti tuto podmínku samozøejmì splòují, takže SLD je monotónní). -65-

Pokud by heuristika nebyla monotónní, lze ji upravit na monotónnost: Uvažujme dva uzly n a n', kde n je rodièovský uzel n'. Dále nech napø. g(n) = 3 a h(n) = 4, takže f(n) = g(n)+h(n) = 7. Víme tedy, že skuteèná cena cesty k øešení je nejménì 7. Pøedpokládejme ještì, že g(n') = 4 a h(n') = 2, takže f(n') = g(n')+h(n') = 6. Z uvedeného je zøejmé, že se jedná o nemonotónní heuristiku h. Je ale zøejmé, že libovolná cesta pøes n' je také cestou pøes n, tedy hodnota 6 je bezvýznamná, nebo již víme, že skuteèná cena musí být nejménì 7. Musíme tedy kontrolovat pøi generování nového uzlu, zda jeho f- cena je menší než f-cena jeho rodièe; pokud je cena u potomka menší, použije se prostì cena rodièe: f(n') = max[f(n), g(n')+h(n')]. Takto se ignorují hodnoty, které se mohou vyskytnout s nemonotónními heuristikami a uvedený stav se nazývá rovnice max-cesty (pathmax equation). Pokud vztah max-cesty použijeme, pak f bude vždy neklesající podél každé cesty z koøene, za pøedpokladu pøijatelnosti h. Z toho vyplývá další vlastnost * A, tj. pokud f nikdy cestou z koøene neklesá, lze ve stavovém prostoru vytvoøit tzv. obrysy: -66-

Na mapce (stavovém prostoru) jsou obrysy pro f = 380, f =400 a f = 420, kde Arad je poèáteèní stav. Uzly uvnitø daného obrysu mají f-ceny nižší než je hodnota daného obrysu. * A expanduje uzly s nejnižší f, tedy hledání postupuje koncentricky v pásmech podle narùstání f. * Pøi hledání s uniformní cenou (A -hledání za použití h = 0) jsou pásma cirkulární kolem poèáteèního stavu. Se vzrùstající pøesností heuristiky se pásma zaèínají protahovat smìrem k cílovému stavu a zužují se kolem optimální cesty. * * Nech f je cena optimální cesty k øešení. Pak lze o A øíci následující: * *! A expanduje všechny uzly, pro nìž platí f(n) < f. *! A mùže dále expandovat nìkteré uzly pøímo na cílovém obrysu, * kde platí f(n) = f, pøed výbìrem cílového uzlu. Intuitivnì je zøejmé, že první øešení musí být optimální, protože uzly ve všech následujících obrysech mají vyšší f-cenu a tudíž vyšší g-cenu (dùvodem je, že všechny cílové stavy mají h(n) = 0, takže zdražení zpùsobí g). * Dále je intuitivnì zøejmé, že A -hledání je kompletní. Pøidáváním pásem s rostoucími hodnotami f se nakonec dostaneme do pásma, kde f je rovno cenì cesty do cílového stavu. Kromì uvedeného stojí za zmínku, že mezi optimálními algoritmy tohoto typu tj. algoritmy, které prodlužují vyhledávací cesty z koøene je A * optimálnì úèinný pro jakoukoliv danou heuristickou funkci: Libovolný algoritmus, který neexpanduje všechny uzly v pásmech mezi koøenovým a cílovým pásmem, musí poèítat s rizikem opominutí optimálního øešení (rozsáhlý dùkaz byl podán v r. 1985). -67-

Dùkaz optimality A * * Nech G je optimální cílový stav s cenou cesty f. Nech G 2 je suboptimální cílové øešení, tj. cílový stav s cenou cesty g(g 2) > f *. Uvažujme situaci, kdy A * vybral G 2 z fronty. Protože G 2 je cílovým stavem, ukonèí hledání se suboptimálním øešením (viz obrázek uzel n je uzel na cestì k optimálnímu øešení G). Ukážeme, že k uvedenému závìru suboptimálnímu výbìru nemùže dojít. Pøedpokládejme, že uzel n je v daném okamžiku listem na optimální cestì do G (nìjaký takový uzel musí existovat, ledaže by již cesta byla zcela expandována zde by ovšem bylo vráceno G). Protože h je pøijatelná heuristika, pak: * f f(n). Dále, pokud n není vybrán pro expansi pøes G 2, platí: f(n) f(g 2). Z toho plyne: * f f(g 2). -68-

Protože G 2 je cílovým stavem, platí: h(g 2) = 0, z èehož zjevnì plyne f(g 2) = g(g 2). Tím bylo s použitím pøedpokladù dokázáno, že * f g(g 2). * To je ale v rozporu s pøedpokladem, že G 2 je suboptimální, takže A nikdy nevybere pro expansi suboptimální cíl. Protože vrací jedinì øešení vybrané pro * expansi, musí A být optimálním algoritmem. Dùkaz úplnosti A * * A expanduje uzly v poøadí vzrùstající f, takže nakonec musí dojít k expansi k dosažení cílového stavu. To platí s výjimkou pøípadu, kdy je nekoneènì * mnoho uzlù s f(n) < f. Dùvod k existenci nekoneèného poètu uzlù je buï: a) existuje uzel s nekoneènì velkým poètem vìtvení, nebo b) existuje cesta s koneènou cenou, ale s nekoneèným poètem uzlù podél ní (starý paradox typu * zajíc nikdy nedožene želvu ). Z toho plyne, že A je kompletní v lokálnì koneèných grafech (tj. grafech s koneèným faktorem vìtvení) za pøedpokladu, že existuje nìjaká kladná konstanta taková, že každý operátor stojí nejménì. Složitost A * * Z hlediska kompletnosti, optimálnosti a optimální efektivnosti A není odpovìdí na všechny požadavky hledání pro vìtšinu problémù je totiž poèet cílových uzlù uvnitø obrysu, vymezujícího cílový prostor vyhledávání, stále exponenciální vzhledem k délce øešení. Komplikovaný dùkaz byl však vytvoøen pro to, že exponenciální nárùst se objevuje, pokud ovšem chyba heuristické funkce neroste rychleji než logaritmus skuteèné ceny cesty. Podmínka pro sub-exponenciální nárùst je: * * h(n) h (n) O(log h (n)), kde h (n) je skuteèná cena cesty z n do cíle. Pozn.: pro A není rozhodující èas, * * nýbrž pamì, protože udržuje v pamìti všechny generované uzly. -69-

Heuristické funkce Hlavolam s posouváním osmi ètvereèkù v devíti polích patøí k nejstarším problémùm s heuristickým vyhledáváním: Typické øešení má zhruba 20 krokù (závisí to na poèáteèním stavu). Faktor vìtvení je cca 3 (je-li prázdné pole uprostøed, pak b = 4; v rohu je b = 2; podél hran je b = 3). Prohledávání vyèerpávající všechny možnosti do hloubky 20 20 9 zkoumá pøibližnì 3 = 3.5 10 stavù. Pokud by se dùslednì testovaly stavy opakování, lze redukovat poèet stavù radikálnì, nebo existuje pouze 9! = 362 880 rùzných rozmístìní pro 9 polí. To je stále velmi mnoho, proto je vhodné najít dobrou heuristiku. Pokud je cílem nalezení nejkratšího øešení, je zapotøebí mít heuristickou funkci, která nikdy nepøecení poèet krokù do cíle. Dvì možnosti:! h 1 = poèet ètvereèkù na chybných pozicích. Na obrázku je umístìno 7 z 8 chybnì, takže poèáteèní stav má h 1 = 7; je to pøijatelná heuristika, protože každý chybnì umístìný ètvereèek musí být alespoò jednou posunut. -70-

! h 2 = souèet vzdáleností ètvereèkù od jejich koncových pozicí. Ètvereèky se nemohou pohybovat diagonálnì, takže se seètou vzdálenosti vertikální a horizontální (tento typ výpoètu vzdáleností je znám jako vzdálenost mìstských blokù nebo manhattanská vzdálenost). h 2 je rovnìž pøijatelná, protože jakýkoliv posun pohne pouze jedním ètvereèkem o jeden krok smìrem k cíli. Ètvereèky 1 až 8 z poèáteèního stavu na obrázku mají celkovou délku manhattanské cesty h = 2 + 3 + 3 + 2 + 4 + 2 + 0 + 2 = 18. 2 Vliv pøesnosti heuristiky na efektivitu Jednou možností pro stanovení kvality heuristiky je efektivní faktor vìtvení, * * oznaèovaný b. Je-li N celkový poèet uzlù expandovaných pomocí A a * hloubka øešení je d, pak b je faktor vìtvení, který by mìl rovnomìrnì vyvážený strom hloubky d, aby obsahoval N uzlù: * * 2 * d N = 1 + b + (b ) +... + (b ). * * Napø. když A najde øešení v hloubce 5 za použití 52 uzlù, pak b = 1.91. * Dobrá heuristika by se mìla blížit b = 1. Pro 100 náhodnì vygenerovaných pozic hlavolamu s 8 ètvereèky (a za použití iterativního hloubkového hledání * Iterative-Deepening-Search IDS s A, h 1 a h 2) lze získat srovnání pro prùmìrné hodnoty poètu expandovaných uzlù: d cena hledání IDS A(h) 1 A (h 2) efektivní faktor vìtvení A(h) A (h ) * * IDS 1 2 2 10 6 6 2.45 1.79 1.79 4 112 13 12 2.87 1.48 1.45 6 680 20 18 2.73 1.34 1.30 8 6384 39 25 2.80 1.33 1.24 10 47127 93 39 2.79 1.38 1.22 12 364404 227 73 2.78 1.42 1.24 14 3473941 539 113 2.83 1.44 1.23 16 1301 211 1.45 1.25 18 3056 363 1.46 1.26 20 7276 676 1.47 1.27 22 18094 1219 1.48 1.28 24 39135 1641 1.48 1.26-71-

Otázkou mùže být, zda h 2 je vždy lepší než h 1. Protože z definic obou heuristik platí pro libovolný uzel, že h 2(n) h 1(n), pak odpovìï zní ano, tedy h2 * dominuje h 1. Dominace je pøevedena do efektivnosti pøímoèaøe, protože A s h expanduje prùmìrnì ménì uzlù než s h. Napø. pro již uvedený problém: 2 1 * Bylo již døíve uvedeno, že expandovány budou uzly, pro nìž platí f(n) < f. To * je totéž jako tvrzení, že budou expandovány uzly s h(n) < f - g(n) vzhledem k definici f(n). Protože h 2 je pøinejmenším tak velká jako h 1 pro všechny uzly, * pak každý uzel expandovaný pomocí hledání A s h 2 bude rovnìž expandován s h 1 a h 1 mùže ještì zpùsobit expanzi jiných uzlù. Z toho plyne urèitý závìr èi doporuèení: Je lépe použít heuristiku s vyššími hodnotami, nebo nedojde k pøecenìní (koneèný výsledek jednoduše mùže být takový nebo lepší). Hledání vhodné heuristiky vyžaduje velmi èasto experimentování, napø. náhodné generování poèáteèních konfigurací, z nichž se vyzkouší vyhledávání s rùznými možnými heuristikami, a výsledná statistika doporuèí nejvhodnìjší z nich. Vzhledem k zavedení pravdìpodobnosti výbìru ovšem dochází ke ztrátì záruky na pøijatelnost heuristiky ve výše zmínìném smyslu, výhodou je šance expandovat ménì uzlù, tj. levnìjší øešení. Pomìrnì èasto je možné nalézt vlastnosti nutné pro øešení, což mùže pøispìt k heuristické vyhodnocovací funkci (v šachu k dosažení matu je zapotøebí mít urèitý poèet urèitých figur apod.). -72-

Algoritmy iterativního vylepšování Pro øadu tzv. dobøe definovaných problémù (8 dam, VLSI) platí, že popis stavu sám o sobì obsahuje veškerou informaci potøebnou pro øešení. Konkrétní cesta k øešení (zda je øešení dosaženo tak èi jinak) nemusí být (a èasto není) relevantní. V tìchto pøípadech poskytují algoritmy s iterativním vylepšováním nejpraktiètìjší pøístup. Napø. lze zaèít se všemi 8 dámami na šachovnici nebo všemi vodièi v konkrétních spojovacích kanálech øešeného obvodu. Pak mùžeme pohybovat dámami ve snaze redukovat poèet vzájemného napadání, nebo pøemís ovat vodiè z jednoho kanálu do druhého ve snaze redukovat zahlcení. Obecnou ideou je zaèít s kompletní konfigurací a modifikacemi zlepšit kvalitu. Pro pøedstavu lze uvažovat o stavech umístìných na povrchu nìjaké krajiny. Výška povrchu v nìjakém místì odpovídá vyhodnocovací funkci (evaluation) pro stav v daném bodì (current state): -73-

Podle myšlenky iterativního vylepšování je vhodné se v krajinì pohybovat a hledat nejvyšší vrcholek, tj. optimální øešení. Iterativní vylepšování obvykle udržuje údaje pouze o cestì aktuálního uzlu a nehledí dále než k bezprostøedním sousedùm daného stavu (hledání vrcholku hory v mlze zároveò s postižením zapomnìtlivostí). Pøes zmínìné nedostaky je tento postup v øadì velmi obtížných pøípadù praktický typickou ukázkou použití zmínìného postupu jsou umìlé neuronové sítì. Jednou ze skupin zmínìných algoritmù je tzv. slézání kopce (v originále hillclimbing, nìkdy pojmenované také jako gradient descent, tj. gradientní sestup). Další skupinou jsou algoritmy tzv. simulovaného žíhání (simmulated annealing). Zde se zmíníme o lezení po kopcích. Slézání kopce (gradientní sestup) Algoritmus je symbolicky popsán následovnì: function Hill-Climbing(problem) returns stav øešení inputs: problem // problém local variables: current // aktuální stav-uzel next // další stav-uzel current Make-Node(Initial-State[problem]) loop do next následný uzel s nejvyšší hodnotou if Value[next] < Value[current] then return current current next end Ve smyèce se hledající jednoduše pohybuje smìrem ke vzrùstající hodnotì (do kopce). Algoritmus nepracuje s vyhledávacím stromem, takže datová struktura pro uzel musí pouze zaznamenávat stav a jeho hodnotu Value. Je-li na cestì vzhùru nìkolik ekvivalentnì nejlepších uzlù, pak se obvykle vybírá náhodnì jeden z nich. -74-

Uvedený jednoduchý postup má tøi známé nedostatky: Lokální maxima: po dosažení lokálního maxima se algoritmus zastaví, pøestože globální maximum (neznámo kde v krajinì je) je mnohem lepší. Roviny: ve všech smìrech poskytuje vyhodnocovací funkce stejnou hodnotu, takže postup krajinou vede k náhodné cestì. Høebeny: høeben má strmì klesající strany, takže se na nìj lze dostat snadno, ale další stoupání høebenu k vrcholku je velmi mírné a dochází k oscilaci hledání ze strany na stranu se zanedbatelným pokrokem v pøibližování se k maximu. V každém pøípadì se algoritmus dostane do bodu, odkud se nelze dostat výš. V takových pøípadech se lze pokusit znovu z jiného startovacího bodu k tomu se používá metoda zvaná slézání kopce s náhodným poèátkem, takže dochází k sérii hledání z náhodnì vybraných rùzných míst, a nejlepší dosažené øešení se uchovává. Ukonèení vyhledávání pak závisí na tom, zda byl stanoven maximální pøedem stanovený poèet tìchto hledání nebo zda doposud dosažený nejlepší výsledek nebyl po nìjaký poèet iterací zlepšen. Pro dostateèný poèet iterací mùže (ovšem i nemusí) hledání s náhodným restartem nakonec najít optimální øešení. Úspìch zmínìného typu hledání velmi silnì závisí na tvaru povrchu, který je dán prostorem uvažovaných stavù. S malým poètem lokálních maxim je øešení nalezeno rychle. Realistické problémy však pøedstavují spíše podobu povrchu dikobraza. Pro NP-kompletní problémy nelze dosáhnout lepší než exponenciální èasové závislosti. Pøesto jsou takto založené metody velmi èasto úspìšné proto, že poskytují velmi dobré øešení, i když to nemusí být zrovna optimum (a èasto není možné ani zjistit, jaké to optimum vlastnì je). Proto se použije pøijatelný výsledek dosažený po nepøíliš velkém poètu iterací praktické hledisko hraje èasto výraznou roli. -75-

Aplikace pro problémy vyhovující omezením (CSP) Problémy vyhovující omezením (Constraint Satisfaction Problems) mohou být øešeny metodami iterativního zlepšování tak, že napøed jsou všem promìnným dosazeny nìjaké hodnoty a pak za použití modifikaèních operátorù se konfigurace pohybuje smìrem k øešení. Modifikaèní operátory jednoduše pøiøazují jiné hodnoty promìnným. Napø. pro problém 8 dam je poèáteèním stavem 8 dam nìjak rozestavených na šachovnici a modifikaèní operátor mùže dámou pohnout o políèko vedle. Tyto algoritmy se nazývají heuristické opravování, nebo napravují nekonsistence aktuální konfigurace. Pøi výbìru nové hodnoty promìnné se (heuristicky) vybírají takové hodnoty, které jako výsledek dávají minimální konflikty s ostatními promìnnými tzv. heuristika min-konflikt: Problém je zde vyøešen ve dvou krocích. Èísla ve sloupci s dámou, jejíž postavení se vylepšuje (Dh1 v pravém dolním rohu), udávají, s kolika jinými dámami je v konfliktu. Dáma je pøesunuta na pole h6 (prostøední diagram), kde má konflikt s Df6. Dáma z pole f6 našla nekonfliktní místo na poli f1 a protože další konflikty nejsou, úloha je vyøešena. Pøekvapivì je metoda minkonflikt úspìšná pro mnoho problémù s omezením (CPS), napø. problém s milionem dam má prùmìrné øešení v ménì než 50 krocích. V nedávné dobì byla min-konflikt použita pro plánování pozorování vesmírného teleskopu Hubble (HST, Hubble Space Telescope), kde redukovala èas nutný pro naplánování týdenního pozorování ze tøí týdnù na pøibližnì 10 minut (astronomové si mohou podávat žádosti o pozorování pomocí HST a velké množství velmi rùzných žádostí vyžaduje velmi dobrý rozvrh). -76-

Komunikace agentů Komunikací se zde rozumí úmyslná výměna informací pomocí vytváření a příjmu znamení, odvozených ze sdíleného systému konvenčních znamení. Lidé používají omezené množství konvenčních znamení (úsměv, potřásání rukou...) ve srovnání se zvířaty, na druhé straně vyvinuli komplexní, strukturovaný systém znamení, známý pod názvem jazyk, který jim umožňuje komunikovat o většině věcí, které znají o světě (prostředí, v němž se nacházejí). Přestože šimpanzi, delfíni a jiní savci používají slovník se stovkami znamení a mají schopnost je řetězit, lidé jsou jediní tvorové, kteří spolehlivě komunikují pomocí neomezeného množství kvalitativně odlišných zpráv. Turingův test schopnosti umělé inteligence je založen právě na použití jazyka. Komunikace jako akce Agenti mohou mít jako jednu z dostupných akcí také schopnost produkovat jazyk. Tato činnost se nazývá akce řeči (komunikace), přičemž pojem řeč má význam volná řeč, nikoliv jen mluvení, takže k akci řeči se také počítá např. psaní, znaková řeč, apod. Z tohoto hlediska také pojem slovo má širší význam. Důvodem pro to, aby agent komunikoval při obvyklé činnosti je potřeba spolupráce s jinými agenty při řešení nějakého problému. Skupina agentů pak může kolektivně nebo individuálně získávat nějaké výhody, pokud může dělat např. něco z následujících činností:! Informovat jeden druhého o části prozkoumaného světa, takže mají k dalšímu zkoumání menší část světa.! Dotazovat se na konkrétní vlastnosti světa.! Odpovídat na dotazy.! Žádat (přikazovat) jiné agenty, aby vykonali nějakou akci.! Slibovat provedení nějaké akce nebo nabízet podmínky.! Potvrzovat žádosti a nabídky.! Sdílet dojmy a zkušenosti (získané znalosti) s jinými. 124

Obtížné je pro agenta určit, kdy provést akci komunikace (aby komunikace byla opravdu zapotřebí) a jaká komunikační akce se má udělat. Z určitého hlediska se jedná o plánovací problém agent si může vybrat ze souboru možných akcí a nějak musí otestovat, kterou akci vybrat k dosažení cíle (předání informace jinému agentovi). Všechny plánovací potíže se projevují i při výběru komunikační akce. Není např. možné plánovat konversaci na úrovni individuálních pohybů úst a jazyka, takže je nutné použít několik úrovní hierarchické abstrakce přinejmenším slova, fráze a věty. Dalším problémem je nedeterminismus: příkaz/žádost jednoho agenta může nebo nemusí být proveden/provedena, takže je zapotřebí mít k dispozici podmíněné plány. Konversace se nedá naplánovat od začátku do konce, pouze je možné zkonstruovat obecný plán pro konversaci, vygenerovat první větu, pak počkat na vjem odpovědi, a reagovat na odpověď. Problém porozumění akce řeči je podobný jiným problémům porozumění (porozumění obrazovému vjemu, medicínské diagnóze, apod.). K dispozici je soubor nejednoznačných vstupů, z nichž je nutno zpětně vypracovat rozlišení stavu světa, který vstup vyprodukoval. Část problému porozumění je závislá na jazyku je nutno znát syntaxi a sémantiku jazyka k pochopení důvodu, proč jiný agent vykonal konkrétní komunikační akci. Problém porozumění zahrnuje i obecnější problém rozpoznání plánu. Pozorování agenta, který se otáčí a pohybuje směrem ke zlatu, může vést k vytvoření závěru, že agent má jako cíl získat zlato. Podobný druh vytváření mentálního modelu se vyžaduje také v situacích, kdy se určitý agent otočí směrem ke zlatu a řekne: Seberu to. I když v okolí budou také jiné objekty, mělo by být jasné, že to zde znamená zlato. Část problému porozumění lze řešit pomocí logického usuzování (logické implikace jsou vhodným způsobem pro popis možností kombinovat slova a fráze na delší fráze). Jiná část problému se dá řešit technikami nejistého (přibližného) usuzování, např. fuzzy logikou aj. Obvykle existuje několik stavů světa, které všechny vedou k téže komunikační akci, takže příjemce zprávy musí rozhodnout, které stavy jsou pravděpodobnější. Uvedené záležitosti jsou spojeny s tzv. vědou zabývající se přirozenými záležitostmi např. porozumění přirozenému jazyku a jeho zpracování. 125

Podstata jazyka V zásadě lze odlišovat formální jazyky např. C++ a logika prvního řádu jsou rigidně definovány a přirozené jazyky např. čínština, angličtina, čeština, používané lidmi ke vzájemné komunikaci. Umělá inteligence využívá pro formální jazyky notaci v tzv. Backus-Naurově formě (BNF). Formální jazyk je soubor řetězců složených ze sekvencí symbolů, které jsou převzaty z konečné množiny terminálních symbolů. Určitou potíží při práci s formálními a přirozenými jazyky je velké množství různých formalismů a notací pro zápis gramatik většina je však založena na myšlence frázové struktury, tj. řetězce jsou složeny z podřetězců zvaných fráze z různých kategorií (podstatná jména noun phrases NP, slovesa verb phrases VP, atd.). Fráze jsou vhodným prostředkem, jemuž lze přiřazovat významy (sémantika). Kategorizace frází napomáhá popsat přípustné řetězce jazyka. Lze říci, že jakákoliv fráze podst. jména NP může být kombinována (při dodržení určitých podmínek) se slovesnou frází VP pro vytvoření fráze z kategorie věta (sentence S). Bez těchto pojmů a pravidel by bylo velmi obtížné (nebo i nemožné) vysvětlit, proč např. v zásadě lze odlišovat formální jazyky a přirozené jazyky je věta a např. odlišovat v a jazyky jazyky formální lze přirozené věta není. V angličtině např. the wumpus is dead je věta a wumpus the dead is věta není. V různých jazycích existují ovšem různé gramatiky také vlivem odlišné podstaty (v angličtině je slovosled vázán mnohem přísnějšími pravidly než v češtině, takže přehození slov v češtině nemusí zrušit správnost kategorie věty, v angličtině však ano). Gramatické kategorie a pravidla jsou součástí jazykovědy. Kategorie typu NP, VP a S jsou neterminální symboly. V notaci BNF se přepisovací pravidla skládají z jednoho neterminálního symbolu na levé straně a sekvence terminálů či neterminálů na pravé straně. Význam pravidla typu S v NP VP je v tom, že dává možnost vzít jakoukoliv frázi NP, připojit ji k jakékoliv frázi VP a výsledkem je fráze typu S. 126

Komponenty komunikace Typická komunikační episoda, kdy řečník (speaker) S chce sdělit proposici P naslouchajícímu (hearer) H pomocí slov (words) W, se skládá ze sedmi procesů. Tři procesy souvisejí s řečníkem: Intence: Generace: Syntéza: S chce, aby H uvěřil P (typicky S sám věří P). S vybere slova W (protože vyjadřují význam P). S vysloví slova W (a obvykle je adresuje na H). Čtyři procesy souvisejí s naslouchajícím: Percepce: H vnímá W (ideálně W = W, ale je možné nějaké zkreslení vjemu apod.). Analýza: H inferuje, že W má možné významy P 1,..., P n (slova a fráze mohou mít několik významů). Desambiguace: H inferuje, že S měl v úmyslu sdělit P i (ideálně P i = P, ale je možná chybná interpretace vjemu). Inkorporace: H se rozhodne uvěřit (přijmout) P i (nebo P i odmítne, pokud je mimo to, čemu již věří). 127

Předchozí obrázek ukazuje sedm procesů v kontextu příkladu (je použit příklad anglické fráze The wumpus is dead, přičemž wumpus byla kdysi jedna z prvních počítačových her, kde agent prohledává jeskyni skládající se z částí propojených chodbami samotný wumpus byla bestie, skrývající se v některé části a sežrala každého, kdo k ní vlezl; navíc v některých částech byly bezedné šachty, do nichž bylo možno se propadnout, ovšem wumpus byl tak velký, že se do šachty nevešel, takže se nemohl propadnout; jediným zmírněním potíží byla občasná možnost nalézt hroudu zlata). Intence: Generace: Syntéza: Percepce: Analýza: Z nějakého důvodu chce řečník sdělit něco potřebného naslouchajícímu zde řečník S má důvod informovat H, že wupmus již dále není živ. S použije znalost jazyka k rozhodnutí, co a jak říci o daném faktu úmrtí wumpuse. Výběr slov a jejich uspořádání je zatím větší problém než inverse, tj. rozumět sdělení, protože dosud bylo věnováno větší úsilí pochopit sdělení než vygenerovat sdělení ve srozumitelné formě. Většina systémů umělé inteligence syntetizuje tištěný výstup, což je v podstatě triviální úloha. Syntéza řeči (aby zněla jako od člověka) nyní patří k populárním výzkumným úkolům. Na obrázku agent syntetizuje řeč pomocí řetězce zvuků přepsaného do jednoho z možných typů fonetické abecedy pro angličtinu: [thaxwahmpahsihzdeyd]. Detaily zde nejsou důležité; podstatné je, že syntetizované zvuky jsou něco odlišného od toho, co agent generuje. Fonetický řetězec je navíc nepřerušován mezerami, aby realizoval skutečnou rychlou řeč. Je-li médiem řeč, pak krok percepce se nazývá rozpoznání řeči; je-li médiem tisk, pak jde o optické rozpoznání znaků. Obě oblasti se již staly běžnými počítačovými záležitostmi. Zde předpokládáme perfektní schopnost H přijmout a dekódovat slova ze zvuku. Analýza zde má dvě hlavní části: syntaktickou interpretaci (rozbor) a sémantickou interpretaci. Sémantická interpretace zahrnuje jak porozumění významu slov, tak i pragmatickou interpretaci (znalost o současné situaci). Rozbor znamená proces přiřazování části jazyka (podstat- 128

né jméno, sloveso, atd.) každému ze slov ve větě a seskupením slov do frází. Jednou z možností je vytvoření stromu rozboru (viz předchozí obrázek). V tomto stromu vnitřní uzly representují fráze, hrany použití gramatických pravidel, a listy představují slova. Sémantická interpretace je proces získání významu výroku vyjádřeného v nějakém representačním jazyku. Na předchozím obrázku jsou dvě možné sémantické interpretace: wumpus je mrtev a wumpus je unaven (viz různé významy anglického slova dead). Výroky s několika možnými interpretacemi jsou tzv. nejednoznačné. Zde je použita logika pro representaci, ale používají se i jiné representace. Pragmatická interpretace je část sémantické interpretace, která bere do úvahy okamžitý stav zde je konstanta Now (nyní) nahrazena jinou, S 3, pro danou situaci. Desambiguace: Většina řečníků nemusí být úmyslně nejednoznačná, ale mnoho výroků přirozeného jazyka má několik legálních interpretací. Komunikace funguje proto, že H odhaduje, která interpretace odpovídá sdělení přijímanému od S. Desambiguace je založena na pravděpodobnosti a přibližném usuzování (vliv nejistoty). Analýza vytváří možné interpretace; desambiguace vybírá tu nejlepší. Inkorporace: Zcela naivní agent může věřit všemu, co je mu sdělováno, ale důmyslnější agent zachází se slovy W a odvozenou interpretací P i jako s přídavnými částmi uvažovanými spolu s dalšími. Předpokladem komunikace je, že a) agenti používají stejný jazyk, b) sdílejí stejný kontext a c) jsou alespoň částečně racionální (aby správně reagovali na vjem řeči). 129

Dva modely komunikace K současným nejvýznamnějším směrům studia komunikace agentů patří způsoby změny representace vnitřních názorů agentů na slova, a naopak změny přijímaných slov na vnitřní názory agentů, kde vnitřní názor znamená znalost uloženou v nějaké vhodné formě v agentově znalostní bázi (znalostní bází se zde opět rozumí soubor representací faktů o světě znalostní báze poskytuje odpovědi na dotazy např. přes dříve zmíněné funkce Tell a Ask v kapitole Plánování). Dva z existujících modelů jsou následující: 1. Kódované zprávy: řečník S má na mysli určitou proposici P a zakóduje ji do slov (nebo nějakých jiných příznaků) W. Naslouchající H se pokusí dekódovat zprávu W k získání původní proposice P (např. Morseův kód z teček a čárek, používaný kdysi pro výměnu zpráv). V tomto modelu se v ideálním případě přenáší původní význam z hlavy S prostřednictvím přenášené zprávy a interpretace H, aniž by došlo k jakékoliv změně obsahu. Změnu obsahu však může způsobit např. šum komunikačního kanálu nebo chyba při kódování/dekódování. Limitace modelu kódovaných a dekódovaných zpráv vedla k jinému modelu: 2. Situační jazyk: význam zprávy závisí jak na slovech, tak i na situaci v níž jsou slova vyslovena. Funkce kódování/dekódování zde mají navíc argument, který representuje konkrétní, okamžitou situaci. Souvisí to se skutečností, že tatáž slova mohou mít v různých situacích zcela různé významy: Já jsem teď zde znamená pro Pepu v Praze v pondělí něco zcela jiného než pro Frantu v úterý v Ostravě, apod. Situační jazykový model má rovněž možný zdroj selhání komunikace: mají-li S i H odlišné představy o aktuální situaci, pak nemusí být zpráva předána na základě původního úmyslu. Agenti mohou také komunikovat dvěma různými způsoby: oba sdílejí společný vnitřní representační jazyk, nepotřebují tedy žádný externí jazyk. Jiní agenti nemusí splňovat žádný předpoklad o vzájemném vnitřním jazyku, ale sdílejí komunikační jazyk (např. podmnožinu angličtiny). 130

Komunikace pomocí Tell a Ask Při tomto typu komunikace agenti sdílejí tentýž vnitřní representační jazyk a mají přímý přístup ke svým znalostním bázím přes rozhraní Tell a Ask. Agent A může předat proposici P agentovi B pomocí Tell (KB B, P ) stejně, jako by přidal P do své znalostní báze pomocí Tell (KB A, P ). Obdobně A může zjistit, zda B zná Q pomocí Ask (KB B, Q ). V umělé inteligenci, zabývající se uvedeným způsobem komunikace, se daný model nazývá telepatické spojení. Schématický diagram ukazuje modifikaci agentů (pro umožnění vzájemného přístupu ke svým znalostním bázím) přidáním vstup-výstupního zařízení ke KB, tj. navíc k potřebným zařízením pro vstup/výstup vjemů a akcí: Lidé nemají schopnosti telepatické komunikace, takže uvedený způsob komunikace nemohou používat, ale je zcela možné naprogramovat skupinu robotů pomocí společné interní representace a vybavit je rádiovými nebo infračervenými propojeními pro přímý přenos vnitřní representace znalostí mezi jejich znalostními bázemi přes Tell a Ask. V takovém případě je nutné, aby agenti kromě stejného vnitřního formátu representace jazyka sdíleli mnoho symbolů. Některé symboly jsou statické: lze předem pevně stanovit význam (konstanty, popis neproměnné části světa, apod.). Jiné symboly jsou dynamické: vytvářejí je agenti tehdy, když začnou prozkoumávat svět. Se statickými symboly potíže nevznikají, ale obtížné bývá synchronizovat použití dynamických symbolů. 131

Tři potíže se synchronizací dynamických symbolů: 1. Musí existovat takový postup přidělování názvů, aby A i B simultánně nezaváděli tentýž symbol pro věci s různým významem. Jednou možností je zavedení agentova jména jako indexu nově zaváděného symbolu, např. At(Home A ) znamená doma u agenta A. 2. Je zapotřebí, aby existoval způsob stanovení relace pro symboly zavedené různými agenty, např. aby určitý agent byl schopen říci, zda P A1 a třeba P B2 znamená stejné místo nebo ne. Problém narůstá s počtem agentů. 3. Není snadné uvést v soulad rozdíly mezi znalostními bázemi různých agentů. Pokud je komunikace volná a bezprostřední, pak všichni agenti mohou postupovat tak, že rozešlou sdělení o nové skutečnosti všem ostatním hned, jak se skutečnost dozví, takže každý bude mít stejnou znalost. V realitě je však taková komunikace omezená, např. šířkou pásma přenosu nebo tím, že nejsou neustále v propojení. Když se dostanou zpět do kontaktu, nastává problém s určením toho, co z nové informace stojí za komunikaci a která zajímavá fakta ostatní agenti znají. Existuje přirozeně mnoho dalších problémů, např. telepatičtí agenti, jak byli popsáni, jsou zranitelní sabotáží (nějaký protřelý agent použije Tell k šíření lží a naivní agent všemu uvěří). Komunikace pomocí formálního jazyka Z důvodů možnosti sabotáže a/nebo nemožnosti používat tentýž vnitřní jazyk komunikuje většina agentů pomocí jazyka než prostřednictvím přímého přístupu do znalostní báze. Následující diagram ukazuje typ komunikace pomocí jazyka: agenti provádějí akce, které produkují jazyk, který mohou ostatní agenti přijímat (vnímat). Externí komunikační jazyk se může samozřejmě lišit od interního representačního jazyka, a každý agent může mít rozdílný vnitřní jazyk. Nemusí se shodnout na žádném interním symbolu, pokud každý z agentů je schopen spolehlivě mapovat z externího jazyka do svých interních symbolů. 132

Externí komunikační jazyk s sebou přináší problémy spojené s generováním a analýzou, a řada výsledků výzkumu z oblasti zpracování přirozeného jazyka (NLP) se zde využívá. Nejobtížnější na komunikaci pomocí jazyka je stále problém č. 3 z předchozí podkapitoly: uvést rozdíly ve znalostních bázích agentů v soulad. To, co říká agent A a jak agent B interpretuje výrok od A, závisí velmi silně na vnitřních názorech obou agentů (včetně toho, jaký mají názor na názor toho druhého agenta). Znamená to, že agenti mající tentýž interní a externí jazyk nemusí mít potíže s generováním a analýzou sdělení, ale stále pro ně může být obtížné rozhodnout, co si navzájem sdělit. V dalších úvahách se předpokládá využití omezené podmnožiny angličtiny pro komunikaci agentů pomocí externího jazyka. Formální gramatika pro podmnožinu angličtiny Nechť je pro komunikaci použita omezená podmnožina angličtiny g 0 (např. pro komunikaci agentů ve zmíněném světě wumpus). Komunikační jazyk lze do značné míry popsat pomocí technik pro formální jazyky, např. využití pevné množiny písmen (pro psaný jazyk) nebo zvuků (pro mluvený jazyk). Symboly jsou formovány do řetězců, řetězce do frází apod. Ne celý jazyk lze takto popsat, protože např. není jasné, co vše do jazyka patří (existují dialekty, rozdíly např. v kanadské, britské, australské a americké angličtině, vznikají přirozené časové změny angličtina ze středověku je odlišná od současné, přičemž obdobné záležitosti platí i pro jiné jazyky, definice lingvistů se mohou lišit, apod.). Kromě toho existuje mnoho negramatických výroků, kterým lze bez problémů porozumět. 133

Řada frází a vět nemusí být správných na vyšší gramatické úrovni, ale z části jsou správné, a pro různé mluvčí se mohou pohybovat od správného k nesprávnému; příklady z angličtiny: To whom did you send the letter? Next to whom did you stand? Of whom did you meet a friend? Of whom did you see the dealer that bought the picture that Vincent painted? Skutečně obtížnou částí zpracování přirozeného jazyka je sémantická interpretace (stanovení významu) a desambiguace (odstranění mnohovýznamnosti). V programovacích jazycích je v principu každé vyjádření příkazem, zatímco v přirozeném jazyce musí naslouchající rozpoznat, zda jde o příkaz, dotaz, sdělení, slib... Dále bude jako příklad použita formální definice jazyka g 0. Lexikon g 0 Lexikon je seznam povolených slov, která jsou seskupována do kategorií či částí řeči srozumitelné uživatelům slovníku: podst. jména, zájmena, názvy označují věci, slovesa označují události, příd. jména modifikují podstatná jména, a příslovce modifikují slovesa. Dalšími kategoriemi jsou členy (a, an, the), předložky (in, on, at,...), a spojky (and, or,...). Příklad ukazuje malý lexikon pro svět hry wumpus: podstatné jméno v stench breeze glitter nothing wumpus pit pits gold east... sloveso v is see smell shoot feel stinks go grab carry kill turn... přídavné jméno v right left east south back smelly... příslovce v here there nearby ahead right left east south back... zájmeno v me you I it... název v John Mary Boston Aristotle... člen v the a an... předložka v to in on near... spojka v and or but... číslice v 0 1 2 3 4 5 6 7 8 9 Každá kategorie v zobrazeném příkladu má na konci tři tečky... k tomu, aby bylo zjevné, že existují i další slova v kategorii. Pro chybějící slova jsou dva důvody: 134

1) podst. jména, slovesa, příd. jména a příslovce: nelze je vyjmenovat všechny, protože je jich veliké množství v každé třídě a navíc jich neustále přibývá (např. slovo fax je běžně používáno teprve omezenou dobu); tyto čtyři kategorie tvoří tzv. otevřenou třídu. 2) Ostatní uvedené kategorie tvoří tzv. uzavřenou třídu: mají malý počet slov, které v principu lze vyjmenovat a mění se spíše během staletí než měsíců (např. zájmena thee a thou byla obecně užívána v 17. století, v 19. byla na ústupu a v současnosti je lze nalézt jen v poezii a některých regionálních dialektech). Gramatika g 0 Slova je nutno kombinovat do frází. V g 0 se použije pět neterminálních symbolů k definici různých druhů frází: věta S (sentence), fráze podst. jména NP (noun phrase), fráze slovesná VP (verb phrase), předložková fráze PP (prepositional phrase), a vztažná věta RelClause (relative clause) následuje a modifikuje NP, např. The agent who gave me the gold is there. Například pro svět wumpus: S v NP VP I + feel a breeze S spojka S I feel a breeze + and + I smell a wumpus NP v zájmeno I podst. jméno pits člen podst. jméno the + wumpus číslice číslice 3 4 NP PP the wumpus + to the east NP RelClause the wumpus + that is smelly VP v sloveso stinks VP NP feel + a breeze VP příd. jméno is + smelly VP PP turn + to the east VP příslovce go + ahead PP v předložka NP to + the east RelClause v that VP that + is smelly 135

Syntaktická analýza (rozbor) Existuje mnoho algoritmů pro syntaktickou analýzu. Zde je uveden velmi jednoduchý algoritmus, který nedeterministicky vybírá jeden možný strom rozboru (parse tree), pokud existuje. Zpracovává seznam slov jako les rozborů (parse forest): uspořádaný seznam stromů rozboru. V každém kroku hlavní smyčky nalézá nějakou posloupnost elementů lesa, která odpovídá pravé straně některého gramatického pravidla. Pak nahradí posloupnost jednoduchým stromem rozboru, jehož kategorie je na levé straně pravidla a jehož potomci jsou uzly v původní posloupnosti: Pro ukázku je uvedeno, jak by rozbor probíhal pro řetězec the wumpus is dead : (Detailní informace o využívání gramatiky poskytuje oblast NLP.) 136

Sémantická interpretace Sémantika formálních jazyků je na rozdíl od jazyků přirozených poměrně snadná. Není obtížné zjistit význam zápisů X+Y v aritmetice nebo X v Y v logice, protože mají tzv. kompoziční sémantiku: sémantika libovolné fráze je funkcí sémantiky sub-frází; nezáleží na jakékoliv jiné frázi před, po nebo zahrnuté v dané frázi. Je-li znám význam X a Y (a také +), pak je jasný význam celé fráze. Mimo jednoduchý jazyk aritmetiky nebo logiky je situace mnohem složitější. Např. v nějakém programovacím jazyku může mít výraz 10+10 sémantickou interpretaci 4, pokud se výraz vyskytne v delším řetězci: Base(2); x w 10+10; Ovšem i zde lze obhájit kompoziční sémantiku, pokud se vyjde z tvrzení, že sémantická funkce asociovaná s x+y je sečíst x a y pro daný číselný základ. Velkou výhodou kompoziční sémantiky je totéž jako u tzv. bezkontextových gramatik: umožňuje zpracovávat nekonečnou gramatiku pomocí konečné (a často malé) množiny pravidel. Z povrchního pohledu by se zdálo, že přirozené jazyky nemají kompoziční sémantiku. Ve frázi The batter hit the ball (pálkař trefil míček) lze očekávat sémantickou interpretaci slova batter jako někdo, kdo máchá pálkou a ball jako sférický sportovní předmět. Ale ve frázi The chef mixed the batter to be served at the ball (kuchař namíchal těsto tak, aby se podávalo jako kuličky) se dá očekávat, že dvě slova mají jiný význam. Z toho by se dalo usoudit, že ball a batter závisí nekompozičně na okolním kontextu. Tyto sémantické interpretace jsou však pouze předpokládané a preferované, nikoliv jediné možné. Slovo ball také znamená ples, bál. Je zcela možné, že The batter hit the ball se vztahuje k tomu, že směs koláčů vypadala velkolepě na formálním tanci při dostatečném úsilí lze vytvořit příběh, kde uvedený význam je preferovaný. Shrnutí: Samotná sémantická interpretace nemůže zajistit správnou interpretaci fráze nebo věty. Kompoziční přístup je v moderních systémech zabývajících se přirozenými jazyky jeden z nejpoužívanějších. 137

Je ale zapotřebí použít dva kroky: sémantická interpretace odpovídá za kombinaci významů kompozičně tak, aby byly získány možné interpretace, a desambiguace (odstranění nejednoznačnosti) odpovídá za výběr nejlepší interpretace. Sémantika výrazu John loves Mary Následující popis se týká vytvoření gramatiky pro velmi malou podmnožinu angličtiny. Prvním krokem je stanovení faktů jaké sémantické representace s kterými frázemi mají být asociovány. Bude použita jednoduchá věta John loves Mary asociována se sémantickou interpretací Loves(John,Mary). Ve větě je snadné vidět, z kterých slov pocházejí které části sémantické interpretace. Komplikovanější částí je rozhodnutí, jak ty části dát dohromady, zejména pro mezifráze typu VP loves Mary, kde VP je slovesná fráze. Sémantická interpretace dané fráze není ani logický výraz, ani kompletní logická věta. Intuitivně, loves Mary je popis, který lze nebo nelze aplikovat na konkrétní osobu (v tomto případě se vztahuje k osobě John). Znamená to, že loves Mary je predikát, který v kombinaci s termem representujícím osobu (která miluje) dává kompletní logický výraz. Za použití 8-notace lze representovat loves Mary jako predikát: 8x Loves(x, Mary). (8-operátor se používá k zápisu funkce z výrazu, např. výraz x 2 -y 2 se přepíše na 8x,y x 2 -y 2, např. (8x,y x 2 -y 2 )(25, 24) = 25 2-24 2 =49; funkce popisuje, co jsou argumenty a že se má udělat rozdíl druhé mocniny prvního a druhého argumentu; viz případně i jazyk Lisp.) NP Mary lze representovat logickou konstantou Mary. To vede k definici pravidla NP se sémantikou obj následováno VP se sémantikou rel dává větu S, jejíž sémantika je výsledkem aplikace relace rel na objekt obj : S(rel(obj)) v NP(obj) VP(rel) Pravidlo říká, že sémantická interpretace John loves Mary je (8x Loves(x, Mary))(John) což je ekvivalentní Loves(John,Mary). 138

Protože slovesné fráze VP jsou representovány jako predikáty, je vhodné konsistentně representovat rovněž slovesa jako predikáty. Slovo loves je representováno jako 8y 8x Loves(x,y), což je predikát, který s argumentem y = Mary vrací predikát 8x Loves(x, Mary). Pravidlo VP v Verb NP (verb phrase=slovesná fráze, verb=sloveso) aplikuje predikát [který je sémantickou interpretací slovesa na objekt, který je sémantickou interpretací NP (noun phrase=podstatné jméno)] k získání sémantické interpretace celé slovesné fráze VP. Gramatika a strom rozboru (se sémantickými interpretacemi pro řetězec John loves Mary ) jsou následující: S(rel(obj)) v NP(obj) VP(rel) VP(rel(obj)) v Verb(rel) NP(obj) NP(obj) v Name(obj) Name(John) v John Name(Mary) v Mary Verb(8x 8y Loves(x,y)) v loves 139

Nejednoznačnost a její odstraňování Nejednoznačnost (ambiguita) a její odstraňování (desambiguace) hraje výraznou roli v procesu komunikace (interpretační fáze). V ideálním případě má řečník S na mysli sdělení P a provede akci mluvení, která však může mít několik interpretací, a je otázkou, kterou z interpretací lze v dané situaci považovat za nejlepší vzhledem k předávání výroku P. Naslouchající H si je možné nejednoznačnosti vědom a P interpretuje odstraňuje víceznačnost. Někdy může H být zmaten a požádat o vyjasnění, to ale při častém opakování vede ke zdržování komunikace, zejména pokud dojde k dalšímu, vícenásobnému vyjasňování vyjasňovaného. Existuje velmi mnoho narušení plynulé komunikace, ale ukazuje se, že největším problémem je to, že většina toho, co je vyřčeno, je nejednoznačné. Typickým příkladem jsou např. titulky zpráv (známým příkladem je novinový titulek z doby druhé světové války: Americans pushes bottle up Germans: i z hlediska překladu nelze přesně říci, co je významem např. bottle může znamenat láhev, odvaha, otýpka, a nahromadění nejednoznačných pojmů do fráze činí interpretaci často nemožnou). Lexikální ambiguita je nejjednodušším typem ambiguity, kde nějaké jedno slovo má více významů. Např. anglické přídavné jméno hot znamená horký, kořeněný, nejnovější, nesnesitelný, dychtivý, rozčilený, skvělý, čerstvý, radioaktivní, sexy, populární, ukradený aj. (v kterémkoliv přirozeném jazyce lze nalézt obdobné příklady). Lexikální ambiguita zahrnuje také nejednoznačnost kategorie slova: back je příslovce v go back, přídavné jméno v back door, podstatné jméno v the back of the room, a sloveso v back up your files. Syntaktická ambiguita (strukturální ambiguita) se může vyskytnout jak s lexikální nejednoznačností, tak i bez ní. Např. I smelled a wumpus in 2,2 (kde 2,2 znamená označení koordinát výskytu wumpuse v dané hře) má dva výsledky rozboru: v jednom propoziční fráze modifikuje podstatné jméno, v druhém modifikuje sloveso. Syntaktická ambiguita vede k další ambiguitě, k sémantické. Sémantická ambiguita v uvedeném příkladu znamená, že buď wumpus je v 2,2 a je odtud cítit nebo zápach je cítit v 2,2 a wumpus je někde jinde (cítil jsem (wumpuse v 2,2) nebo (v 2,2 jsem cítil) wumpuse). Zde by chybná interpretace mohla být osudovou chybou vzhledem k zaměření wumpuse. Rovněž může dojít k tomu, že se sémantická nejednoznačnost objeví i ve frázích, kde není lexikální nebo syntaktická ambiguita. Např. fráze coast road (pobřežní silnice) může znamenat silnici vedoucí po pobřeží nebo silnici vedoucí k pobřeží. 140

Referenční ambiguita je všudypřítomná forma nejednoznačnosti. Anaforické (odkazové na předchozí kontext) výrazy typu it se mohou odkazovat téměř na vše. Referenční ambiguita se vyskytuje v komunikaci proto, že přirozené jazyky obsahují v silně převažující míře slova pro kategorie, nikoliv pro individuální objekty [neexistuje slovo pro the-apple-i-had-for-lunch-today (jablko, které jsem měl dnes k obědu), pouze kategorie typu apple (jablko)]. Pragmatická ambiguita se objevuje tehdy, když promlouvající S a naslouchající H se neshodnou na tom, co je okamžitá situace. S říká setkám se s tebou příští čtvrtek za předpokladu, že se mluví o 12. dni měsíce, ale H si myslí, že se jedná o 19., takže dojde k chybné komunikaci. Jiný příklad je výše v podkapitole Dva modely komunikace ve zmínce o situačním jazyku (slovo zde ). Lokální ambiguita se někdy objevuje ve frázi či větě, kde lze udělat rozbor podřetězce několika způsoby, ale pouze jeden z nich se shoduje s širším kontextem celého řetězce. Např. v programovacím jazyce C je význam řetězce *c buď pointer na c, pokud se řetězec vyskytuje v deklaraci char *c; nebo vynásob hodnotou c pokud se vyskytuje ve výrazu 2*c. Podobně v angličtině je podřetězec the radio broadcasts fráze NP v širším kontextu the radio broadcasts inform, zatímco v jiném kontextu the radio broadcasts information jde o frázi NP the radio následovanou další frází VP broadcasts information (broadcasts je vysílání jako podstatné jméno v množném čísle nebo vysílá jako sloveso, tj. rozhlasová vysílání informují nebo rozhlas vysílá informace). Fráze či věta může být syntakticky nejednoznačná, ale sémanticky jednoznačná. Např. S 1 a S 2 a S 3 má dva různé rozbory (S 1 a S 2 ) a S 3 a S 1 a (S 2 a S 3 ), ale stejný význam vzhledem k asociativnosti konjunkce a (to ale nemusí být obecně platné a může záležet na typu jazyka a gramatiky). Vágnost (ve smyslu nejasnost, neurčitost, nejistota) je v přirozených jazycích obvyklá. Výrok Venku je horko se týká teploty, ale termín horko je vágní, takže je možná vcelku široká interpretace (pro někoho je venku horko při 25/C, pro jiného při 32/C, apod.). Nejednoznačnost může vyplynout i z typu akce řeči: Na dotaz Víš, kolik je hodin? odpoví H ano nebo může odpovědět hodnotou času, např. půl sedmé a tři minuty. Obojí může být pro tentýž dotaz správné, ovšem v závislosti na typu otázky (a např. kontextu, apod.). 141

Desambiguace Desambiguace je v principu problém diagnózy, tj. rozboru a rozpoznání. Naslouchající H si udržuje model světa a na základě vyslechnutí nové akce řeči přidá možné interpretace toho, co slyšel, k modelu jako hypotézy. K interpretacím lze využít různé techniky zpracování nejistoty a přibližnosti (logika monotonická a nemonotonická, pravděpodobnosti, shlukování, stochastická simulace, Bayesovy metody, tvorba a zpracování pravidel, Dempster-Shaferova metoda, znalostní inženýrství, fuzzy usuzování, aj.). K úspěšnému výsledku je zapotřebí, aby svět obsahoval co nejvíce informací o světě. Např. ke korektnímu vyřešení syntaktické ambiguity v anglické větě Joseph saw the Grand Canyon flying to New York (Josef viděl Grand Canyon při letu do New Yorku) je nutno vědět, že je mnohem pravděpodobnější, že Josef a nikoliv Grand Canyon letěl letadlem (a tedy že Josef neviděl Grand Canyon letící do New Yorku). Je také zapotřebí mít dobrý model o názorech S a H, aby se dalo uřčit, co měl S v úmyslu říci. Např. obvyklá interpretace anglického sdělení I am not a crook je, že nejsem zloděj, i když lze sdělení také přeložit jako nejsem pastýřská berla. Podobně slovo bank znamená mj. břeh, lavice, banka, ale je značně pravděpodobné, o co jde ve výroku Jimmi keeps his money in the bank, tj. Jimmi asi nezahrabává své peníze do břehu (i když i to je možné). Desambiguace obecně vyžaduje kombinaci čtyř modelů: 1. Model světa: pravděpodobnost výskytu faktu ve světě. 2. Mentální model: pravděpodobnost, že řečník S má úmysl sdělit fakt naslouchajícímu H, a to za předpokladu, že k výskytu faktu došlo (je vhodné uvážit i případy, kdy k faktu nedošlo a S o tom nemá správnou informaci nebo úmyslně lže). Zde se rovněž kombinuje model názorů S s modelem toho, jaký má S názor na názory H, atd. 3. Model jazyka: pravděpodobnost toho, že bude zvolen určitý řetězec slov za předpokladu, že S má intenci komunikace o určitém faktu. 4. Akustický model: pravděpodobnost vygenerování konkrétní sekvence zvuků za předpokladu, že S vybral daný řetězec slov (problém obecně souvisí s řešením úloh v oblasti příjmu a vysílání signálů zpracování visuálních a sluchových vjemů, jejich zpracování, vytváření a předávání to je mimo rozsah předmětu). 142

Zcela jistým a posledním důvodem, proč správná interpretace je tak velmi obtížný problém, je skutečnost, že může existovat několik správných interpretací. Např. vtipy jsou často založeny na tom, že H se pobaví pomocí dvou současně platných interpretací. Většina programů, schopných porozumění, zatím ignoruje tyto skutečnosti (možnost současného výskytu několika případů). Bezkontextové gramatiky neposkytují příliš užitečný jazykový model, protože gramatika neříká, který řetězec je pravděpodobnější než jiný prostě dělí řetězce do dvou tříd: gramatické a negramatické. Nejjednodušší formou je poskytnout pravděpodobnostní rozdělení pomocí pravděpodobnostní bezkontextové gramatiky (tzv. PCFG probabilistic contextfree grammar). V jazykovém modelu PCFG má každé přepisovací pravidlo asociovanou pravděpodobnost, a součet pravděpodobností pro všechna pravidla, mající tutéž levou stranu, je 1. Např.: S v NP VP (0.9) S v S konjunkce S (0.1). V modelu PCFG je pravděpodobnost řetězce, P(words), pouhou sumou pravděpodobností jeho stromů rozboru (parsing trees) jeden strom pro jednoznačný řetězec, žádné stromy pro negramatický řetězec a několik stromů pro nejednoznačný řetězec. Pravděpodobnost daného stromu je součinem pravděpodobností všech pravidel, která tvoří uzly stromu. Problémem PCFG je bezkontextovost, neboli rozdíl mezi např. P( I ate a banana ) a P( I ate a bandana ) [tj. jedl jsem banán a jedl jsem šátek (bandana je typ barevného bavlněného nebo hedvábného šátku)], záleží výhradně na P( banana ) versus P( bandana ), a nikoliv na relaci mezi slovesem ate a odpovídajícími podstatnými jmény. K získání takového vztahu je zapotřebí nějaký druh kontextově závislého modelu. Pozn.: V současnosti zřejmě převažují pravděpodobnostní techniky desambiguace, které vycházejí z existence tzv. textových korpusů, z nichž se odvozují příslušné statistiky a pravděpodobnosti. Existují i korpusy pro český jazyk. Samozřejmě záleží na tom, kdy a z čeho je korpus sestavován a jak je rozsáhlý, takže různé korpusy mohou vést k více čí méně odlišným výsledkům. 143

Plánování jako logické fungování Agent m$åe na základ struktury problému vytvoit sloåité plány své þinnosti. Jednoduchý plánující agent je velmi podobný agentovi ešícímu problémy (zmínnému díve) v tom, åe konstruuje plány k dosaåení svých cíl$, a po vytvoení plán$ je provede. Další, tzv. þásteþn uspoádané plánování, je komplikovanjší, prohledává prostor plán$, aby našlo plán zaruþující úspch. Zde je zárove navíc flexibilita, umoåující zvládnout zcela sloåité domény. Jednoduchý plánující agent Pokud je stav svta pístupný, m$åe agent pouåít vjemy poskytované okolím (prostedím) k vytvoení kompletního a korektního modelu okamåitého stavu svta. Potom m$åe vzhledem k cíli vyvolat vhodný plánovací algoritmus (Ideal-Planner) k vytvoení plánu þinností. Plán je vykonáván po krocích, jedna akce v jednom þasovém kroku. Agent pouåívá znalostní bázi. Algoritmus (vyuåívající bázi znalostí) pro jednoduchého plánujícího agenta: function Simple-Planning-Agent(percept) returns action static: KB // znalostní báze, obsahuje popis akcí p // plán (na poþátku åádný plán) t // þítaþ þasových krok$, na poþátku 0 local variables: G // cíl current // popis okamåitého stavu Tell(KB,Make-Percept-Sentence(percept,t)) current Z State-Description(KB,t) if p = NoPlan then G Z Ask(KB,Make-Goal-Query(t)) p Z Ideal-Planner(current,G,KB) if p = NoPlan or p is empty then action Z NoOp else action Z First(p) p Z Rest(p) Tell(KB,Make-Action-Sentence(action,t)) t Z t+1 return action 91

Funkce Tell zde vkládá do znalostní báze KB informaci o tom, co se objevilo jako vjem (k þemu po sdlení údaj$ znalostní bázi pak dojde, je záleåitost inference). Make-Percept-Sentence dostane pro daný þasový okamåik t vjem (percept) a vrací representaci vjemu (fakt$ o svt); individuální representace fakt$ se nazývají sentence nebo tvrzení tato (logická) tvrzení jsou vyjádena v jazyku, kterému znalostní báze rozumí, tj. jazyk representace znalosti. Funkce Ask se ptá znalostní báze, jaká akce (po sdlení pes Tell, jaká je okamåitá situace) by se pro daný stav mla udlat. Jde tedy o jakýsi dialog typu poskytnutí informace o skuteþnosti (Tell) dotaz co za tchto podmínek dlat (Ask). Funkce State-Description dostane vjem jako vstup a vrací popis poþáteþního stavu ve formátu vyåadovaném plánovaþem (generátorem plán$). Funkce Make-Goal-Query je pouåita v dotazu v$þi znalostní bázi na to, co by mlo být dalším cílem agenta. Ideal-Planner m$åe být jakýkoliv vhodný plánovaþ (viz dále). Od ešení problém$ k plánování Plánování a ešení problém$ povaåuje moderní umlá inteligence za odlišné záleåitosti, protoåe representace cíl$, stav$, akcí a sekvencí akcí jsou odlišné. ešení problém$ zaloåené na vyhledávání: Representace akcí: akce jsou popsány programy, které generují popisy následných stav$. Representace stav$: je dán kompletní popis poþáteþního stavu; akce jsou representovány programem, který generuje kompletní popisy stav$. Proto jsou všechny representace stav$ kompletní. Ve vtšin problém$ je stav jednoduchá datová struktura permutace þtvereþk$ v hlavolamu s 8 þtvereþky, pozice agenta v problému hledání trasy, nebo pozice šesti osob v problému kanibal$ a misioná$ s lokou. Representace stav$ se pouåívají pouze pro generovaní následník$, pro heuristickou vyhodnocovací funkci a pro testování cíle. 92

Representace cíl$: jediná informace, kterou má ešící agent o svém cíli, je ve form testu na cíl a heuristické funkci. Oba prostedky mohou být aplikovány na stavy k rozhodnutí, zda jsou stavy vhodné þi potebné, ale zárove jsou oba prostedky pouåívány ve form þerné skíky (agent ešící problém nemá moånost se podívat dovnit nástroje pi výbru akcí, které mohou být uåiteþné z hlediska dosaåení cíle). Representace plán$: pi ešení problém$ jsou výsledkem sekvence akcí typu je z Aradu do Sibiu, dále do Fagarasu a pak do Buchuresti. Bhem konstrukce ešení uvaåují vyhledávací algoritmy pouze neperušené sekvence akcí vedoucích z poþáteþního stavu (pi obousmrném hledání akce konþící v koneþném stavu). Jako píklad lze uvést návrh ešení, ovlivujících agentovu schopnost vyešit jednoduchý problém získej litr mléka, trs banán$ a bezdrátovou vrtaþku s mnitelnou rychlostí otáþek. Pro ešení je nutno specifikovat poþáteþní stav: agent je doma bez poåadovaných pedmt$, a soubor operátor$: vše, co agent m$åe dlat. Lze pípadn pouåít i njakou heuristiku, nap. poþet pedmt$, které dosud nebyly získány. Na následujícím obrázku je velmi malá a symbolicky omezená þást prvních dvou úrovní prohledávaného prostoru pro ešení zadaného problému a náznak cesty vedoucí k cíli. Skuteþný faktor vtvení závisí na tom, jak jsou akce specifikovány (b mohou být tisíce nebo miliony), a délka ešení m$åe být v desítkách krok$ existuje píliš mnoho akcí a stav$. Heuristická vyhodnocovací funkce m$åe pouze vybrat mezi mnoha stavy k rozhodnutí, který stav je blíåe k cíli; neumí z úvah vylouþit akce. I kdyå se agent dostane do supermarketu, nezbývá mu, neå hádat. Agent pi pokusu o uhodnutí uvaåuje akce (koupit pomeranþe, rybu, brambory, mléko) a jejich ohodnocení evaluaþní funkcí (chybné, chybné, chybné, správné). Agent pak ví, åe koupit mléko je správná þinnost, ale nemá moånost zjistit, co udlat pak a musí proces pokus$ zahájit znovu. K potíåím agenta tedy pispívá také fakt, åe musí vådy uvaåovat sekvenci akcí z poþáteþního stavu musí tedy se naped rozhodnout, co udlat v poþáteþním stavu, kde relevantní výbr mezi þinnostmi je jít na njaké z mnoha moåných míst. Pokud agent neví, jak získat r$zné poloåky (zakoupení, zap$jþení, pronajatí, vypstování, vyrobení, ukradení...), pak se nem$åe fakticky rozhodnout, kam jít. 93

Mluv na papouška Jdi do obchodu se zvíøaty Kup psa Jdi do školy Jdi do tøídy Zaèátek Jdi do supermarketu Kup rybu Jdi spát Kup mrkev Èti si kní ku Kup mléko... Konec Posaï se na idli Seï nadále Atd. atd....... Èti kní ku Z uvedených problém$ plyne, åe agent potebuje mnohem flexibilnjší zp$sob ke strukturalizaci svého uvaåování tak, aby mohl zpracovat kteroukoliv þást problému, která je za pedpokladu okamåité informace nejpravdpodobnjší k vyešení. Základní a klíþová idea pro plánování je otevení þerné skíky, tj. representací stav$, cíl$ a akcí. Plánovací algoritmy pouåívají popisy ve formálních jazycích, nap. pomocí logiky prvního ádu (viz píslušnou kapitolu matematické logiky: výrazy, termy, konstanty, promnné, predikáty, funkce, spojky <, Y, Z, @, kvantifikátory ~, }) nebo její podmnoåiny. Stavy a cíle jsou representovány soubory výraz$, akce jsou representovány logickým popisem pedpoklad$ a d$sledk$ to umoåuje agentovi pímé propojení mezi stavy a akcemi: Ví-li agent, åe cílem je konjunkce zahrnující konjunkt Mít(Mléko) a åe Koupit(x) docílí Mít(x), pak také ví, åe stojí za úvahu plán, v nmå je Koupit(Mléko). Nemusí uvaåovat irelevantní akce jako jsou nap. Koupit(Šlehaþku) nebo JítSpát. 94

Další ideou plánování je skuteþnost, åe plánovaþ má volnost v pidávání akcí k plánu, kdykoliv jsou ty akce zapotebí na rozdíl od postupu, kde se pouåívá inkrementální sekvence zaþínající v poþáteþním stavu. Nap. agent se m$åe rozhodnout, åe pouåije Koupit(Mléko), i kdyå ješt se nerozhodl kde, jak se tam dostat, nebo co dlat pak. Není nutná spojitost mezi poadím plánování a poadím uskuteþování. Prvn se stanoví rozhodnutí, která jsou zejmá nebo d$leåitá, a pak m$åe plánovaþ redukovat faktor vtvení pro budoucí výbry a dále redukovat nutnost sledování všech libovolných rozhodnutí. Representace stav$ jako soubor$ logických výraz$ je podstatná, protoåe umoåuje tuto volnost výbru: pidání akce Koupit(Mléko) má representaci stavu, kde se akce vykoná, jako Být_v(Supermarketu), coå ve skuteþnosti representuje celou tídu stav$: s banány a bez banán$, s vrtaþkou a bez vrtaþky, apod. Prohledávací algoritmy, vyåadující kompletní popis stav$, tuto moånost nemají. Poslední podstatnou ideou pro plánování je skuteþnost, åe vtšina þástí reálného svta je nezávislá na vtšin ostatních þástí. Proto je uskuteþnitelné vzít konjunktivní cíl typu získej litr mléka Y trs banán$ Y vrtaþku... a ešit ho pomocí strategie rozdl a panuj (viz níåe potíåe s hlavolamy). První dva konjunkty vyeší sub-plán obsahující cestu do supermarketu, další subplán (jít do åelezáství nebo p$jþit si u souseda) vyeší splnní tetího konjunktu. Sub-plán zahrnující supermarket lze dále rozdlit na sub-plán koup mléka a subplán koup banán$. Sjednocením všech sub-plán$ dohromady je ešen celý problém. Funguje to práv z d$vodu velmi malé interakce mezi dvma sub-plány: cesta do supermarketu nepekáåí p$jþce od souseda, koup mléka nepekáåí koupi banán$ (pokud samozejm agent nevyþerpá njaké zdroje k provádní akcí, nap. po koupi mléka namá na banány). Strategie rozdl a panuj je úþinná proto, åe je tém vådy snadnjší ešit problém rozdlením na menší podproblémy. M$åe selhat v pípadech, kdy cena kombinací ešení všech podproblém$ je píliš vysoká. Tuto vlastnost má mnoho hlavolam$, nap. 8-hlavolam má cílový stav, který je konjunktivním cílem: pesunout þtvereþek 1 na pozici A Y þtvereþek 2 na pozici B Y... aå do þtvereþku 8. Z hlediska plánování lze pouåít rozdlení na nezávislé sub-problémy, ale potíå s hlavolamy je práv v obtíånosti dát sub-plány dohromady k dosaåení cíle (1 lze pesunout na A, ale 2 na B m$åe vyåadovat odsunutí 1 z A). 95

Plánování v situaþním kalkulu Problém plánování je v tomto pípad pedstavován logickými výrazy (pouåívá se logika prvního ádu), které popisují ti hlavní þásti problému: Poþáteþní stav: libovolný logický výraz o situaci S 0. Pro problém nákupu to m$åe nap. být: Být_v(Doma,S 0 ) Y Mít(Mléko,S 0 ) Y Mít(Banány,S 0 ) Y Mít(Vrtaþka,S 0 ) Cílový stav: logický dotaz na vhodné situace s, nap.: } s Být_v(Doma,s) Y Mít(Mléko,s) Y Mít(Banány,s) Y Mít(Vrtaþka,s) Operátory: soubor popis$ akcí a pomocí logiky prvního ádu, nap.: ~ a,s Mít(Mléko,Result(a,s)) @ [(a = Koupit(Mléko) Y Být_v(Supermarket,s) Z (Mít(Mléko,s) Y a =/ Vylít(Mléko))] Pozn.: Situaþní kalkul je zaloåen na myšlence, åe akce mní stavy: Result(a,s) pojmenovává situaci vzniklou po provedení akce a v situaci s. Pro úþely plánování m$åe být uåiteþné manipulovat se sekvencemi akcí stejn jako s jednotlivými akcemi. Result'(l,s) znamená situaci vzniklou provedením sekvence akcí l poþínaje situací s. Result' je stanoven tím, åe prázdná sekvence akcí nemá vliv na situaci, a výsledkem neprázdné sekvence akcí je totéå jako aplikace první akce a pak zbytku akcí z poþáteþní situace. Problém s dobrými teoretickými ešeními a formálními zápisy je þasto v tom, åe nezaruþují dobrá praktická ešení (k nimå umlá inteligence ovšem smuje to byl i d$vod vzniku oboru). D$vodem je nap. exponenciální þasová závislost na délce ešení (v nejhorším pípad), nebo existující problémy s logickou inferencí (nap. modus ponens) pro adu reálných problém$, nap. z d$vodu odlišnosti zp$sobu uvaåování lidí od formáln logického pístupu (problém typický pro mnoho aplikací expertních systém$). Další potíå pro umlou inteligenci zp$sobuje problém tzv. semi-rozhodnutelnosti, vztahující se k výsledk$m inference v logice prvního ádu: lze ukázat, åe výrazy vyplývají z premis, pokud z nich vyplynuly ale nem$åeme vådy ukázat, åe vyplynou, pokud z nich nevyplynuly (detaily viz v píslušných kapitolách matematiky). 96

Základní representace pro plánování Aby plánování agent$ bylo pouåitelné v praktických situacích, umlá inteligence pouåívá dva speciální pístupy: (1) Restrikce jazyka pro definici problém$ výsledkem je mén moåných ešení, mezi nimiå je nutno hledat. (2) Pouåití specialisovaného algoritmu plánovaþ místo obecn zameného algoritmu dokazování teorém$ pro nalezení ešení problému. Oba pístupy jsou spojeny: nový definiþní jazyk vyåaduje nový plánovací algoritmus pro zpracování popisu problému daného jazykem. V souþasnosti se pro velkou vtšinu plánovaþ$ vyuåívá jazyk zvaný Strips (STanford Research Institute Problem Solver). Stavy ve Strips jsou representovány konjunkcemi funkþn nezávislými základními literály, tj. predikáty aplikovanými na konstatní symboly, s pípadnou negací. Nap. poþáteþní stav problému s mlékem apod. m$åe být popsán jako Být_v(Doma) Y Mít(Mléko) Y Mít(Banány) Y Mít(Vrtaþka) Y... Popis stav$ nemusí být úplný neúplný popis (získaný nap. agentem v ne zcela pístupném prostedí) odpovídá mnoåin moåných kompletních stav$, pro nå by agent chtl získat úspšný plán. Mnoho plánovacích systém$ pouåívá konvenci, která v pípad, åe popis stavu nezmiuje daný positivní literál, povaåuje literál za negativní (v logickém programování je to negace jako neúspch ). Cíle jsou rovnå popisovány jako konjunkce literál$: Být_v(Doma) Y Mít(Mléko) Y Mít(Banány) Y Mít(Vrtaþka). Cíle mohou také obsahovat promnné. Nap. cíl být v obchod, který prodává mléko m$åe být representován jako Být_v(x) Y Prodávat(x,Mléko). 97

L Promnné mohou být existenþn kvantifikované. Zde je ale rozdíl mezi cílem pro plánovaþ a dotazem pro dokazovaþ teorém$. Plánovaþ vyåaduje sekvenci akcí, která vede ke splnnému cíli, pokud je provedena. Dokazovaþ vyåaduje údaj o tom, zda dotazovací sekvence je pravdivá za pedpokladu pravdivosti výrok$ ve znalostní bázi. Representace akcí Operátory Strips se skládají ze tí þástí: Popis akce agent vrací prostedí (aby nco udlal). Plánovaþ pouåívá popis jenom jako název moåné akce. Pedpoklad je konjunkce atom$ (positivních literál$), která íká, co musí být pravdivé ped aplikací operátoru. Úþinek (efekt) operátoru je konjunkce literál$ (positivních nebo negativních), která popisuje, jak se situace mní pi aplikaci operátoru. Píklad syntaxe pouåité pro vytvoení operátoru Strips pro pesun z jednoho místa na druhé: Op(Action: Go(there), Precond: (At(there) Y Path(here, there), Effect: At(there) Y At(here)) Grafická notace pro Go(there). Pedpoklad je nad akcí, efekt pod akcí: At(here), Path(here, there) Go(there) At(there), At(here) Operátor s promnnými se nazývá operátorové schéma, protoåe neodpovídá jediné proveditelné akci, nýbrå skupin akcí, kde kaådá je r$znou instancí (specifickým výskytem) promnných. Obvykle lze provádt pouze operátory s úplnou moåností specifikace (plánovací algoritmy musí zajistit, aby kaådá promnná mla hodnotu v okamåiku þinnosti plánovaþe). 98

Pedpoklady musí být konjunkcí positivních literál$. Efekt musí být konjunkcí positivních a/nebo negativních literál$. O všech promnných se pedpokládá, åe jsou universáln kvantifikovatelné a åe nejsou åádné pídavné kvantifikátory (tyto poåadavky mohou být za urþitých okolností zmírnny). Operátor o je aplikovatelný ve stavu s pokud existuje njaký zp$sob specifikace promnných v operátoru o tak, åe kaådý pedpoklad o je pravdivý v s (tj. kdyå Precond(o) G s). Ve výsledném stavu platí všechny positivní literály v Effect(o) tak, jako platí všechny literály platné v s, krom tch, které jsou negativními literály v Effect(o). Nap. pokud poþáteþní situace zahrnuje literály At(Doma), Path(Doma, Supermarket),... pak akce Go(Supermarket) je aplikovatelná a výsledná situace obsahuje literály At(Doma), At(Supermarket), Path(Doma, Supermarket),... Prostor situace a prostor plánu Na obrázku stromu vtvení þinností pi poåadavku na obstarání mléka apod. je ilustrován prohledávací prostor situací ve svt (zde svt nakupování). Cesta tímto prostorem z poþáteþního do cílového stavu vytváí plán pro problém nákupu. Plánovaþ, který daný prostor prohledává z hlediska moåných situací, je plánovaþ situaþního prostoru. Zárove jde o progresívní plánovaþ, protoåe hledá smrem vped z výchozího stavu do cílového. Hlavním problémem je vysoký faktor vtvení a tím velký rozmr prohledávaného prostoru. Jednou moåností pokusit se sníåit faktor vtvení je hledání zptným smrem (z cíle k poþátku) tzv. regresní plánování. Takový pístup je moåný, protoåe operátory obsahují dosti informace k regresi z þásteþného popisu výsledného stavu k þásteþnému popisu stavu ped aplikací operátoru. Obecn není moåné tímto zp$sobem získat kompletní popis stav$, ale to není zapotebí. 99

Uvedený regresní pístup je åádoucí, protoåe v typických problémech má cílový stav pouze n kolik konjunkt$, kde kaådý z nich má jenom nkolik vhodných operátor$, zatímco poþáteþní stav obvykle má mnoho aplikovatelných operátor$ (vhodným operátorem rozumíme takový, který je vhodný pro cíl pokud cíl je efektem toho operátoru). Bohuåel zptné hledání je komplikováno faktem, åe þasto je nutno dosáhnout konjunkce cíl$, nikoliv jen jednoho. To m$åe snadno vést k nekompletnosti, jejíå odstranní však zase vede k vysoké neúþinnosti algoritmu. Alternativou je hledání pes prostor plán$ místo pes prostor situací. Znamená to, åe se zaþne s jednoduchým, nekompletním plánem tzv. þásteþný plán. Dále jsou zvaåovány cesty k rozšíení plánu, dokud není nalezen kompletní plán ešící problém. Operátory v tomto hledání jsou operátory nad plány: pidání kroku; zavedení takového poadí, které vloåí njaký krok ped jiný; specifikace dosud neomezené promnné; apod. ešením je finální plán a cesta, která vede k dosaåení cíle, je irelevantní. Operace nad plány jsou ze dvou kategorií: Zdokonalovací operátory pidávají omezení k danému plánu jednou z moåností pohledu na þásteþný plán je jako na representaci souboru kompletních, pln omezených plán$. Operátory zdokonalování eliminují nkteré plány z tohoto souboru, ale åádné nepidávají. Jakýkoliv jiný, neå zdokonalovací operátor, je operátor modifikaþní. Nkteré plánovaþe pracují tak, åe konstruují potenciáln nekorektní plány a pak je odlaují pomocí modifikaþních operátor$. V dalším jsou popisovány jen operátory zdokonalovací. Representace plán$ Pro prohledávání prostoru plán$ je zapotebí jejich representace. Jako píklad poslouåí jednoduchý problém: obutí si páru bot. Cílem je konjunkce sloåená z PraváBotaObuta Y LeváBotaObuta, poþáteþní stav nemá åádné literály. 100

K dispozici jsou þtyi operátory: Op(Action: PraváBota, Precond: PraváPonoåkaObleþena, Effect: PraváBotaObuta) Op(Action: PraváPonoåka, Effect: PraváPonoåkaObleþena) Op(Action: LeváBota, Precond: LeváPonoåkaObleþena, Effect: LeváBotaObuta) Op(Action: LeváPonoåka, Effect: LeváPonoåkaObleþena) ýásteþný plán pro daný problém má dva kroky: PraváBota a LeváBota. Otázka je, který krok se má udlat jako první? Mnoho plánovaþ$ pouåívá pístup zvaný nejmenší závazek, podle njå se má vybrat k þinnosti jen to, co je práv na starosti, a ostatní vci nechat na pozdji. To je pro hledání vhodná metoda, protoåe pi okamåitém výbru nþeho, co není práv aktuální, m$åe dojít k chyb, která si pozdji vynutí návrat. Plánovaþ s nejmenším závazkem by mohl poadí obou þinností (PraváBota a LeváBota) nechat nespecifikované. Tetím krokem je PraváPonoåka, a pi pidání k plánu je teba zajistit, aby tento cíl byl splnn ped zahájením plnní cíle PraváBota. Vzhledem k levé bot to ale nehraje roli. Plánovaþ, který representuje plány, v nichå nkteré kroky jsou dávány do poadí (ped a po) vzhledem ke vzájemnému vztahu, piþemå jiné kroky do poadí dávány nejsou, se nazývá plánovaþ þásteþného poadí. Alternativou je plánovaþ úplného poadí, v jehoå plánech je jednoduchý seznam krok$. Plán s úplným poadím, který je odvozen z plánu P pidáním omezení na poadí, se nazývá linearisací P. Plánovaþe musí také brát ohled na vazby promnných v operátorech. To v problému bot a ponoåek není ukázáno, ale nap. jedním z cíl$ m$åe být Mít(Mléko), a k dispozici nech" je akce Koupit(poloåka, obchod). Rozumným závazkem k výbru této akce je poloåku svázat s Mlékem. Zde však není dán dobrý d$vod k vazb obchodu, takåe princip nejmenšího závazku ponechává výbr na pozdji. Tato strategie pomáhá zbavit se špatných plán$ a vynechat celé vtve stromu. Pokud je kaådá promnná vázána na konstantu, pak plán se nazývá pln konkretizovaný plán. 101

Plán je formáln definován jako datová struktura skládající se z tchto sloåek: Soubor krok$ plánu. Kaådý krok je jeden z operátor$ pro daný problém. Soubor omezení pro uspoádání krok$. Kaådé omezení, urþující poadí, má formu S i y S j, coå znamená S i je ped S j, neboli krok S i musí nkdy pedcházet krok S j (ale nikoliv bezprostedn). Pozn.: notace A y B y C znamená (A y B) Y (B y C). Soubor omezení pro vazby promnných. Kaådé omezení promnné má formu v = x, kde v je promnná njakého kroku a x je bu konstanta nebo jiná promnná. c Soubor píþinných propojení. Píþinné propojení S S znamená S i dosáhne c pro S j. Píþinná propojení slouåí k záznamu úþelu/úþel$ krok$ v plánu: zde je úþelem S i dosáhnout pedpoklad pro S j. Ped zahájením jakéhokoliv zlepšování popisuje jednoduše poþáteþní plán nevyešený problém. Poþáteþní plán se skládá ze dvou krok$ Zaþátek (nebo Start) a Konec (nebo Finish), s omezením na poadí Zaþátek y Konec. Oba tyto kroky mají asociované prázdné akce, takåe kdyå dojde na provádní plánu, jsou ignorovány. Krok Start nemá åádné pedpoklady a jeho efektem je pidání všech proposic pravdivých v poþáteþním stavu. Krok Konec má jako pedpoklad cílový stav a åádné efekty. Plánovaþe tedy mohou zaþít s poþáteþním plánem a manipulovat s ním, dokud nedojdou k plánu, jenå je ešením.problém boty-a-ponoåky je definován díve uvedenými þtymi operátory a poþáteþním plánem, který lze zapsat takto: i j Plan (Steps: { S 1 : Op(Action: Start), S 2 : Op(Action: Finish, Precond: PraváBotaObuta Y LeváBotaObuta)}, Orderings: { S 1 y S 2 }, Bindings: {}, Links: {}) Následující obrázek (a) ukazuje grafickou notaci popisující plány, podobn jako u individuálních operátor$. Další obrázek (b) ilustruje poþáteþní plán pro problém boty-a-ponoåky: 102

Zaèátek Zaèátek Poèáteèní stav Koncový stav LeváBotaObuta, PraváBotaObuta Konec Konec (a) (b) V þásti (a) jsou problémy definovány þásteþnými plány obsahujícími pouze kroky Zaþátek a Konec. Do poþáteþního stavu se vstupuje vlivem efektu kroku Zaþátek, cílový stav je pedpokladem kroku Konec. Omezení na poadí je ukázáno šipkami mezi bloky. V þásti (b) je poþáteþní plán pro problém boty-a-ponoåky. Následující obrázek ukazuje plán s þásteþným uspoádáním, který je ešením daného problému, a dále šest linearisací plánu: Plán èásteèného poøadí: Plán úplného poøadí: Start Start Start Start Start Start Start Levá Pono ka Pravá Pono ka Pravá Pono. Levá Pono. Pravá Pono. Levá Pono. Levá Pono. Pravá Pono. Levá Pono. Pravá Pono. Pravá Pono. Pravá Bota Levá Pono. Levá Bota LeváPono kaobleèena PraváPono kaobleèena Levá Bota Pravá Bota Pravá Bota Levá Bota Pravá Bota Levá Bota Levá Pono. Pravá Pono. Levá Bota Pravá Bota Levá Bota Pravá Bota Levá Bota Pravá Bota LeváBotaObuta, PraváBotaObuta Konec Konec Konec Konec Konec Konec Konec Zde je vidt, åe plán þásteþného uspoádání je silný, protoåe umoåuje plánovaþi ignorovat výbry, které nemají åádný vliv na korektnost plánu. S nar$stajícím poþtem krok$ roste poþet moåných výbr$ uspoádání exponenciáln. 103

ešení ešení je plán, který m$åe agent provést a který zaru þuje dosaåení cíle. Pro kontrolu, zda plán je ešením, by bylo nutno trvat na tom, åe pouze pln specifikované a zcela uspoádané plány mohou být ešeními. To je však nevyhovující ze t í d $vod$: (1) Pro problémy typu z posledního obrázku je plánovaþ$m pirozenjší vracet plán s þásteþným uspoádáním neå libovoln vybírat jednu z mnoha linearisací plánu. (2) N kteí agenti jsou schopni provádt akce paraleln, takže dává smysl umoånit ešení s paralelními akcemi. (3) Pi vytváení plán$, které mohou pozdji být kombinovány s jinými plány pi ešení rozsáhlejších problém$, se vyplácí uchovávat flexibilitu poskytovanou þásteþným uspoádáním akcí. Proto se umoåují þásteþn uspoádané plány jako ešení pi pouåití jednoduché definice: ešení je kompletní a konsistentní plán: Kompletní plán je ten, v nmå kaådý pedpoklad kaådého kroku je dosaåen njakým jiným krokem. Krok dosáhne pedpokladu, pokud pedpoklad je jedním z efekt$ kroku a pokud åádný jiný krok nem$åe zrušit platnost pedpokladu. Formálnji vzato, krok S i dosáhne pedpokladu c kroku S j pokud: 1. S i y S j a c Effects(S i ); 2. neexistuje åádný krok S k takový, åe ( c) Effects(S k ), piþemå platí S i y S k y S j v nkteré linearisaci plánu. 4 Konsistentní plán je ten, v nmå nejsou åádné kontradikce v uspoádání nebo vázání promnných. Kontradikce vznikne, kdyå platí jak S i y S j tak S j y S i nebo platí jak v = A a v = B (pro dv r$zné konstanty A a B). Zárove platí, åe jak y tak = jsou transitivní, takåe nap. plány s S 1 y S 2, S 2 y S 3 a S 3 y S 1 jsou nekonsistentní. 4 ýásteþný plán z posledního obrázku je ešením, protoåe všechny pedpoklady jsou dosaåeny. Z uvedených definic je zejmé, åe libovolná z linearisací ešení je také ešením. Agent m$åe provádt kroky v libovolném poadí s omezeními a vådy má zaruþeno dosaåení cíle. 104

Pi þásteþném regresívním plánování plánovaþ prohledává prostor plán$. Zaþíná s poþáteþním plánem, kde jsou representovány kroky zaþátku a konce, a pak iteraþn pidává jednotlivé kroky. Pokud je dosaåeno nekonsistentního plánu, plánovaþ se vrátí a zkouší jinou vtev v prohledávaném prostoru. Aby bylo hledání smrováno k poåadovanému cíli, plánovaþ pouze uvaåuje pidání krok$, které slouåí k dosaåení pedpokladu, který doposud nebyl splnn. Pozn.: Je zejmé, åe plánovaþ musí udråovat záznam o cest, aby se mohl v pípad nutnosti vracet. Píklad vyešení problému s mlékem, banány a vrtaþkou (cílem je mít všechno doma): Start At(Home) Go(HWS) At(HWS) Sells(HWS,Drill) Buy(Drill) At(HWS) Go(SM) At(SM) Sells(SM,Milk) Buy(Milk) At(SM) Sells(SM,Ban.) Buy(Ban.) At(SM) Go(Home) Have(Milk) At(Home) Have(Ban.) Have(Drill) Finish (At(home) je doma, Go(HWS) je Jdi_do(äelezáství), tj. HardWare Shop, At(x) je být v x, SM je SuperMarket, Sells(SM,Milk) je Prodává(Supermarket,Mléko) apod., Buy(Drill) je Kup(Vrtaþku) apod.). Jediná nejednoznaþnost v plánu je moånost zvolit jakékoliv poadí Buy(Milk) a Buy(Bananas), protoåe na tom poadí nezáleåí vzhledem k míst nákupu. 105

Znalostní inåenýrství pro plánování Metodologii ešení problém$ s plánováním lze vyjádit takto: 1. Definice problému. 2. Definice podmínek, operátor$ a objekt$. 3. Zakódování operátor$ do domény. 4. Zakódování popisu výskytu specifického problému. 5. Pedloåení problému plánovaþi a získání plán$. Píklad pro tzv. problém blok$: 1. 2. 3. Definice problému: doména obsahuje soubor blok$ (kostek) na stole. Kostky mohou být kladeny na sebe, ale pouze jedna urþitá kostka m$åe být umístna na jinou. Ruka robota m$åe zvednout njakou kostku a pesunout ji do jiné polohy (na st$l nebo na jinou kostku). V jednom þasovém kroku m$åe být manipulováno s jednou kostkou, nelze manipulovat s kostkou, která má další kostku/kostky na sob. Cílem je vådy vybudovat jeden nebo více sloupk$ z kostek, piþemå sloupky jsou popsány pomocí toho, jaké kostky jsou na jiných kostkách nap. cílem m$åe být vytvoit dva sloupky, jeden s kostkou A na kostce B a druhý s kostkou C na D. Definice podmínek, operátor$ a objekt$: Objekty v této domén jsou kostky a st$l. Representovány jsou konstantami. K indikaci, åe kostka b je na x (x je bu jiná kostka nebo st$l) se pouåije On(b,x). Operátor pro pesun kostky b z pozice na x na y je Move(b,x,y). Jednou z podmínek pesunu b je, åe na ní není åádná jiná kostka, tedy v logice prvního ádu: }x On(x,b) nebo alternativn ~x On(x,b). Vzhledem k representaci plán$ (viz výše) je zapotebí vytvoit predikát representující fakt, åe åádná kostka není na b a pak zajistit, åe operátory korektn tento predikát zpracují nap. zde Clear(x) bude znamenat, åe na x není nic. Operátory: operátor Move pesune jednu kostku b z x na y pokud na b a na y není nic; jakmile je pesun hotový, x je volné (nic na nm není), ale y jiå nadále volné není (je na nm kostka). Formálnjší zápis operátoru Move: 106

Op(Action: Move(b,x,y), Precond: On(b,x) Y Clear(b) Y Clear(y), Effect: On(b,y) Y Clear(x) Y On(b,x) Y Clear(y)) Zde ale operátor nezpracovává Clear správn, pokud x nebo y je na stole. Pokud x = Table, výsledkem je Clear(Table), ale st$l nem$åe být zbaven kostek. Pokud y = Table, pak má podmínku Clear(Table), ale st$l nemusí být bez niþeho, aby se na nj dala umístit kostka. K vyešení uvedených potíåí se zavede další operátor MoveToTable pro pesun kostky b z x na Table: Op(Action: MoveToTable(b,x), Precond: On(b,x) Y Clear(b), Effect: On(b,Table) Y Clear(x) Y On(b,x)) K tomu je nutno zavést ješt interpretaci Clear(x) ve smyslu na x je volno a lze tam uloåit kostku. Clear(Table) pak vådy bude souþástí poþáteþní situace a je korektní, åe Move(b,Table,y) má jako výsledek Clear(Table). Jedinou nedokonalostí je nyní fakt, åe nic nem$åe zabránit plánovaþi v pouåití Move(b,x,Table) místo MoveToTable(b,x). V pípad uskuteþnní to vede k vtšímu prostoru prohledávání, neå je nutno, ale nevede to k nekorektním odpovdím. Lze to odstranit zavedením dalšího predikátu Block a pidat Block(b) Y Block(y) k podmínkám v Move (zajistit, åe jak b tak y jsou kostky, nikoliv pipustit, åe by se pro y mohlo jednat taky o st$l zpracovávaný jako kostka, pestoåe má urþité odlišnosti nap. m$åe na nm být více kostek, na kostce ale nikoliv). Dalším problémem by mohla být vcelku neopodstatnná operace Move(B,C,C), která by mla kontradiktorické výsledky. Obecn se tyto problémy ignorují, protoåe nemají åádný vliv na vytvoené plány (pesun kostky B z C na C je v podstat prázdná operace). Bylo-li by nutno zajistit, aby k tomu nedocházelo, pak by se do podmínek musely zavést nerovnosti: b /= x /= y, tj. všechny objekty jsou r$zné. 107

Píklad pro tzv. Shakeyho problém: P$vodní program v Strips byl navråen k ízení robota jménem Shakey (jméno pochází z faktu, åe jeho motory ho pi pohybu þinily ponkud nestabilním to shake = kymácet se, tást se). Robot Shakey byl vyvinut jako souþást robotického projektu ve SRI (Stanford Research Institute) v Kalifornii poþátkem 70. let a potuloval se v institutu po místnostech a chodbách. Vtšina Shakeyho þinností byly simulace, ale obþas se skuteþn pohyboval v prostorách institutu s cílem vzít nco nebo pemístit nco. Obrázek ukazuje Shakeyho svt, který se skládal ze þty místností, podél nichå vedla chodba spojená s místnostmi dvemi. Shakeyho úkolem bylo se pohybovat z místnosti do místnosti, posunovat pohyblivými objekty (krabicemi), vylézt na pevný objekt a slézt dol$ (opt krabice), a zapnout/vypnout svtlo v místnosti: Ls4 Místnost 4 Dveøe 4 Ls3 Shakey Místnost 3 Dveøe 3 Chodba Ls2 Místnost 2 Dveøe 2 Box3 Box2 Ls1 Box4 Místnost 1 Dveøe 1 Box1 Pozn. 1: Ls je zapínaþ/vypínaþ osvtlení místnosti ( light switch). Pozn. 2: Shakey nebyl mechanicky dost obratný ke skuteþnému lezení po krabicích a ovládání vypínaþe svtla, ale Strips byl schopen vytvoit plány. 108

Pro Shakeyho lze urþit následující literály a operátory: 1. Jdi ze souþasné pozice na jinou pozici y: Go(y). Podmínka At(Shakey,x) stanovuje okamåitou pozici a je vhodné, aby x i y bylo v téåe místnosti r: In(x,r) Y In(y,r). Aby bylo moåné naplánovat cestu z jedné místnosti do druhé, povaåují se tytéå dvee za souþást obou místností z hlediska In. 2. Posu objekt b z místa x na místo y: Push(b,x,y). Zde mohou opt být x i y v téåe místnosti. Zavést je nutno predikát Pushable(b), tj. pemístitelnosti, ale jinak je situace obdobná Go. 3. Vylez na box b: Climb(b). Je nutno zavést predikát On (kde robot je) a konstantu Floor (podlaha), a zajistit, aby podmínka pro Go byla On(Shakey,Floor), tj. aby robot lezl z podlahy na krabici (a resp. zpt), nikoliv nap. skákal z krabice na krabici. Pro Climb(b) musí být podmíka, åe Shakey je At na tomåe míst jako je b, a b musí být tzv. Climbable (tj. b je pedmt, na njå lze vylézt, tedy vylezitelný). 4. Slez dol$ z boxu b: Down(b). V principu zrušení efektu vylezení Climb. 5. Zapni svtlo: TurnOn(ls). Vzhledem k tomu, åe Shakey na vypínaþ ze zem nedosáhl, musel pro rozsvícení svtla v místnosti vylézt na krabici b u vypínaþe ls. 6. Vypni svtlo: TurnOff(ls). Obdoba Zapni. Jazyk plánování by musel mít k dispozici podmínku pro urþení stavu svtla, aby se dalo urþit, zda svtlo je zapnuto nebo vypnuto kv$li schopnosti pepínání z jednoho stavu do druhého. V jazyce Strips bylo nutno pro kaådý box pidat individuální literál do poþáteþního stavu, zatímco v situaþním kalkulu se napíše axiom, který íká, åe kaådý box lze posunout a na kaådý lze vylézt. Rovnå by bylo zapotebí zaþlenit kompletní mapu svta v poþáteþním stavu pomocí term$, které objekty jsou v které místnosti, tj. pomocí In. Stejn by se popsalo pomocí At, kde který objekt pesn je. Jazyk Strips (a jemu obdobné) umoåují representovat jednoduché domény pomocí operátor$ Strips, ale návrh mnoåiny správných a potebných operátor$ a predikát$ není v$bec snadný. 109

Praktické plánování V této èásti bude zmínka o existujících plánovaèích, které jsou používány ve složitých, reálných doménách. Montáž, integrace a verifikace kosmické lodi European Space Agency používá plánovaè nazvaný Optimum-AIV na pomoc montáži, integraci a verifikaci kosmických lodí (AIV = Assembly, Integration, and Verification). Systém se používá pro generování plánù a monitorování jejich provádìní. Bìhem monitorování systém upozoròuje uživatele na pøipravované èinnosti a je schopen navrhovat úpravy plánu, když je nìjaká èinnost provedena pozdì, zrušena, nebo se objeví nìco neoèekávaného. Je to zejména schopnost systému zmìnit plán, co jej èiní principiálnì význaèným. Systém sám neprovádí plány; ty jsou provádìny lidmi pomocí standardních konstrukèních a testovacích zaøízení. V podobnì složitých projektech se obecnì používají plánovací nástroje pocházející z oblasti operaèního plánování, napø. diagramy PERT nebo metoda kritické cesty. Tyto nástroje v zásadì používají jako vstup ruènì navržený kompletní plán rozdìlený na sub-plány v poøadí rozdìleném na èásti a generují pro to optimální rozvrh èinností. Akce jsou považovány za objekty, které vyžadují nìjaký èas a mají omezení vzhledem k poøadí èinností; jejich efekty se neuvažují. Tím se lze vyhnout použití znalostního inženýrství a pro jednorázové problémy to mùže obyèejnì být zcela pøimìøené øešení. Avšak pro vìtšinu praktických aplikací existuje mnoho souvisejících problémù k øešení, takže se obvykle vyplácí popis domény a pak automatické generování plánù. To je dùležité zejména bìhem provádìní plánù pokud krok plánu selže, je obyèejnì nutno plán rychle zmìnit (upravit), aby se projekt znovu uvedl v život. Diagramy metody PERT neobsahují pøíèinná propojení a další informaci potøebnou pro to, aby bylo zjevné, jak zmìnit plán, a lidmi provádìné zmìny jsou èasto pøíliš pomalé. 110

Úspìch systémù umìlé inteligence z reálného svìta vyžaduje integraci do prostøedí, v nìmž jsou aktivní. Plánovaè musí být schopen pøístupu do existujících databází s informacemi o projektu, nezávisle na formì v níž mohou informace být. Zároveò representace vstupù a výstupù plánovaèe by mìly být ve formì, která je jak expresívní, tak snadno srozumitelná uživateli. Døíve (velmi struènì) zmínìný jazyk Strips je pro doménu AIV nedostaèující, protože nedokáže vyjádøit ètyøi základní koncepty: 1. Hierarchické plánování: Je zjevné, že vypuštìní kosmické lodi je mnohem složitìjší než nakupování potravin v obchodì. Jednou ze schùdných cest zvládnutí složitosti je specifikace plánù na rùzných úrovních detailù. Plán na vrcholné úrovni mùže zahrnovat: pøíprava raketového stupnì, pøíprava kosmické kabiny, naložení kosmické lodi potøebnými vìcmi, vypuštìní. K tomu mùže být velké množství meziúrovní pøed tím, než se dojde k úrovni zcela konkrétních provádìcích akcí: vlož matici A do otvoru B a sešroubuj se šroubem C. Pøidání schopnosti representovat hierarchické plány mùže tvoøit rozdíl mezi uskuteènitelnou a neuskuteènitelnou akcí a mùže zpùsobit snadnìjší porozumìní výslednému plánu. Také pomáhá dovolit uživateli, aby poskytl plánovaèi vodítko ve formì èásteènì specifikovaného, abstraktního plánu, pro nìjž plánovaè doplní detaily. 2. Komplexní podmínky: Operátory Strips jsou v principu proposièní umožòují promìnné, ale jejich použití je velmi limitované. Neexistuje universální kvantifikace, bez níž není možno vyjádøit fakt, že operátor Launch (Vypuštìní) zpùsobí pøemístìní všech objektù lodi na obìžnou dráhu. Podobnì tomu, operátory Strips jsou nepodmínìné: nelze vyjádøit fakt, že pokud všechny systémy jsou vypuštìny, Launch umístí loï na obìžnou dráhu, jinak loï skonèí v oceánu. 111

3. Èas: Jazyk Strips je založen na situaèním kalkulu, proto pøedpokládá, že všechny akce se vyskytnou bezprostøednì a že každá akce následuje po nìjaké jiné bez pøerušení. Problémy reálného svìta vyžadují lepší model èasu musí representovat fakt, že projekty mají koneèné termíny (napø. loï musí být vypuštìna 17. èervna), akce nìjaký èas trvají (testování montáže XYZ trvá 6 hodin) a jednotlivé kroky plánu vyžadují èasová okna (napø. stroj pro testování montáže XYZ je k dispozici od 1. kvìtna do 1. èervna vyjma víkendù, ale musí se reservovat týden dopøedu). Tradièní techniky operaèního plánování mìly jako hlavní pøínos uspokojování èasových omezení pro kompletní plán rozdìlený na èásti. 4. Zdroje: Projekt má normálnì rozpoèet, který nelze pøekroèit, takže plán musí být omezený na spotøebu èástky, která je k dispozici. Podobnì existují limity na poèet pracovníkù k dispozici a na poèet montážních a testovacích stanic. Omezení zdrojù se mùže týkat vìcí potøebných v urèitý èas (napø. lidé) nebo celkového použitelného množství (napø. peníze). Popis akcí proto vyžaduje zahrnutí spotøeby a vytváøení zdrojù, stejnì jako plánovací algoritmy musí být schopny zpracovat úèinnì omezení zdrojù. Optimum-AIV je založen na plánovací architektuøe z r. 1991, zvané O-Plan, která umožòuje používat jazyka se znaènou možností výrazù pro representaci èasu, zdrojù a hierarchických plánù. Rovnìž pøijímá heuristiky pro vedení vyhledávání a zaznamenává dùvody každého výbìru, což usnadòuje pozdìjší úpravy plánu, pokud je zapotøebí. O-Plan byl použit na mnoho problémù, napø. opatøování software v Price Waterhouse, plánování procesu montáže zadní osy u aut zn. Jaguar, a kompletní plánování produkce továrny Hitachi. Plánování èinnosti pracovištì Problémy øešené rùznými pracovišti spoèívají v obstarání surovin a dílù a jejich smontováním do koneèných výrobkù. Problém lze rozdìlit na plánovací úlohu (rozhodnutí, které montážní kroky budou uskuteènìny) a rozvrhovou úlohu (rozhodnutí, kdy a kde bude každý krok uskuteènìn). V mnoha výrobních zaøízeních se plánuje manuálnì a rozvrh se dìlá pomocí automatizovaného nástroje. 112

V Hitachi se O-Plan používá v plánovacím a rozvrhovém systému zvaném Tosca. Typický problém zahrnuje výrobu 350 rùzných výrobkù, 35 montážních strojù a pøes 2000 rùzných operací. Plánovaè poskytuje rozvrhy na 30 dní pro osmihodinové smìny. Obecnì Tosca sleduje plán rozdìlený na èásti, s nejmenším závazkem. Umožòuje také nízkozávazková rozhodování: volby, které kladou omezení na plán nebo na nìjaký jeho konkrétní krok. Napø. systém mùže vybrat rozvrh akce pro urèitou tøídu strojù bez konkretizace stroje. Továrny s menší diversitou výroby èasto sledují pevný plán, ale stále potøebují automatizované rozvrhování. Systém ISIS z r. 1984 byl navržen speciálnì pro rozvrhování a poprvé testován na výrobì èástí turbíny firmy Westinghouse. Továrna produkuje tísíce rùzných lopatek turbín a pro každý typ existuje jeden èi více plánù zvaných smìrování procesu. Pøi obdržení objednávky je vybrán jeden z plánù a je pro nìj vytvoøen èasový rozvrh. Èas závisí na kritiènosti objednávky: zda jde o urgentní výmìnu lopatky èinného zaøízení, plánovanou údržbovou souèástku se spoustou èasu, avšak s nutností pøesnì splnit datum, nebo prostì objednávka zásob k vytvoøení reservy. Tradièní metody plánování, jako PERT, jsou schopny najít vyhovující poøadí krokù vzhledem k èasovým omezením, ale ukazuje se, že lidé-plánovaèi používající PERT spotøebují 80-90% svého èasu na komunikaci s pracovníky o tom, co jsou skuteèná omezení. Úspìšný automatický plánovaè potøebuje být schopen representovat a zdùvodnit tato pøídavná omezení. Dùležité faktory zahrnují cenu surovin, které jsou k dispozici, hodnotu vyrobeného, ale zatím neprodaného zboží, pøesné pøedpovìdi budoucích potøeb, a minimální narušení existujících postupù. ISIS používá hierarchické hledání s minimálním závazkem pro nalezení vysoce kvalitních plánù, které uspokojují všechny uvedené požadavky (minimální závazek viz døíve uvedený popis representace plánù v podstatì odklad ne právì v daném okamžiku aktuálních záležitostí do jiné fáze). Plánování kosmických letù Plánovací a rozvrhové systémy jsou v této oblasti využívány rozsáhle, a to jak pro plánování výprav lodí, tak i pro jejich konstrukci. Dùvodem je pøedevším to, že kosmické lodì jsou mimoøádnì nákladné a také nìkdy obsahují lidi, což v pøípadì havárie mùže mít extrémnì vysokou cenu škody a pøinést nenahraditelné ztráty. Kromì toho se lety uskuteèòují v prostoru neobsahujícím mnoho dalších agentù, kteøí by mohli narušit oèekávané výsledky. 113

Plánovaèe byly a jsou používány pozemními týmy pro Hubblùv teleskop a nejménì pro tøi lodì: Voyager, UOSAT-II a ERS-1. V každém pøípadì je cílem organizace pozorovacího zaøízení, pøenašeèù signálù a kontrola mechanismù pro nastavení a udržování výšky a rychlosti, aby se maximalisovala informace získaná z pozorování za pøedpokladu dodržování omezení na èas a energii. Plánování misí èasto zahrnuje velmi složitá èasová omezení, zejména ty mise, které obsahují periodické události. Napø. ERS-1 (satelit vypuštìný z European Earth Resource Observation) uskuteèní jeden obìh Zemì za 100 minut a do téhož bodu se vrátí každých 72 hodin. Pozorování každého bodu na zemském povrchu mùže být provedeno v libovolném z mnoha èasových okamžikù, navzájem oddìlených 72 hodinami, ale v jiných èasech nikoliv. Satelity mají omezení zdrojù výstupní energie nemohou pøekroèit pevnì stanovené maximum a musí se zajistit, aby nevyèerpaly pøíliš mnoho energie za èasovou periodu. Satelity lze považovat za typ pracovištì s plánovaným rozvrhem èinností, kde teleskopy a další zaøízení jsou výrobní stroje a pozorování jsou výrobky. Hubblùv teleskop je dobrým pøíkladem potøeby automatického plánování a rozvrhování. Po svém vypuštìní v dubnu 1990 bylo objeveno, že primární zrcadlo má chybu v nastavení ohniska. Pomocí Bayesových technik pro rekonstrukci obrazu byl pozemský tým schopen chybu kompensovat do stupnì, který umožnil pøedávání nových a dùležitých informací o Plutu, o gravitaèních èoèkách, o supernovì, atd. V r. 1993 astronauti z raketoplánu opravili vìtšinu problémù primárního zrcadla, èímž otevøeli nové možnosti pozorování. Pozemní tým neustále objevuje více možností, které má èi nemá HST k dispozici a bylo by zcela nemožné aktualisovat plány pozorování bez automatických nástrojù. Kterýkoliv astronom mùže pøedložit žádost. Žádosti jsou dìleny na vysokoprioritní (70% pozorovacího èasu), nízkoprioritní (podle èasových možností) a zamítnuté. Návrhy pøicházejí v poètu cca 1 za den, což znamená, že je jich více, než je možno uskuteènit. Každý návrh obsahuje specifikaci, který pozorovací nástroj by mìl být namíøen na urèitý nebeský objekt a jaký druh snímku by se mìl udìlat. Nìkterá pozorování lze udìlat kdykoliv, jiná závisejí na faktorech jako postavení planet a zda HST je v zemském stínu. Existují unikátní omezení pro tuto doménu napø. astronom mùže žádat o periodická pozorování quasaru (velmi vzdálená raná vývojová fáze galaxie) po nìkolik mìsícù nebo let za stejných podmínek stínu Zemì. 114

Plánovací systém HST je rozdìlen na dvì èásti. Dlouhodobý plánovaè SPIKE prvnì dìlá rozvrh pozorování v segmentech po jednom týdnu. Heuristikou je pøiøazování vysokoprioritních návrhù tak, aby mohly být všechny provedeny, dokud zbývá nejménì 20% kapacity. To se dìlá asi rok pøedem. Mnohaletý rozvrh s pøibližnì 5000 pozorováními lze vytvoøit za ménì než hodinu, takže zmìna plánu je snadná. Po naplánování každého segmentu se použije krátkodobý plánovaè SPSS, jenž dìlá detailní plánování pro každý segment a naplòuje èas mezi vysokoprioritními úlohami mnoha nízkoprioritními podle možností. Systém rovnìž vytváøí pøíkazy pro nastavení polohy základny tak, aby se pozorování mohla provést. Kontroluje proveditelnost návrhù a detailních rozvrhù mnohem rychleji, než dokáží lidé-experti. Budovy, letadla a pivovary SIPE (System for Interactive Planning and Execution monitoring systém pro interaktivní plánování a sledování výkonu èinností) byl prvním plánovaèem, který se zabýval problémem zmìny plánu, a také prvním, který použil nìkteré dùležité kroky vùèi expresívním operátorùm. Je podobný systému O-Plan v rozsahu vlastnosti a aplikovatelnosti. Byl použit v nìkterých demonstraèních projektech pro nìkolik domén, vèetnì plánování operací na palubì letadla a plánování výroby pro jeden pivovar v Austrálii. Jiná studie použila SIPE pro plánování konstrukce výškových budov jedna z nejsložitìjších domén, do které se plánovaè pustil. SIPE umožòuje deduktivním pravidlùm operovat nad stavy, takže uživatel nemusí specifikovat všechny relevantní literály jako výsledky pro každý operátor. Tento systém je aplikovatelný na široký rozsah domén, ale jeho obecnost je spojena s velkými náklady. Napø. v doménì konstrukce budov se zjistilo, že 2.5 SIPE potøebuje èas úmìrný O(n ) pro n-poschoïovou budovu. Z toho plyne vysoký stupeò interakce mezi poschodími, pøièemž ve skuteènosti je ten stupeò mnohem nižší: pøi sledování linie stavby od zemì nahoru a zajištìní toho, aby výtahové šachty byly propojeny je možné získat výkonnost mnohem bližší složitosti O(n). Uvedené pøíklady poukazují na souèasnou ideu plánovacích systémù. Jsou dost dobré pro modelování složitých domén, ale dosud nebyly zcela prakticky pøijaty mimo omezený poèet pilotních projektù. Je zapotøebí dále zvýšit stupeò flexibility a výkonnosti, aby se tyto systémy staly bìžným nástrojem. 115

Hierarchická dekomposice Problém s nákupem, popsaný døíve, lze vyøešit použitím vhodných metod tak, že je získáno øešení na pomìrnì vysoké úrovni abstrakce (pro agenta). Napøíklad plán typu: [Go(Supermarket), Buy(Milk), Buy(Bananas), Go(Home)] je dobrý popis toho, co dìlat, na vysoké úrovni, ale je velmi daleko od toho, co je zapotøebí agentovi pøedat formou instrukcí do jeho efektorù. Pro agenta je to nedostateèné z hlediska toho, co by mìl skuteènì udìlat. Na druhé stranì by nízko-úrovòový plán typu: [Forward (1cm), Turn (1deg), Forward (1cm),...] obsahoval mnoho tisíc krokù a øešení problému nákupu by bylo nesmírnì dlouhé. Zejména by vznikl problém extrémnì velikého prostoru plánù velké délky a je pravdìpodobné, že by metody hledání nenašly øešení v rozumném èase. Uvedené dilema se v praktických plánovaèích øeší pomocí myšlenky zavedení hierarchické dekomposice, která vychází z dekomposice abstraktních operátorù na skupinu krokù, které vytváøejí plán, který implementuje operátor. Jako pøíklad lze uvážit problém stavby domu. Abstraktní operátor Build(House) (postav dùm) lze rozložit na plán, který se skládá za ètyø krokù: Obtain Permit (získej povolení), Hire Builder (najmi stavitele), Construction (stavba), a Pay Builder (zapla staviteli). Kroky ukázaného vysokoúrovòového plánu lze dále rozložit na ještì specifiètìjší plány. Na obrázku je znázornìna dekomposice kroku stavby domu. V dekomposici lze pokraèovat tak dlouho, až je dosažena nejnižší úroveò typu Hammer(Nail) [Zatlouci(Høebík)]. Plán je kompletní v okamžiku, kdy je každý krok ve formì primitivního operátoru, tj. operátoru, který mùže být pøímo proveden agentem. Hierarchická dekomposice je nejúèinnìjší, pokud lze operátory dekomponovat nìkolika zpùsoby. Napø. operátor Build(Walls), èili Postav(Zdi), lze rozložit na plán zahrnující døevo, cihly, beton nebo vinyl (zdi lze stavìt z rùzného materiálu a plán by to mìl respektovat). 116

K uskuteènìní nastínìné myšlenky dekomposice je nutno udìlat dvì vìci:! Do jazyka typu Strips dát rozšíøení, která umožòují neprimitivní operátory.! Modifikace plánovacích algoritmù tak, aby bylo možné nahradit neprimitivní operátory jejich dekomposicemi. 117

Rozšíøení jazyka Pro zaèlenìní hierarcické dekomposice je zapotøebí pøi popisu každé problémové domény upravit dvì vìci:! Rozdìlení souboru operátorù na primitivní a neprimitivní. V doménì stavby domù je Zatlouci(Høebík) operátor primitivní a Postavit(Dùm) neprimitivní. Obecnì je rozdíl mezi primitivními a neprimitivními operátory relativní a záleží na agentovi, který bude plán vykonávat. Pro dodavatele stavby je operátor typu Namontovat(PodlahováPrkna) primitivní (protože pouze objedná dìlníka k montáži podlahy), pro dìlníka neprimitivní (a pro nìj bude primitivní Zatlouci(Høebík)).! Pøidání souboru dekomposièních metod. Každá metoda je výraz typu Decompose(o,p), což znamená, že neprimitivní operátor, který je spojen s o, mùže být rozložen do plánu p. Dekomposice Stavby (Construction) z pøedchozího obrázku: Decompose(Construction, Plan(Steps:{S 1: Build(Foundation), S 2: Build(Frame), S 3: Build(Roof), S 4: Build(Walls), S 5: Build(Interior)} Orderings: {S1 S 2 S 3 S 5, S 2 S 4 S 5}, Bindings: {}, Links: { })) Dekomposièní metoda je v podstatì procedura nebo makro definující operátor. Musí být zajištìno, aby dekomposice byla korektní implementací operátoru. Platí, že plán p korektnì implementuje operátor o, pokud se jedná o kompletní a konsistentní plán pro daný problém k dosažení úèinkù o za pøedpokladù pro o:! p musí být konsistentní (tj. neexistuje žádná kontradikce v uspoøádáních nebo vazbách promìnných).! Každý úèinek (efekt) operátoru o musí být prosazen nejménì jedním krokem plánu p (a není popøen nìjakým jiným, pozdìjším krokem plánu p).! Každá podmínka krokù v p musí být dosažena nìjakým krokem v p nebo být jednou z podmínek operátoru o. 118

Tím je zaruèeno, že je možné nahradit neprimitivní operátor jeho složkami (dekomposicemi) a vše je správnì navázáno na sebe. Je samozøejme vždy nutné zkontrolovat možná ohrožení pocházející z interakcí mezi novì zavedenými kroky s podmínkami a již existujícími kroky s podmínkami není ale nutno si dìlat starosti s interakcemi mezi kroky obsaženými v samotné dekomposici (ta musí být sama o sobì udìlána zcela korektnì). Za pøedpokladu, že není pøíliš mnoho interakcí mezi rùznými èástmi plánu, hierarchické plánování umožòuje vybudovat velmi složité plány kumulativnì z jednodušších sub-plánù. Je také umožnìno vygenerovat plány, uložit je, a pak znovu použít v pozdìjších plánovacích problémech. Následující obrázek ukazuje detailnìjší diagram pøíkladu dekomposice kroku plánu v kontextu rozsáhlejšího plánu: Analýza hierarchické dekomposice Hierarchiská dekomposice zde byla ukázána struènì, ve své základní èásti. Je založena na obdobné myšlence jako použití maker nebo procedur v programování umožnit programátorovi nebo znalostnímu inženýrovi specifikaci problému po èástech majících rozumnou velikost. Èásti mohou pak být hierarchicky kombinovány pro vytváøení velkých plánù, aniž by vznikaly enormní kombinatorické náklady spojené s konstrukcí z primitivních operátorù. 119

Pøedpokládejme, že existuje zpùsob vzájemného propojení ètyø abstraktních operátorù k postavení domu (viz obrázek z podkapitoly Hierarchická dekomposice). Tento zpùsob se nazývá abstraktní øešení konsistentní a kompletní plán obsahující abstraktní operátory. Nalezení malého abstraktního øešení (pokud existuje), by nemìlo být pøíliš nároèné. Pokraèování tohoto procesu by mìlo vést k dosažení primitivního plánu bez pøílišného navracení se zpìt po cestách hledání. Zde se ovšem pøedpokládá, že hledání abstraktního øešení a odmítání jiných abstraktních plánù jako nekonsistentních je úèelné. Mìly by platit tyto vlastnosti:! Je-li plán p abstraktním øešením, pak existuje primitivní øešení, pro nìž je p abstrakcí. Pokud to skuteènì platí, pak jakmile je nalezeno abstraktní øešení, lze odstranit z vyhledávacího stromu všechny ostatní abstraktní plány.tato vlastnost se nazývá øešení smìrem dolù.! Je-li abstraktní plán nekonsistentní, pak neexistuje primitivní øešení, pro nìž je ten plán abstrakcí. Pokud to skuteènì platí, pak lze odøíznout veškeré potomky libovolného nekonsistentního abstraktního plánu. Tato vlastnost se nazývá øešení smìrem nahoru, protože to rovnìž znamená, že všechny kompletní abstrakce primitivních øešení jsou abstraktními øešeními. Tyto dvì vlastnosti lze znázornit graficky: Každý uzel representuje celý plán (nikoliv pouze jeden krok), každá hrana representuje dekomposièní krok, v nìmž je abstraktní operátor expandován. 120

V koøeni stromu je velmi abstraktní plán, v listech jsou plány s pouze primitivními kroky. Uzly s tuènì znázornìnými obrysy jsou (abstraktními) øešeními. Uzly s teèkovanými obrysy jsou nekonsistentní (tj. nejsou bezesporné). Plány oznaèené X nemusí být plánovacím algoritmem zkontrolovány. Mohou být (hledáním zleva doprava) odøíznuty. Pøedpokládejme pro pøíklad jednoduchý model prohledávaného prostoru. Nech existuje nejménì 1 øešení s n primitivními kroky a dále, že možná ohrožení a omezení lze øešit v zanedbatelném èase vše, co bude nutno uvažovat, je pouze èas potøebný k výbìru správné množiny krokù. Obrázek ukazuje prostor hledání z hlediska parametrù b, s, a d: Øešení bude mít n = s krokù (zde je n = 64). Pøedpokladem je 1/b dekomposic d vedoucích k øešení. 121

Nehierarchický plánovaè by vygeneroval plán s n-kroky, pøièemž by pro každý krok vybíral z b možností (pøedpokládejme zde, že poèet dekomposic pro každý neprimitivní krok, b, je tentýž jako poèet aplikovatelných nových operátorù pro podmínku primitivního kroku). n V nejhorším pøípadì je tedy složitost O(b ). Pro hierarchické plánovaèe lze po- užít strategii hledání pouze tìch dekomposic, které vedou k abstraktním øešením (v ukázaném zjednodušeném modelu na obrázku je právì 1 z každých b dekomposic øešením v mnohem realistiètìjších modelech je zapotøebí uvážit, co dìlat, když je poèet øešení nulový nebo je jich více než 1). Plánovaè musí prohlédnout sb krokù v hloubce d = 1. V hloubce d = 2 je to dalších sb krokù pro každý dekomponovaný krok, ale zde musí dekomponovat jen 2 1/b z disponibilních krokù pro celkové množství bs. Celkový poèet uvažovaných plánù je tedy Rozdíl mezi nehierarchickým a hierarchickým plánovaèem je v nutnosti 30 prohlédnout 3 10 plánù (nehierarchický) oproti 252 (hierarchický). Øešení smìrem vzhùru a dolù se jeví jako enormì výkonná pokud ovšem není žádná ze tøí vlastností pro o (uvedených v podkapitole o rozšíøení jazyka) garantována, pak hierarchický plánovaè nebude lepší než nehierarchický v nejhorším pøípadì (v prùmìru mùže být lepší). Jako shrnutí lze øíci, že pùvodní plánovací jazyk umìlé inteligence vycházel z representace stavù a operátorù. Pro jednoduché èi umìle sestavené problémy je takový pøístup použitelný, avšak pro zpracování složitìjších a realistiètìjších domén je zapotøebí plánovací jazyk rozšíøit. 122

Existuje celá øada rozšíøení, každé z nich vyžaduje odpovídající zmìny v plánovacím algoritmu a vìtšinou dochází k obtížnému kompromisu mezi schopností vyjadøovat výrazy (expresivitou) a výkonností z hlediska nejhoršího pøípadu. V dosud existujících experimentech se ukázalo, že expresívnìjší representace, použité uvážlivì a s rozmyslem, mohou vést k nárùstu efektivnosti, pøestože se jedná o pomìrnì složitou úlohu. Situaèní kalkul a dokazování teorémù jsou z praktického hlediska nepoužitelné, ale vedly ke vzniku srozumitelného paradigmatu (plánování typu Strips). Jazyk Strips je pøíliš omezený pro komplexní, realistické domény, ale lze jej rozšíøit nìkolika smìry:! Plánovaèe, založené na rozšíøených versích Strips a na algoritmech používajících èásteèné uspoøádání a nejmenší závazek, se dosud ukázaly jako schopné zpracovat složité domény typu výprava kosmické lodi nebo výroba.! Hierarchická dekomposice umožòuje zahrnutí neprimitivních operátorù do plánù (je ovšem nutno znát dekomposici na primitivnìjší kroky).! Hierarchická dekomposice je nejúèinnìjší tehdy, pokud slouží ke zmenšení prohledávaného prostoru. Zmenšování (proøezávání stromu) je garantováno, pokud platí buï øešení smìrem dolù (každé abstraktní øešení mùže být dekomponováno do primitivních øešení) nebo øešení smìrem nahoru (nekonsistentní abstraktní plány nemají žádná primitivní øešení). Oblast plánování patøí v souèasnosti mezi oblasti umìlé inteligence, kterým je v ìnováno význaèné výzkumné úsilí vzhledem k potøebnosti rychlých a efektivních plánování v množství praktických problémù reálného svìta. 123

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: 10.12.2014 Umělá inteligence Evoluční metody

strana 2 Časová složitost úloh notace O() O(k), O(log n), O(n), O(n k ), O(n!), O(k n ), vyjadřuje počet operací potřebných pro zpracování vstupního souboru o velikosti n

strana 3 200 180 160 140 120 O(n) O(log n) O(n 2 ) O(n 3 ) O(2 n ) O(3 n ) O(n!) 100 80 60 40 20 0 5 10 15 20 25

strana 4 Kdy použít umělou inteligenci řešení složitých úloh je potřeba projít mnoho stavů úloha má mnoho řešení řešení úloh, kde nedokážeme definovat algoritmem přesný postup

strana 5 Evoluční metody skupina algoritmů inspirovaných procesem evoluce v přírodě používá populaci jedinců, kteří se v čase vyvíjí Genetický algoritmus Gramatická evoluce Diferenciální evoluce

strana 6 Evoluční metody metaheuristika strategie pro řízení procesu prohledávání nedeterministické algoritmy hledající přibližná řešení neřeší konkrétní problém = framework

strana 7 Evoluční metody - vlastnosti iterativní přímé nevyžaduje derivaci, pracuje pouze s aktuální množinou řešení stochastické (náhodné) nelze zaručit 2x stejný výsledek heuristické výsledek je rychlý odhad dobrého řešení

strana 8 Jiné metody inspirované přírodou PSO Simulované žíhání Ant colony

strana 9 Základní pojmy evolučních metod Jedinec chromozom - genotyp - fenotyp gen alela Populace Selekce Křížení Mutace

strana 10 Algoritmus evoluční metody Inicializace Iterativně Ohodnocení populace Selekce náhodně, podle fitness Křížení pravděpodobnost Mutace pravděpodobnost

strana 11 Ohodnocení populace - fitness každý jedinec je ohodnocen číslem hodnota fitness F(m) = vzorec je nutné navrhnout někdy velmi složité hledáme max nebo min

strana 12 Selekce Náhodně Ruleta - pouze pro maximalizaci Turnaj - lepší vyhrává různá pravidla bránící křížení podobných jedinců

strana 13 Operace křížení výměna částí chromozomů mezi jedinci prohledává prostor řešení daný aktuálním stavem populace

strana 14 Operace mutace náhodná změna jednoho nebo více genů přidává do populace nová řešení, která bychom křížením nemuseli objevit mění diverzitu populace

strana 15 Genetický algoritmus - obecně chromozom definuje úlohu kóduje řešení kódování binární celočíselné

strana 16 Nevýhody lokální minima nezaručuje nalezení opravdového optima algoritmus optimalizuje proti funkci fitness, nikoliv přímo řešení

strana 17 Hledání minima funkce binární chromozom - 16 bit Grayův kód

strana 18 Grayův kód 2 následující hodnoty se liší pouze 1 bitem

strana 19 Obchodní cestující Chromozom = ID měst křížení = záměna sekvence z určitého města + oprava mutace = otočení části chromozomu

strana 20 Gramatická evoluce chromozom je celočíselný, náhodná inicializace překlad chromozomu pomocí bezkontextové gramatiky vzniká program ve stromové struktuře

strana 21

strana 22 Gramatická evoluce - křížení záměna podstromů

strana 23 Gramatická evoluce - mutace nestrukturální strukturální

strana 24 Gramatická evoluce - Santa-Fe Ant Trail Generování algoritmu pro řízení mravence musí sbírat potravu <expr> ::= move turnleft turnright iffood(<expr>,<expr>) semic(<expr>,<expr>) semic3(<expr>,<expr>,<expr>)