Periodicidad en autómatas celulares
La nueva función FindTransientRepeat identifica las partes transitorias y repetidas de una lista. Ésto puede ser usado para investigar autómata celular.
Vea el autómata celular (AC) de la regla 30. La función RulePlot de la versión 11 es una herramienta útil para encontrar las reglas de transformación asociadas.
In[1]:=
![Click for copyable input](assets.es/periodicity-in-cellular-automata/In_49.png)
RulePlot[CellularAutomaton[30]]
Out[1]=
![](assets.es/periodicity-in-cellular-automata/O_55.png)
Defina las condiciones iniciales del AC usando la nueva función CenterArray.
In[2]:=
![Click for copyable input](assets.es/periodicity-in-cellular-automata/In_50.png)
initc = CenterArray[7]
Out[2]=
![](assets.es/periodicity-in-cellular-automata/O_56.png)
Calcule la regla 30 AC con las condiciones iniciales de arriba y represente gráficamente en un arreglo discreto de cuadrados.
In[3]:=
![Click for copyable input](assets.es/periodicity-in-cellular-automata/In_51.png)
ca30 = CellularAutomaton[30, initc, 20];
ArrayPlot[ca30, Mesh -> True]
Out[3]=
![](assets.es/periodicity-in-cellular-automata/O_57.png)
FindTransientRepeat da la parte repetida de este AC.
In[4]:=
![Click for copyable input](assets.es/periodicity-in-cellular-automata/In_52.png)
tr30 = FindTransientRepeat[ca30, 2];
ArrayPlot[Last[tr30], Mesh -> True]
Out[4]=
![](assets.es/periodicity-in-cellular-automata/O_58.png)
Repita los mismos pasos para el autómata celular de regla 90.
In[5]:=
![Click for copyable input](assets.es/periodicity-in-cellular-automata/In_53.png)
RulePlot[CellularAutomaton[90]]
Out[5]=
![](assets.es/periodicity-in-cellular-automata/O_59.png)
In[6]:=
![Click for copyable input](assets.es/periodicity-in-cellular-automata/In_54.png)
ca90 = CellularAutomaton[90, initc, 20];
ArrayPlot[ca90, Mesh -> True]
Out[6]=
![](assets.es/periodicity-in-cellular-automata/O_60.png)
In[7]:=
![Click for copyable input](assets.es/periodicity-in-cellular-automata/In_55.png)
tr90 = FindTransientRepeat[ca90, 2];
ArrayPlot[Last[tr90], Mesh -> True]
Out[7]=
![](assets.es/periodicity-in-cellular-automata/O_61.png)