15.053Tuesday, April 9 Branch and Bound Handouts: Lecture Notes.

Slides:



Advertisements
Similar presentations
Thursday, April 11 Some more applications of integer
Advertisements

Branch-and-Bound Technique for Solving Integer Programs
Solving IPs – Cutting Plane Algorithm General Idea: Begin by solving the LP relaxation of the IP problem. If the LP relaxation results in an integer solution,
Branch-and-Bound In this handout,  Summary of branch-and-bound for integer programs Updating the lower and upper bounds for OPT(IP) Summary of fathoming.
DMOR Branch and bound. Integer programming Modelling logical constraints and making them linear: – Conjuction – Disjunction – Implication – Logical constraints.
1 Cutting Plane Technique for Solving Integer Programs.
EE 553 Integer Programming
Lecture 10: Integer Programming & Branch-and-Bound
Progress in Linear Programming Based Branch-and-Bound Algorithms
Water Resources Development and Management Optimization (Integer Programming) CVEN 5393 Mar 11, 2013.
1 State of the art for TSP TSP instances of thousand of cities can be consistently solved to optimality. Instances of up to cities have been solved:
Integer Programming 3 Brief Review of Branch and Bound
Solving Integer Programs. Natural solution ideas that don’t work well Solution idea #1: Explicit enumeration: Try all possible solutions and pick the.
Computational Methods for Management and Economics Carla Gomes
Approximation Algorithms
1 Maximum matching Max Flow Shortest paths Min Cost Flow Linear Programming Mixed Integer Linear Programming Worst case polynomial time by Local Search.
1 A Second Stage Network Recourse Problem in Stochastic Airline Crew Scheduling Joyce W. Yen University of Michigan John R. Birge Northwestern University.
Linear Programming Integer Linear Models. When Variables Have To Be Integers Example – one time production decisions –Fractional values make no sense.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 5: February 2, 2009 Architecture Synthesis (Provisioning, Allocation)
Explorations in Artificial Intelligence Prof. Carla P. Gomes Module 7 Part 3 Integer Programming.
Review of Reservoir Problem OR753 October 29, 2014 Remote Sensing and GISc, IST.
1 Contents college 3 en 4 Book: Appendix A.1, A.3, A.4, §3.4, §3.5, §4.1, §4.2, §4.4, §4.6 (not: §3.6 - §3.8, §4.2 - §4.3) Extra literature on resource.
MIT and James Orlin © Chapter 3. The simplex algorithm Putting Linear Programs into standard form Introduction to Simplex Algorithm.
Solver & Optimization Problems n An optimization problem is a problem in which we wish to determine the best values for decision variables that will maximize.
LP formulation of Economic Dispatch
Daniel Kroening and Ofer Strichman Decision Procedures An Algorithmic Point of View Deciding ILPs with Branch & Bound ILP References: ‘Integer Programming’
(Not in text).  An LP with additional constraints requiring that all the variables be integers is called an all-integer linear program (IP).  The LP.
1 Lecture 4 Maximal Flow Problems Set Covering Problems.
Integer programming Branch & bound algorithm ( B&B )
Decision Procedures An Algorithmic Point of View
Chapter 11: Hillier and Lieberman Dr. Hurley’s AGB 328 Course
An Example in the Design and Analysis of an Algorithm Demonstrates: -- Recurrence Relations -- Design Techniques -- The fact that analysis provide useful.
Spreadsheet Modeling & Decision Analysis:
Operations Research Assistant Professor Dr. Sana’a Wafa Al-Sayegh 2 nd Semester ITGD4207 University of Palestine.
Chapter 9 Integer Programming
Types of IP Models All-integer linear programs Mixed integer linear programs (MILP) Binary integer linear programs, mixed or all integer: some or all of.
Spreadsheet Modeling and Decision Analysis, 3e, by Cliff Ragsdale. © 2001 South-Western/Thomson Learning. 6-1 Integer Linear Programming Chapter 6.
Integer Programming Key characteristic of an Integer Program (IP) or Mixed Integer Linear Program (MILP): One or more of the decision variable must be.
Notes 5IE 3121 Knapsack Model Intuitive idea: what is the most valuable collection of items that can be fit into a backpack?
MILP algorithms: branch-and-bound and branch-and-cut
WOOD 492 MODELLING FOR DECISION SUPPORT
Thursday, May 9 Heuristic Search: methods for solving difficult optimization problems Handouts: Lecture Notes See the introduction to the paper.
Branch-and-Cut Valid inequality: an inequality satisfied by all feasible solutions Cut: a valid inequality that is not part of the current formulation.
Divide and Conquer Optimization problem: z = max{cx : x  S}
OR Chapter 8. General LP Problems Converting other forms to general LP problem : min c’x  - max (-c)’x   = by adding a nonnegative slack variable.
Chapter 2. Optimal Trees and Paths Combinatorial Optimization
IE 312 Review 1. The Process 2 Problem Model Conclusions Problem Formulation Analysis.
Introduction to Integer Programming Integer programming models Thursday, April 4 Handouts: Lecture Notes.
Chapter 6 Optimization Models with Integer Variables.
Water Resources Development and Management Optimization (Integer and Mixed Integer Programming) CVEN 5393 Mar 28, 2011.
Integer Programming An integer linear program (ILP) is defined exactly as a linear program except that values of variables in a feasible solution have.
Signal processing and Networking for Big Data Applications: Lecture 9 Mix Integer Programming: Benders decomposition And Branch & Bound NOTE: To change.
Solver & Optimization Problems
EE/Econ 458 Integer Programming
The CPLEX Library: Mixed Integer Programming
Introduction to Operations Research
MILP algorithms: branch-and-bound and branch-and-cut
MIP Tools Branch and Cut with Callbacks Lazy Constraint Callback
Integer Linear Programming
ENGM 435/535 Integer Programming.
Cynthia Phillips (Sandia National Laboratories)
Linear Programming Integer Linear Models.
Intersection Cuts from Bilinear Disjunctions
We have the following incomplete B&B tree:
Branch-and-Bound Algorithm for Integer Program
Integer LP: Algorithms
Branch-and-Bound Technique for Solving Integer Programs
Integer Linear Programming
Integer Programming (IP)
Presentation transcript:

15.053Tuesday, April 9 Branch and Bound Handouts: Lecture Notes

Overview of Techniques for Solving Integer Programs Enumeration Techniques – Complete Enumeration list all “solutions” and choose the best – Branch and Bound Implicitly search all solutions, but cleverly eliminate the vast majority before they are even searched – Implicit Enumeration Branch and Bound applied to binary variables Cutting Plane Techniques – Use LP to solve integer programs by adding constraints to eliminate the fractional solutions.

Capital Budgeting Example Investment budget = $14,000 Investment Cash Required (1000s) NPV added (1000s) maximize subject to x j binary for j = 1 to 6

Complete Enumeration Systematically considers all possible values of the decision variables. – If there are n binary variables, there are 2 n different ways. Usual idea: iteratively break the problem in two. At the first iteration, we consider separately the case that x 1 = 0 and x 1 = 1.

An Enumeration Tree Original problem

On complete enumeration Suppose that we could evaluate 1 billion solutions per second. Let n = number of binary variables Solutions times – n = 30, 1 second – n = 40, 17 minutes – n = days – n = years

On complete enumeration Suppose that we could evaluate 1 trillion solutions per second, and instantaneously eliminate % of all solutions as not worth considering Let n = number of binary variables Solutions times – n = 70, 1 second – n = 80, 17 minutes – n = days – n = years

Branch and Bound The essential idea: search the enumeration tree, but at each node 1. Solve the linear program at the node 2. Eliminate the subtree (fathom it) if 1. The solution is integer (there is no need to go further) or 2. The best solution in the subtree cannot be as good as the best available solution (the incumbent) or 3. There is no feasible solution

Branch and Bound Node 1 is the original LP Relaxation maximize subject to Solution at node 1: The IP cannot have value higher than 44 3/7.

Branch and Bound Node 2 is the original LP Relaxation plus the constraint x 1 = 0. maximize subject to Solution at node 2:

Branch and Bound Node 3 is the original LP Relaxation plus the constraint x 1 = 1. The solution at node 1 was Note: it was the best solution with no constraint on x 1. So, it is also the solution for node 3. (If you add a constraint, and the old optimal solution is feasible, then it is still optimal.)

Branch and Bound Node 4 is the original LP Relaxation plus the constraints x 1 = 0, x 2 = 0. Solution at node 4: z = 42 Our first incumbent solution! No further searching from node 4 because there cannot be a better integer solution.

Branch and Bound The incumbent solution has value 42 We next solved the LP’s associated with nodes 5, 6, and 7 No new integer solutions were found.

Branch and Bound The incumbent solution has value 42 We next solved the LP’s associated with nodes 8 -13

Summary so far We have solved 13 different linear programs so far. – One integer solution found – One subtree fathomed (pruned) because the solution was integer (node 4) – One subtree fathomed because the solution was infeasible (node 13) – No subtrees fathomed because of the bound

Branch and Bound The incumbent solution has value 42 We next solved the LP’s associated with the next nodes. We can fathom the node with z = Why?

Getting a better bound The bound at each node is obtained by solving an LP. But we know the best integer solution has an integer objective value. If the best integer valued solution for a node is at most 42.66, then we know the best bound is at most 42. Other bounds can also be rounded down.

Branch and Bound The incumbent solution has value 42

Branch and Bound The incumbent solution has value 42

Branch and Bound The incumbent solution has value 42 We found a new incumbent solution!

Branch and Bound The incumbent solution has value 43 We found a new incumbent solution!

Branch and Bound The incumbent solution has value 43 If we had found this incumbent earlier, we could have saved some searching.

Finishing Up The incumbent solution has value 43

Lessons Learned Branch and Bound can speed up the search – Only 25 nodes (linear programs) were evaluated – Other nodes were fathomed Obtaining a good incumbent earlier can be valuable – only 19 nodes would have been evaluated. Solve linear programs faster, because we start with an excellent or optimal solution – uses a technique called the dual simplex method Obtaining better bounds can be valuable. – We sometimes use properties that are obvious to us, such as the fact that integer solutions have integer solution values

Branch and Bound Notation: – z* = optimal integer solution value – Subdivision: a node of the B&B Tree – Incumbent: the best solution on hand – z I : value of the incumbent – z LP : value of the LP relaxation of the current node – LIST: the collection of active (not fathomed) nodes – Children of a node: the two problems created for a node, e.g., by saying x j = 1 or x j = 0. Initialization: LIST = {original problem} Incumbent: = ∅ z I = -∞

Branch and Bound Algorithm INITIALIZE SELECT: If LIST = ∅, then the Incumbent is optimal if it exists, and the problem is infeasible if no incumbent exists; else, let S be a subdivision from LIST. Let x LP be the optimal solution to S Let z LP = its objective value CASE 1. z LP = -∞ (the LP is infeasible) Remove S from LIST (fathom it) Return to SELECT

CASE 2. -∞ < z LP <= z I. That is, the LP is dominated by the incumbent) Then remove S from LIST (fathom it) Return to SELECT Branch and Bound Algorithm INITIALIZE SELECT: If LIST = ∅, then the Incumbent is optimal if it exists, and the problem is infeasible if no incumbent exists; else, let S be a subdivision from LIST. Let x LP be the optimal solution to S Let z LP = its objective value

CASE 2. -∞ < z LP <= z I. That is, the LP is dominated by the incumbent) Then remove S from LIST (fathom it) Return to SELECT Branch and Bound Algorithm INITIALIZE SELECT: If LIST = ∅, then the Incumbent is optimal if it exists, and the problem is infeasible if no incumbent exists; else, let S be a subdivision from LIST. Let x LP be the optimal solution to S Let z LP = its objective value

CASE 3. z I < z LP and x LP is integral. That is, the LP solution is integral and dominates the incumbent. Then Incumbent := x LP ; z I := Z lp Remove S from LIST (fathomed by integrality) Return to SELECT Branch and Bound Algorithm INITIALIZE SELECT: If LIST = ∅, then the Incumbent is optimal if it exists, and the problem is infeasible if no incumbent exists; else, let S be a subdivision from LIST. Let x LP be the optimal solution to S Let z LP = its objective value

CASE 4. z I < z LP and x LP is not integral. There is not enough information to fathom S Remove S from LIST Add the children of S to LIST Return to SELECT Branch and Bound Algorithm INITIALIZE SELECT: If LIST = ∅, then the Incumbent is optimal if it exists, and the problem is infeasible if no incumbent exists; else, let S be a subdivision from LIST. Let x LP be the optimal solution to S Let z LP = its objective value

Different Selection Rules are Possible Rule of Thumb 1: Don’t let LIST get too big (the solutions must be stored). So, prefer nodes that are further down in the tree. Rule of Thumb 2: Pick a node of LIST that is likely to lead to an improved incumbent. Sometimes special heuristics are used to come up with a good incumbent.

Branching One does not have to have the B&B tree be symmetric, and one does not select subtrees by considering variables in order. Choosing how to branch so as to reduce running time is largely “art” and based on experience.

Different Branching Rules are Possible Branching: determining children for a node. There are many choices. Rule of thumb 1: if it appears clear that x j = 1 in an optimal solution, it is often good to branch on x j = 0 vs x j = 1. – The hope is that a subdivision with x j = 0 can be pruned. Rule of thumb 2: branching on important variables is worthwhile – e.g., in the location problem, branch on the plant location variables first

Different Bounding Techniques are Possible We use the bound obtained by dropping the integrality constraints (LP relaxation). There are other choices. Key tradeoff for bounds: time to obtain a bound vs quality of the bound. If one can obtain a bound much quicker, sometimes we would be willing to get a bound that is worse It usually is worthwhile to get a bound that is better, so long as it doesn’t take too long (see next lecture)

What if the variables are general integer variables? One can choose children as follows: – child 1: x 1 ≤ 3 (or x j ≤ k) – child 2 x 1 ≥ 4 (or x j ≥ k+1) How would one choose the variable j and the value k – A common choice would be to take a fractional value from x LP. e.g., if x 7 = 5.62, then we may branch on x 7 ≤ 5 and x 7 ≥ 6. – Other choices are also possible.

Summary Branch and Bound is the standard way of solving IPs to optimality. There is art to making it work well in practice. Much of the art is built into state-of-the-art solvers such as CPLEX.

A bad example for implicit enumeration maximize subject to xi ∈ {0,1} for i = 1 to 100. Why is this a bad example? What would happen if we used branch and bound, as described earlier?