Wolfram Function Repository
Instant-use add-on functions for the Wolfram Language
Function Repository Resource:
Generate the evolution of a tag system
ResourceFunction["TagSystemEvolveList"][rules,init,t] returns the list of states attained from evolving init using tag system rules over t steps. | |
ResourceFunction["TagSystemEvolveList"][rules,init,t,dt] returns the states attained at every dt step from evolving init using tag system rules over t steps. | |
ResourceFunction["TagSystemEvolveList"][rules,init,t,dt,prop] returns the specified prop of states attained at every dt step from evolving init using tag system rules over t steps. | |
"States" | the list of tape configurations throughout the tag system evolution |
"Lengths" | the list of tape lengths throughout the tag system evolution |
MaxSteps | Infinity | the maximum number of steps to be taken in the tag system evolution |
Method | Automatic | the algorithm used internally to compute the tag system evolution |
Evolve the Post tag system from an initial condition for 8 steps:
In[1]:= |
Out[1]= |
Evolve the Post tag system from an initial condition for 8 steps, using the string shortcut "Post" to specify the tag system rules:
In[2]:= |
Out[2]= |
Evolve the Post tag system from the same initial condition specified in compressed form, for 8 steps:
In[3]:= |
Out[3]= |
Evolve the Post tag system until it halts, using the Automatic setting for evolution steps:
In[4]:= |
Out[4]= |
Evolve the Post tag system using compressed states until it halts:
In[5]:= |
Out[5]= |
Perform a fixed point evolution of a Post tag system, only returning every second tape state:
In[6]:= |
Out[6]= |
In[7]:= |
Out[7]= |
Perform a fixed point evolution of a Post tag system, only returning every second tape length:
In[8]:= |
Out[8]= |
Do the same computation, except with a compressed initial condition; note that the compressed tape lengths are returned:
In[9]:= |
Out[9]= |
Perform a tag system evolution with specified rules, initial condition, and number of evolution steps:
In[10]:= |
Out[10]= |
Perform the same evolution, except in compressed form:
In[11]:= |
Out[11]= |
Return every fifth tape state of a specified tag system evolution:
In[12]:= |
Out[12]= |
In[13]:= |
Out[13]= |
Return every fifth tape length of a specified tag system evolution:
In[14]:= |
Out[14]= |
Return every fifth compressed tape length of a specified tag system evolution:
In[15]:= |
Out[15]= |
Perform a generalized tag system evolution in which the rules do not use Blank elements:
In[16]:= |
Out[16]= |
Return only every fifth tape state from the generalized tag system evolution:
In[17]:= |
Out[17]= |
Return every fifth tape length from the generalized tag system evolution:
In[18]:= |
Out[18]= |
Visualize the successive tape states in the evolution of a tag system:
In[19]:= |
Out[19]= |
Plot how tape length changes across the evolution of the same cyclic tag system:
In[20]:= |
Out[20]= |
It may not always be feasible to evolve the tag system indefinitely when using the Automatic evolution step setting. Setting the MaxSteps option can prevent computationally expensive fixed point evolutions:
In[21]:= |
Out[21]= |
An example demonstrating the superior time efficiency of the "BitwiseOptimized" method for long evolutions:
In[22]:= |
Out[22]= |
In[23]:= |
Out[23]= |
The resource function TagSystemConvert can be used to interconvert between compressed and uncompressed forms:
In[24]:= |
Out[24]= |
Compare with directly generating the compressed form:
In[25]:= |
Out[25]= |
Note that if the number of evolution steps specified is longer than the evolution to the fixed point of the tag system, only the states up to and including the fixed point will be returned:
In[26]:= |
Out[26]= |
In[27]:= |
Out[27]= |
Compressed state representations do not make sense with generalized tag systems, as they require successive tape elements to be specified in order to be evolved correctly:
In[28]:= |
Out[28]= |
Tag system rules must have the head Rule or RuleDelayed:
In[29]:= |
Out[29]= |
In[30]:= |
Out[30]= |
In[31]:= |
Out[31]= |
The specified rules must reflect how a tag system actually works; in this case, elements should not be added to the beginning of the tape:
In[32]:= |
Out[32]= |
TagSystemEvolveList does not support tag systems in which the number of elements to be deleted from the beginning of the tape is not consistent across rules:
In[33]:= |
Out[33]= |
This work is licensed under a Creative Commons Attribution 4.0 International License