ABM Werkzeuge Werkzeuge für ABM (agentenbasieret Modellierung) Wie erstellt man ein agentenbasiertes Modell? Es gibt grundsätzlich zwei Wege, das zu tun. Einer ist, ein eigenes Modell von Grund auf zu konstruieren, wie jedes andere Computerprogramm Der andere Weg, der immer öfter gewählt wird, ist ein Toolkit (Werkzeugsatz, spezialisierte Software Bausteine) für agenteenbasierte Modellierung zu verwenden. Ein solches Toolkit haben wir bereits kurz erwähnt, NetLogo, das wir in diesem Kurs verwenden werden. Aber ich möchte Ihnen zeigen, dass es noch ein paar weitere gibt. Swarm ist der Urahn aller Toolkits für agentenbasierte Modellierung, es wurde in den frühen 90ern am Santa Fe Institut eintwickelt. Es wurde in der Sprache Objective-C geschrieben. Diese Sprache gewinnt wieder an Popularität, weil sie vielen Apps für Mac OS X zugrunde liegt. Swarm existiert noch und wird weiterhin verwendet. Es gibt auch noch eine jährliche Konferenz an der Sie teilnehmen können, das SwarmFest, zur Entwicklung von Swarm und allgemeiner zu agentenbasierter Modellierung Repast wurde teilweise am Argonne National Lab entwickelt, inzwischen in mehreren Sprachen. Die wahrscheinlich bekannteste Implementierung beruht auf Java und stammt aus den frühen 2000ern; sie ist immer noch weit verbreitet Ascape wurde zum Teil am Brookings Institut entwickelt. Sie sollte vor allem als Grundlage für die Sugarscape-Modelle von Joshua M. Epstein und Robert Axtell dienen, die sie vor etwa 20 Jahren in ihrem grundlegenden Buch über agentenbasierte Modellierung verwendet haben. Mason wurde an der George Mason Universität, unter anderem von Sean Luke, entwickelt. Es ist ein sehr schneller und effizienter agentenbasierter Algorithmus. Mass (Multi-Agent Simulation Suite) ist ein Toolkit, das in Ungarn von Laszlo Gulyas und Kollegen entwickelt wurde. Breve ist ein interessantes, leichtgewichtiges Toolkit für agentenbasierte Modellierung, mit dem man tatsächlich die physikalischen Aspekte der agentenbasierten Modellierung untersuchen kann. Und es gibt NetLogo, das wir in diesem Kurs verbenden werden. Warum verwenden wir NetLogo? NetLogo ist eine führende Sprache und Entwicklungsumgebng für die agentenbasierte Modellierung, entwickelt von Uri Wilensky an der Northwestern Universität. Es ist die am weitesten verbreitete Umgebung für ABM. Es ist am einfachsten zu lernen. Wir verwenden es, denn es ist eine führende Bibliothek zur Entiwcklung agentenbasierter Modelle. Es wurde von Uri Wilensky von der Northwestern Universität entwickelt. Er ist auch mein Ko-Autor für das Lehrbuch An Introduction to Agent-Based Modeling, das Sie gut zur Begleitung dieses Kurses verwenden können. Außerdem ist NetLogo immer noch die meistverwendete Umgebung für agentenbasierte Modellierung. Es ist auch in vielerlei Hinsicht am einfachsten zu lernen. In einem praktischen Kurs, bei dem ich direkt mit den Teilnehmern interagieren kann, reichen etwa 3 Stunden, damit sie es zum Laufen bringen. Grundgedanken von NetLogo Niedrige Schwelle: Anfänger können bei der ersten Anwendung kleine Modelle erstellen; Lehrplan für Kinder, auch über komplexe Systeme und Modellierung; Universitätskurse mit modellbasierter Recherche; Medien mit Modellen zur Untermauerung von Argumenten. Hohe "Decke": Sprache soll mächtig genug sein für fortschrittliche, komplexe Modelle; Forscher sollen Modelle lesen, schreiben und publizieren; verkleinere/schließe Kluft zwischen Modellierer und Programmierer; interaktive Entiwicklung und Forschung ermöglichen; einfaches Teilen von Modellen; einfaches Verifizieren und Hinterfragen von Modellen NetLogo beruht auf einem Grundgedanken, der das erleichtert. Der erste ist die niedrige Schwelle: schon bei der ersten Anwendung können Anfänger auf ganz einfache Art und Weise kleine Modelle erstellen. Es hat auch einen Lehrplan, der keinen Schulabschluss voraussetzt, er umfasst auch komplexe Systeme und Modellierung. Schon Kindergartenkinder und Schüler können das aufgreifen, und beginnen zu verstehen, wie man agentenbasierte Modellierung verwendet. Es wird aber auch in Kursen an Universitäten eingesetzt, bei denen agentenbasierte Modellierung eine Rolle spielt. Auch in den Medien werden die Modelle verwendet um Argumente zu untermauern. Die Schwelle, Modelle zu verstehen, oder auch zu erstellen, ist also sehr niedrig. Andererseits hat es eine sehr hohe "Decke" oder Obergrenze. Die Sprache ist mächtig genug um hochentwickelte, komplexe Modelle zu ermöglichen. Forscher sollen damit Modelle lesen, schreiben und publizieren können. Traditionell beruht die Entwicklung von Softwaremodellen auf der Zusamnmenarbeit zwischen dem Modellierer auf der einen Seite, der die konzeptionellen Ideen hat, und dem Programmierer auf der anderen Seite, der sie mit Ingenieurwissen implementiert. Das sind zwei unterschiedliche Personen. Die Idee hinter NetLogo ist, das ein und die selbe Person beide Rollen übernehmen könnte. Dadurch kann die Kluft zwischen Modellierer und Programmierer verkleinert, vielleicht sogar geschlossen, werden. Dadurch kann Modellentwicklung und Forschung sehr interaktiv werden. Es ermöglicht eine interaktive und iterative Zusammenarbeit zwischen Modellentwickler und Modellprogrammierer, bei der beide in ständigem Austausch sind über das Modell, was sie entwickeln. Modelle können auch viel leichter geteilt werden, weil es einfach ist, sie zu verstehen und mit ihnen zu arbeiten. Und weil der Abstand zwischen Modellierer und Programmierer verschwindet, können Modelle viel einfacher verifiziert und hinterfragt werden. Das halten wir für sehr wichtig für den wissenschaftlichen Fortschritt in der Modellierung. Die Geburt der Schildkröte (Turtle) Logo wurde erstmals ca. 1969 von Seuymour Papert und Kollegen entwickelt. Ich denke, ich sollte mir die Zeit nehmen, noch etwas zu einer interessanten Eigenschaft von NetLogo zu sagen. Es ist auch eine schöne Geschichte. Logo wurde um 1969 von Seuymour Papert und Kollegen entwickelt, es ist die Vorgängersprache hinter NetLogo. Logo war keine Sprache für Mehragenten-Modelle, sondern für die Steuerung eines Agenten, im Wesentlichen eines kleinen Schildkröten-Roboters, der bestimmte Handlungen ausfünren konnte. Seymour Papert und seine Kollegen wollten damit Kinder an das Denken aus der Sicht eines Computers heranführen. Wenn sie es in den Klassen einsetzten, verwendeten sie meistens diese Roboter. Und damit die Kinder mitmachten, nannten sie diese nicht Roboter, sondern Turtle (Schildkröte), denn sie gingen davon aus, dass Kinder gerne mit einer Schildkröte spielen würden. Daher nannten sie die virtuelle Repräsentation des physischen Roboters auch Turtle. Und tatsächlich heißen bis heute in NetLogo, einem direkten Nachfolger dieser Programmiersprache, die Agenten 'Turtle'. Das bedeutet nicht, dass die Agenten langsam sind oder sonst bestimmte Eigenschaften haben. So nennen wir einfach die grundlegenden Agenten in NetLogo.