Reaktivní agent je jedním z typů agentů používaných v multiagentním modelování. Na rozdíl od dalších agentů tento netvoří symbolickou reprezentaci okolí. Jako takový pouze reaguje na změny prostředí a při jeho použití se inteligentní chování vyskytne pouze z emergence v rámci celého multiagentního systému.[1]

Reaktivní agent je nejjednodušším typem agenta.[2]

Jako takový se reaktivní agent řadí pod tzv. racionální agenty, kteří zahrnují všechny dále zmíněné typy. Smyslem v návrhu racionálních agentů je napodobení inteligentního chování člověka.[3]

Typy agentů editovat

V rámci multiagentních systémů se rozlišuje více typů agentů. Toto rozdělení je dáno různými charakteristikami. Nejčastěji se však agenty dělí podle architektury - vnitřního uspořádání a také dle způsobu dosažení racionálního chování.[2] Dle tohoto dělení rozlišujeme následující typy:

Reaktivní agent editovat

Toto je nejjednodušší typ agenta, podrobněji se jím zabývají další části tohoto článku.

Deliberativní agent editovat

Na nedostatky reaktivních agentů navazuje agent deliberativní, který dokáže plánovat cestu k množině svých cílů.[1] Plány si tvoří na základě databáze svých znalostí a vnitřních stavů. V interakci s prostředím si tvoří jeho symbolickou reprezentaci, která je uložena ve formě jednotlivých tvrzení o světě (tímto rozumíme agentovy znalosti).[2]

Sociální agent editovat

Dalším rozšířením možností agentů je přidání informace o ostatních agentech v systému. Reprezentace prostředí v agentu je doplněno o modely dalších agentů – zejména se jedná o jejich adresy, jména (označení) a specifikace jejich schopností pro případnou kooperaci.[3] Sociální agent dokáže zvažovat cíle a motivace ostatních agentů a jeho součástí je také uložená historie všech interakcí v agentním systému. Smyslem propojení agentů do sociální sítě je zejména překonání omezenosti zdrojů jednotlivých agentů a vzájemná pomoc v plnění cíle systému.[2]

Hybridní agent editovat

Tímto označením se myslí agent, který kombinuje některé nebo všechny výše zmíněné vlastnosti.[3]

Charakteristika reaktivního agenta editovat

Agentní systémy se začaly vyvíjet v polovině 80. let, kdy stále častěji docházelo ke kritice centrální symbolické reprezentace světa u autonomních systémů umělé inteligence. Hlavní námitkou proti napodobování inteligentního chování pomocí pravidel logiky bylo to, že člověk většinu denních činností neřeší složitými úvahami, ale provádí je rutinně na základě podnětů.[3] Tehdy se tedy začal prosazovat proud robotiky, který se zaměřoval na robustní systémy složených z jednoduchých reaktivních komponent. Centrální plánování bylo nahrazeno reakcemi na podněty z prostředí. Stejně jako děti mají na počátku vývoje omezené senzorické schopnosti a postupně se učí, tak vzniká inteligentní chování reaktivního agentního systému na základě adaptace, interakce a emergentním vzniku nových vlastností.[3],[4]

 
Obrázek 1: Příklad třívrstvé architektury reaktivního agenta

Architektura reaktivního agenta je založena na dekompozici na základě aktivit (chování). Systém (agent) se dělí na několik částí (vrstev), kde každá z nich reaguje na vjemy z prostředí v rámci vymezeného kontextu. Dá se říci, že každá vrstva je z určitého pohledu jednoduchým agentem. Tato architektura se liší od funkční architektury, která je užívána v tradiční (centrálně řízené) umělé inteligenci. Zde probíhá dekompozice podle funkcí (reprezentace poznatků, plánování, učení,...), kde každý z modulů jednotky má specifikované své činnosti. Zpravidla bývá pouze jeden z modulů určen pro vnímání prostředí.[3]

Ačkoliv je reaktivní agent nejjednodušším typem agenta, už u něj hovoříme o racionálním a inteligentních chováním. I bez přítomnosti databáze znalostí dokáže agentní systém založený na reaktivních složkách racionálně jednat. Celkové úrovně racionality se dosahuje zejména jeho interakcí s prostředím a také interakcí mezi jeho jednotlivými vrstvami (viz dále).[3]

Formální specifikace reaktivního agenta editovat

Základem pro formální specifikaci agenta jsou definice pojmů jako prostředí, vjem či akce. Následující formalizace je v podobné formě sdílena více autory.[3],[2]

Omezená množinu jevů, s kterou dokáže agent pracovat, se značí jako P. Tyto jevy vycházejí z množiny stavů prostředí E. Formální zápis vypadá následovně:[3]

vjem:  
(z prostředí se vybírá jev a vzniká vjem)

Přijetí vjemu vede ke změně stavu agenta. Tato změna je určena jak samotným vjemem, tak stavem před jeho přijetím.

změna_stavu:  
(kombinace stavu agenta a aktuálního vjemu vede k novému stavu)

Na základě svého stavu a aktuálně přijatého vjemu volí agent akci.

akce:  
(kombinace stavu agenta a vjemu vede k příslušné akci)

Provedená akce agenta má následně vliv na okolní prostředí.

vliv_na_prostředí:  
(kombinace akce a stavu prostředí vede k novému stavu)

Na základě výše zmíněných formálních definic se charakterizuje model reaktivního agenta. Tato charakteristika odpovídá šestici symbolů {P, A, I, vjem, změna_stavu, akce}. Dále se uvažuje množina cílů agenta (označována symbolem C), která je podmnožinou množiny I.[3]

Speciálním typem reaktivního agenta je pak čistě reaktivní agent. Ten nemá vnitřní paměť a nezaznamenává své vnitřní stavy (I). Výsledky jeho akcí se tvoří na základě komunikace s prostředím a dalšími agenty. Formálně se dá jeho fungování popsat takto:

akce:  
(vjem vede přímo k akci)

Model tohoto agenta se tak omezuje na čtveřici {P, A, vjem, akce}.[3],[4]

Cíle a chování agenta editovat

Stanoveným cílem (nebo více cíli) je určeno chování agenta. Rozumí se tím posloupnost akcí vedoucí k určitému stavu prostředí.[2] Základní myšlenkou tohoto konceptu je, že chování agentů označíme jako cílově-orientované až v mysli pozorovatele – samotné agenty nutně nemusejí mít cíl explicitně naprogramovaný.[3]

Cíle mohou být udržovací, teoreticky trvající do nekonečna. Příkladem může být mechanická beruška pohybující se po stole (čistě reaktivní agent)[4] či agent udržující se ve stavu pohotovosti či kontinuální funkcionality.[3] Druhým typem cílů jsou dosahovací, které jsou definovány stavem, do kterého se má agent dostat. Zde je příkladem agent pro vyhledávání informací.[3]

Další dělení cílů je možné podle prostředí. Zde se rozlišuje prostředí statické a dynamické. V dynamickém prostředí prakticky není možné definovat dosahovací cíle – s měnícím prostředím je nutno definovat chování agenta tak, aby dokázal na změnu reagovat.[1]

Architektury reaktivních agentů editovat

Vývoj agentů byl iniciován kritikou architektury tradiční umělé inteligence – ta byla budována způsobem "shora dolů", tedy od centrálních funkcí k méně důležitým. U agentů je naopak prosazována architektura budována "zdola nahoru" – nejprve se vytvoří základní moduly chování pro nejjednodušší funkce a vyšší úrovně inteligence se dosáhne přidáním dalších modulů.[3]

Subsumpční architektura editovat

Základním typ reaktivního agenta je dekomponovaný na vrstvy dle svých aktivit (typů chování). Této architektuře se říká subsumpční. Poprvé jí představil Rodney Brooks v roce 1986.[5],[6] Příkladem této architektury je jednoduchá třívrstvá struktura jak je vidět na obrázku 1. Každá z vrstev má na starost jiný druh akce vedoucí k rozdílným výstupům (vyhnutí se překážce, bezpečný pohyb a pohyb ve směru dosahu senzorů).[3]

Podstatou interakce jednotlivých vrstev jsou mechanizmy potlačení (anglicky suppression) a zabránění (inhibition). Nové vrstvy agenta se připojují na starší (na obrázku označeno písmenem P) a propojení umožňuje potlačovat a usměrňovat podřazené vrstvy. Důsledkem je pak "soupeření o ovládání agenta", kde větší prioritu mají nižší vrstvy. Pokud ty jsou neaktivní, postupuje se po vrstvách nahoru.[3]

Na základě subsumpční architektury pak stojí její další typy založené na různých způsobech výběru akce robota (na rozdíl od potlačování a zabránění).

Architektura s výběrem akce editovat

Výběr akce v této architektuře nevzniká na základě propojení vrstev, ale vyhodnocuje se ve speciálním modulu výběru akcí. Ten na základě "soutěže" mezi vrstvami vyhodnotí a vybere akci, která bude provedena. Všechny vrstvy tedy fungují paralelně, při výběru akce jsou zatlačovány do pozadí a prosadí se "vítězný" modul.[3]

Wernerův reaktivní model editovat

Na rozdíl od předchozí architektury je tato schopná vykonávat několik akcí nezávisle na sobě. Jedná se o kombinaci s modelem umělé neuronové sítě. Kromě externích stimulů zde hraje roli i vnitřní motivace agenta.[3]

Wernerův model je tvořen třemi typy uzlů: vstupními (sledování prostředí a interní motivace), výstupními (řídí akce agenta) a uzly tendencí (určují váhy nebo koeficienty pro motivace). Na základě vah tendencí se upravují priority a ty tak mohou vést k akcím, které by byli v případě jiných architektur potlačeny kvůli hierarchii vrstev nebo soutěži.[3]

Architektura s dynamickou kombinací editovat

Tato architektura se snaží řešit problém výběru akce na základě různých stimulů. Je založená na kombinování těchto stimulů a na akcích prováděných v minulosti (na základě zpětné vazby). Tento typ architektury je silně závislý na materiální podobě agenta a v případě její změny je třeba přeprogramovat vnitřní dynamické rovnice chování.[3]

 
Obrázek 2: Zařazení reaktivního softwarového agenta

Softwarový reaktivní agent editovat

Jednou z podmínek subsumpční architektury reaktivních agentů je jejich tělesnost a zasazení do reálného prostředí.[3] Nicméně požadavky kladené na agenty je možné realizovat také v prostředím virtuálním, v rámci programů na počítači.

Takovýto agent je nazývaný softwarovým, nebo také jako softbot (zkratka ze software robot). Jejich využívání je založeno na předpokladu, že pro dosažení inteligentního chování není třeba robotických senzorů a aktuátorů. Stejně dobře se dají realizovat v softwarovém provedení.[3]

Softwarový reaktivní agent je tedy procesem, senzory jsou u něj příkazy, které zjišťují stav prostředí. Vykonávání akcí je pak opět volání procedury.[3]

Příklady reaktivních agentů editovat

Reaktivní princip se využívá zejména u pohyblivých robotů, ale také u softwarových agentů.

Mechanická beruška editovat

Základním, často zmiňovaným příkladem agenta je mechanická beruška pohybující se po stole.[4],[7] V tomto případě se jedná přímo o čistě reaktivního agenta.

Beruška se pohybuje po stole, opírá se o velké kolečko a tykadla. Pokud se tykadly dostane mimo desku stolu, zapojí se další (malé) kolečko, které berušku otočí. V moment, kdy se tykadla znovu dostanou na plochu stolu, malé kolečko se odstaví a beruška se opět rozjede rovně.[7]

Robot Toto editovat

Složitějším typem reaktivního agenta je robot Toto, kterého představil v roce 1991 Maja J. Matarić. Podobně jako mechanická beruška jde o typ robota, který se pohybuje v prostředí a vyhýbá se překážkám. Oproti jednoduché berušce se tento robot orientuje lépe a ve variabilním prostředí. Dokáže se vyhýbat překážkám, hledat cestu a sestavovat mapu.[8]

Funkce robota Toto vypadají typicky pro deliberativní přístup, ale byly implementovány na reaktivních principech. Několik základních modulů se stará o navigaci a otáčení robota. Další čtyři moduly se starají o signály z receptorů a kompasu a komunikují s navigačními moduly.[8]

Další moduly se pak starají o tvorbu mapy prostředí – tyto moduly představují rozšíření klasického reaktivního agenta o plánovací komponentu. Vzniká tak agent, který stojí na pomezí reaktivního a deliberativního přístup. Tento podtyp se označuje jako reaktivní agent s vnitřní reprezentací prostředí.[2]

Softboti pro komunikaci editovat

Široké využití reaktivních principů lze nalézt u softwarových agentů[2]. Typické využití se dá nalézt u agentů určených pro data mining a vyhledávání informací.[3] Zajímavým příkladem jsou pak manažerské agenty využívané v komunikačním protokolu IRC.[2]

IRC chat je typicky dělen do tematických místností, do kterých mají přístup jednotliví uživatelé. Softwarové agenty, softboty, pak zde vystupují jako správci místností, kteří administrují některé automatické funkce. Vnímáním softbota se zde rozumí komunikace s lidskými uživateli. Prováděné operace v místnosti pak představují jeho aktivity do prostředí.[2]

Odkazy editovat

Reference editovat

  1. a b c ZBOŘIL, František. Plánování a komunikace v multiagentních systémech (Disertační práce) [online]. Brno: Vysoké učení technické v Brně, 2004 [cit. 2010-01-20]. Dostupné online. 
  2. a b c d e f g h i j ŠŤASTNÝ, Pavel. Multiagentní systémy v medicíně (Diplomová práce) [online]. Praha: České vysoké učení technické v Praze, 2007 [cit. 2010-01-20]. Dostupné v archivu pořízeném dne 2014-08-12. 
  3. a b c d e f g h i j k l m n o p q r s t u v w x y KUBÍK, Aleš. Inteligentní agenty. Brno: Computer Press, 2004. ISBN 80-251-0323-4. Kapitola 1, s. 280. 
  4. a b c d KELEMEN, Jozef. Umělá inteligence (3) - Reaktivní agenti. Praha: Academia, 2001. ISBN 80-200-0472-6. S. 328. 
  5. BROOKS, Rodney A. A robot that walks: Emergent behavior form a carefully evolved network [online]. Massachusetts: Massachusetts Institute of Technology, 1989 [cit. 2010-01-20]. Dostupné online. 
  6. BROOKS, Rodney A. A robust layered control system for a mobile robot [online]. Massachusetts: Massachusetts Institute of Technology, 1985 [cit. 2010-01-20]. Dostupné online. 
  7. a b IPSER, Jaroslav. Informační portál pro multiagentní technologie (bakalářská práce) [online]. Brno: Masarykova univerzita, 2008 [cit. 2010-01-20]. Dostupné online. 
  8. a b MATARIĆ, Maja J. Behavior-Based Control: Examples from Navigation, Learning and Group Behavior [online]. Waltham: Brandeis University, 1997 [cit. 2010-01-20]. Dostupné v archivu pořízeném dne 2010-07-03. 

Související články editovat

Externí odkazy editovat