This preview shows pages 1–3. Sign up to view the full content.
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 , non-negative cost for each of its edges, and two speciFc vertices s and t in V . The goal is now to Fnd a minimum-cost path connecting s and t . We will see that there is a polynomial-time 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 polynomial-time 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 P-hard (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 large-scale, real-life 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 st-path if v 1 = s and v k = t . In the st-path problem, we are given a graph G , a non-negative cost c e for each edge e , and two specic vertices s and t . The goal is to nd an st-path 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 st-path. In this section we will describe an algorithm that nds such a path efciently if one exists. Our strategy will be to formulate the shortest path problem as an integer program, and to then present an efcient algorithm to compute an exact solution to it....
View Full Document
This note was uploaded on 01/26/2012 for the course ECON 401 taught by Professor Burbidge,john during the Fall '08 term at Waterloo.
- Fall '08