MultiwaySystem[{"A""AB","B""A"},"A",4,"CriticalPairs"]
In[]:=
{{AA,ABB},{AAB,ABA},{AAB,ABBB},{ABA,ABBB},{AAA,AABB},{AAA,ABAB},{AABB,ABAB},{AAA,ABBA},{ABAB,ABBA},{AABB,ABBA},{AABB,ABBBB},{ABAB,ABBBB},{ABBA,ABBBB}}
Out[]=
Table[MultiwaySystem[{"A""AB","B""A"},"A",t,"CriticalPairs"],{t,5}]
In[]:=
Out[]=
Graph[UndirectedEdge@@@Catenate[%]]
In[]:=
Out[]=
Graph[UndirectedEdge@@@Catenate[Table[MultiwaySystem[{"A""AB","B""A"},"A",t,"CriticalPairs"],{t,8}]]]
In[]:=
Out[]=
Graph[UndirectedEdge@@@#]&/@Table[MultiwaySystem[{"A""AB","B""A"},"A",t,"CriticalPairs"],{t,7}]
In[]:=
Out[]=
We can also compute the branchial graph of the multiway causal network
MultiwaySystem[{"A""AB","B""A"},"A",5,"EvolutionGraph"]//LayeredGraphPlot
In[]:=
Out[]=
{"A""AB","B""A"}
In[]:=
{AAB,BA}
Out[]=
MultiwaySystem[{"A""AB","B""A"},"A",5,"CriticalPairs"]
In[]:=
Out[]=
MultiwaySystem[{"A""AB","B""A"},"A",4,"UnresolvedCriticalPairs"]
In[]:=
{{AAA,AABB},{AAA,ABAB},{AABB,ABAB},{AAA,ABBA},{ABAB,ABBA},{AABB,ABBA},{AABB,ABBBB},{ABAB,ABBBB},{ABBA,ABBBB}}
Out[]=
MultiwaySystem[{"A""AB","B""A"},"A",5]
In[]:=
{{A},{AB},{AA,ABB},{AAB,ABA,ABBB},{AAA,AABB,ABAB,ABBA,ABBBB},{AAAB,AABA,AABBB,ABAA,ABABB,ABBAB,ABBBA,ABBBBB}}
Out[]=
{{"AAA","AABB"},{"AAA","ABAB"},{"AABB","ABAB"},{"AAA","ABBA"},{"ABAB","ABBA"},{"AABB","ABBA"},{"AABB","ABBBB"},{"ABAB","ABBBB"},{"ABBA","ABBBB"}}
In[]:=
{{AAA,AABB},{AAA,ABAB},{AABB,ABAB},{AAA,ABBA},{ABAB,ABBA},{AABB,ABBA},{AABB,ABBBB},{ABAB,ABBBB},{ABBA,ABBBB}}
Out[]=
getEventRenderingFunction["ListSubstitutionSystem",Automatic]:=​​ Text[Framed[Style[getEventRenderingForm[Row,stripMetadata[#2]],Black],FrameMargins->None,​​ FrameStyle->Directive[Opacity[.2],Blue],Background->Directive[Opacity[.1],Blue]],#1,{0,0}]&
getStateRenderingFunction["StringSubstitutionSystem",Automatic]:=Text[Framed[Style[stripMetadata[#2],Black],​​ FrameMargins->None,FrameStyle->Directive[Opacity[.4],Gray],Background->Directive[Opacity[.2],Gray]],​​ #1,{0,0}]&
StateBranchialGraph[rule_,init_,t_]:=Graph[UndirectedEdge@@@MultiwaySystem[{"A""AB","B""A"},"A",t,"UnresolvedCriticalPairs"],VertexShapeFunctionText[Framed[Style[#2,Black],​​ FrameMargins->None,FrameStyle->Directive[Opacity[.4],Gray],Background->Directive[Opacity[.2],Gray]],​​ #1,{0,0}]&]
In[]:=
Table[StateBranchialGraph[{"A""AB","B""A"},"A",t],{t,2,6}]
In[]:=
Out[]=
VertexDegree

In[]:=
{6,8,10,8,9,10,8,10,8,10,10,8,5}
Out[]=
TransitiveReductionGraph

In[]:=
Out[]=
GraphPlot3D

In[]:=
Out[]=
//VertexDegree
In[]:=
Histogram[{10,13,17,16,13,15,18,16,14,18,16,15,17,18,21,18,21,15,18,12,16,13,16,21,18,16,16,18,16,14,16,16,12,7}]
In[]:=
Out[]=
Histogram[%]
In[]:=
Out[]=
Histogram[VertexDegree[#],FrameTrue,ImageSizeSmall]&/@
,
,

In[]:=
Out[]=
VertexCount/@
,
,
,

In[]:=
{2,3,5,8}
Out[]=
MultiwaySystem[{"A""AB","B""A"},"A"
MultiwaySystem[{"A""AB","B""A"},"A",8,"StateBranchialGraph"]
In[]:=
Out[]=
MultiwaySystem[{"A""AB","B""A"},"A",10,"StateBranchialGraphStructure"]
In[]:=
Out[]=
ConnectedGraphComponents[%]
In[]:=
Out[]=
Histogram[VertexDegree[#]]&/@%
In[]:=
Out[]=
Histogram[VertexDegree[#]]&/@ConnectedGraphComponents[MultiwaySystem[{"A""AB","B""A"},"A",15,"StateBranchialGraphStructure"]]
In[]:=
Out[]=
Histogram[VertexDegree[%630]]
In[]:=
Out[]=
GraphNeighborhoodVolumes

In[]:=
Out[]=
MultiwaySystem[{"A""AB","B""A"},"A",5,"EventBranchialGraph"]
In[]:=
Out[]=
MultiwaySystem[{"A""AB","B""A"},"A",10,"EventBranchialGraphStructure"]
In[]:=
Out[]=
MultiwaySystem[{"AA""AA"},"A",8,"StateBranchialGraph"]
In[]:=
Out[]=

Testing on Causal Invariant Rules

allres2=Table[Import["/Users/sw/Dropbox/Physics/Data/MWCausalInvariance2/"<>ToString[n]<>".wxf"],{n,12}];
In[]:=
​
causals=Cases[Catenate[#],(x__Integer)x]&/@allres2;
In[]:=
causals[[2]]
In[]:=
{{AA},{AB}}
Out[]=
MultiwaySystem[#,"A",5,"StateBranchialGraphStructure"]&/@causals[[2]]
In[]:=

,

Out[]=
Labeled[MultiwaySystem[#,"A",5,"StateBranchialGraphStructure"],#]&/@causals[[3]]
In[]:=
Out[]=
Select[Labeled[MultiwaySystem[#,"A",5,"StateBranchialGraphStructure"],#]&/@causals[[4]],VertexCount[First[#]]>0&]
In[]:=
Out[]=
Select[Labeled[MultiwaySystem[#,"A",5,"StateBranchialGraphStructure"],#]&/@causals[[5]],VertexCount[First[#]]>0&]
In[]:=
Out[]=
Select[Labeled[MultiwaySystem[#,"A",5,"StateBranchialGraphStructure"],#]&/@causals[[6]],VertexCount[First[#]]>0&]
In[]:=
Out[]=
ConnectedGraphComponents[MultiwaySystem[{"A""AA","A""AB"},"A",8,"StateBranchialGraphStructure"]]
In[]:=
Out[]=
GraphPlot3D

In[]:=
Out[]=
​
MeanAround/@TransposeValuesGraphNeighborhoodVolumes
,All,Automatic
In[]:=
{1,21.6±0.5,97.3±2.2,183.5±2.9,230.6±2.2,248.0±1.4}
Out[]=
Ratios[%]
In[]:=
{21.6±0.5,4.50±0.14,1.89±0.05,1.257±0.023,1.075±0.012}
Out[]=
ResourceFunction["LogDifferences"][%%]
In[]:=
{4.435±0.031,3.71±0.08,2.21±0.10,1.02±0.08,0.40±0.06}
Out[]=
ConnectedGraphComponents[MultiwaySystem[{"A""B","B""AAA"},"A",8,"StateBranchialGraphStructure"]]
In[]:=
Out[]=

Role of weighting in branchial graphs

“Equal-time commutator in state branchial graphs”

Distance in string space corresponding to branchial state graphs

vl=VertexList

In[]:=
{BBABB,AAAAABB,ABAAAAB,ABABAAA,ABBBB,BAAAAAB,BAABAAA,BABBB,AAABAAB,BBAAAAA,BBBAB,AAABABA,BAAAABA,BBBBA,AAAAAAAAA,AAAABAB,AABAAAB,AAAABBA,AABAABA,ABAAABA,AABBAAA,ABAABAA,ABBAAAA,AAABBAA,BAAABAA,BABAAAA,AABABAA}
Out[]=
What is the induced string metric?
DistanceMatrix[vl,DistanceFunctionEditDistance]
In[]:=
Out[]=
gdm=GraphDistanceMatrix
;
In[]:=
gdm
In[]:=
Out[]=
MatrixPlot/@{%696,%698}
In[]:=
Out[]=
DamerauLevenshteinDistance

Can one characterize distances between states in the branchial state graph by complex numbers?

Events Branchial Graphs

Select[Labeled[MultiwaySystem[#,"A",5,"EventBranchialGraphStructure"],#]&/@causals[[2]],VertexCount[First[#]]>0&]
In[]:=
{}
Out[]=
Select[Labeled[MultiwaySystem[#,"A",5,"EventBranchialGraphStructure"],#]&/@causals[[3]],VertexCount[First[#]]>0&]
In[]:=
Out[]=
Select[Labeled[MultiwaySystem[#,"A",5,"EventBranchialGraphStructure"],#]&/@causals[[4]],VertexCount[First[#]]>0&]
In[]:=
Out[]=
Select[Labeled[MultiwaySystem[#,"A",5,"EventBranchialGraphStructure"],#]&/@causals[[5]],VertexCount[First[#]]>0&]
In[]:=
Out[]=
Select[Labeled[MultiwaySystem[#,"A",5,"EventBranchialGraphStructure"],#]&/@causals[[6]],VertexCount[First[#]]>0&]
In[]:=
Out[]=
Select[Labeled[MultiwaySystem[#,"A",5,"EventBranchialGraphStructure"],#]&/@noncausals[[3]],VertexCount[First[#]]>0&]
In[]:=
{}
Out[]=
Select[Labeled[MultiwaySystem[#,"A",5,"EventBranchialGraphStructure"],#]&/@noncausals[[4]],VertexCount[First[#]]>0&]
In[]:=
{}
Out[]=
Select[Labeled[MultiwaySystem[#,"A",5,"EventBranchialGraphStructure"],#]&/@noncausals[[5]],VertexCount[First[#]]>0&]
In[]:=
Out[]=
Select[Labeled[MultiwaySystem[#,"A",5,"EventBranchialGraphStructure"],#]&/@noncausals[[6]],VertexCount[First[#]]>0&]
In[]:=
Out[]=
Select[Labeled[MultiwaySystem[#,"A",5,"EventBranchialGraphStructure"],#]&/@noncausals[[7]],VertexCount[First[#]]>0&]
In[]:=
Out[]=
TransitiveReductionGraph

In[]:=
Out[]=
Each complete graph is just the critical pairs with a given predecessor
Size of the event branchial graph is a measure of ambiguity at a particular stage.