How to determine if a NxN matrix with non-negative integer entries is a product of k square 0/1 matrices?

时间:2015-08-14 22:55:36

标签: algorithm matrix

So I'm suspecting this problem could be NP-complete or NP-hard at least in certain circumstances, but still, often for NP-complete problems there is a nice solution that runs much faster than naïve brute force.

My problem is, given an NxN matrix A, with non-negative integer entries, and an integer k > 1, how can we determine if A can be written as a product of k NxN matrices whose entries are all either 0 or 1?

Like I said, I think this problem may be

  • NP-complete even for k = 2 but I maybe wrong,
  • maybe it's polynomial time for k=2 or even for any fixed k or even for k not fixed.
  • Also it may help to bound the non-negative entries in the target matrix A, to come up with good running times.

I would just like to find out good algorithms that run asymptotically faster (hopefully much faster) than brute force over all choices of 0/1 matrices to multiply.

Also, I apologize if this question is better suited on CS.stackexchange, if so, please let me know and I'll migrate the question. However we do have an algorithm" tag here, and since I suspect this problem is NP-hard, at least in one of its variants about whether k=2 or k is fixed or unbounded k, it's of more interest to me to just get whatever good algorithms may be available, e.g. that may work in polynomial time for fixed k or run in pseudo-polynomial time for arbitrary k but not polynomial time in general.

0 个答案:

没有答案