Divide and Conquer Optimization problem: z = max{cx : x  S}

Slides:



Advertisements
Similar presentations
1 LP, extended maxflow, TRW OR: How to understand Vladimirs most recent work Ramin Zabih Cornell University.
Advertisements

Integer Optimization Basic Concepts Integer Linear Program(ILP): A linear program except that some or all of the decision variables must have integer.
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.
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.
5-1 Chapter 5 Tree Searching Strategies. 5-2 Satisfiability problem Tree representation of 8 assignments. If there are n variables x 1, x 2, …,x n, then.
Branch & Bound Algorithms
EMIS 8373: Integer Programming Valid Inequalities updated 4April 2011.
Sum of Subsets and Knapsack
6 - 1 § 6 The Searching Strategies e.g. satisfiability problem x1x1 x2x2 x3x3 FFF FFT FTF FTT TFF TFT TTF TTT.
Solving Integer Programs. Natural solution ideas that don’t work well Solution idea #1: Explicit enumeration: Try all possible solutions and pick the.
Dealing with NP-Complete Problems
Computational Methods for Management and Economics Carla Gomes
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.
Ch 13 – Backtracking + Branch-and-Bound
1 Tree Searching Strategies. 2 The procedure of solving many problems may be represented by trees. Therefore the solving of these problems becomes a tree.
Branch and Bound Algorithm for Solving Integer Linear Programming
5-1 Chapter 5 Tree Searching Strategies. 5-2 Breadth-first search (BFS) 8-puzzle problem The breadth-first search uses a queue to hold all expanded nodes.
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.
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
Operations Research Assistant Professor Dr. Sana’a Wafa Al-Sayegh 2 nd Semester ITGD4207 University of Palestine.
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.
Integer Programming Key characteristic of an Integer Program (IP) or Mixed Integer Linear Program (MILP): One or more of the decision variable must be.
Design and Analysis of Algorithms - Chapter 111 How to tackle those difficult problems... There are two principal approaches to tackling NP-hard problems.
Chapter 12 Coping with the Limitations of Algorithm Power Copyright © 2007 Pearson Addison-Wesley. All rights reserved.
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.
1 Chapter 4: Integer and Mixed-Integer Linear Programming Problems 4.1 Introduction to Integer and Mixed-Integer Linear Programming 4.2 Solving Integer.
WOOD 492 MODELLING FOR DECISION SUPPORT
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.
Branch and Bound Algorithms Present by Tina Yang Qianmei Feng.
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.
Chapter 2. Optimal Trees and Paths Combinatorial Optimization
CS 312: Algorithm Analysis Lecture #33: Branch and Bound, Job Assignment This work is licensed under a Creative Commons Attribution-Share Alike 3.0 Unported.
Integer Programming, Branch & Bound Method
CSCE350 Algorithms and Data Structure Lecture 21 Jianjun Hu Department of Computer Science and Engineering University of South Carolina
IE 312 Review 1. The Process 2 Problem Model Conclusions Problem Formulation Analysis.
Branch and Bound Searching Strategies
Chapter 6 Optimization Models with Integer Variables.
Solving IPs – Implicit Enumeration Similar to Binary IP Branch and Bound General Idea: Fixed variables – those for which a value has been fixed. Free Variable.
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.
The CPLEX Library: Mixed Integer Programming
Introduction to Operations Research
5.2 Mixed Integer Linear Programming
MILP algorithms: branch-and-bound and branch-and-cut
Branch and Bound.
5.2 Mixed Integer Linear Programming
EMIS 8373: Integer Programming
We have the following incomplete B&B tree:
Branch-and-Bound Algorithm for Integer Program
1.2 Guidelines for strong formulations
Branch-and-Bound Technique for Solving Integer Programs
1.2 Guidelines for strong formulations
5.2 Mixed Integer Linear Programming
Presentation transcript:

EMIS 8373: Integer Programming Refinements to LP-Based Branch-and-Bound updated 31 March 2009

Divide and Conquer Optimization problem: z = max{cx : x  S} Proposition: Let S = S1  S2  …  Sk be a decomposition of S into smaller sets, and let zk = max{cx : x  Sk} for k = 1, 2, …, K. Then z = maxk zk. Strategy: divide the feasible region into sub-regions and compare the optimal solutions from each sub-region.

Divide and Conquer Example Example: S  {0,1}3 S0 = {x  S: x1 = 0} S0 = {[0,0,0],[0,0,1],[0,1,0],[0,1,1]} S1 = {x  S: x1 = 1} S1 = {[1,0,0],[1,0,1],[1,1,0],[1,1,1]} S00 = {x  S0: x2 = 0}={[0,0,0],[0,0,1]} S01 = {x  S0: x2 = 1}={[0,1,0],[0,1,1]} S10 = {x  S1: x2 = 0}={[1,0,0],[1,0,1]} S11 = {x  S1: x2 = 1}={[1,1,0],[1,1,1]}

Enumeration Tree S x1= 0 x1= 1 S0 S1 x2= 0 x2= 1 x2= 0 x2= 1 S00 S01 In the worst case, a branch-and-bound procedure would have to visit all eight leaves of the enumeration tree to find z.

Implicit Enumeration Let ZU(Sk) be an upper bound on zk. Let ZL(Sk) be a lower bound on zk. There is at least one solution in Sk with objective function value ZL(Sk). Implicit enumeration uses the following facts to eliminate some branches of the enumeration tree ZL(Sk)  zk  ZU(Sk), maxk {ZL(Sk)}  z  maxk {ZU(Sk)}

Pruning by Optimality 13  z = max{cx : x  S}  27. ZU(S) = 27 ZL(S) = 13 ZU(S) = 25 S ZL(S) = 20 ZU(S0) = 20 ZL(S0) = 20 ZU(S1) = 25 ZL(S1) = 15 S0 S1 13  z = max{cx : x  S}  27. 20  z0  20  z0 = 20. Prune (fathom) S0. z = max{z0, z1}  20  z = max{cx : x  S}  27 z0 = 20, z1  25  z  max{20, 25}

Pruning by Bounds 13  z = max{cx : x  S}  27. ZU(S) = 27 ZL(S) = 13 ZU(S) = 26 S ZL(S) = 18 ZL(S) = 21 ZU(S0) = 20 ZL(S0) = 18 ZU(S1) = 26 ZL(S1) = 21 S0 S1 13  z = max{cx : x  S}  27. 18  z = max{cx : x  S}  27. 21  z = max{cx : x  S}  26. S0 can be pruned since the best solution in S0 will be worse than the worst solution in S1.

LP-Based Branch-and-Bound (Maximization) Uses the LP relaxation at each node to find a dual (upper) bound Uses feasible IP solutions for primal (lower) bounds primal bound (S)  z  dual bound (S) Prunes by Optimality: dual bound (Sk) = primal bound (Sk) Bound: dual bound (Sk) < primal bound (S) Infeasibility of LP sub-problem Stopping criteria Optimality: dual bound (S) = primal bound (S) Optimality gap: (dual bound (S) – primal bound (S))/dual bound (S)  

LP-Based Branch-and-Bound (Minimization) Uses the LP relaxation at each node to find a dual (lower) bound Uses feasible IP solutions for primal (upper) bounds dual bound (S)  z  primal bound (S) Prunes by Optimality: dual bound (Sk) = primal bound (Sk) Bound: dual bound (Sk) > primal bound (S) Infeasibility of LP sub-problem Stopping criteria Optimality: dual bound (S) = primal bound (S) Optimality gap: (primal bound (S) – dual bound (S))/dual bound (S)  

Algorithmic Control Which active node should be selected for the next branching step? Which fractional variable should be branched on at that node? Should we investigate the down branch first or the up branch? How should we solve the subproblem at the selected node? Alternative LP algorithms

Node Selection Criteria CPLEX provides node-selection control via the nodesel and backtrack parameters nodesel i (i = 1 or 2, default 1) CPLEX associates a value with each node and choose the next active node based on this value To use the bound from the optimal LP solution at the node set nodesel=1 When nodesel=2, the node’s value is based on an estimate CPLEX makes of the best IP solution that could be found by branching on that node Best bound (nodesel=1) tends to find better solutions earlier in the process, but nodesel=2 may be faster overall if the objective function values are “tightly clustered”.

Backtracking Depending on the value at the most recently created node, CPLEX either braches at the active node with the best value or else it backtracks. backtrack=r (any number, default 0.85) backtrack=0 does a pure depth-first search (DFS) Successive LP’s are easier (faster) to solve Finds feasible solutions faster Lower values > 0 favor backtracking (BFS) and values > 1 discourage it. Can help move the search to a better part of the tree rather than (possibly) wasting time considering the descendents of a one node.

Experiments with nodesel and backtrack

Variable Selection varesel=i (i  {-1, 0, 1, 2, 3 }, default 0) When i=1 the variable with largest fractional part is selected When i=-1 the variable with the smallest fractional part is selected When i=2 an estimate of how much the objective function will degrade if each variable is forced to an adjacent integer is used to select the variable When i=3 “strong branching” is used Select the branch with the “most promising” partial solution Requires the most time per node When i = 0 a proprietary heuristic is used

Branching Rules If the model contains more than one type of integer variable (e.g., integer x and binary y), it may be helpful to use a branching rule that gives a higher priority to one type of variable of the other. Often useful for xij  M yj AMPL commands: option mip_priorities ‘y 100 x 1’; option cplexamp_auxfiles c; CPLEX parameter branch=i Use branch = 1 to always take the up branch first Use branch = -1 to always take the down branch first