Software-Agent

aus Wikipedia, der freien Enzyklopädie

Als Software-Agent (auch Agent oder Softbot) bezeichnet man ein Computerprogramm, das zu gewissem (wohl spezifiziertem) eigenständigem und eigendynamischem (autonomem) Verhalten fähig ist. Das bedeutet, dass abhängig von verschiedenen Zuständen (Status) ein bestimmter Verarbeitungsvorgang abläuft, ohne dass von außen ein weiteres Startsignal gegeben wird oder während des Vorgangs ein äußerer Steuerungseingriff erfolgt.

Definition und Grundlagen

Laut Michael Wooldridge[1][2] gibt es keine allgemein anerkannte Definition eines Agenten. Es gibt zwar generelle Zustimmung, dass ein Agent selbstständig (autonom) sein muss, darüber hinaus gibt es aber wenig Einigung. Wooldridge versucht sich dennoch an einer Definition: „Ein Agent ist ein Computersystem, das sich in einer bestimmten Umgebung befindet und welches fähig ist, eigenständige Aktionen in dieser Umgebung durchzuführen, um seine (vorgegebenen) Ziele zu erreichen.“ Die VDI-Richtlinie: VDI/VDE 2653[3] gibt folgende Definition: „Ein technischer Agent ist eine abgrenzbare (Hardware- oder/und Software-) Einheit mit definierten Zielen. Ein technischer Agent ist bestrebt, diese Ziele durch selbstständiges Verhalten zu erreichen und interagiert dabei mit seiner Umgebung und anderen Agenten.“

Die Forschung über Künstliche Intelligenz definiert eine Software als Agenten, wenn sie folgende Eigenschaften besitzt, die den Grad der Autonomie des Programms beschreiben:

autonom

arbeitet unabhängig von Benutzereingriffen

kognitiv

ist lernfähig und lernt aufgrund zuvor getätigter Entscheidungen bzw. Beobachtungen

kommunikativ

teilt seine Zustände als Wirkung auf seine Umgebung dieser mit

modal adaptiv

ändert aufgrund der eigenen Zustände und der Zustände der Umgebung seine eigenen Einstellungen (Parameter und/oder Struktur)

aktiv

führt Aktionen aufgrund eigener Initiative aus

reaktiv

reagiert auf Änderungen der Umgebung

robust

kompensiert äußere und innere Störungen

sozial

kommuniziert mit anderen Agenten

Dabei sind gleichzeitige Eingriffe von außen, die die Autonomie einschränken oder die Entscheidungskriterien verändern, nicht ausgeschlossen.

Kommt zu den genannten Eigenschaften die Fähigkeit hinzu, selbsttätig den Ausführungsort zu wechseln (zu migrieren), so spricht man von einem mobilen Agenten. Dazu braucht er Fähigkeiten, die ihn zu einer gewissen Anpassung an andere Infrastruktur befähigen. Siehe hierzu Migration (Informationstechnik), das solche Mechanismen seitens eines Menschen beschreibt.
Intelligente Agenten zeichnen sich durch Wissen, Lernfähigkeit, Schlussfolgerungen und die Möglichkeit zu Verhaltensänderungen aus.

Ein Netz aus einer Teilmenge von autonomen Agenten, die miteinander kommunizieren können, nennt man eine Population. Diese Kommunikation wird durch die Dichte und die Verteilung der Agenten sowie deren Gruppierung und die zeitliche Varianz dieser Parameter beeinflusst.

Einsatz

Agenten werden große Einsatzmöglichkeiten in den Bereichen E-Commerce, Informationsrecherche, Simulation, Erledigen von Routineaufgaben und in autonomen Systemen eingeräumt. Aber auch komplexe Aufgaben, beispielsweise in automatisierten Verhandlungen, können durch Softwareagenten übernommen werden. Im Bereich Simulation gibt es dabei das Spezialgebiet der Multi-Agenten-Simulation bzw. Gruppensimulation mit eigenen Softwareprodukten. Letzteres wird häufig im Spielebereich, aber auch als Anwendung „künstlicher Intelligenz“ in der Arbeitswelt eingesetzt.

Implementierungen

Es gibt zahlreiche Implementierungen von Agentenplattformen im wissenschaftlichen Umfeld. Diese haben meist einen speziellen Fokus, zum Beispiel intelligentes Verhalten, Sicherheit, effiziente Migration.

Eine ausführliche Übersicht über aktuelle Systeme, welches als Projekt (Co-ordination Action) im Rahmen des sechsten Forschungsrahmenprogramms der Europäischen Kommission gefördert wird, ist AgentLink.org.[4]

Unter anderem existiert das umfangreiche, Java-basierte Agentenframework JADE.

Agententypen

Agententypen unterscheiden sich in der Agentenarchitektur (nicht zu verwechseln mit der Architektur, auf der das Umgebungsprogramm läuft). Unter einer Agentenarchitektur versteht man die Art und Weise, wie die Definition und Verwaltung des Agentenverhaltens erfolgt. Prinzipiell herrscht dabei eine große Begriffsvielfalt, aber die Einteilung in drei weitgehend anerkannte Bereiche ist möglich:

Reaktive Agenten

Reaktive (bzw. subkognitive) Agenten verfügen prinzipiell nicht über eigenes Wissen, sondern agieren nur aufgrund ihrer Wahrnehmungen direkt und ohne Entscheidungsprozess.

Folgende Agententypen treten in diesem Zusammenhang öfter auf:

Einfach Reaktiver Agent

Ist der einfachste Typ. Der Agent erhält Sensorinformationen und wählt aufgrund von Bedingungs-Aktions-Regeln eine Aktion aus.

Beobachtender Agent

Stellt eine Erweiterung des Einfachen Reaktiven Agenten dar. Dieser Agententyp besitzt bereits ein Gedächtnis und sammelt Informationen über die Umwelt und was die eigenen Aktionen bewirken würden. Die Bedingungs-Aktions-Regeln werden dann auf dieses Gesamtbild angewandt und nicht mehr nur auf die reinen Sensorinformationen.

Adaptive Agenten

Adaptive Agenten verwalten ein Modell der eigenen Prozess- und Parameterstruktur. Diese können der eigenen Vorgeschichte und erkannten oder gemessenen äußeren Bedingungen angepasst werden. Dadurch wird eine adaptive Regelung und damit beispielsweise eine hinsichtlich der Ressourcen optimale Ausführung möglich.[5][6][7]

Kognitive Agenten

Kognitive Agenten verwalten ein Modell ihrer Umwelt in einer eigenen Datenstruktur.[8][9][10] Dadurch wird Planung der Aktionen und schließlich auch zielgerichtetes Handeln möglich. Eine bekannte Unterklasse ist die Agentendefinition in den BDI Agenten durch Angabe der Beliefs, Desires und Intentions.

Folgende Agententypen treten in diesem Zusammenhang öfter auf:

Zielbasierter Agent

Der Agent besitzt eine Zielvorgabe, die er zu erreichen versucht, und er entscheidet aufgrund der Sensorinformation und seines Wissens über die Folgen seiner Aktionen, welche Aktion ihn seinem Ziel am nächsten bringt. Da das Ziel nicht immer in einem Schritt erreicht werden kann, ist der Agent in der Lage zu planen.

Nutzenbasierter Agent

Als Weiterentwicklung des zielbasierten Agenten besitzt der nutzenbasierte Agent ebenfalls eine Zielvorgabe. Es werden dabei alle möglichen und unmöglichen Zustände auf eine reelle Zahl abgebildet, welche den Nutzen für den Agenten repräsentiert. Er selbst hat hierbei den Wert -∞. Dadurch ist er in der Lage, in Situationen, in denen mehrere Ziele erreichbar sind, zu entscheiden, welche Aktionen den größeren Nutzen haben, bzw. welche Ziele erstrebenswerter sind. Dies ist vor allem dann interessant, wenn nicht mit Sicherheit gesagt werden kann, ob ein Ziel erreicht werden kann. Der Agent kann damit eine Risikoeinschätzung durchführen und wird nicht nur seinem Hauptziel folgen.

Siehe auch

Literatur

  • Rolf Grütter: Software-Agenten im Web. In: Informatik Spektrum, 2006, Heft 1
  • Michael Wooldridge: Intelligent Agents: The Key Concepts. Springer, Berlin / Heidelberg 1. Januar 2002, S. 151–190, doi:10.1007/3-540-45982-0_1.

Weblinks

Einzelnachweise

  1. Wooldridge: Intelligent Agents: The Key Concepts. 2002, S. 5.
  2. Professor Michael Wooldridge, Head of Department of Computer Science, Professor of Computer Science, Senior Research Fellow, Hertford College. Abgerufen am 1. März 2017.
  3. VDI-Richtlinie 2653 Blatt 1: Agentensysteme in der Automatisierungstechnik - Grundlagen, 2010
  4. AgentLink.org (Memento des Originals vom 23. Juli 2008 im Internet Archive)  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/www.agentlink.org
  5. Adaptive Agents (PDF; 1,0 MB)
  6. Definition of adaptive agents (Memento des Originals vom 14. Mai 2011 im Internet Archive)  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/www.iscid.org
  7. Adaptive Agents and Multi-Agent Systems (PDF; 216 kB)
  8. Cognitive Agents (PDF; 309 kB)
  9. Cognitive Agents (Memento des Originals vom 31. Januar 2012 im Internet Archive)  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/www.pst.ifi.lmu.de (PDF; 1,5 MB)
  10. Survey of Cognitive and Agent Architectures (Memento des Originals vom 23. Februar 2010 im Internet Archive)  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/ai.eecs.umich.edu