Matheseitenüberblick

Wator

Wator ist eine Simulation eines Beute-Räuber-Ökosystems mit ein paar simplen Regeln. Erfunden von Alexander K. Dewdney1) und David Wiseman2), wurde Wator in der Dezember-Ausgabe 1984 des Magazins Scientific American vorgestellt und bald darauf in der Rubrik Computer-Kurzweil des deutschen Ablegers Spektrum der Wissenschaft.

Man stelle sich einen Wasserplaneten vor, dessen komplette, von flachem Wasser bedeckte Oberfläche als Rechteck dargestellt wird, bei dem linker und rechter Rand aneinander anschließen wie auch oberer und unterer — ähnlich wie bei einem Torus3). (Man nennt das torodial. Der Begriff Wator leitet sich von Water + Torus ab.)

Auf (bzw. in?) der flachen Oberfläche schwimmen Fische und Haie. (Ich vermute, auf diesem Planeten gelten Haie nicht als Fische.) Die Fische leben ohne Nahrungsknappheit von angenommen unbegrenztem Planktonvorkommen o.ä., die Haie leben von den Fischen. Haie und Fische bewegen sich pro Spielzug bzw. Zeitschritt jeweils zufällig auf ein direktes Nachbarfeld, sofern eines frei ist. Haie können auch auf ein von einem Fisch besetztes Feld schwimmen; dann ist es um den armen Fisch allerdings geschehen. Als benachbart gelten nur die vier Felder, die mit dem Zentralfeld eine Kante gemeinsam haben, also rechts, links, oben und unten.

Es gelten außerdem folgende Regeln:
Fische gebären nach einer gewissen Zeit, der Brutzeitspanne4) (original Breed Time), einen Nachkommen auf einem freien Nachbarfeld.
Haie fressen Fische auf angrenzenden Feldern. (Ich weiß nicht, ob sie nach originalen Regeln nur einen oder alle in der Umgebung verschlingen; man kann es hier optional einstellen. Wenn sie sich nur auf einen stürzen, nehmen sie (in meiner Implementation) auch dessen Platz ein. (Nachtrag: in der englischen Wikipedia steht es genauer: sie essen den Fisch, wenn sie (wohl zufällig?) auf ihn stoßen. Das ist noch weniger als meine Version, in der der Hai jeden Fisch findet, der neben ihm schwimmt. So doof sind sie nun auch nicht, diese Haie. Leider. Gut, ich rüste die Option des stumpfsinnigen Hais also noch nach; aber man muß sie explizit wählen.)

Für Tod und Geburt der Haie gibt es laut Wikipedia (deutsch, englisch) zwei unterschiedliche Modelle:

Modell 1
- Ein Hai stirbt, wenn er für eine bestimmte Anzahl Spielzüge, von mir Hungerzeitspanne genannt (Shark Starve Time), keinen Fisch frißt.
- Er gebiert wie auch die Fische nach einer gewissen Brutzeitspanne (Shark Breed Time) einen Nachkommen.

Modell 2. Dieses geht vom Konzept der Energiepunkte aus, von denen Haie und übrige Fische jeweils einen initialen Wert erhalten.
- Frißt der Hai in einem Zeitschritt (chronon) keinen Fisch, verliert er einen Punkt. Geht ihm die Energie aus, verendet er. Wenn er jedoch einen Fisch findet und frißt, wird seine Energie um den (wohl gleichbleibenden) Energiewert des Fisches erhöht.
- Er erzeugt neben sich einen Nachkommen, wenn seine Energie einen gewissen Wert erreicht hat (Breed Energie). Seine Energie geht dann zur Hälfte auf den Nachkommen über.

Wählen Sie rechts die gewünschten Einstellungen, klicken Sie auf Start, um das Spielfeld zu erzeugen. Setzen Sie dann den Haken bei Animation und klicken auf Step. Ein Ändern der Zeitspannen, der Energiewerte und des Fischfreßmodus' ist während der laufenden Animation möglich, nicht aber ein Wechsel des Modells. Dafür muß neugestartet werden, was beim Umschalten des Modells automatisch erfolgt. Statt der Spielfeldgröße legen Sie am besten die Pixelgröße eines Feldes fest. Die Spielfelddimension wird nämlich ausgehend von der Pixelgröße automatisch an das Graphikfenster angepaßt, und zwar in Ruhe an die aktuelle Größe des Graphikfensters (und das Spielfeld wird neu initialisiert), bei laufender Animation aber wird das Graphikfenster an sich verkleinert. Das liefert eine praktische Möglichkeit, die Statistik und die Simulation gleichzeitig zu sehen. Eine andere Möglichkeit dafür ist: Graphikfenster immer oben links

FischeHaie
Startanzahl
Modell
Brutzeitspanne
Hungerzeitspanne
(Start-)Energie
Brutenergie
Haie fressen jeweils
    nur einen Fisch
und zwar stumpfsinnig nur
    beim direkten Draufstoßen.
BreiteHöhe
Spielfeld
px/Feld (Breite und Höhe)
Tempo:
Animation
Graphik direkt mit fillRect()
   (sonst auf dem ImageData-Array)

 

© Arndt Brünner, 19. 10. 2020
Version: 22. 10. 2020

Hier eine Graphik der Populationsgrößenentwicklung. Zeitintervall der Erfassung:     obere Graphik zeichnen     Statistik zeichnen

  logarithmische Skala   Unterteilung   aktuelle Population angeben
→ Statistikbreite bzw. → -höhe anpassen. → Größe rücksetzen

→ Tabelle der aktuell dargestellten Daten erstellen

 

Anmerkungen

1) Alexander Keewatin Dewdney (geb. am 5. 8. 1941) ist ein kanadischer Mathematiker, Autor und Filmemacher. Er war Nachfolger Martin Gardners und Douglas Hofstadters beim Scientific American als Verantwortlicher für die Kolumne Computer Recreations (in der deutschen Ausgabe Computer-Kurzweil). Laut →Wikipedia vertritt er auch öffentlich eine Verschwörungstheorie bzgl. 11. 9. 2001. Nun denn: Haie und Fische.

2) Über David Wiseman, vermutlich der eigentliche Vater Wators, habe ich nichts herausgefunden. Wer etwas weiß, kann mir gerne eine Mail schicken (die Adresse steht beim →Impressum unten auf der Übersichtsseite).

3) Ein Torus ist einem Donut ähnlich, ein Ring, dessen Oberfläche sich um den Ringschlauch quasi wickelt und daher schließt und die auch um den Ring herum natürlich geschlossen ist. Siehe Abbildung rechts. Mit dem Mauszeiger draufgehen, um das Bild zu vergrößern.
Schneidet man das Netz rundherum an der Innenseite des Rings auf und den Ring insgesamt an einer Stelle durch, kann man das Netz, wenn man es als flexibel annimmt, zu einem Rechteck ausbreiten.

4) Der Brutzeitzähler wird für jeden Fisch initial auf einen Zufallswert um die Null gesetzt, um zu verhindern, daß die Animation hakelt, wenn alle Fische gleichzeitig gebären. Interessanterweise findet die Vermehrung später oft wieder periodisch in engen Zeiträumen statt, wenn nämlich die Population durch einen Flaschenhals ging. Das ist gegenüber den Beutegreifern durchaus vorteilhaft!

 


© Arndt Brünner, 2020

Beachten Sie meine Urheberrechte und die auf der Übersichtsseite beschriebenen ausschließlichen Nutzungsrechte, die Sie haben!