1 Introduction

Computing a volume in the n-dimensional space is a hard problem, even for approximation. Lovász [17] showed that no polynomial-time deterministic algorithm can approximate with ratio \(1.999^n\) the volumes of convex bodies in the n dimensional space as given by membership oracles (see also [3, 9]).

Several randomized approximation techniques for #P-hard problems have been developed, such as the Markov chain Monte Carlo method. For the volume computation of a general convex body given by a membership oracle in the n dimensional space, Dyer et al. [8] gave the first fully polynomial-time randomized approximation scheme (FPRAS), giving a rapidly mixing Markov chain. In fact, the running time of the FPRAS is \(\mathrm {O}^*(n^{23})\) where \(\mathrm {O}^*\) ignores \(\mathrm {poly}(\log n)\) and \(1/\epsilon \) terms. After several improvements, Lovász and Vempala [18] improved the time complexity to \(\mathrm {O}^*(n^4)\), and recently Cousins and Vempala [5] gave an \(\mathrm {O}^*(n^3)\)-time algorithm.

In contrast, it is a major challenge to design deterministic approximation algorithms for #P-hard problems, and not many results seem to be known. A remarkable progress is the correlation decay argument due to Weitz [20]; he designed a fully polynomial time approximation scheme (FPTAS) for counting independent sets in graphs whose maximum degree is at least 5. A similar technique is independently presented by Bandyopadhyay and Gamarnik [2], and there are several recent developments on the technique, e.g., [4, 10, 13, 14, 16]. For counting 0-1 knapsack solutions, Gopalan et al. [11], and Stefankovic et al. [19] gave deterministic approximation algorithms based on the dynamic programming (see also [12]), in a similar way to a simple random sampling algorithm by Dyer [6]. Modifying the dynamic programming, Li and Shi [15] recently gave an FPTAS for computing a distribution function of sum of random variables, including the volume computation of 0-1 knapsack polytopes.

Motivated by a new technique of designing an FPTAS for #P-hard problems, this paper is concerned with the volume computation of 0-1 knapsack polytopes: Given a positive integer vector \({\mathbf {a}}^{\top }=(a_1,\ldots ,a_n)\in \mathbb {Z}_{> 0}^n\) and a positive integer \(b \in \mathbb {Z}_{>0}\), the 0-1 knapsack polytope is given by

$$\begin{aligned} K \mathop {=}\limits ^{\mathrm{def}}\{{\mathbf {x}}=(x_1,\ldots ,x_n)\in {\mathbb R}^n \mid {\mathbf {a}}^{\top }{\mathbf {x}}\le b,\ 0\le x_i\le 1\ (i=1,\ldots ,n)\}. \end{aligned}$$

Computing the volume of K is known to be #P-hard [7]. Remark that counting solutions corresponds to counting the integer points in K, and it is different from the volume computation, but closely related.

This paper presents a new technique for designing a deterministic approximation algorithm for volume computations, and provides an FPTAS for the volume computation of 0-1 knapsack polytopes, i.e., our main result is the following:

Theorem 1.1

For any \(\epsilon ~~(0<\epsilon \le 1)\), there exists an \(\mathrm {O}(n^3/\epsilon )\)-time deterministic algorithm to approximate \(\mathrm{Vol}(K)\) with approximation ratio \(1+\epsilon \).

The idea of our algorithm is based on the classical convolution, while there seems no known technique (explicitly) using approximate convolutions to design an FPTAS for #P-hard problems. Our algorithm consists of recursively approximating convolutions with \(\mathrm {O}(n^3 /\epsilon )\) iterations, meaning that the number of iterations is independent of the values of \(a_i\) and b. In comparison with Li and Shi [15], their algorithm is based on the dynamic programming by Stefankovic et al. [19], and their FPTAS requires \(\mathrm {O}\left( (n^3/\epsilon ^2)\log \left( 1/\mathrm{Vol}(K)\right) \log b\right) \) iterations, where notice that \(\mathrm{Vol}(K) \le 1\) holds by the definition of K. Thus, the number of iterations in their algorithm depends on the input values \(\log a_i\) and \(\log b\).

While a standard knapsack problem is characterized by a single nontrivial constraint, we also show in Sect. 4 that Theorem 1.1 is slightly extended to multi-constrained knapsack polytopes with a constant number of constraints, while a standard knapsack problem is characterized by a single nontrivial constraint. As far as we know, this is the first FPTAS for the problem. An extension of our technique to other polytopes is an interesting challenge.

This paper is organized as follows. In Sect. 2, we give a recursive convolution for the volume computation, to explain the idea of our algorithm. In Sect. 3, we explain our algorithm. In Sect. 4, we extend our technique to knapsack polytopes with a constant number of constraints. In Sect. 5, we give some supplemental proofs.

2 Preliminary: Convolution for \(\mathrm{Vol}(K)\)

This section presents a convolution for \(\mathrm{Vol}(K)\), to explain the basic idea of our approximation algorithm. As a preliminary step, we “normalize” the problem for the convenience of arguments in this paper. Let \(M \in \mathbb {Z}_{>0}\) be an arbitrary constant for scalingFootnote 1, and let

$$\begin{aligned} \tilde{a}_j \mathop {=}\limits ^{\mathrm{def}}\frac{a_j}{b}M \end{aligned}$$
(1)

for \(j=1,2,\ldots ,n\). Let

$$\begin{aligned} \tilde{K} \mathop {=}\limits ^{\mathrm{def}}\{ {\mathbf {x}} \in [0,1]^n \mid \tilde{{\mathbf {a}}}^{\top } {\mathbf {x}} \le M \} \end{aligned}$$
(2)

then, notice that

$$\begin{aligned} \tilde{K}= & {} \{ {\mathbf {x}} \in [0,1]^n \mid \tilde{{\mathbf {a}}}^{\top } {\mathbf {x}} \le M \} \nonumber \\= & {} \{ {\mathbf {x}} \in [0,1]^n \mid {\mathbf {a}}^{\top } {\mathbf {x}} \le b \} \nonumber \\= & {} K \end{aligned}$$
(3)

holds.

It may be helpful to introduce a probability space in order to describe a convolution of \(\mathrm{Vol}(K)\). Let \({\mathbf {X}}=(X_1,\ldots ,X_n)\) be a uniform random variable over \([0,1]^n\), i.e., \(X_i\) (\(i=1,2,\ldots ,n\)) are (mutually) independent. Then, it is not difficult to see that \([\tilde{{\mathbf {a}}}^{\top } {\mathbf {X}} \le M]\) if and only if \([{\mathbf {X}} \in \tilde{K}]\), meaning that

$$\begin{aligned} \Pr [\tilde{{\mathbf {a}}}^{\top } {\mathbf {X}} \le M] =\Pr [{\mathbf {X}} \in \tilde{K}] =\frac{\mathrm{Vol}(\tilde{K})}{\mathrm{Vol}([0,1]^n)}=\mathrm{Vol}(\tilde{K}) \end{aligned}$$

holds. Let f be the uniform density function over [0, 1], i.e.,

$$\begin{aligned} f(x)&= {\left\{ \begin{array}{ll} 1 &{}\quad \! 0 \le x \le 1, \\ 0 &{}\quad \! \hbox {otherwise}. \end{array}\right. } \end{aligned}$$
(4)

Now, we define \(\varPhi _0(y) = 0\) for \(y \le 0\), while \(\varPhi _0(y) = 1\) for \(y > 0\). Inductively, we define for \(j=1,2,\ldots ,n\) that

$$\begin{aligned} \varPhi _j(y) \mathop {=}\limits ^{\mathrm{def}}\int _{-\infty }^{\infty } \varPhi _{j-1}(y-\tilde{a}_js) f(s) \mathrm {d}s = \int _0^1 \varPhi _{j-1}(y-\tilde{a}_js) \mathrm {d}s \end{aligned}$$

for any \(y \in {\mathbb {R}}\), where the last equality follows the definition (4) of f.

Proposition 2.1

For each \(j \in \{1,2,\ldots ,n\}\) and for any \(y \in {\mathbb {R}}\),

$$\begin{aligned} \varPhi _j(y) = \Pr \left[ \tilde{a}_1X_1+\cdots +\tilde{a}_jX_j \le y\right] \end{aligned}$$

holds.

Proof

Firstly, we prove the case of \(j=1\). Notice that \(\varPhi _0\) is an indicator function in fact, then

$$\begin{aligned} \varPhi _1(y) = \int _0^1 \varPhi _0(y-\tilde{a}_1s) \mathrm {d}s = \Pr [y - \tilde{a}_1 X_1 \ge 0] = \Pr [\tilde{a}_1 X_1 \le y] \end{aligned}$$

and we obtain the claim in the case.

Next, inductively assuming that \(\varPhi _{j-1}(y) = \Pr \left[ \tilde{a}_1X_1+\cdots +\tilde{a}_{j-1}X_{j-1} \le y\right] \) holds, we prove the case of j (\(j=1,2,\ldots ,n\)).

$$\begin{aligned}&\Pr \left[ \tilde{a}_1X_1+\cdots +\tilde{a}_jX_j \le y\right] \\&\quad = \int _{-\infty }^{\infty } \Pr \left[ \tilde{a}_1X_1+\cdots +\tilde{a}_{j-1}X_{j-1} + \tilde{a}_j X_j \le y \mid X_j=s\right] f(s) \mathrm {d}s \\&\quad = \int _{-\infty }^{\infty } \Pr \left[ \tilde{a}_1X_1+\cdots +\tilde{a}_{j-1}X_{j-1} + \tilde{a}_j s \le y\right] f(s) \mathrm {d}s \\&\quad = \int _{-\infty }^{\infty } \Pr \left[ \tilde{a}_1X_1+\cdots +\tilde{a}_{j-1}X_{j-1} \le y - s\tilde{a}_j \right] f(s) \mathrm {d}s \\&\quad = \int _{-\infty }^{\infty } \varPhi _{j-1}(y-\tilde{a}_js) f(s) \mathrm {d}s \\&\quad = \varPhi _j(y). \end{aligned}$$

We obtain the claim. \(\square \)

Let \(\varPhi (M)\) denote \(\varPhi _n(M)\), for convenience. Then, Proposition 2.1, with the facts (3) and (4), suggests the following.

Corollary 2.2

\(\varPhi (M) = \mathrm{Vol}(K)\).

3 Approximation Algorithm for \(\mathrm{Vol}(K)\)

3.1 The Idea

To begin with, this subsection explains the idea of our algorithm, that is a recursive computation of approximate convolutions \(G_j(y)\), in an analogy with \(\varPhi _j(y)\). Let \(G_0(y)=\varPhi _0(y)\), i.e., \(G_0(y) = 0\) for \(y \le 0\) while \(G_0(y)=1\) for \(y > 0\). Inductively assuming \(G_{j-1}(y)\) (\(j=1,\ldots ,n\)), we define

$$\begin{aligned} \overline{G}_j (y)&\mathop {=}\limits ^{\mathrm{def}}\int _{-\infty }^{\infty } G_{j-1}(y - \tilde{a}_j s) f(s) \mathrm {d}s =\int _{0}^{1} G_{j-1}(y-\tilde{a}_j s)\,\mathrm {d}s \end{aligned}$$
(5)

for \(y\in {\mathbb {R}}\), for convenience. Then, let \(G_j(y)\) be a staircase approximation of \(\overline{G}_j(y)\), which is given by

$$\begin{aligned} G_j (y) \mathop {=}\limits ^{\mathrm{def}}\overline{G}_j (\lceil y \rceil ) \end{aligned}$$
(6)

for \(y \in {\mathbb {R}}\). We note the following fact, which may suggest a collateral evidence that \(\overline{G}_j\) approximates \(\varPhi _j\).

Proposition 3.1

$$\begin{aligned} \overline{G}_j (y) = {\left\{ \begin{array}{ll} 0 &{}\quad \! y \le 0, \\ 1 &{}\quad \! y \ge \sum _{j'=1}^j \tilde{a}_{j'}. \end{array}\right. } \end{aligned}$$

Notice that Proposition 2.1, in the previous section, suggests the same equation for \(\varPhi _j(y)\). See Sect. 5 for the proof of Proposition 3.1.

Here we briefly comment on the computation of \(G_j\). Remark that it is sufficient to compute \(G_j(z)\) for \(z \in \mathbb {Z}\), because \(G_j(y) = G_j(\lceil y \rceil )\) holds by the definition (6) of \(G_j(y)\). Let

$$\begin{aligned} T \mathop {=}\limits ^{\mathrm{def}}\{ t \in \mathbb {Z}_{\ge 0} \mid t=z-s\tilde{a}_j \ (s \in [0,1])\}, \end{aligned}$$
(7)

i.e.,

$$\begin{aligned} T = {\left\{ \begin{array}{ll} \{z, z-1, z-2, \ldots , z- \lfloor \tilde{a}_j \rfloor \} &{}\quad \! \hbox {if } z-\tilde{a}_j >0, \\ \{z, z-1, z-2, \ldots , 0 \} &{}\quad \! \hbox {otherwise}. \end{array}\right. } \end{aligned}$$
(8)

Let \(t_1,t_2,\ldots ,t_{|T|}\) denote the whole members in T such that \(t_k < t_{k+1}\) (\(k=1,\ldots ,|T|-1\)). For convenience, let \(t_0=z-\tilde{a}_j\) if \(z-\tilde{a}_j >0\), otherwise \(t_0 = 0\) \((=t_1)\). Let

(9)

for \(u,v \in {\mathbb {R}}\) such that \(u \le v\). Then,

$$\begin{aligned} G_j (z)= & {} \int _0^1 G_{j-1}(z -s \tilde{a}_j)\mathrm {d}s \nonumber \\= & {} \sum _{k=0}^{|T|} d_s(t_{k-1},t_k) G_{j-1}(t_k) \\= & {} {\left\{ \begin{array}{ll} \displaystyle \sum _{l=0}^{|T|-1} \frac{1}{\tilde{a}_j} G_{j-1}(z-l) + \frac{\tilde{a}_j - \lfloor \tilde{a}_j \rfloor }{\tilde{a}_j} G_{j-1}(z-\lfloor \tilde{a}_j \rfloor ) &{}\quad \! \hbox {if } z-\tilde{a}_j > 0, \\ \displaystyle \sum _{l=0}^{|T|-1} \frac{1}{\tilde{a}_j} G_{j-1}(z-l) &{}\quad \! \hbox {otherwise}. \end{array}\right. }\nonumber \end{aligned}$$
(10)

Thus, we see that the value of \(G_j(z)\) is naively computed from the values \(G_{j-1}(z')\) (\(z' \in \{1,2,\ldots ,z\}\)) and \(\tilde{a}_j\) in \(\mathrm {O}(z)\) time. We will later discuss a fast computation of \(G_j(z)\) based on a dynamic programming (see Lemma 3.3, and also Sect. 3.4 for detail).

3.2 Algorithm

Based on the arguments in Sect. 3.1, our algorithm is described as follows.

Algorithm 1

InputFootnote 2: \(\tilde{{\mathbf {a}}}=(\tilde{a}_1,\ldots ,\tilde{a}_n) \in {\mathbb {Q}}_{>0}^n\).

1. Let \(G_0(y):=0\) for \(y \le 0\), and let \(G_0(y):=1\) for \(y > 0\);

2. For \(j=1,\ldots ,n\)

3.    For \(z=1,\ldots ,M\)

4.      Compute \(G_j(z)\);

5. Output \(G_n(M)\).

For convenience, let G(M) denote \(G_n(M)\), in the following. The following proposition about the time complexity of Algorithm 1 is easy from the arguments in Sect. 3.1.

Proposition 3.2

The running time of Algorithm 1 is \(\mathrm {O}(n M^2)\).

Proof

As stated in Sect. 3.1, \(G_j(z)\) is computed at line 4 in \(\mathrm {O}(M)\) time. Now, the claim is easy. \(\square \)

In fact, the time complexity of lines 3 and 4 in Algorithm 1, that is \(\mathrm {O}(M^2)\), is improved to \(\mathrm {O}(M)\) by a dynamic programming. We will establish the following lemma later in Sect. 3.4.

Lemma 3.3

The running time of Algorithm 1 is \(\mathrm {O}(nM)\).

The approximation ratio of Algorithm 1 is given by the following lemma, which we will prove in the next subsection.

Lemma 3.4

For any \(\epsilon \) \((0 < \epsilon \le 1)\), set an integer \(M\ge 2 n^{2}\epsilon ^{-1}\), then we have

$$\begin{aligned} \varPhi (M) \le G(M) \le (1+\epsilon )\varPhi (M). \end{aligned}$$

Theorem 1.1 is immediate from Lemmas 3.3 and 3.4.

3.3 Proof of Lemma 3.4, for Approximation Ratio

We prove Lemma 3.4. As a preliminary, we observe the following facts from the definitions of \(\overline{G}_j(y)\) and \(G_j(y)\).

Observation 3.5

For any \(j \in \{1,2,\ldots ,n\}\), \(\varPhi _j(y)\), \(\overline{G}_j(y)\) and \(G_j(y)\) are monotone nondecreasing (with respect to y), respectively.

Observation 3.6

For each \(j \in \{1,2,\ldots ,n\}\), \(\overline{G}_j(y) \le G_j(y) \le \overline{G}_j(y+1)\) holds for any \(y\in {\mathbb {R}}\).

Proposition 3.7

For each \(j \in \{1,2,\ldots ,n\}\), \(\varPhi _j(y) \le \overline{G}_j(y)\) for any \(y\in {\mathbb {R}}\).

Proof

By the definition, \(\varPhi _0(y) = \overline{G}_0(y)\) for any \(y\in {\mathbb {R}}\). Inductively assuming that \(\varPhi _{j-1}(y) \le \overline{G}_{j-1}(y)\) holds for any \(y\in {\mathbb {R}}\), we have that

$$\begin{aligned} \varPhi _j(y)&= \int _{-\infty }^{\infty } \varPhi _{j-1}(y-\tilde{a}_js) f(s) \mathrm {d}s \\&\le \int _{-\infty }^{\infty } \overline{G}_{j-1}(y-\tilde{a}_js) f(s) \mathrm {d}s&(\hbox {Induction hypo.}) \\&\le \int _{-\infty }^{\infty } G_{j-1}(y-\tilde{a}_js) f(s) \mathrm {d}s = \overline{G}_j(y)&(\hbox {by Obs.~3.6}) \end{aligned}$$

for any \(y\in {\mathbb {R}}\). \(\square \)

Now, we establish the following Lemma 3.8, which claims a “horizontal” approximation ratio, in spite of Lemma 3.4 claiming a “vertical” bound.

Lemma 3.8

For each \(j \in \{1,\ldots ,n\}\),

$$\begin{aligned}\textstyle \varPhi _j(y) \le G_j(y) \le \varPhi _j(y + j) \end{aligned}$$

holds for any \(y\in {\mathbb {R}}\).

Proof

The former inequality is immediate from Proposition 3.7 and Observation 3.6. Now, we are concerned with the latter inequality. Observation 3.6 implies that

$$\begin{aligned} G_1(y) \le \overline{G}_1 (y+1) = \varPhi _1(y+1), \end{aligned}$$

and we obtain the claim for \(j=1\). Inductively assuming that \(G_{j-1}(y) \le \varPhi _{j-1}(y+j-1)\) holds for any \(y \in {\mathbb {R}}\), we show that \(G_j(y) \le \varPhi _j(y+j)\). Notice that

$$\begin{aligned} \overline{G}_j(y)&= \int _{-\infty }^{\infty } G_{j-1}(y- \tilde{a}_js)f(s)\mathrm {d}s \nonumber \\&\le \int _{-\infty }^{\infty } \varPhi _{j-1}(y-\tilde{a}_js+j-1)f(s)\mathrm {d}s&(\hbox {induction hypo.}) \nonumber \\&= \varPhi _j(y+(j-1)) \end{aligned}$$
(11)

holds for any \(y \in {\mathbb {R}}\). Using Observation 3.6, (11) implies that

$$\begin{aligned} G_j(y') \le \overline{G}_j(y'+1) \le \varPhi _j ((y'+1)+(j-1)) =\varPhi _j (y'+j) \end{aligned}$$

and we obtain the claim. \(\square \)

To transform the horizontal bound to a vertical one, we prepare the following.

Lemma 3.9

$$\begin{aligned} \frac{\varPhi (M)}{\varPhi (M+n)} \ge \left( \frac{M}{M+n}\right) ^n. \end{aligned}$$

Proof

For convenience, let \(\tilde{K}(y) \mathop {=}\limits ^{\mathrm{def}}\{ {\mathbf {x}} \in [0,1]^n \mid \tilde{{\mathbf {a}}}^{\top }{\mathbf {x}} \le y\}\) for \(y \ge 0\), i.e., \(\varPhi (M)=\mathrm{Vol}(\tilde{K}(M))\) and \(\varPhi (M+n)=\mathrm{Vol}(\tilde{K}(M+n))\). Let \(H_M\) be a hyperplane defined by \(H_M \mathop {=}\limits ^{\mathrm{def}}\{ {\mathbf {x}} \in {\mathbb {R}}^n \mid \tilde{{\mathbf {a}}}^{\top }{\mathbf {x}}=M \}\), and let \(F_M = \tilde{K}(M) \cap H_M\) i.e., \(F_M= \{{\mathbf {x}} \in \tilde{K}(M) \mid \tilde{{\mathbf {a}}}^{\top }{\mathbf {x}}=M\}\). Let C(y) for \(y \ge M\) be (a truncation of) a cone defined by

$$\begin{aligned} C(y) \mathop {=}\limits ^{\mathrm{def}}\{ \lambda {\mathbf {x}} \in {\mathbb {R}}^n \mid {\mathbf {x}} \in F_M,\ \lambda \in {\mathbb {R}} \hbox { such that } 0 \le \lambda \le y/M \}. \end{aligned}$$

Notice that \(C(y) \cap H_M = F_M\) for any \(y \ge M\). Figure 1 illustrates \(\tilde{K}(M)\), \(\tilde{K}(M+n)\), \(H_M\), \(F_M\), C(M), and \(C(M+n)\). It is not difficult from the definitions to see that \(C(M) \subseteq \tilde{K}(M)\) holds, since \(\tilde{K}(M)\) is convex and it contains \(F_M\) and the origin \(\mathbf{0}\).

Next, we claim that \(C(M+n) \setminus C(M) \supseteq \tilde{K}(M+n) \setminus \tilde{K}(M)\) holds. Let \({\mathbf {u}} \in \tilde{K}(M+n) \setminus \tilde{K}(M)\). For convenience, let \(z=\tilde{{\mathbf {a}}}^{\top }{\mathbf {u}}\), then \( M < z \le M+n\) holds. Let \({\mathbf {u}}' \mathop {=}\limits ^{\mathrm{def}}(M/z) {\mathbf {u}}\) then \({\mathbf {u}}'\in F_M\) since \(\tilde{{\mathbf {a}}}^{\top }{\mathbf {u}}'= (M/z) \tilde{{\mathbf {a}}}^{\top }{\mathbf {u}}=M\). This implies that \({\mathbf {u}} = (z/M) {\mathbf {u}}' \in C(M+n)\).

Now, we obtain that

$$\begin{aligned} \varPhi (M+n)= & {} \mathrm{Vol}(\tilde{K}(M)) + \mathrm{Vol}(\tilde{K}(M+n) \setminus \tilde{K}(M)) \\\le & {} \mathrm{Vol}(\tilde{K}(M)) + \mathrm{Vol}(C(M+n) \setminus C(M)) \end{aligned}$$

where we remark that \(C(M+n) \setminus \tilde{K}(M)=C(M+n) \setminus C(M)\) for the last inequality. Then,

$$\begin{aligned} \frac{\varPhi (M)}{\varPhi (M+n)}\ge & {} \frac{\mathrm{Vol}(\tilde{K}(M))}{\mathrm{Vol}(\tilde{K}(M)) + \mathrm{Vol}(C(M+n) \setminus C(M))} \\\ge & {} \frac{\mathrm{Vol}(C(M))}{\mathrm{Vol}(C(M)) + \mathrm{Vol}(C(M+n) \setminus C(M))} \quad (\hbox {since } \tilde{K}(M) \supseteq C(M))\\= & {} \frac{\mathrm{Vol}(C(M))}{\mathrm{Vol}(C(M+n)) } \\= & {} \left( \frac{M}{M+n}\right) ^n \end{aligned}$$

where the last equality follows C(M) is similar to \(C(M+n)\) in the n dimensional space. \(\square \)

Fig. 1
figure 1

An illustration of \(\tilde{K}(M)\), \(\tilde{K}(M+n)\), \(H_M\), \(F_M\), C(M), and \(C(M+n)\)

Now, Lemma 3.4 is easy from Lemmas 3.8 and 3.9.

Proof

(of Lemma 3.4 ) The first inequality \(\varPhi (M) \le G(M)\) is immediate from Lemma 3.8. Lemma 3.9 suggests that

holds. Thus,

$$\begin{aligned} \frac{\varPhi (M+n)}{\varPhi (M)} \le \frac{1}{1-\frac{\epsilon }{2}} \le 1+\epsilon \end{aligned}$$

for \(\epsilon \le 1\), and we obtain the claim. \(\square \)

3.4 Proof of Lemma 3.3, for the Time Complexity

For a proof of Lemma 3.3, this subsection explains a dynamic programming to compute \(G_j(z)\) for \(z=0,1,\ldots ,M\) from \(G_{j-1}(z')\) (\(z'=0,1,\ldots ,M\)).

Recall (8) [see also (7)], which is rewritten as

$$\begin{aligned} T = {\left\{ \begin{array}{ll} \{z- \lfloor \tilde{a}_j \rfloor , z- \lfloor \tilde{a}_j \rfloor + 1, \ldots , z \} &{}\quad \! \hbox {if } z-\tilde{a}_j >0, \\ \{0,1,\ldots ,z\} &{}\quad \! \hbox {otherwise}, \end{array}\right. } \end{aligned}$$

as well as recall (10), that is rewritten as

$$\begin{aligned} G_j (z)= & {} \sum _{k=0}^{|T|} d_s(t_{k-1},t_k) G_{j-1}(t_k) \\= & {} {\left\{ \begin{array}{ll} \displaystyle \sum _{k=1}^{\lfloor \tilde{a}_j \rfloor } \frac{1}{\tilde{a}_j} G_{j-1}(k) + \frac{\tilde{a}_j - \lfloor \tilde{a}_j \rfloor }{\tilde{a}_j} G_{j-1}(z-\lfloor \tilde{a}_j \rfloor ) &{}\quad \! \hbox {if } z > \lfloor \tilde{a}_j \rfloor , \\ \displaystyle \sum _{k=0}^z \frac{1}{\tilde{a}_j} G_{j-1}(k) &{}\quad \! \hbox {otherwise}, \end{array}\right. } \end{aligned}$$

where we remark for the last equality that \(|T| = \lfloor \tilde{a}_j \rfloor \) holds in the case of \(z-\tilde{a}_j > 0\), and that \(|T| = z\) in the other case.

Thus, it is not difficult to see that

$$\begin{aligned} G_j (z) = G_j (z-1) + \dfrac{1}{\tilde{a}_j} G_{j-1}(z) \end{aligned}$$
(12)

holds when \(z \le \lfloor \tilde{a} \rfloor \). Similarly, in case that \(z = \lfloor \tilde{a} \rfloor + 1\), we see that

$$\begin{aligned} G_j (z) = G_j (z-1) + \dfrac{1}{\tilde{a}_j} G_{j-1}(z) - \left( \dfrac{1}{\tilde{a}_j} - \dfrac{\tilde{a}_j - \lfloor \tilde{a}_j \rfloor }{\tilde{a}_j} \right) G_{j-1}(z-\lfloor \tilde{a}_j \rfloor ) \end{aligned}$$
(13)

holds, as well as in the other case, that is \(z > \lfloor \tilde{a}_j \rfloor +1\), we obtain that

$$\begin{aligned} G_j (z)= & {} G_j (z-1) + \dfrac{1}{\tilde{a}_j} G_{j-1}(z) - \left( \dfrac{1}{\tilde{a}_j} - \dfrac{\tilde{a}_j - \lfloor \tilde{a}_j \rfloor }{\tilde{a}_j} \right) G_{j-1}(z-\lfloor \tilde{a}_j \rfloor ) \nonumber \\&- \dfrac{\tilde{a}_j - \lfloor \tilde{a}_j \rfloor }{\tilde{a}_j} G_{j-1}(z-\lfloor \tilde{a}_j \rfloor -1). \end{aligned}$$
(14)

Equations (12), (13) and (14) suggest that \(G_j(z)\) is computed from \(G_j(z-1)\) in \(\mathrm {O}(1)\) time. It implies that the time complexity of computing \(G_j(z)\) for \(z=0,1,\ldots ,M\) is \(\mathrm {O}(M)\), in total. Now, Lemma 3.3 is easy. The whole procedure of computing \(G_j(z)\) for \(z=0,1,\ldots ,M\) from \(G_{j-1}(z')\) (\(z'=0,1,\ldots ,M\)) is described as follows.

Procedure 2

(Compute \(G_j\) from \(G_{j-1}\), for lines 3–4 in Algorithm 1)

1. Read \(G_{j-1}(z)\) for \(z \in \{0,1,\ldots ,M\}\).

2. Set \(G_j(0) :=0\);

3. For(\(z=1,2,\ldots ,M\))

4.    If \(z \le \lfloor \tilde{a}_j \rfloor \), then Compute \(G_j(z)\) from \(G_j(z-1)\) by (12);

5.    ElseIf \(z = \lfloor \tilde{a}_j \rfloor +1\), then Compute \(G_j(z)\) from \(G_j(z-1)\) by (13);

6.    Else (i.e., \(z > \lfloor \tilde{a}_j \rfloor +1\)), Compute \(G_j(z)\) from \(G_j(z-1)\) by (14);

4 Knapsack Polytope with a Constant Number of Constraints

Toward an extension of the technique to general polytopes, this section shows that the technique described in Sects. 2 and 3 is extended to multi-constrained knapsack polytopes with a constant number of constraints.

4.1 Problem Description and Preliminary

Suppose that m nonnegative integer vectors \({\mathbf {a}}_{i}^\top =(a_{i1},\ldots ,a_{in}) \in \mathbb {Z}_{\ge 0}^n\) for \(i=1,\ldots ,m\), and another positive integer vector \({\mathbf {b}}=(b_1,\ldots ,b_m)^{\top } \in \mathbb {Z}_{>0}^m\) are given. For convenience, let \(A \in \mathbb {Z}_{\ge 0}^{m \times n}\) be a matrix defined by

$$\begin{aligned} A = \begin{pmatrix} {\mathbf {a}}_1^{\top } \\ \vdots \\ {\mathbf {a}}_m^{\top } \end{pmatrix} = \begin{pmatrix} a_{1,1} &{}\quad \! \cdots &{}\quad \! a_{1,n} \\ &{}\quad \! \vdots &{}\quad \! \\ a_{m,1} &{}\quad \! \cdots &{}\quad \! a_{m,n} \end{pmatrix} = \begin{pmatrix} A_1&\quad \! \cdots&\quad \! A_n \end{pmatrix} \end{aligned}$$
(15)

where \(A_j\) (\(j=1,\ldots ,n\)) denotes the column vectors of A, i.e., \(A_j {=} (a_{1,j}, \ldots ,a_{m,j})^{\top }\). Then, the knapsack polytope with m constraints \(K_m\) is given by

$$\begin{aligned} K_m \mathop {=}\limits ^{\mathrm{def}}\left\{ {\mathbf {x}}\in [0,1]^n \mid \bigwedge _{i=1,\ldots ,m} {\mathbf {a}}_i^{\top }{\mathbf {x}}\le b_i\right\} =\left\{ {\mathbf {x}}\in [0,1]^n \mid A {\mathbf {x}} \le {\mathbf {b}} \right\} . \end{aligned}$$

Clearly, computing \(\mathrm{Vol}(K_m)\) is \(\#P\)-hard. This section establishes the following theorem, extending the technique described in Sects. 2 and 3.

Theorem 4.1

For any \(\epsilon ~~ (0<\epsilon \le 1)\), there exists an \(\mathrm {O}((n^2 \epsilon ^{-1})^{m+1}nm\log m)\) time deterministic algorithm to approximate \(\mathrm{Vol}(K_m)\) with approximation ratio \(1+\epsilon \).

Notice that Theorem 4.1 claims \(\mathrm {O}(n^{2m+3}/\epsilon ^{m+1})\) time for any constant m.

As a preliminary step, we “normalize” the problem in a similar manner to Sect. 2. Let \(\tilde{A} = (\tilde{a}_{ij})\) be defined by

$$\begin{aligned} \tilde{a}_{ij} = \frac{a_{ij}}{b_i}M \end{aligned}$$
(16)

for \(i =1,\ldots ,m\) and \(j = 1,\ldots ,n\), and also let \(\tilde{{\mathbf {a}}}_i^{\top }\) (\(i =1,\ldots ,m\)) and \(\tilde{A}_j\) (\(j = 1,2,\ldots ,n\)) respectively denote the row and column vectors of \(\tilde{A}\) (cf. (15)). Let

$$\begin{aligned} \tilde{K}_m =\left\{ {\mathbf {x}}\in [0,1]^n \mid \tilde{A} {\mathbf {x}} \le M\mathbf{1} \right\} =\left\{ {\mathbf {x}}\in [0,1]^n \mid \bigwedge _{i=1,\ldots ,m} \tilde{{\mathbf {a}}}_i^{\top }{\mathbf {x}}\le M\right\} \end{aligned}$$

where \(\mathbf{1}\) is an m-dimensional vector defined by \(\mathbf{1}\mathop {=}\limits ^{\mathrm{def}}(1,\ldots ,1)^{\top }\). It is not difficult to see that

$$\begin{aligned} K_m= & {} \left\{ {\mathbf {x}}\in [0,1]^n \mid A {\mathbf {x}} \le {\mathbf {b}} \right\} \nonumber \\= & {} \left\{ {\mathbf {x}}\in [0,1]^n \mid \tilde{A} {\mathbf {x}} \le M\mathbf{1} \right\} \nonumber \\= & {} \tilde{K}_m \end{aligned}$$
(17)

holds.

4.2 Convolution for \(\mathrm{Vol}(K_m)\)

Now we explain a convolution for \(\mathrm{Vol}(K_m)\), in a similar manner to Sect. 2. Let \({\mathbf {X}}=(X_1,\ldots ,X_n)\) be a uniform random variable over \([0,1]^n\). Then, it is not difficult to see that \([\tilde{A} {\mathbf {X}} \le M \mathbf{1}]\) if and only if \([{\mathbf {X}} \in \tilde{K}_m]\), which implies that

$$\begin{aligned} \Pr [\tilde{A} {\mathbf {X}} \le M \mathbf{1}] =\Pr [{\mathbf {X}} \in \tilde{K}_m] =\frac{\mathrm{Vol}(\tilde{K}_m)}{\mathrm{Vol}([0,1]^n)} =\mathrm{Vol}(\tilde{K}_m) \end{aligned}$$

holds.

We define \(\varPhi _0 :{\mathbb {R}}^m \rightarrow {\mathbb {R}}\) by

$$\begin{aligned} \varPhi _0({\mathbf {y}}) = {\left\{ \begin{array}{ll} 1 &{}\quad \! \hbox {when } {\mathbf {y}} \ge \mathbf{0}, \\ 0 &{}\quad \! \hbox {otherwise}, \end{array}\right. } \end{aligned}$$

for \({\mathbf {y}} = (y_1,\ldots ,y_m)^{\top }\). For \(j=1,2,\ldots ,n\), we inductively define \(\varPhi _j :{\mathbb {R}}^m \rightarrow {\mathbb {R}}\) by

$$\begin{aligned} \varPhi _j({\mathbf {y}})=\int _{-\infty }^{\infty }\varPhi _{j-1}({\mathbf {y}}-s \tilde{A}_j)f(s)\mathrm{d}s, \end{aligned}$$

for \({\mathbf {y}}=(y_1,\ldots ,y_m)^{\top }\), where f is the uniform density function over [0, 1] (cf. (4)).

For convenience, let \({\mathbf {X}}_{[j]}=(X_1,\ldots ,X_j)^{\top }\) for \(j \in \{1,\ldots ,n\}\), as well as let \(\tilde{A}_{[j]}\) denote an \(m \times j\) submatrix of \(\tilde{A}\) defined by

$$\begin{aligned} \tilde{A}_{[j]} \mathop {=}\limits ^{\mathrm{def}}\begin{pmatrix} \tilde{A}_1&\quad \! \cdots&\quad \! \tilde{A}_j \end{pmatrix} = \begin{pmatrix} \tilde{a}_{1,1} &{}\quad \! &{}\quad \! \tilde{a}_{1,j} \\ \vdots &{}\quad \! \cdots &{}\quad \! \vdots \\ \tilde{a}_{m,1} &{}\quad \! &{}\quad \! \tilde{a}_{m,j} \end{pmatrix} \end{aligned}$$

for \(j \in \{1,\ldots ,n\}\).

Proposition 4.2

For each \(j \in \{1,2,\ldots ,n\}\),

$$\begin{aligned} \varPhi _j({\mathbf {y}})&= \Pr \left[ \tilde{A}_{[j]} {\mathbf {X}}_{[j]} \le {\mathbf {y}} \right] \end{aligned}$$

holds for any \(y \in {\mathbb {R}}^m\).

Proof

To begin with, consider the case of \(j=1\). Notice that \(\varPhi _0\) is an indicator function in fact, then

$$\begin{aligned} \varPhi _1({\mathbf {y}})&= \int _{-\infty }^{+\infty } \varPhi _0({\mathbf {y}} - s\tilde{A}_{[1]}) f(s) \mathrm {d}s = \int _0^1 \varPhi _0({\mathbf {y}} - s\tilde{A}_{[1]}) \mathrm {d}s \\&= \int _0^1 \varPhi _0\left( \begin{pmatrix} y_1 \\ \vdots \\ y_m \end{pmatrix} - \begin{pmatrix} s \tilde{a}_{1,1} \\ \vdots \\ s \tilde{a}_{m,1} \end{pmatrix} \right) \mathrm {d}s = \Pr \left[ \tilde{A}_{[1]} {\mathbf {X}}_{[1]} \le {\mathbf {y}} \right] \end{aligned}$$

where we remark that \({\mathbf {X}}_{[1]} = (X_1)\). We obtain the claim in the case.

Inductively assuming that \(\varPhi _{j-1}({\mathbf {y}})=\Pr \left[ \tilde{A}_{[j-1]} {\mathbf {X}}_{[j-1]} \le {\mathbf {y}} \right] \) holds, the case of j (\(j=1,2,\ldots ,n\)) is given by

$$\begin{aligned}&\Pr \left[ \tilde{A}_{[j]} {\mathbf {X}}_{[j]} \le {\mathbf {y}} \right] \\&\quad = \int _{-\infty }^{+\infty } \Pr \left[ \tilde{A}_{[j]} {\mathbf {X}}_{[j]} \le {\mathbf {y}} \mid X_j=s\right] f(s) \mathrm {d}s \\&\quad = \int _{-\infty }^{+\infty } \Pr \left[ \bigwedge _{i=1,\ldots ,m} \left[ \tilde{a}_{i,1}X_1+\cdots +\tilde{a}_{i,j-1}X_{j-1} + \tilde{a}_{i,j} s \le y_i \right] \right] f(s) \mathrm {d}s \\&\quad = \int _{-\infty }^{+\infty } \Pr \left[ \bigwedge _{i=1,\ldots ,m} \left[ \tilde{a}_{i,1}X_1+\cdots +\tilde{a}_{i,j-1}X_{j-1} \le y_i - \tilde{a}_{i,j} s \right] \right] f(s) \mathrm {d}s \\&\quad = \int _{-\infty }^{+\infty } \Pr \left[ \tilde{A}_{[j-1]} \begin{pmatrix} X_1 \\ \vdots \\ X_{j-1} \end{pmatrix} \le {\mathbf {y}} - s \tilde{A}_j \right] f(s) \mathrm {d}s \\&\quad = \int _{-\infty }^{+\infty } \varPhi _{j-1}({\mathbf {y}} - s\tilde{A}_j) f(s) \mathrm {d}s \\&\quad = \varPhi _j(y). \end{aligned}$$

We obtain the claim. \(\square \)

Let \(\varPhi (M\mathbf{1})\) denote \(\varPhi _n(M\mathbf{1})\), for convenience. Then, Proposition 4.2, with (17) and (18), suggests the following.

Corollary 4.3

\(\varPhi (M\mathbf{1}) = \mathrm{Vol}(K_m)\).

4.3 Approximation of \(\varPhi \)

Next, we explain an approximation of \(\varPhi _j({\mathbf {y}})\) by \(G_j({\mathbf {y}})\), in a similar manner to Sect. 3.1. We define \(G_0 :{\mathbb {R}}^m \rightarrow {\mathbb {R}}_{\ge 0}\) by

$$\begin{aligned} G_0({\mathbf {y}}) = {\left\{ \begin{array}{ll} 1 &{}\quad \! \hbox {when } {\mathbf {y}} > \mathbf{0}, \\ 0 &{}\quad \! \hbox {otherwise}. \end{array}\right. } \end{aligned}$$

Inductively assuming \(G_{j-1}({\mathbf {y}})\), we define \(\overline{G}_j :{\mathbb {R}}^m \rightarrow {\mathbb {R}}_{\ge 0}\) for each \(j=1,\ldots ,n\)

$$\begin{aligned} \overline{G}_j({\mathbf {y}}) \mathop {=}\limits ^{\mathrm{def}}\int _{-\infty }^{\infty }G_{j-1}({\mathbf {y}} - s \tilde{A}_j )f(s)\mathrm{d}s = \int _0^1 G_{j-1}({\mathbf {y}} - s \tilde{A}_j) \mathrm{d}s \end{aligned}$$
(18)

for \({\mathbf {y}}=(y_1,\ldots ,y_m)^{\top }\). Then, we define a staircase function \(G_j:{\mathbb {R}}^m \rightarrow {\mathbb {R}}_{\ge 0}\) by

$$\begin{aligned} G_j ({\mathbf {y}}) \mathop {=}\limits ^{\mathrm{def}}\overline{G}_j (\lceil {\mathbf {y}} \rceil ) \end{aligned}$$
(19)

for \({\mathbf {y}} \in {\mathbb {R}}^m\), where \(\lceil {\mathbf {y}} \rceil =(\lceil y_1 \rceil ,\ldots ,\lceil y_m \rceil )^{\top }\). We remark the following fact.

Proposition 4.4

$$\begin{aligned} \overline{G}_j ({\mathbf {y}}) = {\left\{ \begin{array}{ll} 0 &{}\quad \! {\mathbf {y}} \not \in {\mathbb {R}}_{>0}^m \quad (\hbox {i.e., if } \exists i' \hbox { such that } y_{i'} \le 0), \\ 1 &{}\quad \! {\mathbf {y}} \ge \begin{pmatrix}\sum \nolimits _{j'=1}^j \tilde{a}_{1,j'} \\ \vdots \\ \sum \nolimits _{j'=1}^j \tilde{a}_{m,j'}\end{pmatrix}. \end{array}\right. } \end{aligned}$$

Here we explain the computation of \(G_j\). Remark that it is sufficient to compute \(G_j({\mathbf {z}})\) for \({\mathbf {z}} \in \mathbb {Z}^m\), because \(G_j({\mathbf {y}}) = G_j(\lceil {\mathbf {y}} \rceil )\) holds for any \({\mathbf {y}}\in {\mathbb {R}}^m\) by the definition (19) of \(G_j({\mathbf {y}})\). Let

$$\begin{aligned} T \mathop {=}\limits ^{\mathrm{def}}\left\{ {\mathbf {t}}=\begin{pmatrix}t_1 \\ \vdots \\ t_m\end{pmatrix} \in {\mathbb {R}}^m_{\ge 0} \ \left| \ \begin{array}{l} {\mathbf {t}} = {\mathbf {z}}- s \tilde{A}_j \ (s \in [0,1]), \hbox { and}\\ \exists i \in \{1,\ldots ,m\}, t_i \in \mathbb {Z}_{>0} \end{array} \right. \right\} . \end{aligned}$$

Let \({\mathbf {t}}^{(1)},{\mathbf {t}}^{(2)},\ldots ,{\mathbf {t}}^{(|T|)}\) denote the whole members in T such that \({\mathbf {t}}^{(k)} < {\mathbf {t}}^{(k+1)}\) (\(k=1,2,\ldots ,|T|-1\)), i.e., \({\mathbf {t}}^{(k+1)}-{\mathbf {t}}^{(k)} = s \tilde{A}_j\) with an appropriate \(s > 0\) for any \(k=1,2,\ldots ,|T|-1\). For convenience, let \({\mathbf {t}}^{(0)}={\mathbf {z}}-\tilde{A}_j\) if \({\mathbf {z}}-\tilde{A}_j \in {\mathbb {R}}_{>0}\), otherwise \({\mathbf {t}}^{(0)} = {\mathbf {t}}^{(1)}\). We observe that

$$\begin{aligned} |T| \le \Vert {\mathbf {z}} + \mathbf{1}\Vert _1 \end{aligned}$$
(20)

holds, because each element \(t^{(k)}_i\) (\(i \in \{1,\ldots ,m\}\)) of \({\mathbf {t}}^{(k)}\) is monotone nondecreasing with respect to k (\(k=1,2,\ldots ,|T|\)) for each \(i \in \{1,\ldots ,m\}\), and \(\exists i \in \{1,\ldots ,m\}\), \(\lfloor t^{(k+1)}_i \rfloor \ne \lfloor t^{(k)}_i \rfloor \) holds for any \(k=1,2,\ldots ,|T|-1\). Remark that \(\mathbf{1}\) in (20) corresponds to members \({\mathbf {t}} \in T\) satisfying that \(t_i = 0\) for some \(i \in \{1,\ldots ,m\}\). Let

(21)

for \({\mathbf {u}},{\mathbf {v}} \in {\mathbb {R}}^m\) such that \({\mathbf {v}} = {\mathbf {u}} + s \tilde{A}_j\) for \(s \in [0,1]\). Then,

$$\begin{aligned} G_j ({\mathbf {z}})= & {} \int _0^1 G_{j-1}({\mathbf {z}} -s \tilde{A}_j)\mathrm {d}s \\= & {} \sum _{k=0}^{|T|} d_s({\mathbf {t}}^{(k-1)},{\mathbf {t}}^{(k)}) G_{j-1}({\mathbf {t}}^{(k)}) \\= & {} \sum _{k=0}^{|T|} d_s({\mathbf {t}}^{(k-1)},{\mathbf {t}}^{(k)}) G_{j-1}(\lceil {\mathbf {t}}^{(k)} \rceil ) \end{aligned}$$

holds, where the last equality follows the definition (19) of \(G_{j-1}\).

Thus, we see that the value of \(G_j({\mathbf {z}})\) is computed from the values \(G_{j-1}({\mathbf {z'}})\) (\(z' \in \{1,2,\ldots ,z\}^m\)) and \(\tilde{a}_{1,j}\), only. Observation (20) suggests that \(|T|=\mathrm {O}(mM)\) when \({\mathbf {z}} \in \{0,1,2,\ldots ,M\}^m\). Thus, the sequence \({\mathbf {t}}^{(1)},{\mathbf {t}}^{(2)},\ldots ,{\mathbf {t}}^{(|T|)}\) is found in \(\mathrm {O}(M m \log m)\) time when \({\mathbf {z}} \in \{0,1,2,\ldots ,M\}^m\), e.g., using a merge sort in a wise way. Once we obtain the sequence, \(G_j({\mathbf {z}})\) is computed in \(\mathrm {O}(mM)\) time.

4.4 Algorithm and Analysis

Based on the arguments in Sect. 4.3, our algorithm is described as follows.

Algorithm 3

Input: \(\tilde{{\mathbf {a}}}_1,\ldots ,\tilde{{\mathbf {a}}}_m \in {\mathbb {Q}}_{\ge 0}^n\).

1. Let \(G_0({\mathbf {y}}):=1\) for \({\mathbf {y}}\ge 0\), otherwise \(G_0({\mathbf {y}}):=0\);

2. For \(j=1,\ldots ,n\)

3.    For each \({\mathbf {z}}\in \{0,1,\ldots ,M\}^m\)

4.      Compute \(G_j({\mathbf {z}})\);

5. Output \(G_n(M\mathbf{1})\).

For convenience, let \(G(M \mathbf{1})\) denote \(G_n(M \mathbf{1})\), in the following. Firstly, we discuss the time complexity of Algorithm 3.

Lemma 4.5

The running time of Algorithm 3 is \(\mathrm {O}(n M^{m+1} m \log m)\).

Proof

As stated in Sect. 4.3, \(G_j({\mathbf {z}})\) is computed at line 4 in \(\mathrm {O}(M m \log m)\) time. Now, the claim is easy. \(\square \)

The time complexity is possible to be improved in a similar manner to Lemma 3.3 (see also Sect. 3.4), but this paper omits the arguments.

Next, we establish the following approximation ratio of Algorithm 3.

Lemma 4.6

For any \(\epsilon \) \((0<\epsilon \le 1)\), set \(M\ge 2 n^2 \epsilon ^{-1}\), then we have

$$\begin{aligned} \varPhi (M\mathbf{1}) \le G(M\mathbf{1}) \le (1+\epsilon )\varPhi (M\mathbf{1}). \end{aligned}$$

Theorem 4.1 is immediate from Lemmas 4.5 and 4.6. As a preliminary, we observe the following facts from the definitions of \(\overline{G}_j({\mathbf {y}})\) and \(G_j({\mathbf {y}})\).

Observation 4.7

For any \(j \in \{1,2,\ldots ,n\}\), \(\varPhi _j({\mathbf {y}})\), \(\overline{G}_j({\mathbf {y}})\) and \(G_j({\mathbf {y}})\) are monotone nondecreasing (with respect to \({\mathbf {y}}\)), respectively.

Observation 4.8

For each \(j \in \{1,2,\ldots ,n\}\), \(\overline{G}_j({\mathbf {y}}) \le G_j({\mathbf {y}}) \le \overline{G}_j({\mathbf {y}}+\mathbf{1})\) holds for any \({\mathbf {y}}\in {\mathbb {R}}^m\).

Proposition 4.9

For each \(j \in \{1,2,\ldots ,n\}\), \(\varPhi _j({\mathbf {y}}) \le \overline{G}_j({\mathbf {y}})\) holds for any \({\mathbf {y}}\in {\mathbb {R}}^m\).

Proof

By the definition, \(\varPhi _0({\mathbf {y}}) = \overline{G}_0({\mathbf {y}})\) for any \({\mathbf {y}} \in {\mathbb {R}}^m\). Inductively assuming that \(\varPhi _{j-1}({\mathbf {y}}) \le \overline{G}_{j-1}({\mathbf {y}})\) holds for any \({\mathbf {y}}\in {\mathbb {R}}^m\), we have that

$$\begin{aligned} \varPhi _j({\mathbf {y}})&= \int _{-\infty }^{\infty } \varPhi _{j-1}({\mathbf {y}}-s\tilde{A}_j) f(s) \mathrm {d}s \\&\le \int _{-\infty }^{\infty } \overline{G}_{j-1}({\mathbf {y}}-s\tilde{A}_j) f(s) \mathrm {d}s&(\hbox {Induction hypo.}) \\&\le \int _{-\infty }^{\infty } G_{j-1}({\mathbf {y}}-s\tilde{A}_j) f(s) \mathrm {d}s = \overline{G}_j({\mathbf {y}})&(\hbox {by Obs~4.8}) \end{aligned}$$

for any \({\mathbf {y}}\in {\mathbb {R}}^m\). \(\square \)

Now, we establish the following Lemma 4.10, similar to Lemma 3.8.

Lemma 4.10

For each \(j \in \{1,\ldots ,n\}\),

$$\begin{aligned}\textstyle \varPhi _j({\mathbf {y}}) \le G_j({\mathbf {y}}) \le \varPhi _j({\mathbf {y}} + j \mathbf{1}) \end{aligned}$$

holds for any \({\mathbf {y}} \in {\mathbb {R}}^m\).

Proof

The former inequality is immediate from Proposition 4.9 and Observation 4.8. Now, we are concerned with the latter inequality. Observation 4.8 implies that

$$\begin{aligned} G_1({\mathbf {y}}) \le \overline{G}_1 ({\mathbf {y}}+\mathbf{1}) = \varPhi _1({\mathbf {y}}+\mathbf{1}), \end{aligned}$$

and obtain the claim for \(j=1\). Inductively assuming that \(G_{j-1}({\mathbf {y}}) \le \varPhi _{j-1}({\mathbf {y}}+(j-1)\mathbf{1})\) for any \({\mathbf {y}} \in {\mathbb {R}}^m\), we show that \(G_j({\mathbf {y}}) \le \varPhi _j({\mathbf {y}}+j\mathbf{1})\). Notice that

$$\begin{aligned} \overline{G}_j({\mathbf {y}})&= \int _{-\infty }^{\infty } G_{j-1}({\mathbf {y}}-s\tilde{A}_j)f(s)\mathrm {d}s \nonumber \\&\le \int _{-\infty }^{\infty } \varPhi _{j-1}({\mathbf {y}}-s\tilde{A}_j+(j-1)\mathbf{1})f(s)\mathrm {d}s&(\hbox {induction hypo.}) \nonumber \\&= \int _{-\infty }^{\infty } \varPhi _{j-1}({\mathbf {y}}+(j-1)\mathbf{1} -s\tilde{A}_j)f(s)\mathrm {d}s \nonumber \\&= \varPhi _j({\mathbf {y}}+(j-1)\mathbf{1}) \end{aligned}$$
(22)

holds for any \({\mathbf {y}} \in {\mathbb {R}}^m\). Using Observation 4.8, (22) implies that

$$\begin{aligned} G_j({\mathbf {y}}') \le \overline{G}_j({\mathbf {y}}'+\mathbf{1}) \le \varPhi _j (({\mathbf {y}}'+\mathbf{1})+(j-1)\mathbf{1}) =\varPhi _j ({\mathbf {y}}+j\mathbf{1}) \end{aligned}$$

and we obtain the claim. \(\square \)

Corollary 4.11

$$\begin{aligned}\textstyle \varPhi (M\mathbf{1}) \le G(M\mathbf{1}) \le \varPhi (M \mathbf{1} + n{\mathbf {1}}). \end{aligned}$$

To transform the horizontal bound to a vertical one, we prepare the following.

Lemma 4.12

$$\begin{aligned} \frac{\varPhi (M\mathbf{1})}{\varPhi (M\mathbf{1} + n{\mathbf {1}})} \ge \left( \frac{M}{M+n}\right) ^n. \end{aligned}$$

Proof

For convenience, let \(\tilde{K}(c) \mathop {=}\limits ^{\mathrm{def}}\{ {\mathbf {x}} \in [0,1]^n \mid \tilde{A}{\mathbf {x}} \le c\mathbf{1}\}\) for \(c \ge 0\), i.e., \(\varPhi (M\mathbf{1})=\mathrm{Vol}(\tilde{K}(M))\) and \(\varPhi (M\mathbf{1}+n{\mathbf {1}})=\mathrm{Vol}(\tilde{K}(M+n))\). Let

$$\begin{aligned} D \mathop {=}\limits ^{\mathrm{def}}\left\{ \lambda {\mathbf {x}} \in {\mathbb {R}}^n \mid {\mathbf {x}} \in \tilde{K},\ \lambda \in {\mathbb {R}} \hbox { such that } 0 \le \lambda \le \tfrac{M+n}{M} \right\} . \end{aligned}$$

Since \(\tilde{K}(M)\) is convex containing the origin \(\mathbf{0}\), it is not difficult to see that D is similar to \(\tilde{K}(M)\) in the n dimensional space, which implies that

$$\begin{aligned} \frac{\tilde{K}(M)}{D} = \left( \frac{M}{M+n}\right) ^n \end{aligned}$$
(23)

holds. It may be helpful to consider a decomposition of \(\tilde{K}(M)\) into (truncated) cones for a confirmation of the above arguments.

Now, it is sufficient to prove that \(\tilde{K}(M+n) \subseteq D\). Let \({\mathbf {u}} \in \tilde{K}(M+n)\), which implies that \(\tilde{A}{\mathbf {u}} \le (M+n) \mathbf{1}\). Let \({\mathbf {u}}' = \tfrac{M}{M+n}{\mathbf {u}}\), then

$$\begin{aligned} \tilde{A}{\mathbf {u}}' = \frac{M}{M+n} \tilde{A}{\mathbf {u}} \le \frac{M}{M+n} (M+n)\mathbf{1} = M \mathbf{1} \end{aligned}$$

holds. This implies that \({\mathbf {u}} \in D\). \(\square \)

Lemma 4.6 is now easy from Corollary 4.11 and Lemma 4.12, in a similar way to the proof of Lemma 3.4.

5 Supplemental Proof

Proposition 5.1

(Proposition 3.1)

$$\begin{aligned} \overline{G}_j (y) = {\left\{ \begin{array}{ll} 0 &{}\quad \! y \le 0, \\ 1 &{}\quad \! y \ge \sum _{j'=1}^j \tilde{a}_{j'}. \end{array}\right. } \end{aligned}$$

Proof

The proof is an induction on j. Recall that \(G_0(y)=0\) for \(y \le 0\) and \(G_0(y)=1\) for \(y > 1\). Inductively assuming the claim holds for \(\overline{G}_{j-1}\), we prove the claim for \(\overline{G}_j\).

In case that \(y \le 0\), then \(y-\tilde{a}_j s \le 0\) holds for \(s \ge 0\) since \(\tilde{a}_j \ge 0\). Recall the definition (6), then \(G_{j-1} (y-\tilde{a}_j s) = \overline{G}_{j-1} (\lceil y-\tilde{a}_j s\rceil ) = 0\) where the last equality follows the induction hypothesis. Thus,

$$\begin{aligned} \overline{G}_j (y)&=\int _{0}^{1} G_{j-1}(y-\tilde{a}_j s)\,\mathrm {d}s =\int _{0}^{1} 0 \,\mathrm {d}s = 0 \end{aligned}$$

holds. We obtain the claim in the case.

In case that \(y \ge \sum _{j'=1}^j \tilde{a}_{j'}\), then \(y-\tilde{a}_j s \ge \sum _{j'=1}^{j-1} \tilde{a}_{j'}\) holds for \(s \le 1\). Recall the definition (6), then \(G_{j-1} (y-\tilde{a}_j s) = \overline{G}_{j-1} (\lceil y-\tilde{a}_j s\rceil ) = 1\) where the last equality follows the induction hypothesis. Thus,

$$\begin{aligned} \overline{G}_j (y)&=\int _{0}^{1} G_{j-1}(y-\tilde{a}_j s)\,\mathrm {d}s =\int _{0}^{1} 1\,\mathrm {d}s = 1 \end{aligned}$$

holds. We obtain the claim. \(\square \)