Agenten zur Informationssammlung Software Agenten Agenten zur Informationssammlung Tobias Gerke, Andreas Jäger nach Craig A. Knoblock & José Luis Ambite (1997)
Einführung Schwerpunkte von Arbeiten über Agenten: Definition von Modellen über die Intention, die Fähigkeit und den Bedarf von Agenten Planung von Multi-Agenten-Systemen Entwicklung von Agenten zur Informationssammlung
Einführung Gegenwärtige Situation: Riesige, ständig wachsende, inhomogene Informationsmengen Fehlen eines Mittels zum Auffinden, Kombinieren, Verarbeiten und Organisieren von Informationen Verwaltung der Informationen in einem Netz von Informations-Agenten
Gliederung Organisation der Informationssammler Wissensbasis der Agenten Kommunikation der Agenten Bearbeiten von Anfragen Der Lernprozess Fazit
Organisation der Informationssammler Grundgedanke: Stellen Informationen zu einem speziellen Fachgebiet zur Verfügung Beziehen Informationen von anderen Agenten Dienen anderen Agenten als Informationsquelle
Organisation der Informationssammler Begriffliche Konventionen: Informations-Agent: Dient als Informations-quelle, stellt aber selbst auch Anfragen Data-Repository: Stellt nicht aktiv Anfragen Wrapper: Schnittstelle, die jeder Agent des Systems gebildet haben muss Gemeinsame Sprache
Organisation der Informationssammler
Wissensbasis der Agenten Jeder Agent beinhaltet: Abbild seines Fachgebiets = domain model Modelle der Agenten, die er als Quelle nutzt = information-source model Beziehungen zwischen den Modellen
Wissensbasis der Agenten domain model source model des Naval Agent source model des Harbor Agent source model des Port Agent Beispiel: Sea Agent Naval Agent Port Agent Harbor Agent
Wissensbasis der Agenten Teil des domain model vom Sea_Agent:
Wissensbasis der Agenten information-source und domain model:
Wissensbasis der Agenten information-source und domain model:
Kommunikation der Agenten Agenten nutzen einheitlich Sprache Protokoll Loom knowledge representation language KQML
Kommunikation der Agenten Loom als einheitliche Abfragesprache keine teuren Unterabfragen KQML als einheitliches Protokoll Einfache Rückgabe von Ergebnissen KQML-Message mit Loom-Query KQML-Message mit Loom-Query Recipient Agent Source Agent Subsource Agent KQML- Message mit Informationen KQML- Message mit Informationen
Kommunikation der Agenten Beispiel einer Loom-Abfrage: Parameterliste Beschreibung der gewünschten Information (retrieve (?port_name ?ship_type) (:and (seaport ?port) (port_name ?port ?port_name) (has_channel ?port ?channel) (channel_depth ?channel ?depth) (ship ?ship) (vehicle_type ?ship ?ship_type) (max_draft ?ship ?draft) (> ?depth ?draft)))
Bearbeiten von Abfragen Keine umgehende Ausführung von Anfragen Vorgehen: Auswahl der Informationsquellen Erstellen eines Abfrage-Plans Abfrageoptimierung Ausführung der Anfrage
Bearbeiten von Abfragen Unterteilung der Verarbeitung von Anfragen: Ziel Anfangszustand Operatoren
Bearbeiten von Abfragen Beispiel eines Planungsziels in Loom: (available output sims (retrieve (?port_name ?ship_type) (:and (seaport ?port) (port_name ?port ?port_name) (has_channel ?port ?channel) (channel_depth ?channel ?depth) (ship ?ship) (vehicle_type ?ship ?ship_type) (range ?ship ?range) (> ?range 10000) (max_draft ?ship ?draft) (> ?depth ?draft))))
Bearbeiten von Abfragen Beispiel eines Anfangszustandes in Loom: ((source-available Naval_Agent isd12.isi.edu) (source-available Harbor_Agent isd14.isi.edu) (source-available Port_Agent isd14.isi.edu))
Bearbeiten von Abfragen - Auswahl der Informationsquellen - Agent benutzt Operatoren zur Auswahl der Informationsquellen: Operator der Informationsquellenauswahl
Bearbeiten von Abfragen - Auswahl der Informationsquellen -
Bearbeiten von Abfragen - Auswahl der Informationsquellen - Anwendung des Auswahloperators in Loom: Domain–Level Query: (retrieve (?port_name ?depth) (:and (seaport ?port) (port_name ?port ?port_name) (geoloc_code ?port ?geocode) (channel ?channel) (geoloc_code ?channel ?geocode) (channel_depth ?channel ?depth))) Source-Level Query: (retrieve (?port_name ?depth) (:and (harbor_agent.harbor ?port) (harbor_agent.port_nm ?port ?port_name) (harbor_agent.glc_cd ?port ?geocode) (harbor_agent.channel ?channel) (harbor_agent.glc_cd ?channel ?geocode) (harbor_agent.ch_depth_ft ?channel ?depth)))
Bearbeiten von Abfragen - Auswahl der Informationsquellen - Agent benutzt Operatoren zur Auswahl der Informationsquellen: Operator der Informationsquellenauswahl Konzept-Verallgemeinerungsoperator
Bearbeiten von Abfragen - Auswahl der Informationsquellen -
Bearbeiten von Abfragen - Auswahl der Informationsquellen - Agent benutzt Operatoren zur Auswahl der Informationsquellen: Operator der Informationsquellenauswahl Konzept-Verallgemeinerungsoperator Definitions-Ersetzungs-Operator
Bearbeiten von Abfragen - Auswahl der Informationsquellen -
Bearbeiten von Abfragen - Auswahl der Informationsquellen - Anwendung des Ersetzungsoperators in Loom: (retrieve (?port_name ?ship_type) (:and (seaport ?port) (port_name ?port ?port_name) (geoloc_code ?port ?geocode) (channel ?channel) (geoloc_code ?channel ?geocode) (channel_depth ?channel ?depth) (ship ?ship) (vehicle_type ?ship ?ship_type) (range ?ship ?range) (> ?range 10000) (max_draft ?ship ?draft) (> ?depth ?draft)))
Bearbeiten von Abfragen - Auswahl der Informationsquellen - Agent benutzt Operatoren zur Auswahl der Informationsquellen: Operator der Informationsquellenauswahl Konzept-Verallgemeinerungsoperator Definitions-Ersetzungs-Operator Konzept-Spezialisierungsoperator
Bearbeiten von Abfragen - Auswahl der Informationsquellen -
Bearbeiten von Abfragen - Erstellen eines Abfrageplans - Planerstellung vor Ausführung einer Abfrage Hierzu: Datenmanipulations-Operatoren Move Join Retrieve Select Compute Durch Schätzfunktion Plan geringster Kosten
Bearbeiten von Abfragen - Erstellen eines Abfrageplans - Beispiel eines Bearbeitungsplanes in Loom: (retrieve harbor_agent (?port_name ?depth) (and (harbor ?port) (port_nm ?port ?port_name) (select (move (glc_cd ?port ?glc_cd) harbor_agent harbor_agent (channel ?channel) isd12.isi.edu) local) (glc_cd ?channel ?glc_cd) (ch_depth_ft ?channel ?depth))) (join (< ?draft ?depth) (retrieve naval_agent (?ship_type ?draft) (and (ship ?ship) (select (move (sht_nm ?ship ?ship_type) naval_agent naval_agent (range ?ship ?range) isd14.isi.edu) local) (> ?range 10000) (max_draft ?ship ?draft)))
Bearbeiten von Abfragen - Gleichzeitiges Planen und Ausführen - Der Agent kann gleichzeitig Prozesse ausführen und andere Prozesse planen. Hierzu notwendig: interne Liste aller laufende Aktionen Aktion beendet wenn korrekt, als fertig markieren wenn fehlerhaft, Plan neu erstellen
Bearbeiten von Abfragen - Gleichzeitiges Planen und Ausführen - Der Agent kann... Anfragen annehmen und planen, während er andere ausführt. bei Fehlern den Plan umstellen ohne laufende Abfragen zu unterbrechen. selbstständig weiter Informationen für den Abfrageprozess einholen.
Bearbeiten von Abfragen - Semantische Abfragenoptimierung - Es existiert eine Reihe semantischer Regeln. Diese stellen Wissen dar, mit dem Abfragen verändert werden können. Ziel: Zahl der Unterabfragen minimieren Zwischendaten gering halten Kosten senken
Bearbeiten von Abfragen - Semantische Abfragenoptimierung - Ursprüngliche Abfrage: (retrieve (?ship-type ?draft) (:and (naval_agent.ship ?ship) (naval_agent.sht_nm ?ship ?ship-type) (naval_agent.max_draft ?ship ?draft) (naval_agent-range ?ship ?range) (> ?range 10000))) Semantische Regel: (:if (:and (naval_agent.ship ?ship) (naval_agent.range ?ship ?range) (naval_agent.fuel_cap ?ship ?fuel_cap) (> ?range 10000) (:then (< ?draft 12))) Umformulierte Abfrage: (retrieve (?sht-type ?draft) (:and (naval_agent.sht_nm ?ship) (naval_agent.sht_nm ?ship ?ship-type) (naval_agent.max_draft ?ship ?draft) (> ?draft 12)))
Der Lernprozess Steigert Genauigkeit und Effizienz 3 Arten der Lernens: Speicherung häufig gebrauchter oder teuer zu bekommener Informationen Ableitung semantischer Regeln Abgleich der Agentenmodelle
Der Lernprozess - Cachen erhaltener Daten - Erhaltene Daten sowie Abfrage (als Beschreibung) werden lokal im Agenten gehalten Beschreibung neues Unterkonzept Daten Instanzen des Unterkonzepts Automatische Berücksichtigung der neuen Informationsquelle bei späteren Abfragen Speicherung nur genereller, einfacher Abfragen mit statischem Inhalt
Der Lernprozess - Lernen semantischer Regeln - Ausgangspunkt: Auftreten einer teuren Abfrage Selbständige Informationseinholung in nächster Ruhephase des Systems: Abfrage wird in äquivalente umformuliert Bei Effizienzsteigerung: Ableitung von Regeln Übernahme der Regeln in das domain-model
Der Lernprozess - Abgleichen der Agentenmodelle - Annahme bisher: vollständige Abstimmung der Modelle auf einander Aber: Modelldesigner hatte kein komplettes Verständnis über Semantiken der Informationen. Autonomie der Agenten bewirkt stetige dynamische Veränderung der Konzepte.
Der Lernprozess - Abgleichen der Agentenmodelle - Lösung: Abgleichen bei Inkonsistenz in drei Schritten. Prüfung auf Differenzen neue Klassen in domain model aufnehmen wenn möglich, durch Lernalgorithmus Beschreibungen des neuen Konzepts ermitteln.
Der Lernprozess - Abgleichen der Agentenmodelle - Beispiel: Ausgangssituation: gleiche Informationen über Seehäfen in Harbor_Agent.Harbor und Port_Agent.Port Erweiterung des Port_Agent um Informationen über kleine Fischerhäfen. Jetzt ist Harbor_Agent eine Teilmenge von Port_Agent.
Der Lernprozess - Abgleichen der Agentenmodelle - Beispiel - Ausgangssituation:
Der Lernprozess - Abgleichen der Agentenmodelle - Beispiel - Angeglichenes Model:
Fazit Eigenschaften des Systems Modularität Erweiterbarkeit Flexibilität Effizienz Anpassungsfähigkeit
The End ... noch Fragen?