Links zu theoretischen Erläuterungen

High Debate: Internet: Intelligente Agenten: Links zu theoretischen Erläuterungen
Theoretische Texte, die dem besseren Verständnis von Intelligenten Agenten dienen, sind hier richtig.
  

Hans Guenter

Mittwoch, den 19. 04. 2000 - 13:20 Click here to edit this post
Was sind Software-Agenten?

Die Frage "Was ist ein Agent?" wird oft gestellt und sehr unterschiedlich beantwortet. In Websters Dictionary heißt es (übersetzt):

"Eine Einheit, die autorisiert anstelle einer anderen handelt, entweder als Repräsentant ... oder als ein Instrument, durch das eine führende Intelligenz ein Ergebnis erreicht".

Ein Software-Agent im weitesten Sinne ist ein Programm, das Aufträge seines Benutzers erfüllt und dabei bestimmte Eigenschaften besitzt. Über die kennzeichnenden Eigenschaften wird noch immer im Rahmen der internationalen Forschung diskutiert. Einige Kerneigenschaften von Software-Agenten sind:

Persistenz: Agenten besitzen einen internen Zustand, der über einen längeren Zeitraum relativ konstant ist.
Autonomie: Agenten besitzen einen hohen Grad an Steuerung ihres internen Zustandes und ihres Verhaltens. Ihr Handlungsmuster unterliegt keiner direkten Steuerung von außen.
Reaktionsfähigkeit: Agenten bemerken und reagieren auf Veränderungen in der Umgebung, die sie wahrnehmen wollen.
Kommunikationsfähigkeit: Agenten können Informationen mit anderen "Einheiten" austauschen, z.B. Menschen oder anderen Software-Agenten.
Weitere Eigenschaften von Software-Agenten, die je nach Zielrichtung und geplanter Anwendung zum Tragen kommen, sind:

Initiative: zielgerichtetes, zweckmäßiges Verhalten. Agenten sollten nicht nur einfach auf äußere Ereignisse reagieren, sondern bei ihrem Handeln definierte Ziele verfolgen.
Mobilität: die Fähigkeit, den Ausführungsort zu wechseln und dabei den internen Zustand zu behalten.
Schlußfolgerungsfähigkeit: Aus den ermittelten Daten werden logische Schlüsse für das weitere Verhalten des Agenten abgeleitet.
Planungsfähigkeit: Vorausschau über mehrere Schritte hinweg um eine geeignete Vorgehensweise auszuwählen.
Lernen, Anpassung, Personalisierbarkeit: Sammeln von Erfahrungen und Wissen verbudnen mit der individuellen Änderung des Verhaltens zur Anpassung an neue Bedingungen oder Wünsche des Benutzers.

Klassen von Agenten

Eine Einteilung von Software-Agenten ist wegen der großen Vielfalt schwierig. Drei Klassen werden in [Jennings94] unterschieden:

+ "Gopher"- oder "wieselartige" Agenten, die Aufträge nach weitgehend fest vorgegebenen Regeln geradlinig ausführen.

+ "dienstleistende" Agenten, die auf einer abstrakteren Ebene definierte Aufträge auf Anforderung von Benutzern ausführen. Hierbei sollte der Benutzer den Agenten nicht direkt programmieren, sondern dessen Verhalten abstrakter spezifizieren können.

+ "vorausschauend handelnde" Agenten, die Informationen oder Dienste für Benutzer erbringen, bevor oder ohne daß sie gefragt werden.

Beispiel E-Mail-FTP-Service

Als Beispiel für den Übergang zum neuen Paradigma Software-Agent wird hier der sogenannte E-Mail-FTP-Service gewählt, der auf einigen Server-Rechnern im Internet angeboten wird. Dabei kann ein beliebiger Benutzer eine E-Mail-Nachricht an den Server senden, deren Inhalt Anweisungen in der Syntax des File Transfer Protocols sind. Dieser Dienst wurde aus dem praktischen Bedürfnis heraus geschaffen, den Zugriff auf die Datenbestände eines FTP-Servers per E-Mail zu ermöglichen. Dadurch können Benutzer ohne direkten Internet-Zugang Dateien des Servers erhalten.

Ein Beispiel einer solchen E-Mail könnte sein:

From: user@E-Mail-only.com
To: auto-ftp@ftp.xyz.edu

bin
cd pub/
get file.tar.gz
uuencode
mail
bye

Diese Nachricht wird von einem Programm, das sich hinter dem Namen auto-ftp verbirgt, auf dem Server interpretiert und ausgeführt. Die Ausführbarkeit ist gewährleistet, da die Kommandos der Syntax des verbreiteten Standard-Protokolls FTP entspricht. Als Ergebnis erhält der Benutzer eine Antwort-E-Mail, deren Inhalt die gewünschte Datei ist.

Wie ist dieser Vorgang einzuordnen? Der Benutzer versendet eine Nachricht mit Kommandos. Diese Kommandos werden auf einem anderen Rechner ausgeführt und in der Folge wird ein Ergebnis zurückliefert. In einem ersten Ansatz könnte also das die Nachricht interpretierende Programm als ein Software-Agent betrachtet werden, da es im Auftrag des Benutzers handelt, jedoch nicht direkt von ihm gesteuert wird.

Mobile Agenten

In einer anderen Sichtweise könnte die obige E-Mail-FTP-Nachricht selbst als ein Agent betrachtet werden. Das entspricht folgender gängiger Vorstellung: Der mobile Agent "wandert" im Auftrag seines Benutzers durch das Rechnernetz, erfüllt seine Aufgabe und kehrt anschließend zu seinem Ursprungsort zurück. Obiger E-Mail-Nachricht fehlen jedoch einige der genannten Eigenschaften von Software-Agenten, z.B. Autonomie und die Kommunikationsfähigkeit. Zudem ist sein Code, also die FTP-Kommandos, nicht in der Antwortnachricht enthalten.

Ein mobiler Software-Agent ist also ein von seinem Eigentümer gelöstes Programm, das in hohem Maße unabhängig arbeitet. Es kann sowohl auf dem lokalen Rechner als auch auf fremden Rechnern ausgeführt werden und dazu ggf. seine Position im Rechnernetz verändern. Im obigen Beispiel könnte der Code des Agenten beispielsweise den Transport zu einem weiteren FTP-Server veranlassen, wenn die gesuchte Datei nicht auf diesem Server vorhanden ist.

Für die Realisierung mobiler Agenten stellen sich eine Reihe von Fragen, wie: Wie wird erreicht, daß der Code des Agenten auf einem anderen Rechner ausführbar ist? Wie wird der Code transportiert? Nach welchen Kriterien bestimmt der Agent das nächste Ziel seiner Bewegung? Welche Rechte haben Agenten auf anderen Rechnern? Wie wird die Privatsphäre der Benutzer geschützt? Wie werden vertrauliche Daten übertragen und verarbeitet?

Interface-Agenten

Eine weitere Art von Software-Agenten sind die sogenannten Interface-Agenten. Sie stellen einen neuen Trend der Gestaltung von Mensch-Maschine-Schnittstellen dar. Es geht um die Hilfestellung für den Menschen bei der Ausführung von Aufgaben am Computer. Der Agent steht dabei im Dialog mit dem Menschen und veranlaßt die Ausführung von Aktionen auf dem Rechner. Er kann dem Benutzer auch "über die Schulter sehen" und Ratschläge erteilen.

Einfache Ausgaben solcher oft auch als Assistenten bezeichneten Programme finden sich inzwischen schon in Standardsoftware, z.B. der Tabellenkalkulation Microsoft Excel 5. Neben der Bereitstellung von Hilfen und Anleitungen analysiert dieser Assistent die Arbeitsschritte des Benutzers und gibt Tips zur Effektivierung der Arbeit, z.B. durch den Hinweis auf Abkürzungstasten (shortcuts). Ein weiteres Beispiel ist der Hardware-Assistent des Betriebssystems MS Windows 95, der neue Hardware-Komponenten des PCs einrichtet, Konflikte erkennt und dem Benutzer Lösungsmöglichkeiten vorschlägt.

Am MIT wird gegenwärtig ein System Collaborative Interface Agents (CIA) entwickelt, das auf der Zusammenarbeit und dem Informationsaustausch von Interface-Agenten basiert. Dadurch sollen Agenten von den Erfahrungen anderer Agenten profitieren. [Lashkari94]

Multi-Agenten Systeme

Verteilte Systeme können mittels Agenten realisiert werden, die Aufgaben im Netz ausführen. Durch ein einheitliches Kommunikationsprotokoll können unterschiedliche, spezialisierte Agenten miteinander kommunizieren. Ganze Scharen von Agenten könnten in Kürze die Netze "bevölkern", Informationen sammeln und kooperativ Probleme lösen. Ein wichtiger Aspekt ist daher die Verhandlung zwischen Agenten.

Jeder Agent sollte so im Rechnernetz plaziert werden, daß ein schneller und ressourcensparender Zugriff auf die benötigten Informationen gewährleistet ist. Weiterhin ist Wert auf eine effektive Kommunikation zu legen, um die Belastung des Kommunikationsnetzes und die Bearbeitungszeit von Aufträgen zu verringern. Eines der auftretenden Probleme ist das gegenseitige Finden der Agenten im Netz, das möglichst ohne eine zentrale Verwaltung auskommen soll.

Ein Beispiel für ein System kooperierender Agenten sind die "Agentengemeinschaften" des Yenta-Projekts am MIT [Foner94]. Als Aufgabengebiete solcher Agenten sind Verhandlungen zwischen Verkäufern und Käufern, Terminaushandlungen und die Interessengruppenbildung von Menschen vorgesehen. Die Agenten verknüpfen dabei Benutzer-Informationen mit Sachinformationen. Gerade bei solchen Anwendungen ist der Schutz der menschlichen Privatsphäre und nichtöffentlicher Informationen durch Geheimhaltung und Verschlüsselung besonders wichtig.

Forschungen und Anwendungsgebiete

Das Forschungsgebiet Software-Agenten entwickelt sich sehr schnell. Es ist ein Schmelztiegel unterschiedlichster Ansätze und Ziele. Der Hauptteil der Forscher arbeitet in den USA und England, aber es gibt es auch Forschergruppen in vielen anderen Ländern, darunter in Deutschland. Es existiert eine Vielzahl veröffentlichter Arbeiten aus den letzten Jahren. Jährlich finden eine Reihe von Konferenzen und Workshops statt, Arbeitsgruppen veröffentlichen ihre Ergebnisse und neue Anwendungsgebiete werden erschlossen. Als Standardwerk gilt derzeit das Buch "Intelligent Agents" von Woolridge und Jennings [Woolridge94]. Weiterhin gibt es mehrere Ansätze, das Fachgebiet zu ordnen und eine teilweise Standardisierung zu erreichen.

Erprobt wird eine große Zahl von Anwendungsgebieten von Software-Agenten. Darunter sind die verteilte Künstliche Intelligenz, Verteilte Systeme, semi-intelligente und adaptive Mensch-Maschine-Schnittstellen, Informationsbeschaffung und -filterung, computer-unterstützte Gruppenarbeit (Computer Supported Cooperative Work, CSCW) und die Robotersteuerung. Die Bedeutung von Software-Agenten wird in den kommenden Jahren stark zunehmen. Gründe hierfür sind u.a. das weitere Anwachsen der dem Benutzer zur Verfügung stehenden Informationsmenge und die weiter zunehmende Vernetzung von Rechnersystemen. Mit dem Aufkommen von Software-Agenten stellen sich jedoch Fragen der Akzeptanz solcher Systeme. Nicht zu übersehende Risiken bestehen z.B. durch Programme, die mit privaten Daten des Benutzers außerhalb seiner unmittelbaren Kontrolle agieren. Einer der Hauptpunkte der gegenwärtigen Forschung ist daher die Erhöhung der Zuverlässigkeit und Sicherheit von durch Software-Agenten ausgeführten Transaktionen.

Das Forschungsgebiet Software-Agenten hat sich in den vergangenen Jahren stürmisch in verschiedene Richtungen entwickelt. Es gibt nun mehrere Bestrebungen, eine Standardisierung von Agentensystemen zu erreichen. Ein solcher Vorschlag ist die Unified Agent Architecture von Marc Belgrave [Belgrave95]. Analog der Standardisierung im CORBA (Common Object Request Broker Architecture) soll versucht werden, im internationalen Maßstab Vereinheitlichungen zu erreichen. Die Komponenten der vorgeschlagenen "Generischen Agenten-Architektur" sind Sicherheit, Kommunikation, Mobilität und Transport, Schlußfolgerungsfähigkeit und Verteiltheit von Software-Agenten. Die folgende Vorstellung von drei Forschergruppen ist, gemessen an der Vielzahl von Projekten, eine sehr kleine Auswahl.

Bei der Autonomous Agents Group am MIT in Boston hat man sich zum Motto gesetzt: "Agents. All kinds. We do 'em." Folgende Forschungen werden durchgeführt: Multi-Agenten Systeme, Autonome Agenten, Interface Agenten und maschinelles Lernen. Weiterhin beschäftigt man sich mit der "Soziologie" von Agenten, u.a. Fragen der Interaktion von Software-Agenten mit Menschen.

Die Forschungsgruppe Autonomous Agents Research Group am Department of Computer Engineering and Science an der Case Western Reserve University in Cleveland beschäftigt sich vorwiegend mit Hardware-Agenten. Schwerpunkte der Arbeiten sind evolutionäre Algorithmen, mobile Roboter und berechenbare Biologie (computational biology). Das Ziel ist hierbei, die Mechanismen eines sich anpassenden Verhaltens bei Tieren und Robotern zu studieren.

Innerhalb des Oz-Projektes an der Carnegie Mellon University in Pittsburgh beschäftigt man sich mit der Technik interaktiver "Dramen", künstlich geschaffener Szenarien auf dem Rechner. In sogenannten "Mikrowelten" bewegen sich künstliche Akteure, "Charaktere" oder "Agenten". Eines der Ziele ist, die Glaubwürdigkeit solcher Agenten für menschliche Zuschauer zu erhöhen. Hierzu versucht man, emotionale Zustände in den Agenten nachzubilden [Bates92]. Eine andere Arbeit behandelt den Einfluß "höherer Gewalt", beispielsweise durch die Steuerung von Wind und Regen. Dies wird durch einen "Bühnenmanager" vorgenommen, der außerhalb der Mikrowelt steht. Das Ziel kann sein, dramatische Effekte innerhalb des Handlungsablaufs zu erreichen. [Maes95]


Quelle

  

Annette Schneider

Freitag, den 12. 05. 2000 - 20:24 Click here to edit this post
Sicherheit von mobilen Agenten auf elektronischen Märkten; s. zur theoretischen Erläuterung von Agenten insbesondere Kapitel 3

  

Annette Schneider

Freitag, den 12. 05. 2000 - 20:51 Click here to edit this post
Is it an Agent, or just a Program?: A Taxonomy for Autonomous Agents


Das Senden ist in diesem Themengebiet nicht unterstützt. Kontaktieren Sie den Diskussions-Moderator für weitere Informationen.