Computational Integer Programming. Lecture 12: Branch and Cut. Dr. Ted Ralphs

Similar documents
Integer Programming ISE 418. Lecture 7. Dr. Ted Ralphs

3 INTEGER LINEAR PROGRAMMING

Noncommercial Software for Mixed-Integer Linear Programming

On Mixed-Integer (Linear) Programming and its connection with Data Science

Experiments On General Disjunctions

Integer Programming Theory

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

5.3 Cutting plane methods and Gomory fractional cuts

Introduction to Mathematical Programming IE496. Final Review. Dr. Ted Ralphs

Unit.9 Integer Programming

How to use your favorite MIP Solver: modeling, solving, cannibalizing. Andrea Lodi University of Bologna, Italy

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

February 19, Integer programming. Outline. Problem formulation. Branch-andbound

M2 ORO: Advanced Integer Programming. Part IV. Solving MILP (1) easy IP. Outline. Sophie Demassey. October 10, 2011

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

The MIP-Solving-Framework SCIP

56:272 Integer Programming & Network Flows Final Examination -- December 14, 1998

MVE165/MMG630, Applied Optimization Lecture 8 Integer linear programming algorithms. Ann-Brith Strömberg

The SYMPHONY Callable Library for Mixed-Integer Linear Programming

Progress in Linear Programming-Based Algorithms for Integer Programming: An Exposition

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

A Computational Study of Conflict Graphs and Aggressive Cut Separation in Integer Programming

Selected Topics in Column Generation

Integer and Combinatorial Optimization

Algorithms for Integer Programming

9.4 SOME CHARACTERISTICS OF INTEGER PROGRAMS A SAMPLE PROBLEM

Financial Optimization ISE 347/447. Lecture 13. Dr. Ted Ralphs

Part 4. Decomposition Algorithms Dantzig-Wolf Decomposition Algorithm

Linear Programming. Course review MS-E2140. v. 1.1

Martin W.P. Savelsbergh. Georgia Institute of Technology. School of Industrial and Systems Engineering

Integer Programming Chapter 9

Algorithms for Decision Support. Integer linear programming models

Lecture 3. Corner Polyhedron, Intersection Cuts, Maximal Lattice-Free Convex Sets. Tepper School of Business Carnegie Mellon University, Pittsburgh

Solutions for Operations Research Final Exam

(Duality), Warm Starting, and Sensitivity Analysis for MILP

Improved Gomory Cuts for Primal Cutting Plane Algorithms

Parallel Branch & Bound

Algorithms II MIP Details

Fundamentals of Integer Programming

The SYMPHONY Callable Library for Mixed-Integer Linear Programming

A Generic Separation Algorithm and Its Application to the Vehicle Routing Problem

TIM 206 Lecture Notes Integer Programming

Machine Learning for Software Engineering

15.083J Integer Programming and Combinatorial Optimization Fall Enumerative Methods

SAS/OR 14.1 User s Guide: Mathematical Programming. The Mixed Integer Linear Programming Solver

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

Graphs and Network Flows IE411. Lecture 20. Dr. Ted Ralphs

The Heuristic (Dark) Side of MIP Solvers. Asja Derviskadic, EPFL Vit Prochazka, NHH Christoph Schaefer, EPFL

Conflict Analysis in Mixed Integer Programming

Heuristics in Commercial MIP Solvers Part I (Heuristics in IBM CPLEX)

Optimization Methods in Management Science

Exploiting Degeneracy in MIP

Integer Programming. Xi Chen. Department of Management Science and Engineering International Business School Beijing Foreign Studies University

DETERMINISTIC OPERATIONS RESEARCH

Department of Mathematics Oleg Burdakov of 30 October Consider the following linear programming problem (LP):

The Gurobi Optimizer. Bob Bixby

The Mixed Integer Linear Programming Solver

Pivot and Gomory Cut. A MIP Feasibility Heuristic NSERC

A. Atamturk. G.L. Nemhauser. M.W.P. Savelsbergh. Georgia Institute of Technology. School of Industrial and Systems Engineering.

4.1 The original problem and the optimal tableau

4 Integer Linear Programming (ILP)

Some Advanced Topics in Linear Programming

Graphs and Network Flows IE411 Lecture 20

Advanced Operations Research Techniques IE316. Quiz 2 Review. Dr. Ted Ralphs

lpsymphony - Integer Linear Programming in R

Section Notes 4. Duality, Sensitivity, and the Dual Simplex Algorithm. Applied Math / Engineering Sciences 121. Week of October 8, 2018

Combining Lift-and-Project and Reduce-and-Split

THEORY OF LINEAR AND INTEGER PROGRAMMING

BCN Decision and Risk Analysis. Syed M. Ahmed, Ph.D.

Discrete Optimization. Lecture Notes 2

SUBSTITUTING GOMORY CUTTING PLANE METHOD TOWARDS BALAS ALGORITHM FOR SOLVING BINARY LINEAR PROGRAMMING

Parallel Branch, Cut, and Price for Large-Scale Discrete Optimization

From the Separation to the Intersection Sub-problem in Benders Decomposition Models with Prohibitively-Many Constraints

Column Generation Method for an Agent Scheduling Problem

SAS/OR 14.2 User s Guide: Mathematical Programming. The OPTMILP Procedure

3 No-Wait Job Shops with Variable Processing Times

Advanced Operations Research Techniques IE316. Quiz 1 Review. Dr. Ted Ralphs

Cutting Planes for Some Nonconvex Combinatorial Optimization Problems

On the selection of Benders cuts

MATHEMATICS II: COLLECTION OF EXERCISES AND PROBLEMS

Linear & Integer Programming: A Decade of Computation

Motivation for Heuristics

Solving lexicographic multiobjective MIPs with Branch-Cut-Price

SUBSTITUTING GOMORY CUTTING PLANE METHOD TOWARDS BALAS ALGORITHM FOR SOLVING BINARY LINEAR PROGRAMMING

Integer Programming! Using linear programming to solve discrete problems

Parallel Solvers for Mixed Integer Linear Optimization

CS 473: Algorithms. Ruta Mehta. Spring University of Illinois, Urbana-Champaign. Ruta (UIUC) CS473 1 Spring / 36

Column Generation Based Primal Heuristics

5. DUAL LP, SOLUTION INTERPRETATION, AND POST-OPTIMALITY

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

The Gurobi Solver V1.0

Homework 2: Multi-unit combinatorial auctions (due Nov. 7 before class)

On Applying Cutting Planes in DLL-Based Algorithms for Pseudo-Boolean Optimization

Heuristics in MILP. Group 1 D. Assouline, N. Molyneaux, B. Morén. Supervisors: Michel Bierlaire, Andrea Lodi. Zinal 2017 Winter School

GENERAL ASSIGNMENT PROBLEM via Branch and Price JOHN AND LEI

Approximation Algorithms

MATLAB Solution of Linear Programming Problems

Mathematical and Algorithmic Foundations Linear Programming and Matchings

A LARGE SCALE INTEGER AND COMBINATORIAL OPTIMIZER

2 is not feasible if rounded. x =0,x 2

Transcription:

Computational Integer Programming Lecture 12: Branch and Cut Dr. Ted Ralphs

Computational MILP Lecture 12 1 Reading for This Lecture Wolsey Section 9.6 Nemhauser and Wolsey Section II.6 Martin Computational Issues for Branch-and-Cut Algorithms (2001) Linderoth and Ralphs Noncommercial Software for Mixed-Integer Linear Programming M.W.P. Savelsbergh Preprocessing and Probing for Mixed Integer Programming Problems. T. Berthold Primal Heuristics for Mixed Integer Programs. K. Wolter Implementations of Cutting Plane separators for Mixed Integer Programs. A. Atamturk, G. Nemhauser, and M.W.P. Savelsburgh, Conflict Graphs in Solving Integer Programming Problems.

Computational MILP Lecture 12 2 Branch and Cut Branch and cut is an LP-based branch-and-bound scheme in which the linear programming relaxations are augmented by valid inequalities. The valid inequalities are generated dynamically using separation procedures. We iteratively try to improve the current bound by adding valid inequalities. In practice, branch and cut is the method typically used for solving difficult mixed-integer linear programs. It is a very complex amalgamation of techniques whose application must be balanced very carefully.

Computational MILP Lecture 12 3 Computational Components of Branch and Cut Modular algorithmic components Initial preprocessing and root node processing Bounding Cut generation Primal heuristics Node pre/post-processing (bound improvement, conflict analysis) Node pre-bounding Overall algorithmic strategy Search strategy Bounding strategy What cuts to generate and when What primal heuristics to run and when Management of the LP relaxation Branching strategy When to branch How to branch (which disjunctions) Relative amount of effort spent on choosing branch

Computational MILP Lecture 12 4 Tradeoffs Control of branch and cut is about tradeoffs. We are combining many techniques and must adjust levels of effort of each to accomplish an end goal. Algorithmic control is an optimization problem in itself! Many algorithmic choices can be formally cast as optimization problems. What is the objective? Time to optimality Time to first good solution Balance of both?

Computational MILP Lecture 12 5 Preprocessing and Probing Often, it is possible to simplify a model using logical arguments. Most commercial IP solvers have a built-in preprocessor. Effective preprocessing can pay large dividends. Let the upper and lower bounds on x j be u j and l j. The most basic type of preprocessing is calculating implied bounds. Let (π, π 0 ) be a valid inequality. If π 1 > 0, then x 1 (π 0 π j l j π j u j )/π 1 j:π j >0 j:π j <0 If π 1 < 0, then x 1 (π 0 π j l j π j u j )/π 1 j:π j >0 j:π j <0

Computational MILP Lecture 12 6 Basic Preprocessing Again, let (π, π 0 ) be any valid inequality for S. The constraint πx π 0 is redundant if π j u j + π j l j π 0. j:π j >0 j:π j <0 S is empty (IP is infeasible) if π j l j + π j u j > π 0. j:π j >0 j:π j <0 For any IP of the form max{cx Ax b, l x u}, x Z n, If a ij 0 i [1..m] and c j < 0, then x j = l j in any optimal solution. If a ij 0 i [1..m] and c j > 0, then x j = u j in any optimal solution.

Computational MILP Lecture 12 7 Probing for Integer Programs It is also possible in many cases to fix variables or generate new valid inequalities based on logical implications. Consider (π, π 0 ), a valid inequality for 0-1 integer program. If π k > 0 and π k + j:π j <0 π j > π 0, then we can fix x k to zero. Similarly, if π k < 0 and j:π j <0,j k π j > π 0, then we can fix x k to one. Example: Generating logical inequalities

Computational MILP Lecture 12 8 Improving Coefficients Suppose again that (π, π 0 ) is a valid inequality for a 0-1 integer program. Suppose that π k > 0 and j:π j >0,j k π j < π 0. If π k > π 0 j:π j >0,j k π j, then we can set π k π k (π 0 j:π j >0,j k π j), and π 0 j:π j >0,j k π j). Similarly, suppose that π k < 0 and π k + j:π j >0,j k π j < π 0. Then we can again set π k π k (π 0 π j j:π j >0,j k π j)

Computational MILP Lecture 12 9 Preprocessing and Probing in Branch and Bound In practice, these rules are applied iteratively until none applies. Applying one of the rules may cause a new rule to apply. Bound improvement by reduced cost can be reapplied whenever a new bound is computed. Furthermore, all rules can be reapplied after branching. These techniques can make a very big difference.

Computational MILP Lecture 12 10 Root Node Processing Typically, more effort is put into processing the root node than other nodes in the tree. Work done in the root node will impact the processing of every subsequent node. Dual bounding Cut generation in the root node can be thought of as an additional pre-processing step ro the formulation before enumeration. Cut generation in the root node can also be used to predict effectiveness of such techniques elsewhere in the tree. Primal bounding Primal bounds found in the root node can have a big impact on the search. They help to improvement variable bounds by reduced cost and can also lead to more effective/efficient search strategies. As with cut generation, we use performance in the root node as an indicator of efficacy throughout the tree.

Computational MILP Lecture 12 11 Node Pre/Post-Processing: Bound Improvement by Reduced Cost Consider an integer program max x Z n{cx Ax b, 0 x u}. Suppose the linear programming relaxation has been solved to optimality and row zero of the tableau looks like z = ā 00 + ā 0j x j + ā 0j (x j u j ) j NB 1 j NB 2 where NB 1 are the nonbasic variables at 0 and NB 2 are the nonbasic variables at their upper bounds u j. In addition, suppose that a lower bound z on the optimal solution value for IP is known. Then in any optimal solution ā00 z x j x j u j ā 0j ā00 z ā 0j for j NB 1, and for j NB 2.

Computational MILP Lecture 12 12 Node Pre/Post-Processing: Other Techniques Bound improvement in the root node Whenever a new lower bound is found by a heuristic or otherwise, we can apply bound improvement in the root node. To do so, we save the reduced costs of the variables in the root node. We can do this for multiple bases obtained during the processing of the root node. The bound improvements found in this way can be immediately applied to all candidate and active nodes. Techniques similar to those applied in the root node can also be applied during the processing of individual nodes. New implications may be available once branching constraints are applied.

Computational MILP Lecture 12 13 Node Pre/Post-Processing: Conflict Analysis Whenever a node is found to be infeasible, we derive a conflict. The branching constraints imposed to arrive at that node cannot all be imposed simultaneously. These conflicts can be used to derive cuts and may also contribute to enhanement of the conflict graph.

Computational MILP Lecture 12 14 Bounding For now, we focus on the use of cutting plane methods for bounding. We will discuss decomposition-based bounding in a later lecture. The bounding loop is essentially a cutting plen method for solving the subproblem, but with some kind of early termination criteria. After termination, branching is performed to continue the algorithm. The bounding loop consists of several steps applied iteratively (not necessarily in this order). Solve the current LP relaxation. Decide whether node can be fathomed (by infeasibility or bound). Generate inequalities violated by the solution to the LP relaxation. Perform primal heuristics. Apply node pre/post-processing. Manage/improve LP relaxation (add/remove cuts, change bounds) Decide whether to branch

Computational MILP Lecture 12 15 Solving the LP Relaxation The LP relaxation is typically solved using a simplex-based algorithm. This yields the advantage of efficient warm-starting of the solution process. Many standard cut generation techniques require a basic solution. Interior point methods may be useful in some cases where they are much more effective (set packing/partitioning is one case in which this is typical). It may also be fruitful in some cases to explore the use of alternatives, such as the Volume Algorith.

Computational MILP Lecture 12 16 Cut Generation Standard methods for generating cuts Gomory, GMI, MIR, and other tableau-based disjunctive cuts. Cuts from the node packing relaxation (clique, odd hole) Knapsack cuts (cover cuts). Single node flow cuts (flow cover). Simple cuts from pre-processing (probing, etc). We must choose from among these various method which ones to apply in each node. We must in general decide on a general level of effort we want to put into cut generation.

Computational MILP Lecture 12 17 Managing the LP Relaxations In practice, the number of inequalities generated can be HUGE. We must be careful to keep the size of the LP relaxations small or we will sacrifice efficiency. This is done in two ways: Limiting the number of cuts that are added each iteration. Systematically deleting cuts that have become ineffective. How do we decide which cuts to add? And what do we do with the rest? What is an ineffective cut? One whose dual value is (near) zero. One whose slack variable is basic. One whose slack variable is positive.

Computational MILP Lecture 12 18 Managing the LP Relaxations Below is a graphical representation of how the LP relaxation is managed in practice. Newly generated cuts enter a buffer (the local cut pool). Only a limited number of what are predicted to be the most effective cuts from the local are added in each iteration. Cuts that prove effective locally may eventually sent to a global pool for future use in processing other subproblems.

Computational MILP Lecture 12 19 Cut Generation and Management A significant question in branch and cut is what classes of valid inequalities to generate and when? It is generally not a good idea to try all cut generation procedures on every fractional solution arising. For generic mixed-integer programs, cut generation is most important in the root node. Using cut generation only in the root node yields a procedure called cut and branch. Depending on the structure of the instance, different classes of valid inequalities may be effective. Sometimes, this can be predicted ahead of time (knapsack inequalities). In other cases, we have to use past history as a predictor of effectiveness. Generally, each procedure is only applied at a dynamically determined frequency.

Computational MILP Lecture 12 20 Deciding Which Cuts to Add Predicting what cuts will be effective is difficult in general. Degree of violation is an easy-to-apply criteria, but may not be the most natural or intuitive measure. Other measures Bound improvement (difficult to predict/calculate) Euclidean distance from point to be cut off. It is possible to generate cuts using a different measure than that which is used to add them from the local pool. This might be done because generation by a criteria other than degree of violation is difficult.

Computational MILP Lecture 12 21 Deciding When to Branch Because the cutting plane algorithm is a finite algorithm in itsef (at least in the pure integer case), there is no strict requirement to branch. The decision to branch is thus a practical matter. Typically, branching is undertaken when tailing off occurs, i.e., bound improvement slows. Detecting when this happens is not straightforward and there are many ways of doing it. Ultimately, branching and cutting (using the same disjunction) have the same impact on the bound. Tailing off may simply be a result of numerical issues We will consider the numerics of the solution process in a later lecture.

Computational MILP Lecture 12 22 Balancing the Effort of Branching and Bounding To a large extent, the more effort one puts into branching, the smaller the search tree will be. Branching effort can be tuned by adjusting How many branching candidates to consider. How much efort should be put into estimating impact (pseduo-cost estimates versus strong branching, etc.). The same can be said about efforts to improve both primal and dual bounds. For dual bounds, we need to determine how much effort to spend generating various classes of inequalities. For primal bounds, we need to determine how much effort to put into primal heuristics. One of the keys to making the overall algorithm work well is to tune the amount of effort allocated to each of these techniques. This is a very difficult thing to do and the proper balance is different for different classes of problems.

Computational MILP Lecture 12 23 Primal Bounding Strategy The strategy space for primal heuristics is similar to that for cuts. We have a collection of different heuristics that can be applied. We need to determine which heuristics to apply and how often. Generally speaking, we do this dynamically based on the historical effectiveness of each method.

Computational MILP Lecture 12 24 Computational Aspects of Search Strategy The search must find the proper balance between several factors. Primal bound improvement versus dual bound improvement. The savings accrued by diving versus the effectiveness of best first. When we are confident that the primal bound is near optimal, such as when the gap is small, a diving strategy is more appropriate. We can also adjust our strategy based on what the user s desire is.

Computational MILP Lecture 12 25 Adjusting Strategy Based on User Desire In general, there is always a tradeoff between improvement of the dual and the primal bound. The user may have partcular desires about which of these is more important. Some solvers change their strategy according to the emphasis preferred by the user. Proving optimality Finding good solution quickly