Wolfram Function Repository
Instant-use add-on functions for the Wolfram Language
Function Repository Resource:
Simulate the evolution of a Wolfram model system as a "glocal" (hybrid of global and local) multiway system
ResourceFunction["WolframModelGlocalMultiwaySystem"][rules,init,n] generates the results of n steps in the glocal multiway evolution of a Wolfram model system with the specified rules, starting from initial conditions init. | |
ResourceFunction["WolframModelGlocalMultiwaySystem"][rules→sel,init,n] uses the function sel to select which of the events obtained at each step to include in the evolution. |
| "Sequential" | applies the first possible replacement (sequential substitution system) |
| "Random" | applies a random replacement |
| {"Random",n} | applies n randomly chosen replacements |
| "DeduplicateTokens" | False | whether to merge all instances of equivalent tokens that appear at each time step |
| "VertexRendering" | True | whether to use special rendering for state/token and event vertices |
| "IncludeInitializationEvents" | False | whether to include pseudoevents that set up initial conditions |
| "StateRenderingFunction" | Automatic | how to label states/tokens that appear in the evolution causal graph/token event graph |
| "EventRenderingFunction" | Automatic | how to labels events that appear in the evolution causal graph/token event graph |
| Automatic | make a label from the name of the vertex |
| Inherited | use the explicit vertex name as the label |
| None | use no label for the vertex |
| "string" | use a shape from the VertexShapeFunction collection |
| func | apply the function func to the name of the vertex |
Generate evolution causal graphs (token event graphs) for two simple Wolfram model glocal multiway systems:
| In[1]:= |
|
| Out[1]= |
|
| In[2]:= |
|
| Out[2]= |
|
Show just the structure of the graphs, without labels:
| In[3]:= |
|
| Out[3]= |
|
| In[4]:= |
|
| Out[4]= |
|
Generate an evolution causal graph (token event graph) for a more complicated Wolfram model glocal multiway evolution:
| In[5]:= |
|
| Out[5]= |
|
Show just the structure of the graph, without labels:
| In[6]:= |
|
| Out[6]= |
|
Merge all instances of equivalent tokens that appear at each time step:
| In[7]:= |
|
| Out[7]= |
|
Run the system for more steps:
| In[8]:= |
|
| Out[8]= |
|
Show just the structure of the graphs, without labels:
| In[9]:= |
|
| Out[9]= |
|
| In[10]:= |
|
| Out[10]= |
|
Specify an event selection function that picks only up to two events at each step:
| In[11]:= |
|
| Out[11]= |
|
WolframModelGlocalMultiwaySystem accepts both individual rules and lists of rules:
| In[12]:= |
|
| Out[12]= |
|
| In[13]:= |
|
| Out[13]= |
|
Likewise for initial conditions:
| In[14]:= |
|
| Out[14]= |
|
Apply only the first possible event at each step:
| In[15]:= |
|
| Out[15]= |
|
Apply the first and last possible events at each step:
| In[16]:= |
|
| Out[16]= |
|
Compare this to the full evolution causal graph (token event graph):
| In[17]:= |
|
| Out[17]= |
|
By default, equivalent tokens remain unmerged at each time step:
| In[18]:= |
|
| Out[18]= |
|
Merging of equivalent tokens at each time step can be enforced using the option "DeduplicateTokens":
| In[19]:= |
|
| Out[19]= |
|
By default, state/token vertices and event vertices use special rendering (inherited from the MultiwaySystem resource function):
| In[20]:= |
|
| Out[20]= |
|
This rendering can be disabled using the option "VertexRendering":
| In[21]:= |
|
| Out[21]= |
|
By default, states/tokens are labeled by their contents:
| In[22]:= |
|
| Out[22]= |
|
Use no labeling for states/tokens:
| In[23]:= |
|
| Out[23]= |
|
Use raw state/token names as vertex labels:
| In[24]:= |
|
| Out[24]= |
|
Use a named shape as each state/token label:
| In[25]:= |
|
| Out[25]= |
|
By default, both states/tokens and events are labeled by their contents:
| In[26]:= |
|
| Out[26]= |
|
Use no labeling for states/tokens:
| In[27]:= |
|
| Out[27]= |
|
Also use no labeling for events:
| In[28]:= |
|
| Out[28]= |
|
Disabling vertex rendering yields an equivalent result:
| In[29]:= |
|
| Out[29]= |
|
Use raw event expressions as their labels:
| In[30]:= |
|
| Out[30]= |
|
By default, Wolfram model glocal multiway systems do not include initialization events:
| In[31]:= |
|
| Out[31]= |
|
Disable vertex rendering:
| In[32]:= |
|
| Out[32]= |
|
The option "IncludeInitializationEvents" allows one to override this default (note that initialization events have special default rendering):
| In[33]:= |
|
| Out[33]= |
|
Place arrows in the middle of edges:
| In[34]:= |
|
| Out[34]= |
|
Generate an example glocal multiway evolution:
| In[35]:= |
|
| Out[35]= |
|
Force a layered digraph embedding with the initial state/token at the top:
| In[36]:= |
|
| Out[36]= |
|
This work is licensed under a Creative Commons Attribution 4.0 International License