Wat is Life ?


Door Walter Kosters

Uit IMPACT 2 (Jaargang 1), Februari 1998; uitgave van de Stichting IMPACT

Walter Kosters

Life is een spel, maar wel heel bijzonder. Het is geen gewoon een- of tweepersoonsspel, maar een nulpersoonsspel. Er zijn spelregels die het spel bepalen, maar het enige wat je zelf mag doen is het bepalen van de begintoestand van het speelbord. Je stelt als het ware wat getallen in en vervolgens leun je achterover in je stoel en je kijkt wat de computer voor mooie plaatjes tevoorschijn tovert. Bij Life gaat het om een kolonie levende cellen, waarbij er sommige dood gaan, terwijl op andere plekken leven ontstaat. Zo zie je grillige, maar soms ook zeer regelmatige patronen ontstaan.

Het spel Life is omstreeks 1970 bedacht door de Engelse wiskundige J.H. Conway. De regels voor Life zijn erg simpel. Life wordt gespeeld op een oneindig groot bord met vierkante vakjes, de zogenaamde cellen. Cellen zijn dood of levend. Elke cel heeft precies acht buren (diagonaal doet ook mee). Een dode cel wordt in de volgende generatie levend als zij precies drie levende buren had. Een levende cel blijft leven als zij precies twee of drie levende buren had, anders gaat zij dood (hetzij door eenzaamheid, hetzij door overbevolking).

Het spelen van het spel is nu het geven van een zogenaamde beginconfiguratie, dat wil zeggen een eindig aantal levende cellen, en vervolgens het kijken naar de ontwikkeling die deze groep cellen in de tijd ondergaat. Een klein voorbeeld is
bijgevoegd. Hierbij gaan de open rondjes dood, en de zwarte rondjes blijven leven; op de plek van de stippen ontstaat nieuw leven. Het stelletje cellen dat je hier ziet wordt wel de `glider' genoemd; als je het van een afstandje ziet lijkt het inderdaad net of de kolonie zich glijdend verplaatst.

[LIFE]
Figuur 1

Wat is er nu interessant aan dit spel, afgezien van de soms mooie plaatjes die het oplevert? Er blijken zeer ingewikkelde vragen aan vast te zitten, die binnen de informatica vaak terugkomen. Is het bijvoorbeeld mogelijk om bij een gegeven beginconfiguratie te voorspellen of de kolonie al of niet uitsterft, of misschien zelfs willekeurig groot wordt? Dat deze vraag niet zo simpel is als het lijkt, blijkt wel door eens te kijken wat er gebeurt wanneer je als beginconfiguratie een aantal cellen op een rechte lijn, naast elkaar dus, neemt. Bij 1 of 2 levende cellen naast elkaar sterft de boel meteen uit, bij 3 of 5 naast elkaar krijg je fraai knipperende kolonies, bij 4 naast elkaar komt de zaak na enige tijd tot stilstand. Een regelmaat is nog niet te ontdekken, en dat wordt nog erger als je als beginconfiguratie naar nog meer levende cellen naast elkaar kijkt; 15 cellen naast elkaar sterven uit, maar 16 naast elkaar geven een flink aantal knipperende cellen.

In 1970 won een groepje onderzoekers van het beroemde M.I.T. in Boston een prijs van "slechts" $50 door een beginconfiguratie te fabriceren waarbij het aantal levende cellen groter en groter wordt. Ze noemden het de `glider gun', omdat hij elke dertigste generatie een nieuwe glider als het ware afvuurt. Het bepalen of een willekeurige beginconfiguratie al of niet volledig uitsterft is zo moeilijk, dat als je dat voor een aantal speciale beginconfiguraties zou kunnen oplossen, je meteen de bekende stelling van Fermat-Wiles (er zijn geen gehele getallen a, b en c > 0 en een geheel getal n > 2 met an + bn = cn) zou hebben bewezen! Overigens werkt Conway nu, net als Andrew Wiles, als hoogleraar Wiskunde in Princeton.

Een ander aspect van Life is dat je er zelfs computers mee kan bouwen, of liever gezegd mee kan nabootsen. Zo is het mogelijk, maar wel uiterst ingewikkeld, om NOT-, AND- en OR-poorten te "maken" door geschikte combinaties van gliders en guns op heel speciale plekken ten opzichte van elkaar te plaatsen. Op deze manier kun je laten zien dat vragen over computers eigenlijk vragen over Life zijn, en omgekeerd!

Er is heel veel over Life geschreven, onder andere door Martin Gardner in de Scientific American. Een goed boek waarin veel is te vinden over Life (en trouwens ook over allerlei andere spellen zoals Nim en de kubus van Rubik) is `Winning ways for your mathematical plays' van E.R. Berlekamp, J.H. Conway en R.K. Guy.
Via World Wide Web (WWW) is er ook veel moois te bekijken op Life-gebied, kijk maar eens naar http://radicaleye.com/lifepage/. Van bekende Life-schrijvers als David Bell en David Buckingham zijn hier fraaie teksten te vinden. Voor een public domain Windows-versie:

Het programmeren van een spel als Life is in eerste instantie niet al te moeilijk. In een taal als C++ kun je in een dag of wat zo'n programma in elkaar zetten. Een probleem hierbij is wel dat je niet of nauwelijks een oneindig groot "speelbord" kunt maken in de computer; soms neem je genoegen met alleen de grootte van een beeldscherm, waarbij cellen niet mee doen als ze van het scherm afvallen, of waarbij je ze bijvoorbeeld bovenin het scherm laat binnenkomen als ze er beneden afvallen. Je maakt dan wel een ander spel, wat je al aan een glider gun kunt zien: soms past deze niet eens op een scherm! Een ander punt is dat een en ander op het scherm soms zeer traag kan verlopen; als dat gebeurt wil het wel eens zinnig zijn om het programma, of stukken ervan, in Assembler te schrijven. Dat zit heel dicht tegen de processor van de computer aan en je kunt dan heel uitgekiende snelle programma's maken, waarbij je helaas wel de kracht van een gestructureerde taal als C++ mist. Er zijn overigens heel goede gratis verkrijgbare Life-programma's, voor alle denkbare computers.

Met dank aan Hendrik Jan Hoogeboom

[LIFE]
figuur 2: De 'Glider Gun'


De webpage van Walter Kosters
Naar de index van dit nummer van IMPACT.
Naar de IMPACT Home Page