Mi sono imbattuto l'altro ieri sull'argomento. Ho cercato un libro e dopo tanta ricerca su google ho trovato
link, e che dire, offre, almeno a me, una nuova prospettiva. Dalla definizione sul libro:
Cita:
Cellular automata (CA) are a class of spatially and temporally discrete, deterministic mathematical systems characterized by local interaction and an inherently parallel form of evolution.
Da wiki:
Cita:
A cellular automaton (pl. cellular automata, abbrev. CA) is a discrete model studied in computability theory, mathematics, physics, complexity science, theoretical biology and microstructure modeling. It consists of a regular grid of cells, each in one of a finite number of states, such as "On" and "Off" (in contrast to a coupled map lattice).
In altri termini è il grafico di evoluzione spaziotemporale di una funzione ricorsiva. Manca la continuità, nel senso che il grafico non sarà continuo ma a quadretti. Graficamente, considero una linea quadrettata di un quaderno corrispondente diciamo ad un vettore numerico posto orizzontalmente. Ad ogni numero o quadretto è associato un colore. Dato che il tempo è discreto, ovvero assume valori interi, al tempo t=1 il vettore sarà mutato in un secondo vettore numerico seguendo una certa funzione, o legge. Poniamo questo secondo vettore sotto al primo. Iterando il procedimento ottengo una tabella colorata di puntini. La regola è della forma:

Dove c(t) è il valore di un quadretto o equivalentemente di una cellula o equivalentemente di una componente del vettore al tempo t. Il suo valore dipende dal valore che essa ed alcune cellule circostanti assumono nell'istante di tempo precedente. La formula tiene conto di un raggio r, ovvero dice che devo tenere conto del valore assunto da r cellule a destra, ed r a sinistra. Vi sarà chiaro nell'esempio successivo. Quando sono noti i valori che la legge assume per ogni combinazione di valori iniziale dentro al raggio, essa è completamente determinata. Consideriamo la seguente linea iniziale:
0001000
Definisco la seguente regola, se incontro queste coppie, in quella posizione nella riga sotto scriverò quel numero.
Codice:
00
0
01
1
10
0
11
1
0 quando manca la seconda cifra della coppia, ovvero quando ho 12345 inizio confrontando 12 poi 23, ecc, ma quando arrivo a 5 questo resta

Quindi la precedente diventa:
Codice:
00010110
00101100
01011000
10110000
Con questa regola a caso mi sono accorto di avere ottenuto una traslazione. Vediamo il primo esempio che offre il libro. Svilupperemo la legge 30
rule 30, così si chiama, partendo da una retta con un solo punto nero al centro. Ricordiamo che ad ogni numero è associato un colore. Nel nostro caso 1=nero e 0=bianco. La forma grafica della legge ed il risultato sono i seguenti:

Significa che quando incontro una terna quello è il colore che prende il punto subito sotto. Ho scritto un programma in C++ dove potete modificare le regole ed il vettore iniziale come pare a voi e vedere cosa ne viene fuori. Volevo ottenerne una rappresentazione grafica con le Opengl ma non riesco a capire come usarle sotto linux, puttana maiala. Ecco:
Codice:
#include<iostream>
using namespace std;
int main(){
int n=100;
int value[n][n];
for(int i=0; i<n; i++){
for(int j=0; j<n; j++)
value[i][j]=0;}
value[0][(n)/2]=1;
for(int i=0; i<(n-1); i++){
for(int j=0; j<(n-2); j++){
if(value[i][j]==1 && value[i][j+1]==1 && value[i][j+2]==1)value[i+1][j+1]=0; else
if(value[i][j]==1 && value[i][j+1]==1 && value[i][j+2]==0)value[i+1][j+1]=0; else
if(value[i][j]==1 && value[i][j+1]==0 && value[i][j+2]==1)value[i+1][j+1]=0; else
if(value[i][j]==1 && value[i][j+1]==0 && value[i][j+2]==0)value[i+1][j+1]=1; else
if(value[i][j]==0 && value[i][j+1]==1 && value[i][j+2]==1)value[i+1][j+1]=1; else
if(value[i][j]==0 && value[i][j+1]==1 && value[i][j+2]==0)value[i+1][j+1]=1; else
if(value[i][j]==0 && value[i][j+1]==0 && value[i][j+2]==1)value[i+1][j+1]=1; else
if(value[i][j]==0 && value[i][j+1]==0 && value[i][j+2]==0)value[i+1][j+1]=0;}
}
for(int i=0; i<n; i++){
for(int j=0; j<n; j++)
if(value[i][j]==0)cout<<" "; else
if(value[i][j]==1)cout<<"*";
cout<<endl;
}

La rule 30 assomiglia alla seguente foto, anche se si capisce che le legge a cui risponde la conchiglia e differente:

Se è scritto male potete postare una forma migliore, se sapete usare delle librerie grafiche siete liberi di postare i risultati! Volevo infatti scrivere anche del secondo esempio, Conway's Life Game.
Vediamo alcuni passaggi del libro:
Cita:
[...]In the strongest possible
terms, the long time behavior of computationally universal dynamical systems can
be obtained only by direct simulation. No general predictive procedure is possible,
even in principle. This implies, for example, that for systems such as von Neumann’s
self-reproducing automaton, there can neither be an analytical expression that ex-
actly describes its asymptotic behavior nor an equation that defines the long-term
behavior that itself can be soIved in a time Iess than it would take the system to
evolve (modulo a polynomial function of the number of iteration steps necessary for
it to reach its final state). All such computationally irreducible systems share the
property that their own evolution effectively defines the most efficient simulation of
their behavior.
Significa sostanzialmente che in genere non ci sono equazioni esplicite per predire la forma di un automa cellulare nel lungo periodo, nemmeno teoricamente. Che cosa mi viene in mente? Se fosse possibile esprimere le leggi del mondo microscopico interamente in forma di automi cellulari, potrebbe da queste non essere possibile ricavare equazioni esplicite del mondo macroscopico. Ovvero? Ora forse capisco in parte la difficoltà della formazione di una teoria unificata. Per capire come come l'automa funziona bisogna farlo girare.
Cita:
CA as 0rigin.al Models of Fundamental Physics
CA allow studies of radically new discrete dynamical approaches to microscopic
physics, exploring the possibility that Iiature locally and digitally processes its own
future states. The entire last chapter of this book is devoted to a prolonged dis-
cussion of such potentially ground breaking niotiels of physics. Using the fact that
computationally universal systems are capable of arbitrarily complicated behavior
(in the sense that they can mimic any computation performed by a conventional
computer), the idea is to construct fundamcntally discrete field theories to compete
with existing continuous models. T h e emphasis in this class of models is ernphati-
cally not to construct a lattice-gauge-like theory; rather, in the same way as lattice-
gas CA successfully reproduce continuous fluid flow despite never having heard of
the Navier-Stokes equations, so the hope is to abstract a set of microphysical laws
that reproduce known behavior on the macro scale. A number of interesting ideas
have recently been explored. Fredkin [freclkin93]has arguably gone to the furthest
extreme by asserting that the universe is, a.t its core, a CA! We will offer a few of
our own speculations on this subject in the last chapter.
Ma ovviamente non ho ancora letto la parte finale del libro.
Cita:
What is remarkable about this very simple appearing n h e is that one can show
that it is capable of universal computation. This means that with a proper selection
of initial conditions (i.e. the initial distribution of “live” and “dead” cells), Life can
be turned into a general piirposr: computer. This fact fundamentally limits the
overall predictability of Life’s behavior.
The well known Halting Theorem, for example, asserts that there cannot exist
a general algorithm for predicting when a computer will lialt its execution of a
given program [garey79]. Given that Life is a universal computer ~- so that the
Halting Theorem applies - this means that one cannot, in general, predict whether
a particular starting configuration of live and dead cells will eventually die out.
No shortcut, is possible, even in principle. The best one can do is to sit back and
patiently await Life’s own final outcome.
Put another way, this means that if you want to predict Life’s long-term be-
havior with another “model” or by using, say, a partial differential equation, you
are doomed to fail from the outset because its long-term behavior is effectively un-
predictable. Life - like all computationally universal systems - defines the most
efficient simulation of its own behavior.
Non ho ricontrollato bene il post quindi spero sia leggibile, vado a letto, quando mi risveglio controllo
