Vi presenterò il concetto di cellular
automata mostrandovi un automata
molto semplice, bidimensionale, chiamato
"Il gioco della vita". Questa è una simulazione del
gioco della vita chiamato "minilife.nlogo", che
potete scaricare dalla pagina del materiale del corso.
Parlerò in dettaglio di che cos'è il gioco della vita, in realtà non è un gioco,
ma per ora solo per mostrare il tipo di
pattern che sono stati creati. Abbiamo questa griglia di celle, ogni cerchio bianco è una cella.
I cerchi possono diventare bianchi o neri, quindi quando faccio click su Randomize, in modo casuale si crea un 12%
di celle nere. Ciascuna cella segue una regola semplice, la stessa regola semplice, che considera
l'ambiente locale, cioè il colore delle celle adiacenti, e in ciascun passo, tutte le celle
cambieranno colore in base a queste semplici regole. Vediamo mentre va.
Quindi, diventano strutture molto semplici dopo essere state molto complesse. Quindi,
alziamo la percentuale, diciamo 50%. Setup pulisce, Randomize fa il 50% di celle nere,
e ora, facciamo Go. Abbiamo dei comportamenti complicati, e alla fina diventano forse più semplici.
Okay, fatemi passare alle immagini e raccontarvi un po' di ciò che abbiamo visto.
Il gioco della vita è un esempio di una vasta classe di modelli chiamati "cellular automata", che sono
modelli idealizzati di sistemi complessi. Sono grandi reti di componenti semplici, dove i
componenti qui sono le celle, e la parte di rete è la connessione delle celle alle vicine,
o possibilmente ad altre celle lontane. C'è un comunicazione limitata
tra i componenti. I componenti possono comunicare solo con i diretti vicini, non c'è
controllo centrale, non c'è nessuna cella che controlla le altre, e come potete vedere
nell'esempio del gioco della vita, ci sono delle dinamiche molto complicate sebbene le regole siano semplici.
E come vedremo tra un po', i cellular automata hanno la capacità di elaborare e calcolare
cose molto sofisticate. Si possono anche evolvere
tramite algoritmi genetici. Quindi vedremo che i cellular automata portano insieme parecchi
dei temi che abbiamo visto fino ad ora, dalla dinamiche, alle informazioni, agli
algoritmi genetici, e mettono tutto insieme in un modello di sistema complesso.
Fatemi commentare brevemente la terminologia. Il singolo è un "cellular automaton" che è uno
di loro, abbreviato "CA". Il plurale è "cellular automata", che è più di uno. Anche questo
a volte è abbreviato "CA", ma per non dare luogo ad ambiguità lo abbrevieremo "CAs", con una s piccola.
Per la pronuncia, qui in America diciamo "cellular auTOmata," ma
in altri paesi, compreso la Gran Bretagna, sono chiamati "cellular autoMAta." I nostri
partecipanti inglesi possono correggermi se sbaglio. Quindi il gioco della vita è probabilmente
il più famoso cellular automaton del mondo. Come detto, non è veramente un gioco, ma piuttosto è
un oggetto matematico o di calcolo. E' stato pubblicato nel 1970 da un matematico inglese,
John Conway, ed è stato largamente pubblicizzato, in particolare all'inizio dalla rubrica
"Giochi Matematici" di Martin Gardner nel Scientific American. La ragione per cui John Conway
lo ha chiamato "Vita" era perché era stato ispirato dai modelli di Von Neumann di processi di tipo vitale
nei cellular automata, di cui parleremo fra poco. In breve, Conwey voleva
un sistema semplice che mostrasse il comportamento emergente e l'auto-organizzazione. E inventò il gioco
della vita. Come vi ho mostrato prima, il gioco della vita è giocato, o si auto-gioca, su una griglia di celle.
Le celle sono rappresentate da cerchi bianchi e neri. Una cella nera è detta viva,
e una cella bianca è detta morta. Questa è la terminologia di Conway. Ciascuna cella vive in un distretto.
Il distretto di una cella è la cella stessa, come centro, e le sue vicine. Il mondo,
come un intero, si avvolge intorno ai bordi. Quindi, per esempio, questa cella al bordo -- è
il vicino sinistro dei quella, sulla destra. Se guardiamo a questa cella qui, il suo vicino a sud
è questa cella in alto. Quindi i bordi si avvolgono.
Ecco le regole seguite da ciascuna cella.
La prima regola è per le celle vive, cioè le celle nere, che rimangono vive i passi successivi solo se due o
tre vicini sono vivi. Altrimenti, muore, Una cella morta diventa viva al passo successivo
solo se esattamente tre vicini sono vivi. Quindi queste sono le regole per ogni cella. Tutte le celle sono
aggiornate simultaneamente, in tempi discreti. Vedrete come funziona tra un minuto.
Ecco come appare nel modello NetLogo, minilife.nlogo. Vediamo che le celle verdi,
qui, sono quelle che rimarranno o
diventeranno vive il passo successivo.
Questa nel mezzo ha due vicini
neri che sono vivi, quindi rimane
viva. Questa è morta, ma ha
tre vicini neri che sono vivi,
quindi diventerà viva al
prossimo passo. Il resto di loro non
ha abbastanza vicini vivi, né per
rimanere vivo, né per ritornare ad essere vivo.
Quindi, ecco cosa succede
al passo successivo, nel piccolo riquadro di
nove celle. Proviamo la vostra comprensione con un breve quiz. Il quiz ha tre domande.
In ciascuna domanda avete una griglia di 5 x 5. Assumiamo che i bordi si avvolgano,
se c'è bisogno. La domanda è: qual'è lo stato della cella centrale, indicata dalla freccia rossa, al
passo successivo? Provate, e guardate il video
della risposta dopo che avete fatto.