Entwicklung von Simulationsmodellen WS 2007/08 Dr. Falk-Juri Knauft Modul: 22a Mittwoch 9.15 Uhr – 10.00 Uhr S25 Praktikum zur Entwicklung von Simulationsmodellen: Mittwoch 14.00 Uhr – 17.00 Uhr GEO CIP-Pool Es ist sinnvoll, die hier angegebenen Veranstaltungen zu kombinieren. Die Themen ergänzen sich gegenseitig. http://www.bayceer.uni-bayreuth.de/mod/html/ws0708/geooekologie/simulationsmodelle
Entwicklung von Simulationsmodellen WS 2007/2008 – Überblick I 17.10.2007 Einführung, Ziele, Definition System, Model 24.10.2007 Systemanalyse vs. –simulation, Zustandsbeschreibung 31.10.2007 Diskretisierung, Auswertung der Excel-Simulation 07.11.2007 Programmierparadigmen 14.11.2007 Klassische Wachstumsmodelle 21.11.2007 Stabilität 28.11.2007 Delay, Delay-Modellanwendung Klee-Weidelgras 05.12.2007 Weltmodell nach Forrester 12.12.2007 Modell-Validierung 09.01.2008 Individuen-orientiertes Populationsmodell „Fuchs“ 16.01.2008 Agenten-Simulationsumgebung SESAM Dieser Themenkatalog ist nur eine ungefähre Auflistung. Insbesondere die Termine sind eher unverbindlich. http://www.bitoek.uni-bayreuth.de/mod/html/ws0708/geooekologie/simulationsmodelle http://www.bayceer.uni-bayreuth.de/mod/html/ws0708/geooekologie/simulationsmodelle
Individuenbasierte Modelle Prozessorientiert Gruppen/Populationen entsprechen Variablen Wechselwirkung (prozessgesteuert) Individuen ununterscheidbar Kontinuierliche Größen Individuenbasiert Jedes Individuum entspricht einem Datenobjekt Interaktione (direkte Kommunikation) Gedächtnis/Geschichte Diskrete Größen (ganzzahlig)
Variablen, Objekte, Agenten Basistypen für Variablen: int, float, boolean, ... Operationen: +, -, ּ, :, ... Komplexe Datenobjekte: Vektoren, Matrizen Operationen: Tensorprodukt, Skalarprodukt, ... Objekte: Personendaten, ... Operationen: benutzerdefiniert Agenten: autonome Objekte (eigentl. Subjekte) Operationen: eigener Kontrollfluss
L-System für Anabaena Catenula Simultane Ersetzung („parallel rewriting“) Beispiel für ein D0L-System (deterministisches kontext-freies L-System)
Modell einer Fuchspopulation mit Ursuppe
SeSAm – Eine Entwicklungsumgebung für Multi-Agenten-Modelle Graphisches Interface zur Implementation eines Simulations-Modells Ermöglicht Animation, Daten-Erfassung und Auswertung Bisherige Modelle aus der Biologie (Staatenbildende Insekten) oder zu Geschäfts-prozessen Keine Programmiererfahrung erforderlich - aber hilfreich ;-) Graphische Editoren zur Beschreibung der Agenten und ihres Verhaltens
SeSAm – Eine Entwicklungsumgebung für Multi-Agenten-Modelle Umwelt als 2D Grid oder 2D kontinuierliche Map Map wird von Agenten und Ressourcen besiedelt Agenten führen Aktionen aus Ressourcen dürfen die Welt nicht aktiv beeinflussen Beide besitzen einen „Body“, den Container für ihre Zustands-Variablen Es ist möglich, ein globales Verhalten der Welt zu definieren
SeSAm – Eine Entwicklungsumgebung für Multi-Agenten-Modelle Agenten Verhalten auf Klassen-Level definiert, Parametrisierung kann aber auf Instanzen-Level erfolgen Definition durch UML-ähnlichen activity-graph Jeder Agent befindet sich in einer activity, die die actions enthält, welche im aktuellen Zeitschritt auszuführen sind Regeln bestimmen den Wechsel zwischen den activities Implementierung erfolgt graphisch über Auswahllisten mit zugehörigen (komplexen) Daten-Typen
Entwicklung eines Fuchs-Agenten-Modells Ziel unseres Modells: Modellierung der Dynamik einer räumlich begrenzten, aber heterogenen (Reviere) Population mit arttypischem Reproduktionsverhalten Diese Paper ist als pdf-Dokument von den Web-Seiten zur Vorlesung (Link-Seite) herunterladbar!
Entwicklung eines Fuchs-Agenten-Modells Zu modellierende (?) Fakten: Ein reproduzierendes Paar belegt ein Revier Nichtreproduzierende Jungtiere werden +- geduldet (Wanderungen in/aus Jungfuchspool) Mortalität für Alttiere durch Alter, Krankheiten, Verkehr, Jagd Mortalität für Jungtiere durch Verkehr, Krankheiten, Jagd Mortalität für Welpen durch Futterverfügbarkeit, Krankheiten Verstorbenes Alttier wird durch Jungtier ersetzt Beute für Jungtiere (Mäuse) mit relativ unabhängiger Dynamik vom Räuber Reviere mit unterschiedlichem Beuteangebot Diese Paper ist als pdf-Dokument von den Web-Seiten zur Vorlesung (Link-Seite) herunterladbar!
Entwicklung eines Fuchs-Agenten-Modells Was zeichnet einen Fuchs-Agenten aus? Variablen für: Alter, Geschlecht, Vitalität, etc. Activities für: Jagd (Suchen&Fressen), Fortpflanzung (Partnersuche, Welpenpflege), etc. Rules für: Beginn und Ende der Jagd, Beginn und Ende der Fortpflanzung
Entwicklung eines Fuchs-Agenten-Modells Was zeichnet seine Welt aus? Variablen für: Anzahl der Füchse und Mäuse, etc. Activities für: Mäuse-Erzeugung (Random) Rules für: ??
Entwicklung eines Fuchs-Agenten-Modells Was gehört zur Simulation? Map (100x100, Torus, kein Grid) Füchse (2 oder 3) Mäuse? („pflanzt“ die Welt!)
SeSAm – Eine Entwicklungsumgebung für Multi-Agenten-Modelle Was fehlt noch? Mäuse Activity zum Suchen und Fressen der Mäuse Activity zum Suchen und Paaren mit Partner (liegt der Bau dort, wo Paarung stattfindet oder legen wir ein paar Baue ins Revier) Activity zum Markieren eines Reviers, wenn Partner vorhanden (dürfen Jungtiere im Revier bleiben? Activity zum Füttern der Jungtieren? Mortalität der Füchse etc.
SeSAm – Eine Entwicklungsumgebung für Multi-Agenten-Modelle Einführungs-Präsentation: http://ki.informatik.uni-wuerzburg.de/~sesam/tutorials/shortIntroduction Englisches Tutorial (Hausaufgabe!): http://ki.informatik.uni-wuerzburg.de/~sesam/wiki/pmwiki.php/WikiTutorial/TutorialIndex oder http://ki.informatik.uni-wuerzburg.de/~sesam/tutorials/SeSAm_Tutorial.pdf Achtung! Tutorials enthalten evt. noch ein paar kleine Fehler: Im Kapitel „ReactionOntoPerceivedTemperature “ist der Quotient in der Formel besser auf 100 zu setzen. Figure RPT-1 (im pdf Fig. 30): nach „GetVariable“ muss „PerceivedTemperature“ gewählt werden, dann kommt wie in der Grafik „20“ und dann wie zuvor gesagt „100“ anstelle von „10“ Im Kapitel „HighLevelObservationUsingAnalysis“gelang es mir nicht, die Temperaturen der Mäuse (Max., Mean, Min.) im Analysis-Plot zum Laufen zu bringen. Da ist evt. ein Bug drin. Also wenn‘s auch nicht geht einfach weglassen! Figure WmR-2 (im pdf Fig. 40): mir gelang es nicht an dieser Stelle, wie gewünscht, die Dimension der Map automatisch zu kriegen, habe daher anstelle „PosGetX...“ einfach die gewählte Größe der Map eingetragen (z.B. 100). Meine Mäuse haben am Ende des Tutorials zum Käse gefunden!