Applications

For number theory applications, see number theory ref.

Perfect matchings

Bipartite graph

G = (U, V, E); |U|=|V|=n. Matching: {e}E not sharing endpoints. Perfect matching (pm) has size n. Naive alg takes O((n!)n) time.

Make symbolic matrix with Ai,j=xi,j if (ui,vj)E, else 0. Let Q(x) = det(A) : n2-nomial, ‘symbolic determinant’. G has pm iff r:Q(r)0. deg(Q)n. Take prime p>2n, pick r from Zp; by Schwartz Zippel Thm, Pr(Q(r)=0|r|Q(r)0)<21.

If pm unique, find pm in polytime: Repeat: E=E{e}; see if G still has pm. (Parallelizable.)

If pm not unique

Take uniformly random weight fn w:[1,m][1,2m]; let W(S)=dSw(d).

Isolation lemma

Let Si[1,m]; take k Si. Pr(minWt Si,Sj|eSi,eSj)(2m)1: by principle of deferred decisions: Pick W(e) last to W(Sj)W(Si{e}). So, bound: Pr( unique Si with W(Si) min) 21.

Get w(e) e=(ui,vj)E. Get matrix Bi,j=2w((ui,vj)). Then det(B)=pm M(±2W(M)). So find pm by finding highest power of 2 dividign det(B).

General graph

(Tutte): G = (V, E); Make Tutte matrix: i<j if (ui,vj)E, Ai,j=xi,j and Aj,i=xi,j, else 0. Let |A|=Q(x) multinomial; G has pm iff xQ(x)0: det(A)=πsgn(π)Ai,π(i); if some π:Ai,π(i)=0, no pm. Else, Take prime p>2n, pick r from Zp, take Q over Zp; by Schwartz Zippel, x where Q(x)0.