Integer Linear Programming

Similar documents
Introduction to Integer Programming

to work with) can be solved by solving their LP relaxations with the Simplex method I Cutting plane algorithms, e.g., Gomory s fractional cutting

Introduction to Mathematical Programming IE406. Lecture 21. Dr. Ted Ralphs

where X is the feasible region, i.e., the set of the feasible solutions.

Integer Programming. Wolfram Wiesemann. December 6, 2007

Travelling Salesman Problem

Operations Research Lecture 6: Integer Programming

maxz = 3x 1 +4x 2 2x 1 +x 2 6 2x 1 +3x 2 9 x 1,x 2

Section Notes 8. Integer Programming II. Applied Math 121. Week of April 5, expand your knowledge of big M s and logical constraints.

MVE165/MMG630, Applied Optimization Lecture 6 Integer linear programming: models and applications; complexity. Ann-Brith Strömberg

Integer Programming ISE 418. Lecture 8. Dr. Ted Ralphs

Network Flows. 6. Lagrangian Relaxation. Programming. Fall 2010 Instructor: Dr. Masoud Yaghini

Introduction to Integer Linear Programming

1 Column Generation and the Cutting Stock Problem

Section Notes 9. Midterm 2 Review. Applied Math / Engineering Sciences 121. Week of December 3, 2018

Resource Constrained Project Scheduling Linear and Integer Programming (1)

Algorithms. NP -Complete Problems. Dong Kyue Kim Hanyang University

MVE165/MMG631 Linear and integer optimization with applications Lecture 8 Discrete optimization: theory and algorithms

(tree searching technique) (Boolean formulas) satisfying assignment: (X 1, X 2 )

min3x 1 + 4x 2 + 5x 3 2x 1 + 2x 2 + x 3 6 x 1 + 2x 2 + 3x 3 5 x 1, x 2, x 3 0.

3.4 Relaxations and bounds

is called an integer programming (IP) problem. model is called a mixed integer programming (MIP)

Outline. Outline. Outline DMP204 SCHEDULING, TIMETABLING AND ROUTING. 1. Scheduling CPM/PERT Resource Constrained Project Scheduling Model

Section Notes 9. IP: Cutting Planes. Applied Math 121. Week of April 12, 2010

Week Cuts, Branch & Bound, and Lagrangean Relaxation

Branch-and-Bound. Leo Liberti. LIX, École Polytechnique, France. INF , Lecture p. 1

Optimisation and Operations Research

Exercises NP-completeness

21. Set cover and TSP

Integer Linear Programming (ILP)

Chapter 3: Discrete Optimization Integer Programming

Lecture 8: Column Generation

Zebo Peng Embedded Systems Laboratory IDA, Linköping University

Algorithm Design Strategies V

This observation leads to the following algorithm.

5 Integer Linear Programming (ILP) E. Amaldi Foundations of Operations Research Politecnico di Milano 1

IP Cut Homework from J and B Chapter 9: 14, 15, 16, 23, 24, You wish to solve the IP below with a cutting plane technique.

Integer Programming Part II

3.7 Cutting plane methods

Optimisation and Operations Research

15.081J/6.251J Introduction to Mathematical Programming. Lecture 24: Discrete Optimization

Large-scale optimization and decomposition methods: outline. Column Generation and Cutting Plane methods: a unified view

Unit 1A: Computational Complexity

Lecture 23 Branch-and-Bound Algorithm. November 3, 2009

Discrete Optimization 2010 Lecture 7 Introduction to Integer Programming

Outline. Relaxation. Outline DMP204 SCHEDULING, TIMETABLING AND ROUTING. 1. Lagrangian Relaxation. Lecture 12 Single Machine Models, Column Generation

Cutting Planes in SCIP

Recoverable Robustness in Scheduling Problems

INTEGER PROGRAMMING. In many problems the decision variables must have integer values.

Lecture 8: Column Generation

Notes on Dantzig-Wolfe decomposition and column generation

Computer Science 385 Analysis of Algorithms Siena College Spring Topic Notes: Limitations of Algorithms

SOLVING INTEGER LINEAR PROGRAMS. 1. Solving the LP relaxation. 2. How to deal with fractional solutions?

3.10 Column generation method

The P versus NP Problem. Ker-I Ko. Stony Brook, New York

3.10 Column generation method

Mixed Integer Programming (MIP) for Causal Inference and Beyond

What is an integer program? Modelling with Integer Variables. Mixed Integer Program. Let us start with a linear program: max cx s.t.

CS Algorithms and Complexity

Chapter 3: Discrete Optimization Integer Programming

Question Paper Code :

ECS122A Handout on NP-Completeness March 12, 2018

FINAL EXAM PRACTICE PROBLEMS CMSC 451 (Spring 2016)

Decision Diagrams for Discrete Optimization

Lecture 2: The Simplex method

Column Generation. MTech Seminar Report. Soumitra Pal Roll No: under the guidance of

Introduction to Bin Packing Problems

4/12/2011. Chapter 8. NP and Computational Intractability. Directed Hamiltonian Cycle. Traveling Salesman Problem. Directed Hamiltonian Cycle

Weighted Activity Selection

CSC 8301 Design & Analysis of Algorithms: Lower Bounds

NP-complete problems. CSE 101: Design and Analysis of Algorithms Lecture 20

A Hub Location Problem with Fully Interconnected Backbone and Access Networks

Optimization Exercise Set n.5 :

In complexity theory, algorithms and problems are classified by the growth order of computation time as a function of instance size.

Linear and Integer Programming - ideas

Scheduling and Optimization Course (MPRI)

Data Structures in Java

Introduction to optimization and operations research

Scheduling with Constraint Programming. Job Shop Cumulative Job Shop

Intractable Problems Part Two

Analysis of Algorithms. Unit 5 - Intractable Problems

Greedy Algorithms My T. UF

Combinatorial optimization problems

Lagrangian Relaxation in MIP

Integer Programming and Branch and Bound

Limitations of Algorithm Power

Section #2: Linear and Integer Programming

The Ellipsoid (Kachiyan) Method

Combinatorial Optimization

If the above problem is hard to solve, we might try to break it into smaller problems which are easier to solve.

Advanced Operations Research Prof. G. Srinivasan Department of Management Studies Indian Institute of Technology, Madras

Optimization Prof. A. Goswami Department of Mathematics Indian Institute of Technology, Kharagpur. Lecture - 20 Travelling Salesman Problem

18 hours nodes, first feasible 3.7% gap Time: 92 days!! LP relaxation at root node: Branch and bound

15.083J/6.859J Integer Optimization. Lecture 2: Efficient Algorithms and Computational Complexity

CS320 The knapsack problem

Decision Procedures An Algorithmic Point of View

Foundations of Operations Research

Improving Branch-And-Price Algorithms For Solving One Dimensional Cutting Stock Problem

The Traveling Salesman Problem: An Overview. David P. Williamson, Cornell University Ebay Research January 21, 2014

Discrete Optimization 2010 Lecture 8 Lagrangian Relaxation / P, N P and co-n P

Transcription:

Integer Linear Programming Solution : cutting planes and Branch and Bound Hugues Talbot Laboratoire CVN April 13, 2018

IP Resolution Gomory s cutting planes Solution branch-and-bound General method Resolution General Algorithm Remarks and discussion B&B et A Problèmes classiques knapsack Planification TSP Binary problems Conclusion Plan

Principle

Initial formulation Consider a linear relaxation of an IP problem. This is the corresponding LP for which the optimal solution is X. If X is integer, this is the optimal solution. If it is not, X is fractionnary. Consider the basis corresponding to the LP optimal solution AX = BX b +EX e = b X b = B 1 [b EX e ]; b = B 1 b. with b i = B 1 b fractionnary. We have où e t i X bi = e t i B 1 [b EX e ] = [000... 1...00] posi

Formulation (next) So : interpreting : X bi = e t i B 1 b e t i B 1 EX e = b i α i X e α i = e t i B 1 E (i.e: line i of B 1 E) By reordering: X bi +α i X e = b i X bi + j αi j X e j = b i [1])

Integer part/ fractionnary part Definition : let a be a non-integer int(a) = greatest integer a. frac(a) = a int(a)(therefore 0). From [1] we have : X bi + j [int(αi j )+frac(αi j )]X e j = int( b i )+frac( b i ) X bi + j int(αi j )X e j + j frac(αi j )X e j = int( b i )+frac( b i ) [2]) with frac(α i j ) 0 and X e j 0. so X bi + j int(α i j)x ej int( b i )+frac( b i )

Gomory cut However X bi is integer and so is X ej. therefore from [3] [2] we deduce X bi int(α i j)x ej int( b i ) [3] j j frac(αi j )X e j frac( b i ) j frac(αi j )X e j frac( b i ) [4] [4] is a Gomory cut

Example Consider the following problem : In standard form : max x 1 + x 2 3x 1 + 4x 2 15 x 1 4x 2 0 3x 1 +4x 2 +x 3 = 15 x 1 4x 2 +x 4 = 0

Cut 1 Optimal solution: basis X b = Inverse : B 1 = 1 16 [ 4 4 1 3 Solution : [ 1/4 1/4 b = B 1 b = 1/16 3/16 Cut (1) : α 1 = [ 1 1 4 4 ], b 1 = 15 4 1 4 x 3 + 1 4 x 4 3 4 [ x1 x 2 ] ][ 15 0 ] [ ] 3 4, B = 1 4 [ ] 1/4 1/4 = 1/16 3/16 ] = x 3 +x 4 3 cut (1) [ 15/4 15/16 ]

Cut 2 Cut (2) : α 2 = [ 1 16 3 16 ], b 2 = 15 16, Careful! frac(α2 ) = [ 1 1 16 x 3 + 13 16 x 4 15 16 x 3 +13x 4 15 cut (2) 13 16 16 ] These are not very interesting, now we express the out-of-basis variables in terms of the basis variables: x 3 = 15 3x 1 4x 2 x 4 = x 1 +4x 2

Final cut By substituting in cut 1: By substituting in cut 2 : 15 3x 1 4x 2 x 1 +4x 2 3 12 4x 1 x 1 3 15 3x 1 4x 2 13x 1 +52x 2 15 16x 1 +48x 2 0 x 1 3x 2 0 We add the cuts to the original problem, and this time we obtain : b = [3, 3 2 ], we need another iteration.

Note on the Gomory cuts It is possible to show that the method converges rapidly. In practice one component of the solution becomes integer at each iteration However, the number of variables double every iteration, so the complexity is exponential.

Solution by branch and bound Gomory s cut provide an algorithmic solution to IP problems. In the case where both constraints and variables are rational (or integer), Gomory s algorithm converges in finite time. Cuts attack the problem from the outside, which may be inefficient in some configurations. It is also possible to attack the problem from the inside: we will separate the domains and evaluate which domain to explore first. This is the branch-and-bound method.

Tables and chairs A company produces tables and chairs; A table requires 1h of work and 9 m 2 of wood ; A chair requires 1h of work et 5m 2 of wood ; Our resources are 6h of work and 45 m 2 of wood ; Each table generates a profit of 8, and each chair 5 ; Formulate and solve the associated IP problem.

Formulation This is a possible formulation: x i 0,x i N. maxz = 8x 1 + 5x 2 x 1 + x 2 6 9x 1 + 5x 2 45

Representation

General Method We start from solving the LP relaxation as before, we obtain: z = 165 4 = 41.25 x 1 = 15 4 x 2 = 9 4 If the solution is integer, we stop, this is optimal. If not, the z value obtained is an upper bound for the integer solution (why?).

General method (next) If the solution is not integer, we partition the domain. We choose arbitrarily one of the variables that is still fractionary, for instance here x 1. We impose extra constraints due to the nature of the variables, here either x 1 3, or x 1 4 (Question : why can we eliminate the solution 3 < x 1 < 4?)

Separation We now have two subproblems: 2. Initial problem + constraint x 1 4 3. Initial problem + constraint x 1 3.

Representation (2)

Recursion We now have eliminated the region that used to contain the LP solution, however we have retained all the integer parts of the domain We now have two sub problems we can try to solve with LP. We choose one of them arbitrarily, for instance problem 2. The solution of the LP relaxation for region 2 is z = 41 x 1 = 4 x 2 = 9 5 This is point C. This is the first branch of a tree. Since x 2 is still fractionnary, we can decide to separate on this variable. We split region 2 into two zones : The one for x 2 2 and the one for x 2 1.

Tree (1+2)

New branch (4 + 5) We now have two new sub-problems 4. Problem 2 + constraint x 2 2 5. Problme 2 + constraint x 2 1. It is preferable to explore the tree depth first (we will see later why). We choose one of these new sub-problems, for instance problem 4. However this problem is not feasible in integers.

Representation (4 + 5) x2 9 8 7 9x1 + 5x2 6 5 x1+x2 G 4 3 2 1 D 3 z=20 F C H I E B 2 1 2 3 4 5 6 Sous-problemes 4+5 A x1

Bounding (4 + 5) We realize that sub-problem 4 (région x 2 2) is not feasible in integers. By solving the relaxed LP associated with sub-problem 5, we find the optimum I with z = 365/9 = 40.555... x 1 = 40 9 = 4.444... x 2 = 1 we must branch on x 1, with the constraints 6. Problem 5 + constraint x 1 5 7. Problem 5 + constraint x 1 4.

Tree for (4+5)

Branch (6+7) We are faced with two new problems. As usual, we eliminate the fractionnary solution by branching it. We keep trying to scan the tree depth first, by testing one of the new cases (6 et 7). Arbitrarily we choose 7. The relaxed LP solution is now: z = 37 x 1 = 4 x 2 = 1 This solution is feasible in integer, this corresponds to point H. This is a candidate solution, that provides us with a lower bound on the final result. We stop branching from here.

Tree (7)

Bounding (6) Continuing depth first, we evaluate sub-problem 6. We find the following solution (point A). z = 40 x 1 = 5 x 2 = 0 This is also a candidate solution. Now our lower bound is improved to 40. Therefore candidate solution of problem 7 is not optimal We do not need to branch further from 6.

Tree (6)

Bounding (3) We backtrack to the solution for (3). We find the solution for F : x 1 = 3 x 2 = 3 z = 39 This result is less than 40, our current lower bound. This branch cannot produce a better result than the one we already have. We have now explored or bounded every node in the tree, so we have found our optimum: build 5 tables et 0 chairs for a profit of 40.

Arbre (3)

Node labelling The branch-and-bound algorithm labels all the points of the feasible region, some in a explicit and other in an implicit manner. For instance, point (x 1 = 2,x 2 = 3) is included in sub-problem 3, for which the optimum is (3,3). There is no point in actually evaluating it. The algorithm implements divide and conquer. It necessarily converges due to the fact that it always eliminate at least one point from the feasible region at each step, and these points are in finite numbers.

Sterilizing nodes 1. A note that is not necessarily to branch on is said to be sterile. There are several cases where this might happen: 1.1 The node is associated with a candidate solution. Branching on it will not improve it. 1.2 The node is associated with an unfeasible sub-problem. Branching on it will not make if any more feasible. 1.3 The z-value of the node is less than that of the best-known solution so far, even if it is not a candidate solution. Branching will not improve it.

Backtracking We can solve branch-and-bound problems either depth or breadth first. The latter would correspond to exploring all the subproblem at one level rather than one particular branch all the way to the bottom first. E.g., in the previous problem we would explore (3) before (4) or (5). In practice, depth first works better because doing so quickly converges to a candidate solution or an unfeasible subproblem, allowing branches to be sterilized quicker. Note : branch-and-bound is not a greedy algorithm: it does backtrack.

Solving mixed problems On mixed problems, we only branch on the integer variables!

Generalization of branch-and-bound The LP relaxed problem is only an heuristic. Sometimes can be replaced by something more appropriate Example : knapsack (see TD). Linked with A in combinatorial optimization.

Knapsack Reminder : a knapsack (problème de sac à dos) is a problem with a single constraint with x i {0,1} maxz = i c ix i i a ix i b Branching on x i yields a branch on x i = 0 and a branch on x i = 1. The LP relaxation is simplified by remarking that we can sort the variables in order of decreasing c i a i. The variables with the best ratio are preferable. See associated TD. A knapsack can also be solved with dynamic programming.

Planification Planification problems, with deadlines, and so on are very common. For instance : Length deadline task 1 6 8 task 2 4 4 task 3 5 12 task 4 8 16 The table is interpreted this way : task 1 required 6 days and must be completed by close of business on day 8. Each late day incurs penalties. We must minimize these.

Solution by branch and bound We can use the following variables : { 1 if task i is in position j x ij = 0 otherwise It is efficient to assign the last task first, and to bound the total minimal delay by summing the duration of all assigned and remaining tasks, minus the delay for the last task. For instance, if task 3 is the last, (x 34 = 1), a bound for the delay is at least 6+4+8+5 12 = 23 12 = 11.

Solution by B& B, next Then, in the tree, one branches by assigning more tasks before the last one (and so on). We bound by summing the estimated delays. For instance, if task 3 is last, and then task 4 is the one before last (penultimate), the total delay cannot be less than 11+(6+4+8 16) = 11+2 = 13. It is possible to check that the optimal scheduling is 2-1-3-4 with a total delay of 12 days.

Travelling Salesperson Problem Note the politically correct version... We have a number of cities we all want to visit at the lowest possible cost. Here is a cost matrix, where c ij represents the cost of going from city i to city j : city 1 city 2 city 3 city 4 city 5 city 1 0 132 217 164 58 city 2 132 0 290 201 79 city 3 217 290 0 113 303 city 4 164 201 113 0 196 city 5 58 79 303 196 0

TSP (II) The minimum cost trip is a Hamiltonian cycle. To solve by B&B, we need some means to branch and to bound. One solution is to transform the problem into an assignment one, with cost matrix c : Let the x ij be a set of binary variables. If x ij = 1 then the trip from city i to city j is done, 0 otherwise. We will learn how to solve assigmnent problem very efficiently in the next lecture. In this case, if x 12 = x 24 = x 45 = x 53 = x 31 = 1, then we chose the circuit 1-2-4-5-3-1. If the assignment solution produces a circuit then it is optimal (why?). However an assignment may not generat circuits, for instance one may obtain x 15 = x 21 = x 34 = x 43 = x 52 = 1, which has two non-connex subcircuit.

TSP (III) One must also impose i j. This is achieved with c ii = M a large number. We can for instance start from the assignment problem, then split by eliminating some sub-circuit. We do so by imposing than one or the other of an invalid sub-circuit be a large M. We split on whether we forbid either i to j or j to i. For instance, from the initial problem with the cost matrix given earlier (with c ii = M), the first assignment is x 15 = x 21 = x 34 = x 43 = x 52 = 1. We have two sub-circuit : 1-5-2-1 et 3-4-3. we can eliminate 3-4-3, either via imposing c 34 = M, or the converse c 43 = M. (Q: why is this legitimate?)

TSP (IV) We can relatively easily verify that the optimal solution is x 15 = x 24 = x 31 = x 43 = x 52 = 1, i.e. the circuit 1-5-2-4-3-1 for a cost z = 668.

Binary problems by implicit enumeration Binary problems are a large class (BP) in IP. Remark : any IP is expressible in BP (via decomposition over the powers of 2) There exist particular BP solutions for instance, for instance the implicit enumeration method : superior branches represent fixed variables. we branch on the variable that improves the solution the most (like in knapsack), as long as it is feasible. Even if a solution is unfeasible it will help bounding the solutions.

Sudoku See Matlab TP.

Conclusion The LP provides a relaxation for integer programming (IP) or mixed integer programming (MIP) problems All IP and MIP converge in finite time but complexity may be exponential. However the LP relaxation provides upper and lower bounds that improve as we explore branches. In some cases, a better bounding function can exist than the simplex, however the general formulation remains the same. quality and speed of result depends on this bounding function. Many links with heuristics A, some graph algorithms, etc. In general IP problems solvable by B&B are difficult, but not always.