Our next hard stage problem deals with integers and linear inequalities. Namely, the problem is called integer linear programming. The input to this problem is a set, or a collection, or a system of linear inequalities, which we present here in metrics form. And our goal is to find integer values for all the variables that satisfy all the inequalities. To give it our example, consider the following three inequalities. The first one says that x1 should be at least one-half. The second one says that minus x1 plus 8x2 should be non negative. And the last one says that minus x1 minus 8 times x2 should be at least minus 8. As usual, we can represent a set of all solutions, all feasible points to this system of linear inequalities as a convex polygon as follows. We first draw a half space that contains all points which satisfy the first inequality, that's shown here in green. So once again, in the green half space, all the pairs of points (x1, x2) satisfies the inequality x1 is at least half. The second, the blue one, half space, contains all the points that satisfy the second inequality. Finally, the red half space shown here, contains all the points that satisfies the last inequality. In particular, the intersection of these three half spaces, this triangle, contains all the points that satisfies our three inequalities. Recall, however, that what we need to find is an integer solution. That is, we would like x1 and x2 to have integer values. And so this intersection is non empty, it contains no integer points. So the integer points are here, the closest ones. But none of them is inside this region. Right? So it turns out that this additional restriction, namely the restriction that the solution should be integer, gives us a very hard problem. In particular, if we just have a system of linear inequalities and we would like to check whether there is a point that satisfies whether there is a solution to them, then we can use, for example, simplex method to solve it in practice. The running time of simplex method is not bounded by polynomial, so on some pathological cases, it can have exponential running time. But there are other methods like ellipsoid method or interior point method that have polynomial upper bounds in the running time. So in any case, we can solve systems of linear inequalities efficiently in practice. But if we additionally require that we need the solution to be integer, then we get a very difficult problem for which we have no polynomial algorithm at the moment.