Here is a partial answer, for the case when $b$ is strictly positive (that is, $\min_j b_j > 0$). As discussed afterwards it also implicitly handles the case, mentioned in the comments, when $A$ is non-negative.
Lemma 1. There is a poly-time algorithm that, given any instance $(A, b, c)$ with strictly positive $b$, either returns such an upper bound $\text{MAX}(A, b, c)$, or determines that the ILP is infeasible.
Proof. Here is the algorithm:
- let LP$(A, b, c)$ be the fractional relaxation, that is, the linear program $\max \{c\cdot x : Ax \ge b, x \ge 0\}$
- let $x$ be an optimal solution to LP$(A, b, c)$ (compute $x$ with any poly-time LP solver)
- if LP$(A, b, c)$ is infeasible, return INFEASIBLE
- let $\lambda = 1 + \max_j \sum_i |A_{ij}| / b_j$
- return $c\cdot \hat x$ where integer vector $\hat x$ is defined by $\hat x_i = \lceil \lambda x_i \rceil$
By standard results the algorithm runs in polynomial time (even counting the bit-complexity of the arithmetic). It remains to show correctness.
In the case that LP$(A, b, c)$ is infeasible, there is no solution to the LP, so there is no solution to the original ILP, so the algorithm (which returns INFEASIBLE in this case) is correct.
In the remaining case, $x$ is a basic feasible solution (which by standard results has polynomial bit complexity). Observe that $\hat x$ is also feasible. Indeed, for any row $A_j$ of $A$, we have
$$ A_j \hat x = \sum_i A_{ij} \hat x_{ij} \ge \sum_i (A_{ij} \lambda x_{ij} - |A_{ij}|) \ge \lambda b_j - \sum_i |A_{ij}| \ge b_j, $$ where the last inequality follows from the choice of $\lambda$.
So $\hat x$ is a feasible integer solution, i.e., a solution to the original ILP. So $c\cdot \hat x$ is a valid upper bound on the ILP value. Finally, observe that the bit complexity of $c\cdot \hat x$ is polynomial in the bit complexity of $(A, b, c, x)$, which is polynomial in the bit complexity of $(A, b, c)$. $~~~~\Box$
Non-negative $A$
Lemma 1 implicitly handles all instances in which $A$ is non-negative, because in any such instance all constraints with $b_j \le 0$ can be deleted without affecting the optimal cost (as those constraints are trivially satisfied by every $x\ge 0$).
The general case
The approach above (for the case when $b$ is strictly positive) is to find a feasible integer solution and return its cost. This approach will not extend easily to the general case, because in general finding a feasible integer solution to the ILP is NP-hard (even with the promise that one exists).