Périodicité dans les automates cellulaires
La nouvelle fonction FindTransientRepeat identifie les parties transitoires et répétées d'une liste. Utilisons-la pour examiner les automates cellulaires.
Regardez la règle 30 de l'automate cellulaire. La fonction RulePlot de la version 11 est un outil utile pour trouver les règles de transformation associées.
In[1]:=
RulePlot[CellularAutomaton[30]]
Out[1]=
Définissez les conditions initiales de l'automate cellulaire en utilisant la nouvelle fonction CenterArray.
In[2]:=
initc = CenterArray[7]
Out[2]=
Calculez la règle 30 de l'automate cellulaire avec les conditions initiales ci-dessus, et tracez-la dans un réseau discret de carrés.
In[3]:=
ca30 = CellularAutomaton[30, initc, 20];
ArrayPlot[ca30, Mesh -> True]
Out[3]=
FindTransientRepeat fournit la partie répétée de cet automate cellulaire.
In[4]:=
tr30 = FindTransientRepeat[ca30, 2];
ArrayPlot[Last[tr30], Mesh -> True]
Out[4]=
Répétez les mêmes étapes pour la règle 90 de l'automate cellulaire.
In[5]:=
RulePlot[CellularAutomaton[90]]
Out[5]=
In[6]:=
ca90 = CellularAutomaton[90, initc, 20];
ArrayPlot[ca90, Mesh -> True]
Out[6]=
In[7]:=
tr90 = FindTransientRepeat[ca90, 2];
ArrayPlot[Last[tr90], Mesh -> True]
Out[7]=