Internetseite zum Download von NetLogo:

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen und Datenstrukturen
Advertisements

... für alle, die mal Ihren IQ testen wollen!
Polynomial Root Isolation
Tipps & Tricks zu benutzerdefinierten Animationspfaden
Mathematik 9. Jahrgang: Zentrische Streckung
Vanessa, Kelly, Melisa, Joshua, Alina BK, Deutsch
WR + WS ZEIGEN Neues aus der Mathematik.
Geschichten aus der 4.Dimension
Klicke Dich mit der linken Maustaste durch das Übungsprogramm!
Polymorphie (Vielgestaltigkeit)
Kapitel 5 Stetigkeit.
Kapitel 1 Das Schubfachprinzip
So animieren Sie Kreisdiagramme mit der Eingangs-Animation „Rad“
Heute: Scherenzange zeichnen
Gymnasium Horn – Bad Meinberg
und relative Häufigkeit Bettina delert, andreas mertke
Wie macht man ein Sudoku? Transformations-Methode:
Kakuro Regeln und Strategien
DÄMONEN Dämonen existieren nicht! Sie entstehen in unserem Kopf!
Das Mayonnaiseglas und der Kaffee für alle die das Leben besser
Ich möchte gerne mehrere Bilder auf ein Folie
Willkommen bei Sycarus – dem Mathematikprogramm, das neue Wege geht.
„Was steht eigentlich hinter dem Roten Kreuz?“
Unterwegs im Internet.
Auf Wunsch einer einzelnen Dame
1.) Programmaufruf und Einloggen:
Grenzen der Regularität
Moin. Ich benutze PPT 2002 und möchte drei Bilder nacheinander 1
Zum verständlich machen, wozu die Trigger-Funktion geeignet ist,
Excel 97 Einführung - Start -.
Powerpoint 2010 Start Funker Panorama: Zuschauer auf der Elbbrücke beim Weinfest 2011 in Meißen.
Da ist was dran ! Michael war so eine Art Typ, der dich wirklich wahnsinnig machen konnte. Es war immer guter Laune und hatte immer was positives zu sagen.
Da ist was dran ! Michael war so eine Art Typ,

Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Hartmut Klauck Universität Frankfurt SS
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Geniesse das Leben, denn es ist das Einzige, das du hast !!!
Klicken Sie in der Meldungsleiste auf Bearbeitung aktivieren,
Geniesse das Leben, denn es ist das Einzige, das du hast !!!
Ziel Ergebnis Anleitung zum Erstellen einer „Anzeigetafel“
Lied von Jonny Hill.
Bereit ???? Nimm dir 10 Minuten Zeit. Ich versuche es dir zu erklären.
Wahrscheinlichkeitsrechnung
Wilhelm Söhne, Klasse 8b, Januar 2009
Das Binär-System Alles ist davon abhängig, ob Strom fließt oder nicht!
Modellbildung und Simulation
Das ABC der Statistik DIE SÄULENDIAGRAMME 1
Berechenbares Chaos - unvorhersehbare Wirklichkeit
MODAL-PARTIKELN.
Powerpoints bestellen ?? sende eine Mail an : Da ist was dran! Michael war so eine Art Typ, der Dich wirklich wahnsinnig.
ENDLICHE KÖRPER RSA – VERFAHREN.
Argumentation Autorkou materiálu a všech jeho částí, není-li uvedeno jinak, je Lucie Krejčí. Dostupné z Metodického portálu ISSN: ,
Hier eine mögliche Antwort:
Da ist was dran!.
Der Ladenhund erklärt. (KL Shop News)
Da ist was dran! „Wenn es mir besser gehen würde,
Da ist was dran! „Wenn es mir besser gehen würde,
Vom graphischen Differenzieren
Grammatikalische Begriffe im Unterricht
fragte ich den alternden Professor für griechische Kultur und Geschichte. Das übliche Gelächter folgte und Leute standen auf, um zu gehen. Papaderos.
Funktionen. Aufgabe : Eingabe zweier Zahlen ---> Minimum bestimmen Dann nochmals Eingabe zweier Zahlen ---> Minimum bestimmen.
Der Strafzettel Andi schaute kurz noch einmal auf sein Tacho, bevor er langsamer wurde: 79 innerhalb einer Ortschaft. Das vierte mal in gleicher Anzahl.
1 Prozesse im Studiengangsmanagement Kontext: Neues Abschlussziel erstellen Neues Studienfach erstellen.
Spärliche Kodierung von Videos natürlicher Szenen Vortragender: Christian Fischer.
Lineare Optimierung Nakkiye Günay, Jennifer Kalywas & Corina Unger Jetzt erkläre ich euch die einzelnen Schritte und gebe Tipps!
 Präsentation transkript:

Einführung http://ccl.northwestern.edu/netlogo Internetseite zum Download von NetLogo: http://ccl.northwestern.edu/netlogo Zur Zeit ist die Version 4.1 aktuell (Stand: 01.02.2010). Größe: ca. 65 MB Achtung: Die verschiedenen Versionen sind zum Teil untereinander nicht kompatibel.

Einführung Der Ausgabebildschirm Der Ausgabebildschirm ist in sog. Patches eingeteilt. Die Größe des Bildschirms und die der Patches kann verändert werden. Dazu geht man auf das Feld MORE, rechte Maustaste drücken und dann EDIT anklicken. Hier kann man die Größen von Screen Edge X, Screen Edge Y und Patch Size verändern.

Einführung Vielecke zeichnen to setup ca ;;Löscht den Bildschirm crt 4 ;; erzeugt 4 neue Turtles ask turtle 0[set color yellow set heading 0] ask turtle 1[set color blue set hedaing 90 ask turtle 2[set color red set heading 180] ask turtle 3[set color green set heading 270] end

Einführung Vielecke zeichnen Für den Aufruf eines Programms muss ein Button erzeugt werden. Hier soll polygon aufgerufen werden. to draw-polygon pd repeat num-sides [ fd laenge rt (360 / num-sides)] end to polygon ask turtles[draw-polygon ]

Einführung Vielecke zeichnen Mit der Erzeugung des Buttons erhält man obiges Bild. Einzustellen sind dabei 1. der Agent (Observer, Turtles, Patches), 2. der Name des Programms, der den Code beinhaltet und 3. der Text, der auf dem Button erscheinen soll.

Einführung Vielecke zeichnen Variable werden meistens über einen sog. Slider mit einem Wert belegt. Es geht dann dieses Fenster auf.

Einführung Vielecke zeichnen Hier muss jetzt der Name der Variablen eingetragen werden (hier: laenge). Zusätzlich sind noch einzutragen: 1. Minimum (hier: 0) 2. Maximum (hier:100) 3. um wieviel erhöht wird (increment) und 4. der derzeitige Wert (hier 42)- ist auto-matisch eingestellt

Einführung Epidemie – Ausbreitung einer Krankheit

Einführung Epidemie – Ausbreitung einer Krankheit to setup ca crt 100 ask turtles[ fd random 100 set color lime set heading random 360 if who = 1 [set color red] ] end ca – ist die Abkürzung für clear-all. Damit werden der Bildschirm und alle Turtles gelöscht und es werden alle Variablen auf 0 gesetzt. crt 100 – damit werden 100 Turtles erzeugt ask turtles – dieser Befehl ordnet allen Turtles die in eckigen Klammern angegebenen Befehle zu. Diese sind: 1. vorwärts um 0 bis 99 Einheiten, 2. die Farbe lime, 3. die Richtung zwischen 0 und 359 Grad, 4. eine Turtle erhält die Farbe rot (das soll die infizierte Turtle sein).

Einführung Epidemie – Ausbreitung einer Krankheit to go ask turtles[ right random 40 left random 40 forward 1] wait 0.05 end Diese Prozedur bewirkt, dass alle Turtles sich um einen Winkel zwischen 0 und 40 Grad sowohl links als auch rechts herum drehen und dann einen Schritt nach vorn machen. Danach gibt es eine kleine Verzögerung (wait).

Einführung Epidemie – Ausbreitung einer Krankheit Jetzt müssen für die beiden Prozeduren setup und go jeweils ein Button eingerichtet werden. Die Namen der beiden Prozeduren könnten auch anders sein. Beim go-Button wird das Kästchen für FOREVER angeklickt, so dass diese Prozedur wiederholt ausgeführt wird. Beim nochmaligen Drücken dieses Buttons hört der wiederholte Aufruf der Prozedur auf.

Einführung Epidemie - Ausbreitung einer Krankheit In der Setup-Prozedur erhält die Turtle mit der Nummer 1 die Farbe rot. Dies soll die infizierte Turtle sein. Wenn eine gesunde Turtle den Weg dieser roten Turtle kreuzt, soll diese angesteckt werden, d.h. diese Turtle ändert ihre Farbe in rot. to setup ca crt 100 ask turtles[ fd random 100 set color lime set heading random 360 if who = 1 [set color red] ] end In der Prozedur go wird folgende Zeile eingefügt, um dies zu realisieren. if color = red [set color-of one-of turtles-here red]

Einführung Epidemie – Ausbreitung einer Krankheit Jetzt soll in einem Diagramm die Anzahl der infizierten Turtles dargestellt werden. Dies geschieht mit: plot (count turtles with[color = red]) Hierzu muss ein Plot-Button erzeugt werden.

Einführung Epidemie – Ausbreitung einer Krankheit Hier müssen einige Dinge eingestellt, bzw. angegeben werden. 1. Der Name des Plots 2. Die Beschriftung der x-Achse mit Angabe des Mini-mums und des Maximums 3. Die Beschriftung der y-Ach-se mit Angabe des Minimums und des Maximums 4. Der Plot Pen wird mit einem Namen versehen 5. Die Stiftfarbe, der PlotMode und das Intervall können noch speziell angegeben werden.

Einführung set-plot-y-range 0 100 Epidemie – Ausbreitung einer Krankheit Die Skalierung der x- und y-Achse erfolgt nor-malerweise automatisch. Das führt zu perma-nenten Skalierungsänderungen. Darum sollte man diese in der Setup-Prozedur von Hand einstellen (zumindest die y-Skalierung). Mit Hilfe dieses Befehls wird die Skalierung der y-Achse von 0 bis 100 festgelegt set-plot-y-range 0 100

Einführung Epidemie – Ausbreitung einer Krankheit Der ganze Vorgang soll abgebrochen werden, wenn die An-zahl der infizierten Turtles gleich der Anzahl der gesamten Turtles ist (hier: 100). Mit Hilfe dieses Befehls wird gestoppt, wenn die Anzahlung der infizierten Turtles 100 erreicht hat: if (count turtles with [color = red]) = 100 [stop] Achtung: Bei Gleichheitsabfragen muss vor dem Gleich-heitszeichen und danach eine Leerstelle eingefügt werden.

Einführung Epidemie – Ausbreitung einer Krankheit In einem Ausgabefeld, dem sog. Monitor, soll die Anzahl der Aufrufe der Prozedur go gezählt werden. Diese Variable nennen wir CLOCK. Sie ist global zu definieren. Dies geschieht durch globals[CLOCK] (vor allen Prozeduren) Hier werden eingetragen: 1.Der Variablenname 2.Der Text auf dem Monitor und 3.die Anzahl der Dezimalstellen.

Einführung Epidemie – Ausbreitung einer Krankheit In der go-Prozedur muss natürlich nach jedem Aufruf der Wert der CLOCK-Variablen um 1 erhöht werden. Dies geschieht durch: set CLOCK CLOCK + 1 Zusätzlich müssen alle Variable, die nicht durch einen Slider verändert werden, ein Wert zugewiesen werden. Dies geschieht in der Setup-Prozedur mit: set CLOCK 0 to go set CLOCK CLOCK + 1 ask turtles[ right random 40 left random 40 forward 1 if color = red [set color-of random-one-of turtles-here red] ] wait 0.05 plot (count turtles with[color = red]) if (count turtles with [color = red]) = 100 [stop] end

Einführung Epidemie – Ausbreitung einer Krankheit Die Anzahl der Nichtinfizierten soll über eine Variable mit Hilfe eines Schiebers veränderbar sein. Die Variable ist POPULATION. to setup  crt POPULATION set-plot-y-range 0 POPULATION if who < INITIAL-SICK [set color red] end Damit kann auch der maximale y-Wert durch POPULATION eingestellt werden. Auch die Anzahl der Infizierten soll über ei-ne Variable mit Hilfe eines Schiebers verän-derbar sein. Die Variable ist INITIAL-SICK

Einführung Epidemie – Ausbreitung einer Krankheit

Einführung Epidemie – Ausbreitung einer Krankheit to go set CLOCK CLOCK + 1 ask turtles[ right random 40 left random 40 ifelse color = red[forward SICK-MOBILITY][forward 1]  end Wenn die Individuen krank sind, ist ihre Bewegungs-fähigkeit eingeschränkt. Dies wird durch die Variable SICK-MOBILITY ausgedrückt. Wenn das Individuum krank ist (also red), bewegt es sich nur um den Wert von SICK-MOBILITY vorwärts, andernfalls um 1 Pixel. Diese Variable wird ebenfalls über einen Schieber verändert.

Einführung Epidemie – Ausbreitung einer Krankheit to go set CLOCK CLOCK + 1 ask turtles[ right random 40 left random 40  if color = red[set color-of random-one-of turtles in-radius ANSTECKUNGS-RADIUS red] end Kranke Individuen infizieren Gesunde nur dann, wenn sie mit den Gesunden in Kontakt kommen. Die Entfernung, ab der eine Infizierung erfolgt, wird mit Hilfe der Variablen ANSTECKUNGS-RADIUS eingestellt. Dieses geschieht wiederum mit Hilfe eines Sliders.

Einführung Epidemie – Ausbreitung einer Krankheit

Einführung Game of Life Ausgedacht hat sich dieses "Spiel" der amerikanische Mathematiker Conway. Bekannt wurde das Game of Life, als es im Jahr 1970 im Wissenschaftsmagazin Scientific American (dessen deutsche Ausgabe heute Spektrum der Wissenschaft heißt) vorgestellt wurde. Die Regeln sind einfach: Gespielt wird auf einem Feld, das wie ein Schachbrett in lauter quadratische Zellen eingeteilt ist. Eine Zelle ist entweder besetzt oder unbesetzt. Eine Konfiguration von besetzten und unbesetzten Zellen kann man sich als Generation von Lebewesen vorstellen, aus der sich die nächste Generation nach folgenden Regeln entwickelt.

Einführung Game of Life Die Regeln 1. Eine leere Zelle wird in der nächsten Generation besetzt, wenn sie genau drei besetzte Nachbarzellen hat. 2. Eine besetzte Zelle bleibt auch in der nächsten Generation besetzt, wenn sie zwei oder drei besetzte Nachbarzellen hat. 3. Alle Zellen, bei denen die Voraussetzungen der Regeln 1 und 2 nicht zutreffen, sind in der nächsten Generation unbesetzt.  

Einführung Game of Life patches-own [ living? ;; zeigt an, ob eine Zelle lebt live-neighbors ;; zählt wieviele Nachbarzellen leben ] to setup-blank ask patches [ cell-death ] end to setup-random [ ifelse random-float 1.0 < initial-density [ cell-birth ] [ cell-death ] ] to cell-death set living? false set pcolor bgcolor end to cell-birth set living? true set pcolor fgcolor end

Einführung Game of Life to go if mouse-down? [ stop ] ;; wartet auf den Benutzer, um das Zeichnen anzuhalten ask patches [set live-neighbors count neighbors with [living?] ] ask patches [ ifelse live-neighbors = 3 [ cell-birth ] [ if live-neighbors != 2 [ cell-death ] ] ] end

Einführung Game of Life to add-cells if mouse-down? [ ask patch-at mouse-xcor mouse-ycor [ cell-birth ] ] end to remove-cells [ cell-death ] ]

Einführung Game of Life

Einführung Der Gleiter – Glider Game of Life

Einführung Der Gleiter – Glider Game of Life

Einführung Game of Life Stabile Populationen – Lebewesen mit 2 oder 3 Nachbarn – heißen nach Conway Stillleben (still lifes) Game of Life  

Einführung Game of Life Blinker - Lebewesen, die nach 2 Generationen wieder in der Ausgangsformation vorliegen (p2-Populationen)  

Einführung Game of Life Weitere Populationen  

Einführung Game of Life Aufgaben Suche einige Objekte, die leben, aber sich nicht bewegen. Gibt es andere sich reproduzierende Figuren außer Gleiter (Glider) und Blinker? Bilde einige Objekte, die nicht sterben. Wieviel Leben kann die Fläche aufnehmen und bewegungslos und unverändert lassen (benutze: add-cells)? Die Glider-Gun ist eine große Anhäufung von Zellen, die wiederholt aus dem Gleiter “Patronen” schießt. Finde eine solche Glider-Gun. Weitere Modelle Erfinde andere Regeln für das Spiel Game of Life und überprüfe anhand von eigenständiger Programmierung, was dabei passiert. Dokumentiere die Regeln und die Ergebnisse in deinem Heft

Einführung Game of Life Die Von-Neumann-Nachbarschaft ist eine Nachbarschaftsbeziehung in einem quadratischen Raster. Lediglich die Flächen, welche eine Kante mit der Basisfläche gemeinsam haben, gelten als Nachbarn

Einführung Game of Life Aufgaben Experimentiere mit dem Befehl neighbors4 statt neighbors. Der neighbors-Befehl überprüft die Agentenpatches von Nord, Süd, Ost, West, Nordost, Nordwest, Südost, Ssüdwest. So zählt die Abfrage count neighbors with [living?] wie viele von den 8 Patches das living? Patch mit dem Wert true haben. neighbors4 ist im Prinzip wie neighbors, aber es benutzt nur die Patches in Nord-, Süd-, Ost- und Westrichtung. Einige zellulare Automaten sind mit der 8-Zellennachbarschaft, andere mit der 4-Zellennachbarschaft programmiert.

Einführung Game of Life Gleiter Uhr Noch einige spektakuläre Populationen Gleiter Uhr

Einführung Game of Life Gleiter Kaninchen Noch einige spektakuläre Populationen Gleiter Kaninchen

Einführung Game of Life Gun Noch einige spektakuläre Populationen 8 Patches 6 Patches 6 Patches

Einführung Game of Life Gun Noch einige spektakuläre Populationen 3 Patches Gun 9 Patches 4 Patches 4 Patches

Einführung Game of Life Andere Regeln Um sich beim Vergleich unterschiedlichster Regelwerke eine umständliche Umschreibung der Regeln zu ersparen, existiert eine Kurzschreibweise für die Regeln von Game of Life: Man zählt zunächst die Anzahl von Nachbarn auf, bei der eine Zelle nicht stirbt, und später, durch einen Schrägstrich abgetrennt, die Anzahl der Nachbarn, bei der eine Zelle geboren wird. Diese werden einfach aufgezählt und als Zahl behandelt. Die klassische Conway-Welt ist in der Kurzschreibweise 23/3 – nämlich bei 2 oder 3 Nachbarzellen stirbt die Zelle nicht, bei genau 3 Nachbarzellen wird eine neue Zelle erzeugt.

Einführung Game of Life Die 35/3 Welt Realisierung in NETLOGO 35/3 bedeutet – bei 3 oder 5 Nachbarzellen stirbt die Zelle nicht, bei genau 3 Nachbarzellen wird eine neue Zelle erzeugt. Realisierung in NETLOGO ask patches [ ifelse live-neighbors = 3 [ cell-birth ] [ if live-neighbors != 5 [ cell-death ] ] ]

Einführung Die Kopierwelt Realisierung in NETLOGO 1357/1357 Todesregel: Eine Zelle mit genau 0,2,4,6 oder 8 Nachbarn stirbt Geburtsregel: 1,3,5 oder 7 Nachbarn erzeugen eine lebende Zelle. Realisierung in NETLOGO 1357/1357 to go ask patches [ set live-neighbors count neighbors with [living?] ] [ ifelse (live-neighbors = 1 or live-neighbors = 3 or live-neighbors = 5 or live-neighbors = 7) [ cell-birth ] [ cell-death ] ] end

Einführung Die Kopierwelt 1357/1357 Todesregel: Eine Zelle mit genau 0,2,4,6 oder 8 Nachbarn stirbt Geburtsregel: 1,3,5 oder 7 Nachbarn erzeugen eine lebende Zelle.

Einführung Zelluläre Automaten Definition: Nächste Nachbarn Ein Zellulärer Automat (ZA) besteht aus einem System von Gitterzellen, die verschiedene Werte als Zustand annehmen können. In diskreten Zeitschritten berechnet sich der Zustand jeder einzelnen Zelle in Abhängigkeit seines ursprünglichen Zustands und der Zustände gewisser Nachbarzellen. Nächste Nachbarn Einer der wichtigsten Begriffe ist der des nächsten Nachbarns. In der Regel werden die Gitterzellen der ZA durch ein rechteckiges Gitter realisiert.

Einführung Zelluläre Automaten Bei den ZA beschränken wir uns auf eindimensionale (lineare) und auf binäre, d.h. die nur die Zustände 0 und 1 annehmen können. Für drei Nachbarn gibt es(bei Mitzählung der betroffenen Zelle) 23 = 8 Möglichkeiten 111a 110b 101c 100d 011e 010f 001g 000h Somit könnte man prinzipiell 28 = 256 mögliche Regeln aufstellen. Nach Wolfram aber sind nur solche Regeln zugelassen, die weder links noch rechts bevorzugen, d.h. zu symmetrischen Eigenschaften führen. Damit bleiben nur noch 32 solcher Regeln übrig.

Einführung Zelluläre Automaten a b c d b e d 0 Diese können beschrieben werden durch die Zahlenreihe a b c d b e d 0 Fasst man diese Zahlen als Stellen einer Binärzahl auf, so lässt sich jede Regel durch die so gewonnene Codierung C ausdrücken: C = 128 a + 64 b +32 c + 16 d + 8 b + 4 e + 2 d

Einführung Zelluläre Automaten 0 1 0 1 1 0 1 0 = 64+16+8+2 = 90 1110 1101 1010 1001 0111 0100 0011 0000 C = 128 a + 64 b +32 c + 16 d + 8 b + 4 e + 2 d Hieraus ergibt sich die Zahlenfolge 0 1 0 1 1 0 1 0 = 64+16+8+2 = 90

Einführung Zelluläre Automaten Das NetLogo-Programm Regel 90 globals [row] patches-own [left-pcolor center-pcolor right-pcolor] to setup ca set row 40 ;;screen-edge-y set (pcolor-of patch-at 0 40) yellow end

Einführung Zelluläre Automaten Das NetLogo-Programm Regel 90 to go if (row = (-40)) [stop] ;; stop an der letzten Zeile (= row) ask patches with [pycor = row] [ do-rule ] set row (row - 1) end

Einführung Zelluläre Automaten Das NetLogo-Programm Regel 90 to do-rule set left-pcolor pcolor-of patch-at -1 0 set center-pcolor pcolor set right-pcolor pcolor-of patch-at 1 0 ifelse ((left-pcolor = yellow and center-pcolor = yellow and right-pcolor = yellow) or (left-pcolor = yellow and center-pcolor = black and right-pcolor = yellow) or (left-pcolor = black and center-pcolor = yellow and right-pcolor = black) or (left-pcolor = black and center-pcolor = black and right-pcolor = black)) [ set pcolor-of patch-at 0 -1 black ] [ set pcolor-of patch-at 0 -1 yellow ] end

Einführung Zelluläre Automaten Das NetLogo-Programm Regel 90

Einführung Zelluläre Automaten Das NetLogo-Programm Regel 250 to do-rule set left-pcolor pcolor-of patch-at -1 0 set center-pcolor pcolor set right-pcolor pcolor-of patch-at 1 0 ifelse ((left-pcolor = black and center-pcolor = yellow and right-pcolor = black) or (left-pcolor = black and center-pcolor = black and right-pcolor = black)) [ set pcolor-of patch-at 0 -1 black ] [ set pcolor-of patch-at 0 -1 yellow ] end

Einführung Zelluläre Automaten Das NetLogo-Programm Regel 250

Einführung Zelluläre Automaten Das NetLogo-Programm Regel 30 to do-rule set left-pcolor pcolor-of patch-at -1 0 set center-pcolor pcolor set right-pcolor pcolor-of patch-at 1 0 ifelse ((left-pcolor = yellow and center-pcolor = black and right-pcolor = black) or (left-pcolor = black and center-pcolor = yellow and right-pcolor = yellow) or (left-pcolor = black and center-pcolor = yellow and right-pcolor = black) or (left-pcolor = black and center-pcolor = black and right-pcolor = yellow)) [ set pcolor-of patch-at 0 -1 yellow ] [ set pcolor-of patch-at 0 -1 black ] end

Einführung Zelluläre Automaten Das NetLogo-Programm Regel 30

Zelluläre Automaten John von Neumann Kernthese: Computer und Menschen repräsentieren unterschiedliche Klassen von Automaten. Zelluläre Automaten sind Systeme von Zellen, die in einfacher Weise miteinander interagieren, jedoch komplexes Verhalten zeigen. 1. Das System wird von einem 1-, 2- oder 3-dimensionalen Netzwerk aus Zellen geformt, die mit ihren Nachbarn interagieren. 2. Jede Zelle kann eine von m möglichen Zuständen annehmen. 3. Das System folgt einer konkreten Zeitdynamik, bei denen die Zellen beim Übergang zu neuen Zuständen die Zustände der jeweiligen Nachbarzellen berücksichtigen.

Zelluläre Automaten Totalistische eindimensionale zelluläre Automaten Stephen Wolfram Zelluläre Automaten Totalistische eindimensionale zelluläre Automaten Totalistische zelluläre Automaten sind zellulare Automaten, bei denen die Regel abhängt von der durchschnittlichen Farbe der Nachbarzellen, also die Farbe, die sich ergibt, wenn man die drei Farben der drei Zellen miteinander mischt. Bei den Farben schwarz, grau und weiß bzw. den Werten 2,1 und 0 gibt es 7 mögliche Mischfarbtöne, denn aus 3 Summanden mit möglichen Werten 2,1,0 können sich folgende mögliche Summen ergeben: 6, 5, 4, 3, 2, 1, 0 - also 7 mögliche Mischungen. Damit gibt es 37 = 2187 mögliche Regeln.

Zelluläre Automaten Totalistische eindimensionale zelluläre Automaten Stephen Wolfram Zelluläre Automaten Totalistische eindimensionale zelluläre Automaten

Zelluläre Automaten Totalistische eindimensionale zelluläre Automaten Stephen Wolfram Zelluläre Automaten Totalistische eindimensionale zelluläre Automaten Da es sich um drei verschiedene Farben handelt, kann man die verschiedenen Regeln im Dreiersystem katalogisieren. 729 243 81 27 9 3 1 Damit ergibt sich für die Regel folgende Zahl im Zehnersystem: 1*729+0*243+0*81+1*27+2*9+1*3+0*1 = 777

Zelluläre Automaten Totalistische eindimensionale zelluläre Automaten Stephen Wolfram Zelluläre Automaten Totalistische eindimensionale zelluläre Automaten Code 1074

Zelluläre Automaten Totalistische eindimensionale zelluläre Automaten Stephen Wolfram Zelluläre Automaten Totalistische eindimensionale zelluläre Automaten 162 9 6 Code 177

Zelluläre Automaten Totalistische eindimensionale zelluläre Automaten Stephen Wolfram Zelluläre Automaten Totalistische eindimensionale zelluläre Automaten 729 162 18 3 Code 912

Zelluläre Automaten Totalistische eindimensionale zelluläre Automaten Stephen Wolfram Zelluläre Automaten Totalistische eindimensionale zelluläre Automaten 1458 486 81 9 6 Code 2040

Zelluläre Automaten Bewertung – was können ZA? Stephen Wolfram Zelluläre Automaten Bewertung – was können ZA? Zellulare Automaten sind strukturell einfach aufgebaut, haben eine „exakte“ Dynamik und zeigen trotzdem ein komplexes dynamisches Verhalten. Breite Anwendung finden zellulare Automaten in der Physik, der Biologie und der Chemie. In den Ingenieurwissenschaften sind Anwendungsbereiche im Verkehrswesen, in der Umweltsystemmodellierung und dem Maschinen- und Gerätebau zu finden. Zellulare Automaten werden als Instrumente zur Modellbildung in weiteren Bereichen des Ingenieurwesens Einzug halten. Zellulare Automaten ergänzen die klassischen numerischen Verfahren.

Zelluläre Automaten Komplexe Beispiele – Ausbreitung einer Schallwelle Stephen Wolfram Zelluläre Automaten Komplexe Beispiele – Ausbreitung einer Schallwelle

Zelluläre Automaten Komplexe Beispiele – Stephen Wolfram Zelluläre Automaten Komplexe Beispiele – Diffuse Ausbreitung von Schadstoffen Soll die Ausbreitung von Schadstoffen in einem Gas beobachtet werden, müssen dem Gas im Bereich einer Schadstoffquelle Partikel zugeführt werden. Um diese Partikel auf dem Gitter verfolgen zu können, werden sie markiert, indem man die Zustandsmenge um die Eigenschaft "Schadstoff" erweitert.

Zelluläre Automaten Komplexe Beispiele – ökologisches Modell einer Stephen Wolfram Zelluläre Automaten Komplexe Beispiele – ökologisches Modell einer Seegraswiese

Zelluläre Automaten Komplexe Beispiele – ökologisches Modell einer Stephen Wolfram Zelluläre Automaten Komplexe Beispiele – ökologisches Modell einer Seegraswiese Seegras - Zostera noltii Wachstum abhängig von: 1.Wassertrübung (geringere Photosynthese) 2.Bewuchs von Mikroalgen (verhindern Photosynthese) 3.Fressfeinden 4.Wassertemperatur Vorkommen abhängig von: 1.Niedrigwasserlinie (verträgt keinen Frost) 2.Wassertrübung (bei klarem Wasser bis 9,5 m Tiefe) Fortpflanzung durch hydrophile (= wasserliebende) Bestäubung Wurzelstöcke

Zelluläre Automaten Komplexe Beispiele – ökologisches Modell einer Stephen Wolfram Zelluläre Automaten Komplexe Beispiele – ökologisches Modell einer Seegraswiese Wattschnecke - Hydrobia ulvae Vermehrung abhängig von: 1.Nahrungsangebot ( frisst Mikroalgen, auch epiphytischen Bewuchs von Seegras) 2.Konzentration von TBT (Tributylzinn)aus Schiffsanstrichen hemmt Fortpflanzung, Zwitterbildung 3.Wassertemperatur 4.Fressfeinden Verbreitung: 1.kriechen <2cm/Minute kann sich mit einem selbstgebildeten Schleim an die Wasseroberfläche haften und so große Distanzen überwinden, also strömungsabhängig 2.Bei starker Strömung weggespült

Zelluläre Automaten Komplexe Beispiele – ökologisches Modell einer Stephen Wolfram Zelluläre Automaten Komplexe Beispiele – ökologisches Modell einer Seegraswiese Kieselalge Vermehrung abhängig von: 1.Wassertrübung (betreiben Photosynthese) 2.CO2 Gehalt 3.Nährstoffkonzentration (Phosphat und Stickstoff in Form von Nitraten) 4.Fressfeinden 5.Wassertemperatur Verbreitung durch : 1.Strömung

Simulationen Kaninchen - Gras Dieses Modell stellt ein einfaches ökologisches System von Kaninchen und Gras dar. Die Kaninchen laufen nach dem Zufallsprinzip herum und das Gras wächst ebenfalls nach zufälligen Bedingungen. Kommt ein Kaninchen auf ein Gras-Patch, frisst es das Gras und seine innere Energie wird größer. Wenn das Kaninchen dann genug Energie aufgenommen hat, vermehrt es sich. Wenn es dagegen nicht mehr genug Energie hat, stirbt es.

Simulationen Kaninchen - Gras crt 1 Das graphische Symbol der Turtle ist ein einfaches Dreieck (die eingestellte Farbe ist grau). Einfache Änderungen: Um Größe und Farbe zu ändern, muss folgender Befehl eingegeben werden: crt 1 ask turtles[ set size 10 set color lime]

Simulationen Kaninchen - Gras Für die Simulation Kaninchen – Gras wäre es sinnvoll als Turtle ein anderes Symbol zu verwenden, z.B. ein Kaninchen. Hier gibt es die Möglich-keit, den Shapes-Editor zu benutzen. In einer Datei sind einige vorgefertigte Graphiken gespeichert. Diese können aufgerufen werden.

Simulationen Kaninchen - Gras crt 1 Im Shapes Editor werden verschiedene Formen angeboten. Wichtig ist, dass der Name bei der Wahl angeben wird. crt 1 ask turtles[ set shape “wolf" set size 10 set color 26]

Simulationen Kaninchen - Gras crt 1 ask turtles[ set shape “wolf" set size 10 set color 26] Damit sind aber noch nicht alle Mög-lichkeiten ausgeschöpft, um vorgefer-tigte Figuren in das Programm einzu-binden. Im Shapes-Editor gibt es den Button, der zu einer sog. Shapes Library führt. Hier kann man aus einer Vielzahl von weiteren Shapes auswäh-len. Diese werden dann in den Shapes-Editor importiert.

Simulationen Kaninchen - Gras Mit dem Button Import from Library geht es vom Shapes Editor in die Library. Dann wählt man das gewünschte Shapes. Zurück über den Import Button. Dann kann die Figur wie gehabt aufgeru-fen werden.

Simulationen Kaninchen - Gras crt 1 ask turtles[ set shape “rabbit" set size 10 set color 26]

Simulationen Kaninchen - Gras Projekt mit dem DiffKurs 10 Schuljahr 2009/2010 (siehe auch Folie 73) to setup (1) ca (2) crt number (3) set anzahl number (4) set anzahlGrass 0 (5) ask turtles[set shape "rabbit"] (6) ask turtles[set size 2] (7) ask turtles[fd random-int-or-float 50] (8) ask turtles[set energy random-int-or-float 10] (9) ask patches[if (random-int-or-float 100) < 25 [set pcolor green]] end

Simulationen Kaninchen - Gras Projekt mit dem DiffKurs 10 Schuljahr 2009/2010 (siehe auch Folie 73) Erläuterung des Setup-Programms (1)Löschen des Bildschirms (2)Mit Hilfe eines Sliders wird die Anzahl der Kaninchen eingestellt. (3)Um die Anzahl der Kaninchen auszugeben, wird die mit Hilfe des Sliders eingestellte Kaninchenzahl in der Variablen anzahl abgelegt. (3)Um die Anzahl der grünen Patches auszugeben, wird eine Variable (hier: anzahlGrass) mit dem Wert 0 belegt. (5)Die Darstellung der Turtle wird geändert. Achtung: Über den Shape-Editor muss dazu das Shape-Element rabbit aus der Shape-Library importiert werden. (6)Die Größe der Kaninchen wird verändert. (7)Die Kaninchen bewegen sich um einen zufällig Wert nach vorn. (8)Allen Kaninchen besitzen die Variable energy. Jedem Kaninchen wird über diese Variable ein zufälliger Wert zwischen 0 und 10 zugewiesen. (9)

Simulationen Kaninchen - Gras turtles-own [energy] ;; jede Turtle besitzt die Eigenschaft energy breed [rabbits] ;;es werden Turtles mit dem Namen rabbits vereinbart to setup ca set-default-shape rabbits "rabbit-shape" ask rabbits[set size 3] ;;hiermit wird die Größe verändert create-rabbits number ;;Slider für die Variable number ask patches [if (random-int-or-float 100) < 25 [set pcolor green]] ask rabbits [turtle-setup] end

Simulationen Kaninchen - Gras to turtle-setup setxy random-int-or-float world-width random-int-or-float world-height set color white set energy random-int-or-float 10 ;; jede Turtle (hier die mit dem Namen rabbits) erhält einen best. Energiebetrag end to go ask rabbits [move] to move bewegen

Simulationen Kaninchen - Gras to bewegen rt random-int-or-float 50 lt random-int-or-float 50 fd 1 set energy energy - 0.25 ;; eine Vorwärtsbewegung kostet Energie (-0.25) end

Simulationen Kaninchen - Gras to move bewegen eat-grass reproduce death end to eat-grass ;;das Gras-Patch wird schwarz und die Energie nimmt um eine Einheit zu if pcolor = green [stamp black set energy energy + 1] end to reproduce if energy > hatch-threshold ;; Variable über einen Slider [set energy energy / 2 hatch 1 [set color white]] end to death if energy < 0 [die] end

Simulationen Kaninchen - Gras Jetzt muss noch das Gras wachsen to grow-grass create-custom-grass_growers grass-rate [set color black setxy random-int-or-float screen-size-x random-int-or-float screen-size-y stamp green die] end Und in den vorherigen Deklarationen bzw. Prozeduren muss folgendes eingefügt werden to go ask rabbits [move] grow-grass end turtles-own [energy] breeds [rabbits grass_growers]

Simulationen Kaninchen - Gras Der Graph zeigt die Anzahl der Kaninchen und die Anzahl der Gras-Patches to graph-it ;zeigt den Anstieg von Gras(skaliert) und Kaninchen set-current-plot “Kaninchen und Gras" set-current-plot-pen "grass" plot (count patches with [pcolor = green]) / 5 set-current-plot-pen "rabbit" plot count rabbits end Zusätzlich wird die mit Hilfe eines Monitors die aktuelle Anzahl der Kaninchen angezeigt. to-report total-rabbit report count rabbits end

Simulationen Kaninchen - Gras

Simulationen Kaninchen - Gras Füge einen Monitor hinzu, der die Anzahl der aktuellen Gras-Patches anzeigt. (Ausgangswerte: Anzahl der Kaninchen: 160, Gras-Rate: 30, Nachkommen: 8) Lass alle Parameter konstant, ändere nur die grass-grow-Rate. Wie sieht dann ein stabiles System aus? Würdest du jetzt mehr Gras-Patches erwarten? Oder mehr Kaninchen? Ändere nur die Geburtenrate (hatch-treshold). Wie ändert sich dabei das stabile System aus Kaninchen und Gras? In dieser Simulationsversion hat jedes Kaninchen dieselbe Geburtenrate. Was würde passieren, wenn jedes Kaninchen eine unterschiedliche Geburtenrate hätte? Ändere das in deinem Programm und dokumentiere dies mitsamt dem Ergebnis. Wie ändert sich der Verlauf, wenn die Geburtenrate von Eltern und Kindern unterschiedlich wären? Ändere das in deinem Programm und dokumentiere dies mitsamt dem Ergebnis.

Simulationen Lottka-Volterra

Simulationen Wolf - Schafe globals [ ticks ] breeds [ sheep wolves ] turtles-own [ energy ] sheep-own [ grabbed? ] wolves-own [eaten?] patches-own [ countdown ] to setup ca set ticks 0 ask patches [ set pcolor green ] ask patches [ set countdown random-int-or-float grass-delay if (random-int-or-float 2) = 0 [ set pcolor brown ] ] set-default-shape sheep "sheep-shape" create-custom-sheep init-sheep [set color grey ;set color white set label-color blue set energy random-int-or-float (2 * sheep-metabolism) setxy random-int-or-float screen-size-x random-int-or-float screen-size-y set grabbed? false ]

Simulationen Wolf - Schafe ask patches [ grow-grass ] set-default-shape wolves "wolf-shape" create-custom-wolves init-wolves [ set color black set energy random-int-or-float (2 * wolf-metabolism) setxy random-int-or-float screen-size-x random-int-or-float screen-size-y set eaten? false ] ask patches [ grow-grass ] ;;display-labels do-plot end

Simulationen Wolf - Schafe to go ask patches [ grow-grass ] end if ticks >= 3000 [stop] ask sheep [ move set energy energy - 1 eat-grass reproduce-sheep death ] ask wolves [ move set energy energy - 1 catch-one-sheep reproduce-wolves death set eaten? false ] ask patches [ grow-grass ] do-plot ;;every 0.5 ;; [ display-labels ] set ticks ticks + 1 if not any? turtles [ stop ] end

Simulationen Wolf - Schafe to move ;; turtle procedure rt random-int-or-float 50 - random-int-or-float 50 fd 1 end to reproduce-sheep ;; sheep procedure if random-int-or-float 100 < sheep-reproduce set energy (energy / 2) hatch 1 [ rt random-int-or-float 360 fd 1 ] ] end to reproduce-wolves ;; wolf procedure if random-int-or-float 100 < wolf-reproduce set energy (energy / 2 ) hatch 1 [ rt random-int-or-float 360 fd 1 ] ] end to death ;; turtle procedure if energy < 0 [ die ] end

Simulationen Wolf - Schafe

Simulationen Wolf - Schafe Schafe fressen Gras – Einfügen der Prozedur eat-grass to eat-grass ;; Schaf-Prozedur ;; Schafe fressen Gras, das Patch wird braun if pcolor = green [ set pcolor brown set energy energy + sheep-metabolism ;; das Schaf erhält Energie durch das Fressen von Gras – dargestellt durch die Variable sheep-metabolism (=Schafstoffwechsel) ] end

Simulationen Wolf - Schafe Wölfe fressen Schafe to catch-one-sheep locals [prey] set prey random-one-of sheep-here with [not grabbed?] if (prey != nobody) [ set grabbed?-of prey true ask prey [ die ] set energy energy + wolf-metabolism ] end

Simulationen Wolf - Schafe Das Gras wächst to grow-grass ;; countdown on brown patches, if reach 0, grow some grass if pcolor = brown [ ifelse countdown <= 0 [ set pcolor green set countdown grass-delay ] [ set countdown (countdown - 1) ] ] end

Simulationen Wolf - Schafe Die Plot-Anzeige to do-plot set-current-plot "populations" set-current-plot-pen "sheep" plot count sheep set-current-plot-pen "wolves" plot count wolves set-current-plot-pen "grass / 4" plot count patches with [ pcolor = green ] / 4 ;; divide by four to keep it within similar ;; range as wolf and sheep populations end

Simulationen Wolf - Schafe Der Name des Plots ist der, der mit Hilfe des Befehls set-current-plot festgelegt wurde. Dann werden die einzelnen Graphen fest-gelegt. Dies geschieht mit Hilfe von set-current-plot-pen. Im Plot-Feld wird mit Hilfe von Create der entsprechende Namen einge-tragen. In einen Plot kann man mehrere Graphen zeichnen las-sen. Dazu müssen die Plot Pens definiert und entsprechend mit Create eingetragen werden.

Simulationen Wolf - Schafe Die Plot-Anzeige grass_delay 46 init_sheep 106 init_wolves 25 sheep_metabolismus 20 wolf_metabolismus 12 sheep_reproduce 6 wolf_reproduce 3

Simulationen Wolf - Schafe grass_delay 46 init_sheep 106 init_wolves 25 sheep_metabolismus 20 wolf_metabolismus 12 sheep_reproduce 6 wolf_reproduce 3

Simulationen Einfaches Ameisen-Modell Termiten.nlogo

Simulationen Einfaches Ameisen-Modell

Simulationen Verkehrsmodell

Simulationen Verkehrsmodell

Simulationen Verkehrsmodell Die Voraussetzungen für das Modell Die Autos fahren mit einer Geschwindigkeit zwischen 0 und V. Ein Auto wird langsamer, wenn es dem voranfahrenden Auto zu nahe kommt. Ein Auto beschleunigt, wenn das voranfahrende Auto weit genug entfernt ist.

Simulationen Verkehrsmodell Die Voraussetzungen für das Modell – im Einzelnen Bei diesem Modell gibt es jeweils nur eine Spur in Hin- und Rückrichtung. Die Autos fahren auf der Autobahn hintereinander, aber sie haben unterschiedliche Geschwindigkeit. Die Zeit-Einheit: Es gibt eine Basis-Zeiteinheit delta_t (hier: delta_t = 0.01 Sekunden). Die Geschwindigkeit ist definiert als Quotient aus zurückgelegtem Weg in einer Sekunde. Die Autos bewegen sich weiter um die Strecke fd speed*delta_t. Einstellen der Geschwindigkeit: Der Fahrer stellt seine Geschwindigkeit in jedem adjust_interval auf einen Durchschnitt ein. Der Parameter adjust_interval kann dazu benutzt werden, um eine Reaktionszeit des Fahrers zu simulieren (größere Werte von adjust_interval bedeutet langsamere Reaktion).

Simulationen Verkehrsmodell Die Voraussetzungen für das Modell – im Einzelnen Die Einstellung wird vorgenommen als: speed  minimum of (speed + front_distance) / 2 and max_speed Dabei ist front_distance die Entfernung zum vorderen Auto. Wenn speed>front_distance ist, dann bewegt sich das Auto zu schnell. Es muss seine Geschwindigkeit verringern. Wenn speed<front_distance ist, dann ist genügend Abstand zum vorderen Auto und es kann seine Geschwindigkeit erhöhen. Es gibt aber eine maximal vorgeschriebene Geschwindigkeit, die nicht überschritten werden kann. Wenn das vordere Auto zu nahe ist (front_distance < 1), dann hält es an. Es kann zusätzliche ein Polizist oder Kamera eingesetzt werden, so dass alle Autos mit einem bestimmten Abstand (2 * speed) zur Polizei langsamer werden und das bis zur offiziellen Geschwindigkeitsbegrenzung

Simulationen Verkehrsmodell globals [delta_t with_police? with_leader? num_count sum_speed start_averaging? ] turtles-own [speed front_distance next_car] to setup-cars locals [temp] set shape "car" set temp world-width / number ifelse who < number [ setxy (temp * who) -5 set heading 90 set next_car who + 1 if (who = number - 1) [set next_car 0] ] [ setxy (temp * (who - number)) 5 set heading -90 set next_car who - 1 if (who = number) [set next_car 2 * who - 1] set speed official_limit * (random 1.0) end to setup ca crt 2 * number ask turtles [setup-cars] set delta_t 0.01 set with_police? false set with_leader? false set num_count 0 set sum_speed 0 set start_averaging? false end

Simulationen Verkehrsmodell to go ask turtles [adjust_speed] to move ask turtles [move] end to move fd speed * delta_t end

Simulationen Verkehrsmodell to adjust_speed to go ask turtles [adjust_speed] ask turtles [move] end to adjust_speed set front_distance distance turtle next_car if (random adjust_interval) = 0 [ set speed (speed + front_distance) / 2 if speed > max_speed [set speed max_speed] ] if (front_distance < 2) [set speed 0] if with_police? and (speed > official_limit) and ((abs xcor) < (2 * speed)) [set speed official_limit / 2] end

Simulationen Verkehrsmodell to-report current_speed report (sum values-from turtles [speed]) / (2 * number) end to-report num_stop_car report (count turtles with [speed = 0]) end

Simulationen Verkehrsmodell

Ameisen und die Erklärung der Welt Simulationen Die Langton-Ameise Ameisen und die Erklärung der Welt Und wenn ich alle Weisheit der Welt hätte, so wär’s mir nichts nütze; denn ich könnte noch nicht einmal weissagen, ob eine winzig kleine Ameise auf den Pfad der Tugend gerät. Von Ian Stewart Aus Spektrum der Wissenschaft August 1995, Seite 10, Beitragstyp Mathematische Unterhaltungen Auf den unvorbereiteten Besucher hätte der Weltkongress des Plenums Umfeld Mathematik und Philosophie (PLUMP) wahrscheinlich wie absurdes Theater gewirkt. Eine elegant gekleidete Mittsechzigerin diskutierte heftig gestikulierend mit einem blassen, pickeligen Typ mit Springerstiefeln und langen, fettigen Haaren. Eine magere Frau mit Punk-Frisur trug ein T-Shirt mit der Aufschrift "Betrachte diesen Raum". Eine übererregte Fuzzologin erläuterte geschäftig ihre flexible Erweiterung der konventionellen Logik; aber ihre Gesprächspartner, drei skeptische Konstruktivisten, hätten die Theorie gerne etwas starrer gehabt. In der Ecke hämmerte ein sehr entrückt wirkender Mensch wie besessen auf die Tasten seines Laptops ein. Mit einem Blick sah ich: Hier war ich richtig, und die Reise hatte sich gelohnt. Ich sprach die Punkerin mit dem T-Shirt an: "Ich betrachte ihn." Ian Stewart

Simulationen Die Langton-Ameise "Hä?" ",Diesen Raum'. Ich sehe nichts Unerwartetes." Luise, so hieß sie, argwöhnte eine unfeine Anspielung und sah mich misstrauisch an. "Es geht um die Formel - wenn sie überhaupt je gefunden wird." "Die Formel?" "Ich glaube nicht mehr an einen schnellen Durchbruch, seit diese Schwachköpfe im amerikanischen Kongreß den Supraleitenden Super-Collider gestoppt haben." "Ach, die Weltformel", sagte ich. "Die Theorien über Alles." Sie war offensichtlich Fundamentalistin; das hätte ich ahnen können. "Spotten Sie nur", sagte sie. Ich schüttelte heftig den Kopf, und sie fuhr fort: "Ich glaube einfach, daß alles im Universum von einem fundamentalen Gesetz beherrscht wird und daß das wichtigste Ziel der Wissenschaft sein sollte, dieses Gesetz zu finden." "Ja, aber wenn es überhaupt existiert, warum sollte es dann ein mathematisches Gesetz sein?" fragte der pickelige Knabe. "Schon das Wort Gesetz impliziert eine Präzision, die nur in der Mathematik zu finden ist", entgegnete Luise. "Mathematik ist ja gerade das Studium von logischen Folgerungen aus einfachen, präzisen Gesetzen." "Was genau verstehen Sie unter ,logisch'?" wollte einer der Konstruktivisten wissen. "Was meinen Sie mit ,präzise'?" fragte die Fuzzologin. Luise ließ sich nicht aus dem Konzept bringen. "Wenn wir erst einmal die Gesetze der Natur gefunden haben, können wir alles andere daraus herleiten. Statt eines unordentlichen Flickenteppichs aus näherungsweise gültigen Theorien wären wir schlicht im Besitz der Wahrheit."

Simulationen Die Langton-Ameise "Ich glaube, Sie diskutieren auf einer falschen Ebene", warf ich ein. "Erst vor 100 Jahren haben die Mathematiker bewiesen, dass im Prinzip die gesamte Zukunft des Universums sich aus seinem gegenwärtigen Zustand ergibt. Daraus leitete sich das Bild vom Universum als Uhrwerk her und die Vorstellung, einfache Gesetze müssten zwangsläufig einfaches Verhalten erzeugen. Aber genau das stimmt ja nicht: Einfache Gesetze können extrem komplexes Verhalten zur Folge haben, und manche deterministischen Systeme sind von zufallsbestimmten nicht zu unterscheiden." "Ach ja, das deterministische Chaos", sagte einer der Konstruktivisten, leicht angewidert. Zu Luise gewandt, fuhr ich fort: "Nehmen wir meinetwegen an, Sie hätten recht. Dann gehorcht das Universum tatsächlich einer kleinen Anzahl einfacher fundamentaler Gesetze, und wir finden diese. Verstehen wir dann die Welt besser, in der wir leben?" "Aber selbstverständlich", antwortete Luise. "Erstens haben wir dann ein solides philosophisches Fundament für die Betrachtung der Natur. Zweitens ist alles, was in unserer alltäglichen Welt geschieht, Folge der fundamentalen Gesetze. Also erklären die Gesetze alles." "Im Prinzip vielleicht", wandte ich ein, "aber praktisch nicht. Zum Beispiel jagen Katzen gern Mäuse. Können Sie eine Kette überzeugender logischer Schlüsse angeben, die von Ihren fundamentalen Gesetzen ausgeht und bei der Aussage endet, daß Katzen gern Mäuse jagen? Selbst wenn es eine solche Schlusskette gäbe, wären die zugehörigen Berechnungen extrem lang und vollkommen unbegreifbar."

Simulationen Die Langton-Ameise Luise mußte widerstrebend zustimmen. Ich fuhr fort: "Jede Theorie über Alles leidet unter einem falschen Konzept von ,Erklärung'. Eine Erklärung ist ein expliziter Beweis, der von einer Voraussetzung zu einer Schlussfolgerung führt, und nicht nur eine vage Aussage mit dem Inhalt, daß das Ergebnis irgendwie durch die Voraussetzungen erzwungen wird." Langtons Ameise Der Mensch mit dem Laptop erwachte aus seiner Trance. "Darf ich Ihnen allen etwas zeigen? Schauen Sie mal auf den Bildschirm." Ein feines Quadratgitter erschien. "Sehen Sie die Ameise?" "Wo?" "Im Mittelpunkt, nur unsichtbar. Aber jetzt werde ich sie in Bewegung setzen." Auf einen Tastendruck raste irgendetwas wie verrückt über das Gitter und hinterließ eine chaotische Spur von weiß oder schwarz gefärbten Quadraten. Nach etwa einer Minute begann es plötzlich, einen seltsam gemusterten, diagonal verlaufenden Streifen zu erzeugen, und verschwand in einer Ecke des Bildschirms (Bild 1). "Faszinierend", sagte Luise. "Übrigens, wie ich bereits erwähnt habe, ist die Weltformel..." "Wenn Sie mich erklären lassen, was Sie gerade gesehen haben", unterbrach der vergeistigte Wissenschaftler, "werden Sie mühelos erkennen, dass es von allerhöchster Relevanz für das Diskussionsthema ist." "Das sagen Sie immer, selbst wenn es um eine Gewinnstrategie für Schiffeversenken geht."

Simulationen Die Langton-Ameise "Gedulden Sie sich nur einen Moment. Ich habe Ihnen soeben Langtons Ameise vorgeführt. Erfinder dieses erstaunlich einfachen zellulären Automaten ist Chris Langton vom Santa-Fe-Institut." "Die Komplexitätsmafia? Aus der Wüste von New Mexico?" "Genau. Diese Leute untersuchen globale Gesetzmäßigkeiten in komplexen Systemen. Langtons Ameise ist ein einfaches Beispiel. Anfangs sitzt sie im mittleren Quadrat und schaut in eine bestimmte Richtung - sagen wir nach Osten. Sie bewegt sich Schritt für Schritt über die Ebene, die aus lauter schwarz oder weiß gefärbten Quadraten besteht. Die Farbe des Feldes, auf dem sie gerade sitzt, bestimmt ihre nächste Aktion. Ist es schwarz, färbt die Ameise es weiß und dreht sich dann um 90 Grad nach links. Ein weißes Feld färbt sie schwarz und dreht sich um 90 Grad nach rechts. Anschließend krabbelt sie ein Feld weiter in ihrer neuen Richtung. Diese einfachen Regeln wendet sie auf ihrem neuen Feld wieder an, und so weiter." "Klingt nach Turing-Maschine", sagte ein Konstruktivist. "Ja, aber eine in zwei Raumdimensionen. Es handelt sich um eine spezielle Art Turmiten" (Spektrum der Wissenschaft, November 1989, Seite 8). Nathan, der Laptop-Besitzer, fuhr fort: "Wenn die Ameise auf einem vollständig weißen Bildschirm startet, bildet sie zunächst ein schwarzes 2×2-Quadrat; ihr weiterer Weg ist nicht mehr einfach zu beschreiben" (Bild 2). "Ein überraschend komplexes Verhalten für einen derart einfachen Satz von Regeln", bemerkte ich.

Simulationen Die Langton-Ameise "Sehen Sie, Luise, die Ameisen-Ebene ist ein eigenes kleines Universum. Und in dem sind Langtons Regeln die Theorie über Alles", rief Nathan begeistert. "Schauen Sie sich das an. So etwa bis zum 500. Schritt kehrt das Tier immer wieder zum Mittelpunkt zurück und hinterlässt eine Folge von nahezu symmetrischen Mustern. Während der nächsten ungefähr 10000 Schritte geht es sehr chaotisch zu. Dann plötzlich scheint es, als wüsste die Ameise endlich, was sie will: Sie baut eine Struktur auf, die ihr Entdecker James Propp vom Massachusetts Institute of Technology in Cambridge eine Autobahn nennt. Immer wieder durchläuft die Ameise eine Folge von genau 104 Schritten, jedesmal um zwei Felder in Richtung Nordwesten versetzt" (Bild 1). "Faszinierend", bemerkte ich. Luises Gesichtsausdruck signalisierte Missbilligung. "Na und?" schien sie zu sagen. "Das wirklich Faszinierende ist", führte Nathan weiter aus, "dass die Ameise stets in die Phase des Autobahnbaus zu geraten scheint, sogar dann, wenn man anfangs schwarze Quadrate über das Gitternetz verstreut." "Das glaube ich nicht", bemerkte einer der Konstruktivisten. "Wenn ich sie unmittelbar neben einem unendlich langen Gitterzaun aus schwarzen Quadraten mit einer geeigneten Gitterweite starten lasse..." "Verzeihung. Endlich viele schwarze Quadrate in beliebiger Anordnung. Nur - bislang konnte niemand beweisen, daß die Ameise stets eine Autobahn baut." "Gibt es denn überhaupt bewiesene Aussagen für den Fall endlich vieler schwarzer Quadrate?" "Ja", antwortete Nathan. "E. G. D. Cohen und X. P. Kong von der Rockefeller-Universität in New York haben gezeigt, daß der Weg der Ameise zwangsläufig unbeschränkt ist. Sie überschreitet die Grenzen jedes endlichen Gebietes" (Kasten Seite 12).

Simulationen Die Langton-Ameise "Was hat das bloß mit der Weltformel zu tun?" fragte Luise gereizt. "Wir kennen die Theorie über Alles für Langtons Ameise", versuchte Nathan zu erklären. "Die Regeln. Wir haben sie ja selbst festgelegt. Trotzdem kann niemand eine einfache kleine Frage beantworten: Baut die Ameise, ausgehend von einer beliebigen Umwelt mit endlich vielen schwarzen Zellen, stets eine Autobahn?" "Also mangelt es in diesem Punkt der Theorie über Alles an Erklärungskraft?" fragte ich. "Genau. Sie sagt alles voraus, aber erklärt nichts. Der Satz von Cohen und Kong hingegen erklärt, warum jede Ameisenspur unbeschränkt ist." "Ich sehe einige Ungereimtheiten in Ihrer Schlussfolgerung", bemerkte Luise. "Erstens: Woher hat der Satz von Cohen und Kong seine Erklärungskraft, wenn nicht von der Theorie über Alles, aus der er folgt? Zweitens beruht Ihr Argument auf bloßer Unkenntnis. Vielleicht bringt morgen jemand einen Beweis dafür, daß Ameisen immer Autobahnen bauen - und dann haben Sie Pech gehabt." "Das kann sein", entgegnete Nathan. "Aber ich muß Ihrem ersten Punkt widersprechen. Die Erklärung für die Unbeschränktheit der Ameisen-Bahnen kommt nicht aus der Theorie über Alles, sondern daraus, dass man die Folgerung aus dieser Theorie, nämlich den Satz von Cohen und Kong, explizit macht. Sie können Ihre Weltformel mitsamt eindeutiger Abhängigkeit von den Anfangsbedingungen herunterbeten, bis Sie schwarz werden. Davon wissen Sie immer noch nicht, ob es eine beschränkte Bahn gibt. Genauso hilft uns unsere erschöpfende Kenntnis der Theorie nicht zu entscheiden, ob Autobahnbauen das Schicksal jeder Ameise ist, bis jemand es - aus der Theorie - beweist." "Oder widerlegt."

Simulationen Die Langton-Ameise "Ist das nicht ein bisschen viel Philosophie für ein einzelnes ungewöhnliches Beispiel?" warf ich ein. "Eigentlich nicht", konterte Nathan. "Langtons Ameise ist geradezu typisch für regelbasierte Systeme. Es gibt eine Vielzahl von Verallgemeinerungen, und sie bieten viele Überraschungen, aber auch Gemeinsamkeiten, was ich noch viel merkwürdiger finde. Setzen Sie spaßeshalber in Ihrem Computer eine oder mehrere Ameisen in ein ausgewähltes Umfeld und sehen Sie zu, was sie treiben. Sie können Regeln ändern und eine völlig andere Welt definieren - zum Beispiel Bienenwaben anstelle der Quadrate. Es gibt übrigens eine praktische Anwendung: In der statistischen Mechanik betrachtet man Anordnungen von Teilchen - statt der Ameisen -, die zu jedem gegebenen Zeitpunkt nur in einem von mehreren Zuständen existieren können" (vergleiche Spektrum der Wissenschaft, Oktober 1989, Seite 10). Verallgemeinerte Ameisen Nathan wusste noch mehr: "Es gibt auch außerhalb von Santa Fe Ameisenforscher: Grek Turk von der Universität Stanford in Kalifornien, Leonid A. Bunimovich vom Georgia Institute of Technology in Atlanta und Serge E. Troubetzkoy von der Universität Bielefeld, der inzwischen an der Staatsuniversität von New York in Stony Brook arbeitet. Sie untersuchen verallgemeinerte Ameisen in Ebenen, deren Felder nicht nur schwarz oder weiß sein, sondern n verschiedene Farben annehmen können. Die Farben sind mit 0, 1, 2, ... n-1 nummeriert. Wenn eine Ameise auf einem Feld steht, färbt sie es um, und zwar mit der in der Nummerierung folgenden Farbe. Ein Feld mit der Farbe k erhält also die Farbe zu k+1; aus der Farbe n-1 wird die Farbe 0.

Simulationen Die Langton-Ameise Außerdem ändert sie ihre Laufrichtung, und zwar nach einer Regel, die in einer Kette aus Nullen und Einsen festgelegt ist. Die Glieder der Kette sind ebenfalls von 0 bis n-1 nummeriert. Die bisherige Farbe des Feldes, auf dem die Ameise steht, habe die Nummer k. Dann wendet sie sich nach rechts, falls das k-te Symbol eine Eins ist, sonst nach links. Sie bewegt sich dann ein Feld weiter, und der Vorgang beginnt erneut. Langtons ursprüngliche Ameise entspricht der Regel-Kette 10." "Zehn?" "Eins - null. Von der Ameise aus gesehen, ist eine Regelkette keine Zahl. Aber Sie haben die Freiheit, sie als Zahl zu interpretieren - zweckmäßig im Binärsystem. Auf diese Weise hat jede Ameise ihrerseits eine Nummer." "Beziehungsweise ihre Regelkette." "Was ungefähr dasselbe ist. Einige Ketten ergeben eine triviale Dynamik - beispielsweise läuft eine Ameise mit der Regel 11 (oder auch 111...1) ewig auf einem 2×2-Quadrat um. Aber jede Regel, die sowohl 0 als auch 1 enthält, erzeugt eine unbeschränkte Bahn. Das folgt aus einer Variante des Beweises von Cohen und Kong." Nathan war nicht mehr zu bremsen. "Angenommen, Sie beginnen der Einfachheit halber mit einem blanken Bildschirm - alle Quadrate sind weiß. Die Ameise 100 erzeugt anfangs Muster, die etwa so aussehen wie die von Langtons Ameise - zuerst symmetrisch, dann chaotisch. Nach 150 Millionen Schritten verhält sie sich immer noch chaotisch. Wird sie je eine Autobahn bauen? Keiner weiß das.

Simulationen Die Langton-Ameise Bei Ameise 110 ist es einfach: Sie geht nach 150 Schritten zum Autobahnbau über, und für ein Stückchen neuer Fahrbahn braucht sie nur 18 Schritte statt 104 wie Langtons Ameise. Dagegen ist 1000 hoffnungslos chaotisch. Die Ameise 1101 beginnt chaotisch, fängt aber nach 250000 Schritten an, eine Autobahn zu bauen; die Zykluslänge ist 388. Ameise 1100 macht ein komplexes Muster nach dem anderen, und immer wieder ist ein bilateral symmetrisches darunter - unendlich oft" (Bild 3). "Bor äy", sagte der Pickelige. "Und was ist mit Autobahnen?" "Schlecht", erwiderte Nathan. "Die Ameise 1100 kommt nämlich immer wieder nach Hause zurück. Aber das ist eine andere Geschichte" (siehe die "Mathematischen Unterhaltungen" in der nächsten Ausgabe). Nathan erhob die Stimme und wandte sich mit großer Geste an das Volk. "Ich fordere jeden auf, all diese Verhaltensweisen auf einfache Weise zu klassifizieren oder ausgehend von der Regel-Kette das Langzeitverhalten vorherzusagen - und wenn es nur für den Fall einer anfänglich blanken Ebene ist." Luise warf ihm einen giftigen Blick zu. "Sie haben nicht bewiesen, dass niemand das kann." "Stimmt", unterbrach ich. "Aber die Chancen sind schlecht. Wenn man nur geringfügig komplexere Regeln zulässt, kommt man zum Beispiel zum ,Spiel des Lebens' von John Horton Conway. Wie Conway selbst bewiesen hat, gibt es in diesem Spiel bestimmte Konfigurationen, die universelle Turing-Maschinen bilden - programmierbare Computer" (Spektrum der Wissenschaft, Juli 1985, Seite 4).

Simulationen Die Langton-Ameise "Ach so." Auf einmal wußte einer der Konstruktivisten weiter. "Wie schon Alan Turing gezeigt hat, ist das Langzeitverhalten einer Turing-Maschine unentscheidbar. Zum Beispiel ist es unmöglich, im voraus zu bestimmen, ob ein beliebiges Programm anhält oder nicht." "Eben", führte ich den Gedanken weiter. "Im Spiel des Lebens entspricht dies der formalen Unentscheidbarkeit der Frage: ,Wird diese Konfiguration unbeschränkt wachsen?' Hier liegt also ein Fall vor, dass wir die Theorie über Alles kennen und eine einfache Frage wissen, die auf der Basis dieser Theorie nachweislich nicht beantwortet werden kann." "Genau", stimmte Nathan zu und wandte sich an Luise. "Wie kommen Sie überhaupt darauf, dass für unser Universum eine Theorie über Alles einen Erkenntnisgewinn bringen könnte?" Da fiel ihr nur noch Fundamentalistisches ein: "Das muss man einfach glauben. Immerhin ist ja nicht ausgeschlossen, dass eine Theorie über Alles eine Frage beantwortet, dir mir gerade besonders wichtig ist."

Simulationen Die Langton-Ameise Die Langton-Ameisen Langton-Ameisen sind (unsichtbare) Wesen, die sich auf einem quadratischen Gitter aus weißen oder schwarzen Feldern bewegen. Treffen sie auf ein weißes Feld, färben sie dieses schwarz. Treffen sie auf ein schwarzes Feld, färben sie es weiß. Chris Langton

Simulationen Die Langton-Ameise Bewegungsregeln: 1.Wenn die Ameise auf einem schwarzen Feld ist, dreht sie sich um 90o nach rechts und bewegt sich ein Feld vorwärts (wenn das dann betretene Feld weiß ist, wird es schwarz gefärbt; wenn es schwarz ist, wird es weiß gefärbt) 2. Wenn die Ameise auf einem weißen Feld ist, dreht sie sich um 90o nach links und bewegt sich ein Feld vorwärts (wenn das dann betretene Feld weiß ist, wird es schwarz gefärbt; wenn es schwarz ist, wird es weiß gefärbt) Chris Langton

Simulationen Die Langton-Ameise Der einfachste Fall ist die Bewegung einer Ameise in einem quadratischen Gitter mit nur weißen Feldern. Hier sind die ersten zehn Schritte einer Ameise. Chris Langton

Simulationen Die Langton-Ameise (0) Die an sich unsichtbare Ameise sitzt in einem Feld und bewegt sich zum Beispiel nach Norden.  (1) Sie findet das nächste Feld weiß vor, färbt es schwarz und dreht sich in Pfeilrichtung. Das ist die Richtung nach links entgegen dem Uhrzeigersinn. (2) Sie erreicht das nächste Feld, färbt es schwarz und dreht sich in Pfeilrichtung. (3) (4) Weiter entsteht in den nächsten beiden Schritten ein schwarzes 2x2-Quadrat. (5) Die Ameise erreicht im fünften Schritt das schwarze Feld, das sie in Schritt 1 gefärbt hatte. Sie färbt es weiß und bewegt sich jetzt aber nach rechts in Richtung des Uhrzeigersinns. Chris Langton

Simulationen Die Langton-Ameise to GoAnt ask turtles [ ifelse pcolor = black [ set pcolor white rt 90 fd 1 set ticks ticks + 1] [ if pcolor = white [ set pcolor black lt 90 fd 1 set ticks ticks + 1] ] end Chris Langton

Simulationen Die Langton-Ameise Chris Langton

Zellulare Automaten Wire World Der zellulare Automat WireWorld ist Brian Silvermann gewidmet und ist in seinem Programm PHANTOM FISH Tank von 1987. A.K. Dewdney veröffentlichte WireWorld in seiner Computer Recreations – Kolumne (Scientific American, Januar 1990). A.K.Dewdney

Zellulare Automaten Wire World A.K.Dewdney Zellen in WireWorld haben einen von 4 möglichen Zuständen: Background (Zustand 0) Elektron-Head (Zustand 1) Elektron-Tail (Zustand 2) Wire (Zustand 3)

Zellulare Automaten Wire World A.K.Dewdney Die Regeln für das Erzeugen der Zellen sind: 1.Der Hintergrund (Zustand 0)bleibt immer schwarz 2.Der Elektron-Head wechselt immer zum Elektron-Tail 3.Der Elektron-Tail wechselt immer zum Wire 4.Der Wire (Draht) wechselt zum Elektron-Head, aber nur dann, wenn ein oder zwei Nachbarn Elektron-Heads sind.

Zellulare Automaten Wire World Umsetzung der Regeln in NetLogo to go if mouse-down? [ stop ] ;; wait for user to stop drawing ask patches [ set live-neighbors count neighbors with [pcolor = 15] ] [ifelse pcolor = 1[set pcolor 1] [ifelse pcolor = 15 [set pcolor 94] [ifelse pcolor = 94 [set pcolor 47] [if ((live-neighbors = 1) or (live-neighbors = 2)) [set pcolor 15] ] end Umsetzung der Regeln in NetLogo

Zellulare Automaten Wire World to add-ElectronHead if mouse-down? [ ask patch-at mouse-xcor mouse-ycor[ set pcolor 15 ] ] end to add-ElectronTail [ ask patch-at mouse-xcor mouse-ycor [ set pcolor 94 ] ] to add-Wire [ ask patch-at mouse-xcor mouse-ycor [ set pcolor 47 ] ] to remove-cells [ ask patch-at mouse-xcor mouse-ycor [ set pcolor 1 ] ]

Zellulare Automaten Wire World patches-own [ living? ;; indicates if the cell is living live-neighbors ;; counts how many neighboring cells are alive ] to setup-blank ask patches [ set pcolor 1 ] end 2 globale Eigenschaften der Patches werden definiert – living? und live-neighbors. Beim Setup werden dann alle Patches auf Schwarz (1) gesetzt.

Zellulare Automaten Wire World Ein zyklisches NAND-Gatter in NETLOGO

Zellulare Automaten Wire World OR-Gate

Zellulare Automaten Wire World Ein AND-NOT gate berechnet die Funktion `A AND NOT B'.

Zellulare Automaten Wire World Der einfachste Weg die Schaltung zu verstehen ist, den oberen Eingang zu ignorieren. Das untere Signal kann The lower signal can simply pass through to the output; the `plus' arrangement prevents the signal from propagating back along the B input. Now suppose that the three cells forming the horizonal bar of the plus are all electron heads. With the correct timing, this will block the flow of electrons from A.

Selbstreproduzierende Automaten State Name Function 0 [Black] Background 1 [Blue] Core Fills tube of loop 2 [Red] Sheath External structure 3 [Purple] Structure of arm 4 [Green] Gene Info for turning arm 5 [Light Blue] Messenger 6 [Yellow] Messenger/Guide/Finisher 7 [White] Info for straight growth 8 [Grey] Dissolver Dissolves loop structure

Selbstreproduzierende Automaten Der einfachste Weg die Schaltung zu verstehen ist, den oberen Eingang zu ignorieren. Das untere Signal kann The lower signal can simply pass through to the output; the `plus' arrangement prevents the signal from propagating back along the B input. Now suppose that the three cells forming the horizonal bar of the plus are all electron heads. With the correct timing, this will block the flow of electrons from A.

Selbstreproduzierende Automaten Der einfachste Weg die Schaltung zu verstehen ist, den oberen Eingang zu ignorieren. Das untere Signal kann The lower signal can simply pass through to the output; the `plus' arrangement prevents the signal from propagating back along the B input. Now suppose that the three cells forming the horizonal bar of the plus are all electron heads. With the correct timing, this will block the flow of electrons from A.

Pac-Man – einfache Version

Pac-Man – einfache Version Pac-Man ist ein Arcade Game und Videospiel, das am 12. Mai 1980 von Namco in Japan als „Puck Man“ veröffentlicht wurde. Der Name leitet sich vom japanischen Onomatopoetikum paku paku für „essen“ (vergleichbar etwa mit „happa-happa“ im Deutschen) und der Puck-förmigen Gestalt der Hauptfigur her; zudem bedeutet puck auf Englisch auch „Kobold“. Es wurde vom Spieledesigner Iwatani Toru entworfen. Erst 1981 erschien das Spiel von Midway lizenziert als Pac-Man in den USA, da die Aufschrift „Puck Man“ auf dem Automaten von Pubertierenden leicht in „Fuck Man“ abgewandelt werden konnte. Spielerisch blieb es unverändert, außer dass die vier Monster im Spiel nicht mehr Akabei, Pinky, Aosuke und Guzuta hießen, sondern Blinky, Pinky, Inky und Clyde.

Pac-Man – einfache Version Die Spielfigur Pac-Man muss Punkte in einem Labyrinth fressen, während er von Gespenstern verfolgt wird. Frisst man eine „Kraftpille“, kann man für eine gewisse Zeit umgekehrt selbst nun die (nun blau eingefärbten) Gespenster ver-folgen. Manchmal erscheint auch eine Kirsche oder ein anderes Symbol im Spielfeld, das dem Spieler Extrapunkte einbringt, wenn man es frisst. Aber man sollte sich beeilen, denn wenn man es nicht frisst, verschwindet es nach kurzer Zeit wieder. Sind alle Punkte gefressen, gelangt man in den nächsten Level. Dieser unterscheidet sich vom Vorigen im Wesentlichen nur durch die höhere Spielgeschwindigkeit (in den niedrigeren Leveln auch durch ein verändertes Gegner-verhalten). Die Steuerung erfolgt per Joystick. Links und rechts am Bildschirm befindet sich ein Tunnel, durch den man gehen und so die Gegner täuschen kann. Die Monster bewegen sich nicht zufällig. Jedes hat eine bestimmte Strategie, die den Bewegungen bzw. Eingaben des Spielers folgt.

Pac-Man – einfache Version to pacman-setup set shape "gesicht" fd 3 end to aliens-setup set shape "circle" breed [ pacman ] breed [ aliens ] to setup ca create-pacman 1 ask pacman[pacman-setup] ask pacman[set color red] create-aliens 5 ask aliens[aliens-setup] end

Pac-Man – einfache Version Mit Hilfe von 4 Buttons soll die Steuerung des Pacmans erfolgen. to oben locals[tempPatch-ahead] ask pacman[fd 0.03 set heading 0 set tempPatch-ahead patch-ahead 1] if pcolor-of (tempPatch-ahead) = black [ask pacman[bk 0.03] stop] end

Pac-Man – einfache Version Das Labyrinth globals[xkoo xkom xkou xko1 xko2 ykom ykom1 ykom2 ykoo ykoo1 ykoo2 ykou ykou1 ykou2 ykol ykor xkol xkol1 xkol2 xkor xkor1 xkor2 zufallszahl] to setup ca create-pacman 1 ask pacman[pacman-setup] ask pacman[set color red] create-aliens 1 ask aliens[aliens-setup] ask aliens[set color green] set ykom 0 set ykom1 1 set ykom2 -1 set ykoo max-pycor - 3 set ykoo1 max-pycor - 4 set ykoo2 max-pycor - 5 set ykou min-pycor + 3 set ykou1 min-pycor + 4 set ykou2 min-pycor + 5 set xkom min-pxcor + 4 set xkoo min-pxcor + 4 set xkou min-pxcor + 4 set ykol max-pycor - 4 set ykor max-pycor - 4 set xkol min-pxcor + 4 set xkol1 min-pxcor + 5 set xkol2 min-pxcor + 6 set xkor max-pxcor - 4 set xkor1 max-pxcor - 5 set xkor2 max-pxcor - 6 end

Pac-Man – einfache Version Das Labyrinth to patch_faerben_oben if xkoo > max-pxcor - 4 [stop] ask (patch xkoo ykoo) [ set pcolor 28 ] ask (patch xkoo ykoo1) [set pcolor 28] ask (patch xkoo ykoo2) [set pcolor 28] set xkoo xkoo + 1 end to patch_faerben_unten if xkou > max-pxcor - 4 [stop] ask (patch xkou ykou) [ set pcolor 28 ] ask (patch xkou ykou1) [set pcolor 28] ask (patch xkou ykou2) [set pcolor 28] set xkou xkou + 1 end to patch_faerben_mitte if xkom > max-pxcor - 4 [stop] ask (patch xkom ykom) [ set pcolor 28 ] ask (patch xkom ykom1) [set pcolor 28] ask (patch xkom ykom2) [set pcolor 28] set xkom xkom + 1 end

Pac-Man – einfache Version Das Labyrinth

Pac-Man – einfache Version Das Labyrinth to patch_faerben_rechts if ykor < min-pycor + 4 [stop] ask (patch xkor ykor) [ set pcolor 28 ] ask (patch xkor1 ykor) [set pcolor 28] ask (patch xkor2 ykor) [set pcolor 28] set ykor ykor - 1 end to patch_faerben_links if ykol < min-pycor + 4 [stop] ask (patch xkol ykol) [ set pcolor 28 ] ask (patch xkol1 ykol) [set pcolor 28] ask (patch xkol2 ykol) [set pcolor 28] set ykol ykol - 1 end

Pac-Man – einfache Version to go-alien ask aliens[fd 0.04] if pcolor-of (patch-ahead 1) = black [set zufallszahl random 2 ifelse zufallszahl = 1 [ask aliens[rt 90]][ask aliens[lt 90]] ] end

Pac-Man – einfache Version to unten locals[tempPatch-ahead farbe] ask pacman[fd 0.03 set heading 180 set tempPatch-ahead patch-ahead 1] if pcolor-of (tempPatch-ahead) = black [ask pacman[bk 0.03] stop] ask pacman[ask patch-ahead 0.05 [ask aliens-here[ set farbe color]]] if (farbe = green) [ask aliens [die]] end Trifft der Pacman auf einen Alien, so verschwindet dieses. In der Prozedur wird abgefragt, ob auf dem Patch ein Alien vorhanden ist. Dann wird der Variablen color die Farbe des Aliens zugewiesen. Ist diese Farbe grün, so stirbt das Alien (die). Dies muss in alle Bewegungen eingebunden werden

Aufgabe Differenzierungskurs 10 Informatik Kurslehrer H. Sporenberg 1.Aufgabe: Wator ist der Name für eine diskrete Simulation für die Modellierung eines einfachen Räuber-Beute-Modells. Es wurde gemeinsam von A.Dewdney und D.Wiseman entworfen und 1984 in der Dezemberausgabe Scientific American veröffentlicht. Einführung Simuliert wird ein abgeschlossenes System, ein hypothetischer Planet, den Dewdney Wa-Tor (abgeleitet von Water-Torus) nannte. Die Torus-Form des Planeten wurde von Dewdney lediglich aus praktischen Gründen gewählt. Die Oberfläche dieses Planeten ist komplett von Wasser bedeckt, in dem nur zwei Spezies Haie und Fische existieren. Das Modell simuliert die Nahrungskette auf Wa-Tor. Die Fische ernähren sich von Plankton, das in unendlichen Mengen zur Verfügung steht. Die Haie hingegen fressen ausschliesslich Fische und sind auf diese Nahrung zum Überleben angewiesen. Spielfläche Das Spielfeld ist in Zeilen und Spalten unterteilt. Dabei sind alle gegenüberliegenden Seiten verbunden. Jede Zelle des Spielfeldes kann drei Zustände annehmen. (1)mit einem Hai belegt (2)mit einem Fisch belegt (3)kann leer sein. Jedem der drei Zustände wird eine Farbe zugewiesen. Vorschlag: Wasser – schwarz; Fische – grün; Haie – blau. Zu Beginn der Simulation wird eine zufällige Anfangspopulation auf dem Spielfeld platziert.

Aufgabe Spielregeln Jede der beiden Spezies verhält sich nach eindeutig festgelegten Regeln. Ein Individuum, das sich nach oben aus dem Spielfeld bewegt, wird auf der Un-terseite wieder eintreten und umgekehrt. Das gleiche gilt für die horizontale Richtung. Regeln für die Fische (F1) Jeder Fisch schwimmt zufällig auf eines der vier angrenzenden Felder, sofern es leer ist. (F2) Jeder Fisch hat ein Alter; überschreitet dieses Alter die sog. Breed Time, so wird auf einem leeren, angrenzenden Feld ein neuer Fisch geboren. Regeln für Haie (H1) Haie fressen Fische auf angrenzenden Feldern. (H2) Findet ein Hai keinen Fisch auf einem angrenzenden Feld, so schwimmt er zufällig auf eines der vier Felder.

Aufgabe 1.Implementation Für die Vermehrung der Haie gibt es zwei unterschiedliche Implementierungen: 1.Implementation (I) Findet ein Hai für eine bestimmte Anzahl Zyklen, der Starve Time, keinen Fisch, so stirbt der Hai (II) Haie pflanzen sich genau so fort wie Fische, d.h. nach der Breed Time wird ein neuer Hai auf einem Nachbarfeld geboren.

Aufgabe 2.Implementation (I) Für jeden Zyklus, während dem der Hai keinen Fisch findet, verliert er einen Energiepunkt. (II) Findet der Hai einen Fisch, wird seine Energie um den Energiewert eines Fisches erhöht. (III) Übersteigt die Energie den Wert für die Erzeugung eines Nachkommen (Breed Energy), so wird ein neuer Hai auf einem angrenzenden freien Feld geboren. Die vorhandene Energie wird gleichmäßig zwischen altem und neuem Hai aufgeteilt.

Aufgabe Die eigentlichen Aufgaben Die Simulation hängt von 5 verschiedenen Parametern ab: Der Anzahl der Fische zu Beginn, der Anzahl der Haie zu Beginn, der Fish Bred Time, der Shark Breed Time und der Shark Starve Time. Bei der zweiten Implementierung wird die Shark Breed Time durch die Shark Start Energy (Energiepunkte des Hais zu Beginn), die Shark Breed Energy (Energie, die benötigt wird, um einen Nachkommen zu erzeugen) und der Fish Energy (Energiewert eines Fisches) ersetzt. Die eigentlichen Aufgaben Implementiere beide Fälle der Haifischvermehrung in NETLOGO. Für die Ausgabe muss neben selbstgewählten Monitoren eine graphische Darstellung für die Anzahl der Fische und Haie in einer gemeinsamen Graphik vorhanden sein. Dokumentiere das Programm und erläutere ausführlich die einzelnen benötigten Prozeduren. Hardcopies für wichtige Simulationsbeispiele müssen angegeben werden. Folgende Simulationsverläufe müssen neben den interessanten selbstgewählten Beispielen mit Angabe der Parameter und Graphik vorhanden sein: (1) Die Haie können aussterben und den Fischen freien Lauf lassen. (2) Die Fische können aussterben, was ein Aussterben der Haie nach sich ziehen wird. (3) Es kann eine Art Gleichgewicht entstehen, in dem sich die Populationen gegenseitig begrenzen. Erläutere auch das Räuber-Beute-Modell und dessen Bedeutung für die Simulation.

Aufgabe Lösung

Aufgabe – Langtons Ameisen 2.Arbeit Differenzierung 10 Informatik Sporenberg 1.Aufgabe: Man kann sich auch abweichende Regeln zum klassischen Game of Life vorstellen. Das folgende Regelwerk definiert beispielsweise ein sich reproduzierendes System: Todes-Regel: Eine Zelle mit genau 0,2,4,6 oder Nachbarn stirbt. Geburts-Regel: 1,3,5 oder 7 lebende Nachbarn erzeugen (der erhalten) eine lebende Zelle. Um sich beim Vergleich verschiedener Regelwerke eine umständliche Umschreibung der Regeln zu ersparen, existiert eine Kurzschreibweise für die Regeln von Game of Life: Man zählt zunächst die Anzahl von Nachbarn auf, bei der eine Zelle nicht stirbt, und anschließend, durch einen Schrägstrich abgetrennt, die Anzahl der Nachbarn, bei der eine Zelle geboren wird. Die klassische Conway-Welt wird also durch 23/3 beschrieben. Realisiere die 35/3 Welt in Netlogo.

Aufgabe – Langtons Ameisen 2.Arbeit Differenzierung 10 Informatik Sporenberg Noch 1.Aufgabe: Figur 1 Figur 2 Figur 3 Figur 4   Untersuche mit diesem Programm die oben angeführten Figuren. Dokumentiere dein Programm und erläutere die wichtigen Prozeduren.

Aufgabe – Langtons Ameisen 2.Aufgabe: Realisiere mit Hilfe der Programmierumgebung Netlogo folgende Regel der eindimensionalen zellularen Automaten: Regel Dokumentiere die wichtigen Prozeduren und erläutere anhand der verschiedenen Ausgangssituationen, wie die Zahl für die Regel berechnet wird. Gib auch eine Hardcopy der Graphik an. 3.Aufgabe: Realisiere mit Hilfe der Programmierumgebung Netlogo folgende Regel der eindimensionalen zellularen Automaten: Code Dokumentiere die wichtigen Prozeduren und erläutere anhand der verschiedenen Ausgangssituationen, wie die Zahl für die Regel berechnet wird. Gib auch eine Hardcopy der Graphik an.

Aufgabe – Langtons Ameisen 4.Aufgabe: Langton-Ameisen Die Langton-Ameisen Langton-Ameisen sind (unsichtbare) Wesen, die sich auf einem quadratischen Gitter aus weißen oder schwarzen Feldern bewegen. Treffen sie auf ein weißes Feld, färben sie dieses schwarz. Treffen sie auf ein weißes Feld, färben sie es weiß. Bewegungsregeln: 1.Wenn die Ameise auf einem schwarzen Feld ist, dreht sie sich um 90o nach rechts und bewegt sich ein Feld vorwärts (wenn das dann betretene Feld weiß ist, wird es schwarz gefärbt; wenn es schwarz ist, wird es weiß gefärbt) 2. Wenn die Ameise auf einem weißen Feld ist, dreht sie sich um 90o nach links und bewegt sich ein Feld vorwärts (wenn das dann betretene Feld weiß ist, wird es schwarz gefärbt; wenn es schwarz ist, wird es weiß gefärbt) Erstelle ein Simulationsprogramm in Netlogo, das diese Regeln beinhaltet. Zusätzlich zu den Regeln, muss die Möglichkeit über einen Button bestehen, einen mit der Maus angeklickter Patch schwarz zu färben. Dazu soll über einen Monitor die Anzahl der Bewegungen gezählt werden. Dokumentiere die einzelnen Prozeduren und erläutere die Wirkungsweise ausführlich.

Aufgabe – Langtons Ameisen 4.Aufgabe: Langton-Ameisen Folgende Simulationen sind durchzuführen und zu dokumentieren. Zusätzlich sind Hardcopies der jeweiligen Bildschirme zu machen, um die Anordnung sichtbar zu machen. 1. Ameise im weißen Feld Der einfachste Fall ist die Bewegung einer Ameise in einem quadratischen Gitter mit nur weißen Feldern. Hier sind die ersten zehn Schritte einer Ameise. (0) Die an sich unsichtbare Ameise sitzt in einem Feld und bewegt sich zum Beispiel nach Norden.  (1) Sie findet das nächste Feld weiß vor, färbt es schwarz und dreht sich in Pfeilrichtung. Das ist die Richtung nach links entgegen dem Uhrzeigersinn. (2) Sie erreicht das nächste Feld, färbt es schwarz und dreht sich in Pfeilrichtung. (3) (4) Weiter entsteht in den nächsten beiden Schritten ein schwarzes 2x2-Quadrat. (5) Die Ameise erreicht im fünften Schritt das schwarze Feld, das sie in Schritt 1 gefärbt hatte. Sie färbt es weiß und bewegt sich jetzt aber nach rechts in Richtung des Uhrzeigersinns. Dokumentiere die Anordnungen nach 1000, 5000 , 10000 und 15000 Schritten.

Aufgabe – Langtons Ameisen 4.Aufgabe: Langton-Ameisen 2. Nach dem Start des Programms wird eine Ameise automatisch von einer zufällig gewählten Stelle aus in Bewegung gesetzt. Setzt man eine Ameise mit einem Mausklick in die Mitte des Bildschirms, so muss man sich darüber im Klaren sein, dass die Ameise dann schon einen Schritt durchgeführt hat. Sie hat ein Feld geschwärzt. Sie konnte aus vier Himmelsrichtungen kommen: 0-West bedeutet, dass sich die Ameise nach dem Start in Richtung Westen bewegt, entsprechend gilt dies für 1-North usw. Dokumentiere die vier verschiedenen Möglichkeiten mit 1000, 5000 und 12000 Schritten.

Aufgabe – Langtons Ameisen 4.Aufgabe: Langton-Ameisen 3. Futter für die Ameise Man gibt als Variation keine weiße Ebene wie oben vor, sondern in ihr ein schwarzes Feld. Es kann als "Futter" bezeichnet werden. Im Folgenden wird untersucht, was passiert, wenn die Ameise ein Feld links des schwarzen Feldes auch schwarz färbt. Es gibt vier Fälle, da die Ameise aus vier Richtungen kommen kann.  a) Dokumentiere die vier verschiedenen Möglichkeiten mit 100, 1000 und 10000 Schritten. b) Die Nahrungsquelle sei ein Quadrat mit der Seitenlänge 25 als Futter. Eine1-North-Ameise färbt im ersten Schritt die obere linke Ecke (hier rot) und setzt sich dann in Bewegung. Dokumentiere die vier verschiedenen Möglichkeiten mit 1000, 5000 und 12000 Schritten

Aufgabe – Langtons Ameisen 4.Aufgabe: Langton-Ameisen 4. Zwei Ameisen. Was passiert, wenn zwei Ameisen gleichzeitig in derselben Ebene starten? Der einfachste Fall ist, wenn die beiden Ameisen in einer weißen Ebene im ersten Schritt zwei nebeneinanderliegende Felder schwärzen. Jede der beiden Ameisen kann sich in die vier Himmelsrichtungen 0-West, 1-North, 2-East und 3-South bewegen. Es gibt 16 Fälle.  Die Paare werden durch 00, 10, ... , 23, 33 gekennzeichnet. Untersuche 4 verschiedene Kombinationen mit der Darstellung der Anordnung nach 1000, 5000 und 12000 Durchgängen.

Texte Aufgaben der Modellbildung und Simulation 1.Warum Modellbildung und Simulation? Modelle und Simulationen jeder Art sind Hilfsmittel zum Umgang mit der Realität; sie sind so alt wie die Menschheit selber. Menschen haben von jeher in Denkmodellen Pläne gemacht, durchdacht, mitgeteilt, diskutiert, verändert, in die Tat umgesetzt oder verworfen. Bauwerke, Boote, Maschinen wurden bereits vor Tausenden von Jahren zunächst als kleine Modelle gebaut und geprüft, bevor sie im großen Maßstab erstellt wurden. Die Spielwelt der Kinder simulierte schon immer die Welt der Erwachsenen - meist unter Verwendung von Modellen ihrer Menschen, Tiere, Gegenstände und Fahrzeuge. Die Modellwelten der Sagen, Märchen und Religionen gestatteten teilweise sogar erfahrungsprägende Simulationen. Indem Wissenschaft und Forschung sich bemühen, verallgemeinerbare Prinzipien und Prozesse in der Realität zu identifizieren, erstellen sie Modelle, die wiederum der angewandten Forschung und Technik zur Untersuchung und Simulation neuer Möglichkeiten dienen. Modelle reichen von der verkleinerten realistischen Darstellung des Originals über die Schnittzeichnung bis zum Funktionsdiagramm; sie können aus Analogien bestehen, in mathematischen Formeln oder Computerprogrammen ausgedrückt sein und dann auch die Simulation dynamischen Verhaltens erlauben; sie können es als vorstrukturierte Planspiele ermöglichen, einen neuen Verhaltensbereich zu erfahren. Die Elektronik gestattete es erstmals, unter Ausnutzung physikalischer Analogien zwischen elektronischen Schaltkreisen und mechanischen Schwingungssystemen komplexe dynamische Systeme wie etwa Flugzeuge und Fahrzeuge durch äquivalente Systeme elektronischer Bauteile darzustellen und damit ihr Verhalten am Analogcomputer zu simulieren, ohne das System überhaupt erst bauen und in der Realität erproben zu müssen. Simulatoren der gleichen Art wurden eingesetzt, um Bedienungspersonal (z.B. Piloten) gefahrlos im Umgang mit komplexen technischen Gerät zu schulen - lange bevor das erste Stück die Produktion verließ.

Texte Aufgaben der Modellbildung und Simulation Die Tatsache, dass Computer schnell und genau jede mathematische oder logische Formulierung in beliebiger Kombination abarbeiten können, erweiterte die Möglichkeit der Modellbildung und Simulation auf alles, was sich formalisieren und damit rechenfähig darstellen lässt. Damit sind fast in allen Bereichen menschlicher Erfahrung neue Möglichkeiten entstanden, um bisher kaum überschaubar komplexe dynamische Entwicklungen auch modellhaft darzustellen, zu simulieren, besser zu verstehen und besser mit ihnen umzugehen als bisher. Jüngste technische Entwicklungen zeigen, dass - wie bereits im realitätstreuen Simulator eines Flugzeuges - Computersimulationen in Zukunft an vielen Stellen den Menschen als mitagierendes System sehr viel mehr einbeziehen werden als bisher. Über Bildschirmhelmen und elektronische Handschuhe wird er die Möglichkeit bekommen, in einer simulierten Scheinwelt greifbare Erfahrungen zu sammeln - in einer Welt, die schließlich nur in den Bit-Zuständen einiger weniger Computerchips besteht. Eine Aufgabe wird es sein, das in vielen Wissensbereichen angewandte Verfahren der Modellbildung und Simulation dynamischer Systeme darzustellen. Es zeigt sich nämlich, dass man es hier mit einem einheitlichen Ansatz zu haben, der sich nicht nach Fachdisziplinen unterscheidet; gleich, ob es sich um Anwendungen in Elektrotechnik, Maschinenbau, Land- und Forstwirtschaft, Ökologie, Umweltforschung, Betriebswirtschaft oder Regionalplanung handelt.

Texte Aufgaben der Modellbildung und Simulation 2. Warum interessiert das Verhalten dynamischer Systeme? Zu wissen, was geschehen wird oder geschehen könnte, kann unter Umständen eine Bedeutung haben, die über Neugierbefriedigung wesentlich hinausgeht und buchstäblich zwischen Leben und Tod unterscheidet. Zu wissen, wie sich dynamische Systeme unter gewissen Umständen verhalten werden, ist auch selbst bei einfachen Systemen oft sehr schwierig. Oft genug hängt das Leben von Individuen, die zukünftige Entwicklung einer Region oder gar die globale Zukunft ab von der Entwicklung dynamischer Systeme, die man nicht ausreichend kennt, deren Verhalten man nicht genug versteht. Die Beispiele reichen von Bauwerken, Flugzeugen, Fahrzeugen, sozialen Prozessen, Stadtentwicklungen, Bevölkerungsexplosion, Kriegen, Umweltbelastungen bis hin zu globalen Klimaveränderungen. In allen diesen Fällen stellt sich die Aufgabe, mit vertretbarem Aufwand zu relativ sicheren Verhaltensaussagen zu kommen. Man sucht also nach entsprechenden Modellen, die Verhalten beschreiben und möglichst auch Hinweise auf notwendige Änderungen oder Einwirkungen geben können, um unzulässige oder gar gefährliche Entwicklungen zu vermeiden. Es soll an dieser Stelle angemerkt werden, dass eine Verhaltenssimulation prinzipiell auf zwei verschiedene Weisen erreicht werden kann: Zum ersten ist denkbar, durch Beobachtungen des Verhaltens eines oder vieler gleichartiger Systeme zu einer umfassenden Verhaltensbeschreibungen zu gelangen, die auch für zukünftiges Verhalten in einem relativ breiten Bereich zutrifft. In diesem Falle wäre es nicht nötig, das System selbst in allen seinen Einzelheiten und Funktionen zu kennen; es kann als black box behandelt werden.

Texte Aufgaben der Modellbildung und Simulation Eine zweite prinzipielle Möglichkeit zu Verhaltensaussagen zu gelangen, ergibt sich durch ein Nachbilden der Wirkungsweise des realen Systems, d.h. durch Untersuchungen des Verhaltens eines Modells, das die wesentlichen Wirkungsstrukturen des Realsystems abbildet. In diesem Falle muss sehr viel über das System selbst bekannt sein; sein Verhalten in der Vergangenheit ist daher nur von sekundärem Interesse. Die Darstellung von Verhalten durch Computersimulationsmodelle hat inzwischen fast alle anderen Darstellungsmöglichkeiten, die früher einmal eine Rolle spielten (wie hydraulische, elektrische, mechanische Analogien) abgelöst. Die Gründe liegen auf der Hand: Es kann - völlig unabhängig von der Art des betrachteten Systems - mit einer einheitlichen Methodologie und vielseitig verwendbaren Software-Programmen gearbeitet werden. Die Kosten der Modellerstellung und Simulation sind im Allgemeinen nur ein Bruchteil dessen, was bei ähnlich umfassender Untersuchung mit realen oder analogen physikalischen Modellen aufzuwenden wäre. Der zeitliche Ablauf des dynamischen Verhaltens kann erheblich gerafft und verkürzt - bei der in der Natur sehr schnell ablaufenden Vorgängen - auch, falls notwendig, erheblich gedehnt werden, so dass genaue Beobachtungen möglich werden. Eine Dynamik, die zur Systemzerstörung führen würde, hinterlässt im Computer überhaupt keine Konsequenzen: Das Simulationsprogramm kann nach wie vor weiterverwendet werden. Damit wird auch und gerade eine umfangreiche Untersuchung gefährlicher Systementwicklungen möglich. Das reale System wird keinerlei Risiko unterzogen. Messungen oder Eingriffe am realen System sind nicht notwendig.