The Game of Life, nur ein Spiel?
←
→
Transkription von Seiteninhalten
Wenn Ihr Browser die Seite nicht korrekt rendert, bitte, lesen Sie den Inhalt der Seite unten
The Game of Life, nur ein Spiel? Spiel und Mathematik sind oft zwei Seiten derselben Medaille. Man kann Mathematik spielerisch betreiben und in vielen Spielen verbirgt sich mathematischer Sprengstoff. John Horton Conway, ein bekannter Mathematiker an der Universität von Cambridge hat nach wichtigen Arbeiten in der Gruppentheorie im Jahre 1968 das Spiel des Le- bens - the Game of Life - veröffentlicht. Es ist ein Spiel mit einfachen Regeln, das Generationen begeistert hat [Gar87] und als die Mutter der ständig wachsenden Klasse von Simulationsspielen gelten kann. Bei näherem Hinsehen entwickelt dieses Spiel eine ungeahnte Tiefe bis hin zur Simulation eines universellen Computers in der Art einer Turing Maschine, wovon in Kapitel 6 ausführlich die Rede sein wird. 1 Die Spielregeln Das Spiel ist eine Analogie zum Aufstieg und Untergang lebender Organismen; des- wegen wurde es von seinem Erfinder auch Life genannt. Die Grundidee ist, dass man den Lebensraum als ein beliebig großes Spielfeld mit (beispielsweise) recht- eckigen Feldern darstellt, die dann von „Individuen“ in Form von Spielmarken besetzt werden können. Die Entwicklung einer vorgegebenen Ausgangspopulation von Indi- viduen (also ein anfängliches Muster von auf dem Brett verteilten Spielmarken) wird nun von „genetischen Gesetzen“ bestimmt, die Geburt, Tod und Überleben regeln. Die genetischen Gesetze wurden von Conway so gewählt, dass sie folgende Bedin- gungen erfüllen: • Es sollte nach Möglichkeit keine Ausgangspopulationen geben, die im Laufe ihrer Entwicklung zu einer unendlichen Anzahl von Individuen führt. • Es gibt Ausgangspopulationen, die sich über viele Generationen hinweg zu kom- plexen Strukturen mit sehr vielen Einzelindividuen entwickeln. • Bei Beginn des Spiels gewählte Ausgangspopulationen sollten im Laufe ihrer Ent- wicklung eines der folgenden Schicksale erleiden: ∗ Sie sterben aus; ∗ sie gehen in eine stabile, sich nicht mehr verändernde Population über; ∗ sie gehen in einen oszillierenden Zustand über, bei dem sich bestimmte Muster zyklisch endlos wiederholen. Die von Conway aufgestellten genetischen Regeln lauten: • Das rechteckige Spielfeld wird mit Spielmarken vorbesetzt. • Jede Spielmarke mit zwei oder drei Nachbarn überlebt und bleibt für die nächste Generation erhalten. • Jede Spielmarke mit vier oder mehr Nachbarn stirbt an Überbevölkerung, d.h. sie wird in der nächsten Generation vom Spielfeld entfernt. • Jede Spielmarke mit nur einem oder gar keinem Nachbarn stirbt an Einsamkeit, d.h. sie wird in der nächsten Generation vom Spielfeld entfernt.
• Auf jedem leeren Spielfeld, das von genau drei Nachbarn umgeben ist, wird in der nächsten Generation eine Spielmarke „geboren“. Alle anderen leeren Spielfelder bleiben leer. Es ist wichtig, dass bei jedem Generationswechsel zunächst alle Spielmarken und alle leeren Spielfelder bewertet werden. Erst wenn diese Bewertung abgeschlossen ist, dürfen Spielmarken entfernt oder hinzugefügt werden. Diese Prozedur wird dann zur Erzeugung der jeweils nächsten Generation immer wieder aufs Neue durchlau- fen. Diese Regeln vermeiden die beiden Extreme, dass es sehr viele Muster gibt, die schnell ins Grenzenlose wachsen und dass es sehr viele Muster gibt, die rasch aus- sterben. Conway vermutete zunächst, dass mit diesen Spielregeln ein unendliches Wachstum von Populationen unmöglich sei. Er setzte sogar einen Preis von 50,- Dol- lar für den Beweis oder die Widerlegung dieser Vermutung aus. Schon Ende 1970 ging der Preis an eine Forschergruppe am MIT (Massachusetts Institute of Techno- logy). Diese Gruppe entdeckte eine als Gleiterkanone bezeichnete oszillierende Struktur, die nach jeweils 30 Generationen einen aus 5 Marken bestehenden Gleiter ausstößt, der sich dann fortbewegt. Neben den stabilen und zyklischen Populationen gibt es also tatsächlich entgegen Conways ursprünglicher Ansicht Populationen die unbegrenzt wachsen können. Bevor näher auf Gleiter, Gleiterkanonen und andere Strukturen eingegangen wird, sollen zunächst einige einfache Ausgangspopulationen und deren Entwicklung unter- sucht werden. 2 Die Entwicklung einfacher Populationen Es ist unmittelbar einsichtig, dass Populationen, die aus nur einer oder zwei Marken bestehen, bereits in der nachfolgenden Generation aussterben. Doch bereits bei Po- pulationen mit drei Marken treten zwei typischen Eigenschaften des Game of Life zu Tage: wie in Abbildung 1 dargestellt, kann ein stabiles und ein zyklisches Muster ent- stehen, die als Block bzw. Blinker bezeichnet werden. leer leer leer leer leer leer stabil: zyklisch: Block Blinker Abbildung 1: Die Abbildung zeigt die Schicksale aller Anfangspopulationen mit 3 Individuen, die nicht im ersten Schritt verschwinden. Durch Rotation um 90°, 180° oder 270° aus den angegebenen Popu- lationen hervorgehende Populationen wurden nicht mit aufgenommen.
Mit wachsender Anzahl von Spielmarken steigt die Anzahl möglicher Anfangspopula- tionen exponentiell an. Besonders interessante Konfigurationen entstehen oft aus Populationen, deren Spielmarken durch Turmzüge (nach Art des Schachspiels) ver- bunden sind. Im Falle von vier Marken bezeichnet man sie als Tetrominos, für fünf Spielsteine als Pentominos, für sechs als Hexominos etc. Abbildung 2 zeigt das Schicksal aller Tetrominos. Man findet dabei ein neues stabiles Muster, den Bienen- stock, sowie eine neue oszillierende Struktur, die aus vier Blinkern bestehende Ver- kehrsampel. stabil stabil: stabil: Bienenstock Bienenstock Abbildung 2: Die Schicksale aller Tetrominos. Zyklisch: Verkehrsampel Bereits bei der Untersuchung der Pentominos zeigt es sich, dass eines davon, näm- lich das r-Pentomino, eine derart komplexe Entwicklung durchläuft, dass eine voll- ständige Darstellung auf Papier nicht mehr sinnvoll ist. zyklisch leer Das r-Pentomino geht nach 1103 Generationen in etliche einfache stabile und oszillierende Muster über. Außerdem wurden sechs leer Gleiter ausgestoßen, die sich seitlich wegbewegen. Abbildung 3: Die Schicksale einiger Pentominos.
Neben den schon beschriebenen stabilen Mustern Block und Bienenstock sind noch zahlreiche weitere bekannt. Man bezeichnet diese stabilen Strukturen auch als Stilleben. Einige davon sind in Abbildung 4 zusammengestellt. Block Wanne Boot Bienenkorb Schiff Kanalboot Flugzeug- Schlange träger Laib Langboot Angelhaken Lange Schlange See Teich Langes Langes Knüppel Sinkendes Hut Honigwabe Kanalboot Schiff Schiff Abbildung 4: Es sind alle stabilen Muster (Stilleben) mit 4, 5, 6 und 7 Marken angegeben. Von den 9 Stilleben mit 8 Marken sind nur fünf gezeigt. Es gibt außerdem 10 Stilleben mit 9 Marken, 25 mit 10 Marken, 46 mit 11 Marken, 121 mit 12 Marken und 149 mit 13 Marken. Als Beispiele für größere Stille- ben sind der Hut mit 9, die Honigwabe mit 12 und der See mit 24 Marken aufgeführt. Man beachte, dass der Angelhaken als einziges der dargestellten Stilleben keinerlei Symmetrie aufweist. Man erkennt auch leicht, dass Strukturen wie Boot, Schiff, Ka- nalboot, sinkendes Schiff, Schlange und See durch Verlängern der diagonalen Antei- le beliebig vergrößert werden. Auch zyklische Strukturen treten häufig auf. Abbildung 5 zeigt die einfachsten. Blinker Kröte Signalfeuer Abbildung 5: Die einfachsten zyklischen Muster mit Periode 2. Verkehrsampel Uhr Eine interessante zyklische Struktur ist das in Abbildung 6 gezeigte, mit Periode 4 rotierende Schaufelrad. Es ist das einfachste Beispiel für eine von Conway so getauf- ten Billardtisch-Konfiguration. Bei diesen ist eine statische äußere Umrandung erfor- derlich, um in ihrem Innern einen zyklischen Ablauf zu ermöglichen.
Abbildung 6: Das mit Periode 4 rotierende Schaufelrad ist die einfachste Billardtisch-Konfiguration. 3 Gleiter und Raumschiffe Die einfachste translatorisch bewegliche Struktur ist der schon erwähnte Gleiter. Um die Geschwindigkeit eines Gleiters einschätzen zu können, muss man sie zu der höchstmöglichen Geschwindigkeit in Relation setzen. Diese wird für eine diagonale Kette aus Spielmarken erreicht, die von den beiden Enden her bei jeder Generation um eine Marke „abbrennt“. Da es sich hierbei um die prinzipielle Maximalgeschwin- digkeit handelt, wird sie als Lichtgeschwindigkeit bezeichnet. Der Gleiter bewegt sich mit einem Viertel der Lichtgeschwindigkeit in diagonaler Richtung, wie aus Abbildung 7 ersichtlich ist. Zur Berechnung der Geschwindigkeit eines beweglichen, sich selbst reproduzierenden Musters teilt man die Anzahl der Felder, die es in einem Reproduk- tionszyklus durchläuft, durch die Anzahl der dafür benötigten Generationen. Abbildung 7: Der Gleiter bewegt sich mit einem Viertel der Lichtgeschwindigkeit diagonal nach rechts unten. Nach vier Generationen ist er um ein Feld nach rechts und ein Feld nach unten vorangekom- men (also um einen diagonalen Schritt) und hat sich in derselben Orientierung reproduziert. Die ande- ren drei möglichen Bewegungsrichtungen erhält man durch Spiegeln des Gleiters. Conway hat gezeigt, dass keine sich selbst reproduzierende Struktur schneller als mit halber Lichtgeschwindigkeit über das Spielfeld wandern kann. Die einfachsten Strukturen, die sich mit halber Lichtgeschwindigkeit waagrecht über das Feld bewe- gen, sind die drei bereits von Conway gefundenen, in Abbildung 8 dargestellten Raumschiffe. Sie lassen während ihrer Bewegung etwas Müll hinter sich, der sich jedoch sofort wieder auflöst. Die von längeren Raumschiffen erzeugten Abgase gera- ten jedoch in die Bahn des Raumschiffes und zerstören es. Durch eine Eskorte aus kleineren Begleitschiffen kann dies vermieden werden.
Kleines Raumschiff Übergewichtiges Mittleres Großes Raumschiff Raumschiff Raumschiff mit Eskorte Abbildung 8: Die Entwicklung des kleinen Raumschiffs (orthogonaler Gleiter). Nach vier Generatio- nen hat es sich selbst reproduziert und eine Abgasmarke erzeugt. Es hat sich dabei um zwei Felder nach rechts bewegt, seine Geschwindigkeit entspricht somit der halben Lichtgeschwindigkeit. Das mittlere und das große Raumschiff bewegen sich ebenfalls mit halber Lichtgeschwindigkeit. Noch längere Raumschiffe müssen durch eine Eskorte begleitet werden. 4 Zelluläre Automaten und Turing-Maschinen Das Spiel des Lebens ist der berühmteste Vertreter der sogenannten zellulären Au- tomaten. Ein zellulärer Automat besteht aus einem Feld von Zellen, die jeweils ver- schiedene Zustände annehmen können und eine bestimmte Anzahl von Nachbarn haben. Die Zustände der Zellen können sich dabei in einem vorgegebenen Zeittakt in Abhängigkeit vom aktuellen Zustand und dem Zustand der Nachbarn nach festen Regeln ändern. Die Idee zellulärer Automaten ist mindestens so alt wie die ersten Computer. Bereits John von Neumann stellte dazu Anfang der 50er Jahre zusammen mit Stanislaw Ulam Überlegungen an. Zunächst ging es um die Konzeption künstli- cher, sich selbst reproduzierende Systeme, um damit einen der Aspekte biologischen Lebens nachzubilden. Bevor darauf näher eingegangen wird, soll zunächst ein von E. Fredkin um 1960 angegebenes Beispiel für einen zellulären Automaten vorgestellt werden, der simple, sich selbst reproduzierende Strukturen hervorbringen kann. Er ist durch die folgenden Regeln definiert: Man geht wie beim Spiel des Lebens von einem Feld aus quadratischen Zellen mit den beiden möglichen Zuständen „lebend“ und „tot“ aus. Jede Zelle mit keinem, zwei oder vier lebenden direkten Nachbarn stirbt in der nächsten Generation oder bleibt tot. Jede Zelle mit einem oder drei lebenden direkten Nachbarn bleibt am Leben oder wird lebendig. Dabei gilt die von-Neumann-Nachbarschaft, bei der nur die vier direk- ten, aber nicht die diagonalen Nachbarn berücksichtigt werden. Die folgende Abbildung zeigt hierzu zwei Beispiele.
Abbildung 9: Zwei Beispiele zur Reproduktion von Konfigurationen. Nach jeweils vier Schritten hat sich ein Ausgangsmuster viermal selbst reproduziert. Von Neumanns Programm ging weit über diese einfache Reproduktion hinaus. Aus- gehend von einem gleichmäßigem Zellraum, d.h. einem prinzipiell unbegrenztem Spielfeld, zeigte er die prinzipielle Möglichkeit beliebig komplexer sich selbst repro- duzierender Automaten. Von Neumann fand Übergangsregeln, die auf Zellen mit 29 Zuständen (also nicht nur zwei, wie beim Spiel des Lebens) wirkten und bewies da- mit die Existenz eines aus über Hunderttausend Zellen bestehenden „universalen Konstrukteurs“. Dieser ist in der Lage, beliebige Strukturen herzustellen, also insbe- sondere auch sich selbst. Diese Universalität ließ sich nur dadurch erreichen, dass von Neumanns zellulärer Automat in der Lage war, eine Turing-Maschine (vgl. Kapi- tel 6) zu simulieren, mit der prinzipiell jede beliebige Berechnung durchgeführt wer- den kann. Mittlerweile wurde dieser erste Ansatz von Neumanns stark vereinfacht. Der britische Mathematiker Alan M. Turing setzte sich bereits vor der Konstruktion des ersten Computers um 1940 mit den prinzipiellen Möglichkeiten und Grenzen von Rechenmaschinen auseinander. Er zeigte, dass mit dem von ihm beschriebenen, als Turing-Maschine bekannten abstrakten Schema jede Funktion berechnet werden kann, sofern sie überhaupt berechenbar ist. Die Turing-Maschine ist in diesem Sinne also das Konzept eines universellen Computers. Davon ausgehend lässt sich von anderen Ansätzen beweisen, dass sie ebenfalls einen universellen Computer be- schreiben, wenn man ihre Äquivalenz zur Turing-Maschine nachweisen kann. Entgegen Conways anfänglicher Vermutung hat sich herausgestellt, dass sogar das Spiel des Lebens mit seinen einfachen Regeln die Konstruktion eines Computers erlaubt. Voraussetzung dazu war, dass man beliebig wachsende Muster erzeugen konnte. Die von Conway festgesetzten Regeln waren ja gerade so gewählt, dass grenzenloses Wachstum möglichst verhindert werden sollte. Nachdem W. Gosper sich 1970 den von Conway ausgesetzten Preis von 50,- US Dollar verdient hatte, indem ein Anfangsmuster aus lebenden Zellen vorgab, das ins Unendliche wachsen konnte, war der entscheidende Schritt bereits getan. Das Ergebnis war die in Abbil- dung 10 gezeigte Gleiterkanone, die nach jeweils 30 Schritten einen neuen Gleiter aussendet und sich dabei wieder regeneriert. Zusammen mit den Gleitern bildet die Gleiterkanone also eine endlos wachsende Population lebender Zellen. Nach der Gleiterkanone wurden weitere ins unendliche wachsende Muster entdeckt, beispielsweise die Raumschiff-Fabrik, die alle 300 Generationen ein mittelgewichti- ges Raumschiff erzeugt.
Abbildung 10: Eine Gleiterkanone, die bereits drei Gleiter erzeugt hat. Die Gleiter bewegen sich nach rechts oben, so dass ein kontinuierlich wachsender Strom von Gleitern entsteht. Nachdem es nun möglich ist, mit einer Gleiterkanone einen kontinuierlichen Strom aus Gleitern zu erzeugen, liegt es nahe, die Gleiter für die Codierung und Übertra- gung von Nachrichten zu verwenden. Die Gleiter spielen also die Rolle der Bits in einem Computer: Der Wert 1 entspricht einem Gleiter in einem Gleiterstrom, der Wert 0 einem fehlenden Gleiter. Damit nun tatsächlich Rechenoperationen ausge- führt werden können, müssen Verknüpfungen zwischen Gleitern definiert werden. Die einfachste Operation ist das logische NOT, das der Auslöschung eines Gleiters entspricht. Tatsächlich vernichtet ein Gleiter einen anderen vollständig, wenn man zwei Gleiterströme im Winkel von 90 Grad aufeinander richtet. In ähnlicher Weise lassen sich auch andere Verknüpfungen wie OR und AND realisieren. Auch Speicher, bei denen die Lage von Viererblöcken den Speicherzustand bestim- men, wurden bereits konstruiert. Durch Zusammenwirken mehrerer Gleiter können diese Blöcke verschoben werden, was einer Manipulation der Speicherinhalte ent- spricht. Soll nun eine bestimmte Aufgabe gelöst werden, so muss als Eingabe eine bestimmte Anfangskonfiguration (die extrem komplex sein kann) vorgegeben wer- den, die vor allem zahlreiche, passend positionierte Gleiterkanonen beinhaltet. De- tails dazu sind in dem sehr lesenswerten Buch Winning Ways for Your Mathematical Plays [Ber82] beschrieben. Das Spiel des Lebens ist also in dem Sinne universell, als damit in der Tat ein Com- puter simuliert werden kann. Rein theoretisch ist man also in der Lage, all das, was ein Computer berechnen kann, auch mit dem Spiel des Lebens zu berechnen, wenn auch mit einem in der Praxis unrealistischen Aufwand. In diesem Zusammenhang stellt sich aber auch die Frage, ob denn jede beliebige Konfiguration im Spiel des Lebens auftreten kann. Schon 1971 wurde von Roger Banks eine als Paradies bezeichnete Konfiguration gefunden, die aus keiner An- fangsstellung im Spiel des Lebens berechnet werden kann. Um zu zeigen, dass eine Konfiguration tatsächlich keinen Vorgänger hat, muss man von einem Paradies- Kandidaten ausgehend Rückwärtsschritte ausführen und dabei alle möglichen Vor- gänger untersuchen. Da im Spiel des Lebens zwar jede Konfiguration nur einen Nachfolger aber mehrere Vorgänger haben kann, ist der erforderliche Rechenauf- wand ganz erheblich. So ist denn bis heute außer dem Banks-Paradies nur ein einzi- ges weiteres bekannt.
Abbildung 11: Das Bild zeigt ein Muster, das innerhalb der Regeln des Game of Life nicht berechen- bar ist. Für solche auch als „Paradies“ bezeichnete Muster existiert keine Anfangsstellung, aus der heraus sich das gegebene Muster entwickeln könnte. Ein Paradies hat also keinen Vorgänger oder „Vater“. Eine bis heute unbeantwortete Frage ist, ob es Muster gibt, die zwar einen Vater, aber keinen Großvater haben. Auch darauf hat Conway einen Preis von 50,- US Dollar ausgesetzt, der also noch verdient werden will. Zum Schluss nochmals ein Blick zurück auf von Neumanns universellen selbstreproduzierenden Automaten. Da das Spiel des Lebens einen Computer simulieren kann, muss auch Selbstreproduktion möglich sein. Conway geht noch weiter, indem er postuliert, es sei „wahrscheinlich, dass in einem hinreichend großen Lebensraum, der sich anfänglich in einem zufälligen Zustand befindet, nach langer Zeit intelligente, selbstreproduzierende Spezies entstehen“. T. Toffoli, einer der Pioniere in der Erforschung des Zusammenhangs zwischen Physik und Informationswissenschaften sieht gar eine Analogie zwischen dem Spiel des Lebens und der Evolution des Universums, wenn er schreibt: „In gewissem Sinne hat die Natur über Jahrmilliarden immer nur den ‘nächsten Zustand’ des Universums berechnet“. Es ist dies jedoch eine nicht allgemein geteilte Vorstellung, da hier das Universum als streng deterministisch und berechenbar gedacht wird. Andererseits legt die 1974 von Kenneth Wilson vorgeschlagene Gitter-Eichtheorie die Vorstellung des Universums von einem gigantischen zellulären Automaten aus Elementarteilchen nahe [Reb83]. 5 Das Spiel des Lebens, nicht nur in der Ebene Neben Conways bekanntester zweidimensionalen Version des Game of Life wurden auch Varianten in nur einer Dimension oder in drei und mehr Dimensionen unter- sucht. Beschränkt man sich auf eine Dimension, so wird aus dem Spiel des Lebens ein li- nearer zellulärer Automat [Hay84]. Die Population eines solchen Automaten besteht in jeder Generation nur aus einer Linie mit toten oder lebenden Zellen. Zur Visualisie- rung kann man die zu den einzelnen Generationen gehörenden Linien zu einem zweidimensionalen Bild mit einer Zeitachse und einer Raumachse zusammenfügen. Je nach den verwendeten Transformationsregeln bilden sich stabile, oszillierende oder chaotische Zustände aus, die zu komplexen räumlichen und zeitlichen fraktalen
Mustern führen können. Gibt man ein Eingangsmuster vor und beobachtet dann des- sen Entwicklung, so kann bei Transformationsregeln, die zu chaotischem Verhalten führen, schon eine minimale Änderung der Anfangskonfiguration zu einer völlig ande- ren Entwicklung führen. Bereits die folgenden einfachen Transformationsregeln füh- ren zu einem derartigen Verhalten: Man betrachtet eine Nachbarschaft von fünf Zel- len; die mittlere Zelle lebt weiter oder wird ins Leben gerufen, wenn zwei oder vier der vier Nachbarzellen leben, ansonsten stirbt sie oder bleibt tot. Lineare zelluläre Automaten weisen Parallelen zu komplexen, nichtlinearen Syste- men und Selbstorganisationsprozessen auf. In Kapitel 12 wird davon wieder die Re- de sein. Eindimensionale zelluläre Automaten zeigen eine vergleichbare Komplexität wie das Spiel des Lebens und andere zweidimensionale zelluläre Automaten. Von einem speziellen linearen zellulären Automaten wurde denn auch bereits bewiesen [Hay84], dass er eine Turing-Maschine simulieren kann. Lineare zelluläre Automaten sind damit die derzeit einfachste bekannte Struktur, die zu einem universellen Rech- ner äquivalent ist. Interessant ist auch, dass lineare zelluläre Automaten, die zu ei- nem stabilen oder oszillierenden Zustand konvergieren, durch eine besonders einfa- che Klasse von formalen Sprachen, sog. reguläre Sprachen, beschrieben werden können, die ihrerseits wieder äquivalent zu endlichen, deterministische Automaten sind. Lineare zelluläre Automaten jedoch, die komplexes Verhalten zeigen, entspre- chen auch komplexeren formale Sprachen, die über reguläre Sprachen bzw. deter- ministische Automaten hinausgehen. Über diese Zusammenhänge wird in Kapitel 6 noch ausführlicher die Rede sein. Ein andere Weg zur Erweiterung des Spiel des Lebens ist die Ausdehnung auf drei oder noch mehr Dimensionen. Im dreidimensionalen Raum wird ein quadratisches Feld zu einem Würfel mit 26 Nachbarn anstelle von 8. Entsprechend vielfältig sind auch die möglichen Regeln die das Schicksal einer Ausgangskonfiguration bestim- men. Um diese Vielfalt etwas übersichtlicher zu gestalten, hat sich eine abkürzende Notation aus vier Ziffern eingebürgert: • Die erste Ziffer legt fest, wie viele lebende Nachbarn eine lebende Zelle mindes- tens haben muss, damit sie nicht an Vereinsamung stirbt. • Die zweite Ziffer legt fest, wie viele lebende Nachbarn eine lebende Zelle höchs- tens haben darf, damit sie nicht wegen Überbevölkerung stirbt. • Die dritte Ziffer legt fest, wie viele lebende Nachbarn eine tote Zelle mindestens haben muss, damit sie zum Leben erwacht. • Die vierte Ziffer legt fest, wie viele lebende Nachbarn eine tote Zelle höchstens haben darf, damit sie zum Leben erwacht. Die Regeln für Conways ursprüngliches Spiel des Lebens lauten damit Life2333. Die dreidimensionalen Varianten Life4555 und Life5766 wurden von Carter Bays nä- her untersucht [Bay86]. Sie zeigen eine starke Ähnlichkeit mit Life2333, insbesonde- re treten auch stabile sowie zyklische Strukturen wie Blinker auf und vor allem auch dreidimensionale Gleiter.
6 Reversible zelluläre Automaten Die bisher besprochenen zellulären Automaten arbeiten nicht reversibel, also nicht umkehrbar. Das bedeutet, dass von einer bestimmten Konfiguration im Allgemeinen nicht gesagt werden kann, wie die vorangegangene Konfiguration ausgesehen hat, da eine gegebene Konfiguration meist auf vielen verschiedenen Wegen erreicht wer- den kann. Bereits das weiter oben erwähnte Schicksal der Pentominos belegt dies und erst recht die Schwierigkeit, von einem Muster nachzuweisen, ob es ein Para- dies ist. Es ist jedoch durchaus möglich, Transformationsregeln zu finden, die nicht nur in Vorwärtsrichtung deterministisch sind, sondern auch in Rückwärtsrichtung. Das bedeutet, dass zu jeder Konfiguration eine eindeutige Vorgänger- und Nachfol- ger-Konfiguration gehört. Als Konsequenz davon kann man einen reversiblen Auto- maten jederzeit anhalten und rückwärts laufen lassen. Dabei nimmt er jeden durch- laufenen Zustand in umgekehrter Richtung nochmals ein, so dass schließlich in end- lich vielen Schritten die exakte Ausgangskonfiguration wieder erreicht wird. Ein Aus- gangspunkt zur Konstruktion reversibler Transformationsregeln besteht darin, dass man zur Berechnung einer Konfiguration zum Zeitpunkt t nicht nur die vorhergehende zum Zeitpunkt t-1 heranzieht, sondern noch eine weitere Generation zum Zeitpunkt t- 2 [Hay84]. Wegen der Determiniertheit sowohl in die Zukunft als auch in die Vergan- genheit kann es bei der Entwicklung der durch einen reversiblen Automaten erzeug- ten Muster keine Verzweigungspunkte geben, also auch keine Attraktoren, da sich ja im Widerspruch zur Reversibilität sehr viele Ausgangsmuster in ihrer Evolution zu diesem Attraktor hinentwickeln müssten. Anders als in irreversiblen Automaten sind also Attraktoren und damit auch Selbstorganisationsprozesse (siehe Kapitel 12) in reversiblen Automaten ausgeschlossen. Daraus folgt ferner, dass ein reversibler Au- tomat niemals in einen Zyklus geraten kann, andererseits aber auch einen Zyklus niemals verlassen kann, wenn er sich von Anfang an aufgrund der Startkonfiguration in einem Zyklus befindet. Eine interessante und für die Theorie der Computer wichtige Eigenschaft reversibler Automaten ist jedoch die Tatsache, dass die anfänglich vorhandene Information im- mer erhalten bleibt, also weder zunehmen noch abnehmen kann. Dies wurde von Fredkin und Toffoli [Fred82] in einem als Billardkugel-Modell bezeichneten Ansatz genauer erforscht. Dabei geht man von einem idealisierten mechanischem System aus, in dem „Billardkugeln“ reibungsfrei rollen und vollkommen elastisch miteinander und mit den Begrenzungen stoßen. Das Vorhandensein bzw. Fehlen einer Kugel an einer bestimmten Position zu einem bestimmten Zeitpunkt wird als Informationsein- heit (Bit) mit dem Wert 1 bzw. 0 interpretiert. Damit kann man idealisierte reversible logische Gatter konstruieren, die im Prinzip ohne Energieverbrauch arbeiten könnten. Mit diesen Gattern wiederum lässt sich quasi als Gedankenexperiment ein reversib- len Computer aufbauen, der Informationen verarbeiten kann, ohne dabei Energie zu benötigen. Dieser Computer könnte eine die Eingangsdaten repräsentierende Zei- chenkette schrittweise umformen, bis diese das gewünschte Ergebnis repräsentiert. Danach würde derselbe Vorgang rückwärts ablaufen, d.h. die Ergebnis-Zeichenkette würde wieder in die Eingabe-Zeichenkette rücktransformiert. In real existierenden Computern geht ganz im Gegensatz zu diesen idealisierten Verhältnissen tatsächlich Information verloren, und damit geht untrennbar nach den Gesetzen der Thermody- namik bzw. der statistischen Physik ein Energieverlust einher (siehe Kapitel 10). Ins- besondere beim Löschen von Information aus einem Speicher wird Energie dissi- piert. Die Irreversibilität realer Computer geht bereits aus einer so simplen Aufgabe
wie der Berechnung 2+2=4 hervor: Nach Ermittlung des Ergebnisses „4“ werden die beiden Operanden normalerweise gelöscht. Aus dem Ergebnis alleine ist aber nicht mehr zu entnehmen, ob die ursprüngliche Aufgabe 2+2, 1+3 oder noch anders laute- te. Bemerkenswert ist nun, dass sich das Billardkugeln-Modell auf einen reversiblen zel- lulären Automaten übertragen lässt. Die in Abbildung 12 gezeigten Transformations- regeln gehen dabei jedoch nicht von einzelnen Zellen aus, sondern von Vierergrup- pen. Ebenso rotierte Ebenso rotierte Konfigurationen Konfigurationen Abbildung 12: Die Transformationsregeln für den Fredkinschen Billardkugeln-Automaten. Es werden immer Gruppen von vier Feldern betrachtet. Änderungen ergeben sich offenbar nur bei Konfiguratio- nen mit nur einem besetzten Feld, oder zwei diagonal besetzten Feldern. 7 Das Spiel des Lebens als C-Programm Die Regeln des Spiels sind sehr einfach, infolgedessen ist es auch nicht besonders schwierig, ein Programm zu schreiben, das die Entwicklung einer vorgegebenen Po- pulation visualisiert. Im Folgenden ist ein entsprechendes C-Programm aufgelistet. Damit kann auf einem vorgegebenen Feld von Zellen zunächst mit Hilfe der Cursor- Tasten eine Ausgangspopulation von Individuen spezifiziert werden. Danach kann Schritt für Schritt verfolgt werden, wie sich die Population verändert. Allerdings ist wegen der Vermeidung von Grafik-Funktionen das Spielfeld relativ beschränkt. //******************************************************************** // GAME OF LIFE nach Conway // Regeln: Es wird ein rechteckiges Feld von Zellen betrachtet, die // entweder tot sind (0) oder leben (1). Eine Zelle stirbt in der // nächsten Generation an Einsamkeit, wenn weniger als zwei der acht // nächsten Nachbarn leben. Sie stirbt an Überbevölkerung, wenn mehr // als drei Nachbarn leben. Auf einem unbelebten Feld entsteht in der // nächsten Generation eine neue lebende Zelle, wenn das Feld genau // drei lebende Nachbar hat. // Zur Vereinfachung der Abfrage der Nachbarn erhält das Spielfeld // einen Rand mit 0en (=tot). // Code: 0: tot // 1: lebt // 3: lebt in der nächsten Generation // 4: stirbt in der nächsten Generation //******************************************************************** #include #include #define DIM 23 #define ESC 27 #define CR 13 #define RUB 8 #define BLNK 32
#define UP 72 #define DOWN 80 #define LEFT 75 #define RIGHT 77 #define BEEP printf("%c",7) // Piepser #define CLS printf("\x1b[2J") // Bildschirm löschen (ANSI.SYS nötig) // Cursor an Position (row,col) setzen. Ursprung (0,0) ist links oben #define CURS(row,col) (printf("\x1b[%d;%dH",(row+1),(col+1))) // Cursor auf (row,col) setzen und Rest der Zeile löschen #define CLL(row,col) (printf("\x1b[%d;%dH\x1b[K",(row+1),(col+1))) //---------------------------------------------------------------------- // Ein Zeichen von der Tastatur lesen und Tastatur-Puffer leeren. // Beachte: Manche Sonderzeichen bestehen aus einem Null-Byte, // gefolgt von dem eigentlichen Code des Zeichens. // Rückgabewert: ASCII-Code des Zeichens // oder -n für das Sonderzeichen mit Code n. //---------------------------------------------------------------------- int getkey() { int i; do { if((i=getch())==0) i=-getch(); } while(kbhit()); return(i); } //---------------------------------------------------------------------- // Hauptprogramm //---------------------------------------------------------------------- void main() { int i, k, m, n=DIM-1, pos=2*DIM+2, it, c=CR; char a[DIM][DIM]; // Spielfeld CURS(0,pos); printf("Game of Life\n"); for(;;) { //***** Arbeitsschleife if(c==ESC) return; // Beenden if(c==CR) { //***** Spielfeld initialisieren for (i=0; iBLNK) { printf("#"); a[i][k]=1; } } CURS(i,2*k); } it=0; // Iterationszähler vorbesetzen c=BLNK; BEEP; CLL(2,pos); printf("Beenden: \n"); CLL(3,pos); printf("Neu: \n"); CLL(4,pos); printf("Weiter: \n"); CLL(5,pos); CLL(6,pos); }
if(c==BLNK) { //***** Spielfeld ausgeben CURS(6,pos); printf("Iteration %d \n",it++); for (i=0; i
Sie können auch lesen