Gioco life di Conway
Da Wikipedia, l'enciclopedia libera.
Il gioco della vita (Game of Life in inglese) è un automa cellulare sviluppato dal matematico inglese John Conway sul finire degli anni '60. Il gioco della vita è l'esempio più famoso di automa cellulare: il suo scopo è quello di mostrare come comportamenti simili alla vita possano emergere da regole semplici e interazioni a molti corpi, principio che è alla base dell'ecobiologia, la quale si rifà anche alla teoria della complessità. Del gioco sono poi state sviluppate versioni con differenti topologie, ad esempio tridimensionali, come in questo sito, anche per Matlab, differenti regole biologiche, e differenti tipi di cellule.
Indice |
[modifica] Storia
Ha fatto la sua prima apparizione in pubblico nell'edizione dell'ottobre 1970 di Scientific American, nella rubrica «Giochi matematici» di Martin Gardner. Dal punto di vista teorico è interessante perché ha le potenzialità di una macchina di Turing universale: in altre parole ogni cosa che può essere elaborata algoritmicamente può essere elaborata nel contesto del Game of Life.
Dal momento della sua pubblicazione ha ottenuto molto interesse a causa dei sorprendenti modi in cui le diverse configurazioni evolvono. Il gioco è un esempio di sviluppo e auto-organizzazione. È interessante per scienziati, matematici, economisti e altri osservare il modo in cui schemi complessi possono emergere dall'implementazione di regole assai semplici.
Il gioco della vita ha una grande quantità di modelli conosciuti che emergono da particolari configurazioni iniziali. Poco tempo dopo la pubblicazione furono scoperti i modelli dell'R-pentamino e dell'aliante, i quali incrementarono l'interesse verso il gioco. La sua popolarità fu aiutata dal fatto che una nuova generazione di minicomputer venne rilasciata sul mercato, permettendo così di lasciare il gioco in esecuzione per ore su queste macchine che sarebbero state altrimenti inutilizzate durante la notte. Per molti affezionati Life era semplicemente una sfida di programmazione, un modo divertente per sprecare i cicli delle CPU. Per molti altri, invece, Life aveva più connotati filosofici. Si sviluppò un culto durante gli anni '70 e nella metà degli anni '80.
[modifica] Descrizione
Si tratta in realtà di un gioco senza giocatori, intendendo che la sua evoluzione è determinata dal suo stato iniziale, senza necessità di alcun input da parte di giocatori umani. Si svolge su una griglia di caselle quadrate (celle) che si estende all'infinito in tutte le direzioni; questa griglia è detta mondo. Ogni cella ha 8 vicini, che sono le celle ad essa adiacenti, includendo quelle in senso diagonale. Ogni cella può trovarsi in due stati: viva o morta (o accesa e spenta, on e off). Lo stato della griglia evolve in intervalli di tempo discreti. Gli stati di tutte le celle in un dato istante sono usati per calcolare lo stato delle celle all'istante successivo. Tutte le celle del mondo vengono quindi aggiornate simultaneamente nel passaggio da un istante a quello successivo: passa così una generazione.
Le transizioni di stato dipendono unicamente dal numero di vicini vivi:
- Una cella morta con esattamente 3 vicini vivi nasce, diventando viva.
- Una cella viva con 2 o 3 vicini vivi sopravvive; altrimenti muore (per isolamento o sovraffollamento)
[modifica] Esempi di configurazioni
Nel gioco della vita compaiono configurazioni di tipi diversi, tra cui configurazioni statiche, configurazioni periodiche (oscillatori - un soprainsieme delle configurazioni statiche), e configurazioni che trasportano se stesse in giro per il mondo (navicelle spaziali). Gli esempi più semplici di queste tre classi sono raffigurati sotto, con le celle vive in nero, e le celle morte in bianco.
blocco | barca | lampeggiatore | rospo | aliante | astronave |
Il blocco e la barca sono oggetti stabili, il lampeggiatore e il rospo sono oscillatori, l'aliante e l'astronave leggera sono navicelle spaziali che si spostano per il mondo intanto che il tempo scorre.
Le configurazioni chiamate methuselah possono evolversi per lungo tempo prima di ripetersi. Il diehard (morte difficile) è uno schema che alla fine scompare, dopo 130 generazioni. La ghianda impiega 5206 generazioni per generare 13 alianti e poi si stabilizza nella forma di tanti oscillatori.
diehard | ghianda |
Nell'apparizione originale del gioco, Conway offrì un premio in denaro per un qualunque schema che crescesse indefinitamente. Il primo fu trovato da Bill Gosper nel novembre del 1970. Questi schemi includono i gun (fucili), che sono stazionari e sparano alianti o altre navicelle, i fumatori, che si muovono lasciando dietro di loro una coda di detriti statici, e i rastrelli, che si muovono ed emettono navicelle. Gosper ha più tardi scoperto uno schema con un tasso di crescita quadratico, chiamato reattore, che lavorava lasciando dietro di sé una coda di fucili. Da allora sono state create complicate costruzioni, tra cui porte logiche per alianti, un sommatore, un generatore di numeri primi, e una cella che emula lo stesso gioco della vita riscalato nello spazio e nel tempo.
Il primo emettitore di alianti scoperto è tuttora il più piccolo conosciuto:
Schemi più semplici, anch'essi dotati di crescita infinita, furono scoperti più tardi. Tutti e tre i seguenti schemi hanno una crescita infinita. I primi due creano un motore di interruttori a blocchi (blocklaying switch engine) ciascuno, mentre il terzo ne crea due. Il primo ha solo 10 celle vive (che sono state dimostrate essere il minimo). Il secondo si situa in un quadrato 5 per 5. Il terzo è alto solo una riga.
Sono possibili interazioni interessanti tra alianti e altri oggetti. Per esempio, se due alianti colpiscono un blocco nella maniera giusta, il blocco si muove verso la sorgente degli alianti. Se tre alianti sono lanciati nella giusta maniera il blocco si muove allontanadosi dalla sorgente degli alianti. Questa memoria a blocchi può essere usata per simulare un contatore. È possibile costruire porte logiche AND, OR e NOT usando alianti. È possibile costruire una configurazione che agisca come una macchina a stati finiti connessa a due contatori. Questo ha lo stesso potere computazionale di una macchina di Turing universale (Vedi contatore per la prova), così il gioco della vita è potente quanto un qualunque computer con memoria infinita: è Turing equivalente. Inoltre, uno schema può contenere un insieme di fucili che si combinano per creare nuovi oggetti, tra cui copie dello schema originale. Può essere costruito un costruttore universale che contenga un computer Turing equivalente, e che può costruire numerosi tipi di oggetti complessi, includendo copie di sé stesso. (Descrizioni di queste costruzioni si trovano in (Metodi vincenti per i tuoi giochi matematici) di John Conway, Elwyn Berlekamp e Richard Guy).
[modifica] Voci correlate
[modifica] Altri progetti
- Wikibooks contiene testi o manuali su come creare un programma in C++ per realizzare il gioco della vita
- Wikimedia Commons contiene file multimediali su Gioco life di Conway
[modifica] Collegamenti esterni
- 3d game of life simulation inside a 2.5d cellular automaton
- Articolo dell'ottobre 1970 di Scientific American
- Le jeu de la vie de John H. Conway
- Game of Life
- What is the Game of Life?
- Game of Life scaricabile
- Life Simulation - Another aspect of Life (Java-Applet)
- (IT) Il gioco Life
- (EN) Conway's Game of Life Simulator for Microsoft Windows.
- Portale Matematica: accedi alle voci di Wikipedia che parlano di matematica