Agentenbasierte Softwareentwicklung 1 Referent: Theodor Foerster.

44
Agentenbasierte Softwaree ntwicklung 1 Agentenbasierte Softwareentwicklung Referent: Theodor Foerster

Transcript of Agentenbasierte Softwareentwicklung 1 Referent: Theodor Foerster.

Page 1: Agentenbasierte Softwareentwicklung 1 Referent: Theodor Foerster.

Agentenbasierte Softwareentwicklung

1

Agentenbasierte Softwareentwicklung

Referent: Theodor Foerster

Page 2: Agentenbasierte Softwareentwicklung 1 Referent: Theodor Foerster.

Agentenbasierte Softwareentwicklung

2

Gliederung

• Einführung

• Motivation

• Beispiel

• Konzepte

• Methodik

• Ausblick & Fazit

Page 3: Agentenbasierte Softwareentwicklung 1 Referent: Theodor Foerster.

Agentenbasierte Softwareentwicklung

3

Einführung

• Bestimmte Anforderungen– Inhärente Verteilung– Eingeschränkte Umgebungssicht

=> System von Agenten

Page 4: Agentenbasierte Softwareentwicklung 1 Referent: Theodor Foerster.

Agentenbasierte Softwareentwicklung

4

Motivation

• Einheitliche Entwicklungsmethodik

• Synergien nutzen

=> Vorteile von Frameworks

Page 5: Agentenbasierte Softwareentwicklung 1 Referent: Theodor Foerster.

Agentenbasierte Softwareentwicklung

5

Gliederung

• Einführung

• Motivation

• Beispiel

• Konzepte

• Methodik

• Ausblick & Fazit

Page 6: Agentenbasierte Softwareentwicklung 1 Referent: Theodor Foerster.

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)

Page 7: Agentenbasierte Softwareentwicklung 1 Referent: Theodor Foerster.

Agentenbasierte Softwareentwicklung

7

Weitere Beispiele

• Assistent zur Nutzung verteilten Know-hows

• Schwindelmex

• Dezentralisiertes, flexibles Job-Shop-Scheduling

Page 8: Agentenbasierte Softwareentwicklung 1 Referent: Theodor Foerster.

Agentenbasierte Softwareentwicklung

8

Gliederung

• Einführung

• Motivation

• Beispiel

• Konzepte

• Methodik

• Ausblick & Fazit

Page 9: Agentenbasierte Softwareentwicklung 1 Referent: Theodor Foerster.

Agentenbasierte Softwareentwicklung

9

Gemeinsamkeiten

• Nachrichtenaustausch

• Ähnliche Gliederung der Komponenten

Konzepte für– Analyse– Entwurf– Implementierung

Page 10: Agentenbasierte Softwareentwicklung 1 Referent: Theodor Foerster.

Agentenbasierte Softwareentwicklung

10

Analyse - Bestandteile

• Steuerungsmodul

• Wissensbasis

• Interaktionmodul

• Ausführungsmodul

• Managementschnittstelle

Page 11: Agentenbasierte Softwareentwicklung 1 Referent: Theodor Foerster.

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

Page 12: Agentenbasierte Softwareentwicklung 1 Referent: Theodor Foerster.

Agentenbasierte Softwareentwicklung

12

Bestandteile - Wissensbasis

• Dreigeteilt in– Fähigkeiten und Handlungsvarianten– Aktuelle Umgebungsinformationen– Ziele

• Spezialinformationen

• Wissensbasis beeinflusst Entscheidungen

Page 13: Agentenbasierte Softwareentwicklung 1 Referent: Theodor Foerster.

Agentenbasierte Softwareentwicklung

13

Bestandteile - Interaktionsmodul

• Sendet/empfängt Umgebungsinformationen

• anwendungsspezifische Aufgaben

Page 14: Agentenbasierte Softwareentwicklung 1 Referent: Theodor Foerster.

Agentenbasierte Softwareentwicklung

14

Bestandteile - Ausführungsmodul

• Führt verpflichtende Aktionen aus

• Kapselt Aktionsausführung von Aktionsauswahl

• Enthält Parallelisierungstrategie

Page 15: Agentenbasierte Softwareentwicklung 1 Referent: Theodor Foerster.

Agentenbasierte Softwareentwicklung

15

Bestandteile - Managementmodul

• Enthalten wenn kein klarer Ablauf erkennbar

• Für geordneten Ablauf zuständig

• Einstellungen

Page 16: Agentenbasierte Softwareentwicklung 1 Referent: Theodor Foerster.

Agentenbasierte Softwareentwicklung

16

Analyse - Datenstrukturen

• Umgebungsinformation• Handlungsaufforderung• Situation• Aktion• Plan• Fähigkeit• Handlungsvariante• Ziel• Verpflichtung• Aktivität

Page 17: Agentenbasierte Softwareentwicklung 1 Referent: Theodor Foerster.

Agentenbasierte Softwareentwicklung

17

Übersicht Datenstrukturen

Page 18: Agentenbasierte Softwareentwicklung 1 Referent: Theodor Foerster.

Agentenbasierte Softwareentwicklung

18

Analyse - Algorithmen

• Aktualisierung der Umgebungsinformation

• Auswahl der nächsten Aktion

• Ablaufsteuerung

Page 19: Agentenbasierte Softwareentwicklung 1 Referent: Theodor Foerster.

Agentenbasierte Softwareentwicklung

19

Übersicht Algorithmen

Page 20: Agentenbasierte Softwareentwicklung 1 Referent: Theodor Foerster.

Agentenbasierte Softwareentwicklung

20

Analyse - Systemsicht

• Adresse– Identifikation

• Nachricht– Umgebungsinformation &

Handlungsaufforderung

• Protokoll– Kommunikationsregeln

Page 21: Agentenbasierte Softwareentwicklung 1 Referent: Theodor Foerster.

Agentenbasierte Softwareentwicklung

21

Entwurf - Bestandteile

• Steuerungsmodul

• Wissensbasis

• Interaktionsmodul

• Ausführungsmodul

• Managementschnittstelle

Page 22: Agentenbasierte Softwareentwicklung 1 Referent: Theodor Foerster.

Agentenbasierte Softwareentwicklung

22

Beispiel - Wissensbasis

Page 23: Agentenbasierte Softwareentwicklung 1 Referent: Theodor Foerster.

Agentenbasierte Softwareentwicklung

23

Entwurf - Datenstrukturen

• Umgebungsinformation– Liste aus Attribut-Werte-Paaren

• Request– Parameter, Priorität, Endtermin

• Capabilities– Namen, Parametername, Wertebereich,

Bearbeitungsdauer, uvm.

• ...

Page 24: Agentenbasierte Softwareentwicklung 1 Referent: Theodor Foerster.

Agentenbasierte Softwareentwicklung

24

Entwurf - Algorithmen

• Aktualisierung der Umgebungsinformation– Entsprechender Parameter in die Wissensbasis

• Auswahl der nächsten Aktion

• Ablaufsteuerung– Managt einzelne Tasks (stop, run,...)

Page 25: Agentenbasierte Softwareentwicklung 1 Referent: Theodor Foerster.

Agentenbasierte Softwareentwicklung

25

Entwurf - Systemsicht

• Adresse– Host, port, ID

• Nachricht– Sender, Empfänger, Typ, Inhalt

• Protokoll– z.B. Beziehung von Nachrichtentyp und Rolle

Page 26: Agentenbasierte Softwareentwicklung 1 Referent: Theodor Foerster.

Agentenbasierte Softwareentwicklung

26

Implementierung

• Verschiedene Kommunikationstechniken

• Datenschutz und –sicherheit

• Parallelität

• Frage der Programmiersprache– Java (OOP) vs. Prolog (logisch)

Page 27: Agentenbasierte Softwareentwicklung 1 Referent: Theodor Foerster.

Agentenbasierte Softwareentwicklung

27

Aspekte

• Konzepte variieren nach Fragestellung

• Speziell zu beachtende Gebiete– Wissensrepräsentation– OOP– Agententechnik generell

Page 28: Agentenbasierte Softwareentwicklung 1 Referent: Theodor Foerster.

Agentenbasierte Softwareentwicklung

28

Gliederung

• Einführung

• Motivation

• Beispiel

• Konzepte

• Methodik

• Ausblick & Fazit

Page 29: Agentenbasierte Softwareentwicklung 1 Referent: Theodor Foerster.

Agentenbasierte Softwareentwicklung

29

Methodik - Begriffe

• Agent

• Verteilte Softwaresysteme

• Software-Entwicklung

• Analyse und Entwurfsmuster

• Frameworks

Page 30: Agentenbasierte Softwareentwicklung 1 Referent: Theodor Foerster.

Agentenbasierte Softwareentwicklung

30

Begriffe - Framework

• Anpassbare Menge an abhängigen Klassen

• Wiederverwendbare Abstraktion

• Framework enthält– Konzepte– Schnittstellen– Invarianten der Interaktion– Ablaufsteuerung– Basis-Implementierung

Page 31: Agentenbasierte Softwareentwicklung 1 Referent: Theodor Foerster.

Agentenbasierte Softwareentwicklung

31

Begriffe - Framework

Makro Architektur

„Erst lose, dann starr“

Page 32: Agentenbasierte Softwareentwicklung 1 Referent: Theodor Foerster.

Agentenbasierte Softwareentwicklung

32

Strukturierung des Framework

• Abhängig von der Programmiersprache

• In Schichten gegliedert– Konzeptschicht– Standardschicht– Variantenschicht

• Implementierung kann in jeder Schicht ansetzen

Page 33: Agentenbasierte Softwareentwicklung 1 Referent: Theodor Foerster.

Agentenbasierte Softwareentwicklung

33

Framework - Bestandteile

• Standardschicht: abstrakte Klassen der Komponenten

• Variantenschicht: Kommunikation & Wissensmanagement

Page 34: Agentenbasierte Softwareentwicklung 1 Referent: Theodor Foerster.

Agentenbasierte Softwareentwicklung

34

Framework - Datenstrukturen

• Standardschicht: z.B. Aktionsauswahl & Speicherung der Umgebung

• Variantenschicht: Aktion & Handlungsvarianten

Page 35: Agentenbasierte Softwareentwicklung 1 Referent: Theodor Foerster.

Agentenbasierte Softwareentwicklung

35

Framework - Algorithmen

• Standardschicht: abstrakte Ablaufsteuerung

• Variantenschicht: z.B. Planauswahl

Page 36: Agentenbasierte Softwareentwicklung 1 Referent: Theodor Foerster.

Agentenbasierte Softwareentwicklung

36

Framework - System

• Unterstützt Zusammenspiel mehrerer Agenten

• Enthält Analysefunktionen

• Kann Kooperationspläne abspeichern

Page 37: Agentenbasierte Softwareentwicklung 1 Referent: Theodor Foerster.

Agentenbasierte Softwareentwicklung

37

Entwicklungsmethoden

• Agentenorientierte Analyse

• Theoriebasierte Konstruktion

• Entwickeln mit Mitteln der Logik

• BDI-Agenten

• Modellierung durch Skripts

• uvm.

Page 38: Agentenbasierte Softwareentwicklung 1 Referent: Theodor Foerster.

Agentenbasierte Softwareentwicklung

38

Entwicklungsmethoden

• Unterscheidung:– Herangehensweise– Ausgangspunkt– Eingesetzte Mittel– Phasen (Analyse, Entwurf,…)– Sichtweise

Page 39: Agentenbasierte Softwareentwicklung 1 Referent: Theodor Foerster.

Agentenbasierte Softwareentwicklung

39

Agenten & Java

• Agenten benötigen keine Vererbung

• Als Implementierungssprache geeignet

• Es existiert noch kein auf Java abgestimmtes Framework

Page 40: Agentenbasierte Softwareentwicklung 1 Referent: Theodor Foerster.

Agentenbasierte Softwareentwicklung

40

Bestehende Frameworks in Java

• AgentBuilder (www.agentbuilder.com)

• ABE

• Intelligent Agent Factory

• JACK

Page 41: Agentenbasierte Softwareentwicklung 1 Referent: Theodor Foerster.

Agentenbasierte Softwareentwicklung

41

Gliederung

• Einführung

• Motivation

• Beispiel

• Konzepte

• Methodik

• Ausblick & Fazit

Page 42: Agentenbasierte Softwareentwicklung 1 Referent: Theodor Foerster.

Agentenbasierte Softwareentwicklung

42

Ausblick

• Framework muss in konkreten Projekten bestehen

• Zusammenspiel von Agenten & Java ausführlicher evaluieren

=> Praktikum: Verteiltes Programmieren von Agentensystemen

Page 43: Agentenbasierte Softwareentwicklung 1 Referent: Theodor Foerster.

Agentenbasierte Softwareentwicklung

43

Fazit

• Entwicklungsmethode für Agentensysteme

• Eignung in Projekten?

Page 44: Agentenbasierte Softwareentwicklung 1 Referent: Theodor Foerster.

Agentenbasierte Softwareentwicklung

44

Ende

Fragen?!?

Literatur:

Kühnel, Ralf; Agentenbasierte Softwareentwicklung, Addison Wesley

Http://www.ki.informatik.hu-berlin.de