Agent Communication Language
Author
Albert FloresAgent Communication Language (ACL) se nazývá jazyk navržený pro komunikaci v prostředí multiagentních systémů, který slouží ke vzájemné výměně informací, koordinaci a kooperaci mezi agenty.
Specifikace komunikace
Základní typy komunikace se liší podle cíle, kam směřují zprávy. Komunikaci tedy můžeme rozdělit na přímou, kdy jsou zprávy posílány dalším agentům a komunikaci nepřímou, kdy jsou zprávy soustředěny v dané struktuře (např. +more tabule). U přímé komunikace můžeme rozlišit tři druhy posílání zpráv: # adresné posílání zpráv - zpráva se posílá konkrétním agentům # všesměrové posílání zpráv - zpráva se posílá všem agentům # selektivní posílání zpráv - zpráva se posílá určité skupině agentů Jazyky pro komunikaci v multiagentních systémech jsou založeny na teorii řečových aktů vycházející z lingvistické analýzy komunikace v přirozeném jazyce. Teorie řečového aktu vychází z představy, že v souvislosti s řečovou komunikací člověk nejenom vyslovuje nějaké tvrzení, ale současně koná i jisté akce. Řečové akty mohou být: * oznamovací * zavazující * přikazovací * expresivní * deklarační V oblasti jazyků ACL, kromě teorie řečového aktu hrají roli i teorie tvorby počítačových jazyků resp. počítačové lingvistiky. Problém agentní komunikace lze z tohoto úhlu pohledu rozdělit na tři úrovně. A to na úroveň syntaktickou, sémantickou a pragmatickou. * úroveň syntaktická - všichni agenti používají jednotnou syntaxi * úroveň sémantická - všichni agenti jsou vybaveni stejným ontologickým rámcem používaných znalostí * úroveň pragmatická - zajišťuje znalosti o nalezení určitého agenta a následné vzájemné komunikaci Na vlastním přenosu zpráv a informací se podílí různé úrovně: # Fyzická úroveň - vrstva zajišťující přenos zprávy jako posloupnost bitů (využívá fyzické, linkové a síťové vrstvy OSI modelu) # Transportní úroveň - specifikace protokolů pro kódování zprávy (transportní vrstva OSI modelu). Mezi tyto protokoly lze zahrnout například: HTTP, TCP/IP, WAP, apod. # Úroveň komunikační architektury - zajišťují překlad zpráv do posloupnosti bytů; příkladem jsou různé komunikační platformy jako CORBA, Java RMI, UNIX RPC, XML RPC atd. # Úroveň ACL - zaměřuje se na identifikaci odesílatele a příjemce a na jazyk vlastní zprávy (př. KQML, FIPA-ACL) # Úroveň obsahu zprávy - zaměření na konkrétní reprezentaci přenášeného sdělení. Realizace např. pomocí XML, KIF (Knowledge Interchange Format), Lisp, Prolog, SQL,.
Architektura z hlediska komunikace
Architektura multiagentního systému může být: * centralizovaná - v multiagentním systému je jeden řídící agent, kterému jsou ostatní podřízeni * hierarchická - v multiagentním systému se používají různé úrovně řízení * federovaná - v multiagentním systému se používá nepřímá komunikace přes prostředníka * decentralizovaná - v multiagentním systému jsou decentralizovány role i řízení Tyto architektury můžeme hodnotit z hlediska robustnosti (odolnosti vůči poruchám), škálovatelnosti (rozšiřitelnosti o další komponenty), implementačním nároků a nároků na komunikaci.
Jazyky
Nejznámějšími jazyky v oblasti multiagentního modelování jsou KQML a FIPA-ACL.
KQML
KQML (Knowledge Query and Manipulation Language) je jazyk a protokol pro výměnu informací a znalostí. Byl vyvinut na začátku 90. +more let v rámci projektu ARPA Knowledge Sharing Effort. Jazyk se zaměřuje na podporu pragmatických a sémantických aspektů komunikace mezi agenty. Je to tedy jazyk podporující činnost agentů při hledání agentů vhodných ke spolupráci, navazování spojení mezi agenty a výměně informací mezi agenty. Na syntaktické úrovni není KQML vázán na použití žádného konkrétního jazyka. Jazyk KQML je založen na dvou základních principech.
Prvním principem je definice relativně malého počtu tzv. performativů (komunikačních sloves) pro realizování předem specifikovaných řečových aktů. +more Každá zpráva sestává zejména performativu a jeho parametrů. Vlastní obsah zprávy může být zapsán v libovolném jazyce a představuje obsah jednoho parametru. Performativy se rozdělují do několika typů jako např. informační (tell, deny, untell,…), dotazy (ask, ask-if, ask-about,…), odpovědi (error, sorry,…), práce s virtuální bází znalostí (insert, delete,…), atd.
Příklad zprávy. content obsah zprávy force typ zprávy in-reply-to kód zprávy, na kterou je tato zpráva odpovědí language jazyk, ve kterém je napsán obsah zprávy ontology ontologie obsahu zprávy reciever příjemce reply-with kód odpovědi, pokud je očekávána sender odesílatel
(inform
:sender (agent-identifier :name i)
:reciever (agent-identifier :name j)
:content
"weather(today,raining)"
:language Prolog
)
Druhým principem je nepřímá komunikace s využitím tzv. faciliátorů. +more Zavádí se speciální třída agentů. Rozlišují se tři druhy faciliátorů: matchmaker, broker a mediátor. * Matchmaker - agent, který pouze hledá vhodné agenty pro požadovanou službu. Agent, který poptává nějakou službu na základě informace od matchmakera přímo kontaktuje agenta, který službu poskytuje * Broker - agent, který nejen hledá agenty pro požadovanou službu, ale službu přímo i objedná. Poptávajícímu agentovi pak předá rovnou výsledek poskytnuté služby * Mediátor - agent, který podobně jako broker službu objedná. Agent, který službu poskytuje, pak ale službu nabídne a díle komunikuje přímo s poptávajícím agentem.
FIPA-ACL
Jazyk FIPA-ACL byl navržen koncem 90. let sdružením FIPA (Foundation for Physical Intelligent Agents), které se zabývá standardizací v multiagentních systémech. +more Vychází z principů jazyka KQML, ale snaží se lépe definovat sémantiku a komunikační protokoly. Základem jazyka jsou opět typizované druhy zpráv realizující řečové akty, nazývané tentokrát komunikační akty. Komunikační akty se konceptuálně neliší od performativů, jejich nabídka je ovšem odlišná.
FIPA jich stanovila pouze uzavřenou množinu a nové komunikační akty mohou vzniknout jen přípustnou kombinací těch základních. Tyto akty se dá rozdělit do
pěti skupin:
* přenos informace
* vyžádání informace
* vyjednávání
* vykonání akce
* chybová hlášení
[wiki_table=ca15b5ee]
Další rozdíly oproti KQML:
* sémantika jazyka je striktně formalizována s využitím modální logiky v rámci FIPA-SL (FIPA Semantic Language). Výhodou je existence precizního formálního popisu komunikace, nevýhodou je, že agenti obvykle nedokáží v rámci modální logiky rozhodovat
* neexistují performativy pro síťování a administraci přenosu zpráv. performative typ zprávy sender odesílatel receiver příjemce reply-to identifikace agenta, který má obdržet odpověď content obsah zprávy language jazyk obsahu zprávy encoding specifikace kódování obsahu ontology ontologie protocol interakční protokol coversation-id identifikátor konverzace reply-with identifikátor, kterým má být označena odpověď in-reply-to identifikátor odpovědi reply-by časové vymezení (do kdy agent čeká odpověď na svou zprávu)
Literatura
Vladimír Mařík, Olga Štěpánková, Jiří Lažanský ...[a kol.].: Umělá inteligence [Díl] 2 a [Díl] 3. Praha: Academia. .
Reference
Externí odkazy
Tim Finin, Yannis Labrou, and James Mayfield, in Jeff Bradshaw (Ed. ): [url=http://www. +morecs. umbc. edu/research/kqml/papers/kqmlacl. pdf]KQML as an agent communication language [/url], "Software Agents", MIT Press, Cambridge, 1997. * [url=http://www. fipa. org]Oficiální stránky sdružení FIPA[/url] * [url=https://web. archive. org/web/20100310180238/http://multiagent. com/]Blogy o multiagentních systémech[/url] * [url=http://www. odbornecasopisy. cz/index. php. id_document=32333]Multiagentní systém pro řízení bioprocesů Biogenes II[/url] * [url=http://ai. ustc. edu. cn/]Multi-Agent Systems Lab[/url] * [url=http://www. automatizace. cz/article. php. a=766/]Multiagentní systémy a řízení výroby[/url].