3
$\begingroup$

One can write out an integral whose solution gives the number of solutions to the NP-Complete Number Partition Problem and I'm wondering if anyone has an suggestions or ideas on who to solve or approximate this integral analytically or numerically.

Given $a_0, a_1, \dots, a_{n-1} \in \mathbb{Z}$, the Number Partition Problem asks for a partition of the $a_k$'s such that $\sum_{k=0}^{n-1} \sigma_k a_k = 0$, where $\sigma_k \in \{ -1,1 \} $.

Consider the following Integral:

$ I(a_0, a_1, \dots, a_{n-1}) = \frac{1}{2 \pi} \int_{-\pi}^{\pi} \prod_{k=0}^{n-1} (e^{ i a_k \theta } + e^{ -i a_k \theta } ) d\theta $

$I(\dots)$ will count the number of solutions for a given instance of $(a_0, a_1, \dots, a_{n-1})$. Solving this integral is worse than NP-Hard (it's #P) so asking for a general solution is out of the question. But can one do any sort of approximation, either analytically or numerically? If you choose the $a_k$'s with some distribution, say uniform on some interval, can you exploit that randomness to help you approximate this integral?

Any ideas would be appreciated.

note: This has been studied by Borgs et all for the NPP Phase Transition and that's where I first saw this integral representation of the Number Partition Problem, but their analysis relies on approximating the family of instances given a uniform distribution on the $a_k$'s rather than trying to solve a particular instance, as I'm trying to do above.

  • 0
    @Jitse, I was imagining $a_k$ to be extremely large, typically on the size of $2^n$. And $\sigma_k$ now reads correctly, thanks for pointing it out.2011-04-23

1 Answers 1

1

Using a discrete Fourier transformation seems more appropriate if the $a_i$ are integers. The number of solutions is the value of the convolution product $ \left(\delta_{a_0} + \delta_{-a_0}\right) * \left(\delta_{a_1} + \delta_{-a_1}\right) * ... * \left(\delta_{a_{n-1}} + \delta_{-a_{n-1}}\right) $ evaluated at 0. This has the obvious dynamic programming solution, which takes something like $O(n A)$ time, where $A = \sum_i |a_i|$; i.e., it is a quasi-polynomial-time algorithm. If the $a_i$ are chosen at random from (bounded) distributions of integers instead, then the dynamic programming solution takes $O(n A^2)$ to calculate the expected number of solutions. The discrete Fourier transform translates that problem to a direct product of $n$ functions over $O(A)$ points, each of which can be computed in $O(A \log A)$ using the FFT, reducing the total time to $O(nA \log A)$. Moreover, the number of "approximate" partitions, i.e., choices of the $\sigma_i$ such that $|\sum_{i=0}^{n-1}\sigma_i a_i| \le k$ for some small $k$, falls out of this calculation essentially for free.

  • 0
    This is very much like the argument made by Mertens (see [here](http://www-e.uni-magdeburg.de/mertens/publications/npp1.ps.gz)). The difference in the analysis I presented and considering them as delta functions are very similar. I should have mentioned that the numbers under consideration are extremely large ($A = 2^m$, where $m$ is within polynomial factor of $n$) and so the order of the dynamic programming solutions becomes exponential. I was asking for efficient (approximate) algorithms when the elements are drawn from this (uniform) exponential distribution.2011-01-21