A couple things:
- Jason pointed out that one can use Lovasz’ basic idea with binary search to actually reduce the number of calls from to , and hence get an algorithm using very basic techniques.His approach is this: suppose we know that the graph has a perfect matching. Then pick a vertex and test whether there exists a perfect matching that uses only the first half of its incident edges. If so, recurse using that half of the edges; if not, recurse using the other half. We will do only queries before we find an edge matching to someone in a perfect matching. Hence the claim of tests!
- Also, the idea to compute the inverse of a matrix from in time is based on the following observation. Suppose
is non-singular with , and
Just using this idea along with the Rabin-Vazirani approach gives an algorithm, since we need to compute n inverses, each taking time. Mucha and Sankowski showed how to speed this up to find a perfect matching in time.
- Finally, we only saw the proofs for bipartite graphs in lecture, the general graph case also goes through with more work.