Home Knowledge Base Graph Canonization (Canonical Labeling)

Graph Canonization (Canonical Labeling) is the process of computing a unique, deterministic string or matrix representation for a graph such that two graphs receive identical canonical forms if and only if they are isomorphic — solving the fundamental problem of graph identification: given a graph that can be drawn in $N!$ different ways (one for each node permutation), computing a single standardized representation that is independent of the arbitrary node ordering.

What Is Graph Canonization?

Why Graph Canonization Matters

Canonization Tools and Complexity

Tool/AlgorithmApproachPractical Performance
nauty (McKay)Automorphism group computationGold standard, handles > 10,000 nodes
Traces (McKay & Piperno)Improved nauty with better heuristicsFaster on sparse graphs
blissAutomorphism-based with pruningEfficient for sparse structured graphs
Canonical SMILESString linearization for moleculesIndustry standard for chemical databases
InChIIUPAC canonical molecular identifierInternational chemical identifier standard

Graph Canonization is unique naming — computing a single, deterministic identity card for every graph that resolves ambiguity from arbitrary node labeling, enabling exact graph lookup, deduplication, and comparison at the speed of string matching rather than the cost of isomorphism testing.

graph canonizationgraph algorithms

Explore 500+ Semiconductor & AI Topics

From EUV lithography to CUDA optimization — search the full knowledge base or chat with our AI assistant.