A Deterministic Polynomial-Time Approximation Scheme for Counting Knapsack Solutions

  • Authors:
  • Daniel Štefankovič;Santosh Vempala;Eric Vigoda

  • Affiliations:
  • stefanko@cs.uchicago.edu;vempala@cc.gatech.edu and vigoda@cc.gatech.edu;-

  • Venue:
  • SIAM Journal on Computing
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

Given $n$ elements with nonnegative integer weights $w_1, \ldots, w_n$ and an integer capacity $C$, we consider the counting version of the classic knapsack problem: find the number of distinct subsets whose weights add up to at most the given capacity. We give a deterministic algorithm that estimates the number of solutions to within relative error $1\pm\varepsilon$ in time polynomial in $n$ and $1/\varepsilon$ (fully polynomial approximation scheme). More precisely, our algorithm takes time $O(n^3\varepsilon^{-1}\log(n/\varepsilon))$. Our algorithm is based on dynamic programming. Previously, randomized polynomial-time approximation schemes were known first by Morris and Sinclair via Markov chain Monte Carlo techniques and subsequently by Dyer via dynamic programming and rejection sampling.