Expand description
McKay refinement-individualisation graph canonical labelling engine.
§Algorithm
This is an independent implementation of the nauty-family algorithm:
- Initial colouring — vertices grouped by their
datavalue. - 1-WL refinement — neighbour signatures (edge-data + direction) split cells iteratively until the partition is equitable.
- Individualisation-refinement search — pick a vertex from the smallest non-trivial cell, individualise, refine, recurse (DFS).
- Pruning — path invariants (cell-length sequences) and automorphism orbits eliminate isomorphic branches.
- Canonical form — the lexicographically largest certificate among all discrete labelings encountered during the search.
§References
- McKay, “Practical Graph Isomorphism” (1981/2014)
- Symbolica
graphicacrate (MIT, algorithm reference only — no code copied)
Structs§
- Canonical
Form - Result of canonisation.
- Edge
Iter - Iterator over edges incident to a vertex.
- Edge
View - A single incident-edge descriptor.
- Graph
- A graph suitable for canonical labelling.