3

Is there a theorem that states that Integer Linear Problems with a Totally Unimodular constraint matrix are solvable in polynomial time?

If the answer is positive, is it also valid for Mixed-Integer Linear Problems? And in which books can I find such theorem?

  • Have you taken a look at Alexander Schrijver's book? – Rodrigo de Azevedo May 15 '23 at 11:04
  • 1
    If the constraint matrix is totally unimodular, then the linear relaxation of the problem will have integer solutions, and so coincide with the original solutions. Then apply the well-known fact that linear programming is polynomial time. – Joppy May 15 '23 at 13:06
  • General mixed-integer programming is NP-hard - even the case of 01-integer programming (the variables are either 0 or 1) is known to be NP-complete, and so is probably not solvable in polynomial time. – Joppy May 15 '23 at 13:07
  • Thank you all for the answers! – Mathgineer94 May 15 '23 at 14:20

1 Answers1

1

Alexander Schrijver's Theory of Linear and Integer Programming has the following (Theorem 19.1), which is attributed to Hoffman and Kruskal,1956, Integral Boundary Points of Convex Polyhedra

"Let $A$ be a totally unimodular matrix and let $b$ be an integer vector. Then the polyhedron $P=\{Ax\leq b\}$ is integral."

This implies that any vertex solution to P will be integral. Since we can optimize over $P$ in polynomial time using linear programming to obtain such a vertex solution, we can solve problems with a Totally Unimodular constraint matrix AND an integer right hand side b in polynomial time. Note that the right hand side $b$ must be integer; I currently see that none of the other answers has mentioned this.

Since $P$ would be integral regardless of any integrality requirements on $x$, the theorem is valid for both Mixed-Integer Programs and Integer Programs.

  • 2
    There is a subtlety here. Yes, TU implies that every vertex solution to the LP relaxation is integral for integer $b$. And yes, LP is polynomial time, but the proof uses an interior-point algorithm that does not necessarily return a vertex solution. – RobPratt May 16 '23 at 17:03