Multiagentensysteme: Modelle, Programmierung, Plattformen

PD Stefan Bosse
Universität Bremen, FB Mathematik & Informatik
SS 2020
Version 2020-04-01

Überblick


Schwerpunkte in diesem Kurs

  • Modellierung und Simulation mit Agenten
  • Grundlagen von autonomen Agenten und selbstorganisierenden Systemen
  • Konzepte der Programmierung von Agenten: Eher abstrakt oder besser praktisch?
  • Praktische Relevanz und Anwendung von agentenbasierten Systemen
  • Plattformen und Technologien

Begleitet von integrierten Übungen um obige Techniken konkret anzuwenden

Vorlesung

2 SWS mit Grundlagen und Live Programming (Baukastenprinzip!)

Übung

1 SWS mit Programmierung und angewandter Vertiefung (integriert)

Voraussetzungen

Grundlegende Programmierfähigkeiten (keine spez. Programmiersprache)

Zielgruppen des Kurses

  • Soziologen

  • Informatiker

  • Wirtschaftswissenschaftler, Ökonomen

  • Biologen

  • Produktionstechniker und Logistiker

  • Systemingenieure (Systems Engineering)

  • Psychologen (?)

  • Geologen (?)

figscicomm[tiridifilm/istockphoto.com]

Materialien

  1. Die Vorlesungsinhalte (Skript, Folien) werden auf http://edu-9.de unter der Rubrik Lehre zusammengestellt und angeboten

  2. Weitere Materialien (Tutorials, Übungen, Software) werden ebenfalls auf http://edu-9.de bereitgestellt

  3. Die Videos sind über http://edu-9.de verlinkt und sind auf http://ag-0.de verfügbar (opencast Server)

  4. Interkation der Teilnehmer findet über einen Wiki statt! (dokuwiki). Dieser ist über http://ag-0.de erreichbar und in den jeweiligen Veranstaltungsseiten auf http://edu-9.de verlinkt.

  5. Es wird noch einen online Chat geben.

  6. Alle weiteren Hinweise und Einführungen (z.B. in Software) nur noch auf dem Wiki!!!

Methoden und Verfahren mit Agenten

Die drei großen AB*

ABM

Agentenbasiertes Modellieren

Verhalten und Wechselwirkung von natürlichen oder technischen Systeme werden mit Agenten modelliert

ABC

Agentbasiertes Berechnen (Computing)

Agenten sind (mobile) Software und Datenverarbeitung
Programmier- und digitales Kommunikationsmodell

ABS

Agentenbasierte Simulation

Simulation von komplexen Systemen mit Agentenmodellen (ABM) oder Simulation von Agenten (ABC)

Leistungen

Folgende Möglichkeiten einer Prüfungsleistung stehen zur Auswahl:

  1. Mündliche Prüfung (über mindestens die Hälfte der Modulblöcke)

  2. Schriftliche Ausarbeitung zu einer Fragestellung zu dem Thema (Review/Survey)

  3. Die Bearbeitung einer experimentellen oder simulativen Arbeit (NetLogo/JAM)

Methoden und Verfahren mit Agenten

Variationen und Kombinationen

ABMS

Kombination und Schnittmenge aus ABM und ABS als eigene Disziplin

ABX

Kombination aus ABM, ABS, und ABC!

Erweiterte Simulation und Modellierung mit Daten aus Crowd Sensing

figabm

Methoden und Verfahren mit Agenten

Einsatzgebiete von Agenten

  1. ABM und ABS werden in folgenden Disziplinen eingesetzt:

    • Soziologie
    • Biologie
    • Physik, Materialwissenschaften (Zelluläre Automaten!)
    • Ökonomie/Wirtschaftswissenschaften
  2. ABC und ABS werden eingesetzt in:

    • Verteilte und parallele Datenverarbeitung, Informatik
    • Agentenbasiertes Planen, Produktionstechnik
    • Künstliche Intelligenz, agentenbasiertes Lernen und Schwärme (Robotik)

Literatur

Vorlesungsskript ABM,ABS,ABC
Die Inhalte der Vorlesung werden sukzessive bereitgestellt
MultiAgent Systems ABC
Michael Wooldridge, John Wiley & Sons, 2002




figwooldridge

Multiagent Systems - A Modern Approach to Distributed Artificial IntelligenceABC
Gerhard Weiss (Ed.), The MIT Press, 2000


figweiss

Literatur

An Introduction to Agent-Based Modeling ABM,ABS
Uri Wilensky, William Rand, William, MIT Press, 2015



figwilensky

The JavaScript and nodejs Handbooks ABC
Flavio Copes, 2018, https://flaviocopes.com


figcopes

Software

Verwendete Software (Vorlesung und Übung)

NetLogo ABM,ABS

ccl.northwestern.edu/netlogo
agentscript.org

  • Simulation und Evaluierung von Multiagentensystemen

  • Vollständig in JAVA programmiert

  • Einsatz auf verschiedenen Betriebssystemen: Windows, Unix, MacOS, ..

  • Bottom-up Modellierung, aber globales Modell

  • AgentScript: JavaScript Modellierung

fignetlogo

Software

Verwendete Software (Vorlesung und Übung)

JAM ABC

ag-0.de

  • JAM: JavaScript Agent Machine

  • Vollständig in JavaScript programmiert (+Agenten: AgentJS)

  • Einsatz auf verschiedenen Hostplattformen: PC, Smartphone, Embedded PC, Server, ..

figjamapp

SEJAM2 ABC,ABX

ag-0.de

  • SEJAM: Simulation Environment for JAM

  • Simulationsumgebung und Entwicklungs IDE

  • Bottom-up Modellierung, lokales Modell

figsejam2

Software

Verwendete Software (Vorlesung und Übung)

JAM Laboratory ABC

ag-0.de

  • Vollständige JAM Plattform

  • IDE mit Interpreter Shell, Editor, und Nachrichtenfenstern

  • Kann in jedem WEB Browser ausgeführt werden

  • Internetanbindung an andere JAM Plattformen

figjamweblab

Software

JAM Laboratory ABC

Fragestellungen

  1. Wie kann man komplexe dynamische Systeme mit Agenten modellieren und simulieren, die

    • aus einzelnen einfach Einheiten bestehen, und
    • die Einheiten miteinander wechselwirken?
  2. Wie kann man das globale Verhalten also Systemverhalten einer Menge von Agenten studieren?

  3. Wie kann robuste Datenverarbeitung in heterogenen Umgebungen (Netzwerken) mit Agenten stattfinden?

figagentinter01[Crooks et al., 2018]

Fragestellungen

  1. Wie kann in ABM/ABS die reale Welt auf künstliche Welten für Agenten abgebildet und repräsentiert werden?

figagentworld01[Crooks et al., 2018]

Ziele

Die Studenten erwerben/gewinnen/lernen

  1. Grundverständnis von Agenten und deren Verhaltensmodelle
  2. Grundlagen verteilter perzeptiver und reaktiver Systeme und Fähigkeit der Programmierung: Wie können komplexe verteilte Systeme mit einfachen Methoden entworfen werden?
  3. Grundverständnis und Anwendung der Kommunikation, Kooperation, und Kollaboration zwischen Agenten
  4. Fähigkeit der praktischen Anwendung und Abbildung der Agentenmodelle mit Programmierung in einfachen Einsatzszenarien unter Verwendung von JavaScript
  5. Verständnis und Anwendung an Beispielen von selbstorganisierenden Systemen und deren Adaptivität
  6. Praktische Umsetzung einfacher MAS mit der JAM Plattform, JavaScript (AgentJS), und dem SEJAM Simulator
  7. Einblicke in die technologische Umsetzung von Multiagentensystemen und Agentenplattformen

Inhalte

  1. Einführung in Agenten und Agentensysteme
  2. Anwendungsbeispiele
  3. Agentenmodellierung und Agentenmodelle mit einfachen Architekturen
  4. Entwurf von Agenten mit Programmierung
  5. Praktische Agentenbasierte Modellierung mit NetLogo
  6. Agentenkommunikation: Koordination und Kooperation
  7. Agentenplattformen
  8. Mobile Agenten als mobile Prozesse
  9. Praktischer Einsatz von Agenten mit der JAM Plattform
  10. Simualtion von Agentensystemen (u.A. mit SEJAM)

Programmierung

NetLogo (deklarativ, prozedural)

breed [tcells tcell] ; the T cells
breed [DCs DC] ; the dendritic cells (DCs)
to setup
  clear-all
  set-default-shape turtles "circle" ; all turtles will be circles (spheres)
    create-tcells 100 [
      set color green ; make T cell green
      setxyz random-xcor random-ycor random-zcor ; put T cell at random location
    ]
    create-DCs 2 [
      set size 2 ; make DC of size 2 (twice that of T cells)
      set color red ; make DC red
      setxyz random-xcor random-ycor random-zcor
    ]
  reset-ticks
end

Programmierung

Abstrakt (deklarativ)

Jason (BDI)

+!leave(home) 
  : not raining & not ~raining
  <- !location(window); 
    ?curtain_type(Curtains); 
    open(Curtains); 
    .. 
+!leave(home) 
  : not raining & not ~raining 
  <- .send(mum,askIf,raining); 
  ..
@shopping(1)[chance_of_success(0.7),
  usual_payoff(0.9), 
  source(ag1), expires(autumn)] 
+need(Something) 
  : can_afford(Something) 
  <- !buy(Something).

Praktisch (prozedural, funktional, obj.bas.)

AgentJS (JAM)

function AgentShopper (charge) {
  this.bank=charge;  this.money=0;
  this.act = {
    init: function () {..},
    percept: function () {..},
    buy:  function () {..},
    gohome: function () {..}
  }
  this.on = {
    'error': function (e) {..},
    'PRICE':  function (val) {..}, 
  }
  this.trans = {
    init: percept,
    percept: function () {return this.money?buy:gohome},
    buy: percept
  };
  this.next=init;
}

Pressestimmen

Was sagen andere?

  • Dr. Wander Jager, Universität Groningen