State weighting:

Counts/@MultiwaySystem[{"A""AB","B"->"BA"},"A",6,"AllStatesListUnmerged"]
In[]:=
Out[]=

“Explicit” path weighting

MultiwaySystem[{"A""AA","A""A"},"A",4,"EvolutionGraphFull"]
In[]:=
Out[]=
A multiedge is like a trivial critical pair

Tagged path weighting

MultiwaySystem[{"A""AA","A""A"},"A",4,"EvolutionGraphWeighted"]
In[]:=
Out[]=
Graph[MultiwaySystem[{"A""AA","A""A"},"A",4,"EvolutionGraphWeighted"],EdgeLabels"EdgeWeight",EdgeLabelStyleDirective[Red,Large]]
In[]:=
Out[]=
Counts/@MultiwaySystem[{"A""AA","A""A"},"A",6,"AllStatesListUnmerged"]
In[]:=
{A1,AA1,A1,AAA2,AA3,A1,AAAA6,AAA12,AA7,A1,AAAAA24,AAAA60,AAA50,AA15,A1,AAAAAA120,AAAAA360,AAAA390,AAA180,AA31,A1,AAAAAAA720,AAAAAA2520,AAAAA3360,AAAA2100,AAA602,AA63,A1}
Out[]=
Counts/@MultiwaySystem[{"A""AA","AA""A"},"A",6,"AllStatesListUnmerged"]
In[]:=
{A1,AA1,AAA2,A1,AAAA6,AA5,AAAAA24,AAA28,A5,AAAAAA120,AAAA180,AA61,AAAAAAA720,AAAAA1320,AAA662,A61}
Out[]=
Counts/@MultiwaySystem[{"AB""BA","BA""AB"},"ABAB",6,"AllStatesListUnmerged"]
In[]:=
{ABAB1,BAAB1,AABB1,ABBA1,ABAB3,BABA2,BAAB5,AABB3,ABBA5,BBAA2,ABAB13,BABA12,BAAB25,AABB13,ABBA25,BBAA12,ABAB63,BABA62}
Out[]=
Graph[MultiwaySystem[{"AB""BA","BA""AB"},"ABAB",6,"EvolutionGraphWeighted"],EdgeLabels"EdgeWeight",EdgeLabelStyleDirective[Red,Large],VertexLabelsAutomatic]
In[]:=
Out[]=
MultiwaySystem[{"AB""BA","BA""AB"},"ABAB",6,"StatesGraph"]
In[]:=
Out[]=
MultiwaySystem[{"AB""BA","BA""AB"},"ABAB",6,"StatesGraph","IncludeEventInstances"True,"IncludeStepNumber"True]
In[]:=
Out[]=
MultiwaySystem[{"AB""BA","BA""AB"},"ABAB",4,"StatesGraph","IncludeStateID"True]
In[]:=
Out[]=
MultiwaySystem[{"AB""BA","BA""AB"},"ABAB",4,"StatesGraph","IncludeStateID"True,"IncludeStepNumber"True]
In[]:=
Out[]=
With state IDs (and step numbers) everything is a tree....
​
At any given step, the token is split equally; then the question is how many states (with different stateIDs) have the same content...

[ JG algorithm...] [ IncludeStateWeights, IncludeEventWeights ]

Start with unmerged (StateID, StepNumber)
In everything unmerged, simple flow token based on edges
To make a states graph, just collect up all the items one is considering identical....
​
Is this equivalent to Bellman-Ford on the states graph???? [not quite]
MultiwaySystem[{"AB""BA","BA""AB"},"ABAB",6,"StatesGraph","IncludeEventInstances"True]
In[]:=
Out[]=
Graph[MultiwaySystem[{"A""AB","B""A"},"A",4,"EvolutionGraphWeighted"],EdgeLabels"EdgeWeight",EdgeLabelStyleDirective[Red,Large]]
In[]:=
Out[]=
MultiwaySystem[{"A""AB","B""A"},"A",5,"StatesGraph"]
In[]:=
Out[]=
MultiwaySystem[{"A""AB","B""A"},"A",5,"StatesGraph","IncludeEventInstances"True,"IncludeStepNumber"True]
In[]:=
Out[]=
MultiwaySystem[{"A""AB","B""A"},"A",5,"EvolutionGraph"]
In[]:=
Out[]=
Graph[MultiwaySystem[{"A""BBB","BB""A"},"A",7,"EvolutionGraphWeighted"],EdgeLabels"EdgeWeight",EdgeLabelStyleDirective[Red,Large]]
In[]:=
Out[]=
WeightedAdjacencyMatrix[MultiwaySystem[{"A""AA","A""A"},"A",4,"EvolutionGraphWeighted"]]//MatrixPlot
In[]:=
Out[]=

StatesGraphWeighted

A cycle in the states graph [perhaps also a cycle in causal graph]
Condition for states graph to be cycle free?
Multiway
GraphPlot[MultiwaySystem[{"AB""BAB","BA""A"},"ABA",4,"StatesGraph","IncludeEventInstances"True],GraphLayout{"LayeredDigraphEmbedding","RootVertex""ABA"}]
In[]:=
Out[]=
MultiwaySystem[{"AB""BAB","BA""A"},"ABA",4,"CausalGraph"]
In[]:=
Out[]=
MatrixPlot[%]
In[]:=
Out[]=
ggg=CompleteGraph[5,EdgeWeightRange[10]];​​​​AnnotationValue[ggg,EdgeWeight]
In[]:=
{1,2,3,4,5,6,7,8,9,10}
Out[]=

BranchialGraphWeighted

Concept of weighting

You start with a token and every branch it splits equally into evolution edge
In a states graph where there are multiple feeders at different time steps.....