ArticleslgStudy

science

Graph canonization

Graph canonization is a science topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand Graph canonization rather than just read about it. In short: In graph theory, a branch of mathematics, graph canonization is the problem of finding a canonical form of a given graph G. A canonical form is a labeled graph Canon(G) that is isomorphic to G, such that every graph that is isomorphic to G has the same canonical form as G.

Key takeaways

  • Graph canonization belongs to science; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect Graph canonization to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of Graph canonization from memory before moving on to harder problems.

Reference excerpt

In graph theory, a branch of mathematics, graph canonization is the problem of finding a canonical form of a given graph G. A canonical form is a labeled graph Canon(G) that is isomorphic to G, such that every graph that is isomorphic to G has the same canonical form as G. Thus, from a solution to the graph canonization problem, one could also solve the problem of graph isomorphism: to test whether two graphs G and H are isomorphic, compute their canonical forms Canon(G) and Canon(H), and test whether these two canonical forms are identical. The canonical form of a graph is an example of a complete graph invariant: every two isomorphic graphs have the same canonical form, and every two non-isomorphic graphs have different canonical forms. Conversely, every complete invariant of graphs may be used to construct a canonical form. The vertex set of an n-vertex graph may be identified with the integers from 1 to n, and using such an identification a canonical form of a graph may also be described as a permutation of its vertices. Canonical forms of a graph are also called canonical labelings, and graph canonization is also sometimes known as graph canonicalization.

Computational complexity

The graph isomorphism problem is the computational problem of determining whether two finite graphs are isomorphic. Clearly, the graph canonization problem is at least as computationally hard as the graph isomorphism problem. In fact, graph isomorphism is even AC0-reducible to graph canonization. However, it is still an open question whether the two problems are polynomial-time equivalent. In 2019, László Babai announced a quasi-polynomial-time algorithm for graph canonization, that is, one with running time 2 O ( ( log ⁡ n ) c ) {\displaystyle 2^{O((\log n)^{c})}} for some fixed c > 0 {\displaystyle c>0} . While the existence of (deterministic) polynomial-time algorithms for graph isomorphism is still an open problem in computational complexity theory, in 1977 László Babai reported that with probability at least 1 − exp(−O(n)), a simple vertex-classification algorithm produces a canonical labeling of a graph chosen uniformly at random from the set of all n-vertex graphs after only two refinement steps. Small modifications and an added depth-first search step produce canonical labelings of such uniformly-chosen random graphs in linear expected time. This result sheds some light on the question of why many reported graph isomorphism algorithms behave well in practice. This was an important breakthrough in probabilistic complexity theory, which became widely known in its manuscript form and which was still cited as an "unpublished manuscript" long after it was reported at a symposium. A commonly known canonical form is the lexicographically smallest graph within the isomorphism class, which is the graph of the class with lexicographically smallest adjacency matrix considered as a linear string. However, the computation of the lexicographically smallest graph is NP-hard. For trees, a concise polynomial-time canonization algorithm requiring O(n) space is presented by Read (1972). Begin by labeling each vertex with the string 01. Iteratively for each non-leaf x, remove the leading 0 and trailing 1 from x's label; then, sort x's label along with the labels of all adjacent leaves in lexicographic order. Concatenate these sorted labels, add back a leading 0 and trailing 1, make this the new label of x, and delete the adjacent leaves. If there are two vertices remaining, concatenate their labels in lexicographic order.

Applications Graph canonization is the essence of many graph isomorphism algorithms. One of the leading tools is Nauty. A common application of graph canonization is in graphical data mining, in particular in chemical database applications. A number of identifiers for chemical substances, such as SMILES and InChI, use canonization steps in their computation, which is essentially the canonization of the graph which represents the molecule. These identifiers are designed to provide a standard (and sometimes human-readable) way to encode molecular information and to facilitate the search for such information in databases and on the web.

See also Canonical form – Standard representation of a mathematical object Canonicalization – Process for converting data into a "standard", "normal", or canonical form

References

Worked examples

Example 1 — a first encounter with Graph canonization

Start with the simplest possible case. Write down what Graph canonization claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In science, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to Graph canonization before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about Graph canonization ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of Graph canonization

In research
Graph canonization appears in science research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses Graph canonization in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
Graph canonization is common in secondary-school and first-year university syllabi. It links to neighbouring topics Graph theory, so understanding it makes those chapters shorter.
In everyday life
Look for Graph canonization outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.
Ask Teacher Smith questions about this articleOpens your AI tutor with a question about “Graph canonization” →

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study Graph canonization in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what Graph canonization means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain Graph canonization out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is Graph canonization in simple terms?

In graph theory, a branch of mathematics, graph canonization is the problem of finding a canonical form of a given graph G. A canonical form is a labeled graph Canon(G) that is isomorphic to G, such that every graph that is isomorphic to G has the same canonical form as G.

Why does Graph canonization matter?

Because it connects several science ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study Graph canonization?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on Graph canonization.

Tags

  • Graph theory

Keep exploring