2

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?

1 Answers1

0

The Monte=Carlo method is actually a FPRAS, at least according to my definition of FPRAS, so that is an example. Barvinok's algorithm is probably too hard to explain without a long answer and some higher level background math, but I do know that Barvinok came up with a (still farily complicated) way to count the number of integer points exactly in a convex polytope (bounded solution region to a system of linear inequalities) in polynomial time when the dimension of the polytope is fixed. So I'm assuming he is doing something related for the permanent, and that basically if the rank of the matrix is fixed this is like having "fixed true dimension" for a convex polytope, even if the polytope is embedded in a higher dimensional space. Barvinok is good at coming up with polynomial time algorithms when something like the "dimension" is fixed.

user2566092
  • 26,450
  • Thanks for the nice explanation. Fixing the dimension is a not understandable here. In my permanental point process, I have to sample e.g., 100 points in a grid of n x n square matrix. Can you please comment what is meant by fixing the dimension? – Atta Ul Mustafa Jul 30 '15 at 15:54
  • @AttaUlMustafa I would have to read Barvinok's paper on permanents to understand exactly how fixing the rank of the matrix becomes important. All I know is that it is probably a very close concept to fixing dimension, because for example the rank of a matrix tells you the true dimension of the matrix's column span if you consider it a subspace. – user2566092 Jul 30 '15 at 16:09
  • The algorithm is:
    1. 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);

    2. 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,

    1. Compute

    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