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.

Slides:



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

Integer Linear Programming
Branch-and-Bound Technique for Solving Integer Programs
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
Progress in Linear Programming Based Branch-and-Bound Algorithms
Water Resources Development and Management Optimization (Integer Programming) CVEN 5393 Mar 11, 2013.
Branch & Bound Algorithms
Vehicle Routing & Scheduling: Part 1
Sum of Subsets and Knapsack
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.
Mathematical Modeling and Optimization: Summary of “Big Ideas”
Computational Methods for Management and Economics Carla Gomes
Solution methods for NP-hard Discrete Optimization Problems.
1 Branch and Bound Searching Strategies 2 Branch-and-bound strategy 2 mechanisms: A mechanism to generate branches A mechanism to generate a bound so.
Solution methods for Discrete Optimization Problems.
Backtracking.
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’
Integer programming Branch & bound algorithm ( B&B )
Decision Procedures An Algorithmic Point of View
Mathematical Modeling and Optimization: Summary of “Big Ideas”
1 Introduction to Approximation Algorithms. 2 NP-completeness Do your best then.
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.
1 Chapter 11 A number of important scheduling problems... require the study of an astronomical number of arrangements to determine which one is best....
MILP algorithms: branch-and-bound and branch-and-cut
Tobias Achterberg Konrad-Zuse-Zentrum für Informationstechnik Berlin Branching SCIP Workshop at ZIB October 2007.
WOOD 492 MODELLING FOR DECISION SUPPORT
Heuristic Optimization Methods Greedy algorithms, Approximation algorithms, and GRASP.
Honors Track: Competitive Programming & Problem Solving Optimization Problems Kevin Verbeek.
Cliff Shaffer Computer Science Computational Complexity.
Thursday, May 9 Heuristic Search: methods for solving difficult optimization problems Handouts: Lecture Notes See the introduction to the paper.
Applications of Dynamic Programming and Heuristics to the Traveling Salesman Problem ERIC SALMON & JOSEPH SEWELL.
15.053Tuesday, April 9 Branch and Bound Handouts: Lecture Notes.
Column Generation By Soumitra Pal Under the guidance of Prof. A. G. Ranade.
1 Branch and Bound Searching Strategies Updated: 12/27/2010.
Integer Linear Programming Terms Pure integer programming mixed integer programming 0-1 integer programming LP relaxation of the IP Upper bound O.F. Lower.
Integer Programming Li Xiaolei. Introduction to Integer Programming An IP in which all variables are required to be integers is called a pure integer.
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.
1.2 Guidelines for strong formulations  Running time for LP usually depends on m and n ( number of iterations O(m), O(log n)). Not critically depend on.
Branch and Bound Searching Strategies
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.
5.3 Mixed-Integer Nonlinear Programming (MINLP) Models
Backtracking And Branch And Bound
The CPLEX Library: Mixed Integer Programming
Introduction to Operations Research
5.3 Mixed Integer Nonlinear Programming Models
Chapter 6. Large Scale Optimization
Integer Linear Programming
Artificial Intelligence
ENGM 435/535 Integer Programming.
Cynthia Phillips (Sandia National Laboratories)
Integer Linear Programming
We have the following incomplete B&B tree:
Solution methods for NP-hard Discrete Optimization Problems
Branch-and-Bound Algorithm for Integer Program
1.2 Guidelines for strong formulations
Integer LP: Algorithms
Chapter 6. Large Scale Optimization
Branch-and-Bound Technique for Solving Integer Programs
1.2 Guidelines for strong formulations
Discrete Optimization
Presentation transcript:

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 criteria Which variable to branch on? Which open subproblem to solve first? Optimality test  Branch-and-bound applied to binary integer programs mixed integer programs

Examples of the main steps of the algorithm will be given based on the following solution tree All Z=75.4 S1 Z=68.7 S2 Z=70.1 S3 Z=60.5 S4 Infeas. S5 Z=68.3 S6 Z=64.5 S7 Z=52 S8 Z=54.4 S9 Z=66.7 S10 Z=59 S11 Z=62.9 F2 int F3 F1 int F3

Updating the lower and upper bounds for OPT(IP)  The best integer solution found so far is stored as incumbent. The optimal value of the incumbent is denoted by Z*. Z* is the tightest lower bound we have for OPT(IP) in the current iteration: OPT(IP) ≥ Z*. In our example, Z* = 59 (optimal value of S10).  Consider all those subproblems such that (i) the subproblem is unfathomed; (ii) at least one of its child-subproblems is not solved yet. In our example, those subproblems are S6, S9, S11. Let Z’ be the largest LP optimal value for this kind of subproblems. Then Z’ is the tightest upper bound for OPT(IP) in the current iteration: OPT(IP)  Z’. In our example, Z’ = 66.7 (LP optimal value of S9).

Summary of fathoming criteria Fathom a subproblem if at least one of the following is true:  Criterion F1: The LP optimal value of the subproblem is  Z*, where Z* is the optimal value of the current incumbent. In our example, S8 is fathomed based on F1 (54.4 < Z*=59).  Criterion F2: The subproblem is infeasible. In our example, S4 is fathomed based on F2.  Criterion F3: The optimal solution of the subproblem is integral. In our example, S7 and S10 are fathomed based on F3.

Which open (unfathomed) subproblem to solve first? Possible natural choices:  Option 1: The subproblem with the best LP value. This subproblem is the most promising one  to create an incumbent with higher Z* value;  to contain an optimal IP solution.  Option 2: The most recently created subproblem. We don’t need to start the simplex method from scratch to solve this subproblem; it is solved by reoptimizing the solution of its parent-subproblem. The second option is normally the preferred choice because it makes the algorithm more time-efficient.

Summary of branch-and-bound Steps for each iteration: 1)Branching: Among the unfathomed subproblems, select the one that was created most recently. (Break ties according to which has larger LP value.) Choose a variable x i which has a noninteger value x i * in the LP solution of the subproblem. Create two new subproblems by adding the respective constraints x i   x i *  and x i ≥  x i * . 2)Bounding: Solve the new subproblems, record their LP solutions. Based on the LP values, update the incumbent, and the lower and upper bounds for OPT(IP) if necessary. 3)Fathoming: For each new subproblem, apply the three fathoming tests. Discard the subproblems that are fathomed. 4)Optimality test: If there are no unfathomed subproblems left then return the current incumbent as optimal solution (if there is no incumbent then IP is infeasible.) Otherwise, perform another iteration.

Finding a first incumbent quickly Recall that having an incumbent allows us to fathom subproblems (Criterion F1). But it might take many iterations until branch-and-bound finds a first incumbent (a subproblem which has an integer LP solution). To accelerate the process, a first incumbent is often found by applying a fast heuristic algorithm to the problem. For example, to solve the Traveling Salesman Problem by Branch-and-Bound, we can start by applying the Nearest Neighbor algorithm to find a first incumbent.

How the upper bound on OPT(IP) can be used In practice, branch-and-bound is pretty fast most of the time. But sometimes it might get really slow. (In the worst-case scenario it is still exponential-time.) What can we do if the branch-and-bound couldn’t find an optimal solution after struggling several hours on the problem? Recall the tightest lower and upper bounds on OPT(IP) in the current iteration: Z*  OPT(IP)  Z’. What can we say about the current incumbent based on these bounds? Let k = Z’ / Z*. Then That is, the current incumbent is at most k times worse than the optimal solution. If k is close to 1, then the current incumbent will be a pretty good solution. E.g., if Z*=100, Z’=102, then the current incumbent is at most 1.02 times worse than the optimal solution.

Branch-and-bound applied to binary integer programs The only modification: When branching on a binary variable x i, which has a fractional value x i * in the current LP solution, the two new subproblems are created by setting x i = 0 and x i = 1. Branch-and-bound applied to mixed integer programs The only modification: Branch only on integer-restricted variables.