Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Einführung Internetseite zum Download von NetLogo: Zur Zeit ist die Version 4.1 aktuell (Stand: 01.02.2010). Größe:

Ähnliche Präsentationen


Präsentation zum Thema: "Einführung Internetseite zum Download von NetLogo: Zur Zeit ist die Version 4.1 aktuell (Stand: 01.02.2010). Größe:"—  Präsentation transkript:

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

2 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.

3 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

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

5 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.

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

7 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

8 Einführung Epidemie – Ausbreitung einer Krankheit

9 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).

10 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).

11 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.

12 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]

13 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.

14 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.

15 Einführung 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

16 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: Achtung: Bei Gleichheitsabfragen muss vor dem Gleich- heitszeichen und danach eine Leerstelle eingefügt werden. if (count turtles with [color = red]) = 100 [stop]

17 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.

18 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

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

20 Einführung Epidemie – Ausbreitung einer Krankheit

21 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.

22 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.

23 Einführung Epidemie – Ausbreitung einer Krankheit

24 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.

25 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.

26 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 ask patches [ ifelse random-float 1.0 < initial-density [ cell-birth ] [ cell-death ] ] end to cell-death set living? false set pcolor bgcolor end to cell-birth set living? true set pcolor fgcolor end

27 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

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

29 Einführung Game of Life

30 Einführung Game of Life Der Gleiter – Glider

31 Einführung Game of Life Der Gleiter – Glider

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

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

34 Einführung Game of Life Weitere Populationen

35 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

36 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

37 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.

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

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

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

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

42 Einführung Game of Life 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. Andere Regeln 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.

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

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

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

46 Einführung Zelluläre Automaten Definition: 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.

47 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) 2 3 = 8 Möglichkeiten 111 a110 b101 c100 d011 e010 f001 g000 h Somit könnte man prinzipiell 2 8 = 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.

48 Einführung Zelluläre Automaten 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

49 Einführung Zelluläre Automaten Hieraus ergibt sich die Zahlenfolge = = 90 C = 128 a + 64 b +32 c + 16 d + 8 b + 4 e + 2 d

50 Einführung Zelluläre Automaten Das NetLogo-Programm 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 Regel 90

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

52 Einführung Zelluläre Automaten Das NetLogo-Programm 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 Regel 90

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

54 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

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

56 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

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

58 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.

59 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 3 7 = 2187 mögliche Regeln. Stephen Wolfram

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

61 Zelluläre Automaten Totalistische eindimensionale zelluläre Automaten Da es sich um drei verschiedene Farben handelt, kann man die verschiedenen Regeln im Dreiersystem katalogisieren. Stephen Wolfram 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

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

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

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

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

66 Zelluläre Automaten Bewertung – was können ZA? Stephen Wolfram 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.

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

68 Zelluläre Automaten Komplexe Beispiele – Diffuse Ausbreitung von Schadstoffen Stephen Wolfram 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.

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

70 Zelluläre Automaten Komplexe Beispiele – ökologisches Modell einer Seegraswiese Stephen Wolfram 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

71 Zelluläre Automaten Komplexe Beispiele – ökologisches Modell einer Seegraswiese Stephen Wolfram 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

72 Zelluläre Automaten Komplexe Beispiele – ökologisches Modell einer Seegraswiese Stephen Wolfram 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

73 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.

74 Simulationen Kaninchen - Gras 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]

75 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.

76 Simulationen Kaninchen - Gras 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]

77 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.

78 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.

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

80 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

81 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)

82 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

83 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] end to move bewegen end

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

85 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

86 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]

87 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

88 Simulationen Kaninchen - Gras

89 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.

90 Simulationen Lottka-Volterra

91 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 ]

92 Simulationen Wolf - Schafe 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

93 Simulationen Wolf - Schafe to go 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

94 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

95 Simulationen Wolf - Schafe

96 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

97 Simulationen Wolf - 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 Wölfe fressen Schafe

98 Simulationen Wolf - Schafe 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 Das Gras wächst

99 Simulationen Wolf - Schafe 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 Die Plot-Anzeige

100 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.

101 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

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

103 Simulationen Einfaches Ameisen-Modell Termiten.nlogo

104 Simulationen Einfaches Ameisen-Modell

105 Simulationen Verkehrsmodell

106 Simulationen Verkehrsmodell

107 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.

108 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).

109 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

110 Simulationen Verkehrsmodell globals [delta_t with_police? with_leader? num_count sum_speed start_averaging? ] turtles-own [speed front_distance next_car] 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 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

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

112 Simulationen Verkehrsmodell 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

113 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

114 Simulationen Verkehrsmodell

115 Simulationen Die Langton-Ameise Ameisen und die Erklärung der Welt Und wenn ich alle Weisheit der Welt hätte, so wärs 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

116 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."

117 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."

118 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."

119 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.

120 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 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).

121 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."

122 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.

123 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 ) 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.

124 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 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).

125 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."

126 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

127 Simulationen Die Langton-Ameise Chris Langton Bewegungsregeln: 1.Wenn die Ameise auf einem schwarzen Feld ist, dreht sie sich um 90 o 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 90 o 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)

128 Simulationen Die Langton-Ameise Chris Langton 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.

129 Simulationen Die Langton-Ameise Chris Langton (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.

130 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

131 Simulationen Die Langton-Ameise Chris Langton

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

133 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)

134 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.

135 Zellulare Automaten Wire World to go if mouse-down? [ stop ] ;; wait for user to stop drawing ask patches [ set live-neighbors count neighbors with [pcolor = 15] ] ask patches [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

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

137 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.

138 Zellulare Automaten Wire World Ein zyklisches NAND-Gatter in NETLOGO

139 Zellulare Automaten Wire World OR-Gate

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

141 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.

142 Selbstreproduzierende Automaten StateNameFunction 0 [Black]Background 1 [Blue]CoreFills tube of loop 2 [Red]SheathExternal structure 3 [Purple]Structure of arm 4 [Green]GeneInfo for turning arm 5 [Light Blue]Messenger 6 [Yellow]Messenger/Guide/Finisher 7 [White]GeneInfo for straight growth 8 [Grey]DissolverDissolves loop structure

143 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.

144 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.

145 Pac-Man – einfache Version

146 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.

147 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.

148 Pac-Man – einfache Version 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 to pacman-setup set shape "gesicht" fd 3 end to aliens-setup set shape "circle" end

149 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

150 Pac-Man – einfache Version globals[xkoo xkom xkou xko1 xko2 ykom ykom1 ykom2 ykoo ykoo1 ykoo2 ykou ykou1 ykou2 ykol ykor xkol xkol1 xkol2 xkor xkor1 xkor2 zufallszahl] Das Labyrinth 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

151 Pac-Man – einfache Version 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 Das Labyrinth 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

152 Pac-Man – einfache Version Das Labyrinth

153 Pac-Man – einfache Version Das Labyrinth 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 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

154 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

155 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

156 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.

157 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.

158 Aufgabe 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.

159 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.

160 Aufgabe 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.

161 Aufgabe Lösung

162 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.

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

164 Regel 2.Aufgabe: Realisiere mit Hilfe der Programmierumgebung Netlogo folgende Regel der eindimensionalen zellularen Automaten: 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

165 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 90 o 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 90 o 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

166 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, und Schritten. Aufgabe – Langtons Ameisen

167 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 Schritten. Aufgabe – Langtons Ameisen

168 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 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 Schritten Aufgabe – Langtons Ameisen

169 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 Durchgängen. Aufgabe – Langtons Ameisen

170 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ß.

171 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.

172 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.

173 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.


Herunterladen ppt "Einführung Internetseite zum Download von NetLogo: Zur Zeit ist die Version 4.1 aktuell (Stand: 01.02.2010). Größe:"

Ähnliche Präsentationen


Google-Anzeigen