1 / 34

15-853:Algorithms in the Real World

15-853:Algorithms in the Real World. Linear and Integer Programming III Integer Programming Applications Algorithms. Integer (linear) Programming. Related Problems Mixed Integer Programming (MIP) zero-one programming Integer quadratic programming Integer nonlinear programming.

karah
Download Presentation

15-853:Algorithms in the Real World

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 15-853:Algorithms in the Real World Linear and Integer Programming III Integer Programming Applications Algorithms 15-853

  2. Integer (linear) Programming • Related Problems • Mixed Integer Programming (MIP) • zero-one programming • Integer quadratic programming • Integer nonlinear programming 15-853

  3. History • Introduced in 1951 (Dantzig) • TSP as special case in 1954 (Dantzig) • First convergent algorithm in 1958 (Gomory) • General branch-and-bound technique 1960 (Land and Doig) 15-853

  4. Current Status • Has become “dominant” over linear programming in past decade • Saves industry Billions of Dollars/year • Can solve 10,000+ city TSP problems • 1 million variable LP approximations • Branch-and-bound, Cutting Plane, and Separation all used in practice • General purpose packages do not tend to wrok as well as with linear programming --- knowledge of the domain is critical. 15-853

  5. Subproblems/Applications • Facility locationLocating warehouses or franchises (e.g. a Burger King) • Set covering and partitioningScheduling airline crews • Multicomodity distributionDistributing auto parts • Traveling salesman and extensionsRouting deliveries • Capital budgeting • Other ApplicationsVLSI layout, clustering 15-853

  6. Knapsack Problem Integer (zero-one) Program: • where: b = maximum weight ci = utility of item i ai = weight of item i xi = 1 if item i is selected, or 0 otherwise • The problem is NP-hard. 15-853

  7. Traveling Salesman Problem • cij = distance from city i to city j • xij = 1 if tour visits i then j, and 0 otherwise (binary) • ti = arbitrary real numbers we need to solve for (out degrees = 1) (in degrees = 1) (??) 15-853

  8. Traveling Salesman Problem • The last set of constraints: • prevents “subtours”: Consider a cycle that goes from some node 4 to 5, t4 – t5 + nx4,5· n-1 ) t5¸ t4 + 1 Similarly t has to increase by 1 along each edge of the cycle that does not include vertex 1. Therefore, for a tour of length m that does not go through vertex 1, t4¸ t4 + m, a contradiction. Every cycle must go through vertex 1. Together with other constraints, it forces one cycle. 15-853

  9. Traveling Salesman Problem • Many “Real World” applications based on the TSP. • They typically involve more involved constraints • Not just routing type problems.Consider a drug company with k drugs they can make at a lab. They make them one at a time.The cost of converting the equipment from making drug i to drug j is cij • Current best solutions are based on IP • Applegate, Bixby, et. al., have solutions for more than 15K cities in Germany > 150,000 CPU hours (more info) • Involves “branch-and-bound” and “cutting planes” 15-853

  10. Set Covering and Partitioning • Given m sets and n items: Columns = sets Rows = items Set covering: Set partitioning: 15-853

  11. Set Covering and Partitioning • Best cover: s2, s4, s5 = .5 • Best partition: s4, s6 = .7 15-853

  12. Set Covering and Partitioning • Applications: • Facility location. Each set is a facility (e.g. warehouse, fire station, emergency response center).Each item is an area that needs to be covered • Crew scheduling.Each set is a route for a particular crew member (e.g. NYC->Pit->Atlanta->NYC).Each item is a flight that needs to be covered. 15-853

  13. Constraints Expressible with IP • Logical constraints (x1, x2 binary): Combining constraints: y is a binary variable, M needs to be “large”,a1, a2, and x can be vectors 15-853

  14. Piecewise Linear Functions • Intentionally left blank. 15-853

  15. Algorithms • Use a linear program • round to integer solution (what if not feasible?) • Search • Branch and bound (integer ranges) • Implicit (0-1 variables) • Cutting planes • Many variants 15-853

  16. Important Properties • LP solution is an upper bound on IP solution (assuming maximization) • If LP is infeasible then IP is infeasible • If LP solution is integral (all variables have integer values), then it is the IP solution. 15-853

  17. Linear Programming Solution • Some LP problems will always have integer solutions • transportation problem • assignment problem • min-cost network flow These are problems with a unimodular matrix A. • Solve as linear program and round. Can violate constraints, and be non-optimal. Works OK if • integer variables take on large values • accuracy of constraints is questionable 15-853

  18. x2 = 1 x2 = 0 x1 = 1 x1 = 0 x3 = 1 x3 = 0 Branch and Bound • Lets first consider 0-1 programs. • Exponential solution: try all {0,1}n • Branch-and-bound solution: Traverse tree keeping current best solution. If it can be shown that a subtree never improves on the current solution, or is infeasable, prune it. 15-853

  19. Zero-One Branch and Bound • minimize: z = cTx, subject to: Ax · b, x ¸ 0, x 2 {0,1}n • functionIP(C, c, xf, z*) • // xf a subset of the variables which are fixed • // z* is the cost of current best solution x = xf + 0 // set free variables to zero if cx > z* or no feasible completion return z* if feasible(C,x) then cx pick a non-fixed variable xi from x z* = IP(xf[ {xi = 0}, c, z*) z* = IP(xf[ {xi = 1}, c, z*) return z* • end 15-853

  20. Zero-One Branch and Bound • Checking for feasible completions: check each constraint and find if minimum of left is greater than right. • Example: • xf = {x1 = 1, x3 = 0} • and one of the constraints is • 3x1 + 2x2 – x3 + x4· 2 • then • 3 + 2x2 - 0 + x4· 2 • 2x2 + x4 · -1 • which is impossible. 15-853

  21. Integer Branch and Bound • The zero-one version is sometimes called “implicit enumeration” since it might enumerate all possibilities. • An integer version cannot branch on all possible integer values for a variable. Even if the integer range is bounded, it is not practical. • Will “bound” by adding inequalities to split the two branches. Since solutions are integral, each split can remove a strip of width 1 15-853

  22. Integer Branch and Bound • maximize: z = cTx, subject to: Ax · b, x ¸ 0, x 2 Zn • functionIP(C, c, z*) • // C is a set of constraints Ax · b • // z* is the cost of current best solution z, x, f = LP(C,c) // f indicates whether feasible if not(f) or z < z* return z* if integer(x) return z pick a non-integer variable xi’ from x z* = IP(C with xi·bxi’c, c, z*) z* = IP(C with –xi· -dxi’e, c, z*) return z* • end 15-853

  23. Example l z u feasible Find optimal solution. Cut along y axis, and make two recursive calls 15-853

  24. Example • Find optimal solution. • Solution is integral, so return it as current best z* l z u 15-853

  25. Example • Find optimal solution. It is better than z*. • Cut along x axis, and make two recursive calls z u l = z* 15-853

  26. Example • Infeasible, Return. z u l 15-853

  27. Example z l u u l = z* Find optimal solution. It is better than z*. Cut along y axis, and make two recursive calls 15-853

  28. Example z l u = z* Find optimal solution. Solution is integral and better than z*. Return as new z*. 15-853

  29. Example z l u = z* Find optimal solution. Not as good as z*, return. 15-853

  30. Cutting Plane • General Algorithm: • function IP(C, c) x = LP(C,c) while not(integer(x) or infeasible(x)) add constraints to C x = LP(C,c) • The constraints must have the properties that • they do not cut off any feasible integer solutions • they do cut off the current optimal linear solution 15-853

  31. Cutting Plane • Note that we are removing a corner, and no integer solutions are being excluded. z feasible New plane 15-853

  32. Picking the Plane • Method 1: Gomory cuts (1958) • Cuts are generated from the LP TableauEach row defines a potential cut • Guaranteed to converge on solution • General purpose, but inefficient in practice • Method 2: problem specific cuts • Consider the problem at hand and generate cuts based on its structure • Not general purpose, but can work very well in practice 15-853

  33. Underconstraint Problems • It is possible to underconstrain the initial problem, and add constraints (cuts) later as needed. • For example, in TSP formulation, one could leave out the subtour elimination constraints. Constraints would only be added when a subtour is formed, and then only enough to break the subtour.Such constraints can take advantage of properties of graphs and tours. (more info) • This technique is used frequently in practice. 15-853

  34. Practical Developments • Good formulations, heuristics and theoryGoal: to get LP solution as close as possible to IP solutionDisaggregation, adding constraints (cuts) • PreprocessingAutomatic methods for reformulationSome interesting graph theory is involved • Cut generation (branch-and-cut)Add cuts during the branch-and-bound • Column generationImprove formulation by introducing an exponential number of variables. 15-853

More Related