Previous Section
 < Day Day Up > 
Next Section


Algorithms for linear programming

This chapter studies the simplex algorithm. This algorithm, when implemented carefully, often solves general linear programs quickly in practice. With some carefully contrived inputs, however, the simplex algorithm can require exponential time. The first polynomial-time algorithm for linear programming was the ellipsoid algorithm, which runs slowly in practice. A second class of polynomial-time algorithms are known as interior-point methods. In contrast to the simplex algorithm, which moves along the exterior of the feasible region and maintains a feasible solution that is a vertex of the simplex at each iteration, these algorithms move through the interior of the feasible region. The intermediate solutions, while feasible, are not necessarily vertices of the simplex, but the final solution is a vertex. The first such algorithm was discovered by Karmarkar. For large inputs, the performance of interior-point algorithms can be competitive with, and sometimes faster than, the simplex algorithm.

If we add to a linear program the additional requirement that all variables take on integer values, we have an integer linear program. Exercise 34.5-3 asks you to show that just finding a feasible solution to this problem is NP-hard; since no polynomial-time algorithms are known for any NP-hard problems, there is no known polynomial-time algorithm for integer linear programming. In contrast, a general linear-programming problem is solvable in polynomial time.

In this chapter, if we have a linear program with variables x = (x1, x2, ..., xn) and wish to refer to a particular setting of the variables, we shall use the notation .



Previous Section
 < Day Day Up > 
Next Section