Pfaffian

In mathematics the determinant of an m&times;m skew-symmetric matrix can always be written as the square of a polynomial in the matrix entries, a polynomial with integer coefficients that only depends on m. When m is odd, the polynomial is zero. When m is even, it is a nonzero polynomial of degree m/2, and is unique up to multiplication by &pm;1. The convention on skew-symmetric tridiagonal matrices, given below in the examples, then determines one specific polynomial, called the Pfaffian polynomial. The value of this polynomial, when applied to the entries of a skew-symmetric matrix, is called the Pfaffian of that matrix. The term Pfaffian was introduced by, who indirectly named them after Johann Friedrich Pfaff.

Explicitly, for a skew-symmetric matrix $$A$$,
 * $$ \operatorname{pf}(A)^2=\det(A),$$

which was first proved by, who cites Jacobi for introducing these polynomials in work on Pfaffian systems of differential equations. Cayley obtains this relation by specialising a more general result on matrices that deviate from skew symmetry only in the first row and the first column. The determinant of such a matrix is the product of the Pfaffians of the two matrices obtained by first setting in the original matrix the upper left entry to zero and then copying, respectively, the negative transpose of the first row to the first column and the negative transpose of the first column to the first row. This is proved by induction by expanding the determinant on minors and employing the recursion formula below.

Examples

 * $$A=\begin{bmatrix} 0 & a \\ -a & 0  \end{bmatrix}.\qquad\operatorname{pf}(A)=a.$$


 * $$B=\begin{bmatrix}  0     & a & b \\ -a & 0        & c  \\   -b      &  -c       & 0 \end{bmatrix}.\qquad\operatorname{pf}(B)=0.$$

(3 is odd, so the Pfaffian of B is 0)


 * $$\operatorname{pf}\begin{bmatrix}   0     & a & b & c \\ -a & 0        & d & e  \\   -b      &  -d       & 0& f    \\-c &  -e      & -f & 0 \end{bmatrix}=af-be+dc.$$

The Pfaffian of a 2n &times; 2n skew-symmetric tridiagonal matrix is given as
 * $$\operatorname{pf}\begin{bmatrix}

0 & a_1 & 0 & 0\\ -a_1 & 0 & 0 & 0\\ 0 & 0 &0 & a_2 \\ 0 & 0 & -a_2 &0&\ddots\\ &&&\ddots&\ddots& \\ &&&& &0&a_n\\ &&&&&-a_n&0 \end{bmatrix} = a_1 a_2\cdots a_n.$$ (Note that any skew-symmetric matrix can be reduced to this form; see Spectral theory of a skew-symmetric matrix.)

Formal definition
Let A = (aij) be a 2n × 2n skew-symmetric matrix. The Pfaffian of A is explicitly defined by the formula


 * $$\operatorname{pf}(A) = \frac{1}{2^n n!}\sum_{\sigma\in S_{2n}}\operatorname{sgn}(\sigma)\prod_{i=1}^{n}a_{\sigma(2i-1),\sigma(2i)} \,, $$

where S2n is the symmetric group of order (2n)! and sgn(σ) is the signature of σ.

One can make use of the skew-symmetry of A to avoid summing over all possible permutations. Let Π be the set of all partitions of $\{1, 2, ..., 2n\}$ into pairs without regard to order. There are (2n)!/(2nn!) = (2n − 1)!! such partitions. An element α ∈ Π can be written as
 * $$\alpha=\{(i_1,j_1),(i_2,j_2),\cdots,(i_n,j_n)\}$$

with ik < jk and $$i_1 < i_2 < \cdots < i_n$$. Let
 * $$\pi_\alpha=\begin{bmatrix} 1 & 2 & 3 & 4 & \cdots & 2n -1 & 2n \\ i_1 & j_1 & i_2 & j_2 & \cdots & i_n & j_{n} \end{bmatrix}$$

be the corresponding permutation. Given a partition α as above, define
 * $$ A_\alpha =\operatorname{sgn}(\pi_\alpha)a_{i_1,j_1}a_{i_2,j_2}\cdots a_{i_n,j_n}.$$

The Pfaffian of A is then given by
 * $$\operatorname{pf}(A)=\sum_{\alpha\in\Pi} A_\alpha.$$

The Pfaffian of a n&times;n skew-symmetric matrix for n odd is defined to be zero, as the determinant of an odd skew-symmetric matrix is zero, since for a skew-symmetric matrix, $$\det\,A = \det\,A^\text{T} = \det\left(-A\right) = (-1)^n \det\,A,$$ and for n odd, this implies $$\det\,A = 0$$.

Recursive definition
By convention, the Pfaffian of the 0×0 matrix is equal to one. The Pfaffian of a skew-symmetric 2n×2n matrix A with n > 0 can be computed recursively as
 * $$\operatorname{pf}(A)=\sum_{{j=1}\atop{j\neq i}}^{2n}(-1)^{i+j+1+\theta(i-j)}a_{ij}\operatorname{pf}(A_{\hat{\imath}\hat{\jmath}}),$$

where the index i can be selected arbitrarily, $$\theta(i-j)$$ is the Heaviside step function, and $$A_{\hat{\imath}\hat{\jmath}}$$ denotes the matrix A with both the i-th and j-th rows and columns removed. Note how for the special choice $$i=1$$ this reduces to the simpler expression:
 * $$\operatorname{pf}(A)=\sum_{j=2}^{2n}(-1)^{j}a_{1j}\operatorname{pf}(A_{\hat{1}\hat{\jmath}}).$$

Alternative definitions
One can associate to any skew-symmetric 2n×2n matrix A = (aij) a bivector
 * $$\omega=\sum_{i<j} a_{ij}\;e_i\wedge e_j ,$$

where $\{e_{1}, e_{2}, ..., e_{2n}\}$ is the standard basis of R2n. The Pfaffian is then defined by the equation
 * $$\frac{1}{n!}\omega^n = \operatorname{pf}(A)\;e_1\wedge e_2\wedge\cdots\wedge e_{2n},$$

here ωn denotes the wedge product of n copies of ω.

Equivalently, we can consider the bivector (which is more convenient when we do not want to impose the summation constraint $$i < j$$): $$\omega'=2 \omega = \sum_{i, j} a_{ij}\;e_i\wedge e_j,$$ which gives $$\omega'^n = 2^n n! \operatorname{pf}(A)\;e_1\wedge e_2\wedge\cdots\wedge e_{2n}.$$

A non-zero generalisation of the Pfaffian to odd-dimensional matrices is given in the work of de Bruijn on multiple integrals involving determinants. In particular for any $$m\times m$$-matrix A, we use the formal definition above but set $$n = \lfloor m/2\rfloor $$. For m odd, one can then show that this is equal to the usual Pfaffian of an $$(m+1) \times (m+1)$$-dimensional skew symmetric matrix where we have added an $$(m+1)$$th column consisting of m elements 1, an $$(m+1)$$th row consisting of m elements −1, and the corner element is zero. The usual properties of Pfaffians, for example the relation to the determinant, then apply to this extended matrix.

Properties and identities
Pfaffians have the following properties, which are similar to those of determinants. Using these properties, Pfaffians can be computed quickly, akin to the computation of determinants.
 * Multiplication of a row and a column by a constant is equivalent to multiplication of the Pfaffian by the same constant.
 * Simultaneous interchange of two different rows and corresponding columns changes the sign of the Pfaffian.
 * A multiple of a row and corresponding column added to another row and corresponding column does not change the value of the Pfaffian.

Miscellaneous
For a 2n &times; 2n skew-symmetric matrix A
 * $$\operatorname{pf}(A^\text{T}) = (-1)^n\operatorname{pf}(A).$$
 * $$\operatorname{pf}(\lambda A) = \lambda^n \operatorname{pf}(A).$$
 * $$\operatorname{pf}(A)^2 = \det(A).$$

For an arbitrary 2n &times; 2n matrix B,
 * $$\operatorname{pf}(BAB^\text{T})= \det(B)\operatorname{pf}(A).$$

Substituting in this equation B = Am, one gets for all integer m
 * $$\operatorname{pf}(A^{2m+1})= (-1)^{nm}\operatorname{pf}(A)^{2m+1}.$$

$$

$$

Derivative identities
If A depends on some variable xi, then the gradient of a Pfaffian is given by
 * $$\frac{1}{\operatorname{pf}(A)}\frac{\partial\operatorname{pf}(A)}{\partial x_i}=\frac{1}{2}\operatorname{tr}\left(A^{-1}\frac{\partial A}{\partial x_i}\right),$$

and the Hessian of a Pfaffian is given by
 * $$\frac{1}{\operatorname{pf}(A)}\frac{\partial^2\operatorname{pf}(A)}{\partial x_i\partial x_j}=\frac{1}{2}\operatorname{tr}\left(A^{-1}\frac{\partial^2 A}{\partial x_i\partial x_j}\right)-\frac{1}{2}\operatorname{tr}\left(A^{-1}\frac{\partial A}{\partial x_i}A^{-1}\frac{\partial A}{\partial x_j}\right)+\frac{1}{4}\operatorname{tr}\left(A^{-1}\frac{\partial A}{\partial x_i}\right)\operatorname{tr}\left(A^{-1}\frac{\partial A}{\partial x_j}\right).$$

Trace identities
The product of the Pfaffians of skew-symmetric matrices A and B can be represented in the form of an exponential
 * $$\textrm{pf}(A)\,\textrm{pf}(B) = \exp(\tfrac{1}{2}\mathrm{tr}\log(A^\text{T}B)).$$

Suppose A and B are 2n × 2n skew-symmetric matrices, then
 * $$ \mathrm{pf}(A)\,\mathrm{pf}(B) = \tfrac{1}{n!} B_n(s_1, s_2, \ldots, s_n), \qquad \mathrm{where} \qquad s_l = - \tfrac{1}{2}(l - 1)!\,\mathrm{tr}((AB)^l)$$

and Bn(s1,s2,...,sn) are Bell polynomials.

Block matrices
For a block-diagonal matrix
 * $$A_1\oplus A_2=\begin{bmatrix} A_1 & 0 \\ 0 & A_2 \end{bmatrix},$$
 * $$\operatorname{pf}(A_1\oplus A_2) =\operatorname{pf}(A_1)\operatorname{pf}(A_2).$$

For an arbitrary n &times; n matrix M:
 * $$\operatorname{pf}\begin{bmatrix} 0 & M \\ -M^\text{T} & 0  \end{bmatrix} =

(-1)^{n(n-1)/2}\det M.$$

It is often required to compute the pfaffian of a skew-symmetric matrix $$ S $$ with the block structure

S = \begin{pmatrix} M & Q\\-Q^\mathrm{T} & N \end{pmatrix}\, $$ where $$ M $$ and $$ N $$ are skew-symmetric matrices and $$ Q $$ is a general rectangular matrix.

When $$ M $$ is invertible, one has

\operatorname{pf}( S) = \operatorname{pf}( M)\operatorname{pf}( N+ Q^\mathrm{T}   M^{-1}  Q). $$ This can be seen from Aitken block-diagonalization formula,
 * $$\begin{pmatrix}M& 0\\ 0 & N+Q^\mathrm{T} M^{-1} Q\end{pmatrix} = \begin{pmatrix}I& 0\\ Q^\mathrm{T} M^{-1} & I\end{pmatrix}\begin{pmatrix} M& Q\\ -Q^\mathrm{T} & N\end{pmatrix} \begin{pmatrix}I& -M^{-1} Q\\ 0& I \end{pmatrix}.$$

This decomposition involves a congruence transformations that allow to use the pfaffian property $$ \operatorname{pf}(BAB^\mathrm{T}) = \operatorname{det}(B)\operatorname{pf}(A)$$.

Similarly, when $$ N $$ is invertible, one has

\operatorname{pf}( S) = \operatorname{pf}(N)\operatorname{pf}( M+ Q N^{-1} Q^\mathrm{T}), $$ as can be seen by employing the decomposition
 * $$\begin{pmatrix}M+Q N^{-1} Q^\mathrm{T}& 0\\ 0 & N\end{pmatrix} = \begin{pmatrix}I& -Q N^{-1}\\ 0 & I\end{pmatrix}\begin{pmatrix} M& Q\\ -Q^\mathrm{T} & N\end{pmatrix} \begin{pmatrix}I& 0\\ N^{-1} Q^\mathrm{T}& I \end{pmatrix}.$$

Calculating the Pfaffian numerically
Suppose A is a 2n × 2n skew-symmetric matrices, then
 * $$\textrm{pf}(A) = i^{(n^2)} \exp\left(\tfrac{1}{2}\mathrm{tr}\log((\sigma_y\otimes I_n)^\mathrm{T}\cdot A)\right), $$

where $$\sigma_y$$ is the second Pauli matrix, $$I_n$$ is an identity matrix of dimension n and we took the trace over a matrix logarithm.

This equality is based on the trace identity
 * $$\textrm{pf}(A)\,\textrm{pf}(B) = \exp\left(\tfrac{1}{2}\mathrm{tr}\log(A^\text{T}B)\right)$$

and on the observation that $$\textrm{pf}(\sigma_y\otimes I_n)=(-i)^{n^2}$$.

Since calculating the logarithm of a matrix is a computationally demanding task, one can instead compute all eigenvalues of $$((\sigma_y\otimes I_n)^\mathrm{T}\cdot A)$$, take the log of all of these and sum them up. This procedure merely exploits the property $$\operatorname{tr}{\log{(AB)}} = \operatorname{tr}{\log{(A)}} + \operatorname{tr}{\log{(B)}} $$. This can be implemented in Mathematica with a single statement:

However, this algorithm is unstable when the Pfaffian is large. The eigenvalues of $$(\sigma_y\otimes I_n)^\mathrm{T}\cdot A $$ will generally be complex, and the logarithm of these complex eigenvalues are generally taken to be in $$ [-\pi, \pi] $$. Under the summation, for a real valued Pfaffian, the argument of the exponential will be given in the form $$ x + k\pi/2 $$ for some integer $$k$$. When $$x$$ is very large, rounding errors in computing the resulting sign from the complex phase can lead to a non-zero imaginary component.

For other (more) efficient algorithms see.

Applications

 * There exist programs for the numerical computation of the Pfaffian on various platforms (Python, Matlab, Mathematica).
 * The Pfaffian is an invariant polynomial of a skew-symmetric matrix under a proper orthogonal change of basis. As such, it is important in the theory of characteristic classes. In particular, it can be used to define the Euler class of a Riemannian manifold that is used in the generalized Gauss–Bonnet theorem.
 * The number of perfect matchings in a planar graph is given by a Pfaffian, hence is polynomial time computable via the FKT algorithm. This is surprising given that for general graphs, the problem is very difficult (so called #P-complete). This result is used to calculate the number of domino tilings of a rectangle, the partition function of Ising models in physics, or of Markov random fields in machine learning, where the underlying graph is planar. It is also used to derive efficient algorithms for some otherwise seemingly intractable problems, including the efficient simulation of certain types of restricted quantum computation. Read Holographic algorithm for more information.