Intelligente Softwareagenten
Torsten Kwast, wi3113
Seminar
Linux, WWW, Java und Internet
2. Definition(en)
Intelligente Softwareagenten
4. Prinzipieller Aufbau / Implementierung
3. Grundlagen
Übersicht
Unterschiede zwischen Agenten und Programmen
Nachdem im letzten Kapitel einige entscheidene Eigenschaften eines Softwareagenten
herausgearbeitet wurden, sollen an dieser Stelle noch einmal die Unterschiede zu
normaler Anwendungssoftware verdeutlicht werden.
Zunächst muß festgehalten werden, daß alle Softwareagenten Programme
sind, aber nicht alle Programme als Agenten bezeichnet werden können. Genauso
gilt, daß Subroutinen von Agenten nicht unbedingt Agenten sein müssen,
Agenten aber trotzdem Subagenten haben können.
Es gibt zwei Merkmale, durch die fast alle gewöhnlichen Programme
als Agenten ausgeschlossen werden: die Laufzeit und die Beeinflussung der Umwelt.
- Agenten entscheiden (normalerweise) selber, wann sie ihre Ausführung
beenden (im Idealfall ist das dann, wenn sie ihre Aufgabe erfüllt haben).
Der Benutzer hat manchmal gar keine Möglichkeit seinen Agenten zu stoppen,
zum Beispiel, wenn dieser im Internet "unterwegs" ist. Bei einem
Programm hingegen ist entweder von vornherein festgelegt, wann es
terminiert oder es wird direkt durch den Anwender angehalten.
- Das zweite Merkmal, wodurch sich ein Agent von einem normalen Programm abgrenzt,
ist, daß er mit bestimmten Aktionen seine Umwelt beeinflußt. Dies
hat zur Konsequenz, daß wiederum seine Wahrnehmungen und damit auch seine
späteren Aktionen beeinflußt werden.
Obwohl durch diese beiden Merkmale recht gut zwischen Agenten und Programmen getrennt
werden kann, ist eine Einteilung der "Welt" in Agenten und Nicht-Agenten
trotzdem nicht möglich (siehe auch Kapitel 2:
Definition(en)). Vielmehr wird es häufig Software geben, die von einem Benutzer
als Agent angesehen wird, von einem anderen Anwender dagegen nur als
"normales" Benutzerprogramm.
Klassifizierung von Agenten
Eine Einteilung von Agenten in Klassen erscheint sinnvoll, da durch die im letzten Kapitel
aufgeführten Definitionen jeweils eine große Bandbreite verschiedenster Agenten
umschrieben wird. Nun gibt es wahrscheinlich genausoviele Möglichkeiten Agenten zu
klassifizieren, wie es verschiedene Definitionen gibt. Dieser Abschnitt gibt einen
Überblick über einige Möglichkeiten Agenten zu unterteilen.
Franklin und Graesser haben eine Art natürliche Taxonomie nach dem biologischen
Modell eingeführt. Dabei berücksichtigen sie nicht nur die Softwareagenten,
sondern zeigen vielmehr auf, wo diese im Spektrum aller Agenten zu finden sind. Sie teilen
die Softwareagenten in drei Gruppen ein: aufgabenspezifische Agenten, Unterhaltungsagenten
und Viren.
Natürliche Taxonomie nach Franklin und Graesser
Wie können nun Softwareagenten weiter unterteilt werden? Als naheliegende
Möglichkeit bieten sich natürlich die Eigenschaften der Agenten an. Hier
noch einmal ein kurzer Überblick über einige der Merkmale: Autonomie,
Kommunikation, Reaktivität, Voraushandlung, Adaptivität, Mobilität,
mentalistische Eigenschaften...
Während die ersten vier Eigenschaften allen Agenten gemein sind, könnte
demnach eine Einteilung bezüglich der restlichen Merkmale erfolgen. So ist es zum
Beispiel möglich eine Klasse der mobilen Agenten zu bilden. Durch Hinzunehmen
weiterer Attribute können Unterklassen gebildet werden. Die Klasse der mobilen,
adaptiven Agenten wäre demnach eine Unterklasse der mobilen Agenten.
Nach diesem Muster können also beliebig feine Klasse gebildet werden, wobei die
Eigenschaften, nach denen eingeteilt wird, natürlich wohldefiniert sein
müssen.
Nwana hat Agenten folgendermaßen klassifiziert,
wobei sie nur drei Eigenschaften
berücksichtigt:
Typologie nach Nwana
Diese Klassifizierung basiert natürlich auf einer Definition von Agenten, die von der
"Weak Notion of Agency" abweicht
(zum Beispiel gibt es auch nicht-autonome Agenten, es werden nicht alle möglichen
Eigenschaften berücksichtigt, etc.). Die Einteilung in Klassen erfolgt auf
Grundlage zweier der drei Merkmale, wobei Agenten erst dann intelligent sind, wenn sie
alle drei Eigenschaften besitzen.
Weitere Möglichkeiten zur Klassifizierung von Agenten sind:
- nach den Aufgaben, die sie ausführen
- nach der Empfindlichkeit ihrer Wahrnehmungssinne
- nach der Reichweite ihrer Aktionen
- in welcher Art Umwelt sie sich befinden
- ...
Anwendungsgebiete von Agenten
Was bieten uns Agenten?
Grundsätzlich ist der Einsatz von Agenten dann sinnvoll und am effektivsten, wenn
häufig wiederkehrende Aufgaben gelöst, große Informationsmengen
verarbeitet und / oder vom Menschen schwer überschaubare Systeme unter Kontrolle
gebracht werden müssen.
Bei adaptiven Agenten ist das sich wiederholende Verhalten natürlich Voraussetzung
dafür, daß die Agenten aus den Situations-Verhaltens-Mustern lernen. Dabei ist
allerdings zu beachten, daß sich dieses Verhalten von Benutzer zu Benutzer
unterscheidet. Ansonsten könnte diese Funktionalität in einer
Anwendung fest implementiert werden und der Einsatz der komplexen, lernenden Agenten
würde sich erübrigen.
Die Fähigkeit der Agenten, miteinander zu kommunizieren, kann natürlich
besonders in folgenden Einsatzgebieten optimal ausgenutzt werden:
- wo Daten, Kontrolle und / oder Ressourcen verteilt sind,
- wo das System ohnehin aus einer Gemeinschaft (relativ) autonomer, kooperativer
Komponenten besteht und
- wo das System veraltete Komponenten beinhaltet, die nun mit anderen,
möglicherweise neuen Komponenten zusammenarbeiten, d.h. kommunizieren,
sollen.
Beondere Vorzüge bieten die mobilen Agenten, denn sie können möglicher
Ressourcenknappheit durch Migration begegnen. Das bedeutet zum Beispiel, daß
datenintensive Programme dorthin wandern, wo die benötigten Daten lokal
verfügbar sind. Speicherintensive Anwendungen würden dort ausgeführt, wo
genügend Speicher vorhanden ist. CPU-intensive Programme können auf einen
Rechner wechseln, der mehr CPU-Leistung bietet. Kommunikationsintensive Programme
würden sich dort aufhalten, wo die Bandbreite am größten ist.
Benutzer von Mobilrechnern können die Agenten (wenn möglich) ins Netz schicken
und ihr Notebook dann ausschalten. Beim nächsten Einschalten kehrt der Agent dann
selber zurück oder er schickt seine Ergebnisse.
Weitere Einsatzgebiete von Agenten sind:
- persönliche Assistenten (z.B. für Internet-Einkäufe oder
Terminvereinbarungen)
- intelligente - sprich: adaptive und voraushandelnde - Benutzerschnittstellen
- künstliche Kreaturen in Computerspielen und interaktiven
Zeichentrickfilmen
- ...
Agenten im Einsatz
Prozeßkontrolle - die ARCHON-Plattform
Prozeßkontrolle ist natürlich ein bevorzugtes Einsatzgebiet für
Agenten, da Prozeßkontrolle an sich ja schon einen autonomen Ablauf darstellt.
Die ARCHON-Plattform wurde als eines der ersten Multi-Agenten-Systeme auf der Welt
getestet und eingesetzt wurden. Agenten in ARCHON bestehen aus vier Hauptkomponenten:
einem High-Level Communication Modul (HCLM), einem Planning and Coordination Modul
(PCM), einem Agenten Informationen Management Modul (AIM) und einem Intelligent
System (IS).
Die ARCHON-Plattform wird zum Beispiel in Spanien zum Management von Transport von
Elektrizität eingesetzt und zur Kontrolle in Teilchenbeschleunigern.
Luftverkehr-Kontrolle - OASIS
In diesem System, das unter anderem im Flughafen von Sydney getestet und eingesetzt
wird, repräsentieren Agenten sowohl die Flugzeuge, als auch die verschiedenen
Luftverkehrskontrollsysteme. Immer wenn ein Flugzeug in den Flugraum von Sydney
eindringt, wird dafür ein Agent mit den Informationen und Zielen des wirklichen
Flugzeugs erzeugt. Zum Beispiel könnte die Besatzung eines Flugzeuges auf einer
bestimmten Rollbahn landen wollen. Flugverkehrkontrollagenten managen das System.
Information Management - Maxims
Maxims ist ein Mailfilter-Agent, der lernt die ankommende E-Mail zu priorisieren, zu
löschen, zu forwarden, zu sortieren und zu archiviren, indem es dem Benutzer
"über die Schulter schaut", während dieser mit seinem Mail-Programm
arbeitet. Maxims lernt aus jeder Aktion des Benutzers. Dabei macht er selbst intern
immer Vorhersagen über die nächste Handlung des Benutzers. Wenn er einen
bestimmten Grad an richtigen Vorhersagen erreicht hat, fängt er an autonom zu
handeln und dem Benutzer Vorschläge zu unterbreiten.
Remembrance Agent
Dieser Agent unterstützt das Erinnerungsvermögen des Benutzers. Das Programm
läuft ständig während der Computer benutzt wird und gibt Hinweise,
welches Dokument als nächstes verwendet werden könnte.
Businees Process Management - ADEPT
Manager müssen oft Entscheidungen treffen, obwohl sie nicht alle dafür
benötigten Informationen (rechtzeitig) haben. ADEPT ist ein System mit
verhandelnden, Service-anbietenden Agenten. Dabei repräsentiert jeder Agent eine
bestimmte Abteilung eines Unternehmens und kann ein oder mehrere Services anbieten.
Agenten, die einen Service von einem anderen Agenten benötigen, müssen mit
diesem verhandeln, um einen beiderseitig akzeptablen Preis und eine bestimmte
Qualität zu einer vorgegebenen zu erhalten.
Erfolgreiche Verhandlungen enden mit Übereinkünften.
Manager können sich auf diese Art und Weise rechtzeitig von ihren Agenten die
benötigten Informationen beschafften lassen, ohne selbst Zeit dafür aufbringen
zu müssen. Dieses System wurde zum Beispiel bei der British Telecom eingesetzt.
Seminar
Linux, WWW, Java und Internet
2. Definition(en)
Intelligente Softwareagenten
4. Prinzipieller Aufbau / Implementierung