Mathematical Reasoning for Solving Integer Programming

46 Views Asked by At

For an integer programming problem, I found that using the integer programming function intlinprog in matlab (based on branch and bound) is the same as using simple mathematical reasoning. For the following problem: $$min \ Cx-Ay $$ $$s.t. \ x+y \le 150$$ $$ \ \ 0\le x \le 100$$ $$ \ \ 0\le y \le 100$$ Where A is a constant greater than $0$ and greater than C.

For this problem, we should set $y=100$. Then, if C>=$0$, we should set $x=0$, otherwise $x$ is $50$.

I want to know what mathematical method I use to analyze in this way? Why does it produce the same result as the integer programming (Branch and bound) method?

Another problem is if I first solve the following integer program: $$min \ Cx-Ay $$ $$s.t. 0\le x \le 100$$ $$ \ \ 0\le y \le 100$$ Now, i can get $x$ and $y$. Then I add condition $ x+y \le 150$ to further solve for $x$ and $y$. How is this solver different from the integer program solver above?