Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Struktur Einleitung Teil 1: Programmieren

Ähnliche Präsentationen


Präsentation zum Thema: "Struktur Einleitung Teil 1: Programmieren"—  Präsentation transkript:

1 Struktur Einleitung Teil 1: Programmieren
Teil 2: Räuber-Beute Systeme als Multi-Agenten Simulation

2 Zielsetzung des Vorlesungs-teils
Vermittlung der Grundlagen zur Programmierung von Multi-Agenten Modellen mit mehreren Agenten-Typen am Beispiel von Räuber-Beute Modellen

3 Begleitende und weitergehende Literatur & Software
Netlogo Handbuch & Help-Dateien Netlogo 3.1.5 Für Interessierte: Netlogo 4.1 (RC) von

4 Einleitung & kurze Wiederholung
2 Arten des Modellierens: „Top down“ Differenzial-Gleichungs Modelle „Bottom up“ Multi-Agenten Modelle

5 Vor- und Nachteile des Multi-Agenten Simulation
Vorteile bietet die Möglichkeit der Simulation von: Heterogenen Populationen Einflussnahme von individuellen Handlungen auf das Gesamt-Geschehen Individuelle Verhaltensänderungen die auf Erfahrung und/oder zeitlichen Veränderungen (= Alter) basieren Einfache Implementierung räumlicher Aspekte der Interaktion von Lebewesen

6 Vor- und Nachteile des Multi-Agenten Simulation
Wesentlich höhere Rechenzeit Schlechte Möglichkeiten zur mathematische Analyse des erstellten Modells

7 Aufbau eines Multiagenten Modells
Es gibt Agenten Umwelt Interaktionen zwischen Agent und Umwelt

8 Der Agent Klar definierte abgeschlossene Einheit die:
In einer virtuellen Umwelt lebt über inneren Zustand verfügt („turtles-own“-variable) mit ihrer Umwelt in Kontakt steht (Sensoren, Aktuatoren) Möglichst über keine Globale Information verfügt. x,y Heading Speed Age Energy Genome ...

9 Die virtuelle Welt Die Welt besteht aus:
Räumlich variablen Umweltparametern (diskret / kontinuierlich) Agenten

10 Die diskrete Welt Das „Patch“ Konzept:
Jeder Patch hat einen klar definierte: Position (unbeweglich) Grenzen (fix) Interne Werte („patches-own“)

11 Räuber und Beute Systeme
( ) Parasit-Wirt Modelle unterscheiden größtenteils sich von R&B-Modellen durch die Anzahl der jeweiligen Akteure !

12 Räuber und Beute Systeme
Hudson Bay Daten: (Gute Beschreibbarkeit durch Lotka–Volterra Gleichungen)

13 Räuber und Beute Systeme
Feedbacks in einem 2 stufigen R&B-System: Mehr Pflanzen → Mehr Pflanzenfresser Mehr Pflanzenfresser → weniger Pflanzen Weniger Pflanzen → Weniger Pflanzenfresser Weniger Pflanzenfresser → mehr Pflanzen

14 Räuber und Beute Systeme
Feedbacks in einem 3 stufigen R&B-System: Mehr Pflanzen → Mehr Beutetiere Mehr Beutetiere → Weniger Pflanzen Mehr Beutetiere → Mehr Räuber Mehr Räuber → Weniger Beutetiere Weniger Beutetiere → Mehr Pflanzen

15 Programmieren Allgemeine Einführung Grundlagen in Netlogo
Imperative Programmiersprachen, was'n das? Grundlagen in Netlogo Codebeispiele & Erklärungen Agenten in Netlogo

16 Imperative Programmiersprachen
Ein Befehl nach dem anderen wird ausgeführt. Schleifen steuern den Programmverlauf. Variablen beinhalten konkrete Werte und ermöglichen das Rechnen im Programm. Es gibt: Globale Variablen Lokale Variablen Unterprogramme strukturieren das Programm.

17 Syntax „Grammatik“ der Programmiere-Sprache: z.b.:
if condition [ commands ] soll heissen: „WENN condition WAHR, DANN MACH commands Anwendungsbeispiel: if a > 5 [print „Die Variable A hat den Wert “ + a] (vergleiche mit „if“-beschreibung im Netlogo-Handbuch)

18 Einige Basisbefehle in Netlogo
; Der folgende Text ist nicht Teil des Programms. Print Der folgende Text wird ausgegeben. Set Setze eine Variable auf einen bestimmten Wert. If Wenn die folgende Bedingung erfüllt wird führe die danach folgende Anweisung aus. While Solange die folgende Bedingung erfüllt wird, führe die danach folgende Anweisung aus. Random Erstelle („erwürfle“) mir eine Zufallszahl. Global Erstelle eine Variable, die im ganzen Programm gültig ist. Local Erstelle eine Variable, die nur hier gültig ist („scope“). Für Details bitte Netlogo Handbuch oder Mitschrift zu verwenden

19 Anlegen von Buttons etc. („Die Basics“)
Für Details bitte Netlogo Handbuch oder Mitschrift zu verwenden

20 Anlegen von Buttons etc. („Die Basics“)
Für Details bitte Netlogo Handbuch oder Mitschrift zu verwenden

21 Unterprogramme Für Details bitte Netlogo Handbuch oder Mitschrift zu verwenden

22 Unterprogramme Für Details bitte Netlogo Handbuch oder Mitschrift zu verwenden

23 Netlogo-spezifische Befehle
Create-custom-turtles Breed Create-custom-<breed> Turtles-own / <breed>-own Ask Fd Die Für Details bitte Netlogo Handbuch oder Mitschrift zu verwenden

24 Implementierung von R&B in Netlogo
Einfaches zweistufiges Modell mit immobilem Agenten (Beute): Schrittweiser Aufbau Beschreibung, nicht Code

25 Schritt 1: der „random walker“
Variablen erstellen Breed „rabbits“ erzeugen Zeit-variable Turtles own-variablen Setup-Prozedur Clear-all Erschaffung der Turtles (Breed: “rabbits“) Alle sollen gleich aussehen Alle sollen woanders sitzen Go-Prozedur “rabbits“ bitten zu: Auswürfeln ob sie sich drehen Falls ja, ob links oder rechts, und wie weit Schritt vorwärts machen! Zeit hoch zählen

26 Schritt 1: der „random walker“
Ergebnis: Turtles bewegen sich zielstrebig planlos über den Bildschirm.

27 Schritt 2: Erschaffung der „carrots“
In den „random walker“-code wird eingearbeitet: Variablen erstellen - Setup-Prozedur Patches bitten: Auszuwürfeln ob sie eine Karotten sind Wenn ja, Farbe auf grün setzen Go-Prozedur

28 Schritt 2: Erschaffung der „carrots“
Ergebnis: Einige der Patches werden grün (= „carrot)“ (während nach wie vor die „rabbits“ drüber hinweg laufen)

29 Schritt 3: Interaktion („Hase trifft Karotte“)
Variablen erstellen - „rabbits“ bekommen Variable „energy“ Setup-Prozedur - Go-Prozedur “rabbits“ bitten: Wenn auf Patch trifft, der grün, Patch schwarz machen, und eigene Energie hoch zählen Patches bitten: Auswürfeln, ob Karotte nachwächst. Wenn ja, Patch grün färben.

30 Schritt 3: Interaktion („Hase trifft Karotte“)
Ergebnis: Karotten kommen und gehen Energie der Hasen wird immer größer (nur bei individueller Beobachtung eines Hasen sichtbar!)

31 Schritt 4: Interaktion II („Hase trifft Hase“)
Variablen erstellen - Setup-Prozedur - Hasen bekommen „Basis-Energie“ (Tip I: Hasenerschaffung in Unterprogramm auslagern, da später bei „Mach neuen Hase“ wieder gebraucht!) Go-Prozedur “rabbits“ bitten: Wenn auf Patch trifft, wo andere Hasen, UND genug Energie: Mach neuen Hasen! (Tip: mit „hatch“ Befehl, nicht „sprout“) Entziehe dir selbst Energie für Reproduktion. Entziehe dir selbst Energie für Energieverbrauch (incl. Bewegung etc.) Graphen zeichnen für : „rabbits“ und „carrots“

32 Schritt 4: Interaktion II („Hase trifft Hase“)
Ergebnis: Bei richtiger Einstellung der Parameter (ev. noch zu finden!) entstehen Graphen die sich Hudson Bay Daten vergleichen lassen! Dies kann als Basismodelle für alle folgend beschriebenen Versuche/Untersuchungen benutzt werden!

33 Weiter Modelle (für Übungen)
Einstufiges Modelle mit unterschiedlichen räumlichen Gebieten. Zweistufiges Modell mit 2 bewegten Agenten. Zweistufiges Modell mit 1 oder 2 bewegten Agenten mit Genetik.

34 Weiter Modelle (für Übungen / Diplomarbeiten / Projektanträge)
Zweistufiges Modell mit 2 bewegten Agenten mit ANN & Genetik. Virtuelles Ökosystem.

35 Sie wissen nun: Was ist und was kann ein Multi-Agenten Modell
Wie programmiert man in einer Imperativen Programmiersprache. Was ist Netlogo, wofür ist es ausgelegt. Wie programmiere ich eine Random-Walker. Wie programmiere ich ein einfaches Räuber- Beute Modell!


Herunterladen ppt "Struktur Einleitung Teil 1: Programmieren"

Ähnliche Präsentationen


Google-Anzeigen