(Translated by https://www.hiragana.jp/)
Jeu de la vie — Wikipédia Aller au contenu

Jeu de la vie

Un article de Wikipédia, l'encyclopédie libre.
Un canon à planeurs de période 30.

Le jeu de la Vie (Game of Life) est un automate cellulaire - devenu un jeu de simulation mathématique - imaginé par John Horton Conway en 1970. Malgré des règles très simples, il est Turing-complet.

Le jeu de la Vie est un « jeu à zéro joueur », puisqu'il ne nécessite aucune intervention du joueur lors de son déroulement. Il s’agit d’un automate cellulaire, un modèle où chaque état conduit mécaniquement à l’état suivant à partir de règles préétablies.

Le jeu se déroule sur une grille à deux dimensions, théoriquement infinie, dont les cases — appelées « cellules », par analogie avec les cellules vivantes — peuvent prendre deux états distincts : « vivante » ou « morte ».

Une cellule possède huit voisines, qui sont les cellules adjacentes horizontalement, verticalement et diagonalement.

À chaque itération, l'état d’une cellule est entièrement déterminé par l’état de ses huit cellules voisines, selon les règles suivantes :

Une chute de « bombes » non périodique.
  • Une cellule morte possédant exactement trois cellules voisines vivantes devient vivante (elle naît) ;
  • Une cellule vivante possédant deux ou trois cellules voisines vivantes le reste, sinon elle meurt.

Ainsi, la configuration donne au tour suivant la configuration qui redonne ensuite la première.

On peut également formuler cette évolution ainsi :

  • si une cellule a exactement trois voisines vivantes, elle est vivante à l’étape suivante.
C’est le cas de la cellule verte dans la configuration de gauche ;
  • si une cellule a exactement deux voisines vivantes, elle reste dans son état actuel à l’étape suivante.
Dans le cas de la configuration de gauche, la cellule située entre les deux cellules vivantes reste morte à l’étape suivante ;
  • si une cellule a strictement moins de deux ou strictement plus de trois voisines vivantes, elle est morte à l’étape suivante.
C’est le cas de la cellule rouge dans la configuration de gauche.

L'état suivant d'une cellule est : (S = 3) OU (E = 1 ET S = 2).

Avec :

  • S : nombre actuel de cellules vivantes dans son voisinage (entier naturel compris entre 0 et 8 inclus) ;
  • E : état actuel de la cellule (entier naturel égal à 0 pour une cellule morte et égal à 1 pour une cellule vivante).

Légende des schémas

[modifier | modifier le code]

Afin de représenter le processus, les cellules vivantes sont généralement représentées colorées sur la grille, sur un fond de cellules mortes incolores.

Les schémas de cet article suivent les conventions de couleur suivantes :

  • bleu : cellules en cours de vie ;
  • vert : cellules naissantes ;
  • rouge : cellules mourantes ;
  • jaune : cellules ne vivant qu’une seule génération.

Le jeu de la Vie est inventé en 1970 par John Horton Conway, professeur de mathématiques à l’université de Cambridge, au Royaume-Uni.

J. H. Conway s’intéresse alors à un problème proposé par le mathématicien John Leech dans le domaine de la théorie des groupes et qui avait trait à l’empilement dense de sphères à 24 dimensions (connu comme le réseau de Leech). Il découvre quelques propriétés remarquables et publie les résultats de son étude en 1968. Conway est également intéressé par un problème présenté vers les années 1940 par un mathématicien renommé : John von Neumann.

Ce dernier a essayé de trouver une hypothétique machine qui pourrait s’autoreproduire. Il y parvient en construisant un modèle mathématique aux règles complexes sur un repère cartésien. Conway simplifie les idées de von Neumann en couplant ses résultats précédents sur les réseaux de Leech avec ses travaux sur les machines auto réplicantes, il donne naissance au "jeu de la Vie".

Le premier contact entre le grand public et ces travaux se fait en 1970 à travers une publication dans Scientific American dans la rubrique de Martin Gardner : « Mathematical Games »[1].

Gardner écrit dans ses colonnes que « le jeu de la Vie » rendit Conway rapidement célèbre et il ouvrit aussi un nouveau champ de recherche mathématique, celui des automates cellulaires. En effet, les analogies du jeu de la Vie avec le développement, le déclin et les altérations d’une colonie de micro-organismes, le rapprochent des jeux de simulation qui miment les processus de la vie réelle. »

D’après Gardner, Conway expérimenta plusieurs jeux de règles concernant la naissance, la mort et la survie d’une cellule avant d’en choisir un où la population des cellules n’explose pas (ce qui arrive souvent lorsque les conditions de naissances sont moins strictes) mais où des structures intéressantes apparaissent cependant facilement. À l’origine, John Conway y jouait à la main, en utilisant un plateau de go pour grille et des pierres de go pour matérialiser les cellules vivantes.

Plusieurs structures intéressantes furent découvertes, comme le « planeur », un motif qui se décale en diagonale toutes les quatre générations, ou divers « canons » qui génèrent un flux sans fin de planeurs. Ces possibilités augmentent l’intérêt pour le jeu de la Vie. Sa popularité augmente d’autant plus vite à une époque où une nouvelle génération de mini-ordinateurs plus économiques est commercialisée, ce qui permet de tester des structures pendant la nuit, lorsque personne d’autre n'utilise les ordinateurs.

Vers la fin des années 1980, la puissance des ordinateurs est suffisante pour permettre la création de programmes de recherche de structures automatiques efficaces ; couplés au développement massif d’Internet, ils conduisent à un renouveau dans la production de structures intéressantes.

Au bout du compte, le jeu de la Vie attire plus l’intérêt du grand public sur les automates cellulaires (entre autres grâce à divers économiseurs d’écran) que, par exemple, tous les travaux de Edgar Frank Codd, spécialiste reconnu du domaine et auteur de l’ouvrage de référence Cellular automata (1968)[2].

Des structures, constituées de plusieurs cellules, peuvent apparaître dans l’univers ; les plus classiques sont :

Il existe également d’autres structures, qui apparaissent beaucoup plus rarement (voire pas du tout pour les jardins d'éden) dans l’univers de jeu :

bloc de quatre cellules.

Structures stables

[modifier | modifier le code]
Départ de floraison.

Les structures stables (en anglais still life) sont des ensembles de cellules ayant stoppé toute évolution : elles sont dans un état stationnaire et n’évoluent plus tant qu’aucun élément perturbateur n’apparaît dans leur voisinage. Un bloc de quatre cellules est la plus petite structure stable possible.

Certaines figures se stabilisent en structures florales après une succession d'itérations comparables à une floraison.

Oscillateurs

[modifier | modifier le code]
Grenouille.

Les oscillateurs se transforment de manière cyclique, en revêtant plusieurs formes différentes avant de retrouver leur état initial. Des figures de ce type sont très nombreuses : on en connaît actuellement des centaines[3]. La « grenouille » est une structure qui se répète toutes les deux générations.

Elles peuvent apparaître relativement facilement dans l’univers de jeu par l’évolution spontanée de « graines » beaucoup plus simples.

Planeur.

Les vaisseaux — ou navires — (en anglais spaceships, « vaisseaux spatiaux ») sont des structures capables, après un certain nombre de générations, de produire une copie d’elles-mêmes, mais décalées dans l’univers du jeu.

Le déplacement d’un vaisseau qui retrouve après n étapes sa configuration initiale déplacée de A cases horizontalement et de B cases verticalement est noté A-B, et sa vitesse (A, B)c/n, où c représente la « vitesse de la lumière » dans le jeu de la Vie, c'est-à-dire la vitesse maximale d'une cellule par génération. L’existence de vaisseaux de type A - B pour A et B quelconques a été démontrée[réf. souhaitée]. On distingue :

  • des vaisseaux de type transversal (ou orthogonaux), c’est-à-dire A = 0 ou B = 0 ;
  • des vaisseaux de type diagonal, avec A = ± B ;
  • des vaisseaux ayant un déplacement oblique, c'est-à-dire A ≠ ± B. On parle aussi de vaisseau-cavalier (knightship en anglais).

Le premier vaisseau oblique, appelé Gemini, a été découvert par Andrew J. Wade en 2010[4]. Il se déplace de 5 120 cellules verticalement et de 1 024 cellules horizontalement toutes les 33 699 586 générations. Des variantes existent où sa vitesse et sa période sont différentes. C'est aussi un constructeur universel.

On prouve également qu’un vaisseau de type A - B a nécessairement une période N ≥ 2(A+B)[5], donc que la vitesse maximale pour un vaisseau diagonal est (1, 1)c/4, et que celle pour un vaisseau orthogonal (horizontal) est (2, 0)c/4 = (1, 0)c/2.

On sait construire des vaisseaux de taille et de période aussi grandes que souhaitées, en utilisant des séries de composants.[réf. souhaitée]. Le planeur est le plus petit vaisseau du jeu de la Vie, qui possède aussi la plus grande vitesse pour un vaisseau diagonal.

Mathusalems

[modifier | modifier le code]

Les mathusalems sont des structures actives qui mettent un certain temps avant de se stabiliser. Certains, comme les « lapins », mettent plus de 15 000 générations avant de se stabiliser en un nombre plus ou moins important de débris variés.

Les puffeurs (de l’anglais puffer, « générateur de fumée ») sont des configurations qui se déplacent en laissant derrière elles une traînée constituée de débris.

Premier canon découvert.

Les canons sont des configurations qui émettent un autre motif, tel qu'un vaisseau, à intervalles réguliers. Ces vaisseaux sont des motifs qui continuent de se déplacer sur la grille de jeu. La périodicité des canons, soit l'intervalle de temps après lequel ils répètent leur comportement, peut varier. Voici quelques précisions sur les différents types de canons :

  • Canon à planeurs (glider gun) : le plus célèbre est le canon à planeurs de Gosper, qui produit un planeur toutes les 30 générations. Il a été découvert par Bill Gosper en 1970 et fut la première structure connue à avoir une croissance infinie.
  • Autres canons : il existe d'autres canons qui produisent des vaisseaux spatiaux ou d'autres motifs à différents intervalles. Certains peuvent le faire toutes les 15, 23, 60, 120, 240 générations, etc. La période dépend de la complexité de la structure du canon.
  • Canons pseudo-aléatoires : il existe également des sortes de canons qui produisent des vaisseaux de manière pseudo-aléatoire. Ces structures ne sont pas totalement imprévisibles, mais elles ont des règles sous-jacentes complexes qui rendent difficile la prévision exacte de quand un vaisseau sera émis.

La variation des périodes des canons est souvent exploitée par les passionnés pour construire des calculateurs ou d'autres structures complexes au sein de l'univers du jeu de la Vie.

De telles structures peuvent être créées à partir de puffeurs que l’on modifie afin que les débris s’agencent sous forme de navires. Le premier canon à avoir été découvert émet un planeur toutes les trente générations.

Jardins d'Éden

[modifier | modifier le code]
Le premier jardin d’Éden trouvé en 1971, par Banks, Beeler et Schroeppel.

Un jardin d’Éden est une configuration sans passé possible : aucune configuration ne donne à l’étape suivante un jardin d’Éden.

La démonstration mathématique se fonde sur la combinatoire et se trouve notamment dans Winning Ways for your Mathematical Plays, livre publié en 1982 par Berlekamp, Conway, et Guy.

Constructeurs universels

[modifier | modifier le code]

En 2010, Gemini, le tout premier constructeur universel du jeu de la Vie, fut découvert. Cette immense figure fait 4 217 807 cellules sur 4 220 191. En avançant, cette figure crée une copie d'elle-même en détruisant la précédente. L'opération prend environ 34 millions de générations. Comme Gemini se déplace et ne laisse rien derrière lui, c'est aussi un vaisseau. C'est d'ailleurs le premier vaisseau à se déplacer obliquement, c'est-à-dire ni orthogonalement ni diagonalement.

Dimension et complexité

[modifier | modifier le code]
Le clown émerge à l’itération 110 d’une dynamique d’un réseau amorcé à partir d’un U initial de sept cellules.

La puissance et la capacité mémoire des ordinateurs personnels depuis l'exploitation de systèmes 64 bits permet l’exploration de très grands espaces cellulaires du jeu de la Vie. On peut ainsi en espérer l’émergence de structures complexes d’un haut niveau d’auto-organisation, voire d’esthétique. Stephen Wolfram et d’autres[6],[7] ont exploré cette voie. Dès les années 1980, le clown émerge à l’itération 110 d’une dynamique d’un réseau amorcé à partir d’un U initial de sept cellules (appelé généralement pi heptomino) formant une image de la lettre U.

N.B. Le clown est formé à l’envers. Pour voir un clown comme sur l’illustration, c’est un U inversé qu’il faut dessiner.

Détails sur la dynamique du réseau : ce « U » de sept cellules (également appelé « heptomino pi ») évolue vers une structure complexe et « organique » en passant par des formes très esthétiques. De plus, la structure est autoreproductible avec un déphasage, la nouvelle structure fille (itération 45) interférant avec une version de la structure mère (itération 15) en cours d’évolution. À l’itération 110, on obtient cette image de « clown ». Puis le réseau se stabilise sur une forme stable oscillante complexe[8].

Questions mathématiques

[modifier | modifier le code]

Certaines propriétés du jeu de la Vie ont pu être démontrées, en particulier :

  • la croissance d’une configuration est au maximum en t2. Cette propriété est triviale pour tout automate cellulaire bidimensionnel : dans le cas du jeu de la Vie, comme la vitesse de transmission de l'information est de une case par pas de temps dans chacune des huit directions, le nombre de cellules vivantes est trivialement limité par une borne en 8t2. Nous ne connaissons pas encore la configuration dont le taux de croissance est maximal.
  • l’existence de portes logiques ET, OU, NON[9]. Ces portes logiques permettent de coder une machine de Turing universelle au sein du jeu de la Vie. Par conséquent, le problème qui consiste à prédire le comportement asymptotique de toute structure du jeu de la Vie est indécidable.

Calculabilité

[modifier | modifier le code]

Malgré sa simplicité, ce jeu est une machine de Turing universelle[10] : il est possible de calculer tout algorithme pourvu que la grille soit suffisamment grande et les conditions initiales correctes.

De nombreux programmes informatiques simulent des automates cellulaires dont le jeu de la Vie, comme Mirek's Cellebration[11]. Ceux qui sont écrits en Java ou JavaScript peuvent être inclus aisément dans une page web. Ces simulateurs sont cependant dits peu efficaces quand ils représentent le terrain par un tableau bi-dimensionnel et se contentent de faire évoluer les cellules en suivant les règles de Conway.

En 1980, Bill Gosper a inventé puis écrit Hashlife, un algorithme de simulation beaucoup plus efficace, permettant de manipuler plusieurs millions de cellules sur des millions de générations en des temps plus courts. Cet algorithme repose sur une idée différente : en effet, si l’on considère une portion de l’espace du jeu relativement isolé de ses voisines, il est possible de la faire « tourner » pendant un certain nombre n de générations, puis de mémoriser le résultat. Si la configuration de départ se reproduit ailleurs, on pourra alors « sauter » directement n générations pour cette partie du jeu. Ce nouvel algorithme faisait donc « tourner » différentes portions de l’espace à des vitesses différentes et parvenait à préserver la cohérence aux bordures de chaque région ainsi simulée. Il faisait appel à une table de hachage pour mémoriser et retrouver rapidement des configurations locales.

Le jeu de la Vie est extrêmement sensible à la manière de calculer la génération suivante. L'implémentation classique est synchrone, c'est-à-dire que l'état de chaque cellule de génération n+1 est calculé à partir de l'état des cellules de génération n. Bersini et Detours ont montré que les comportements intéressants du jeu de la Vie disparaissent avec la quasi-totalité des schémas de mise à jour non synchrones (où les états n+1 peuvent s'influencer les uns les autres, comme dans la vraie vie)[12]. Cependant, Nehaniv a montré que tout comportement synchrone peut être émulé par des automates cellulaires asynchrones et il est donc possible de retrouver le comportement du jeu de la Vie sans « horloge globale » cadençant l'évolution des générations[13],[14].

Depuis 2008, de nombreux programmes (dont le plus connu est Golly[15]) intègrent cet algorithme dans une interface graphique. Ils ont permis de créer des configurations énormes et très ingénieuses et de suivre leur évolution, insufflant une nouvelle dynamique dans l’étude déjà très riche de cet automate cellulaire.

Depuis 2012, une recherche sur le moteur de recherche Google des termes « Conway's game of life » fait apparaître un easter egg : un jeu de la Vie interactif s'affiche en arrière-plan[16].

Il existe des variantes du jeu de la Vie, fondées sur des règles de voisinage légèrement différentes, par exemple HighLife ou Day & Night. Cette variante comporte deux types de cellules, les « positives » et les « négatives », chacune répondant aux mêmes règles, à la différence du signe. Une cellule positive nécessite une somme de 3 pour « naître », une négative une somme de −3. Les cellules vivantes s’intègrent dans le bilan des cellules alentour pour leur survie ou leur déclin. Les deux populations ne peuvent en général survivre côte à côte.

Bibliographie

[modifier | modifier le code]

Document utilisé pour la rédaction de l’article : document utilisé comme source pour la rédaction de cet article.

  • (en) Martin Gardner, « Mathematical Games. The fantastic combinations of John Conway’s new solitaire game « life », Scientific American, no 223,‎ , p. 120-123 (lire en ligne, consulté le ) Document utilisé pour la rédaction de l’article
  • (en) Edgar Frank Codd, Cellular Automata, New York Academic Press, Document utilisé pour la rédaction de l’article
  • Jean-Paul Delahaye, Jeux finis et infinis, Éditions du Seuil, (ISBN 978-2-02-096483-8), chap. 1 (« Quarante ans de jeu de la vie »)

Notes et références

[modifier | modifier le code]

Références

[modifier | modifier le code]
  1. (Gardner 1970).
  2. (Codd 1968).
  3. (en) « Liste d'oscillateurs », sur LifeWiki
  4. (en) Adam P. Goucher, Oblique Life spaceship created, Game of Life News, 19 mai 2010, (consulté le 11 mai 2010).
  5. Thomas Morin, « Vitesse limite des vaisseaux : démonstration », (consulté le ).
  6. Bernard Feltz et al., Emergence and Reductionism: from the Game of Life to Science of Life, dans SELF-ORGANIZATION AND EMERGENCE IN LIFE SCIENCES, Springer Netherlands Editor, 2006 (ISBN 978-1-4020-3916-4) (imprimé) 978-1-4020-3917-1, lire en ligne.
  7. N. M. Gotts, Emergent phenomena in large sparse random arrays of Conway’s Game of Life, dans INTERNATIONAL JOURNAL ON SYSTEM SCIENCES, vol. 31, no 7, juillet 2000, p. 873-894, lire en ligne.
  8. Jean-Claude Perez, « DE NOUVELLES VOIES VERS L’INTELLIGENCE ARTIFICIELLE : pluri-disciplinarité, auto-organisation et réseaux neuronaux », 1988, Éd. Masson Paris (ré-édition en 1989), p. 261-262 (ISBN 2-225-81815-0).
  9. E. R. Berlekamp, J. H. Conway et R. K. Guy, Winning Ways for Your Mathematical Plays, A. K. Peters/CRC Press, 2e éd., 30 mars 2004.
  10. (en) Paul Rendell, « A Universal Turing Machine in Conway's Game of Life », IEEE,‎ (DOI 10.1109/HPCSim.2011.5999906, lire en ligne Accès payant [PDF])
  11. (en) « Mirek's Cellebration Download Area », sur mirekw.com (consulté le ).
  12. H. Bersini, V. Detours, « Asynchrony Induces Stability in Cellular Automata Based Models », In Proceedings of the IVth Conference on Artificial Life - MIT Press/Bradford Books, 1994.
  13. C. L. Nehaniv, « Evolution in Asynchronous Cellular Automata », Artificial Life VIII, 65-73, MIT Press, 2002.
  14. C. L. Nehaniv, « Asynchronous Automata Networks Can Emulate Any Synchronous Automata Network », International Journal of Algebra & Computation, 14(5-6):719-739, 2004.
  15. Golly sur SourceForge.net.
  16. Liste des œufs de Pâques Google (en).

Sur les autres projets Wikimedia :

Articles connexes

[modifier | modifier le code]

Liens externes

[modifier | modifier le code]