Kommunikation in Multi Agenten Systemen - Informatik
Transcrição
Kommunikation in Multi Agenten Systemen - Informatik
Universität Paderborn Fakultät für Elektrotechnik, Mathematik und Informatik Seminarausarbeitung Kommunikation in Multi Agenten Systemen Melanie Kirchner vorgelegt bei Prof. Dr. Hans Kleine Büning 1 Inhaltsverzeichnis 1. Einleitung _____________________________________________________________4 1.1 Grundlagen der Kommunikation ________________________________________ 4 1.2 Sprechakttheorie ______________________________________________________ 5 2. Indirekte Kommunikation ________________________________________________6 2.1 Blackboard __________________________________________________________ 6 2.2 Stigmergy ___________________________________________________________ 8 3. Direkte Kommunikation _________________________________________________9 3.1 Einführung in ACLs (Agent Communication Language) ____________________ 9 3.2 FIPA (Foundation for Intelligent Physical Agents) _________________________ 9 3.3 KSE (Knowledge Sharing Effort) ________________________________________ 9 3.4 Ontologien __________________________________________________________ 10 3.5 KIF (Knowledge Interchange Format) ___________________________________ 11 3.5.1 Allgemeines______________________________________________________ 11 3.5.2 Syntax __________________________________________________________ 11 3.6 KQML _____________________________________________________________ 13 3.6.1 Allgemeines______________________________________________________ 13 3.6.2 Semantik ________________________________________________________ 14 3.6.3 Syntax __________________________________________________________ 14 4. Adressaten ___________________________________________________________17 4.1 Singlecast ___________________________________________________________ 17 4.2 Multicast____________________________________________________________ 17 4.3 Broadcast ___________________________________________________________ 17 4.4 Vor – und Nachteile___________________________________________________ 18 4.5 Reichweite __________________________________________________________ 18 5. Bezug zur Projektgruppe KIMAS _________________________________________19 6. Quellenverzeichnis_____________________________________________________20 2 Abbildungsverzeichnis Abbildung 1 Kommunikationsmodell ____________________________________________ 4 Abbildung 2 Blackboardmodell mit Kontrolleinheit _________________________________ 7 Abbildung 3 Nest der Papierwespe ______________________________________________ 8 Abbildung 4 Aufbau des KSE _________________________________________________ 10 Abbildung 5 KQML - Schichten _______________________________________________ 13 3 1. Einleitung In dieser Arbeit geht es um die Kommunikation in Multi Agenten Systemen. Ich werde mit einigen allgemeinen Grundlagen der Kommunikation beginnen. Danach werde ich auf die unterschiedlichen Arten der Kommunikation, zum einen die indirekte, zum anderen die direkte, eingehen. Bei der indirekten Kommunikation werde ich mich mit Blackboard - Systemen und Stigmergy auseinandersetzen, bei der direkten Kommunikation genauer auf einige Standards der Kommunikationsprotokolle eingehen und die Sprachen KIF und KQML vorstellen. Am Ende werde ich noch auf die verschiedenen Adressaten eingehen und als Fazit einen Bezug zur Projektgruppe KIMAS herstellen. 1.1 Grundlagen der Kommunikation Kommunikation ist die Grundlage für Interaktion und soziale Organisation. Dadurch ist es möglich gemeinsam an Aufgaben zu arbeiten und sich dabei zu koordinieren. Oft ist es einfacher seine Ziele zu erreichen, wenn man auf den Wissensbestand anderer zugreifen kann, und ihn sich nicht erst selbstständig aneignen muss. Vorraussetzung für eine gelungene Kommunikation ist eine gemeinsame Sprache. Des weiteren sollten einige Basisregeln eingehalten werden, wie Ehrlichkeit, Hilfsbereitschaft und die Angewohnheit, auf gestellte Fragen auch zu antworten. Kommunikation erfolgt über Signale. Diese Signale haben an sich keine Bedeutung. Erst wenn jemand dieses Signal empfängt und auch ein System zur Interpretation besitzt, oder daraufhin sein Verhalten ändert erlangt es Bedeutung. Wenn dieses Signal nur ein Verhalten erzeugt, wird es Stimulus oder Reiz genannt. Wird es andernfalls nur in ein kognitives System aufgenommen, welches es interpretieren kann, wird das Signal als Bedeutungsträger bezeichnet.[1] Laut der Kommunikationstheorie von Shannon und Weaver besteht Kommunikation aus einem Sender, der eine Information an einen Empfänger sendet. Die Information wird mit Hilfe einer Sprache beim Sender verschlüsselt, durch einen Kanal gesendet und vom Empfänger wieder entschlüsselt. Abbildung 1 Kommunikationsmodell 4 1.2 Sprechakttheorie Es ist wichtig, kurz auf die Theorie der Sprechakte einzugehen, da sich einige der weiter unten vorgestellten Sprachen auf diese Theorie beziehen. Laut Ferber besteht ein Sprechakt aus 3 Komponenten[1] • Lokutionäre Komponente • Illokutionäre Komponente • Perlokutionäre Komponente Unter lokutionäre Komponente versteht man die materielle Erzeugung von Äußerungen, wie z.B. das Schreiben von Buchstaben Die illokutionäre Komponente bezieht sich auf die Ausführung des Sprechakts. Sie werden durch eine illokutionäre Kraft (z.B. bitten, fragen) und den Inhalt einer Aussage definiert. Formal wird das folgendermaßen ausgedrückt: <Performativ> (<Inhalt>) Wobei Performativ ein Schlüsselwort ist, welches den gerade verwendeten Sprechakt angibt: „Frage (es regnet)“ bedeutet also: Regnet es? Schließlich gibt es noch die perlokutionäre Komponente. Diese bezeichnet die Effekte, die illokutionäre Sprechakte auf den Zustand des Adressaten haben. So ist z.B. die Bitte an John eine Tasse Kaffee zu holen illokutionär, wenn er dann losgeht um die Tasse Kaffee zu holen, ist auch die perlokutionäre Komponente erfüllt. 5 2. Indirekte Kommunikation Bei der indirekten Kommunikation tauschen sich die Agenten in einem System nicht direkt miteinander aus. Einer der Vorteile liegt darin, dass keine komplizierten Kommunikationsprotokolle gebraucht werden und sie somit einfach zu implementieren ist. 2.1 Blackboard Die Grundidee des Blackboard Systems ist, dass mehrere verschiedene Agenten zusammen an einem Problem arbeiten und zur Kommunikation das Blackboard benutzen. Dieses System besteht im allgemeinen aus 3 verschiedenen Komponenten[1], wobei bei der klassischen Variante keine Kontrolleinheit vorhanden ist. • • • Agenten, auch Knowledge Sources oder Wissensquelle genannt Blackboard Kontrolleinheit Die Agenten des Systems haben die Aufgabe, bestimmte Probleme zu lösen. Dies geschieht, indem sie zur Lösung relevante Beiträge auf das Blackboard schreiben, die wiederum dazu dienen können, weitere Teillösungen des Problems zu finden. Solange die entgültige Lösung des Problems noch nicht gefunden wurde, bzw. mit Hilfe der Informationen des Blackboards noch nicht konstruiert werden konnte, wird diese Prozedur fortgesetzt. Wichtig ist, dass jeder Agenten des Systems über alle für ihn wichtigen Einträge des Blackboards Bescheid weiß, damit er effizient an der Lösung des Problems arbeiten können. Der Agent kann dabei selber entscheiden, welche Art von Informationen er für Wichtig erachtet. Damit die Agenten nicht ständig das Blackboard nach neuen Einträgen durchsuchen müssen wird, wann immer etwas Neues hinzukommt, sich eine Information ändert oder ein Beitrag gelöscht wird, ein Event ausgelöst. Daraufhin können die Agenten entscheiden, ob sie sich die Änderung ansehen wollen, oder nicht. Die Agenten des Systems müssen nicht alle dieselben Fähigkeiten haben, die einzige Vorraussetzung, die sie erfüllen müssen, um an der Lösung des Problems mitarbeiten zu können, ist die Einhaltung der Schnittstelle des Blackboards und das Verständnis der benutzten Sprache. Das Blackboard ist eine gemeinsame Datenstruktur, die alle wichtigen Informationen zur Lösung des Problems enthält. Oft weist das Blackboard eine hierarchische Struktur auf[1], dies ist aber nicht zwingend notwendig. Es wäre z.B. möglich, dass auf verschiedenen Ebenen das Problem in unterschiedlichen Repräsentationsformen und Abstraktionsformen dargestellt wird. Die Agenten arbeiten auf unterschiedlichen Ebenen und sehen jeweils nur die eigene Ebene, wobei es ihnen dann nur möglich ist Daten an eine Ebene höher weiterzugeben oder die Agenten einer Ebene tiefer zu kontrollieren. Die Kontrolleinheit ist unabhängig von den Agenten und dient zur Steuerung und Koordination der Agenten. Sie entscheidet welcher von ihnen den nächsten Schritt im Lösungsprozess machen darf. Die Agenten melden sich bei der Komponente an, wenn sie einen Beitrag leisten möchten, und teilen dazu die Kosten und die Qualität des Beitrags 6 mit. Falls sich mehrere Agenten anmelden, entscheidet die Kontrolleinheit anhand der erhaltenen Informationen, welcher als nächstes handeln darf.[2] Die Implementierung dieser Kontrolleinheit kann sich als sehr anspruchsvoll erweisen, da sie leicht zum Flaschenhals werden kann, wenn sich viele Agenten in einem System befinden, die alle viele Beiträge leisten möchten. So wurde z.B. die Kontrollkomponente in der ersten Version von Hearsay II, ein Spracherkennungssystem, prozedural umgesetzt, bei den BB1 – Systemen von B. Haynes-Roth (1985) wurde diese Einheit selbst als Blackboard organisiert. [1] Abbildung 2 Blackboardmodell mit Kontrolleinheit Zu den Vorteilen des Blackboard Systems zählt ihre universelle Anwendbarkeit. Es gibt keine festgeschriebene Art von Problemen, die zu lösen sind. Es lassen sich die unterschiedlichsten Arten von Problemen lösen. Ein weiterer Vorteil ist die Unabhängigkeit der Agenten untereinander. Da sie nicht aufeinander angewiesen sind, ist es leicht möglich einen Agenten zu entfernen oder auszutauschen. Zu den Nachteilen gehört die Ineffizienz, die durch umfangreiches Kontrollregime entstehen kann[1]. Wenn sich zu viele Agenten im System befinden, und die Kontrolleinheit nur langsam die Informationen verarbeiten kann, dann kommt es hier zu einem Engpass, und die Lösung des Problems dauert länger. 7 2.2 Stigmergy Der Begriff Stigmergy wurde erstmals von dem Biologen Grassé eingeführt. Das Wort stammt aus dem griechischem und ist zusammengesetzt aus stigma (Zeichen) und ergon(Arbeit). Die Kommunikation erfolgt hierbei über Veränderungen in der Umwelt. An bestimmten Stellen der Umwelt werden bestimmt Dinge verändert, und alle im System befindlichen Agenten können diese Änderung deuten und darauf reagieren. Somit dient die Umwelt als Kommunikationsmedium. Es gibt zwei unterschiedliche Arten von Stigmergy[3] • • qualitative Stigmergy quantitative Stigmergy Quantitative Stigmergy bedeutet, dass durch Erhöhung des Reizes auch die Erhöhung einer Reaktion darauf steigt. Ein Beispiel hierfür sind Ameisen, die auf Futtersuche gehen. Die Ameisen laufen anfangs ziellos durch die Gegend und hinterlassen dabei Pheromonspuren. Hat eine Ameise eine Futterstelle gefunden, sammelt sie etwas Futter und bringt es auf dem gleichen Weg zurück zum Nest. Dabei hinterlässt sie wieder eine Pheromonspur, wodurch die erste verstärkt wird. Treffen andere Ameisen auf diese Spur, so haben sie den Drang dieser Spur zu folgen. Da diese Spur mit der Zeit verdampft, werden die weniger benutzten Wege mit der Zeit schwächer im Geruch. So kommt es, dass sich mit der Zeit der kürzeste Weg zur Futterquelle bei allen Ameisen durchsetzt, da auf diesem Weg die Spur am deutlichsten ist. Bei qualitativer Stigmergy wird die Reaktion durch die Art der Reizung gesteuert. So ist es hier wichtig, welche Art von Pheromon ausgestoßen wird, nicht aber wie viel davon. Ein bekanntes Beispiel hierfür ist die Nestbildung der Papierwespen. In der Natur ist häufig eine Mischung beider Formen zu finden. Ein Nachteil bei Stigmergy ist sicherlich, dass es oft länger dauern kann, bis eine Veränderung bemerkt wird und somit die Reaktionszeiten langsamer ausfallen können als bei anderen Verfahren. Ein Beispiel für qualitative Stigmergy: Abbildung 3 Nest der Papierwespe [10] 8 3. Direkte Kommunikation Unter direkter Kommunikation versteht man, wenn sich 2 oder mehrere Agenten austauschen, ohne dabei auf andere Hilfsmittel wie z.B. ein Blackboard oder die Umwelt zurückgreifen zu müssen. 3.1 Einführung in ACLs (Agent Communication Language) Unter ACL versteht man Sprachen, die es verschiedenen Agenten ermöglichen, Wissen und Informationen auszutauschen. Damit der Austausch überhaupt möglich ist, müssen die Agenten über eine gemeinsame Sprache und evtl. ein gleiches Verständnis des Wissens verfügen. Des weiteren sollten einige Eigenschaften von den Agenten erfüllt werden, damit eine „vernünftige“ Kommunikation zustande kommt. So sollte gewährleistet sein, das die Agenten immer die Wahrheit sagen. Auf den folgenden Seiten werde ich einige ACLs vorstellen. 3.2 FIPA (Foundation for Intelligent Physical Agents) Eine Organisation ist die FIPA. Sie wurde 1996 gegründet und macht es sich zum Ziel, Software Standards für Agenten und Agenten Systeme festzulegen[5]. Von ihr wurde die FIPA-ACL entwickelt, die auf der Theorie der Sprechakte basiert.(siehe 1.2) Sie ist vom Grundkonzept und auch von der Syntax ähnlich wie KQML, auf das später noch genauer eingegangen wird. Die Semantik ist völlig mit mathematischen Formeln definiert. Nun ein Beispiel zum Aufbau der FIPA-ACL[8]: (inform :sender :receiver :content :in-reply-to :language :ontology :protocol ) bt-agent customer-agent (Line_quote(bt_cusomer,123)300) round-4 prolog bt-auctions fipa-contract-net 3.3 KSE (Knowledge Sharing Effort) Das KSE-Projekt wurde im Jahre 1990 gestartet und ist ein Konsortium von verschiedenen Universitäten und anderen Forschungseinrichtungen. Es wird finanziert von der DARPA (Defense Advanced Research Projects Agency) . Innerhalb dieses Projekts wurden verschiedene Arbeitsgruppen gebildet, die es sich zum Ziel gemacht haben, standarisierte Strukturen festzulegen, mit Hilfe derer es Möglich ist, mit großen Wissensbasen umzugehen. Eine Arbeitsgruppe des KSE ist Interlingua, die sich mit der Übersetzung verschiedener Repräsentationssprachen beschäftigt. Eine weitere ist KRSS 9 (Knowledge Representation System Specification), welches sich mit der Definition gemeinsamer Konstrukte von Repräsentationssprachen beschäftigt. Dann gibt es noch die External Interface Working Group, die sich die Interaktion zwischen Wissensbasen und die Entwicklung von Kommunikationsprotokollen, wie z.B. KQML (siehe 3.6 KQML) zur Aufgabe gemacht hat. Die SRKB (Shared, Reusable Knowledge Bases) kümmert sich um den Inhalt der Wissensbasen. Abbildung 4 Aufbau des KSE Die ACL des KSE besteht aus 3 verschiedenen Teilen[4] • • • Vokabular Innere Sprache Äußere Sprache Das Vokabular, auch als Ontologie bezeichnet, ist ein großen, nicht abgeschlossenes Wörterbuch. Die innere Sprache, z.B. KIF, dient zum Wissensaustausch zwischen den Agenten Die äußere Sprache, z.B. KQML, regelt die Kommunikation zwischen den Agenten. Diese Elemente werden im Folgenden vorgestellt. 3.4 Ontologien Der Begriff Ontologie kommt aus dem Griechischen und geht auf den Philosophen Aristoteles zurück. In der Philosophie bedeutet Ontologie die Lehre vom Sein und Seienden. Eine Ontologie im technischen Sinne ist eine Spezifikation von Objekten, Konzepten und Beziehungen. Bei dem Beispiel „(AND(Block A) (Block B) (On A B)“ repräsentiert „Block“ ein Konzept, „A“ und „B“ ein Objekt und „On“ eine Beziehung. Man schafft sich mit Hilfe dieser Beziehungen eine gemeinsame Basis für eine einheitliche Weltanschauung, indem die Gegenstände in der Welt eindeutig definiert werden.[9] Um nun selber eine Ontologie zu definieren, solle man nach [9] möglichst 4 Schritte einhalten: 10 1. Sammeln von Begriffen und Relationen, die wichtig zur Beschreibung der Welt sind 2. Festlegen der Struktur des Begriffes und dessen Funktion 3. Begriffe und Relationen exakt definieren, dabei redundante Begriffe entfernen 4. Fehler entfernen Es gibt auch schon viele vorgefertigte Ontologien, die man für seine Zwecke einsetzen kann. 3.5 KIF (Knowledge Interchange Format) 3.5.1 Allgemeines KIF wurde von der Interlingua Gruppe des KSE entwickelt und stellt den Inhalt von Wissensbeständen dar. Es basiert auf dem Prädikatenkalkül der ersten Ordnung. Die Beschreibung der Sprache enthält sowohl eine Spezifikation für ihre Syntax als auch für ihre Semantik. Es ist möglich, einfache Daten, Beschränkungen, Negationen, Disjunktionen, Meta-Wissen und Regeln darzustellen. Ebenso kann man Objekte, Funktionen und Relationen definieren.[2] Es gibt eine Reihe von Objekten, die vordefiniert sind, wie z.B. die realen Zahlen [6]. Der Vorteil von KIF gegenüber anderen Sprachen wie PROLOG, die auch Wissen speichern, ist, dass KIF keinen Interpreter braucht, um Ausdrücke zu manipulieren. Des weiteren besteht die Möglichkeit MetaWissen darzustellen, was bei PROLOG nicht der Fall ist. Ausdrücke können in KIF in zwei verschiedenen Formen vorliegen: linear KIF und structured KIF. Bei linear KIF liegen alle Ausdrücke als Strings vor, während bei structured KIF die Ausdrücke in Form von strukturierten Objekten vorliegen. Der Vorteil beim letzteren liegt darin, dass so gespeichertes Wissen besser im Arbeitsspeicher eines Agenten verwaltet werden kann. 3.5.2 Syntax Um Fakten auszudrücken, bedient man sich in KIF folgender Schreibweise: (gesinnung bot1 freund) (gesinnung bot2 feind) Das erste Wort hierbei steht für das Fakt, welches beschrieben werden soll. Das letzte Wort beschreibt den Wert des Faktes. Dazwischen ist das Objekt beschrieben, auf das sich das Fakt bezieht, wobei das Objekt nur durch ein Wort beschrieben werden kann oder auch durch mehrere. Wichtig dabei ist, dass es eindeutig beschrieben wird. Des weiteren gibt es viele Funktionen, die einem zur Verfügung stehen. (+ 1 2) 11 Zu Beginn des Terms steht die Art der Funktion, die aufgerufen wird, in diesem Fall also die Addition. Danach folgen eine Reihe von Konstanten, die an die Funktion übergeben werden, wobei beliebig viele übergeben werden können. Der Rückgabewert ist in diesem Fall 3. Es ist auch möglich mehrere Funktionen ineinander zu schachteln: (> (+ (munition weapon1) (reservemunition weapon1)) (+ (munition weapon2) (reservemunition weapon2)) ) Die Funktionen werden von innen nach außen aufgelöst. Zuerst wird also die gesamte Munition von der 1. Waffe und der 2. Waffe berechnet, danach werden die vorhandenen Munitionsmengen verglichen. Der Rückgabewert ist true, wenn Weapon 1 mehr Munition hat als Weapon 2, sonst ist er false. Weitere vordefinierte Funktionen sind nachzulesen unter [7]. Es ist auch möglich Funktionen selbst zu definieren, darauf wird hier aber nicht näher eingegangen, da es den Rahmen dieser Ausarbeitung sprengen würde. Auch Folgerungen sind bei KIF möglich. (=> (and (real-number ?x) (even-number ?n)) (> (expt ?x ?n) 0) ) Wenn gilt, das x eine Zahl ist, und n eine grade Zahle, dann folgt daraus, das x potenziert mit n größer 0 ist. Eine weitere Möglichkeit von KIF sind die Fallunterscheidungen. (if (>= ?x 0) ?x (- ?x) ) Falls die Zahl x größer oder gleich 0 ist, liefert die Funktion x zurück, andernfalls wird auf x die Minus-Funktion angewandt und dann das Ergebnis zurückgeliefert. In KIF kann man auch den Glauben oder das Interesse an bestimmten Dingen ausdrücken, was gerade für intelligente Systeme wichtig sein kann. (believes mybot ‘(gesinnung bot1 feind)) Dies drückt aus, dass mybot glaubt, dass bot1 ein Feind ist. (interested joe ’(tokill, ?x, ?y, ?z)) Dieses bedeutet, dass Joe daran interessiert ist, Tripel aus der tokill-Relation zu empfangen. 12 Wichtig zu erwähnen ist auch, dass in KIF Prozeduren geschrieben werden können. Diese Prozeduren können andere Agenten dazu bringen, bestimmte Anweisungen auszuführen. (progn (fresh-line t) (print "Hallo") (fresh-line t) ) Dieses Stück Programmcode bringt einen Agenten dazu, „Hallo“ zwischen zwei Zeilenvorschüben auszugeben. 3.6 KQML 3.6.1 Allgemeines Die KQML-Gruppe wurde 1992 gegründet und ist ein Teil des KSE. KQML ist ein Protokoll für den Austausch von Informationen und Wissen und basiert auf der Sprechakttheorie. Es erlaubt beliebige Sprachen zur Darstellung des Nachrichteninhaltes und unterstützt sowohl synchrone als auch asynchrone Kommunikation. KQML hat eine Schichtenstruktur, die aus 3 Schichten besteht. Die innerste Schicht ist der Inhalt der Nachricht. Hierbei sind verschiedene Sprachen zur Darstellung des Inhalts möglich, wie z.B. KIF oder PROLOG. KQML ignoriert diese Schicht fast vollständig, es werden nur relevante Informationen zur Darstellung der Nachricht gesucht, wie das Ende des Inhalts. Die mittlere Schicht ist die Nachrichten Schicht. Sie beschreibt die Logik der Kommunikation. Hier wird die Nachricht selbst kodiert. Der Nachrichtentyp wird spezifiziert und es werden die möglichen Interaktionen bestimmt, die mit dem Agenten möglich sind. Die äußere Schicht, Kommunikationsschicht, beschreibt die Mechanik der Kommunikation. Sie enthält Daten wie Absender und Empfänger. Abbildung 5 KQML - Schichten 13 3.6.2 Semantik In KQML wird davon ausgegangen, dass jeder Agent eine virtuelle Wissensbasis verwaltet. Die Einträge in dieser sind unterteilt in Fakten (beliefs) und Ziele (goals). Die Fakten kodieren Informationen, die ein Agent über sich und seine Umwelt besitzt, Ziele zeigen den Zustand der Umwelt, den der Agent erreichen möchte. Die Agenten benutzen KQML, um über den Inhalt ihrer eigenen und anderen Wissensbasen zu kommunizieren.[7] 3.6.3 Syntax Die Syntax von KQML ist Lisp-ähnlich und das Basisprotokoll ist folgendermaßen definiert: (KQML-performative :sender :receiver :language :ontology :content ...) <word> <word> <word> <word> <expression> Die KQML-Performative sind festgeschriebene Ausdrücke und basieren auf den Sprechakt Performativen. Hiermit wird der Verwendungszweck der Nachricht ausgedrückt und festgelegt, welches Verhalten vom Empfänger der Nachricht erwartet wird. Man kann sie in 7 verschiedene Kategorien einteilen[2]: 1. Basis Query: 2. Multiresponse Query: 3. Response: 4. Generic informational: 5. Generator: 6. Capability-definition: 7. Networking: (evaluate, ask-one, ask-all,...) (stream-in, stream-all,…) (reply, sorry,…) (tell, achieve, cancel, untell,…) (standby, ready, next,…) (advertise, subscribe,…) (register, forward,…) Ich stelle nun 2 wichtige Performative vor: ask if: tell: Der Absender fragt, ob der Inhalt des content Feldes für den Empfänder wahr ist Der Sender teilt mit, dass der Inhalt des content Feldes in seinen Wissensbasis vorhanden ist Weitere können unter[7] nachgelesen werden. Im Schlüsselwort :content ist die eigentlich zu übermittelnde Nachricht gekapselt, die in der Sprache geschrieben ist, die in :language angegeben ist, wie z.B. KIF oder PROLOG und die Vokabeln benutzt, die in dem in :ontology angegebenen Vokabular definiert sind. 14 Zusätzlich zu den im Basisprotokoll beschriebenen Schlüsselwörtern, gibt es noch weitere mögliche Argumente, die zum Protokoll hinzugefügt werden können. Hier einige Beispiele: Encoding reply-to reply-by Gibt an, wie der Inhalt der Nachricht codiert wurde Gibt den Empfänger der Antwort an Deadline, bis wann der Empfänger geantwortet haben soll Eine einfache Information wird folgendermaßen weitergegeben: (inform : sender : receiver : language : ontology : content ) Bot1 Bot2 KIF Quake-World (AND (Feind A) (Feind B) ) Bot2 wird von Bot1 informiert, dass A und B Feinde sind. Betrachten wir nun ein Beispiel eines Dialogs: (ask-one : sender Melanie : receiver Sparkasse : language KIF : ontology money : content (interested melanie ’(money, kontonr, ?money,)) ) Eine Antwort auf diese Anfrage könne so aussehen: (tell : sender : receiver : language : ontogogy : content Sparkasse Melanie KIF money (money kontonr 0) ) Es ist auch möglich, KQML Statements zu schachteln. In folgendem Beispiel kann Agent 1 Agent 2 nicht direkt erreichen, und kommuniziert über Agent 3 mit Agent 2: (tell :sender :receiver Agent1 Agent3 15 :language :ontology :content KQML KQML-Ontology (inform :sender :receiver :language :ontology :content ) Agent1 Agent2 KIF Blocks-World (AND (Block A) (Block B) (On A B) ) KQML ist also ein sehr flexibles Kommunikationsprotokoll, da man hierbei nicht an eine bestimmte Sprache zur Übermittlung von Wissen gebunden ist. 16 4. Adressaten In einem System mit vielen verschiedenen Agenten ist es wichtig sich über die unterschiedlichen Adressaten der Kommunikation klar zu werden. Es gibt 3 verschiedene Möglichkeiten der Kommunikation: • Singlecast • Multicast • Broadcast Im Folgenden werde ich Näher auf diese Möglichkeiten eingehen und sie erklären. 4.1 Singlecast Es gibt die Möglichkeit einer one to one communication. Hierbei spricht ein Agent genau einen anderen an. Ein weiterer Fall ist die many to one communication, bei der eine Gruppe von Agenten einem einzelnen eine Nachricht schickt. Dieser muss evtl. die empfangenen Nachrichten dann noch in die richtige Reihenfolge bringen. Besteht in diesem Fall die Gruppe aus allen Agenten des Systems, so war dies eine all to one communication. Anders ausgedrückt wird bei Singlecast ein Agent direkt adressiert. 4.2 Multicast Von einer one to many communication spicht man, wenn ein Agent eine Gruppe von anderen Agenten anspricht. Es kann auch eine Gruppe von Agenten eine andere Gruppe ansprechen, das nennt man dann many to many communication. Wenn alle Agenten an eine bestimmte Gruppe eine Nachricht versenden, so heißt das all to many communication. Bei Multicast wird also immer eine bestimmte Empfängergruppe angesprochen, die an einer bestimmten Adresse den Kanal abhören 4.3 Broadcast Spricht ein Agent alle anderen Agenten im System an, so nennt man das auch one to all communication. Auch hier besteht wieder die Möglichkeit, das nicht nur einer alle anspricht, sondern auch eine Gruppe von Agenten allen anderen eine Nachricht zukommen lässt, many to all communication, oder alle Agenten an alle Nachrichten schicken, all to all communication. In diesen Fällen spricht man von Broadcast. Es werden also alle Agenten im System angesprochen, die den Kommunikationskanal abhören. 17 4.4 Vor – und Nachteile Broadcast ist für die Agenten die einfachste Möglichkeit zu kommunizieren, da sie dabei die Adresse des Kommunikationspartner nicht kennen müssen. Allerdings ist in diesem Verfahren auch die Auslastung des Kommunikationskanals am größten, da jeder alle Nachrichten bekommt. Außerdem müssen die Agenten hierbei die für sie relevanten Nachrichten selber herausfiltern. Der Vorteil von Singlecast liegt darin, dass jeder Agent sicher sein kann, dass die bekommene Information auch wirklich für ihn gedacht ist, will man allerdings per Singlecast mehreren Agenten die gleiche Nachricht schicken, bedeutet das mehr Zeitaufwand die Nachricht jedes Mal wieder an nur einen zu schicken. Multicast ist also ein guter Mittelweg, da hierbei nur bestimmte Gruppen adressiert werden und es auch nicht ausgeschlossen ist, dass Agenten zu mehreren Gruppen gehören. Ein Beispiel, wo Multicast angewendet werden kann, und das sich auch auf die Aufgabe unserer Projektgruppe bezieht, ist die Modellierung eines Spiels, in dem 2 Mannschaften von Agenten gegeneinander antreten, wobei jede Mannschaft über ein Headset die Möglichkeit zur Kommunikation besitzt. Da man nicht möchte, dass die gegnerische Gruppe die eigenen Pläne mitbekommt, schickt man die Nachricht nur an Mitglieder der eigenen Gruppe. Diese kann man dann falls nötig noch mal in Untergruppen wie Angreifer und Verteidiger unterteilen, so dass man noch mal exakter mit den gewünschten Gruppenmitgliedern kommunizieren kann. 4.5 Reichweite Manchmal ist es auch sinnvoll, die Adressatengruppe daraufhin zu beschränken, in welcher Entfernung sich die Agenten zueinander befinden. So erreicht man mittels globaler Kommunikation alle Agenten im System, sei es durch Broad-, Multi-, oder Singlecast, während man bei der lokalen Kommunikation nur eine bestimmte Gruppe von Agenten erreichen kann, die sich in der Umgebung befinden, wobei die Umgebung noch definiert werden muss. So ist es je nach System sinnvoll einen lokalen Broadcast durchzuführen oder die nächsten x Nachbarn mit in die Kommunikation einzubeziehen. Ersteres ist sinnvoll, wenn z.B. möglichst real ein Haus modelliert wurde, in dem sich verschiedene Personen (Agenten) in verschiedenen Räumen befinden. Hier ist es zweckmäßig einen lokalen Broadcast durchzuführen, wenn eine Person etwas mitzuteilen hat, da alle im Raum anwesenden verstehen was gesagt wird, aber alle nicht im Raum befindlichen Personen das auch im realen Leben nicht verstehen können. Nur die nächsten x Nachbarn zu informieren macht dann Sinn, wenn z.B. die Kommunikation darin besteht eine vorgegebene Anzahl wie z.B. 3 Agenten für seine eigene Gruppe zu rekrutieren und am eigenen Standort zu versammeln. Bei diesem Beispiel ist es am besten, wenn man an die nächsten 3 Agenten eine Nachricht schickt mit der Aufforderung herzukommen. 18 5. Bezug zur Projektgruppe KIMAS Innerhalb der Projektgruppe besteht die Aufgabe, ein Multiagenten System zu entwickeln, in dem die Agenten ein Gebäude errichten, und Capture the Flag spielen, wobei auch die Umgebung kartographiert werden soll. Dabei ist es unerlässlich, dass die Agenten untereinander kommunizieren. So können sie sich beim Gebäudebau und innerhalb der eigenen Mannschaft beim Erobern der Flagge koordinieren. Zuerst muss entschieden werden, ob unsere Agenten auf direktem oder indirektem Wege miteinander kommunizieren sollen, wobei meiner Meinung nach bei der indirekten Kommunikation nur das Blackboard in Frage kommt, da Stigmergy für Capture the flag in einigen Fällen zu langsam sein kann, d.h. es kann möglich sein, dass nicht alle Agenten sofort auf eine wichtige Situation reagieren. So bleibt also von der indirekten Kommunikation noch das Blackboard Modell, wobei dabei entschieden werden muss, welche Struktur das Modell genau haben soll. Der Erfolg des Blackboard Modells hängt meiner Meinung nach von der Qualität der Kontrolleinheit ab, da diese die Informationen verwaltet. Wird die direkte Kommunikation gewählt, so muss man sich für eines der Kommunikationsprotokolle entscheiden. Würden wir hier mit KQML arbeiten, so müssen wir noch eine Sprache zum Wissensaustausch wählen. Hierbei kommen unter anderem PROLOG und KIF in Frage. KIF hat den Vorteil, dass wir Prozeduren schreiben können, und auch Glauben ausdrücken können, was in PROLOG nicht der Fall ist. Dann müssen wir uns auf ein Vokabular einigen, was alle Agenten im System verstehen und zuletzt ist noch wichtig, sich über die Reichweite und die Adressaten der Kommunikation klar zu werden. Es würde sich eine globale Reichweite für den Wissensaustausch anbieten, da die Agenten im realen Leben wahrscheinlich auch mit Funkgeräten o.ä. ausgestattet wären. Da bei Capture the Flag 2 Gruppen existieren ist es sinnvoll keinen Broadcast durchzuführen, da sonst auch die gegnerische Mannschaft an die eigenen Informationen kommen könnte. Also besteht hier die Möglichkeit für Multicast. 19 6. Quellenverzeichnis [1] Jaques Ferber: Multiagenten-Systeme, Eine Einführung in die Verteilte künstliche Ingelligenz, Addison Wesley, 1997 [2] Gerhard Weiss: Multiagent Systems - A Modern Approach to Distributed Artificial Intelligence, 1999 Massachusetts Institute of Technology [3] Andreas Goebels: Strukturbildung durch koordinierte und evolutionäre Partikelschwärme http://www.uni-paderborn.de/cs/agklbue/staff/labeo/work/publications/Diplom.pdf [4] Prof. U. Borghoff: Vorlesung Verteiltes Informationsmanagement 1998 http://www2-data.informatik.unibwmuenchen.de/People/borghoff/slides/vim1998/sld042.htm [5] FIPA Homepage http://www.fipa.org [6] Spezifikation von KIF http://www.fipa.org/specs/fipa00010/XC00010C.html [7] Spezifikation von KQML http://www.csee.umbc.edu/kqml/kqmlspec/spec.html [8] Beispiel zu FIPA-ACL www.igd.fhg.de/~busch/vorlesung/mas_ausarbeitungen/SemayKommunikation.pdf [9] Definition Ontologie http://www.informatik.huberlin.de/~bien/ontologie.html#Was%20ist%20eine%20Ontologie? [10] Abbildung des Nestes der Papierwespe http://www.cnse.caltech.edu/Research02/reports/easton1full.html 20