Constraint Branching and Disjunctive Cuts for Mixed Integer Programs

Similar documents
State-of-the-Optimization using Xpress-MP v2006

3 INTEGER LINEAR PROGRAMMING

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

Cloud Branching MIP workshop, Ohio State University, 23/Jul/2014

Exploiting Degeneracy in MIP

A Feasibility Pump heuristic for general Mixed-Integer Problems

Experiments On General Disjunctions

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

The Ascendance of the Dual Simplex Method: A Geometric View

Solutions for Operations Research Final Exam

Improved Gomory Cuts for Primal Cutting Plane Algorithms

Pivot and Gomory Cut. A MIP Feasibility Heuristic NSERC

A COMPUTATIONAL STUDY OF THE CUTTING PLANE TREE ALGORITHM FOR GENERAL MIXED-INTEGER LINEAR PROGRAMS

5.3 Cutting plane methods and Gomory fractional cuts

Active-Constraint Variable Ordering for Faster Feasibility of Mixed Integer Linear Programs

Welcome to the Webinar. What s New in Gurobi 7.5

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

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

George Reloaded. M. Monaci (University of Padova, Italy) joint work with M. Fischetti. MIP Workshop, July 2010

Motivation for Heuristics

TABU SEARCH FOR MIXED INTEGER PROGRAMMING

From final point cuts to!-polyhedral cuts

Pure Cutting Plane Methods for ILP: a computational perspective

The Gurobi Optimizer. Bob Bixby

Gurobi Guidelines for Numerical Issues February 2017

Received: 27 October 2008 / Accepted: 1 September 2009 / Published online: 17 September 2009 Springer and Mathematical Programming Society 2009

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

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

Fundamentals of Integer Programming

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

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

The MIP-Solving-Framework SCIP

lpsymphony - Integer Linear Programming in R

Lexicography and degeneracy: Can a pure cutting plane algorithm work?

A Lifted Linear Programming Branch-and-Bound Algorithm for Mixed Integer Conic Quadratic Programs

Exact solutions to mixed-integer linear programming problems

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

Optimization Methods in Management Science

Size of a problem instance: Bigger instances take

DM545 Linear and Integer Programming. Lecture 2. The Simplex Method. Marco Chiarandini

Using Multiple Machines to Solve Models Faster with Gurobi 6.0

Some Advanced Topics in Linear Programming

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

Algorithms II MIP Details

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

Integer Programming Chapter 9

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

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

Conflict Analysis in Mixed Integer Programming

NATCOR Convex Optimization Linear Programming 1

Hybrid Enumeration Strategies for Mixed Integer Programming

9.4 SOME CHARACTERISTICS OF INTEGER PROGRAMS A SAMPLE PROBLEM

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

COLUMN GENERATION IN LINEAR PROGRAMMING

What is linear programming (LP)? NATCOR Convex Optimization Linear Programming 1. Solving LP problems: The standard simplex method

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

The Gurobi Solver V1.0

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

Practice Final Exam 2: Solutions

Simulation. Lecture O1 Optimization: Linear Programming. Saeed Bastani April 2016

Disjunctive cuts in branch-and-but-and-price algorithms Application to the capacitated vehicle routing problem

Parallel and Distributed Optimization with Gurobi Optimizer

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

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

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

Outline. Column Generation: Cutting Stock A very applied method. Introduction to Column Generation. Given an LP problem

Column Generation: Cutting Stock

Parallelizing the dual revised simplex method

What's New in Gurobi 7.0

Linear and Integer Programming :Algorithms in the Real World. Related Optimization Problems. How important is optimization?

Methods and Models for Combinatorial Optimization Exact methods for the Traveling Salesman Problem

56:272 Integer Programming & Network Flows Final Exam -- December 16, 1997

Noncommercial Software for Mixed-Integer Linear Programming

FINITE DISJUNCTIVE PROGRAMMING CHARACTERIZATIONS FOR GENERAL MIXED-INTEGER LINEAR PROGRAMS

A hybrid branch-and-bound approach for exact rational mixed-integer programming

Optimization of Design. Lecturer:Dung-An Wang Lecture 8

Exact Algorithms for Mixed-Integer Bilevel Linear Programming

COMP9334: Capacity Planning of Computer Systems and Networks

Introduction. Linear because it requires linear functions. Programming as synonymous of planning.

Integer and Combinatorial Optimization

Implementing a B&C algorithm for Mixed-Integer Bilevel Linear Programming

Discrete Optimization. Lecture Notes 2

The Simplex Algorithm for LP, and an Open Problem

Linear & Integer Programming: A Decade of Computation

TIM 206 Lecture Notes Integer Programming

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

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

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

Primal Heuristics in SCIP

CSC 8301 Design & Analysis of Algorithms: Linear Programming

Comparisons of Commercial MIP Solvers and an Adaptive Memory (Tabu Search) Procedure for a Class of 0-1 Integer Programming Problems

Bayesian network model selection using integer programming

15.083J Integer Programming and Combinatorial Optimization Fall Enumerative Methods

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

Solving a Challenging Quadratic 3D Assignment Problem

Rounding and Propagation Heuristics for Mixed Integer Programming

Mathematical Tools for Engineering and Management

A PRIMAL-DUAL EXTERIOR POINT ALGORITHM FOR LINEAR PROGRAMMING PROBLEMS

Parallel Branch & Bound

Machine Learning for Software Engineering

Transcription:

Constraint Branching and Disunctive Cuts for Mixed Integer Programs Constraint Branching and Disunctive Cuts for Mixed Integer Programs Michael Perregaard Dash Optimization

Constraint Branching and Disunctive Cuts for Mixed Integer Programs 2 Small Example min z s.t. 2x x, x + 2 2x, z Z + z 99 Optimal LP solution: z = Optimal MIP solution: z = Consider pure branch-and-bound. Will alternately branch on fractional x or x 2. Reuires exhaustive search of (x, x 2 ) = (,49.5), (.5,49), (,48.5),, (49.5, ) solutions to search. times more with new x 3. Alternatively, branch on x + x2 49 x + x2 5 2 +

Constraint Branching and Disunctive Cuts for Mixed Integer Programs 3 Branching from Disunctive Cuts Branching is imposing a disunction valid for all (feasible) integer solutions, but not the current LP solution. Disunctive cuts are derived from some base disunction and often a strengthening argument. Gomory s Mixed Integer cuts. Lift-and-Proect cuts. Reduce and Split cuts of Andersen, Cornuéols and Li (23). The strengthening of the cut can be transformed into a strengthening of the base disunction. Use the strengthened base disunction for branching.

Constraint Branching and Disunctive Cuts for Mixed Integer Programs 4 Basic Mixed Integer Program We consider solving: min s. t. cx Ax x x = b Z for Solve using branch-and-bound. I Standard branching selects a single fractional variable x and imposes disunction x x x x Can we find a better disunction?

Constraint Branching and Disunctive Cuts for Mixed Integer Programs 5 Disunctive Normal Form Example For constraint Q k = D x d = where e.g. x and x 2 are fractional, we can create a disunction x x x2 x + x2

Constraint Branching and Disunctive Cuts for Mixed Integer Programs 6 where Example Q (, ) + d I I d Z Split Disunctions ( di xi d di xi d + for Q. If x, x 2 and x 3 are fractional binaries, we can consider the disunction ) ( x x ) ( x2 x2 ) ( x3 x3 ) Leads to 2 3 = 8 branches.

Constraint Branching and Disunctive Cuts for Mixed Integer Programs 7 Basic Disunctive (Intersection) Cut Given disunction (in nonbasic space) where with d >, then Q dn xn d α N x N α d = max Q d is a valid ineuality that cuts off the LP solution =. x N

Constraint Branching and Disunctive Cuts for Mixed Integer Programs 8 Strengthening Disunctions (Balas, Jeroslaw 98) Let f be the largest value for which d x f is valid for (MIP). Set h = ( d f ). Let m Z satisfies with Σ α α Q for I, Q, be any set of integers that m for all I. Then = = is a valid ineuality for (MIP) max{( d Q max{ d Q α N N x N + d N m } h I ) d } for for N \ I

Constraint Branching and Disunctive Cuts for Mixed Integer Programs 9 Strengthening Disunctions [continued] Instead of strengthening cut, as in modify the disunction directly, as in () Basic disunctive cut from () identical to strengthened cut. I N d d I d h m d Q Q \ for } max{ for } ) max{( = α + = α I N I N I I I Q d x d x m h d \ \ ) ( + +

Constraint Branching and Disunctive Cuts for Mixed Integer Programs Strengthening Conunctions Given valid disunction for (MIP) Q ( di x d di x d + ) Let m Z for I, Q, be any set of integers. Then Q ( + ) d m x d ( d + m ) x d ) ( I I I I I I + is a valid disunction for (MIP) since integer. m I xi must be Gomory s Mixed Integer cuts and Lift-and-Proect cuts strengthens in nonbasics. Andersen, Cornuéols, Li cuts iteratively strengthens individual basics and all nonbasics.

Constraint Branching and Disunctive Cuts for Mixed Integer Programs General Branching Alternatives Ryan-Foster for Set Packing and Set Partitioning. B.A. Foster and D.M. Ryan (98). Specifically designed for Set Partitioning constraints: Basis Reduction H.W. Lenstra (983) Polynomial algorithm for solving integer programs for fixed number of variables. General Branching of Mehrotra, Owen (2) Tests each variable using LP reoptimization to determine best coefficient.

Constraint Branching and Disunctive Cuts for Mixed Integer Programs 2 Even more Alternatives General Branching of Karamanov, Cornuéols (Monday) Branches on Gomory cut related disunction. Column Basis Reduction of Pataki (Thursday) Generalized Branching Methods of Mehrotra (Friday)

Constraint Branching and Disunctive Cuts for Mixed Integer Programs 3 Small Examples obective

Constraint Branching and Disunctive Cuts for Mixed Integer Programs 4 General branching + Branch on any linear disunction. General vs. - branching - Adds new constraints matrix size grows. - More difficult to get implications. - More basic integers less reduced cost tightening.? Heaps of choices - branching - Branch on - disunctions only + Changes bounds matrix size unchanged. + Easy to get implications (bound propagation). + Branched variables will be non-basic allows reduced cost tightening.? Easy to find best choice.

Constraint Branching and Disunctive Cuts for Mixed Integer Programs 5 Evaluating a Disunction Work in space of nonbasic variables A B x B + A N x Measure the uality of a disunction N = b B B through that of the implied disunctive cut αx, with x B Q dn xn d α = max Q = { d } d A b A A N x N

Constraint Branching and Disunctive Cuts for Mixed Integer Programs 6 Evaluating a Cut Andersen, Cornuéols, Li (23) suggests minimizing the L 2 -norm of cut coefficients for continuous variables. What about scaling and cost? Consider reduced costs. Cost to satisfy the cut by increasing non-basic variable x is at least c α. Make cut expensive to satisfy maximize c minimize α c. Since c α N x N can be zero, we estimate a cut by g( α) = α N + δ c α, or c N

Constraint Branching and Disunctive Cuts for Mixed Integer Programs 7 Improving a Disunction - Nonbasics Express disunction in nonbasics x N Q Strengthened cut coefficients in nonbasics are α α Find optimal dbxb + dnxn d Q dn xn d = = max{( d Q max{ d Q m + d m } h ) d for for N I N \ for each independently easy. } I Note: For simple split disunction xk xk x optimal gives Gomory s Mixed Integer cut. m x k k

Constraint Branching and Disunctive Cuts for Mixed Integer Programs 8 Improving a Disunction - Basics Same strengthening applies to basic variable x k Q mk h xk + dn xn d Use the row i of the simplex tableau in which x k is basic: x k + aix = bi N to re-express the disunction in nonbasics: Q ( dn mk hain) xn d mk hai Problem: Find optimal discrete amount m k h to add simplex tableau row i (without basic x k ) to each term of the disunction.

Constraint Branching and Disunctive Cuts for Mixed Integer Programs 9 Procedure. Convert Xpress selected branching variable x k into a simple disunction 2. Apply Gomory-esue strengthening to coefficients of non-basics in D. 3. Are there more basic, integer variables to use for strengthening? If not, stop. 4. Select basic, integer variable x i. Calculate optimal continuous coefficient m i in D. Update D with the better of or. Repeat from 2. m i mi

Constraint Branching and Disunctive Cuts for Mixed Integer Programs 2 Miplib 3 Test Set http://www.caam.rice.edu/~bixby/miplib/miplib.html 65 instances, 5 with general integers Miplib 23 http://miplib.zib.de/ 6 instances, 5 with general integers H. Mittelmann s test set http://plato.la.asu.edu/bench.html 63 instances, 6 with general integers 46 uniue instances, 3 with general integers.

Constraint Branching and Disunctive Cuts for Mixed Integer Programs 2 Instances with General Integers Name Rows Columns Binaries Integers Int.Gap Name Rows Columns Binaries Integers Int.Gap arki 49 388 45 23 5 msc98-ip 585 243 2237 53 2.6e9 atlanta-ip 2732 48738 46667 6 2.27e9 mzzv 95 24 9989 25 35 bell3a 24 33 39 32 mzzv42z 46 77 482 235 26 bell5 92 4 3 28 3379 neos7 994 556 434 2 38 blend2 275 353 23 33 2 neos8 46324 23228 23224 4 9 flugpl 9 8 8 neos 46793 23489 23484 5 9 gen 78 87 44 6 24 neos6 9 377 336 4 9 gesa2 393 224 24 68 3 neos2 2446 65 937 3 267 gesa2_o 249 224 384 336 3 noswot 83 28 75 25 gesa3 369 52 26 68 3 net 54 54 288 29 5 gesa3_o 225 52 336 336 3 net_o 457 54 288 29 5 gt2 3 88 24 64 7 roll3 2296 66 246 492 2 manna8 648 332 8 333 7 rout 292 556 3 5 2 momentum2 24238 3732 88 timtab 7 397 64 7 2 momentum3 56822 3532 6598 5 timtab2 295 675 3 8 3 Instances not suited for general integer branching.

Constraint Branching and Disunctive Cuts for Mixed Integer Programs 22 Computational Settings Implemented in C using Xpress 25B optimizer library. Uses Xpress callbacks to override default branches with new constraint branches. No in-tree cutting. No heuristics. Best-first search. Run on a dual processor Opteron 246 system (2GHz, 4GB RAM, Linux OS).

Constraint Branching and Disunctive Cuts for Mixed Integer Programs 23 Instance arki atlanta-ip bell3a bell5 blend2 dsbmip flugpl gesa2_o gesa2 gesa3_o gesa3 gt2 msc98-ip No Strengthening Time 24 446 6 2 Nodes (Bound) (758565) (972878) Nonbasic Strengthening (82.88) 525 384977 7563 65 8 95 25 29 87 335 Simple Strengthening Time 5 2 Nodes (Bound) (758295) (82.92) 43 357 6695 65 329 229 29 65 33 (972878) Instance mzzv mzzv42z neos neos6 neos2 neos7 net_o net roll3 timtab timtab2 Not finished in 8 seconds gen, manna8: solved on root (excluded). noswot: can t raise bound (excluded). atlanta-ip, dsbmip, msc98-ip, mzzv, mzzv42z, neos: very few branches on integers rout No Strengthening Time 6 265 2 574 Nodes (Bound) (-2728) 97 42 (434) (-46) (79934) 29 59 (2453) 228537 (64457) (69572) Simple Strengthening Time 99 27 3 4 Nodes (Bound) (-2728) 97 42 (432) (-468) (73934) 35 3 (2456) (47) (57727) (6629)

Constraint Branching and Disunctive Cuts for Mixed Integer Programs 24 Instance arki atlanta-ip bell3a bell5 blend2 dsbmip flugpl gesa2_o gesa2 gesa3_o gesa3 gt2 msc98-ip No Strengthening Time 24 446 6 2 Nodes (Bound) (758565) (82.88) 525 384977 7563 65 8 95 25 29 87 335 (972878) Full Strengthening Full Strengthening Time 5 2 2 Nodes (Bound) (75852) (82.89) 95 6 6879 65 3 2 35 29 5 39 (972878) Instance mzzv mzzv42z neos neos6 neos2 neos7 net_o net roll3 rout timtab timtab2 No Strengthening Time 6 265 2 574 Nodes (Bound) (-2728) 97 42 (434) (-46) (79934) 29 59 (2453) 228537 (64457) (69572) Simple Strengthening Time 3 266 6 5 Nodes (Bound) (-2728) 97 42 (432) (-468) (7378) 65 39 (2459) (53) (552455) (64262) Not finished in 8 seconds. bell3a, bell5: Half the number of nodes of Nonbasic Strengthening. flugpl: reduced from 329 to 3 nodes.

Constraint Branching and Disunctive Cuts for Mixed Integer Programs 25 Nonbasic Strengthening #Better #Worse Branching on Binaries No Strengthening Comparing results from Nonbasic Strengthening on all Binary/Integer branches against previous results. 4 8 Strengthening on integer branches 3 7 Full Strengthening #Better #Worse No Strengthening 7 7 Strengthening on integer branches 5 5 Comparing results from Full Strengthening on all Binary/Integer branches against previous results.

Constraint Branching and Disunctive Cuts for Mixed Integer Programs 26 Reduced Cost Scaling of Cut Coefficients f = + c δ δ = (no scaling) δ = median reduced cost δ =. median reduced cost. #Best 6 8 8 #Worst 2 3 6

Constraint Branching and Disunctive Cuts for Mixed Integer Programs 27 Improvement in Cut Estimate Average improvement in cut estimate relative to initial disunction when applying either nonbasic improvement or full improvement. 9 8 7 6 5 4 3 2 atlanta-ip dsbmip neos mzzv42z msc98-ip mzzv neos7 blend2 gesa2_o timtab2 gesa2 timtab gt2 net noswot gesa3 net_o gesa3_o bell5 flugpl rout roll3 arki bell3a neos6 neos2 Nonbasic improvement Full improvement

Constraint Branching and Disunctive Cuts for Mixed Integer Programs 28 Basic Improvement Coefficients Average optimal continuous coefficient for basic integer variables, excluding when zero is optimal. 9 8 7 6 5 4 3 2 net_o net mzzv roll3 mzzv42z neos6 atlanta-ip timtab2 blend2 timtab gesa3_o neos2 gt2 msc98-ip gesa3 rout neos gesa2_o gesa2 flugpl arki bell3a dsbmip bell5 neos7

Constraint Branching and Disunctive Cuts for Mixed Integer Programs 29 Results on Full Test Set Using full strengthening on both binary and integer branches (37 instances). Strengthening? Both finished, least nodes One finished Both unfinished, best bound No 25 29 39 Full 8 2 Instance bell5 bell3a mod8 gt2 flugpl mzzv42z l52lav lseu neos4 neos No strengthening Time 465.42 24.45.84.48.5 999.64 5.49.52 228.9 47.78 Nodes 384977 525 79 335 8 97 53 267 67 696 Full strengthening Time.26.4.5.2. 68.8 4.63.24 536.57 6.39 Nodes 53 83 43 87 23 97 Top with best performance when applying full strengthening. 25 43 33 65

Constraint Branching and Disunctive Cuts for Mixed Integer Programs 3 No Improvements L52LAV Full Improvements 476 476 476 4696 4686 4676 4666 476 4696 4686 4676 4666 Nonbasic Improvements 476 Improv. mindeg maxdeg 476 None 7 52 4696 Nonbas. 34 79 4686 4676 4666 Full 77 255 Sum of min and max degradation over best 25 nodes.

Constraint Branching and Disunctive Cuts for Mixed Integer Programs 3 Client Set Small cutting stock problems with general integers. Strengthening Name Rows Cols Root Obective Best Sol. None Full Full on cycles only d3 2 827 773.5 7732 773.5 % (686) 7732 % (37) 7732 % (227) d4 2 827 75 % (62444) 75 % (35) 75 % (248) d6 2 827 3266.67 3275 3266.67 % (93588) 3275 % (7) 3275 % (87)

Constraint Branching and Disunctive Cuts for Mixed Integer Programs 32 Client Set 2 Lot sizing problems with general integers. Name Rows Cols Root Obective Strengthening None Non-basic Full C2 278479 678.3226.32235.3227.8% (56).3228.5% (45) C3 8425 932 7.72284 8 7.735 8 7.72289 8.6% (7) 7.7239 8.32% (2372) C4 653 2365 2.256 2.2242 2.2876.62% (3946) 2.2877.626% (223) C6 266 5548 2.5477 9 2.5477 9 2.5477 9 % (45) 2.5477 % (45)

Constraint Branching and Disunctive Cuts for Mixed Integer Programs 33 Future Directions Select initial disunction independently of Xpress. Evaluation of disunctions. Xpress uses e.g. pseudo costs, strongbranch estimates and history values to select a branch candidate. How can this be carried over to general branching? Assimilate ideas from/compare against other general branching schemes. Basis reduction LP guided strengthening of disunction. IMA general branching presentations.. Efficiency (no exploitation of sparsity at the moment). Include most promising scheme in future release of Xpress?.