This preview has intentionally blurred sections. Sign up to view the full version.
View Full Document
Unformatted text preview: Chapter 5 Solving Integer Programs Algorithms to solve integer program fall into two distinct categories: 1. problem speciFc algorithms, and 2. general purpose algorithms. The Frst class of algorithms takes advantage of the special structure of the problem considered. A seminal example is the shortest path problem, where we are given a graph G , nonnegative cost for each of its edges, and two speciFc vertices s and t in V . The goal is now to Fnd a minimumcost path connecting s and t . We will see that there is a polynomialtime algorithm to solve this problem in Section 5.1. As a second, somewhat more sophisticated example, we revisit the maximum weight matching problem. Just like for the shortest path problem, there is a polynomialtime algorithm for this problem. We will see a procedure for the special case where the graph is bipartite in Section 5.2. The second class of algorithms are algorithms for solving general integer programs. As Integer Programming is N Phard (see Chapter 3) one cannot expect that such an algorithm will always Fnd an optimal solution in polynomial time. The running time of these algorithms can be exponential in the worst case. However, they can be quite fast for many instances, and are capable of solving many largescale, reallife problems. These algorithms follow two general strategies: The Frst attempts to reduce integer programs to linear programs, this is known as the cutting plane approach and will be described in Section 5.3. 117 118 CHAPTER 5. SOLVING INTEGER PROGRAMS The other strategy is a divide and conquer approach which is known as branch and bound which will be discussed in Section 5.4. In practice both strategies are combined under the heading of branch and cut. This remains the preferred approach for all general purpose commercial codes. 5.1 Shortest paths Let G = ( V , E ) be a graph and recall that a path in G is a sequence v 1 v 2 , v 2 v 3 , v 3 v 4 ,..., v k 1 v k , where v i ∈ V for all 1 ≤ i ≤ k , and v i v i + 1 ∈ E for all 1 ≤ i ≤ k 1. Further recall that we call such a path an stpath if v 1 = s and v k = t . In the stpath problem, we are given a graph G , a nonnegative cost c e for each edge e , and two speci¡c vertices s and t . The goal is to ¡nd an stpath P that minimizes ∑ e ∈ P c e , where e ∈ P if e is an edge of path P . Such a path P of smallest total cost is often also just simply referred to as a shortest stpath. In this section we will describe an algorithm that ¡nds such a path ef¡ciently if one exists. Our strategy will be to formulate the shortest path problem as an integer program, and to then present an ef¡cient algorithm to compute an exact solution to it....
View
Full Document
 Fall '08
 Burbidge,John
 Linear Programming, Optimization, Linear Programming Relaxation, Yi, integer programs, maximum weight

Click to edit the document details