Agentenbasierte Softwareentwicklung Referent Theodor Foerster Agentenbasierte Softwareentwicklung 1
Agentenbasierte Softwareentwicklung Referent: Theodor Foerster Agentenbasierte Softwareentwicklung 1
Gliederung • • • Einführung Motivation Beispiel Konzepte Methodik Ausblick & Fazit Agentenbasierte Softwareentwicklung 2
Einführung • Bestimmte Anforderungen – Inhärente Verteilung – Eingeschränkte Umgebungssicht => System von Agentenbasierte Softwareentwicklung 3
Motivation • Einheitliche Entwicklungsmethodik • Synergien nutzen => Vorteile von Frameworks Agentenbasierte Softwareentwicklung 4
Gliederung • • • Einführung Motivation Beispiel Konzepte Methodik Ausblick & Fazit Agentenbasierte Softwareentwicklung 5
Virtueller Fußball • Server als Simulator • Agenten als Spieler • Simulator kümmert sich um reale Spielverhältnisse • Agenten können sich absprechen • Vizeweltmeister Robo. Cup 98 (Simulation) Agentenbasierte Softwareentwicklung 6
Weitere Beispiele • Assistent zur Nutzung verteilten Know-hows • Schwindelmex • Dezentralisiertes, flexibles Job-Shop. Scheduling Agentenbasierte Softwareentwicklung 7
Gliederung • • • Einführung Motivation Beispiel Konzepte Methodik Ausblick & Fazit Agentenbasierte Softwareentwicklung 8
Gemeinsamkeiten • Nachrichtenaustausch • Ähnliche Gliederung der Komponenten Konzepte für – Analyse – Entwurf – Implementierung Agentenbasierte Softwareentwicklung 9
Analyse - Bestandteile • • • Steuerungsmodul Wissensbasis Interaktionmodul Ausführungsmodul Managementschnittstelle Agentenbasierte Softwareentwicklung 10
Bestandteile - Steuerungsmodul • • Regelt Kommunikation Konfiguriert den Agenten Enthält Entscheidungsalgorithmus Vorteil: Komponenten müssen nicht alle anderen kennen • Nachteil: Eingeschränkter Informations- und Steuerungsfluss Agentenbasierte Softwareentwicklung 11
Bestandteile - Wissensbasis • Dreigeteilt in – Fähigkeiten und Handlungsvarianten – Aktuelle Umgebungsinformationen – Ziele • Spezialinformationen • Wissensbasis beeinflusst Entscheidungen Agentenbasierte Softwareentwicklung 12
Bestandteile - Interaktionsmodul • Sendet/empfängt Umgebungsinformationen • anwendungsspezifische Aufgaben Agentenbasierte Softwareentwicklung 13
Bestandteile - Ausführungsmodul • Führt verpflichtende Aktionen aus • Kapselt Aktionsausführung von Aktionsauswahl • Enthält Parallelisierungstrategie Agentenbasierte Softwareentwicklung 14
Bestandteile - Managementmodul • Enthalten wenn kein klarer Ablauf erkennbar • Für geordneten Ablauf zuständig • Einstellungen Agentenbasierte Softwareentwicklung 15
Analyse - Datenstrukturen • • • Umgebungsinformation Handlungsaufforderung Situation Aktion Plan Fähigkeit Handlungsvariante Ziel Verpflichtung Aktivität Agentenbasierte Softwareentwicklung 16
Übersicht Datenstrukturen Agentenbasierte Softwareentwicklung 17
Analyse - Algorithmen • Aktualisierung der Umgebungsinformation • Auswahl der nächsten Aktion • Ablaufsteuerung Agentenbasierte Softwareentwicklung 18
Übersicht Algorithmen Agentenbasierte Softwareentwicklung 19
Analyse - Systemsicht • Adresse – Identifikation • Nachricht – Umgebungsinformation & Handlungsaufforderung • Protokoll – Kommunikationsregeln Agentenbasierte Softwareentwicklung 20
Entwurf - Bestandteile • • • Steuerungsmodul Wissensbasis Interaktionsmodul Ausführungsmodul Managementschnittstelle Agentenbasierte Softwareentwicklung 21
Beispiel - Wissensbasis Agentenbasierte Softwareentwicklung 22
Entwurf - Datenstrukturen • Umgebungsinformation – Liste aus Attribut-Werte-Paaren • Request – Parameter, Priorität, Endtermin • Capabilities – Namen, Parametername, Wertebereich, Bearbeitungsdauer, uvm. • . . . Agentenbasierte Softwareentwicklung 23
Entwurf - Algorithmen • Aktualisierung der Umgebungsinformation – Entsprechender Parameter in die Wissensbasis • Auswahl der nächsten Aktion • Ablaufsteuerung – Managt einzelne Tasks (stop, run, . . . ) Agentenbasierte Softwareentwicklung 24
Entwurf - Systemsicht • Adresse – Host, port, ID • Nachricht – Sender, Empfänger, Typ, Inhalt • Protokoll – z. B. Beziehung von Nachrichtentyp und Rolle Agentenbasierte Softwareentwicklung 25
Implementierung • • Verschiedene Kommunikationstechniken Datenschutz und –sicherheit Parallelität Frage der Programmiersprache – Java (OOP) vs. Prolog (logisch) Agentenbasierte Softwareentwicklung 26
Aspekte • Konzepte variieren nach Fragestellung • Speziell zu beachtende Gebiete – Wissensrepräsentation – OOP – Agententechnik generell Agentenbasierte Softwareentwicklung 27
Gliederung • • • Einführung Motivation Beispiel Konzepte Methodik Ausblick & Fazit Agentenbasierte Softwareentwicklung 28
Methodik - Begriffe • • • Agent Verteilte Softwaresysteme Software-Entwicklung Analyse und Entwurfsmuster Frameworks Agentenbasierte Softwareentwicklung 29
Begriffe - Framework • Anpassbare Menge an abhängigen Klassen • Wiederverwendbare Abstraktion • Framework enthält – Konzepte – Schnittstellen – Invarianten der Interaktion – Ablaufsteuerung – Basis-Implementierung Agentenbasierte Softwareentwicklung 30
Begriffe - Framework Makro Architektur „Erst lose, dann starr“ Agentenbasierte Softwareentwicklung 31
Strukturierung des Framework • Abhängig von der Programmiersprache • In Schichten gegliedert – Konzeptschicht – Standardschicht – Variantenschicht • Implementierung kann in jeder Schicht ansetzen Agentenbasierte Softwareentwicklung 32
Framework - Bestandteile • Standardschicht: abstrakte Klassen der Komponenten • Variantenschicht: Kommunikation & Wissensmanagement Agentenbasierte Softwareentwicklung 33
Framework - Datenstrukturen • Standardschicht: z. B. Aktionsauswahl & Speicherung der Umgebung • Variantenschicht: Aktion & Handlungsvarianten Agentenbasierte Softwareentwicklung 34
Framework - Algorithmen • Standardschicht: abstrakte Ablaufsteuerung • Variantenschicht: z. B. Planauswahl Agentenbasierte Softwareentwicklung 35
Framework - System • Unterstützt Zusammenspiel mehrerer Agenten • Enthält Analysefunktionen • Kann Kooperationspläne abspeichern Agentenbasierte Softwareentwicklung 36
Entwicklungsmethoden • • • Agentenorientierte Analyse Theoriebasierte Konstruktion Entwickeln mit Mitteln der Logik BDI-Agenten Modellierung durch Skripts uvm. Agentenbasierte Softwareentwicklung 37
Entwicklungsmethoden • Unterscheidung: – Herangehensweise – Ausgangspunkt – Eingesetzte Mittel – Phasen (Analyse, Entwurf, …) – Sichtweise Agentenbasierte Softwareentwicklung 38
Agenten & Java • Agenten benötigen keine Vererbung • Als Implementierungssprache geeignet • Es existiert noch kein auf Java abgestimmtes Framework Agentenbasierte Softwareentwicklung 39
Bestehende Frameworks in Java • • Agent. Builder (www. agentbuilder. com) ABE Intelligent Agent Factory JACK Agentenbasierte Softwareentwicklung 40
Gliederung • • • Einführung Motivation Beispiel Konzepte Methodik Ausblick & Fazit Agentenbasierte Softwareentwicklung 41
Ausblick • Framework muss in konkreten Projekten bestehen • Zusammenspiel von Agenten & Java ausführlicher evaluieren => Praktikum: Verteiltes Programmieren von Agentensystemen Agentenbasierte Softwareentwicklung 42
Fazit • Entwicklungsmethode für Agentensysteme • Eignung in Projekten? Agentenbasierte Softwareentwicklung 43
Ende Fragen? !? Literatur: Kühnel, Ralf; Agentenbasierte Softwareentwicklung, Addison Wesley Http: //www. ki. informatik. hu-berlin. de Agentenbasierte Softwareentwicklung 44
- Slides: 44