View Full Version : [C]ellular Automaton: Simulazione di vita e forme intelligenti
Salve ragazzi,
siccome in questi giorni ho imparato molto su questo forum, volevo rendervi partecipi di uno dei programmi più belli che abbia avuto l'onore di scrivere:
Life (vita, in inglese) è un automa cellulare inventato dal matematico John Conway per studiare un’emulazione elementare dei processi vitali e diventato famoso dopo la sua descrizione su Scientific American nel 1971.
L’automa è composto da una matrice N × M di elementi, dette cellule, che possono essere in due stati: vive o morte. Attorno a ogni cellula ci sono otto cellule adiacenti (nord, sud, est, ovest, nord-ovest, nord-est, sud-ovest e sud-est): si noti che la matrice è pensata come un toro, e quindi il bordo destro è adiacente a quello sinistro, così come il bordo superiore è adiacente a quello inferiore. Per esempio, la cella di coordinate (0, 0) ha a nord la cella (0, M − 1) e a ovest la cella (N − 1, 0).
Le regole di evoluzione della vita in Life sono molto semplici: se una cellula è viva, sopravvive all’istante di tempo successivo se nel suo intorno ci sono due o tre cellule vive; altrimenti muore per solitudine o sovraffollamento. Se una cellula è morta e nel suo intorno ci sono esattamente tre cellule vive diventa viva all’istante successivo.
Se volete avere ulteriori indicazioni per scriverlo, andate qui:
http://vigna.dsi.unimi.it/labprog/temi2006/lab7.pdf
Se volete una versione già pronta scrivetemi un PM, ma prima mi piacerebbe vedere le vostre versioni.
Life ha un significato matematico e filosofico profondo: Sulla griglia di Life si possono simulare forme di vita e adirttura processori usando delle semplicissime regole, spingendoci a porci la domanda: Ma data una matrice abbastanza grande, potremmo assistere alla nascita di forme di vita intelligenti?
Per una descrizione dettagliata, corredata di software funzionante e descrizione accurata (molto educativo!):
http://www.math.com/students/wonders/life/life.html
DanieleC88
20-10-2008, 23:52
Life ha un significato matematico e filosofico profondo: Sulla griglia di Life si possono simulare forme di vita e adirttura processori usando delle semplicissime regole, spingendoci a porci la domanda: Ma data una matrice abbastanza grande, potremmo assistere alla nascita di forme di vita intelligenti?
Questo credo purtroppo di no, perché le cellule rappresentano un automa con due soli stati (vivo/morto) e che costituiscono un grosso automa che si porta da uno stato ad un altro con la sola possibilità di sopravvivere o morire. :)
Niente purtroppo che possa sintetizzarsi in una forma vitale (meglio: "un essere pensante"). :p
Però il programmino senza dubbio è affascinante. Ce l'ho installato con XScreenSaver, all'epoca di WindowMaker lo vedevo spesso in azione. :D
ciao ;)
Questo credo purtroppo di no, perché le cellule rappresentano un automa con due soli stati (vivo/morto) e che costituiscono un grosso automa che si porta da uno stato ad un altro con la sola possibilità di sopravvivere o morire. :)
Niente purtroppo che possa sintetizzarsi in una forma vitale (meglio: "un essere pensante"). :p
Però il programmino senza dubbio è affascinante. Ce l'ho installato con XScreenSaver, all'epoca di WindowMaker lo vedevo spesso in azione. :D
ciao ;)
Sbagliato. Life è un primo esempio. Ne sono stati inventati molti altri. Diversi solo per le regole di sopravvivenza e morte delle forme di vita. Inutile dire, che crescendo di complessità si raggiungono livelli simili a intelligenze artificiali.
E' il caso del formichiere.
Non ricordo bene le regole, ma grosso modo erano così.
Le formiche rilasciano un ormone nei contorni della loro posizione. L'ormone si disperde nelle celle vicine con un certo coefficente.
Se le formiche trovano del cibo, l'ormone rilasciato è di tipo positivo (va a sommarsi con quello dell'ambiente circostante), altrimenti di tipo negativo (va a sottarsi).
Le formiche una volta trovato il cibo lo trascinano verso una zona con ormone positivo.
Questo ha due effetti.
1) Le zone con ormone positivo più forte è il formichiere (perchè ci sono tante formiche che lo rilasciano).
2) Tutto il cibo viene trascinato alla fine in un solo luogo. Il formichiere appunto.
Agli occhi di un osservatore quelle formiche sembrano intelligenti, perchè si comportano come le vere formiche. Chi ha fatto il programma sa invece che non c'è nulla di intelligente. Soltanto un'insieme di regole.
Quindi, regole più complesse---> intelligenze artificiali più complesse
DanieleC88
21-10-2008, 06:46
Agli occhi di un osservatore quelle formiche sembrano intelligenti, perchè si comportano come le vere formiche. Chi ha fatto il programma sa invece che non c'è nulla di intelligente. Soltanto un'insieme di regole.
Quindi, regole più complesse---> intelligenze artificiali più complesse
Proprio quello che intendevo io, aggiungi complessità all'automa/macchina che sarà più "completo/a" nel reagire alle varie condizioni (i possibili "input" dell'automa/macchina) e avrà più stati in cui muoversi, ma è soltanto un modo di arricchire tale funzionamento che sarà proprio... "automatico/meccanico", non "pensante". :D
cdimauro
21-10-2008, 08:03
Avevo già in programma di parlarne in uno dei miei prossimi articoli su AD.
Ho già simulato una dozzina buona di anni fa il mondo di Wator, e di recente ne ho realizzato il porting con Python per la PSP.
P.S. In questi giorni sono ultraincasinato e non ce la faccio a partecipare attivamente al forum. :(
Proprio quello che intendevo io, aggiungi complessità all'automa/macchina che sarà più "completo/a" nel reagire alle varie condizioni (i possibili "input" dell'automa/macchina) e avrà più stati in cui muoversi, ma è soltanto un modo di arricchire tale funzionamento che sarà proprio... "automatico/meccanico", non "pensante". :D
Eh qui pero' entrano meccanismi fideistici.
Anche il cervello umano e' fatto da neuroni, ognuno dei quali e' secondo me e tanti altri modellabile in modo deterministico.
Penrose aveva invece ipotizzato che dentro un neurone ci fossero meccanismi quantistici che precludevano l'ipotesi di modellabilita' deterministica.
A parte che vedo molto difficile come un organismo fatto da milioni di atomi, quindi di dimensioni 10-100 micron, possa avere un comportamento influenzato da un particolare effetto quantistico che agisce nell'ordine sotto l'armstrong (e perche' poi il neurone si' e invece la cellula di un muscolo no).
E poi resta che nonostante le esperienze di Bell, nessuno, neppure sul newsgroup di Fisica, dove ci sono professori di Fisica veramente disponibili e competenti, e' ancora riuscito a spiegarmi come un effetto quantistico impredicibile non possa essere modellato con un generatore di numeri casuali, eventualmente quantistico.
Io sono per il sistema incredibilmente complesso, ma composto da mattoncini deterministici e quindi sia modellabile che simulabile, avendo a disposizione la giusta potenza di calcolo, che ora neppure lontanamente abbiamo.
DanieleC88
21-10-2008, 08:45
Io sono per il sistema incredibilmente complesso, ma composto da mattoncini deterministici e quindi sia modellabile che simulabile, avendo a disposizione la giusta potenza di calcolo, che ora neppure lontanamente abbiamo.
Però a questo punto i limiti sono la difficoltà di descrivere un modello corretto per il funzionamento di ognuna di queste entità basilari, e ovviamente la ristretta capacità di calcolo. :)
Comunque mi state facendo proprio venire la curiosità! :D
In effetti a livello teorico potrebbe essere anche fattibile, ma per esempio, nel caso di Life, le cellule reagiscono solo in base alla presenza/assenza di cellule vicine, ma non hanno modo di "interagire" con le altre. In altri modelli c'è questa possibilità?
Però a questo punto i limiti sono la difficoltà di descrivere un modello corretto per il funzionamento di ognuna di queste entità basilari, e ovviamente la ristretta capacità di calcolo. :)
Comunque mi state facendo proprio venire la curiosità! :D
In effetti a livello teorico potrebbe essere anche fattibile, ma per esempio, nel caso di Life, le cellule reagiscono solo in base alla presenza/assenza di cellule vicine, ma non ha modo di "interagire" con le altre. In altri modelli c'è questa possibilità?
Se vuoi studiare qualcosa senza partire da zero (e senza partire da life, che effettivamente ha troppi limiti tra cui la bidimensionalita' e l'estrema semplicita'), allora puoi iniziare a studiare i modelli neuronali dell'intelligenza artificiale.
Secondo questi studi il neurone visto dall'esterno non sembrerebbe tanto complesso.
Quello che farebbe la differenza e' la geometria di quanti, dove e come sono interconnessi.
DanieleC88
21-10-2008, 09:01
Ok, grazie del consiglio! Appena ho un po' di tempo vedo di approfondire. ;)
banryu79
21-10-2008, 17:35
Decisamente OT questo mio post però ho trovato vari e ottimi spunti di riflessione (alcune alla lontana anche rispetto la prospettiva della programmazione) in questo libro letto di recente:
"Il cervello emotivo. Alle origini delle emozioni (http://www.libreriauniversitaria.it/cervello-emotivo-origini-emozioni-ledoux/libro/9788884904409)." di Joseph LeDoux [un neurologo].
L'oggetto di questo thread mi ha stuzzicato così ho deciso di postare questa informazione.
Per me Life (che ho conosciuto da poco) è interessante e affascinante per via del fatto che da semplicissime regole delle cellule, se si osserva l'evoluzione di tutto il sistema a livello macroscopico, durante un certo arco di tempo, si possono individuare dei comportamenti emergenti assolutamente imprevedibili a priori nonostante si conoscano completamente le semplici regole alle quali le singole cellule obbediscono.
Veramente affascinante (e in correlazione con i neuroni).
Sicuramente il nostro cervello è un sitema decisamente, immensamente complesso.
(Scusate l'entusiasmo ma essendo a digiuno di studi canonici scopro queste cose adesso e ne rimango affascinato :D )
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.