In the following paper
http://www.stat.uchicago.edu/~pmcc/reports/permanent.pdf
it is stated that:
"Exact computation of permanents of general matrices is a #P (sharp P) complete problem, so no deterministic polynomial-time algorithm is available. However, polynomial-time algorithms exist for certain special cases, such as general fixed-rank matrices (Barvinok 1996), and for approximate Monte-Carlo computation of general non-negative matrices (Jerum et al. 2004)."
I am a beginner in this field. So, can anybody comment on the algorithms mentioned in (Barvinok 1996) and about approximate Monte-Carlo computation in (Jerum et al. 2004)?
Moreover, can we think about fully polynomial-time randomized approximation scheme (FPRAS) to efficiently calculate permanents of a matrix?
Compute n x n matrix B= (b_ij) such that b_ij=0 unless i<=r and n x n matrix G=(g_ij) such that GB=A (such matrices exist since rank A<=r);
Define two polynomials L and R in r variables x_1, ... , x_r of degree n as
L(x_1, ... ,x_r)=Product(j=1---> n) Sum(i=1--->r) b_ij . x_i, R(x_1, ... ,x_r)=Product(j=1---> n) Sum(i=1--->r) g_ij . x_i,
and then expand them into the sum of (n+r-1)C_(r-1) monomials L=Sum(a) lam_a . x^a, ; where a is alpha and lam is lambda R=Sum(a) Rho_a . x^a,
per A=Sum(a=(a_1, ..., a_r) a_1! ... a_r! . lam_a . rho_a.
– Atta Ul Mustafa Jul 31 '15 at 10:29