'

Dimensionalities of different systems

ParallelMapMonitored


Dimensionality code

In[]:=
<< SetReplace`
In[]:=
normalGraph[evolution_SetSubstitutionEvolution, generation_Integer] :=​​ Graph[UndirectedEdge @@@ evolution[generation]]
In[]:=
Limit
Log[v[r+1]]-Log[v[r]]
Log[r+1]-Log[r]
/.v(1+2#&),r100//N
Out[]=
0.995049
In[]:=
allDimensionalities[evolution_SetSubstitutionEvolution, generation_Integer] := Module​​ graph = normalGraph[evolution, generation],​​ volumes, logVolumeDifferences, logRadiiDifferences,​​ volumes = ParallelMapMonitoredModule​​ vertexCounter = 0,​​ lastDistance = 0,​​ Join​​ Rest @ Reap[BreadthFirstScan[​​ graph,​​ #,​​ "DiscoverVertex"  ​​ If[#3 > lastDistance,​​ lastDistance=#3;​​ Sow[vertexCounter]​​ ];​​ vertexCounter++ &]]2, 1,​​ ConstantArray[VertexCount[graph], 2] &, VertexList[graph];​​ logVolumeDifferences = Apply[​​ #2 - #1 &,​​ Partition[#, 2, 1] & /@ Log[N[PadRight[# & /@ volumes, Automatic, VertexCount[graph]]]],​​ {2}];​​ logRadiiDifferences =​​ #2 - #1 & @@@ Partition[Log[N[Range[Dimensions[logVolumeDifferences]〚2〛 + 1]]], 2, 1];​​ Transpose[# / logRadiiDifferences & /@ logVolumeDifferences]​​
In[]:=
dimensionalitiesList[evolution_SetSubstitutionEvolution, generation_Integer] :=​​ MeanAround /@ allDimensionalities[evolution, generation]
In[]:=
multiGenerationsPlot[evolution_SetSubstitutionEvolution, o : OptionsPattern[]] := Module[​​ print, k,​​ print = PrintTemporary["Generation: ", Dynamic[k], " / ", evolution["GenerationsCount"]];​​ ListPlot[​​ Table[dimensionalitiesList[evolution, k], {k, evolution["GenerationsCount"]}],​​ o,​​ PlotRange  All,​​ PlotTheme  "Detailed",​​ PlotRange  All,​​ Joined  True,​​ IntervalMarkers  "Bands",​​ PlotLegends ​​ ("Generation " <> # & /@ ToString /@ Range[evolution["GenerationsCount"]]),​​ FrameLabel  {"Radius", "Dimensionality"}]​​]

Enhanced point-to-triangle

In[]:=
SetSubstitutionSystem[FromAnonymousRules[{{0,1},{0,2},{0,3}}{{4,5},{5,6},{6,4},{4,6},{6,5},{5,4},{4,1},{5,2},{6,3},{1,6},{3,4}}],{{0,0},{0,0},{0,0}},9]
Out[]=
In[]:=
%[7]//HypergraphPlot
Out[]=
In[]:=
%%["CausalGraph",GraphLayout"SpringElectricalEmbedding"]
Out[]=
In[]:=
multiGenerationsPlot[%%%]

Enhanced point-to-triangle (star start)

Normal point to triangle (class 2)

Normal point to triangle (star start)

Constructive enhanced point-to-triangle

Circle (consistency check)

Planar

Experimentation