NetLogo ist eine Programmier- und Modellierumgebung, die von Uri Wilenski von der Northwestern University entwickelt wurde. Es wurde einerseits geschaffen, um Modellbildung zu lehren, andererseits kann es bei der Erforschung Komplexer Systeme verwendet werden. NetLogo basiert auf zwei früheren Programmiersprachen, Logo und StarLogo. Jedes dieser drei Programme ist schon extensiv zu Unterrichtszwecken genutzt worden, in Grundschulen genauso wie an Universitäten. In diesem Kurs werden wir NetLogo nutzen, um einige der wichtigsten Ideen und einige Werkzeuge zu demonstrieren, die bei der Erforschung komplexer Systeme zum Einsatz kommen. Sie werden NetLogo für die verschiedenen Hausaufgaben benutzen, um bereits programmierte Simulationen zu modifizieren und mit ihnen zu experimentieren, und, wenn Sie die Fortgeschrittenenoption für die Hausaufgaben wählen, werden Sie Ihre eigenen Simulationen bauen. Im Rest dieser Unterrichtseinheit werde ich die Grundlagen erklären, wie man NetLogo herunterlädt und benutzt. Machen Sie sich keine Sorgen, auch wenn Sie keine Programmiererfahrung haben. NetLogo ist einfach, für Anfänger gut zugänglich, aber auch für Experten nützlich. Wenn Sie schon in NetLogo programmiert haben, und damit schon vertraut sind, können Sie den Rest dieses Videos überspringen und direkt zu den Hausaufgaben für Lektion 1 gehen. Fein, lassen Sie uns anfangen. Zuerst werden wir NetLogo herunterladen. Es ist kostenlos und läuft unter Windows, Mac OS und Linux. Ich mache mal ein Browserfenster auf, und gehe auf die Downloadseite: http://ccl.northwestern.edu/netlogo Diesen Link finden Sie auch auf unserer Kurswebsite auf der Seite für die Kursmaterialien. Der Link ruft die Seite für den Download auf, dort sind auch einige Informationen zu NetLogo zu finden. Ich klicke auf "download". Das kann man einfach downloaden. Sie können Ihre persönlichen Daten eingeben, wenn Sie wollen, das ist freiwillig. Ich arbeite mit Mac OS X, also lade ich diese Version herunter. Ich speichere das jetzt auf meinem Desktop. Dann öffne ich das hier. Hier ist ein Ordner mit dem Namen NetLogo 5.0.3. Wenn Sie das später herunterladen, wenn es eine neuere Version gibt, kann die Versionsnummer höher sein. Ich ziehe das jetzt auf meinen Desktop, und lösche die beiden Installationsdateien. Jetzt habe ich diesen Ordner, und darin NetLogo 5.0.3, das sieht dann so aus, möglicherweise in einer neueren Version. Diese Datei möchte ich öffnen. Das ist die zweidimensionale Version von NetLogo. Es gibt auch eine dreidimensionale Version, NetLogo 3D, die wir uns gleich ansehen werden. Also Doppelklick fürs Öffnen, ja, ich will es öffnen. Es dauert eine Weile, bis das Programm startet, je nachdem, wie schnell Ihr Computer ist. Und hier ist es schon. Ich werde Ihnen jetzt zeigen, wie man ein bereits fertiges NetLogo Modell laufen lässt. NetLogo hat eine Bibliothek bereits bestehender Modelle. Sie können darauf zugreifen, wenn Sie über das Menü "File" gehen und dort "Models Library" wählen. Dort können Sie durch die verschiedenen Fachrichtungen und deren Modelle blättern. Ich gehe jetzt zu Biologie, und dort zum Ameisen-Modell. Es handelt sich hier um eine Kolonie von Ameisen, die nach Futter suchen. Obwohl jede Ameise einem einfachen Set von Regeln folgt, verhält sich die Kolonie als Ganzes ziemlich ausgeklügelt. Wir öffnen das Modell. Das erste, was Sie tun, wenn Sie ein neues NetLogo Modell öffnen, Sie gehen hier zum Info-Reiter. Sie sehen, dass es einen Reiter "Interface" gibt, einen Reiter "Info" und einen für "Code". Der oberste Reiter "Info" beschreibt das Modell. Er sagt uns, wie es funktioniert, wie man es benutzt, einige Dinge, die man über das Modell wissen sollte, einige Ideen, wie Sie es erweitern könnten, und so weiter. Das können Sie sich selbst ansehen. Ich gehe zurück zum Interface. Sie sehen, dass es hier zwei Knöpfe gibt, Setup und Go. Die gibt es in den meisten NetLogo Modellen. Mein Rat ist, immer erst einmal Setup anzuklicken. Das setzt die Simulation zurück. Hier ist also ein Ameisenhügel, das ist der lila Knödel mit dem roten Punkt in der Mitte, und dort leben die Ameisen. Der Regler, auf dem "Population" steht, sagt uns, dass es 125 Ameisen sind. Die anderen drei Knödel sind Futterhaufen. Der Plot zeigt an, wieviel Futter auf jedem Haufen im Lauf der Zeit ist. Die Ameisen schwärmen aus und suchen nach Futter. Ich klicke auf "Go". Dann könne Sie sehen, wie sie herumlaufen. Ich halte das Modell hier an, indem ich noch einmal auf "Go" klicke, und zeige Ihnen ein paar Einzelheiten. Die kleinen Ameisen laufen herum, sie bewegen sich zufällig, bis eine von ihnen eine Futterportion findet, ein kleines blaues Quadrat, oder einen anderen Haufen. Dann nimmt sie das Futter auf und bringt es zurück zum Nest. Aber wenn sie zum Nest zurückläuft, hinterlässt sie eine Spur eines Hormons. Dieses Hormon heißt in der richtigen Ameisenwelt Pheromon. Die anderen Ameisen können die Spur wittern. Eine Ameise hinterlässt also eine Spur, und führt damit sozusagen andere Ameisen zu der Stelle, an der sie das Futter gefunden hat. Diese Hormonspuren diffundieren mit einer bestimmten Diffusionsgeschwindigkeit, die hier auf dem Regler angezeigt ist. Die Hormone verteilen sich, ausgehend von der ursprünglichen Spur, über eine bestimmte Entfernung, und sie verfliegen mit dieser Geschwindigkeit. Wenn also die Spur verfliegt, sehen wir hier keine Spur mehr. Ich verlangsame das jetzt, dieser Regler zeigt die Geschwindigkeit an, mit der das Modell läuft, Ich klicke noch einmal auf Go. Sie sind jetzt ein bisschen langsamer. Sie können jetzt sehen, wie die Spuren verstärkt werden, wie sie verfliegen, diffundieren, aber wenn eine einzelne Ameise das Futter zufällig findet und ins Nest zurückkommt, und andere Ameisen die Spur finden, bevor sie verfliegt, dann können sie der Spur folgen. Sie sehen, wie die Futterhaufen kleiner werden. Hier ist der allerletzte Haufen. Ich beschleunige das jetzt wieder. Dann können Sie die Ameisen sehen, und ich beschleunige das noch mehr. Die Ameisen sind jetzt echt schnell. Jetzt ist das Futter weg. Die Ameisen haben nichts mehr, wonach sie suchen können, darum laufen sie einfach zufällig herum. Ich klicke auf Go, um das anzuhalten. Im Plot sehen Sie, dass die Ameisen alle Futterportionen gefunden haben. Und zwar, wenn wir uns den Zeitstempel ansehen, in etwa 900 Zeiteinheiten. Das ist das Ergebnis für diese Konfiguration der Parameter. Wir können das ändern. Was geschieht, wenn wir die Population vergrößern? Ich erhöhe sie auf den Maximalwert 200. Ich klicke wieder auf Setup und dann auf Go. Natürlich ist da eine Menge Zufälligkeit im Modell. Und dann sehen wir, ob das Verhalten sich ändert. Die Ameisen laufen zufällig herum, bis sie Futter finden, und sie folgen der Spur, wenn sie darauf stoßen. Wenn die Population größer ist, sieht das zumindest in diesem Lauf aus, als würden sie das Futter viel schneller finden. Aber da es eine Menge Zufälligkeit gibt, müssten wir diesen Lauf viele Male wiederholen, um statistisch zu sehen, ob sie das Futter wirklich im Schnitt schneller finden, wenn die Population größer ist. Einer der Stärken von NetLogo ist, dass man diese Modelle entwickeln kann, und dann mit ihnen experimentieren, indem man die verschiedenen Interfacekomponenten benutzt, um verschiedene Variablen zu definieren. Wirklich nützlich ist dieser "Help" Reiter im Menü, mit dem man verschiedene Hilfeoptionen aufrufen kann, zum Beispiel das NetLogo Benutzerhandbuch und das Wörterbuch. Wenn ich das Benutzerhandbuch anklicke, öffnet sich eine Webseite, auf der man Tutorien für das Programmieren in NetLogo findet, und viele andere Referenzen. Kommen wir noch einmal auf dieses Modell zurück. Wir haben uns das Interface angesehen, und die Info, jetzt sehen wir uns noch den Code an. Der Code ist in der NetLogo Programmiersprache geschrieben, eine eigene Sprache, die sehr leicht erlernbar ist. Wir werden in diesem Kurs ein bisschen Code lernen, natürlich nicht die komplette Sprache, denn das würde einen eigenen Kurs erfordern, aber Sie werden ein Gefühl dafür bekommen, wie man diese Modelle schreibt, wie man Fehler im Code sucht, und wie man sie laufen lässt. Falls es Sie interessiert, NetLogo basiert auf Java. Das ist also hier sozusagen unter der Motorhaube. Aber Sie müssen das nicht können, um NetLogo benutzen und programmieren zu können.