>> Ressourcen > Theses > Reif, Gerald: M[..] > 10. Intelligent[..]

next up previous contents
Nächste Seite: II. Der Gestaltungsbereich Aufwärts: I. Der Untersuchungsbereich Vorherige Seite: 9. Neuronale Fuzzy Systeme   Inhalt



10. Intelligente Agenten

In den vorhergegangenen Abschnitten wurden verschiedene Techniken der künstlichen Intelligenz vorgestellt, die in der Wissensverarbeitung ihre Anwendung finden. Viele Problemstellungen der Wissensverarbeitung sind jedoch sehr komplex und umfangreich. Man denke nur an die effektive Informationssuche im Internet. In vielen Fällen ist es daher nicht möglich, ein konventionelles Programm zu erstellen, welches seine Aufgabenstellung in zufriedenstellender Qualität löst. Unter konventionellen Programmen werden an dieser Stelle Systemen verstanden, welche die Lösung des Gesamtproblems mit der Hilfe eines komplexen zentralen Programms verfolgen. Diese Programme können unter Umständen auch in einzelne Module gegliedert sein. [Jennings1998]

Die Verwendung von intelligenten Agenten stellt nun einen Ansatz dar, mit dessen Hilfe komplexe, verteilte Probleme bewältigt werden können. Zu diesem Zweck wird das Gesamtproblem in kleinere Teilprobleme zerlegt, die, von eventuell verteilten, autonomen Programmen, den Agenten, ausgeführt werden. Im folgenden Abschnitt sollen kurz einige Problemstellungen angerissen werden, welche einen Überblick über die Motivation zur Verwendung von intelligenten Agenten geben sollen.

10.1 Motivation für die Entwicklung von intelligenten Agenten

Das Internet stellt einen stark skalierten, ständig in Wachstum begriffenen Wissenspeicher dar, in dem die Informationsressourcen verteilt über das Netz auf unterschiedlichen Rechnern gespeichert sind. Im Internet existiert keine übergeordnete Instanz, welche den laufenden Zuwachs an Informationen koordiniert und inhaltlich erschließt. Ein konventionelles Software-System ist somit nicht in der Lage, eine umfassende Suchhilfe -- für alle im Internet zugänglichen Informationen -- anzubieten. Um zu einer Lösung für dieses Problem zu gelangen, wird an der Entwicklung von Systemen gearbeitet, die auf der Verwendung von verteilten, eventuell mobilen, intelligenten Agenten aufbauen. [Jennings1998]

Ein weiteres Problem, welches mit der Hilfe von intelligenten Agenten zu lösen versucht wird, ist einerseits die steigende Verbreitung von Computersystemen und der damit verbundenen steigenden Anzahl der Benutzer, und andererseits der steigende Funktionsumfang der Programme. Mit der wachsenden Benutzerzahl sinkt die Qualifikation der Benutzer. Im gleichen Zuge werden jedoch die Programme immer umfangreicher und komplexer, und fordern somit eine längere Einschulungszeit. Um modernen Computersysteme, trotz des Funktionsumfangs für den einfachen Anwender benutzbar zu gestalten, werden dem Anwender intelligente Agenten zur Seite gestellt, welche ihm eine Hilfestellung geben und bei der Bedienung unterstützen sollen. [Caglayan1998]

Ein weiteres Problem, welches an dieser Stelle zur Motivation angeführt werden soll, ist die Vernetzung von Haushaltsgeräten. Die Haushaltsgeräte werden innerhalb einer Wohneinheit z.B. über das Leitungsnetz miteinander vernetzt. In jedem Gerät ist ein Agent integriert, welcher mit den anderen Geräten und einem zentralen Rechner kommuniziert. Ziel der Kommunikation ist es, z.B. die Verbrauchslast gleichmäßig über den Tag zu verteilen, Energie zu sparen und die Sicherheit zu erhöhen.


10.2 Definition von intelligenten Agenten

Die in den obigen Beispielen angedeuteten Eigenschaften von Agenten sollen in diesem Abschnitt in einer allgemeinen Definition von Agenten festgehalten werden. Die Forschung auf dem Gebiet der intelligenten Agenten stellt ein Teilgebiet der künstlichen Intelligenz dar. [Nwana1998] Ähnlich der fehlenden einheitlichen Definition von künstlichen Intelligenz, existiert auch für den Begriff intelligenter Agent in der Literatur keine einheitliche Definition. Um sich einer Definition des Begriffes Agent anzunähern, soll zu Beginn die Definition in Websters World Dictionary betrachtet werden:

,,Agent: Eine Person oder Sache, die in der Lage oder ermächtigt ist, im Auftrag dritter zu handeln.'' [Caglayan1998]
Diese allgemeine Definition hebt bereits zwei Schlüsseattribute von intelligenten Agenten hervor: [Caglayan1998]

  • Ein Agent führt Dinge aus.
  • Ein Agent handelt im Auftrag einer Person oder Sache.

Diese beiden zentralen Attribute sind bei allen intelligenten Agenten zu finden. Bertachtet man im nächsten Schritt eine Definition aus der wissenschaftlichen Fachliteratur, so erhält man bereits eine sehr gute Vorstellung dessen, was man sich unter einem Agenten vorzustellen hat.

``Ein Agent ist ein Computersystem, welches in einer Umgebung arbeitet, in der das System autonom Aktionen ausführen kann, um die ihm gestellte Aufgabe zu erfüllen.''10.1 [Jennings1998]
Diese Definition schließt sowohl Hardware als auch Software Agenten mit ein. Unter Hardware Agenten z.B. sind autonom arbeitende Roboter zu verstehen. In der weiteren Arbeit liegt der Schwerpunk bei der Betrachtung von Software Agenten. Auf Hardware Agenten wird nicht weiter eingegangen. In der oben getroffenen Definition sind folgende, für Agenten charakteristische Eigenschaften enthalten: [Jennings1998]

  • Autonomie: Ein Agent soll in der Lage sein, ohne direkte Interaktion des Benutzers, oder eines anderen Agenten, zu handeln. Weiters muß ein Agent die Kontrolle über seine Aktionen und seinen internen Status besitzen. Dieses Verständnis von Autonomie soll anhand eines Vergleichs mit dem objektorientierten Programmierparadigma veranschaulicht werden. In einem Objekt sind die Variablen gekapselt, das heißt daß nur das Objekt selbst die Kontrolle über sie besitzt, da man diese nur ansprechen und modifizieren kann, indem man Methoden verwendet, welche das Objekt bereit stellt. Ähnlich den Objekten ist auch in einem Agenten der interne Zustand gekapselt. Doch im Unterschied zu Objekten kann ein Agent selbst über sein Verhalten entscheiden. Ein Agent kann somit selbst entscheiden, ob er seinen internen Zustand verändert oder nicht. Ein Objekt besitzt diese Wahlmöglichkeit nicht. Wenn eine Methode des Objekts aufgerufen wird, so muß diese auch ausgeführt werden. Ein Agent dagegen besitzt, im Gegensatz zu Objekten, die Freiheit selbst zu entschieden, ob und wie er auf eine Anfrage reagiert. [Jennings1998]

    Der Agent nimmt somit nicht nur blind Kommandos entgegen, sondern rechnet auch damit, daß der menschliche Benutzer Fehler macht, wichtige Informationen ausläßt oder daß Mehrdeutigkeiten aufgedeckt werden müssen. Diese Unklarheiten müssen dann durch geeignete Mittel (z.B. Nachfrage beim Benutzer, Heranziehen einer Wissensbasis, usw.) beseitigt werden. Der Agent darf sogar gewisse Anfragen ablehnen, z.B. falls durch sie zu einer ungünstigen Zeit das Netz zu stark belastet oder anderen Benutzern geschadet würde.

  • Reaktiv: Ein Agent muß in der Lage sein, seine Umwelt wahrzunehmen und auf Änderungen in dieser zu reagieren. Abhängig von der Aufgabe des Agenten kann die Umwelt z.B. der realen Welt, dem Internet, dem Benutzer, oder auch anderen Agenten entsprechen.

  • Proaktiv: Agenten sollten nicht nur einfach auf ihre Umwelt reagieren, sie sollten auch in der Lagen sein, selbst, wenn nötig, zielgerichtet die Initiative zu ergreifen.

  • Sozial: Agenten sollen in der Lage sein, mit ihre Umwelt zu interagieren. Die Interaktion kann mit anderen Agenten oder mit einem Benutzer erfolgen. Ziel der Interaktion ist es, das gestellte Problem zu lösen oder andere Agenten bei der Lösung ihres Problems zu unterstützen.

Unter einem agentenbasierten System wird ein System verstanden, welches auf abstrakter Ebene auf den oben angeführten Attributen beruht. Im Prinzip kann ein System als agentenbasierten System konzeptioniert sein, jedoch ohne Software-Strukturen implementiert werden, die dem Agenten-Paradigma entsprechen. Ähnlich existiert auch die Möglichkeit, objektorientierte Programme, ohne die Verwendung einer objektorientierten Entwicklungsumgebung, zu erstellen. Jedoch wäre diese Vorgehensweise unüblich und konterproduktiv. Aus diesem Grund werden agentenbasierten Systeme sowohl als solche designed und mit Hilfe der Agenten-Paradigmen implementiert. Ein agentenbasiertes System besteht somit im Regelfall aus mindestens einem autonomen Agenten. Dabei stellt ein Multi-Agentensystem, welches aus mehreren interagierenden Agenten besteht, ein signifikant komplexeres System als ein Einzel-Agentensystem dar. [Jennings1998]

Die Forschung auf dem Gebiet der intelligenten Agenten ist noch recht jung. Das erste Konzept eines Software Agenten stammt aus einer Arbeit auf dem Gebiet der verteilten künstlichen Intelligenz. Carl Hewitt veröffentlichte 1977 in seinem Artikel ,,Concurrent Actor Model'' ein Modell, in dem eigenständige, interaktive und parallel exekutierbare Objekte, mit gekapselten internen Zustand, miteinander kommunizieren können. In den 80'er Jahren begann die eigentliche Grundlagenforschung auf dem Gebiet der Software Agenten. Dabei wurden die Interaktion und die Kommunikation zwischen Agenten, die Auf- und Verteilung von Aufgaben, die Kooperation und die Konfliktlösung via Verhandlung erforscht. Ziel dieser Forschung war die Spezifikation, die Analyse, das Design und die Integration von Systemen aus mehreren kooperierenden Agenten. [Nwana1998] Mit dem Beginn der 90'er Jahre wurde damit begonnen, die bisher gewonnenen Erkenntnisse in konkrete Anwendungen umzusetzen. Welche Bedeutung die Forscher der Agenten-Technologie in der Zukunft zumessen, wird aus folgenden Aussagen deutlich:

,,Agenten stellen das nächste bedeutende Programmierpradigma dar und werden bis zum Jahr 2000 jeden Markt durchdringen.'' 10.2 Janca, 1995 [Jennings1998]

,,Das Marktforschungsunternehmen Ovum10.3 sagt für das Jahr 2000 einen Markt mit einem Volumen von 4 Milliarden Dollar voraus. Die Agenten werden vorallem im Bereich der Telekommunikation, der Konsumgüterindustrie, beim Militär [...] eingesetzt.'' [Caglayan1998]

10.3 Modell eines Agenten

Um eine bessere Vorstellung über den Aufbau und die Arbeitsweise eines Agenten zu erhalten, soll in diesem Abschnitt ein Schema für ein Agentenmodell vorgestellt werden. Es handelt sich dabei um ein einfaches Modell aus der Sicht des Anwenders, mit dessen Hilfe die funktionale Architektur, das Zusammenspiel zwischen den einzelnen Systemkomponenten und die Interaktion mit dem Benutzer veranschaulicht werden sollen. Aus dem, in Abbildung 10.1 dargestellten Modell gehen die Qualifikation auf der Aufgabenebene, das Wissen und die Kommunikationsqualifikation als zentrale Elemente eines intelligenten Agenten hervor. Auf diese zentralen Elemente soll nun näher eingegangen werden. [Caglayan1998]

10.3.1 Qualifikation auf der Aufgabenebene

Die Qualifikation auf der Aufgabenebene setzt sich aus Funktionen zusammen, die ein intelligenter Agent benötigt, um die ihm gestellte Aufgabe zu erfüllen. So muß z.B. der Hilfsagent eines Betriebssystems in der Lage sein, das Benutzerverhalten zu beobachten, um, wenn nötig, Hilfestellungen am Bildschirm einblenden zu können. Ein Internet-Suchagent hingegen muß die Fähigkeit besitzen, auf die Informationsressourcen des Internets zuzugreifen. Der Agent muß somit in der Lage sein, sein Umfeld mit der Hilfe von Sensoren erfassen zu können und bei der Ausführung seiner Aufgabe in diesem Umfeld zu agieren.

10.3.2 Das Wissen

Im Wissensbereich eines Agenten ist das Wissen über die Umwelt des Agenten, über die Zusammenhänge, die in dieser Umwelt gültig sind, und die Ziele des Agenten gespeichert. Weiters gehören zu Wissensbereich auch Techniken und Strategien, die ein Agent benötigt, um die ihm gestellte Aufgabe zu erfüllen. Bei den in den Agenten verwendeten Wissensrepräsentationen und Techniken handelt es sich um die, in den vorhergegangenen Abschnitten vorgestellten Wissensrepräsentationen und Techniken der künstlichen Intelligenz. Beim Wissen können zwei Arten unterschieden werden, a-priori Wissen und vom Agenten erlerntes Wissen (siehe auch Abbildung 10.1). Beide Arten von Wissen können auch zugleich in einem Agenten vorkommen. [Caglayan1998]

  • A-priori Wissen: Beim a-priori Wissen handelt es sich um Wissen, welches entweder vom Entwickler, vom Benutzer oder vom umgebenden System vorgegeben wird.

    • Vom Entwickler vorgegeben: Der Entwickler kann Wissen in vielen verschiedenen Formen implementieren. Dies kann z.B. in der Form einer Wissensbasis mit der dazugehörigen Inferenzmaschine geschehen, in Form eines Neuronalen Netzes, welches vor dem Einsatz vom Entwickler trainiert wurde oder auch in Form einer Suchstrategie. Es stehen dafür sämtliche Techniken der künstlichen Intelligenz und der Wissensrepräsentation zur Verfügung, die in den vorhergegangenen Kapiteln vorgestellt wurden.

    • Vom Benutzer vorgeben: Dabei handelt es sich meist, um vom Benutzer selbst definierte einfache Regeln. Ein Beispiel dafür ist die automatisierte Verschiebung von Emails in bestimmte Folder, in Abhängigkeit vom Inhalt der Felder ,,Form'', ,,To'', ,,Subject'' oder ,,Body''. Die dazu notwendigen einfachen Regeln werden vom Benutzer mit der Hilfe eines Dialogfelds des Email-Clients erzeugt.

    • Vom umgebenden System vorgegeben: Darunter wird z.B. das Wissen um die Ansprechpartner in einer Netzwerkumgebung verstanden. Dazu zählt auch das Wissen, welche Dienste der Agent von anderen beziehen kann oder welche Datenbanken zur Verfügung stehen.

  • Erlerntes Wissen: Lernende Agenten beobachten ihre Umwelt nicht nur um auf Veränderungen in ihr reagieren zu können, sondern auch um aus ihrer Umwelt zu lernen. Dabei wird, zusätzlich zum vorhandenen a-priori Wissen, Wissen aus der Umwelt exzerpiert, um das Verhalten des Agenten an das geänderte Umfeld anzupassen oder um regelmäßige Abläufe zu erkennen und diese zu automatisieren.

    Ein Beispiel für ein System, welches das Benutzerverhalten beobachtet, um Regelmäßigkeiten darin zu erkennen, ist Open Sesame!. Open Sesame! beobachtet im Apple MacOS10.4 alle High-Level-Benutzeraktionen auf sich wiederholende Muster und bietet dem Anwender an, diese zu automatisieren. Beobachtet Open Sesame! z.B., daß ein Anwender immer nach dem Einschalten des Computers den Email-Client startet, so bietet ihm das System an, diese Aufgabe für ihn zu übenehmen. [Caglayan1998]

    Internet-Suchdienste stellen z.B. Systeme dar, die aus der Veränderung ihrer Umwelt lernen. Sie lernen ihren Suchindex aus der Beobachtung des Internets durch ihren Indizier-Prozeß. Dies kann so aufgefaßt werden, daß sich die Suchdienste die Antworten auf mögliche Anfragen bereits im Voraus zurechtlegen, um bei einer konkreten Anfrage schneller reagieren zu können. [Caglayan1998]

    Als Daten für den Lernprozeß von lernenden Agenten können z.B. Ereignisprotokolle dienen. Diese Protokolle werden auf Trends und Korrelationen untersucht. Dazu können statistische Methoden herangezogen werden. Neuronale Netze können zur Identifizierung annähernd gleicher Abfolgen im Verhalten des Benutzers eingesetzt werden. Diese Technik wird z.B. im oben beschriebenen Open Sesame! System verwendet. Ein Nachteil bei der Verwendung von Neuronalen Netzen ist die lange Trainingsphase. Der Agent muß den Benutzer über eine lange Zeit beobachten, um die auftretenden Regelmäßigkeiten zu erlernen. [Caglayan1998]

10.3.3 Kommunikationsfähigkeit

Die Kommunikationsfähigkeit eines Agenten bezieht sich einerseits auf die Kommunikation mit dem Benutzer über die Benutzerschnittstelle und andererseits auf die Kommunikation zwischen einzelnen Agenten, sofern es sich um ein Multi-Agentsystem handelt. Die Kommunikation mit dem Benutzer findet gewöhnlich über die graphischen Benutzeroberfläche, z.B. über Dialogfelder, statt. Eine multimediale Aufbereitung der Kommunikation mit der Hilfe von Graphiken, Video oder Audio kann die Kommunikationserfahrung mit dem Anwender erweitern und einem Agenten eine ,,Persönlichkeit'' vermitteln. [Caglayan1998]

Für die Kommunikation zwischen den Agenten in einem Multi-Agentsystem wird eine spezielle Kommunikationssprache verwendet. Beispiele für solche Sprachen sind: TeleScript10.5, SmallTalkAgents10.6, Agent Tcl10.7 (Tool Command Language), Knowledge Query and Manipulation Language10.8 (KQML) oder Knowledge Interface Format10.9(KIF). [Caglayan1998]

Im Vorhandensein von vielen verschieden Kommunikationssprachen liegt die Gefahr, daß man bei der Entwicklung eines Projekts auf eine Sprache setzt, deren Weiterentwicklung in der näheren Zukunft eingestellt wird. Diesem Zustand versucht die Advanced Research Projects Agency10.10 (ARPA) mit dem Knowledge Sharing Effort10.11 (KSE) Projekt entgegen zu wirken. KSE beschäftigt sich mit der Entwicklung von Vereinbarungen, welche es erlauben verteilte Wissensbasen oder Wissensbasierte Systeme zu gestalten. Dabei wird auch die Wiederverwertbarkeit der Wissensbasen berücksichtigt. Das Ziel ist die Definition, die Entwicklung und das Testen von Systemen, die es den Entwicklern erlauben größere und umfangreichere Systeme zu verwirklichen, als es mit Einzelsystemen möglich wäre. [Finin1994]


10.4 Intelligenz durch Kommunikation

In den vorhergegangenen Abschnitten wurde des öfteren der Begriff ,,intelligenter Agent'' verwendet. Damit ist jedoch nicht impliziert, daß jeder intelligente Agent auf einer Technik der künstlichen Intelligenz aufbauen muß. Mit dem Begriff intelligent wird vielmehr das Gesamtsystem aus Agenten und Kommunikation bezeichnet. Die einzelnen Agenten müssen somit kein Neuronales Netz oder ein Expertensystem enthalten. Die ,,Intelligenz'' in einem Agenten-System kann vielmehr auch durch die Interaktion und die Kommunikation zwischen den Agenten entstehen. Dies soll anhand eines einfachen Beispiels veranschaulicht werden.

Ein Anwender plant sich einen Personal Computer mit 400 MHz Prozessortakt und 128 MByte RAM zu kaufen. Aus diesem Grund beauftragt er einen Software Agenten Preis und Produktinformationen im Internet einzuholen. Als Ergebnis erwartet der Anwender eine übersichtliche Auflistung der Angebote, unter Berücksichtigung des Zolls, der Versankosten und der Lieferdauer.

In einem ersten Schritt wir der Agent einen Suchagenten kontaktieren, um Adressen von Online-Computer-Shops zu erfragen. Im nächsten Schritt wird der Agent Kontakt mit den Agenten der Online-Shops aufnehmen und ihnen in einer Anfrage die Leistungsmerkmale des gewünschten Computers mitteilen. Als Antwort erhält der Agent Produktinformationen, den Preis und zusätzliche Lieferinformationen, wie Versankosten, Zahlungsmöglichkeiten, Lieferzeit und Auslieferungsland. Das Auslieferungsland ist wichtig, da der Agent auch einen eventuellen Einfuhrzoll mitberücksichtigen soll. In einem weiteren Schritt wird der Agent den Agenten des Finanzministeriums kontaktieren um die nötigen Zollinformationen einzuholen. Weiters kontaktiert der Agent den Agenten einer Online-Bank, um den aktuell gültigen Wechselkurs zu ermitteln. Die Adresse der Online-Bank hat der Agent zuvor von einem Suchagenten erhalten. Im letzten Schritt erfolgt die Preisberechnung und die übersichtliche Aufstellung der gesammelten Daten. Zusammengefaßt sehen die Schritte, die der Agent ausführt, folgendermaßen aus:

  • Kontaktiere Suchagenten und hole Adressen von Online-Shops ein.
  • Kontaktiere Agenten der Online-Shops, sende die Produktanfrage und hole Preis, Produkt und Lieferinformationen ein.
  • Kontaktiere Agenten des Finanzministeriums und hole Zollinformationen ein.
  • Kontaktiere Suchagenten und hole Adressen von Online-Banken ein.
  • Kontaktiere Agenten der Online-Banken und hole den aktuellen Wechselkurs ein.
  • Führe die Preisberechnung durch.
  • Stelle die gesammelten Informationen übersichtlich zusammen.

Keiner dieser Einzelschritte benötigt ein Verfahren der künstlichen Intelligenz. Die erbrachte Leistung des Agenten kann man jedoch durchaus als intelligent bezeichnen. ,,Entstanden'' ist diese Intelligenz aus der Interaktion mit den Service-Agenten im Netz. Auch jeder dieser Service-Agenten kann ohne die Verwendung von künstlicher Intelligenz implementiert werden. Dieses Beispiels zeigt auch die Stärken des Agenten Paradigmas auf. Durch die Zusammenarbeit vieler einfacher Einzelsysteme entstand ein Gesamtsystem, welches in der Lage ist, auch komplexe Probleme zu lösen. Aus diese Einschätzung heraus, erklären sich auch die optimistischen Prognosen für die Zukunft der Agenten-Technologie, wie sie am Ende der Abschnitts 10.2 angeführt wurden.

Erweitert man im obigen Beispiel den Auftrag an den Agenten um den konkreten Kaufauftrag beim Billigstbieter, so wird klar, welches Vertrauen der Auftraggeber in die Fähigkeiten seines Agenten und in die Glaubwürdigkeit der beteiligten Service-Agenten besitzen muß. Bereits bei dem Beispiel ohne den konkreten Kaufauftrag muß der anfragende Agent auf die erhaltenen Informationen vertrauen können. Service-Anbieter könnten in Versuchung kommen, durch die Angabe von falschen Daten interessierte Kunden auf ihre Internetseiten zu locken. Probleme die die Sicherheit und das Vertrauen von Agenten betreffen, werden in Abschnitt 10.6 näher besprochen. Zunächst wird jedoch das Konzept von mobilen Agenten vorgestellt.

10.5 Mobile Agenten

Bei den bisher vorgestellten Agenten handelt es sich um Programme, die lokal auf dem Client-Rechner ausgeführt werden und eventuell mit Agenten auf dem lokalen Rechner oder anderen Rechnern kommunizieren. Mobile Agenten werden hingegen von einem Client-Rechner an einen oder mehrere Remote-Server gesendet, um dort ausgeführt zu werden. Nach der Abarbeitung kehren die Programme mit dem Ergebnis zum Client-Rechner zurück. Mit der Ausführung eines Programmes auf einem fremden Rechner sind natürlich große Sicherheitsrisiken verbunden. Es existieren jedoch Anwendungen, für die die Fähigkeit von mobilen Agenten, Programme auf einem entfernten Server auszuführen, ein signifikanter Vorteil sind. [Caglayan1998]

  • Unterstützung für mobile Computer: Mobile Computer die nur temporär an ein Netz angeschlossen sind, können mobile Agenten absetzen, die in der offline Periode Aufträge des Benutzers erledigen. Ist der Benutzer später wieder an das Netz angeschlossen, kehren die Agenten mitsamt den Ergebnissen zurück.

  • Suche in großen, unstrukturierten oder nicht indexierten Wissensspeichern: Wenn ein Benutzer in einem großen, unstrukturierten oder nicht indexierten Wissenspeicher eine Suche durchführen möchte, kann es effizienter sein, einen Suchagenten loszuschicken, der die Suche lokal auf dem Remote-Server durchführt. Der Wissensspeicher kann z.B. eine Datenbank oder eine digitale Bibliothek sein. Auf diese Weise ist es auch möglich, Suchen in einem Wissenspeicher durchzuführen, für die vor Ort keine Vorkehrungen getroffen wurden. Der Suchagent kehrt nach der Suche mit den gefilterten Informationen zum Client zurück. Durch die Verwendung von mobilen Agenten kann somit die Netzwerkbelastung gesenkt werden.

  • Echtzeitinteraktion: Wenn es für eine Server-Anwendung wichtig ist, daß in Echtzeit auf Veränderungen der Umwelt reagiert wird, so kann die Zeitverzögerung, die durch die Übertragung der Daten vom Client zum Server und zurück entsteht, störend wirken. Die zeitkritische Server-Anwendung kann z.B. eine Roboter Steuerung sein. Sendet der Client jedoch das Steuerprogramm an den Server, so kann der Server direkt, den Wünschen des Clients entsprechend, auf die Umwelt reagieren. Die Übertragungsverzögerungen werden somit eliminiert.

  • Ressourcenauslastung: Durch die Verteilung von Aufgaben im Netz können die vorhandene Rechenressourcen gleichmäßiger ausgelastet werden.

Programme für mobile Agenten können in einer Compiler-Sprache oder in einer Interpreter-Sprache geschrieben sein. Damit mobile Agenten auch in heterogenen Netzen, in denen unterschiedlichste Rechnerplattformen integriert sind, arbeiten können, sollten sie vorzugsweise in einer Interpreter-Sprache implementiert sein oder innerhalb einer virtuellen Maschine laufen (z.B. Java). Dadurch wird zwar auf Rechenleistung verzichtet, jedoch die meisten rechenaufwendigen Schritte finden nicht im Agentenprogramm selbst statt, sondern greifen auf Funktionen, die in der virtuellen Maschine oder im Interpreter implementiert sind, zurück. Zudem wird bei Java durch die ,,Just-in-Time''-Compilierung eine Leistungsteigerung erreicht. Interpretierte Sprachen bieten auch den Vorteil der späteren Bindung: Dies ermöglicht dem mobilen Agenten, Funktionen und Klassen zu referenzieren, die zwar nicht auf dem aktuellen System, aber auf dem Zielsystem zur Verfügung stehen. Beispiele für Sprachen für mobile Agenten sind: Java10.12, TeleScript10.13 und Tcl10.14. [Caglayan1998]

Ein sehr wesentlicher Punkt bei der Arbeit mit mobilen Agenten ist der Sicherheitsaspekt, da der Server, auf dem der mobile Agent arbeiten soll, die Intention des Agenten nicht mit absoluter Genauigkeit feststellen kann. Näher wird auf die Sicherheitsaspekte im nachfolgenden Abschnitt eingegangen.


10.6 Agentensicherheit

In den vorhergegangenen Abschnitten wurden immer wieder Sicherheitsfragen und das nötige Vertrauen in Agenten erwähnt. Wie wichtig die Betrachtung dieser Fragen ist, zeigt schon der Vergleich mit einem menschlichen Agenten. Erteilt ein Auftraggeber einem menschlichen Agenten einen Auftrag, so vertraut er auf die Fähigkeit des Agenten, den Auftrag zu erledigen. Dazu muß der Agent mit den nötigen Mitteln und Rechten ausgestattet werden. Nach der Erledigung des Auftrags durch den Agenten muß der Auftraggeber auf die Richtigkeit der erbrachten Leistung vertrauen. Um die Mißbrauchsmöglichkeiten des Agenten einzuschänken und seine Aktionen nachvollziehen zu können, wird der Auftraggeber gewisse Sicherheitsmechanismen vorsehen.

In Agentensystemen, die in öffentlich zugänglichen Netzen arbeiten, sind Fragen des Datenschutzes von ganz besonderer Wichtigkeit. Ein Agent, der als persönlicher Assistent eines Benutzers agiert, benötigt zur Erfüllung seiner Aufgaben umfangreiches Wissen über die Interessen seines Benutzers. Mobile intelligente Agenten müssen dieses Wissen ständig mit sich führen, während sie sich in einem Netzwerk von Ort zu Ort bewegen. Man könnte solche Agenten als im Internet wandelnde Interessenprofile einzelner Personen ansehen. Da Benutzer die gespeicherten Daten vor willkürlichem fremden Zugriff schützen möchten, müssen dafür geeignete Schutzmaßnahmen, wie z.B. die Verschlüsselung, vorgesehen werden. [Caglayan1998]

Die in einem Agenten gespeicherten Daten müssen auch vor Manipulation durch Dritte geschützt werden können. Sonst kann ein Benutzer nicht davon ausgehen, daß die von seinem Agenten gelieferten Informationen unverfälscht und authentisch sind.

Diese Sicherheitsfragen stellen sich in Systemen von Agenten, die untereinander, ohne explizite Benachrichtigung der Benutzer, Daten austauschen, als noch schwieriger dar. Solchen Systemen liegt der sogenannte ,,knowledge sharing approach'' zugrunde. Ein Agent muß wissen, welche Daten er bedenkenlos weitergeben kann und welche unter allen Umständen zu schützen sind. [Caglayan1998]

Es sind auch Szenarien denkbar, in denen intelligente Agenten ,,digitales Geld'' mit sich führen. Damit könnten sie die Informationsdienste anderer Agenten bezahlen, aber auch selbst, durch das Bereitstellen von Information für andere Agenten, Geld bekommen. Solche Agenten erfordern einen besonderen Schutz gegen Manipulation.

Desweiteren müssen Agenten auf die Identität ihres Kommunikationspartners vertrauen können. Es wäre z.B. denkbar, daß ein Agent eine falsche Identität vorgibt, um so zu Informationen zu gelangen oder einen finanziellen Vorteil daraus zu ziehen.

Um den oben angeführten Mißbrauchsmöglichkeiten entgegenzuwirken, ist es notwendig, daß die Agentenkommunikation verschlüsselt stattfindet, bzw. mobile Agenten verschlüsselt über das Netz übertragen werden. Zudem müssen digitale Signaturen und Zertifikate verwendet werden, um die Identität des eigenen Agenten belegen zu können und die des Kommunikationspartners zu überprüfen. Diese Aspekte müssen auch bei der Entwicklung von Agenten-Kommunikationssprachen mitberücksichtigt werden. [Caglayan1998]

Mobile Agenten bringen noch ein weiteres Sicherheitsrisiko mit sich. Auf der Server-Plattform wird der Programmcode des mobilen Agenten ausgeführt. Durch geeignete Maßnahmen muß nun sichergestellt werden, daß der Agent keinen Schaden an der Server-Plattform anrichten kann. Dies kann z.B. geschehen, indem man den Code nur innerhalb einer abgekapselten virtuellen Maschine ausführen läßt, wie dies z.B. bei Java geschieht. [Caglayan1998]

Trotz all der oben angeführten Sicherheitsbedenken stellt der Einsatz von intelligenten Agenten ein großes Potential für verteilte Problemlösungen dar. Im nachfolgenden Abschnitt soll anhand von einigen konkreten Forschungsprojekten die Vielseitigkeit der Agententechnologie und ihre Anwendungsmöglichkeiten vorgestellt werden.

10.7 Beispiele für Agenten

10.7.1 BargainFinder

Der BargainFinder10.15 ist ein experimenteller virtueller Einkaufsagent für CDs im Internet und weist ähnliche Funktionen auf wie der Beispielagent aus Abschnitt 10.4 Intelligenz durch Kommunikation. Entwickelt wurde der BargainFinder von Anderson Consulting. Der BargainFinder benutzt, ähnlich wie die Meta-Suchmaschinen, eine parallel Abfragearchitektur, um damit die Preise und die Verfügbarkeit der vom Benutzer gesuchten Audio CDs abzufragen.

Der Kunde übergibt den BargainFinder den Titel und den Interpreten der gewünschten CD. Der Agent nimmt die Produktanfrage des Kunden und legt sie parallel einer Gruppe von Online-Geschäften vor. Dabei füllt der Agent bei jedem Geschäft die entsprechenden Formulare aus. Der BargainFinder filtert in den Anfrageergebnissen den Header und die Werbung heraus und extrahiert die angegebenen Preise. Anschließend faßt er die extrahierten Ergebnisse zusammen und übergibt die Zusammenfassung dem Kunden. In der Antwort meldet der Agent das Geschäft und den Preis der CD, oder daß ein Geschäft die CD nicht verfügbar hat, oder ein Geschäft dem BargainFinder den Zugriff verwehrt hat. Manche Online-Musikgeschäfte blockieren den BargainFinder, da sie nicht möchten, daß die Preise und die Verfügbarkeit eines Produktes automatisiert abgefragt werden. [Caglayan1998]

Die Vorteile von Einkaufsagenten lassen sich wiefolgt zusammenfassen:

  • Einkaufsagenten bieten für verschiedene Online-Geschäfte eine einheitliche Schnittstelle an. Damit entfällt für den Kunden die Notwendigkeit, bei jedem Geschäft die verschiedene Formular einzeln auszufüllen.
  • Einkaufsagenten helfen die besten Preise zu finden und geben Auskunft über die Verfügbarkeit eines Produkts.

Virtuelle Geschäfte erlauben jedoch den Agenten den Zugriff nur sehr widerwillig, da sie meisten Anbieter kein Interesse haben, daß der Kunde auf einfache weise einen Überblick über die Preise am Markt erhält. Schätzungen gehen davon aus, daß die Agenten-Technologie den Handel im Internet von Grund auf verändern wird. [Caglayan1998]

10.7.2 CIG Searchbots

Bei CIG (cooperative information gathering) handelt es sich um eine Forschungsarbeit der University of Massachusetts. CIG ist ein System, in dem mehrere Agenten zusammenarbeiten, um Informationen zu filtern. Der CIG Searchbot gehört somit zu den Multi-Agentensystemen.

Auf die Anfrage eines Benutzers hin führen mehrere Agenten eine Suche an mehreren entfernten Orten im WWW durch. Ein Teil dieser Suche wird von existierenden Suchdiensten, wie z.B. Lycos oder Infoseek, abgedeckt, die von den CIG Searchbots angesprochen werden. Einzelne CIG Searchbots sind Experten auf speziellen Gebieten - sogenannte ,,domain experts''. Sie bestimmen, an welchen Orten nach Informationen gesucht wird, um möglichst gute Antworten mit möglichst geringen Suchkosten zu erhalten. [CIG1998]

Für den Benutzer liegt der Vorteil gegenüber herkömmlichen Tools, wie Lycos oder Infoseek darin, daß er seine Anfragen auf einem hohen Abstraktionsniveau stellen kann, und sich nicht mit den Einzelheiten der Suchstrategie befassen muß. In der Endfassung des Systems soll es für den Benutzer möglich sein Anfragen wie z.B. ,,Finde Informationen über Tabellenkalkulationen für Windows und OS/2'' zu stellen. Daraufhin werden die Agenten einen Plan aufstellen, eine koordinierte Suche durchführen, während der Suche Teilresultate benutzen, um weitere Informationsquellen zu lokalisieren, die Resultate zusammenfügen und dem Benutzer nach einer vorgegebenen Zeitspanne präsentieren. Der Benutzer kann Beschränkungen bezüglich der Suchzeit, der Anzahl der aufgesuchten Server und der Menge der empfangenen Daten angeben. [CIG1998]

Besonders die Benutzung der Teilresultate einer Suche zur Verfeinerung und Verbesserung der Suchstrategie, hebt den Ansatz der CIG Searchbots von der Suche mit Systemen wie Lycos oder Infoseek ab.

Die Hauptcharakteristika der CIG Searchbots lassen sich kurz so darstellen: [CIG1998]

  • Zielorientierte Suche auf hohem Niveau
  • Benutzung von bereits entdeckten Informationen während einer Suche, um weitere ausfindig zu machen.
  • Parallele Suche mit mehreren zusammenarbeitenden Agenten
  • Selbstanpassende und dynamische Suchstrategien
  • Aktive Suche, keine statische offline Index-Suche wie bei Lycos

Bei der Bewertung eines Systems wie den CIG Searchbots muß beachtet werden, daß eine online Suche nach jeder Anfrage eines Benutzers, sehr ressourcenintensiv ist. Insbesondere wenn mehrere Agenten parallel arbeiten. Für Systeme dieser Art müssen noch geeignete Restriktionen gefunden werden, um die Netzlast nicht zu hoch werden zu lassen. [CIG1998]

10.7.3 BASAR

BASAR10.16 (Building Agents Supporting Adaptive Retrieval) ist ein Projekt des GMD Institute for Applied Information Technology10.17(FIT). BASAR stellt ein Multi-Agentensystem dar, mit dessen Hilfe ein Benutzer im World Wide Web einen persönlichen Informations-Raum einrichten und gestalten kann.

Die Grundtechniken um Informationen im World Wide Web abzurufen und wiederzufinden sind suchen, browsen und das Setzen von Bookmarks. Die Suche erfolgt mit der Hilfe von Suchdiensten, wie sie in Abschnitt 2.4.3 Suchdienste vorgestellt wurden. Die Bookmarks erlauben es, das WWW zu personifizieren, d.h. mit der Hilfe der Bookmarks kann ein Benutzer sein persönliches ,,Information-Image'' des Webs erstellen. Da das Internet ein dynamisches ständig im Wachstum begriffenes System darstellt, muß der Benutzer fortwährend darauf bedacht sein, sein persönliches ,,Information-Image'' aktuell zu halten. Dazu ist es notwendig, daß neue Bookmarks hinzugefügt werden, alte und selten benutzte gelöscht werden und bestehende upgedated werden. Dies stellt eine sehr anspruchsvolle und zeitaufwendige Aufgabe dar. [Thomas1997]

BASAR ist nun der Prototyp eines Systems, der versucht diese Aufgabe zu automatisieren. BASAR soll den Benutzer dabei unterstützten, seinen persönlichen Informations-Raum zu managen und übernimmt dabei folgende Aufgaben: [Thomas1997]

  • Aktuell halten des persönlichen Informations-Raum durch fortlaufendes updaten der Links.
  • Reduktion der Anzahl der Links durch Löschen der Einträge von selten oder nie besuchten Web-Adressen.
  • Unterstützung bei der Anpassung des persönlichen Informations-Raums an das Wachstum des Webs durch Unterstützung zur effektiven Suche mit der Hilfe von Suchdiensten.
  • Unterstützung bei der Wiederauffindung von Informationen mit der Hilfe der History.

Grundkonzept von BASAR

Um dem Benutzer die oben genannte Funktionalitäten zur Verfügung zu stellen, baut BASAR auf folgende drei Grundkonzepte: Active Views, Software Agents und Usage Profiles. [Thomas1997]

Active View:
Die Active Views entsprechen den persönlichen Informations-Räumen unter BASAR. Sie bestehen aus einer Menge von Bookmarks zu einem Interessensgebiet und einer Menge von Agenten. Die Agenten haben dabei die Aufgabe, die Informations-Räumen entsprechend den Wünschen des Benutzers zu verwalten.
Software Agents:
BASAR stellt eine Umgebung zur Verfügung, die es dem Benutzer erlaubt, bestimmte Aufgaben an Agenten zu delegieren. Dabei assistieren bestimmte Agenten immer nur einem Benutzer, über den sie Informationen sammeln, wie z.B. Interessen, Gewohnheiten und Aufgaben. Mit der Zeit wird das Bild, das sich die BASAR-Agenten über den Benutzer und seine Nutzungsweise des Webs machen können, immer detaillierter. Dieses Bild wird im Usage Profile (Benutzungsprofil) gespeichert.
Usage Profile:
Im Usage Profile sind die Interessen, Gewohnheiten und Aufgaben des Benutzers gespeichert. BASAR erstellt dieses User-Modell aufgrund von Beobachtungen und expliziten Fragen an den User. Dies ermöglicht es dem System sich an den Benutzer anzupassen.

Agententypen

Bei BASAR handelt es sich um ein Multi-Agentensystem, in dem drei Grundtypen von intelligenten Agenten zusammenarbeiten: Interface-Agents, Task-Agents und Network-Agents. Diese drei Agententypen sollen im folgenden kurz vorgestellt werden: [Thomas1997]

Die verschiedenen Arten von Agenten braucht der Benutzer nicht zu kennen, da er einfach durch E-Mail, Icons und Dialogboxen mit dem System kommuniziert. Der Interfaceagent präsentiert ihm ein einheitliches Aussehen des Systems.

Das Multi-Agentensystem BASAR verbessert die Handhabung des World Wide Web auf mehrfache Weise. Das System verwandelt durch das Konzept der Active Views passive Information (z.B. Bookmarks) in aktive. Passive Information kann veraltern oder ungültig werden. Aktive Information wird durch intelligente Agenten auf dem neuesten Stand gehalten. Der Benutzer wird benachrichtigt, wenn neue Information zugänglich wird. [Thomas1997]

Benutzer können Aufgaben an ihre Agenten delegieren. So kann ein Agent z.B. aus dem Ergebnis einer Suche diejenigen Links auswählen, welche noch nicht betrachtet worden sind. Agenten können wiederholt die gleichen Aktionen ausführen. Zum Beispiel ist es möglich, automatisch jede Woche von einem bestimmten Server bestimmte Daten anzufordern. Benutzer können Agenten den Zeitpunkt überlassen, an dem bestimmte große Mengen an Daten übertragen werden sollen. Dann kann sich ein Agent die nach seiner Erfahrung günstigste Zeit aussuchen. Dadurch kann eine gleichmäßigere Auslastung des WWW erreicht werden.

Ein Beispielsystem für die Anwendung von BASAR findet sich auf der Internet-Seite: http://fit.gmd.de/hci/projects/basar/


next up previous contents
Nächste Seite: II. Der Gestaltungsbereich Aufwärts: I. Der Untersuchungsbereich Vorherige Seite: 9. Neuronale Fuzzy Systeme   Inhalt
Gerald Reif
2000-02-01