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.