  Around 2002, Leonid Gurvits gave a striking randomized algorithm to
approximate the permanent of an n*n matrix A. The algorithm runs in
O(n^2/eps^2) time, and approximates Per(A) to within eps*||A||^n additive
error. A major advantage of Gurvits's algorithm is that it works for arbitrary
matrices, not just for nonnegative matrices. This makes it highly relevant to
quantum optics, where the permanents of bounded-norm complex matrices play a
central role. Indeed, the existence of Gurvits's algorithm is why, in their
recent work on the hardness of quantum optics, Aaronson and Arkhipov (AA) had
to talk about sampling problems rather than estimation problems.
  In this paper, we improve Gurvits's algorithm in two ways. First, using an
idea from quantum optics, we generalize the algorithm so that it yields a
better approximation when the matrix A has either repeated rows or repeated
columns. Translating back to quantum optics, this lets us classically estimate
the probability of any outcome of an AA-type experiment---even an outcome
involving multiple photons "bunched" in the same mode---at least as well as
that probability can be estimated by the experiment itself. (This does not, of
course, let us solve the AA sampling problem.) It also yields a general upper
bound on the probabilities of "bunched" outcomes, which resolves a conjecture
of Gurvits and might be of independent physical interest.
  Second, we use eps-biased sets to derandomize Gurvits's algorithm, in the
special case where the matrix A is nonnegative. More interestingly, we
generalize the notion of eps-biased sets to the complex numbers, construct
"complex eps-biased sets," then use those sets to derandomize even our
generalization of Gurvits's algorithm to the multirow/multicolumn case (again
for nonnegative A). Whether Gurvits's algorithm can be derandomized for general
A remains an outstanding problem.
