NetLogo
NetLogo | |
---|---|
Paradigmen: | Prozedural, Multi-Agenten-Simulation |
Erscheinungsjahr: | 1999 |
Entwickler: | Uri Wilensky |
Aktuelle Version: | 6.3.0 (September 2022) |
Beeinflusst von: | Logo, StarLogo |
Betriebssystem: | Plattformunabhängig (Java) |
Lizenz: | GPL |
http://ccl.northwestern.edu/netlogo/ |
NetLogo ist eine Multi-Agenten-Programmiersprache mit integrierter Modellierungsumgebung. Es wurde im Geiste der Logo (Programmiersprache) entwickelt. Die Idee war, geringe Einstiegsschwierigkeiten zu bieten und gleichzeitig den Anforderungen von fortgeschrittenen Entwicklern gerecht zu werden.
NetLogo eignet sich insbesondere zur Modellierung komplexer Systeme über einen Zeitverlauf. Modellierer können Anweisungen an Hunderte oder Tausende von „Agenten“ geben, die alle unabhängig voneinander arbeiten. Dies ermöglicht es, den Zusammenhang zwischen dem Verhalten von Individuen auf der Mikroebene und den Mustern auf der Makroebene, die sich aus ihrer Interaktion ergeben, zu untersuchen. NetLogo ermöglicht es den Anwendern Simulationen zu öffnen, mit ihnen zu „spielen“ und ihr Verhalten unter verschiedenen Bedingungen zu beobachten. Es ist gleichzeitig eine Autorenumgebung, die es ermöglicht, eigene Modelle zu erstellen.
Die mitgelieferte „Models Library“ besteht aus einer großen Sammlung von vorgefertigten Simulationen, die verwendet und modifiziert werden können. Diese Simulationen befassen sich mit Inhalten in den Natur- und Sozialwissenschaften einschließlich Biologie, Medizin, Physik, Chemie, Mathematik, Informatik, Wirtschaft und Sozialpsychologie.
Diese freie und quelloffene Software unter der GPL-Lizenz wird am Northwestern University’s Center for Connected Learning and Computer-Based Modeling entwickelt. Die Entwicklung wird finanziert von der National Science Foundation und anderen. NetLogo ist in Scala und Java geschrieben und läuft auf der Java Virtual Machine.
Beispiele
WolfSheepPredation
![NetLogo WolfSheepPredation](http://upload.wikimedia.org/wikipedia/commons/thumb/4/4e/NetLogo_604-WolfSheepPredation.jpg/350px-NetLogo_604-WolfSheepPredation.jpg)
Ein einfaches Multiagentenmodell in NetLogo ist das Wolf-Schaf-Modell, das im Screenshot dargestellt ist. Es modelliert das Populationswachstum eines Raubtier-Beute-Systems und existiert in zwei Varianten:
In der ersten Variante wandern Wölfe und Schafe zufällig durch die Landschaft, während die Wölfe nach Schafen suchen, die sie jagen können. Jeder Schritt kostet die Wölfe Energie, und sie müssen Schafe fressen, um ihre Energie wieder aufzufüllen. Wenn ihnen die Energie ausgeht, sterben sie. Damit die Population weiterleben kann, existiert für jeden Wolf und jedes Schaf eine feste Wahrscheinlichkeit, sich bei jedem Zeitschritt fortzupflanzen. In dieser Variation ist Gras in „unendlicher“ Menge vorhanden, so dass Schafe immer genug zu fressen haben. Schafe verlieren keine Energie, wenn sie fressen oder sich bewegen. Diese Variation erzeugt eine interessante Populationsdynamik, ist aber letztlich instabil.
Die zweite Variante, die Version „Schaf-Wolf-Gras“, modelliert neben Wölfen und Schafen auch Gras (grün). Das Verhalten der Wölfe ist identisch mit der ersten Variante, aber diesmal müssen die Schafe Gras fressen, um ihre Energie zu erhalten – wenn ihnen die Energie ausgeht, sterben sie. Sobald das Gras gefressen wird, wächst es erst nach einer bestimmten Zeit wieder nach. Diese Variation ist komplexer als die erste, aber sie ist im Allgemeinen stabil. Die Übereinstimmung mit den klassischen Lotka Volterra Populationsschwankungen ist höher.[1]
TrafficGrid
![NetLogo TrafficGrid](http://upload.wikimedia.org/wikipedia/commons/thumb/4/41/NetLogo_604-TrafficGrid.jpg/350px-NetLogo_604-TrafficGrid.jpg)
Dies ist das rechtwinkelige Straßenverkehrsmodell einer Stadt. Mit ihm können Ampeln und globale Variablen wie die Geschwindigkeitsbegrenzung und die Anzahl der Fahrzeuge gesteuert und die Verkehrsdynamik untersucht werden.[2]
Bei jedem Schritt versuchen die Autos mit ihrer aktuellen Geschwindigkeit vorwärts zu fahren. Wenn ihre aktuelle Geschwindigkeit unter der Geschwindigkeitsbegrenzung liegt und kein Auto direkt vor ihnen steht, beschleunigen sie. Wenn sich ein langsameres Auto vor ihnen befindet, passen sie sich der Geschwindigkeit des langsameren Autos an und verzögern. Vor einer roten Ampel oder vor einem stehenden anderen Auto halten sie an.
Die Ampeln können automatisch bei jedem Zyklus wechseln.
Weblinks
- CCL Homepage
- NetLogo Homepage
- NetLogo Modell-Bibliothek
- NetLogo-Diskussionsgruppe für Benutzer gehostet von Google
- NetLogo-Diskussionsgruppe für Entwickler gehostet von Google