Agent 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.BERKA, Petr. Inteligentní Systémy. Praha : Nakladatelství Oeconomica, 2008. [Cit. 2010-01-16]. .

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ř. 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. 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ů. 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. + parametry zprávy KQML Klíčové slovo Popiscontentobsah zprávyforcetyp zprávyin-reply-tokód zprávy, na kterou je tato zpráva odpovědílanguagejazyk, ve kterém je napsán obsah zprávyontologyontologie obsahu zprávyrecieverpříjemcereply-withkód odpovědi, pokud je očekávána senderodesílatel      Příklad zprávy      (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ů. 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. 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á. + parametry zprávy FIPA-ACL Klíčové slovo Popisperformativetyp zprávysenderodesílatelreceiverpříjemcereply-toidentifikace agenta, který má obdržet odpověďcontentobsah zprávylanguagejazyk obsahu zprávyencodingspecifikace kódování obsahuontologyontologieprotocolinterakční protokolcoversation-ididentifikátor konverzacereply-withidentifikátor, kterým má být označena odpověďin-reply-toidentifikátor odpovědireply-byčasové vymezení (do kdy agent čeká odpověď na svou zprávu) 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í + komunikační akty Komunikační akt významconfirmAgent potvrzuje, že informace, o které si druhý nebyl jist pravdivostí, pravdivá jedisconfirmAgent nepotvrzuje pravdivost informaceinformAgent informuje druhého o pravdivosti nějaké informaceinform ifAkt, kterým agent informuje druhého, zdali nějaká informace pravdivá je, nebo neníinform refAgent informuje druhého o stavu objektu, na který byl dotazováncancelAgent informuje druhého, že již netrvá na provádění domluvené akce druhým.query ifAgent se táže druhého, zdali je obsah zprávy pravdivý.query refAgent žádá druhého o informování o stav objektu, specifikovaného přiloženou referencísubscribeAgent žádá druhého, aby jej informoval o stavu objektu specifikovaného přiloženou referencí a potom i pokaždé, když se stav tohoto objektu změní.accept proposalPřijmutí předchozího požadavku na vykonání akce.agreeSouhlas s provedením akce v budoucnu.call for proposalPožadavek na podávání návrhů provedení nějaké akcefailureAgent informuje druhého, že se pokusil vykonat smluvenou akci, ale neúspěšně.not understoodAgent informuje, že nerozuměl předchozí zprávě (jediný povinný typ zprávy pro agenta komunik. v ACL)propagatePožadavek, aby zpráva byla poskytnuta prostřednictvím příjemce dalším agentům.proposeAgent dává návrh, že provede nějakou akci společně s případnými podmínkami, za kterých akci provede.proxyAgent žádá druhého, aby určil skupiny agentů na základě přiložených podmínek a zaslal jim vloženou zprávu.refuseAgent odmítá vykonat akci a přikládá vysvětlení důvodů odmítnutí.reject proposalAgent odmítá návrh druhého během vyjednávání.requestAgent žádá druhého o vykonání nějaké akce.request whenAgent žádá druhého o vykonání nějaké akce, pokud nastane uvedená podmínka.request wheneverObdobné jako předchozí s tím, že agent žádá druhého o vykonání akce pokaždé, když uvedená podmínka nastane. 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

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

Související články Multiagentní systém Multiagentní modelování Reaktivní agent Racionální agent

Externí odkazy Tim Finin, Yannis Labrou, and James Mayfield, in Jeff Bradshaw (Ed.): KQML as an agent communication language , "Software Agents", MIT Press, Cambridge, 1997. Oficiální stránky sdružení FIPA Blogy o multiagentních systémech Multiagentní systém pro řízení bioprocesů Biogenes II Multi-Agent Systems Lab Multiagentní systémy a řízení výroby

Kategorie:Multiagentní systémy