Integer Programming. Wolfram Wiesemann. December 6, 2007

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

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

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

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

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

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

Introduction to Integer Linear Programming

maxz = 3x 1 +4x 2 2x 1 +x 2 6 2x 1 +3x 2 9 x 1,x 2

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

Operations Research Lecture 6: Integer Programming

Integer Linear Programming

23. Cutting planes and branch & bound

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

Feasibility Pump Heuristics for Column Generation Approaches

Decision Procedures An Algorithmic Point of View

Math Models of OR: Branch-and-Bound

Introduction to Integer Programming

Algorithm Analysis Divide and Conquer. Chung-Ang University, Jaesung Lee

min3x 1 + 4x 2 + 5x 3 2x 1 + 2x 2 + x 3 6 x 1 + 2x 2 + 3x 3 5 x 1, x 2, x 3 0.

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

From structures to heuristics to global solvers

Linear and Integer Programming - ideas

The CPLEX Library: Mixed Integer Programming

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

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

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

Linear integer programming and its application

Discrete Optimization 2010 Lecture 7 Introduction to Integer Programming

Integer Programming Part II

Part 4. Decomposition Algorithms

IE418 Integer Programming

Stochastic Integer Programming

Hands-on Tutorial on Optimization F. Eberle, R. Hoeksma, and N. Megow September 26, Branch & Bound

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

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

MDD-based Postoptimality Analysis for Mixed-integer Programs

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

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

Zebo Peng Embedded Systems Laboratory IDA, Linköping University

Decision Diagram Relaxations for Integer Programming

PART 4 INTEGER PROGRAMMING

Cutting Planes in SCIP

Integer and Combinatorial Optimization: Introduction

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

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

Large-scale optimization and decomposition methods: outline. Column Generation and Cutting Plane methods: a unified view

IV. Violations of Linear Programming Assumptions

3.4 Relaxations and bounds

Integer Programming and Branch and Bound

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

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

Discrete (and Continuous) Optimization WI4 131

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

Disconnecting Networks via Node Deletions

Primal vector is primal infeasible till end. So when primal feasibility attained, the pair becomes opt. & method terminates. 3. Two main steps carried

5 Integer Linear Programming (ILP) E. Amaldi Foundations of Operations Research Politecnico di Milano 1

Development of an algorithm for solving mixed integer and nonconvex problems arising in electrical supply networks

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

Optimisation and Operations Research

Integer Linear Programming (ILP)

Introduction column generation

A Hub Location Problem with Fully Interconnected Backbone and Access Networks

Week Cuts, Branch & Bound, and Lagrangean Relaxation

IP Duality. Menal Guzelsoy. Seminar Series, /21-07/28-08/04-08/11. Department of Industrial and Systems Engineering Lehigh University

3.10 Lagrangian relaxation

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

Solving LP and MIP Models with Piecewise Linear Objective Functions

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

CTL satisfability via tableau A C++ implementation

Integer Programming Chapter 15

On the knapsack closure of 0-1 Integer Linear Programs. Matteo Fischetti University of Padova, Italy

Decision Diagrams for Discrete Optimization

Branch-and-Bound for the Travelling Salesman Problem

BBM402-Lecture 20: LP Duality

3.10 Column generation method

Solving Mixed-Integer Nonlinear Programs

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

Outline. Relaxation. Outline DMP204 SCHEDULING, TIMETABLING AND ROUTING. 1. Lagrangian Relaxation. Lecture 12 Single Machine Models, Column Generation

A BRANCH&BOUND ALGORITHM FOR SOLVING ONE-DIMENSIONAL CUTTING STOCK PROBLEMS EXACTLY

Introduction to integer programming II

An Adaptive Partition-based Approach for Solving Two-stage Stochastic Programs with Fixed Recourse

ELE539A: Optimization of Communication Systems Lecture 16: Pareto Optimization and Nonconvex Optimization

Advanced linear programming

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

Network Design and Game Theory Spring 2008 Lecture 6

Solving Bilevel Mixed Integer Program by Reformulations and Decomposition

Strengthened Benders Cuts for Stochastic Integer Programs with Continuous Recourse

Supplementary lecture notes on linear programming. We will present an algorithm to solve linear programs of the form. maximize.

Hot-Starting NLP Solvers

data structures and algorithms lecture 2

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

Exploring the Numerics of Branch-and-Cut for Mixed Integer Linear Optimization

Decomposition Algorithms for Two-Stage Distributionally Robust Mixed Binary Programs

Outline. 1 Introduction. 3 Quicksort. 4 Analysis. 5 References. Idea. 1 Choose an element x and reorder the array as follows:

3.10 Column generation method

Travelling Salesman Problem

Software for Integer and Nonlinear Optimization

Discrete (and Continuous) Optimization WI4 131

Column Generation. i = 1,, 255;

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

Transcription:

Integer Programming Wolfram Wiesemann December 6, 2007

Contents of this Lecture Revision: Mixed Integer Programming Problems Branch & Bound Algorithms: The Big Picture Solving MIP s: Complete Enumeration Divide and Conquer Principle Branch & Bound Algorithm for MIP s Example

Revision: Mixed Integer Programming Problems Mixed Integer Programming (MIP) Problem: min x 0 = c T x subject to Ax = b x j 0 for j N = {1,...,n} x j Z for j Z N. Note: x j N \ Z are continuous, x j Z are integral. Additional assumption this lecture: Finite bounds x j, x j for j Z: x j { x j,x j + 1,...,x j }.

Contents of this Lecture Revision: Mixed Integer Programming Problems Branch & Bound Algorithms: The Big Picture Solving MIP s: Complete Enumeration Divide and Conquer Principle Branch & Bound Algorithm for MIP s Example

Solving MIP s: Complete Enumeration Idea: Loop through all possible values of the integer variables (without loss of generality, {x 1,...,x z } with z n) and solve LP problems in the remaining (continuous) variables: for x 1 {x 1, x 1 + 1,..., x 1 } do for x 2 {x 2, x 2 + 1,..., x 2 } do... for x z {x z, x z + 1,..., x z } do Solve LP in x k+1,...,x n with x 1,...,x k fixed. Update tentative optimal solution if necessary. end for... end for end for Print (final) optimal solution or report infeasibility. Complexity?

Contents of this Lecture Revision: Mixed Integer Programming Problems Branch & Bound Algorithms: The Big Picture Solving MIP s: Complete Enumeration Divide and Conquer Principle Branch & Bound Algorithm for MIP s Example

Divide and Conquer Principle Need to structure search so that we touch only few solutions. One Approach: Divide and Conquer Divide a large problem into several smaller ones. Conquer by working on the smaller problems. Branch & Bound: Solve continuous relaxation of original problem P 0 x (P 0 ). Divide (Branch): Choose p Z with xp / Z. Create two subproblems, P 1 and P 2, with added constraints x p xp and x p xp, respectively. Conquer (Bound/Fathom): If optimal solution of continous relaxation of P i is worse than any known feasible solution for P 0, disregard P i. Note: Any solution to P 0 is also feasible for either P 1 or P 2. Hence, by solving P 1 and P 2, we solve P 0.

Divide and Conquer Principle Recursive application of divide and conquer principle leads to binary tree: Terminal nodes = problems that remain to be solved.

Contents of this Lecture Revision: Mixed Integer Programming Problems Branch & Bound Algorithms: The Big Picture Solving MIP s: Complete Enumeration Divide and Conquer Principle Branch & Bound Algorithm for MIP s Example

Branch & Bound Algorithm for MIP s Preliminaries: P 0 denotes original problem: subject to Ax = b x j 0 min x 0 = c T x for j N = {1,...,n} x j Z for j Z N. For any problem P, x (P) denotes optimal solution for continuous relaxation of P. OPT denotes objective function value of best feasible solution (for P 0 ) found so far. At beginning, OPT = or based on a priori knowledge (heuristic).

Branch & Bound Algorithm for MIP s Algorithm: 1. Initialization. Set list of problems to {P0 }. Initialize OPT. Solve LP relaxation of P0 x (P 0 ). If x (P 0 ) feasible for P 0, OPT = c T x (P 0 ) and stop. 2. Problem Selection. Choose a problem P from list whose x (P) has c T x (P) < OPT. If no such P exists, stop. 3. Variable Selection. Choose x p Z with x p(p) / Z. 4. Branching. Create two new problems P and P with x p x p (P) and x p x p (P), respectively. Solve continuous relaxations of P and P x (P ), x (P ). Update OPT: If P feasible, x (P ) feasible for P 0 and c T x (P ) < OPT OPT = c T x (P ). Same for P. Further Inspection: If P feasible and c T x (P ) < OPT add P to list of problems. Same for P. Afterwards, go back to (2).

Branch & Bound Algorithm for MIP s Output: OPT = : P 0 is infeasible. OPT < : P 0 is feasible. OPT = optimal objective value. Optimal Solution: Obtained via slight modification Store vector x for best feasible solution (for P 0 ) found so far. Whenever OPT is updated (Steps 1+4), also update x. Termination: Under assumption of finite bounds x j, x j for j Z, algorithm terminates in finitely many steps.

Contents of this Lecture Revision: Mixed Integer Programming Problems Branch & Bound Algorithms: The Big Picture Solving MIP s: Complete Enumeration Divide and Conquer Principle Branch & Bound Algorithm for MIP s Example

Example Assume the following problem is given: max 2x 1 + 3x 2 + x 3 + 2x 4 subject to 5x 1 + 2x 2 + x 3 + x 4 15 2x 1 + 6x 2 + 10x 3 + 8x 4 60 x 1 + x 2 + x 3 + x 4 8 2x 1 + 2x 2 + 3x 3 + 3x 4 16. The bounds are x 1 [0,3], x 2 [0,7], x 3 [0,5] and x 4 [0,5]. Furthermore, x j Z for all j = 1,...,4.

Example Change to minimization objective (not necessary!): min 2x 1 3x 2 x 3 2x 4 subject to 5x 1 + 2x 2 + x 3 + x 4 15 2x 1 + 6x 2 + 10x 3 + 8x 4 60 x 1 + x 2 + x 3 + x 4 8 2x 1 + 2x 2 + 3x 3 + 3x 4 16. x 1 [0,3], x 2 [0,7], x 3 [0,5] and x 4 [0,5]. x j Z for all j = 1,...,4.

Example 1. Initialization. Set list of problems to {P0 }. Initialize OPT. Solve LP relaxation of P0 x (P 0 ). If x (P 0 ) feasible for P 0, OPT = c T x (P 0 ) and stop. Problem list: {P 0 }, OPT =.

Example 1. Problem Selection. Choose a problem P from list whose x (P) has c T x (P) < OPT. If no such P exists, stop. 2. Variable Selection. Choose x p Z with xp (P) / Z. 3. Branching. Create two new problems P and P with x p xp (P) and x p xp (P), respectively. Problem list: {P 1,P 2 }, OPT =.

Example 1. Branching. Solve continuous relaxations of P and P x (P ), x (P ). Update OPT: If P feasible, x (P ) feasible for P 0 and c T x (P ) < OPT OPT = c T x (P ). Same for P. Further Inspection: If P feasible and c T x (P ) < OPT add P to list of problems. Same for P. Problem list: {P 1 }, OPT = 18.

Example 1. Problem Selection. Choose a problem P from list whose x (P) has c T x (P) < OPT. If no such P exists, stop. 2. Variable Selection. Choose x p Z with x p(p) / Z. 3. Branching. Create two new problems P and P with x p x p (P) and x p x p (P), respectively. Problem list: {P 3,P 4 }, OPT = 18.

Example 1. Branching. Solve continuous relaxations of P and P x (P ), x (P ). Update OPT: If P feasible, x (P ) feasible for P 0 and c T x (P ) < OPT OPT = c T x (P ). Same for P. Further Inspection: If P feasible and c T x (P ) < OPT add P to list of problems. Same for P. Problem list: {P 3,P 4 }, OPT = 18.

Example 1. Problem Selection. Choose a problem P from list whose x (P) has c T x (P) < OPT. If no such P exists, stop. 2. Variable Selection. Choose x p Z with xp (P) / Z. 3. Branching. Create two new problems P and P with x p xp (P) and x p xp (P), respectively. Problem list: {P 4,P 5,P 6 }, OPT = 18.

Example 1. Branching. Solve continuous relaxations of P and P x (P ), x (P ). Update OPT: If P feasible, x (P ) feasible for P 0 and c T x (P ) < OPT OPT = c T x (P ). Same for P. Further Inspection: If P feasible and c T x (P ) < OPT add P to list of problems. Same for P. Problem list: {P 4 }, OPT = 21.

Example 1. Problem Selection. Choose a problem P from list whose x (P) has c T x (P) < OPT. If no such P exists, stop. 2. Variable Selection. Choose x p Z with xp (P) / Z. 3. Branching. Create two new problems P and P with x p xp (P) and x p xp (P), respectively. Problem list: {P 7,P 8 }, OPT = 21.

Example 1. Branching. Solve continuous relaxations of P and P x (P ), x (P ). Update OPT: If P feasible, x (P ) feasible for P 0 and c T x (P ) < OPT OPT = c T x (P ). Same for P. Further Inspection: If P feasible and c T x (P ) < OPT add P to list of problems. Same for P. Problem list: {}, OPT = 21. Done; x = (0,7,0,0).