Function Repository Resource:

SubstitutionSystemCausalGraph

Source Notebook

Generate a causal graph from a substitution system using standard updating order

Contributed by: Wolfram Physics Project Team

ResourceFunction["SubstitutionSystemCausalGraph"][rule,init,t]

generates a causal graph from the evolution of a substitution system.

ResourceFunction["SubstitutionSystemCausalGraph"][rule,init,t,"Layered"]

generates a layered causal graph from the evolution of a substitution system.

Details and Options

ResourceFunction["SubstitutionSystemCausalGraph"] takes the same options as Graph, with the additional option:
"IncludeInitializationEvents"Falsewhether to include an explict event to represent initialization

Examples

Basic Examples (2) 

Create a causal graph of a substitution system:

In[1]:=
ResourceFunction[
 "SubstitutionSystemCausalGraph"][{"AB" -> "BAAAB"}, "AB", 8]
Out[1]=

Show the layered embedding of a causal graph:

In[2]:=
ResourceFunction[
 "SubstitutionSystemCausalGraph"][{"AB" -> "BAAAB"}, "AB", 8, GraphLayout -> "LayeredDigraphEmbedding"]
Out[2]=

Scope (2) 

Use a single rule:

In[3]:=
ResourceFunction["SubstitutionSystemCausalGraph"][
 "AA" -> "AAA", "AA", 14]
Out[3]=

Use multiple rules:

In[4]:=
ResourceFunction[
 "SubstitutionSystemCausalGraph"][{"AA" -> "ABB", "BAB" -> "ABBA"}, "ABBAABAAB", 12]
Out[4]=

Options (1) 

IncludeInitializationEvents (1) 

Causal graph, without and with initialization:

In[5]:=
{ResourceFunction[
   "SubstitutionSystemCausalGraph"][{"AA" -> "ABB", "BAB" -> "ABBA"}, "ABBAABAAB", 5, "IncludeInitializationEvents" -> False, PlotLabel -> "without initialization"], ResourceFunction[
   "SubstitutionSystemCausalGraph"][{"AA" -> "ABB", "BAB" -> "ABBA"}, "ABBAABAAB", 5, "IncludeInitializationEvents" -> True, PlotLabel -> "with initialization"]} // Row
Out[5]=

Version History

  • 4.0.0 – 10 April 2020
  • 3.0.0 – 17 March 2020
  • 2.0.0 – 17 March 2020
  • 1.0.0 – 10 March 2020

Related Resources

Author Notes

SubstitutionSystemCausalGraph currently only works on strings.

There should be an option to give the description of each event as its node name

License Information