Intelligente Softwareagenten

Torsten Kwast, wi3113


Seminar Linux, WWW, Java und Internet
2. Definition(en)      Intelligente Softwareagenten      4. Prinzipieller Aufbau / Implementierung

3. Grundlagen

Übersicht




Seitenanfang nächster Abschnitt

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




Seitenanfang vorheriger Abschnitt nächster Abschnitt

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:


Seitenanfang vorheriger Abschnitt

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:
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:

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.




Seitenanfang

Seminar Linux, WWW, Java und Internet
2. Definition(en)      Intelligente Softwareagenten      4. Prinzipieller Aufbau / Implementierung