9.2 Conway’s Game of Life
Contents
9.2 Conway’s Game of Life#
Im Folgenden widmen wir uns einem der berühmtesten aller zellulären Automaten: Conway’s Game of Life. Falls du noch nichts vom Game of Life gehört hast, das Video unten bietet einen spannenden Einstieg:
from IPython.display import YouTubeVideo
YouTubeVideo("CgOcEZinQ2I")
Die Regeln des Game of Life gehen so: Auf einem Grid befinden sich Zellen, welche in einem Moment einen von zwei Zustände annehmen können: tot oder lebendig. In jedem Zeitschritt entscheidet sich, ob eine tote Zelle zum Leben erwacht, eine lebendige Zelle stirbt oder am Leben bleibt. Geburt, Leben und Tod hängen dabei von den 8 Nachbarzellen einer Zelle ab.
Die genauen Regeln lauten so:
Eine tote Zelle mit genau drei lebenden Nachbarn wird in der Folgegeneration neu geboren.
Lebende Zellen mit weniger als zwei lebenden Nachbarn sterben in der Folgegeneration an Einsamkeit.
Eine lebende Zelle mit zwei oder drei lebenden Nachbarn bleibt in der Folgegeneration am Leben.
Lebende Zellen mit mehr als drei lebenden Nachbarn sterben in der Folgegeneration an Überbevölkerung.
Wichtig ist, dass diese Regeln in jedem Zeitschritt für jede Zelle “gleichzeitig” angewendet werden. Wir haben also eine synchrone Aktualisierung der “Agenten” bzw. Zellen. Erst nehmen alle Zellen denselben Zustand der Welt wahr, reagieren für die anderen Zellen nicht wahrnehmbar darauf und setzen intern ihren neuen Zustand für den nächsten Zeitrschritt fest. Erst wenn alle Zellen ihren neuen Status intern festgelegt haben, ersetzen alle Zellen ihren alten Status durch den soeben ermittelten neuen Status.
Übrigens
Bekannt wurde das “Game of Life” durch eine Veröffentlichung von Martin Gardner im Jahr 1970. Den Text des Original-Artikels findest du hier.
Unten siehst du zwei Videos einer Implementierung des Game of Life mit Python und der Animierung mit Matplotlib + Celluloid.
from IPython.display import Video
Video("game_of_life_video1.mp4", embed = True, width = 600)