Periodizität in zellulären Automaten
Die neue Funktion FindTransientRepeat identifiziert die transienten und wiederholten Teile einer Liste. Sie kann zur Untersuchung zellulärer Automaten verwendet werden.
Untersuchen Sie den zellulären Automat Regel 30. Die in Version 11 eingeführte Funktion RulePlot ist ein nützliches Tool, um die zugehörigen Übergangsregeln zu ermitteln.
In[1]:=
![Click for copyable input](assets.de/periodicity-in-cellular-automata/In_47.png)
RulePlot[CellularAutomaton[30]]
Out[1]=
![](assets.de/periodicity-in-cellular-automata/O_53.png)
Bestimmen Sie mithilfe der neuen Funktion CenterArray die Anfangskonditionen des zellulären Automatens.
In[2]:=
![Click for copyable input](assets.de/periodicity-in-cellular-automata/In_48.png)
initc = CenterArray[7]
Out[2]=
![](assets.de/periodicity-in-cellular-automata/O_54.png)
Berechnen Sie die Regel 30 mit den obigen Anfangsbedingungen und plotten Sie diese in einem diskreten Gitter aus Quadraten.
In[3]:=
![Click for copyable input](assets.de/periodicity-in-cellular-automata/In_49.png)
ca30 = CellularAutomaton[30, initc, 20];
ArrayPlot[ca30, Mesh -> True]
Out[3]=
![](assets.de/periodicity-in-cellular-automata/O_55.png)
FindTransientRepeat gibt den Teil dieses zellulären Automatens an, der wiederholt wird.
In[4]:=
![Click for copyable input](assets.de/periodicity-in-cellular-automata/In_50.png)
tr30 = FindTransientRepeat[ca30, 2];
ArrayPlot[Last[tr30], Mesh -> True]
Out[4]=
![](assets.de/periodicity-in-cellular-automata/O_56.png)
Wiederholen Sie dieselben Schritte für Regel 90.
In[5]:=
![Click for copyable input](assets.de/periodicity-in-cellular-automata/In_51.png)
RulePlot[CellularAutomaton[90]]
Out[5]=
![](assets.de/periodicity-in-cellular-automata/O_57.png)
In[6]:=
![Click for copyable input](assets.de/periodicity-in-cellular-automata/In_52.png)
ca90 = CellularAutomaton[90, initc, 20];
ArrayPlot[ca90, Mesh -> True]
Out[6]=
![](assets.de/periodicity-in-cellular-automata/O_58.png)
In[7]:=
![Click for copyable input](assets.de/periodicity-in-cellular-automata/In_53.png)
tr90 = FindTransientRepeat[ca90, 2];
ArrayPlot[Last[tr90], Mesh -> True]
Out[7]=
![](assets.de/periodicity-in-cellular-automata/O_59.png)