This question was cross-posted to operations research stack exchange
An illustrative example
Consider an integer linear program $\min -2x_1 + x_2$ subject to $x_1 - x_2 \leq 3$ and $x_1 + x_2 \leq 10$ and integer $x_1, x_2 \geq 0$.
The solution is $x_1=10, x_2=0$.
I can change the objective's coefficient from $-2x_1 + x_2$ to $-5x_1 +2x_2$ and the solution would be the same. The first constraint be similarly perturbed with no change in the solution.
Notation
Let an integer linear program be defined by a three-tuple $P_i = (c_i, A_i, b_i)$, i.e., $\min c'x$ subject to $Ax\leq b$. A solution of $P_i$ is denoted $S_i = \{x: x = \text{argmin } c_i'x, A_ix \leq b_i\}$.
Questions
For the following questions, assume the solutions are unknown.
Generally, when and how do I determine whether two integer linear programs $P_1, P_2$ yield the same solution?
How do I know what to what degree I can perturb the coefficients in $c, A, b$ without changing the solution?
In the above, by "the same solution" or "without changing the solution", I mean two scenarios: 1. the scenario where the solutions are identical, i.e., $S_1 = S_2$, and 2. the scenario where the solutions overlap $|S_1 \cap S_2| \geq 1$ but are not necessarily equal,
I don't think the solution is correct in the example given.
Two solutions being equal or overlapping candidate solutions is common either in integer or mixed integer programming if search space and feasibility region overlap.
Other than that in branch-& -cut or branch-&-bound algorithm I see processes of tree pruning and fixing upper and lower bounds of the objective can definitely lead to overlapping of solution space.
As for the answers to the 2 questions, analysis of dual variables, dual objective, iterative steps through branch-& -cut tree or step size for gradient based search algorithms may given an idea of potential solutions or solution space overlapping.