Wolfram Function Repository
Instant-use add-on functions for the Wolfram Language
Function Repository Resource:
Obtain an annotated state transition graph for any CellularAutomaton rule
ResourceFunction["CATransducerGraph"][rule,k,r] returns a directed adjacency graph over k(k2r+1) states, where each edge is annotated with an input value 0, 1, …, k and each vertex is annotated with an output value determined by rule. |
The CATransducerGraph for Rule 86:
In[1]:= |
Out[1]= |
Obtain the definition of rule 86 from Annotation data:
In[2]:= |
Out[2]= |
Prove that rule 86 allows any bit vector in its range of outputs:
In[3]:= |
Out[3]= |
Map a two-state CA with CATransducerGraph over different radius values:
In[4]:= |
Out[4]= |
Color a CATransducerGraph according to its Annotation data:
In[5]:= |
Out[5]= |
Map a three-state with CATransducerGraph over different radius values:
In[6]:= |
Out[6]= |
Obtain the CATransducerGraph for a totalistic rule:
In[7]:= |
Out[7]= |
Color vertices according to the transduced output value:
In[8]:= |
Out[8]= |
Show fragments of input and output tapes:
In[9]:= |
Out[9]= |
Compare left-shift and right-shift graphs for rule 30:
In[10]:= |
Out[10]= |
One graph has uniform outputs, the other does not:
In[11]:= |
Out[11]= |
Highlight where the right-shift graph fails to provide alternatives for the next transduced value:
In[12]:= |
Out[12]= |
Add vertex figures to the CATransducerGraph of a random four-color CellularAutomaton:
In[13]:= |
Out[13]= |
Prove that a certain length-36 bit vector can not exist in a totalistic CA using rule 10:
In[14]:= |
Out[14]= |
Given a random bit vector, list possible pre-images under rule 165:
In[15]:= |
Out[15]= |
The structure of CATransducerGraph does not depend on choice of rule:
In[16]:= |
Out[16]= |
However, different rules have different Annotation values:
In[17]:= |
Out[17]= |
Obtain a list of "multiway-invertible" elementary cellular automata:
In[18]:= |
Out[18]= |
Depict the results evolving from random periodic initial conditions:
In[19]:= |
Out[19]= |
Wolfram Language 13.0 (December 2021) or above
This work is licensed under a Creative Commons Attribution 4.0 International License