Building on the work of Ward importing, and merging, graphs from arrow; here we take a look algorithms for find strongly connected components (SSCs).
Tarjan's algorithm animation wikipedia
Also see: * Import from Arrow * Import Link from Arrow * Merging Graphs from Arrow
Our exploration will use import link from arrow as a starting point.
discussion
On SCCs from Arrow is the current state of this exploration, with some examples graphs being used.
An initial idea was to use clusters (subgraphs) to group strongly connected nodes. An initial example Neighborhood Pathways toward Regeneration (subgraphs). This could use some simplification, only creating clusters where a group contains more than one node might be a next step. But, getting a good layout is likely to take some effort.
An alternative approach would be to give groups strongly connected nodes a colour. This effect can be seen in Neighborhood Pathways toward Regeneration (colored). This can be compared with Neighborhood Pathways toward Regeneration from the merge. Other than the colouration, the only difference in these graphs is the order within the dot.
This colouring of strongly connected nodes feels good. But, with a finite set of colours, if more groups are found we will need to repeat colours.
next
add to the full screen version
components
The components in the assets below are:
**dedent.js** : An ES6 string tag that strips indentation from multiline string. *Helps make the output graphviz look nicer.*
**ssc.html** : A modified version of Merging Graphs from Arrow. This uses `tarjan.js` to find the SSCs in the graph, and gives the nodes in each group a colour.
**tarjan.js** : A javascript implementation of Tarjan's strongly connected components algorithm . A slight modification of Chad Hutchins's gist
pages/strongly-connected-components