Agent Communication Language

From Wikipedia, the free encyclopedia

Remove ads

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.[1]

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:

  1. adresné posílání zpráv – zpráva se posílá konkrétním agentům
  2. všesměrové posílání zpráv – zpráva se posílá všem agentům
  3. 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:[1]

  • 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.[2]

  • ú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ě:[1]

  1. Fyzická úroveň – vrstva zajišťující přenos zprávy jako posloupnost bitů (využívá fyzické, linkové a síťové vrstvy OSI modelu)
  2. 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.
  3. Ú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.
  4. Úroveň ACL – zaměřuje se na identifikaci odesílatele a příjemce a na jazyk vlastní zprávy (př. KQML, FIPA-ACL)
  5. Ú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,...
Remove ads

Architektura z hlediska komunikace

Architektura multiagentního systému může být:[1]

  • 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.

Remove ads

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.[3] 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.[1]

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.[4] 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.[5]

Další informace Klíčové slovo, Popis ...

     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.[1]

  • 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á.[1]

Další informace Klíčové slovo, Popis ...

FIPA jich stanovila pouze uzavřenou množinu a nové komunikační akty mohou vzniknout jen přípustnou kombinací těch základních.[4] 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í
Další informace Komunikační akt, význam ...

Další rozdíly oproti KQML:[4]

  • 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
Remove ads

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. ISBN 80-200-0502-1.

Reference

Loading content...

Související články

Externí odkazy

Loading content...
Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads