"Factorization" of the solutions set of a system of linear diophantine equations over non-negative integers

75 Views Asked by At

Suppose we have a system of linear diophantine equations over non-negative integers: $$ \left\lbrace\begin{aligned} &Ax=b\\ &x\in \mathbb{Z}^n_{\geq0} \end{aligned}\right. $$ where $A$ is a matrix of size $m\times n$, $a_{ij}\in \mathbb{N},~b\in \mathbb{N}$.

Let $S_{b'}$ be the set of solutions of this system, with right-hand side $b'$. $S_{b'}=\{x\in \mathbb{Z}^n_{\geq 0}| Ax=b'\}$

How can we find such $b_1$ and $b_2$ that: $b_1+b_2=b$ and $S_{b}=S_{b_1}+S_{b_2}=\{x+y|x\in S_{b_1},~y\in S_{b_2}\}$?

Informally, I want to find a split of the "knapsack" into two parts, so that any solution of the original knapsack problem can be divided into two parts so that these two parts are solutions to these two subproblems.

The problem can be reformulated without $b_2$:

Let $x\geq y \Leftrightarrow x-y\in \mathbb{Z}^n_{\geq 0}$. Find a $b_1\in \mathbb{N}$ such that $\forall x\in S_{b} \exists y\in S_{b_1}: x\geq y$. Then it is obvious that $S_{b_2} =\{x\in S_{b}-S_{b_1}| x\geq \vec{0}\}$ and $b_2=b-b_1$.