Mixed Integer Programming:

Similar documents
Presolve Reductions in Mixed Integer Programming

Multi-Row Presolve Reductions in Mixed Integer Programming

A First Look at Picking Dual Variables for Maximizing Reduced Cost Fixing

Analyzing the computational impact of individual MINLP solver components

Symmetry in Linear Programming

Integer programming for the MAP problem in Markov random fields

Parallel PIPS-SBB Multi-level parallelism for 2-stage SMIPS. Lluís-Miquel Munguia, Geoffrey M. Oxberry, Deepak Rajan, Yuji Shinano

A Fast Heuristic for GO and MINLP

Mixed Integer Programming Solvers: from Where to Where. Andrea Lodi University of Bologna, Italy

Column Generation for Extended Formulations

POLYNOMIAL MILP FORMULATIONS

Orbital Shrinking: A New Tool for Hybrid MIP/CP Methods

Solving Elementary Shortest-Path Problems as Mixed-Integer Programs

IMA Preprint Series # 2176

18 hours nodes, first feasible 3.7% gap Time: 92 days!! LP relaxation at root node: Branch and bound

The CPLEX Library: Mixed Integer Programming

Computing with multi-row Gomory cuts

Cutting Planes in SCIP

Benders Decomposition for the Uncapacitated Multicommodity Network Design Problem

Advances in CPLEX for Mixed Integer Nonlinear Optimization

Novel update techniques for the revised simplex method (and their application)

SCIP-Jack: A Solver for Steiner Tree Problems in Graphs and their Relatives

Solution of Large-scale LP Problems Using MIP Solvers: Repeated Assignment Problem

Indicator Constraints in Mixed-Integer Programming

Minimum Linear Arrangements

Tight and Compact MILP Formulation for the Thermal Unit Commitment Problem

Computational testing of exact separation for mixed-integer knapsack problems

CS 700: Quantitative Methods & Experimental Design in Computer Science

A note on : A Superior Representation Method for Piecewise Linear Functions

The Traveling Salesman Problem: Inequalities and Separation

From structures to heuristics to global solvers

A Branch-and-Cut Algorithm for the Stochastic Uncapacitated Lot-Sizing Problem

Solving Mixed-Integer Nonlinear Programs

Some Recent Advances in Mixed-Integer Nonlinear Programming

SoPlex. and. Thorsten Koch, ZIB

Single Machine Scheduling: Comparison of MIP Formulations and Heuristics for. Interfering Job Sets. Ketan Khowala

A new primal-dual framework for European day-ahead electricity auctions

An Exact Algorithm for the Steiner Tree Problem with Delays

On handling indicator constraints in mixed integer programming

Optimization Bounds from Binary Decision Diagrams

Three-partition Flow Cover Inequalities for Constant Capacity Fixed-charge Network Flow Problems

Generic Branch-Price-and-Cut

Scenario Grouping and Decomposition Algorithms for Chance-constrained Programs

Information-Based Branching Schemes for Binary Linear Mixed Integer Problems

On Counting Lattice Points and Chvátal-Gomory Cutting Planes

Valid Inequalities for the Proportional Lotsizing and Scheduling Problem with Fictitious Microperiods. Waldemar Kaczmarczyk

Recoverable Robust Knapsacks: Γ -Scenarios

Lessons from MIP Search. John Hooker Carnegie Mellon University November 2009

Time Aggregation for Network Design to Meet Time-Constrained Demand

Accelerating the Convergence of Stochastic Unit Commitment Problems by Using Tight and Compact MIP Formulations

Solving LP and MIP Models with Piecewise Linear Objective Functions

A note on : A Superior Representation Method for Piecewise Linear Functions by Li, Lu, Huang and Hu

Integer Programming Part II

Stochastic Decision Diagrams

Decision Diagrams: Tutorial

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

Quantum Annealing and the Satisfiability Problem

arxiv: v1 [cs.lg] 17 Dec 2017

A COMPUTATIONAL COMPARISON OF SYMMETRY HANDLING METHODS FOR MIXED INTEGER PROGRAMS

A Note on Symmetry Reduction for Circular Traveling Tournament Problems

Scheduling Home Hospice Care with Logic-Based Benders Decomposition

Decision Diagrams for Discrete Optimization

Efficient diagnosability assessment via ILP optimization: a railway benchmark

genetic Minimal Cut Sets - gmcs

21. Set cover and TSP

Orbital Conflict. Jeff Linderoth. Jim Ostrowski. Fabrizio Rossi Stefano Smriglio. When Worlds Collide. Univ. of Wisconsin-Madison

MINLP: Theory, Algorithms, Applications: Lecture 3, Basics of Algorothms

MILP reformulation of the multi-echelon stochastic inventory system with uncertain demands

Thinning out facilities: a Benders decomposition approach for the uncapacitated facility location problem with separable convex costs

Tightening a Discrete Formulation of the Quadratic Assignment Problem

Solving Box-Constrained Nonconvex Quadratic Programs

Technische Universität Dresden Institute of Numerical Mathematics

A heuristic algorithm for the Aircraft Landing Problem

Decomposition Branching for Mixed Integer Programming

Solving the Simple Oset Assignment Problem as a Traveling Salesman

Online generation via offline selection - Low dimensional linear cuts from QP SDP relaxation -

Strengthened Benders Cuts for Stochastic Integer Programs with Continuous Recourse

Monoidal Cut Strengthening and Generalized Mixed-Integer Rounding for Disjunctions and Complementarity Constraints

On the Polyhedral Structure of a Multi Item Production Planning Model with Setup Times

A note on QUBO instances defined on Chimera graphs

Formulations and Algorithms for Minimum Connected Dominating Set Problems

A novel branch-and-bound algorithm for quadratic mixed-integer problems with quadratic constraints

Logic, Optimization and Data Analytics

MVE165/MMG630, Applied Optimization Lecture 6 Integer linear programming: models and applications; complexity. Ann-Brith Strömberg

A practical anytime algorithm for bipartizing networks

Linear Programming: Simplex

An Approximation Algorithm for the Steiner Connectivity Problem

The Generalized Regenerator Location Problem

Introduction to integer programming II

The Symmetric Shortest-Path Table Routing Conjecture

Performance of the fusion code GYRO on three four generations of Crays. Mark Fahey University of Tennessee, Knoxville

A hard integer program made easy by lexicography

The Traveling Salesman Problem: An Overview. David P. Williamson, Cornell University Ebay Research January 21, 2014

Extended Formulations, Lagrangian Relaxation, & Column Generation: tackling large scale applications

Quantum annealing. Matthias Troyer (ETH Zürich) John Martinis (UCSB) Dave Wecker (Microsoft)

A Polytope for a Product of Real Linear Functions in 0/1 Variables

BCOL RESEARCH REPORT 07.04

Advances in Bayesian Network Learning using Integer Programming

n-level Graph Partitioning

Low-ranksemidefiniteprogrammingforthe. MAX2SAT problem. Bosch Center for Artificial Intelligence

Transcription:

Mixed Integer Programming: Analyzing 12 Years of Progress Roland Wunderling CPLEX Optimizer Architect

Background 2001: Manfred Padberg s60 th birthday Bixby et al., Mixed-Integer Programming: A Progress Report, in: Grötschel(ed.) The Sharpest Cut: The Impact of Manfred Padbergand His Work, MPS-SIAM Series on Optimization, pp.309-325, SIAM, Philadelphia (2004) Analysis of the relative contributions of the key ingredients ofbranch-and-cut Algorithms for solving MIPs 2013: Martin Grötschel s 65 th birthday T. Achterbergand R.W., Mixed Integer Programming: Analyzing 12 Years of Progress, in: Jünger and Reinelt(eds.) Facets of Combinatorial Optimization, Festschrift for Martin Grötschel, pp.449-481, Springer, Berlin-Heidelberg (2013) What stayed? What changed? Why? 2

Agenda Methodology How to Benchmark How to Measure Importance of Features Analysis Presolving Cuts Heuristics Parallelism Summary 3

Benchmarking Run competing algorithms on set of problem instances Measure and compare runtime, timeouts Use geometric mean for aggregation Performance Variability Seemingly performance neutral changes (random seed, platform, permutation of variables, ) have drastic impact on solution time Has been observed for a long time, e.g. Emilie Danna: Performance variability in mixed integer programming, Presentation at Workshop on Mixed Integer Programming 2008 Friend or foe for Solvers? Tuesday Oct 08, 08:00-09:30, Andrea Lodi: Performance Variability in Mixed-integer Programming Wednesday Oct 09, 15:30-17:00, Andrea Tramontani: Concurrent root cut loops to exploit random performance variability Definitely foe for Benchmarking 4

A benchmarking myth Compare Solver S against reference Solver R Solver Sclaimed to be faster than Ron hard problems Model Set M Solution times t R (m), m M, for Sand Rare in (0sec, 100sec] Classify Models in to hard models H and easy models E m H, if t R (m) > 80sec m E, otherwise Computational confirmation of speedup: 1.8x faster on hard models 0.8x slower on easy models Speedup 5

A benchmarking myth Compare Solver S against reference Solver R Solver Sclaimed to be faster than Ron hard problems Model Set M Solution times t R (m), m M, for Sand Rare in (0sec, 100sec] Classify Models in to hard models H and easy models E m H, if t R (m) > 80sec m E, otherwise Computational confirmation of speedup: 1.8x faster on hard models 0.8x slower on easy models Speedup Times forsand Runiform random numbers: <t R (E)> = 40 <t R (H)> = 90 <t S (E)> = 50 <t S (H)> = 50 Speedup: 4/5 9/5 6

A benchmarking myth Compare Solver S against reference Solver R Solver Sclaimed to be faster than Ron hard problems Model Set M Solution times t R (m), m M, for Sand Rare in (0sec, 100sec] Classify Models in to hard models H and easy models E m H, if t R (m) > 80sec m E, otherwise Computational confirmation of speedup: 1.8x faster on hard models 0.8x slower on easy models Speedup Times forsand Runiform random numbers: <t R (E)> = 40 <t R (H)> = 90 <t S (E)> = 50 <t S (H)> = 50 Speedup: 4/5 9/5 7

Avoiding the bias The problem is real: 2 different random seeds for CPLEX 12.5 Problem comes from using times from one solver to define subsets of problems biased subsets # of problems geomean All 3159 1.00 [0,10k] 3082 1.00 [1,10k] 1848 0.99 [10,10k] 1074 0.95 [100,10k] 552 0.87 [1k,10k] 207 0.76 8

Avoiding the bias The problem is real: 2 different random seeds for CPLEX 12.5 Problem comes from using times from one solver to define subsets of problems Solution Use (max) times from all solvers to define subsets of problems biased subsets # of problems geomean All 3159 1.00 [0,10k] 3082 1.00 [1,10k] 1848 0.99 [10,10k] 1074 0.95 [100,10k] 552 0.87 [1k,10k] 207 0.76 unbiased subsets # of problems geomean All 3159 1.00 [0,10k] 3082 1.00 [1,10k] 1879 1.00 [10,10k] 1121 1.01 [100,10k] 604 1.01 [1k,10k] 238 1.08 9

Avoiding the bias The problem is real: 2 different random seeds for CPLEX 12.5 Problem comes from using times from one solver to define subsets of problems Solution Use (max) times from all solvers to define subsets of problems Note 250 models can not measure performance difference of less than 10% Will use [10,10k] bracket biased subsets # of problems geomean All 3159 1.00 [0,10k] 3082 1.00 [1,10k] 1848 0.99 [10,10k] 1074 0.95 [100,10k] 552 0.87 [1k,10k] 207 0.76 unbiased subsets # of problems geomean All 3159 1.00 [0,10k] 3082 1.00 [1,10k] 1879 1.00 [10,10k] 1121 1.01 [100,10k] 604 1.01 [1k,10k] 238 1.08 10

Measuring Impact MIP is a bag of tricks Presolving Cutting planes Branching Heuristics... How important is each trick? Compare runs with feature turned on and off Solution time degradation (geometric mean) # of solved models Essential or just speedup? Number of affected models General or problem specific? Bixby et al. 2001 Feature Degradation No cuts 53.7x No presolve 10.8x Trivial branching 2.9x No heuristics 1.4x 11

Component Impact CPLEX 12.5 Summary Benchmarking setup 1769 models 12 core Intel Xenon 2.66 GHz Unbiased: At least one of all the test runs took at least 10sec % affected 99% 82% 91% 91% 83% 93% 26% 46% 65% 12

Component Impact CPLEX 12.5 Summary Fundamental Features Lots of models unsolvable without Apply to most models % affected 99% 82% 91% 91% 83% 93% 26% 46% 65% 13

Component Impact CPLEX 12.5 Summary Important Features Many models unsolvable without Apply to most models % affected 99% 82% 91% 91% 83% 93% 26% 46% 65% 14

Component Impact CPLEX 12.5 Summary Parallelism is not important turning off == 12x fewer cycles i.e. just a tighter time limit Hardware cannot defeat combinatorial explosion % affected 99% 82% 91% 91% 83% 93% 26% 46% 65% 15

Component Impact CPLEX 12.5 Summary Special Features Few models unsolvable without Apply to few models % affected 99% 82% 91% 91% 83% 93% 26% 46% 65% 16

Component Impact CPLEX 12.5 Summary Only 106 models Biased towards Cuts due to selection of hard models for CPLEX 5.0 Impact of other components matches % affected 99% 82% 91% 91% 83% 93% 26% 46% 65% 17

Component Impact CPLEX 12.5 Summary % affected 99% 82% 91% 91% 83% 93% 26% 46% 65% 18

Component Impact CPLEX 12.5 Presolve 19

Component Impact CPLEX 12.5 Summary % affected 99% 82% 91% 91% 83% 93% 26% 46% 65% 20

Component Impact CPLEX 12.5 Cutting Planes 21

Component Impact CPLEX 12.5 Cutting Planes 1.83 2.52 1.40 1.19 1.22 1.02 1.04 1.02 Bixby et al. 2001 22

Component Impact CPLEX 12.5 Summary % affected 99% 82% 91% 91% 83% 93% 26% 46% 65% 23

Component Impact CPLEX 12.5 Primal Heuristics 24

Component Impact CPLEX 12.5 Summary % affected 99% 82% 91% 91% 83% 93% 26% 46% 65% 25

Parallelism in CPLEX Types of Parallelism Opportunistic Parallelism Deterministic Parallelism Identical runs produce same solution path and results Use deterministic locks Based on deterministic time Implemented via counting memory accesses Parallel Tasks Root node parallelism Concurrent LP solve Heuristics concurrent to cutting phase Parallel Cut loop Parallel Processing of B&C Tree 26

The Cost of Determinism 27

1400 250 1200 1000 sec 200 number of timeouts 1000 800 600 100 sec 10 sec 150 100 total speedup 400 200 50 0 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 0 Date: 28 September 2013 Testset: 3147 models (1792 in 10sec, 1554 in 100sec, 1384 in 1000sec) Machine: Intel X5650 @ 2.67GHz, 24 GB RAM, 12 threads (deterministic since CPLEX 11.0) Timelimit: 10,000 sec

Appendix 29

Component Impact CPLEX 12.5 Summary 30

Component Impact CPLEX 12.5 Branching 31