1. Vorbemerkungen
Übersicht Vorbemerkungen
1.1 Definition: Agenten
Bei einem (Software-) Agenten handelt es sich um ein Programm, welches in einer vernetzten Umgebung selbständig Aufgaben bearbeiten bzw. Probleme lösen kann. Allerdings gibt es keine eindeutige Definition für einen Agenten. Wesentliche und weitläufig geforderte Eigenschaften für einen Agenten umfassen Autonomie, Reaktivität und Proaktivität (vgl. Wooldridge, Michael: Introduction, 2002, S. 23). Für den Umfang dieser Ausarbeitung gelten diese Eigenschaften als Vorbedingung und sollen eine allgemeingültige Basis darstellen.
[ nach oben ]
1.2 Definition: Protokolle
Im Allgemeinen wird ein Protokoll als eine „Vereinbarung über den geordneten Ablauf einer Kommunikation…“ (vgl. o.V.: Duden, 1993, S. 555) definiert. Auch die Kommu-nikation von Agenten mit Servern bzw. Agenten untereinander wird durch Protokolle geregelt. Diese geben z.B. vor, dass einige Aktionen nur in Kombination mit anderen Aktionen oder evt. gar nicht ausgeführt werden dürfen (vgl. Dr. Iwanowski, Sebastian: Verteilte Systeme, 2004, S. 24). Die Aufgabe eines Protokolls ist es nun bestimmte Aktionen zu Transaktionen zusammen zu fassen, um so die Interaktion von Agenten zu regeln. Alle Aktionen besitzen eine Transaktions- und Ausführungsnummer. Die Transaktionsnummer wird auch Conversation-ID genannt. Zur fehlerfreien Identifikation von Aktionen handelt es sich bei der Transaktionsnummer um eine eindeutige Identifikationsnummer. Die Ausführungsnummer hingegen stellt die Stellung einer Aktion innerhalb des Protokolls dar. Wird nun eine Transaktion entgegengesetzt der Protokolldefinition nicht fehlerfrei beendet, werden alle bis zu dem Zeitpunkt vorgenommenen Aktionen wieder aufgehoben. Die Transaktion wird also rückgängig gemacht.
Ziel ist es also Regeln bzw. Abläufe zu definieren, nach denen die Interaktion zwischen Agenten abläuft. Die Menge der möglichen Nachrichten, als auch deren syntaktischer Aufbau, die bei der Kommunikation ausgetauscht werden, sind als Sprechakttypen bzw. Communication-Acts definiert und werden im nächsten Abschnitt erläutert.
Eine weitere Aufgabe von Protokollen besteht in der Gewährleistung von Kohärenz. Unter Kohärenz versteht man, wie gut Agenten zusammen arbeiten. Ziel eines Protokolls ist es also auch einen möglichst hohen Grad an Kohärenz zu erreichen.
[ nach oben ]
1.3 Sprechakte
Anm.: Alle Beispiele und Abbildungen für Sprechakte wurden aus den entsprechenden Spezifikationen der FIPA (Foundation for Intelligent Physical Agents) entnommen.
Sprechakte können auch als Akte des Nachrichtenaustauschs zwischen Agenten beschrieben werden. Möchte ein Agent beispielsweise einen anderen Agenten darüber informieren, dass es „heute regnet“, sendet er einen Sprechakt des Typs inform mit folgendem Inhalt:
(inform
:sender (agent-identifier :name i)
:receiver (set (agent-identifier :name j))
:content
"weather (today, raining)"
:language Prolog)
Abbildung 1: Beispiel für einen Sprechakttyp
Um die Kommunikation von Agenten sicher zu stellen, definierte die FIPA 2002 eine Communicative Act Library Specification. Diese enthält 22 Sprechakttypen zur Kooperation. Die FIPA Agent Communication Language, welche sehr KQML (Knowledge Query and Manipulation Language) ähnelt, soll im Rahmen dieser Ausarbeitung als Standardsprache dienen. Da die explizite Beschreibung aller Sprechakte den Umfang dieser Ausarbeitung überschreiten würde, sind nachfolgend die 22 Sprechakttypen der FIPA nur namentlich aufgeführt.
FIPA-Compliant Communicative Acts
1 Accept Proposal
2 Agree
3 Cancel
4 Call for Proposal
5 Confirm
6 Disconfirm
7 Failure
8 Inform
9 Inform If
10 Inform Ref
11 Not Understood
12 Propagate
13 Propose
14 Proxy
15 Query If
16 Query Ref
17 Refuse
18 Reject Proposal
19 Request
20 Request When
21 Request Whenever
22 Subscribe
Die genaue Spezifikation kann auf der Homepage der FIPA
(www.fipa.org) eingesehen werde. Grundsätzlich verfügen diese Sprechakttypen über sprechende Bezeichner, dessen Bedeutung bereits durch den verwendeten Namen hinreichend erklärt wird. Zur Beschreibung der Protokolle wird auf diese Sprechakte zurückgegriffen und bei Bedarf werden diese näher erläutert.
Die Protokolle definieren also eine Abfolge von Sprechakten, welche die Zusammenarbeit zwischen Agenten – also die Interaktion – regeln.
[ nach oben ]
1.4 Rollen von Agenten
Das Ziel eines Multiagentensystems ist es die Zusammenarbeit von Agenten zu ermöglichen, um so gemeinsam Problem zu lösen. Das Verteilte Problemlösen ist also als Synonym für die Zusammenarbeit zwischen Agenten zu sehen.
Besitzt nun ein Agent eine Aufgabe, die er alleine nicht lösen kann - und im Kontext der Multiagentensysteme auch nicht soll - muss diese Aufgabe zerlegt und an andere Agenten verteilt werden, um dann im nächsten Schritt die Teilergebnisse wieder zusammen zu setzen und eine Lösung des Problems zu erhalten. Die in dieser Ausarbeitung dargestellten Protokolle regeln die Verteilung der Aufgaben an andere Agenten und ermöglichen so die Zusammenarbeit zwischen Agenten. Bei der Aufgabenverteilung nimmt dieser Agent die Rolle eines Auftraggebers ein, während ein anderer Agent, dem eine Teilaufgabe zugewiesen wird, die Rolle eines Dienstanbieters annimmt. Der Zustand der Agenten bzw. die Rollen, die diese einnehmen, kann zu jedem Zeitpunkt wechseln. Auch können Agenten gleichzeitig Auftraggeber und Dienstanbieter sein (vgl.: Ferbes, Jacques: Multiagentensysteme, 2001, S. 370). Dies tritt z.B. ein, wenn ein Agent zwischen zwei anderen Agenten vermittelt und so die Rolle eines Maklers (Brokers) übernimmt. Näheres hierzu wird in Kapitel 3 (Makler-Protokolle) beschrieben. Festzuhalten bleibt, dass Agenten ihren Zustand dynamisch anpassen können.
[ nach oben ]
1.5 Angewandte Protokolle
Die Ziele und Aufgaben der im Bereich der Multiagentensysteme eingesetzten Protokolle wurden bereits in den vorangegangenen Abschnitten aufgezeigt. Wie gut Agenten aber schließlich in einem Multiagentensystem zusammen arbeiten, hängt nicht zuletzt vom eingesetzten Protokoll ab.
Das Bekannteste darunter ist das ContractNet-Protokoll, welches zur Aufgabenverteilung den ContractNet-Ansatz nach Smith und Davis zur verteilten Aufgabenallokation nutzt. Ein anderes sehr verbreitetes Protokoll ist das Makler-Protokoll, welches einen zentralisierten Ansatz verfolgt und so genannte Broker oder Makler einsetzt, um die Zusammenarbeit der Agenten zu ermöglichen.
[ nach oben ]
1.6 Ablauf der Ausarbeitung
Im Rahmen dieser Ausarbeitung werden die bereits erwähnten Protokolle – das ContractNet-Protokoll und das Maklerprotokoll – im Detail erläutert und analysiert. Außerdem werden die Vor- und Nachteile dieser aufgeführt und kritisch bewertet.
[ nach oben ]