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