# Why can't we round results of linear programming to get integer programming?

• If linear programming suggests that we need $2.5$ trucks to deliver goods, why can't we round up and say $3$ trucks are needed?

• If linear programming suggests we can afford only $3.7$ workers, then why can't we just round down to $3$ workers?

When can we not use this rounding technique?

• Dumb answer: because then P = NP which is still open. So clearly the technique can not always work. – Raphael Oct 23 '16 at 22:03
• Not really. There is no reason why P cannot be NP. Also, read pseudo polynomial. en.wikipedia.org/wiki/Pseudo-polynomial_time – Souradeep Nanda Oct 24 '16 at 7:53
• There is no reason, true; but believe me, if rounding LPs was the answer it would have been figured out decades ago. This is not a new idea. – Raphael Oct 24 '16 at 10:51
• You are looking at trivial cases. Yes, if T ≥ 2.5 and T must be an integer, then T ≥ 3. And if W ≤ 3.7 and W must be an integer, then W ≤ 3. But now take two variables, say 0.136x + 0.049y ≤ 10, and find integers x, y to make 0.136x + 0.049y as large as possible. Have fun. And that's still very, very simple. – gnasher729 Oct 24 '16 at 18:04

If there are only constraints that place a lower bound on the number of trucks, but no constraints that place an upper limit on the number of trucks, then of course you can round up. That will still give you a solution.

However, there are multiple caveats:

• First, this isn't always possible. Sometimes there are both constraints that place lower limits and constraints that place upper limits. It can happen that taking a solution and rounding gives you something that is no longer a solution.

• Even if the result of the rounding is a solution, there is no guarantee that it is the best out of all solutions that uses integers. There may be some other way to choose integers for all the variables that is better than the solution you got by rounding.

If you want solutions that are all integer, then you have an integer linear programming problem. Integer linear programming (ILP) is harder than linear programming (LP). In particular, there are polynomial-time algorithms for LP, but ILP is NP-hard, so there is most likely no polynomial-time algorithm for ILP (unless P=NP, which is considered unlikely).

• Could you give an example where the rounded solution is sub optimal to the integer solution while both are in solution space? – Souradeep Nanda Jan 17 '16 at 4:46
• Trivial: Assume there is a condition x+y = 1, with both x=0, y=1 and x=1, y=0 valid, but with different values of the goal function. There are two ways to round a non-integer solution to a valid solution, and since the goal function will have two different values, one cannot be optimal. – gnasher729 Oct 23 '16 at 15:46
• @gnasher729 And that also demonstrates a case where rounding a valid solution ($x=y=\tfrac12$) can lead to an invalid solution ($x=y=1$). – David Richerby Oct 24 '16 at 11:13

In $\mathbb R$, one can simply round down or round up to obtain an element of $\mathbb Z$. Only two choices!

However, in $\mathbb R^n$, one has $2^n$ ways of rounding to obtain an element of the integer lattice $\mathbb Z^n$. For example, if $n=100$, one has $2^{100} \approx 10^{30}$ possible ways of rounding.

Of course, one can round all entries of an $n$-dimensional vector down or up, but do note that the Euclidean distance between the two farthest vertices of the hypercube $[0,1]^n$ is $\sqrt n$. If $n=100$, then $\sqrt{100} = 10$.

Unfortunately, to the best of my knowledge, there is no guarantee that the solution to the integer program will be found via one of the $2^n$ possible rounding schemes.

Fortunately, some linear programs have integer solutions and, thus, no rounding is required.