Racionální agent

Z Wikipedie, otevřené encyklopedie
(přesměrováno z Agent (teorie systémů))

Racionální agent je pojem z oblasti multiagentních systémů (společného oboru umělé inteligence, ekonomiky, teorie her a teorie rozhodování) a označuje agenta (samostatnou entitu umístěnou do určitého prostředí, kde může vykonávat nějakou činnost), který pro každou možnou posloupnost vjemů volí akci maximalizující očekávanou míru výkonu a to na základě údajů daných touto posloupností vjemů a vnitřních znalostí agenta. Racionalitu zde chápeme jako schopnost (z hlediska času a kvality) plnění funkcí v prostředí v němž se agent nachází.[1] Jinak řečeno, je to systém schopný se rozhodnout ze známých informací tím nejlepším možným způsobem.

V literatuře se můžeme také setkat s použitím ekvivalence mezi pojmy racionální agent a inteligentní agent. Prvním autorem, který použil tuto ekvivalenci je Stuart Russel, který uvádí racionální chování jako alternativní charakteristiku inteligentního chování.[2] Pojmy nachází využití v sociologii (sociologický racionalismus), teorii her (racionální hráč) a filosofii umělé inteligence.

Vlastnosti a charakteristika[editovat | editovat zdroj]

Základní charakteristiky agenta:

Autonomnost

Nejčastěji uváděnou společnou vlastností agentů je autonomnost. Agent je autonomní v tom smyslu, že je schopen, pokud je to vůbec možné, dosáhnout svých záměrů bez vnějších zásahů, tj. pouze interakcí s prostředím. Nutno však dodat, že i tato, na první pohled zřejmá vlastnost, je předmětem řady diskuzí. Jako příklad uvedeme jednu z definic autonomie: vlastnost agenta, spočívající v samostatnosti rozhodování o svém chování v rámci daného systému, bez implicitní závislosti na jakýchkoliv jiných prvcích tohoto systému.[3]

Reaktivita

Schopnost průběžně reagovat na změny prostředí.

Intencionalita

Schopnost uvažovat o svých dlouhodobých cílech.

Sociální inteligence

Schopnost komunikovat s ostatními agenty.

Typy agentů - rozdělení[editovat | editovat zdroj]

Podle výše uvedených vlastností, složitosti organizace vnitřních komponent agentů a jejich racionality lze pak agenty rozdělit do následujících skupin:

Reaktivní agent[editovat | editovat zdroj]

Nejjednodušším typem agentů jsou tzv. reaktivní agenti. Reaktivní agent je charakterizován jako entita, která vykonává své akce výlučně na základě podnětů z vnějšího prostředí a jeho racionalita je přímým důsledkem interakce agenta s okolním světem. Agent neobsahuje žádné moduly pro tvorbu plánů ani moduly pro rozhodování, který cíl z potenciální množiny cílů bude sledovat. Agent bývá vnitřně uzpůsoben z tzv. kompetenčních modulů, což jsou moduly, které se aktivují na základě přijatého stimulu a vykonávají určitou akci. Rovněž může obsahovat interní stavy, které mohou ovlivňovat reaktivní chování agenta. Reaktivita je vedle autonomity druhou významnou vlastností agentů. Reaktivita zde tedy vystupuje jako vlastnost agenta, spočívající v jeho reakci na změny prostředí tak, aby dosáhl cíle, pro který byl navržen.[4]

Deliberativní (intencionální) agent[editovat | editovat zdroj]

Při pohledu na agenta jako na samostatnou entitu můžeme říci, že se jeho chování blíží autonomnímu chování lidí. Agent má vlastní symbolickou reprezentaci prostředí, která je realizovaná formou databáze tvrzení o světě a umožňuje mu do určité míry realizovat racionální chování. Nedostatkem je však nemožnost volit svobodně prostředky pro plnění cílů, volit svobodně postup jakým k cíli dojde a nemožnost zlepšovat své chování a funkcionalitu. Člověk je na rozdíl od takového agenta obdařen schopnostmi sebereflexe a schopností přizpůsobování intencionality směrem k jiným jedincům. Vyznačuje se mentálními stavy a postoji a právě mentální stavy a postoje jsou hlavní devizou agenta, kterého chápeme jako deliberativního. Od deliberativního agenta se rovněž požaduje určitý stupeň proaktivity. Tedy vlastnosti, která umožňuje agentovi měnit prostředí tak, aby získal určitou výhodu.[4]

Sociální agent[editovat | editovat zdroj]

Neřešenou oblastí u reaktivních i u deliberativních agentů je tzv. sociální inteligence, tedy znalosti o systému jako celku i o ostatních agentech. Tento fakt vedl k dalšímu rozšíření specifikace agentů a zavedení tzv. sociálních agentů. Sociální agent je softwarová nebo hardwarová entita udržující a rozšiřující poznatky o ostatních agentech a plánech a je schopna uvažovat o jejich cílech a motivacích. Jednotlivé poznatky mají většinou charakter adres, jmen agentů, specifikací jejich schopností, což umožňuje kooperaci vzájemných aktivit. Kromě uvedených informací má agent často k dispozici i historii předchozích interakcí (ceny transakcí, míru kooperativnosti, jejich negociační strategie, atd.), které mu umožní v budoucích akcích snáze vyhledávat pomoc ostatních, případně zmírnit negativní důsledky omezenosti svých vlastních zdrojů.

Hybridní agent[editovat | editovat zdroj]

Architektura hybridního agenta kombinuje některé nebo všechny z uvedených architektur v jeden celek. Ukázkovým příkladem hybridního agenta je InteRRaP (z angl. Integration of Reactive Behaviour and Rational Planning). Hybridní agent se skládá ze dvou hlavních částí. První částí je plánovací jednotka a druhou je reaktivní jednotka. Za svého běhu agent vytvoří plán a začne jej provádět. Každý krok je přitom kontrolován reaktivní jednotkou, která sleduje, zda nedošlo v systému k nějaké změně. Pokud je tato změna v blízkém okolí agenta, bude se výstup reaktivní a plánující jednotky značně lišit. Tento rozdíl je zároveň signálem k přehodnocení plánu v plánující jednotce.[5]

Racionální agent[editovat | editovat zdroj]

Racionální agent je pak speciálním případem hybridního agenta, který musí mít všechny schopnosti výše uvedených agentů. Jeho struktura obsahuje plánovací jednotku i kognitivní jednotku včetně báze znalostí. Na základě svých poznatků je schopen se učit a pak racionálním způsobem plánovat svou činnost pro dosažení cílů.

Agentní prostředí[editovat | editovat zdroj]

Prostředí je vše, s čím agent přichází během své činnosti do styku. Je to tedy agentní systém bez jediného svého prvku - agenta. Prostředí z hlediska agenta pak může být:

Plně pozorovatelné / Částečně pozorovatelné
  • Plně pozorovatelné prostředí je takové, které může agent svými senzory zcela sledovat. Může sledovat všechny jeho stavy.
  • Částečně pozorovatelné je pak opakem, tedy agent není schopen sledovat všechny stavy prostředí.
Statické / Dynamické
  • Statické prostředí je takové, které se může měnit jenom díky agentním akcím.
  • Dynamické prostředí se může měnit i bez zásahu agenta.
Deterministické / Nedeterministické
  • Deterministické prostředí je takové, u kterého je predikovatelný jeho následný stav ze znalosti momentálního stavu prostředí a vykonávané agentní akce.
  • Nedeterministické prostředí je charakterizováno jako prostředí, u kterého nelze jeho následný stav predikovat.
Diskrétní / Spojité
  • Diskrétní prostředí má konečný nebo spočetný počet stavů.
  • Spojité prostředí má nekonečný počet stavů.[6]

Vztahy mezi agenty[editovat | editovat zdroj]

Koordinace[editovat | editovat zdroj]

Koordinací se chápe proces v rámci multiagentního systému, jehož cílem je vhodné přidělování limitovaných zdrojů a úloh ostatním agentům tak, aby chování systému jako celku nebylo chaotické a neúčelné, a aby systém došel k výsledku optimální cestou. V některých publikacích je pak koordinace definována jako komunikační proces, který má za následek racionální chování systému jako celku. Zdrojem správných vzorů koordinace jsou teorie přejaté z ekonomie, případně z biologie.Základním předpokladem koordinace aktivit v rámci systému je existence agenta, případně agentů, kteří mají jisté sociální povědomí o ostatních agentech a dovedou uvažovat o důsledcích předpokládaného jejich chování.

Kooperace[editovat | editovat zdroj]

Kooperace je proces, při kterém kooperující agenti vyjednávají a rokují o společném řešení problémů nebo konfliktů. Rokující agenti mohou být řízeni centrálně nebo decentralizovaně. Každý agent ve skupině má přesně definovanou roli, kterou musí plnit.

Vyjednávání

Jedním z koordinačních procesů je vyjednávání. Pojmem vyjednávání je přitom definován jako jakýkoliv komunikační proces vedoucí k dosažení dohody, na který lze nahlížet jako na rokování o způsobu dosažení nějakého cíle.[7]

Komunikace[editovat | editovat zdroj]

Velmi důležitou otázkou pro multiagentní systémy je problém komunikace mezi agenty. Jednotlivé protokoly a způsoby kooperace a koordinace se o komunikaci přímo opírají a nejsou bez nějakého způsobu komunikace mezi agenty vůbec realizovatelné. Vlastní komunikace je pak charakterizována jako proces, během kterého si dva nebo více agentů vyměňují informace formou elementárních komunikačních zpráv. Jazykem pro komunikaci bývá označován tzv. ACL (Agent Communication Language). Obvykle se jedná o jazyk vyšší úrovně, který obsahuje jazykové konstrukce určené především pro vyjádření informací (dat, znalostí, závislostí mezi daty) tak, aby jednotliví agenti mohli vzájemně kooperovat, případně koordinovat svou práci. Samotný přenos zprávy je realizován standardní síťovou cestou a lze říci, že na přenosu zprávy se podílí následující vrstvy:

Fyzická vrstva

Nejnižší vrstva, která realizuje přenos jako posloupnost bitů a využívá k tomu nejnižší vrstvy referenčního modelu ISO/OSI, konkrétně fyzické, linkové a síťové vrstvy.

Transportní vrstva

Specifikuje protokoly na aplikační úrovni a případné aplikačně závislé části, například kódování atp. Mezi tyto protokoly lze zahrnout například: HTTP Hypertext Transmintion Protocol, WAP Web Application Protocol.

Vrstva komunikační architektury

Multiagentní vývojové prostředky využívají pro komunikaci vrstvy pro vzdálené volání procedur (Remote Procedure Call) v různých podobách. XML RPC, Unix RPC, Java RMI nebo CORBA

Vrstva ACL

Ta již reprezentuje vrstvu nesoucí danou informaci vyjádřenou komunikačním jazykem ACL. Přenášená informace obsahuje meta informace (transportní informace, použitý jazyk v obsahu zprávy atd.) a samotnou zprávu, resp. obsah zprávy.

Vrstva obsahová

Poslední úroveň tvoří samotné sdělení, které agent vysílá. To může být realizováno různými prostředky a jazyky. Například XML, FIPA-SL, Lisp, Prolog, SQL atp.

Ovlivňování ostatních[editovat | editovat zdroj]

Záměrem agenta tedy může být i změna vnitřního (mentálního) stavu jiného agenta. Existují dva způsoby ovlivnění:

  • Nepřímé – agent mění stav okolí jiného agenta, aby tento při kontaktu s okolím změnil svůj postoj žádaným směrem
  • Přímé – agent působí přímo a jediným možným způsobem je komunikace

Dialogy a zprávy[editovat | editovat zdroj]

Důvodů ke komunikaci může být několik. Rozeznáváme šest základních typů dialogu:

  • Dotazování – hledání informace tam, kde agent věří, že je.
  • Hledání informace – společné pátrání agentů po informaci, kterou nemají
  • Přesvědčování – snaha agenta o získání jiného agenta pro svůj záměr
  • Vyjednávání – agenti vyjednávají o podmínkách sdílení sdílení prostředků nebo o poskytnutí služeb tak, aby všichni dosáhli maximálního zisku
  • Porada – cílem je nalezení řešení problému, které je v zájmu všech. Agenti poskytují své znalosti a schopnosti a usnáší se na dalším postupu.
  • Eristický dialog – je dialog s expresivní výměnou informace za účelem dosažení svých záměrů (hádka).

Vlastní komunikace je proces, během kterého si dva nebo více agentů vyměňují informace ve formě elementárních komunikačních zpráv – tzv.řečových aktů. Každá elementární zpráva má odesílatele, příjemce, obsah a informaci o typu, který určuje význam obsahu zprávy. Typy elementárních zpráv jsou:

  • Otázka
  • Nabídka
  • Zamítnutí
  • Informování

Pokud chce agent komunikovat, musí mít schopnost nalézt partnera vhodného pro záměr. Řešení může vycházet z nástrojů pro distribuované systémy jako je vysílání (broadcasting) nebo nástěnky. Dalšími možnostmi jsou adresáře služeb nebo speciální agenti pro zprostředkování komunikace nebo pro vyhledávání služeb, tzv. mediátoři, brokeři nebo facilitátoři. Posledním známým přístupem jsou sociální modely. Nejprve dojde k vysílání uvnitř skupiny a pak při neúspěchu vysílání ostatním skupinám.[8]

Odkazy[editovat | editovat zdroj]

Reference[editovat | editovat zdroj]

  1. KUBÍK, Aleš. Agentově-orientované inženýrství: nové paradigma pro tvorbu softwaru? [online]. [Cit. 2009-01-18]. Dostupné online[nedostupný zdroj]
  2. RUSSELL, S. J.. Rationality and Intelligence. Artificial Intelligence [Cit. 2009-01-22]. 94, 1–2 (1997), 57–77.
  3. ZBOŘIL, František. Plánování a komunikace v multiagentních systémech [Cit. 2009-01-22]. Dostupné online
  4. a b ŠŤASTNÝ, Pavel. Multiagentní systémy v medicíně [Cit. 2009-01-22]. Dostupné online Archivováno 12. 8. 2014 na Wayback Machine.
  5. BUBENÍK, Jan. Neural network in agent system [Cit. 2009-01-22]. Dostupné online[nedostupný zdroj]
  6. KUBÍK, Aleš. Inteligentní agenty a tvorba aplikačního software na bázi multiagentových systémů. Computer Press, 2004. [Cit. 2009-01-18]. ISBN 80-251-0323-4
  7. VIDAL, J. M. Fundamentals of Multiagent Systems with NetLogo Examples [Cit. 2009-01-22]. Dostupné online
  8. SYCARA, K.P. Multiagent Infrastructure for Agent Interoperability in Open Computational Environments [Cit. 2009-01-22]. Dostupné online

Související články[editovat | editovat zdroj]