The CPLEX Library: Mixed Integer Programming

Similar documents
Generality of Languages

Linear Programming. (Com S 477/577 Notes) Yan-Bin Jia. Nov 28, 2017

AM 121: Intro to Optimization! Models and Methods! Fall 2018!

Lecture 23 Branch-and-Bound Algorithm. November 3, 2009

Decision Procedures An Algorithmic Point of View

SOLVING INTEGER LINEAR PROGRAMS. 1. Solving the LP relaxation. 2. How to deal with fractional solutions?

to work with) can be solved by solving their LP relaxations with the Simplex method I Cutting plane algorithms, e.g., Gomory s fractional cutting

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

Gestion de la production. Book: Linear Programming, Vasek Chvatal, McGill University, W.H. Freeman and Company, New York, USA

Integer Programming. Wolfram Wiesemann. December 6, 2007

Math Models of OR: Branch-and-Bound

where X is the feasible region, i.e., the set of the feasible solutions.

IE418 Integer Programming

Cutting Plane Separators in SCIP

Solving Linear and Integer Programs

Section Notes 9. Midterm 2 Review. Applied Math / Engineering Sciences 121. Week of December 3, 2018

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

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

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

Network Flows. 6. Lagrangian Relaxation. Programming. Fall 2010 Instructor: Dr. Masoud Yaghini

is called an integer programming (IP) problem. model is called a mixed integer programming (MIP)

Solving LP and MIP Models with Piecewise Linear Objective Functions

23. Cutting planes and branch & bound

Integer Linear Programming (ILP)

Cutting Planes in SCIP

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

IMA Preprint Series # 2176

Decision Diagrams for Discrete Optimization

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

Section #2: Linear and Integer Programming

Section Notes 8. Integer Programming II. Applied Math 121. Week of April 5, expand your knowledge of big M s and logical constraints.

Logic, Optimization and Data Analytics

INTEGER PROGRAMMING. In many problems the decision variables must have integer values.

Integer Programming. The focus of this chapter is on solution techniques for integer programming models.

Some Recent Advances in Mixed-Integer Nonlinear Programming

Lagrangian Relaxation in MIP

Overview of course. Introduction to Optimization, DIKU Monday 12 November David Pisinger

Search and Lookahead. Bernhard Nebel, Julien Hué, and Stefan Wölfl. June 4/6, 2012

Probabilistic Graphical Models

Software for Integer and Nonlinear Optimization

Linear Programming Duality

arxiv: v1 [cs.cc] 5 Dec 2018

Feasibility Pump Heuristics for Column Generation Approaches

The Separation Problem for Binary Decision Diagrams

Decomposition-based Methods for Large-scale Discrete Optimization p.1

Decision Diagram Relaxations for Integer Programming

Branch-and-Bound. Leo Liberti. LIX, École Polytechnique, France. INF , Lecture p. 1

Lift-and-Project Inequalities

LOWER BOUNDS FOR INTEGER PROGRAMMING PROBLEMS

Presolve Reductions in Mixed Integer Programming

CS711008Z Algorithm Design and Analysis

Operations Research Lecture 6: Integer Programming

1 Column Generation and the Cutting Stock Problem

01M1 Lecture Linear and Integer Programming: an Introduction

From structures to heuristics to global solvers

Section Notes 9. IP: Cutting Planes. Applied Math 121. Week of April 12, 2010

Information-theoretic Approaches to Branching in Search

Information-Based Branching Schemes for Binary Linear Mixed Integer Problems

Integer Programming for Bayesian Network Structure Learning

Preprocessing. Complements of Operations Research. Giovanni Righini. Università degli Studi di Milano

Analyzing the computational impact of individual MINLP solver components

Stochastic Decision Diagrams

CS Algorithms and Complexity

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

Linear integer programming and its application

DM545 Linear and Integer Programming. Lecture 13 Branch and Bound. Marco Chiarandini

Introduction to optimization and operations research

Optimization Bounds from Binary Decision Diagrams

PART 4 INTEGER PROGRAMMING

Advances in Bayesian Network Learning using Integer Programming

A Branch-and-Cut-and-Price Algorithm for One-Dimensional Stock Cutting and Two-Dimensional Two-Stage Cutting

3. Duality: What is duality? Why does it matter? Sensitivity through duality.

Interior-Point versus Simplex methods for Integer Programming Branch-and-Bound

Computational Logic. Davide Martinenghi. Spring Free University of Bozen-Bolzano. Computational Logic Davide Martinenghi (1/30)

Part 4. Decomposition Algorithms

Multiobjective Mixed-Integer Stackelberg Games

Integer Programming for Bayesian Network Structure Learning

Integer Linear Programming

The Strength of Multi-Row Relaxations

AM 121: Intro to Optimization Models and Methods Fall 2018

16.410/413 Principles of Autonomy and Decision Making

Improving Branch-And-Price Algorithms For Solving One Dimensional Cutting Stock Problem

Notes on Dantzig-Wolfe decomposition and column generation

Integer Programming Chapter 15

A Branch-and-Refine Method for Nonconvex Mixed-Integer Optimization

Lecture 8: Column Generation

Computational Mixed-Integer Programming

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

Projection in Logic, CP, and Optimization

Introduction to Bin Packing Problems

Multivalued Decision Diagrams. Postoptimality Analysis Using. J. N. Hooker. Tarik Hadzic. Cork Constraint Computation Centre

Chapter 1 Linear Programming. Paragraph 5 Duality

21. Solve the LP given in Exercise 19 using the big-m method discussed in Exercise 20.

Side-chain positioning with integer and linear programming

Integer Programming Part II

with Binary Decision Diagrams Integer Programming J. N. Hooker Tarik Hadzic IT University of Copenhagen Carnegie Mellon University ICS 2007, January

If the above problem is hard to solve, we might try to break it into smaller problems which are easier to solve.

Resource Constrained Project Scheduling Linear and Integer Programming (1)

Indicator Constraints in Mixed-Integer Programming

21. Set cover and TSP

Transcription:

The CPLEX Library: Mixed Programming Ed Rothberg, ILOG, Inc. 1 The Diet Problem Revisited Nutritional values Bob considered the following foods: Food Serving Size Energy (kcal) Protein (g) Calcium (mg) Price per serving Oatmeal 28 g 110 4 2 $0.30 Chicken 100 g 205 32 12 $2.40 Eggs 2 large 160 13 54 $1.30 Whole milk 237 cc 160 8 285 $0.90 Cherry pie 170 g 420 4 22 $2.00 Pork and beans 260 g 260 14 80 $1.90 Bob examines optimal solution and decides he needs more protein Adds a protein constraint Possible outcome: Eggs: x 3 = 0.6203 in optimal solution x 1 x 2 x 3 x 4 x 5 x 6 2 1

Mixed Programming (MIP) Minimize c T x Subject to Ax = b Integrality Restriction l x u Some x j are integer 3 The Algorithm for Solving a MIP Base algorithm: branch-and-bound (Land and Doig 1960) Linear programming as a subroutine Provably exponential A bag of tricks to accelerate the search Most tricks apply to only a subset of models A barrage of algorithms 4 2

Branch and Bound 5 Solution Strategy: Branch & Bound Key ingredients Split the solution space into disjoint subspaces Bound the objective value for all solutions in a subspace 6 3

Branching Branch on integer variable Choose a branching variable x j Must be an integer variable Split the model into two sub-models x j i or x j i+1 Binary variable special case: x j =0 or x j =1 7 Bounding - Continuous Relaxation Minimize c T x (= z lp ) Subject to Ax = b Lower bound on MIP objective l x u Some x are integer Relax Integrality Restriction 8 4

Nice Properties of Continuous Rel. If relaxation solution satisfies integrality restrictions: No need to further explore subspace Natural branching candidates: variables that are fractional in relaxation 9 Branch and Bound for MIP Upper Bound v 3 Root v 4 x 2 x 3 y 0 y 1 Lower Bound z 0 z 1 10 5

Branch and Bound for MIP Upper Bound v 3 Root v 4 x 2 x 3 y 0 y 1 Lower Bound z 0 z 1 11 Branch and Bound for MIP v 3 Root v 4 Upper Bound x 2 x 3 y 0 y 1 Lower Bound z 0 z 1 12 6

Branch and Bound for MIP v 3 Root v 4 Upper Bound x 2 x 3 LP Value y 0 y 1 LP Value Lower Bound Infeas z 0 z 1 13 Branch and Bound for MIP v 3 Root v 4 Upper Bound x 2 x 3 y 0 y 1 Lower Bound z 0 z 1 Infeas 14 7

Branch and Bound for MIP x 2 v 3 x 3 Root v 4 z 0 z 1 Upper Bound G A P Lower Bound y 0 y 1 z 0 z 1 Infeas 15 Important Steps 16 8

Important Steps The branch and bound loop Choose an unexplored node in the tree Solve continuous relaxation Generate cutting planes Perform variable fixing Find integer feasible solutions that are similar to the relaxation solution Choose a variable on which to branch Explore logical implications of branch Repeat 17 Important Steps The branch and bound loop Choose an unexplored node in the tree Solve relaxation Generate cutting planes Perform variable fixing Find integer feasible solutions that are similar to the relaxation solution Choose a variable on which to branch Explore logical implications of branch Repeat 18 9

Node Selection Tradeoff: feasibility versus optimality When exploring nodes deep in the search tree More likely to find integer feasible solutions = integer feasible More likely to explore nodes that would be pruned by later feasible solutions 19 Node Selection Options Options Depth first Breadth first Best first Limited discrepancy Best estimate Plunging (combined with above) Always choose a child of the previously explored node 20 10

Important Steps The branch and bound loop Choose an unexplored node in the tree Solve relaxation Generate cutting planes Perform variable fixing Find integer feasible solutions that are similar to the relaxation solution Choose a variable on which to branch Explore logical implications of branch Repeat 21 Node Relaxation Solution Ideally suited to dual simplex Change from parent relaxation is small : a new bound on the branching variable Previous basis remains dual feasible Solution likely to be close to previous basis A few iterations of dual simplex typically suffice to restore optimality Cost per node quite low 22 11

Important Steps The branch and bound loop Choose an unexplored node in the tree Solve relaxation Generate cutting planes Perform variable fixing Find integer feasible solutions that are similar to the relaxation solution Choose a variable on which to branch Explore logical implications of branch Repeat 23 Important Steps The branch and bound loop Choose an unexplored node in the tree Solve relaxation Generate cutting planes Perform variable fixing Find integer feasible solutions that are similar to the relaxation solution Choose a variable on which to branch Explore logical implications of branch Repeat 24 12

Reduced Cost Fixing Use reduced costs to fix variables Recall: reduced cost D N is the marginal cost of moving a variable off of its bound If z lp + D j z* z* = objective of best known feasible solution (incumbent) Then x j can be fixed to its current value in this subtree 25 Important Steps The branch and bound loop Choose an unexplored node in the tree Solve relaxation Generate cutting planes Perform variable fixing Find integer feasible solutions that are similar to the relaxation solution Choose a variable on which to branch Explore logical implications of branch Repeat 26 13

Important Steps The branch and bound loop Choose an unexplored node in the tree Solve relaxation Generate cutting planes Perform variable fixing Find integer feasible solutions that are similar to the relaxation solution Choose a variable on which to branch Explore logical implications of branch Repeat 27 Variable Selection Guiding principles: Make important decisions early Both directions of branch should have an impact Example: Greatly affects search tree size Decide whether or not to build a factory first Decide how many lines to place in the factory later 28 14

Variable Selection Predicting impact Question: How to predict impact of a branch? Possible answers: Find variables that are furthest from their bounds Maximum infeasibility Measure the impact for each branching candidate Strong branching [Applegate, Bixby, Chvatal, Cook] Use historical information Pseudo-costs 29 Important Steps The branch and bound loop Choose an unexplored node in the tree Solve relaxation Generate cutting planes Perform variable fixing Is the relaxation solution near-feasible? Choose a variable on which to branch Explore logical implications of branch Repeat 30 15

Logical Propagation Propagate implications logically Simple example: x + 2y + 3z 3, all variables binary x = 1 (e.g., fixed during tree exploration) z = 2/3 still feasible in LP relaxation Use bound strengthening to tighten variable bounds 31 Later Today Brief History of CPLEX MIP Heuristic details Cutting plane details 32 16