Struktur Einleitung Teil 1: Programmieren

Slides:



Advertisements
Ähnliche Präsentationen
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Advertisements

Puck eine visuelle Programmiersprache für die Schule
On a Buzzword: Hierachical Structure David Parnas.
Sortierverfahren Richard Göbel.
Java: Grundlagen der Sprache
Kurzanleitung: Gleichungen lösen
Modularisierungstechniken
handlungsorientierte Zugänge zur Algebra
Schiller-Gymnasium Hof Manuel Friedrich OStR, PHP – Variablen und Formulardaten speichern! © 2010 Manuel Friedrich - Wie.
Batch-Programmierung Grundlagen
Schleifen mit der Turtle
Informatik Grundkurse mit Java
1 Teil 4 Übung: Uhr. 2 Zielsetzung Ziel ist es, mit Hilfe objektorientierter Modellierung ein System zu entwickeln, mit dem eine einfache Uhr simuliert.
Erstellen eines Zufallsgenerators
Java programmieren mit JavaKara
FHP - Fachbereich Bauingenieurwesen
Susanne Schärer Donnerstag, 6. Januar 2011
Programmieren Kapitel 3 – Variablen.
PHP und MYSQL am Organisatorisches Der komplette Kurs im Schnelldurchgang Bewertung von wichtig und unwichtig Historisch Kulturwissenschaftliche.
Präsentation C Tutorium von Daniel J. Nowak Folie 1 C Tutorium.
Didaktische Programminterpreter
Lindenmayer-Systeme: Fraktale rekursiv zeichnen
Bereit ???? Nimm dir 10 Minuten Zeit. Ich versuche es dir zu erklären.
C-Einstieg. Agenda 1Vorbereitung 2Aufbau eines Programms 2.1Header 2.2 Methoden 2.3Main 3Datentypen & Variablen 4Operatoren(+, -, *, /) 5Logik 5.1IF 5.2Switch.
Einführung. Steuerelemente Hier erstellt man das Fenster, mit dem der Anwender später arbeiten soll: Werte eingibt Buttons klickt Auswahlen trifft.
Dynamische Webseiten-Generierung
PHP: Operatoren und Kontrollstrukturen
Informatik II Grundlagen der Programmierung Programmieren in C Funktionen, Adressen, Zeiger Hochschule Fulda – FB ET Sommersemester 2014
Vortrag: Frames & Javascript.
SFZ FN Sj. 13/14 Python 2 Turtle Inf K1/2 Sj 13/14 GZG FN W.Seyboldt.
programmieren des casio FX-7400GII
… erste Schritte mit einem programmierbaren Mikrocontroller
Schleifen
Software Engineering Strukturierter Entwurf
OOSE nach Jacobson Sebastian Pohl/ST7 Betreuer: Prof. Dr. Kahlbrandt.
Kommunikation - Die Macht von Bildern in Unternehmen
Objektorientierte (OO) Programmierung
Sortierverfahren Mit VB 2010 express edition JBS Tr, info Q1.
FOR Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
Class HelloWorldApp { public static void main(String[] args) {... } Grundkurs Inf - wie einsteigen ?
Energy as a driver in open-ended evolution Von Tim Hoverd & Susan Stepney Präsentation von Sebastian Schrage.
Projektseminar numerische Klimasimulation Mo 10:00-11:30Uhr Raum 3065, Philipp Inhalt: - Theoretische und praktische Grundlagen der numerischen Klimasimulation.
Wiederholte Programmausführung
Informatik Im WPI – Bereich.
Konzeption und Aufbau einer interaktiven wissenschaftlichen Informationswebsite
Zusammen lernen wir Programmieren!
Eine Präsentation von Sandro Schluep und Leon Wink.
Software Aufteilung in 3 Gruppen: Dazu: Protokoll, IDs der ASUROs
HCS Übung 3 Von: Patrick Denk Oleg Arenz
JavaKara programmieren: Verzweigungen
Java-Kurs Übung Grafik in Java - das Abstract Windowing Toolkit
Struktur-Funktions-Modelle von Pflanzen
Struktur-Funktions-Modelle von Pflanzen
Wenn man hot potatoes startet erhält man folgenden Bildschirm.
Die Struktur einer Java-Klasse
Einführung in die Programmierung
Programmierung mit Scratch
Coden mit Python Was sind deine Erfahrungen mit Programmieren?
Arten von Kontrollstrukturen
Die Überfrage: Wozu modelliert man ?.
Stiftkarten Stiftkarten
Schleifen mit der Turtle
Struktur-Funktions-Modelle von Pflanzen
Arrays in C Ein Array ist eine Variable, die aus einer Anzahl von Elementen des gleichen Datentyps besteht, die aufeinanderfolgend im Speicher liegen.
Mögliche Stoffverteilung im Grundkurs
Implementieren von Klassen
The Programming Language Pascal
RGB-LED Projekt INGOLSTADT.
Schnuck Schnack Schnick Stein-Schere-Papier Projekt INGOLSTADT.
 Präsentation transkript:

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

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

Begleitende und weitergehende Literatur & Software Netlogo Handbuch & Help-Dateien Netlogo 3.1.5 Für Interessierte: Netlogo 4.1 (RC) von http://ccl.northwestern.edu/netlogo/

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

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

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

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

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 ...

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

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

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

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

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

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

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

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.

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)

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 3.1.5 Handbuch oder Mitschrift zu verwenden

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

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

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

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

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

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

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

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

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

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

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.

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!)

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“

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!

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.

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

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!