Räuber-Beute-Simulation in Snap!

Überblick Räuber Beute Simulation

Schauen wir uns unsere Räuber-Beute-Simulation in Snap! an.

Öffnen Sie die Vorlage.

Klicken Sie auf die grüne Flagge, um die Simulation zu starten. Beobachten Sie, was passiert!

Grüne Flagge

Falls Ihr PC relativ langsam wird, wenn Sie die Simulation starten, reduzieren Sie die Anzahl an Hasen bzw. Luchsen oder brechen Sie die Simulation mit einem Klick auf das rote Stoppschild ab, sollten es zu viele Tiere werden.

Hasen und Luchse laufen (zufällig) über den Bildschirm. Trifft ein Luchs auf einen Hasen, verschwindet der Hase. Luchse sterben nach einiger Zeit. Es entstehen allerdings kaum neue Hasen, sodass es schon nach einiger Zeit sehr wenige von ihnen gibt. Außerdem bewegen sich die Luchse sehr schnell.

Mehr Hasen zur Welt bringen

Aktuell werden kaum neue Hasen geboren. Erhöhen Sie die Wahrscheinlichkeit, sodass mehr neue Hasen entstehen!

Wenn wir unsere Simulation nun in Snap! entwerfen, dann benötigen wir für jeden Luchs und jeden Hasen ein Objekt (bzw. ein Sprite). Da wir nicht jeden Luchs bzw. Hasen einzeln modellieren wollen und können, nutzen wir das Prototypen-Konzept.

Was wir uns darunter vorstellen können, soll das untenstehende Beispiel verdeutlichen:


Wenn wir an einen Barhocker denken, dann haben wir gewisse Vorstellungen wie ein solcher aussieht: Er hat einen langen Standfuß, eine runde Sitzfläche und ist gepolstert: Wir haben einen Prototyp vor Augen.

Allerdings sind auch andere Barhockerdesigns denkbar. Einen anderen Barhocker würden wir dann vielleicht so beschreiben: „Er sieht aus wie der erste Barhocker, ist aber rot.“ Wir passen unsere Beschreibung an, indem wir sagen, wie er sich vom Prototypen unterscheidet.


Genau wie wir im Beispiel mit den Barhockern einen (gedanklichen) Prototypen haben, erstellen wir für unsere Simulation je einen Prototypen für die Luchse und für die Hasen, legen deren Eingeschaften fest und spezifieren ihr Verhalten.
Sind wir damit zufrieden, klonen wir den Prototypen. Auch das machen wir natürlich nicht händisch, sondern mithilfe eines Blocks:

 

Klone-Block

Um zwischen Hasen- und Luchs-Prototypen zu wechseln, klicken Sie rechts unter der Bühne auf das passende Sprite (ProtoHase, ProtoLuchs).

Hase und Luchs

In unserer Simulation wird ein Hase natürlich nicht geboren, er wird geklont. Können Sie die relevante Stelle im Code identifizieren?

Eine mögliche Lösung ist es, im falls-Block anstelle der 1 eine 5 einzusetzen. Alternativ können Sie auch die 1000 durch eine kleinere Zahl ersetzen. Wir haben uns für Ersteres entschieden:

Mögliche Lösung

Geschwindigkeit der Luchse reduzieren

Leider sind die Luchse deutlich zu schnell für unsere Simulation. Verringern Sie die Geschwindigkeit der Luchse!

Die Bewegungsgeschwindigkeit der Luchse hängt mit dem Block gehe () Schritte zusammen.

Ändern Sie den Parameter in gehe(12) Schritte im Luchs-Sprite auf eine kleinere Zahl, z.B. 4.

 

Lösung

Erkenntnisse gewinnen
Durch Klick auf die Leertaste erhalten Sie ein Liniendiagramm, das Hasen (lila) und Luchse (gelb) gegenüberstellt. Beschreiben Sie Ihre Beobachtungen!

Anhand der gejagten Felle hat die Hudson Bay Company die Populationen der Luchse bzw. Hasen für die Jahre 1845 bis 1937 erfasst.
Ein Blick auf die Grafik zeigt einen ähnlichen Verlauf wie in unserer Simulation!

Das ist toll 🙂

 

Was wir damit entdeckt haben, ist die erste Lotka-Volterra-Regel:

 

„Erste Lotka-Volterra-Regel (Periodische Populationsschwankung): Die Populationsgrößen von Räuber und Beute schwanken periodisch. Dabei folgen die Schwankungen der Räuberpopulation phasenverzögert denen der Beutepopulation. Die Länge der Perioden hängt von den Anfangsbedingungen und von den Wachstumsraten der Populationen ab.“ (CC-BY-SA Wikipedia)
 
 
lynx and hare

Sie können nun noch weitere Parameter manipulieren und den Effekt auf die Simulation untersuchen. Drücken Sie dann erneut die Leertaste, um einen Graphen der beiden Populationen zu erhalten.

Sie könnten auch einen der untenstehenden Blöcke verwenden:

langsamer Block 1

langsamer Block 2

 

Unsere Version ist aber deutlich schneller!

schneller Block

 

Dies hängt mit der internen Umsetzung zusammen: Unsere Version führt deutlich weniger Kollisionsabgleiche durch.