Komunikacja w systemie wieloagentowym Piotr Pałka Instytut Automatyki i Informatyki Stosowanej Politechnika Warszawska 20 października 2009 Piotr Pałka Komunikacja w systemie wieloagentowym 1/16
Komunikacja w systemie wieloagentowym Speech act theory Teoria aktów mowy Wypowiedzenie skierowane przez nadawcę do odbiorcy, którego celem jest przekazanie komunikatu za pomocą systemu znaków językowych Trzy potencjalne aspekty aktów mowy (J. L. Austin: How to Do Things with Words, 1962) lokucyjny (tworzenie i artykułowanie wypowiedzi); illokucyjny (intencjonalność wypowiedzi), obecny np. w obietnicach, ostrzeżeniach, prośbach; perlokucyjny (dodatkowe, wtórne oddziaływanie na odbiorcę), obecny wtedy, gdy wypowiedź wywołuje u odbiorcy jakiś efekt (reakcja emocjonalna, wykonanie pewnej czynności); Performatywy (ang. Performatives) Akty illokucyjne, których nie da się ich ocenić pod względem prawdziwości, a jedynie skuteczności (fortunności), np: Koronuję Cię Karolu na króla Skazuję Cię na 10 lat więzienia Obiecuję, że oddam Ci pieniądze... Piotr Pałka Komunikacja w systemie wieloagentowym 2/16
Komunikacja w systemie wieloagentowym John Searle, (uczeń J. L. Austina) wyróżnił (w: Speech Acts: An essay in the philosophy of language, 1969) akty bezpośrednie intencja mówiącego odczytywana jest niezależnie od sytuacji, np. Podaj mi szklankę wody. akty pośrednie tekst aktu należy odczytywać kontekstowo, w różnych sytuacjach tekst może mieć różne znaczenie, np. okrzyk Och! może być w zależności od związanych z jego wypowiedzeniem okoliczności związany z radością, bólem lub strachem. Według Searle a można wyróżnić pięć typów aktów mowy: asercje ich celem jest przedstawienie sądów, np. wątpienie, podziw, przeczenie itp. akty dyrektywne ich celem jest wywarcie nacisku na odbiorcę i wpłynięcie na jego zachowanie, np. rozkazy, prośby, pytania. akty komisywne ich celem jest podjęcie działania albo zobowiązanie, np. obietnice. akty ekspresywne ich celem jest wyrażenie własnych stanów emocjonalnych, postaw np. gratulacje, kondolencje. akty deklaratywne ich celem jest stworzenie nowego stanu rzeczy. Piotr Pałka Komunikacja w systemie wieloagentowym 3/16
Komunikacja w systemie wieloagentowym Komunikacja w systemie wieloagentowym wymaga zdefiniowania: Języka komunikacji Akty komunikacyjne (pojedyncze komunikaty) Communicative Acts; Schematy wymiany komunikatów ; Języki treści komunikatów Content Language. Akt komunikacyjny performatywa Piotr Pałka Komunikacja w systemie wieloagentowym 4/16
Język komunikacji Określa sposób wymieniania informacji i prowadzenie negocjacji W ramach komunikatu przekazywana jest treść komunikatu Interpretacja treści na bazie języka określa składnie ontologii definiuje semantykę Piotr Pałka Komunikacja w systemie wieloagentowym 5/16
(ang. Knowledge Query and Manipulation Language) Język oparty o komunikaty Definiuje format koperty dla komunikatu Komunikat można traktować jako obiekt (w sensie obiektu w języku programowania) Każdy komunikat składa się z performatywy określa ona klasę komunikatu, (akt komunikacyjny) performatywa definiuje zamierzaną interpretację komunikatu oraz pewną ilość parametrów powstał w latach 90tych (T. Finin et al: DRAFT Specification of the Agent-Communication Language 1993) Piotr Pałka Komunikacja w systemie wieloagentowym 6/16
Parametry komunikatów dla Parametr Znaczenie :content zawartość komunikatu :force określa czy nadawca nigdy nie kwestionuje treści komunikatu :reply-with nadawca spodziewa się odpowiedzi identyfikator na który ma się powołać odbiorca :in-reply-to odwołanie się do komunikatu na który odpowiadamy :sender nadawca komunikatu :receiver odbiorca komunikatu Piotr Pałka Komunikacja w systemie wieloagentowym 7/16
Przykładowy komunikat (ask-one :content (PRICE ENERGY?price) :receiver energy-broker :language LPROLOG :ontology energy-market ) Piotr Pałka Komunikacja w systemie wieloagentowym 8/16
Performatywy (40 źródło: M. Wooldridge: An introduction to MultiAgent Systems) achieve advertise ask-about ask-all ask-if ask-one bread broadcast broker-all broker-one deny delete-all delete-one discard eos error evaluate forward generator insert monitor next pipe ready recomend-all recomend-one recruit-all recruit-one register reply rest sorry standby stream-about stream-all subscribe tell transport-address unregister untell Piotr Pałka Komunikacja w systemie wieloagentowym 9/16
Krytyka zbiór aktów komunikacyjnych zbyt rozmyty różne implementacje często nie mogły się dogadać mechanizm przekazywania komunikatów od A do B nie był nigdy precyzyjnie zdefiniowany trudności we współpracy agentów semantyka a nigdy nie była do końca zdefiniowana agenty nie używały poprawnego języka, komunikaty mogły być różnie interpretowane brak całej klasy aktów komunikacyjnych tzw. aktów komisywnych poprzez które jeden agent mógł wymuszać potwierdzenie pewnych operacji (np. commit) zbiór aktów komunikacyjnych był zbyt duży Piotr Pałka Komunikacja w systemie wieloagentowym 10/16
FIPA ang. Foundation of Inteligent Physical Agents ACL ang. Agents Communication Language Zaproponowany przez organizację FIPA w 1999 roku język powstały na bazie Zawiera 20 performatyw nie definiuje żadnego specyficznego języka treści proponuje kilka różnych języków treści Piotr Pałka Komunikacja w systemie wieloagentowym 11/16
Przykładowy komunikat FIPA-ACL (inform :sender agent1 :receiver agent2 :content (PRICE ENERGY 110) :language sl :ontology energy-market ) FIPA-ACL a FIPA-ACL jest bardzo podobny pod względem składniowym do : Struktura komunikatu jest taka sama Atrybuty komunikatów są także bardzo podobne Obydwa powstały w oparciu o teorię aktów mowy Piotr Pałka Komunikacja w systemie wieloagentowym 12/16
Performatywy FIPA-ACL Performatywa przekazanie żądanie negocjacje wykonaj obsługa info info akcję błędów accept-proposal agree cancel cfp confirm disconfirm failure inform inform-if inform-ref not-understood propagate propose proxy query-if query-ref refuse reject-proposal request request-when request-whenever subscribe Piotr Pałka Komunikacja w systemie wieloagentowym 13/16
(ang. Java Agent Development Environment) implementuje zalecenia FIPA: FIPA-ACL agenty wątki Javy agenty żyją w kontenerze (procesie Javy, który je uruchamia) kontener główny posiada następujące funkcje: tablica kontenerów lista wszystkich kontenerów w systemie globalny deskryptor agentów lista wszystkich agentów w systemie: obecny status i lokalizacja AMS (ang. Agent Management System) usługa zarządzająca agentami: nazywanie, tworzenie, usuwanie DF (ang. Directory Facilitator) usługa pozwalająca na rejestrowanie usług pełnionych przez agentów, kojarzenie nazwy usługi z nazwą agenta Piotr Pałka Komunikacja w systemie wieloagentowym 14/16
Schematy wymiany komunikatów (ang. ) FIPA zebarała typowe przepływy komunikatów w handlu i nazwała je protokołami; FIPA FIPA Request Interaction Protocol FIPA Query Interaction Protocol FIPA Request When Interaction Protocol FIPA Contract Net Interaction Protocol FIPA Iterated Contract Net Interaction Protocol FIPA English Auction Interaction Protocol FIPA Dutch Auction Interaction Protocol FIPA Brokering Interaction Protocol FIPA Recruiting Interaction Protocol FIPA Subscribe Interaction Protocol FIPA Propose Interaction Protocol Piotr Pałka Komunikacja w systemie wieloagentowym 15/16
Języki treści (ang. ) FIPA proponuje kilka rodzajów języków komunikacji FIPA FIPA SL Semantic Language FIPA CCL Content Language FIPA KIF Knowledge Interchange Format FIPA RDF Resource Description Framework Piotr Pałka Komunikacja w systemie wieloagentowym 16/16