Периодичность в клеточных автоматах
Новая функция FindTransientRepeat определяет временные и повторяющиеся части списка. Она может быть использована для анализа клеточных автоматов.
Посмотрите на правило 30 клеточного автомата (КА). Функция версии 11 RulePlot является полезным инструментом для поиска соответствующих правил трансформации.
In[1]:=
RulePlot[CellularAutomaton[30]]
Out[1]=
Задайте начальные условия для КА, используя новую функцию CenterArray.
In[2]:=
initc = CenterArray[7]
Out[2]=
Рассчитайте правило 30 КА с указанными ранее начальными условиями и графически изобразите его на дискретном массиве клеток.
In[3]:=
ca30 = CellularAutomaton[30, initc, 20];
ArrayPlot[ca30, Mesh -> True]
Out[3]=
FindTransientRepeat выдаёт повторяющуюся часть данного КА.
In[4]:=
tr30 = FindTransientRepeat[ca30, 2];
ArrayPlot[Last[tr30], Mesh -> True]
Out[4]=
Повторите данные шаги для правила 90 клеточного автомата.
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]=