ArticleslgStudy

computer science

Pfaffian orientation

Pfaffian orientation is a computer 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 Pfaffian orientation rather than just read about it. In short: In graph theory, a Pfaffian orientation of an undirected graph assigns a direction to each edge, so that certain cycles (the "even central cycles") have an odd number of edges in each direction. When a graph has a Pfaffian orientation, the orientation can be used to count the perfect matchings of the graph.

Pfaffian orientation — main illustration
Pfaffian orientation — illustration

Key takeaways

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

Reference excerpt

In graph theory, a Pfaffian orientation of an undirected graph assigns a direction to each edge, so that certain cycles (the "even central cycles") have an odd number of edges in each direction. When a graph has a Pfaffian orientation, the orientation can be used to count the perfect matchings of the graph. This is the main idea behind the FKT algorithm for counting perfect matchings in planar graphs, which always have Pfaffian orientations. More generally, every graph that does not have the utility graph K 3 , 3 {\displaystyle K_{3,3}} as a graph minor has a Pfaffian orientation, but K 3 , 3 {\displaystyle K_{3,3}} does not, nor do infinitely many other minimal non-Pfaffian graphs.

Definitions A Pfaffian orientation of an undirected graph is an orientation in which every even central cycle is oddly oriented. The terms of this definition have the following meanings:

An orientation assigns a direction to each edge of the graph. A cycle C {\displaystyle C} is called even if it contains an even number of edges. A cycle C {\displaystyle C} is central if the subgraph of G {\displaystyle G} formed by removing all the vertices of C {\displaystyle C} has a perfect matching; central cycles are also sometimes called alternating circuits. Cycle C {\displaystyle C} is oddly oriented if each of the two orientations of C {\displaystyle C} is consistent with an odd number of edges in the orientation.

Application to counting matchings Pfaffian orientations have been studied in connection with the FKT algorithm for counting the number of perfect matchings in a given graph. In this algorithm, the orientations of the edges are used to assign the values ± 1 {\displaystyle \pm 1} to the variables in the Tutte matrix of the graph. Then, the Pfaffian of this matrix (the square root of its determinant) gives the number of perfect matchings. Each perfect matching contributes ± 1 {\displaystyle \pm 1} to the Pfaffian regardless of which orientation is used; the choice of a Pfaffian orientation ensures that these contributions all have the same sign as each other, so that none of them cancel. This result stands in contrast to the much higher computational complexity of counting matchings in arbitrary graphs.

Pfaffian graphs A graph is said to be Pfaffian if it has a Pfaffian orientation. Every planar graph is Pfaffian. An orientation in which each face of a planar graph has an odd number of clockwise-oriented edges is automatically Pfaffian. Such an orientation can be found by starting with an arbitrary orientation of a spanning tree of the graph. The remaining edges, not in this tree, form a spanning tree of the dual graph, and their orientations can be chosen according to a bottom-up traversal of the dual spanning tree in order to ensure that each face of the original graph has an odd number of clockwise edges. More generally, every K 3 , 3 {\displaystyle K_{3,3}} -minor-free graph has a Pfaffian orientation. These are the graphs that do not have the utility graph K 3 , 3 {\displaystyle K_{3,3}} (which is not Pfaffian) as a graph minor. By Wagner's theorem, the K 3 , 3 {\displaystyle K_{3,3}} -minor-free graphs are formed by gluing together copies of planar graphs and the complete graph K 5 {\displaystyle K_{5}} along shared edges. The same gluing structure can be used to obtain a Pfaffian orientation for these graphs. Along with K 3 , 3 {\displaystyle K_{3,3}} , there are infinitely many minimal non-Pfaffian graphs. For bipartite graphs, it is possible to determine whether a Pfaffian orientation exists, and if so find one, in polynomial time.

References

Illustrations

Pfaffian orientation: Left: The 3 cycles of the graph, shown red, along with a matching of the remaining graph after removing the cycle. The cycles are "even" because they have an even number of edges, and are "central" because a perfect matching is able to be created with the remaining graph (cycle 3 leaves no vertices, automatically filling this criterion).

Right: A Pfaffian Orientation of the graph on the left, where the edges of the 3 cycles from the right have an odd number going in each direction around the cycle. The red and blue arrows are clockwise and counter-clockwise respectively for all cycles, and the black arrow is counter-clockwise relative to cycle 1 and clockwise relative to cycle 2.
Left: The 3 cycles of the graph, shown red, along with a matching of the remaining graph after removing the cycle. The cycles are "even" because they have an even number of edges, and are "central" because a perfect matching is able to be created with the remaining graph (cycle 3 leaves no vertices, automatically filling this criterion). Right: A Pfaffian Orientation of the graph on the left, where the edges of the 3 cycles from the right have an odd number going in each direction around the cycle. The red and blue arrows are clockwise and counter-clockwise respectively for all cycles, and the black arrow is counter-clockwise relative to cycle 1 and clockwise relative to cycle 2.

Worked examples

Example 1 — a first encounter with Pfaffian orientation

Start with the simplest possible case. Write down what Pfaffian orientation claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In computer 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 Pfaffian orientation 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 Pfaffian orientation 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 Pfaffian orientation

In research
Pfaffian orientation appears in computer 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 Pfaffian orientation 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
Pfaffian orientation is common in secondary-school and first-year university syllabi. It links to neighbouring topics Algorithms, Graph theory, Graph theory objects, so understanding it makes those chapters shorter.
In everyday life
Look for Pfaffian orientation 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 “Pfaffian orientation” →

Affiliate

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

How to study Pfaffian orientation in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what Pfaffian orientation 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 Pfaffian orientation out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is Pfaffian orientation in simple terms?

In graph theory, a Pfaffian orientation of an undirected graph assigns a direction to each edge, so that certain cycles (the "even central cycles") have an odd number of edges in each direction. When a graph has a Pfaffian orientation, the orientation can be used to count the perfect matchings of t…

Why does Pfaffian orientation matter?

Because it connects several computer 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 Pfaffian orientation?

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 Pfaffian orientation.

Tags

  • Algorithms
  • Graph theory
  • Graph theory objects
  • Matching (graph theory)

Keep exploring