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

Similar documents
Returning to Open Threads

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

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

Integer Programming. Wolfram Wiesemann. December 6, 2007

IE418 Integer Programming

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

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

Introduction to Integer Linear Programming

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.

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

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

Decision Procedures An Algorithmic Point of View

Cutting Planes in SCIP

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

Resource Constrained Project Scheduling Linear and Integer Programming (1)

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

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

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

(P ) Minimize 4x 1 + 6x 2 + 5x 3 s.t. 2x 1 3x 3 3 3x 2 2x 3 6

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

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

Written Exam Linear and Integer Programming (DM545)

DM545 Linear and Integer Programming. Lecture 7 Revised Simplex Method. Marco Chiarandini

IP Cut Homework from J and B Chapter 9: 14, 15, 16, 23, 24, You wish to solve the IP below with a cutting plane technique.

The CPLEX Library: Mixed Integer Programming

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

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

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

Column Generation. MTech Seminar Report. Soumitra Pal Roll No: under the guidance of

Algorithms and Theory of Computation. Lecture 13: Linear Programming (2)

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

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

Revised Simplex Method

Written Exam Linear and Integer Programming (DM554)

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

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

Outline. Outline. Outline DMP204 SCHEDULING, TIMETABLING AND ROUTING. 1. Scheduling CPM/PERT Resource Constrained Project Scheduling Model

Introduction to optimization

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

Integer Linear Programming

23. Cutting planes and branch & bound

From structures to heuristics to global solvers

Review Solutions, Exam 2, Operations Research

min 4x 1 5x 2 + 3x 3 s.t. x 1 + 2x 2 + x 3 = 10 x 1 x 2 6 x 1 + 3x 2 + x 3 14

IE 5531: Engineering Optimization I

Section #2: Linear and Integer Programming

Notes on Dantzig-Wolfe decomposition and column generation

- Well-characterized problems, min-max relations, approximate certificates. - LP problems in the standard form, primal and dual linear programs

Advanced Topics in Operations Research

Probabilistic Graphical Models

Lecture 10: Linear programming duality and sensitivity 0-0

Linear and Combinatorial Optimization

Introduction column generation

Integer Programming Reformulations: Dantzig-Wolfe & Benders Decomposition the Coluna Software Platform

Lecture 9: Dantzig-Wolfe Decomposition

Foundations of Operations Research

Linear and Integer Programming - ideas

Weighted Acyclic Di-Graph Partitioning by Balanced Disjoint Paths

Dual bounds: can t get any better than...

Lecture 10: Linear programming. duality. and. The dual of the LP in standard form. maximize w = b T y (D) subject to A T y c, minimize z = c T x (P)

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

Operations Research Lecture 6: Integer Programming

Advanced linear programming

Advances in Bayesian Network Learning using Integer Programming

Linear Programming Duality P&S Chapter 3 Last Revised Nov 1, 2004

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

Lecture 5. x 1,x 2,x 3 0 (1)

4. Duality and Sensitivity

Integer Programming for Bayesian Network Structure Learning

Discrete Optimization 2010 Lecture 7 Introduction to Integer Programming

The use of shadow price is an example of sensitivity analysis. Duality theory can be applied to do other kind of sensitivity analysis:

Discrete Optimization 2010 Lecture 8 Lagrangian Relaxation / P, N P and co-n P

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

Linear Programming. Scheduling problems

Thermal Unit Commitment Problem

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

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

APPLIED MECHANISM DESIGN FOR SOCIAL GOOD

Applications. Stephen J. Stoyan, Maged M. Dessouky*, and Xiaoqing Wang

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

PART 4 INTEGER PROGRAMMING

4. The Dual Simplex Method

Decomposition Methods for Integer Programming

Feasibility Pump Heuristics for Column Generation Approaches

DM559/DM545 Linear and integer programming

Linear Programming Duality

Course Notes for MS4315 Operations Research 2

Column Generation for Extended Formulations

Convex Optimization and Support Vector Machine

BBM402-Lecture 20: LP Duality

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

Lagrangian Relaxation in MIP

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

In the original knapsack problem, the value of the contents of the knapsack is maximized subject to a single capacity constraint, for example weight.

Lagrangean relaxation

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

CS 6820 Fall 2014 Lectures, October 3-20, 2014

Stochastic Integer Programming

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

Multicommodity Flows and Column Generation

Transcription:

DM545 Linear and Integer Programming Lecture 13 Marco Chiarandini Department of Mathematics & Computer Science University of Southern Denmark

Outline 1. 2. 2

Exam Tilladt Håndscanner/digital pen og ordbogsprogrammet fra ordbogen.com Ikke tilladt at anvende digitalt kamera eller webcam o. lign. metoder for at digitalisere sin besvarelse Du afleverer efter fristen og kun en gang Exam Monitor er et lille program, som logger, hvilke programmer du afvikler på din computer under eksamen, samtidig med at din skærm optages. https://em.sdu.dk/ Internet Internet er ikke tilladt ved eksamener på NAT, men undtagelsesvis til denne eksamen er det tilladt, at benytte følgende webside http: // www. imada. sdu. dk/ ~marco/ DM545/ og siderne linket derfra. Det er ikke tilladt at benytte andre sider Vejledning og templates snart tilgænglig fra kurset web siden ved afsnittet Assessment Kom vel forberedet, bring noget at drikke og spise 3

To come Two weeks left This week: two lectures + joint training class on Wednesday Next week: two exercise classes + one lecture. Question time? Thursday 31st at 9:00? 4

Outline 1. 2. 5

Consider the problem z = max{c T x : x S} Divide and conquer: let S = S 1... S k be a decomposition of S into smaller sets, and let z k = max{c T x : x S k } for k = 1,..., K. Then z = max k z k 6

Consider the problem z = max{c T x : x S} Divide and conquer: let S = S 1... S k be a decomposition of S into smaller sets, and let z k = max{c T x : x S k } for k = 1,..., K. Then z = max k z k For instance if S {0, 1} 3 the enumeration tree is: x 1 = 0 S x 1 = 1 x 2 = 0 S 0 S 1 x 3 = 0 S 00 S 01 S 10 S 11 S 000 S 001 S 010 S 011 S 100 S 101 S 110 S 111 6

Bounding Let s consider a maximization problem (gurobi s default is minimization) Let z k be an upper bound on z k (dual bound) Let z k be a lower bound on z k (primal bound) (z k z k z k ) 7

Bounding Let s consider a maximization problem (gurobi s default is minimization) Let z k be an upper bound on z k (dual bound) Let z k be a lower bound on z k (primal bound) (z k z k z k ) z = 7

Bounding Let s consider a maximization problem (gurobi s default is minimization) Let z k be an upper bound on z k (dual bound) Let z k be a lower bound on z k (primal bound) (z k z k z k ) z = max k z k is a lower bound on z z = 7

Bounding Let s consider a maximization problem (gurobi s default is minimization) Let z k be an upper bound on z k (dual bound) Let z k be a lower bound on z k (primal bound) (z k z k z k ) z = max k z k is a lower bound on z z = max k z k is an upper bound on z 7

Pruning 27 13 z = z = 20 20 25 15 8

Pruning 20 20 27 13 25 15 z = 25 z = 20 pruned by optimality 8

Pruning 20 20 27 13 25 15 z = 25 z = 20 pruned by optimality 27 13 z = z = 20 18 26 21 8

Pruning 20 20 27 13 25 15 z = 25 z = 20 pruned by optimality 20 18 27 13 26 21 z = 26 z = 21 pruned by bounding 8

Pruning 20 20 27 13 25 15 z = 25 z = 20 pruned by optimality 20 18 27 13 26 21 z = 26 z = 21 pruned by bounding 40 z = z = 24 13 37 8

Pruning 20 20 27 13 25 15 z = 25 z = 20 pruned by optimality 20 18 27 13 26 21 z = 26 z = 21 pruned by bounding 24 13 40 37 z = 37 z = 13 nothing to prune 8

Pruning 27 13 26 14 infeas. z = 26 z = 14 pruned by infeasibility 9

Example max x 1 + 2x 2 x 1 + 4x 2 8 4x 1 + x 2 8 x 1, x 2 0, integer Solve LP x1 x2 x3 x4 -z b ---+----+----+----+----+----+--- 1 4 1 0 0 8 4 1 0 1 0 8 ---+----+----+----+----+----+--- 1 2 0 0 1 0 x 2 x 1 + 4x 2 = 8 x 1 x 1 + 2x 2 = 1 4x 1 + x 2 = 8 10

Example max x 1 + 2x 2 x 1 + 4x 2 8 4x 1 + x 2 8 x 1, x 2 0, integer Solve LP x1 x2 x3 x4 -z b ---+----+----+----+----+----+--- 1 4 1 0 0 8 4 1 0 1 0 8 ---+----+----+----+----+----+--- 1 2 0 0 1 0 x1 x2 x3 x4 -z b --------------+----+------+----+------+----+---- I =I-II 0 15/4 1-1/4 0 6 II =1/4II 1 1/4 0 1/4 0 2 --------------+----+------+----+------+----+---- III =III-II 0 7/4 0-1/4 0-2 x 2 x 1 + 4x 2 = 8 x 1 x 1 + 2x 2 = 1 4x 1 + x 2 = 8 10

continuing x1 x2 x3 x4 -z b ----------------+----+----+-------+-------+----+--------- I =4/15I 0 1 4/15-1/15 0 24/15 II =II-1/4I 1 0-1/15 4/15 0 24/15 ----------------+----+----+-------+-------+----+--------- III =III-7/4I 0 0-7/15-3/5 1-2-14/5 x 2 = 1 + 3/5 = 1.6 x 1 = 8/5 The optimal solution will not be more than 2 + 14/5 = 4.8 11

continuing x1 x2 x3 x4 -z b ----------------+----+----+-------+-------+----+--------- I =4/15I 0 1 4/15-1/15 0 24/15 II =II-1/4I 1 0-1/15 4/15 0 24/15 ----------------+----+----+-------+-------+----+--------- III =III-7/4I 0 0-7/15-3/5 1-2-14/5 x 2 = 1 + 3/5 = 1.6 x 1 = 8/5 The optimal solution will not be more than 2 + 14/5 = 4.8 Both variables are fractional, we pick one of the two: 4.8 x 1 1 x 1 2 11

continuing x1 x2 x3 x4 -z b ----------------+----+----+-------+-------+----+--------- I =4/15I 0 1 4/15-1/15 0 24/15 II =II-1/4I 1 0-1/15 4/15 0 24/15 ----------------+----+----+-------+-------+----+--------- III =III-7/4I 0 0-7/15-3/5 1-2-14/5 x 2 = 1 + 3/5 = 1.6 x 1 = 8/5 The optimal solution will not be more than 2 + 14/5 = 4.8 Both variables are fractional, we pick one of the two: 4.8 x 1 1 x 1 2 x 2 x 1 = 1 x 1 + 4x 2 = 8 x 1 x 1 + 2x 2 = 1 4x 1 + x 2 = 8 11

Let s consider first the left branch: 12

Let s consider first the left branch: x1 x2 x3 x4 x5 -z b ---+----+----+-------+-------+----+----+------- 1 0 0 0 1 0 1 0 1 4/15-1/15 0 0 24/15 1 0-1/15 4/15 0 0 24/15 ---+----+----+-------+-------+----+----+------- 0 0-7/15-3/5 0 1-24/5 12

Let s consider first the left branch: x1 x2 x3 x4 x5 -z b ---+----+----+-------+-------+----+----+------- 1 0 0 0 1 0 1 0 1 4/15-1/15 0 0 24/15 1 0-1/15 4/15 0 0 24/15 ---+----+----+-------+-------+----+----+------- 0 0-7/15-3/5 0 1-24/5 x1 x2 x3 x4 x5 b -z ----------+----+----+-------+-------+----+---+------- I =I-III 0 0 1/15-4/15 1 0-9/15 0 1 4/15-1/15 0 0 24/15 1 0-1/15 4/15 0 0 24/15 ----------+----+----+-------+-------+----+---+------- 0 0-7/15-3/5 0 1-24/5 12

Let s consider first the left branch: x1 x2 x3 x4 x5 -z b ---+----+----+-------+-------+----+----+------- 1 0 0 0 1 0 1 0 1 4/15-1/15 0 0 24/15 1 0-1/15 4/15 0 0 24/15 ---+----+----+-------+-------+----+----+------- 0 0-7/15-3/5 0 1-24/5 x1 x2 x3 x4 x5 b -z ----------+----+----+-------+-------+----+---+------- I =I-III 0 0 1/15-4/15 1 0-9/15 0 1 4/15-1/15 0 0 24/15 1 0-1/15 4/15 0 0 24/15 ----------+----+----+-------+-------+----+---+------- 0 0-7/15-3/5 0 1-24/5 x1 x2 x3 x4 x5 b -z -------------+----+----+--------+----+-------+---+-------- I =-15/4I 0 0-1/4 1-15/4 0 9/4 II =II-1/4I 0 1 15/60 0-1/4 0 7/4 III =III+I 1 0 0 0 1 0 1 -------------+----+----+--------+----+-------+---+-------- 0 0-37/60 0-9/4 1-90/20 always a b term negative after branching: b 1 = b 3 b 1 = b 3 b 3 < 0 Dual simplex: min j { c j a ij : a ij < 0} 12

Let s branch again 4.8 x 1 1 x 1 2 4.5 x 2 1 x 2 2 13

Let s branch again 4.8 x 1 1 x 1 2 x 2 4.5 x 2 1 x 2 2 x 1 + 4x 2 = 8 x 1 x 1 + 2x 2 = 1 4x 1 + x 2 = 8 13

Let s branch again x 1 1 4.8 x 1 2 x 2 x 2 1 B 4.5 x 2 2 A C x 1 + 4x 2 = 8 x 1 x 1 + 2x 2 = 1 4x 1 + x 2 = 8 We have three open problems. Which one we choose next? Let s take A. 13

x1 x2 x3 x4 x5 x6 b -z ---+----+----+--------+----+-------+----+---+------ 0-1 0 0 0 1 0-2 0 0-1/4 1-15/4 0 9/4 0 1 15/60 0-1/4 0 7/4 1 0 0 0 1 0 1 ---+----+----+--------+----+-------+----+---+------ 0 0-37/60 0-9/4 1-9/2 14

x1 x2 x3 x4 x5 x6 b -z ---+----+----+--------+----+-------+----+---+------ 0-1 0 0 0 1 0-2 0 0-1/4 1-15/4 0 9/4 0 1 15/60 0-1/4 0 7/4 1 0 0 0 1 0 1 ---+----+----+--------+----+-------+----+---+------ 0 0-37/60 0-9/4 1-9/2 x1 x2 x3 x4 x5 x6 b -z -------+----+----+--------+----+-------+----+---+------ III+I 0 0 1/4 0-1/4 1 0-1/4 0 0-1/4 1-15/4 0 9/4 0 1 15/60 0-1/4 0 7/4 1 0 0 0 1 0 1 -------+----+----+--------+----+-------+----+---+------ 0 0-37/60 0-9/4 1-9/2 continuing we find: x 1 = 0 x 2 = 2 OPT = 4 14

The final tree: x 2 1 4.8 x 1 2 x 2 1 4.5 x 2 2 2 2 x 1 =2 x 2 =0 x 1 =1 x 2 =1 3 3 4 4 x 1 =0 x 2 =2 The optimal solution is 4. 15

Pruning Pruning: 1. by optimality: z k = max{c T x : x S k } 2. by bound z k z Example: 5.8 4.5 2.3 4 4 3. by infeasibility S k = 16

B&B Components Bounding: 1. LP relaxation 2. Lagrangian relaxation 3. Combinatorial relaxation 4. Duality 17

B&B Components Bounding: 1. LP relaxation 2. Lagrangian relaxation 3. Combinatorial relaxation 4. Duality Branching: S 1 = S {x : x j x j } S 2 = S {x : x j x j } thus the current optimum is not feasible either in S 1 or in S 2. 17

B&B Components Bounding: 1. LP relaxation 2. Lagrangian relaxation 3. Combinatorial relaxation 4. Duality Branching: S 1 = S {x : x j x j } S 2 = S {x : x j x j } thus the current optimum is not feasible either in S 1 or in S 2. Which variable to choose? Eg: Most fractional variable arg max j C min{f j, 1 f j } 17

B&B Components Bounding: 1. LP relaxation 2. Lagrangian relaxation 3. Combinatorial relaxation 4. Duality Branching: S 1 = S {x : x j x j } S 2 = S {x : x j x j } thus the current optimum is not feasible either in S 1 or in S 2. Which variable to choose? Eg: Most fractional variable arg max j C min{f j, 1 f j } Choosing Node for Examination from the list of active (or open): Depth First Search (a good primal sol. is good for pruning + easier to reoptimize by just adding a new constraint) Best Bound First: (eg. largest upper: z s = max k z k or largest lower - to die fast) Mixed strategies 17

Reoptimizing: dual simplex Updating the Incumbent: when new best feasible solution is found: z = max{z, 4} Store the active nodes: bounds + optimal basis (remember the revised simplex!) 18

Enhancements Preprocessor: constraint/problem/structure specific tightening bounds redundant constraints variable fixing: eg: max{c T x : Ax b, l x u} fix x j = l j if c j < 0 and a ij > 0 for all i fix x j = u j if c j > 0 and a ij < 0 for all i 19

Enhancements Preprocessor: constraint/problem/structure specific tightening bounds redundant constraints variable fixing: eg: max{c T x : Ax b, l x u} fix x j = l j if c j < 0 and a ij > 0 for all i fix x j = u j if c j > 0 and a ij < 0 for all i Priorities: establish the next variable to branch 19

Enhancements Preprocessor: constraint/problem/structure specific tightening bounds redundant constraints variable fixing: eg: max{c T x : Ax b, l x u} fix x j = l j if c j < 0 and a ij > 0 for all i fix x j = u j if c j > 0 and a ij < 0 for all i Priorities: establish the next variable to branch Special ordered sets SOS (or generalized upper bound GUB) k x j = 1 x j {0, 1} j=1 instead of: S 0 = S {x : x j = 0} and S 1 = S {x : x j = 1} {x : x j = 0} leaves k 1 possibilities {x : x j = 1} leaves only 1 possibility hence tree unbalanced here: S 1 = S {x : x ji = 0, i = 1..r} and S 2 = S {x : x ji = 0, i = r + 1,.., k}, r = min{t : t i=1 x j i 1 2 } 19

Cutoff value: a user-defined primal bound to pass to the system. Simplex strategies: simplex is good for reoptimizing but for large models interior points methods may work best. 20

Cutoff value: a user-defined primal bound to pass to the system. Simplex strategies: simplex is good for reoptimizing but for large models interior points methods may work best. Strong branching: extra work to decide more accurately on which variable to branch: 1. choose a set C of fractional variables 2. reoptimize for each of them (in case for limited iterations) 3. z j, z j (dual bound of down and up branch) j = arg min j C max{z j, z j } ie, choose variable with largest decrease of dual bound, eg UB for max 20

There are four common reasons because integer programs can require a significant amount of solution time: 1. There is lack of node throughput due to troublesome linear programming node solves. 2. There is lack of progress in the best integer solution, i.e., the upper bound. 3. There is lack of progress in the best lower bound. 4. There is insufficient node throughput due to numerical instability in the problem data or excessive memory usage. 21

There are four common reasons because integer programs can require a significant amount of solution time: 1. There is lack of node throughput due to troublesome linear programming node solves. 2. There is lack of progress in the best integer solution, i.e., the upper bound. 3. There is lack of progress in the best lower bound. 4. There is insufficient node throughput due to numerical instability in the problem data or excessive memory usage. For 2) or 3) the gap best feasible-dual bound is large: gap = Primal bound Dual bound Primal bound + ɛ 100 21

heuristics for finding feasible solutions (generally NP-complete problem) find better lower bounds if they are weak: addition of cuts, stronger formulation, branch and cut Branch and cut: a B&B algorithm with cut generation at all nodes of the tree. (instead of reoptimizing, do as much work as possible to tighten) Cut pool: stores all cuts centrally Store for active node: bounds, basis, pointers to constraints in the cut pool that apply at the node 22

Relative Optimality Gap In CPLEX: gap = best dual bound best integer best integer + 10 11 In SCIP and MIPLIB standard: gap = pb db inf{ z, z [db, pb]} 100 for a minimization problem (if pb 0 and db 0 then pb db db ) if db = pb = 0 then gap = 0 if no feasible sol found or db 0 pb then the gap is not computed. 23

Last standard avoids problem of non decreasing gap if we go through zero 3186 2520-666.6217 4096 956.6330-667.2010 1313338 169.74% 3226 2560-666.6205 4097 956.6330-667.2010 1323797 169.74% 3266 2600-666.6201 4095 956.6330-667.2010 1335602 169.74% Elapsed real time = 2801.61 sec. (tree size = 77.54 MB, solutions = 2) * 3324+ 2656-125.5775-667.2010 1363079 431.31% 3334 2668-666.5811 4052-125.5775-667.2010 1370748 431.31% 3380 2714-666.5799 4017-125.5775-667.2010 1388391 431.31% 3422 2756-666.5791 4011-125.5775-667.2010 1403440 431.31% 24

Advanced Techniques We did not treat: LP: Dantzig Wolfe decomposition LP: Column generation LP: Delayed column generation IP: Branch and Price LP: Benders decompositions LP: Lagrangian relaxation 25

Outline 1. 2. 27

rules Consider S = {x : a 0 x 0 + n j=1 a jx j b, l j x j u j, j = 0..n} Bounds on variables. If a 0 > 0 then: x 0 b a j l j a j u j /a 0 j:a j >0 j:a j >0 j:a j <0 and if a 0 < 0 then x 0 b a j l j a j u j /a 0 j:a j <0 28

rules Consider S = {x : a 0 x 0 + n j=1 a jx j b, l j x j u j, j = 0..n} Bounds on variables. If a 0 > 0 then: x 0 b a j l j a j u j /a 0 j:a j >0 j:a j >0 j:a j <0 and if a 0 < 0 then x 0 b a j l j a j u j /a 0 j:a j <0 Redundancy. The constraint n j=0 a jx j b is redundant if a j u j + a j l j b j:a j >0 j:a j <0 28

Infeasibility: S = if (swapping lower and upper bounds from previous case) a j l j + a j u j > b j:a j >0 j:a j <0 29

Infeasibility: S = if (swapping lower and upper bounds from previous case) a j l j + a j u j > b j:a j >0 j:a j <0 Variable fixing. For a max problem in the form max{c T x : Ax b, l x u} if i = 1..m : a ij 0, c j < 0 then fix x j = l j if i = 1..m : a ij < 0, c j > 0 then fix x j = u j 29

Infeasibility: S = if (swapping lower and upper bounds from previous case) a j l j + a j u j > b j:a j >0 j:a j <0 Variable fixing. For a max problem in the form max{c T x : Ax b, l x u} if i = 1..m : a ij 0, c j < 0 then fix x j = l j if i = 1..m : a ij < 0, c j > 0 then fix x j = u j Integer variables: l j x j u j 29

Infeasibility: S = if (swapping lower and upper bounds from previous case) a j l j + a j u j > b j:a j >0 j:a j <0 Variable fixing. For a max problem in the form max{c T x : Ax b, l x u} if i = 1..m : a ij 0, c j < 0 then fix x j = l j if i = 1..m : a ij < 0, c j > 0 then fix x j = u j Integer variables: l j x j u j Binary variables. Probing: add a constraint, eg, x 2 = 0 and check what happens 29

Example max 2x 1 + x 2 x 3 R1 : 5x 1 2x 2 + 8x 3 15 R2 : 8x 1 + 3x 2 x 3 9 R3 : x 1 + x 2 + x 3 6 0 x 1 3 0 x 2 1 x 3 1 30

Example max 2x 1 + x 2 x 3 R1 : 5x 1 2x 2 + 8x 3 15 R2 : 8x 1 + 3x 2 x 3 9 R3 : x 1 + x 2 + x 3 6 0 x 1 3 0 x 2 1 x 3 1 {}}{ R1 :5x 1 15 + 2x 2 8x 3 15 + 2 1 8 u 2 l 3 {}}{ 1 = 9 x 1 9/5 8x 3 15 + 2x 2 5x 1 15 + 2 1 5 0 = 17 x 3 17/8 2x 2 5x 1 + 8x 3 15 5 0 + 8 1 = 7 x 2 7/2, x 2 0 R2 :8x 1 9 3x 2 + x 3 9 3 + 1 = 7 x 1 7/8 R1 :8x 3 15 + 2x 2 5x 1 15 + 2 5 7/8 = 101/8 x 3 101/64 R3 : x 1 + x 2 + x 3 9/5 + 1 + 101/64 < 6 Hence R3 is redundant

Example max 2x 1 + x 2 x 3 R1 : 5x 1 2x 2 + 8x 3 15 R2 : 8x 1 + 3x 2 x 3 9 R3 : x 1 + x 2 + x 3 6 0 x 1 3 0 x 2 1 x 3 1 {}}{ R1 :5x 1 15 + 2x 2 8x 3 15 + 2 1 8 u 2 l 3 {}}{ 1 = 9 x 1 9/5 8x 3 15 + 2x 2 5x 1 15 + 2 1 5 0 = 17 x 3 17/8 2x 2 5x 1 + 8x 3 15 5 0 + 8 1 = 7 x 2 7/2, x 2 0 30

Example max 2x 1 + x 2 x 3 R1 : 5x 1 2x 2 + 8x 3 15 R2 : 8x 1 + 3x 2 x 3 9 R3 : x 1 + x 2 + x 3 6 0 x 1 3 0 x 2 1 x 3 1 {}}{ R1 :5x 1 15 + 2x 2 8x 3 15 + 2 1 8 u 2 l 3 {}}{ 1 = 9 x 1 9/5 8x 3 15 + 2x 2 5x 1 15 + 2 1 5 0 = 17 x 3 17/8 2x 2 5x 1 + 8x 3 15 5 0 + 8 1 = 7 x 2 7/2, x 2 0 R2 :8x 1 9 3x 2 + x 3 9 3 + 1 = 7 x 1 7/8 R1 :8x 3 15 + 2x 2 5x 1 15 + 2 5 7/8 = 101/8 x 3 101/64 30

Example max 2x 1 + x 2 x 3 R1 : 5x 1 2x 2 + 8x 3 15 R2 : 8x 1 + 3x 2 x 3 9 R3 : x 1 + x 2 + x 3 6 0 x 1 3 0 x 2 1 x 3 1 {}}{ R1 :5x 1 15 + 2x 2 8x 3 15 + 2 1 8 u 2 l 3 {}}{ 1 = 9 x 1 9/5 8x 3 15 + 2x 2 5x 1 15 + 2 1 5 0 = 17 x 3 17/8 2x 2 5x 1 + 8x 3 15 5 0 + 8 1 = 7 x 2 7/2, x 2 0 R2 :8x 1 9 3x 2 + x 3 9 3 + 1 = 7 x 1 7/8 R1 :8x 3 15 + 2x 2 5x 1 15 + 2 5 7/8 = 101/8 x 3 101/64 R3 : x 1 + x 2 + x 3 9/5 + 1 + 101/64 < 6 Hence R3 is redundant 30

Example max 2x 1 + x 2 x 3 R1 : 5x 1 2x 2 + 8x 3 15 R2 : 8x 1 + 3x 2 x 3 9 7/8 x 1 9/5 0 x 2 1 1 x 3 101/64 31

Example max 2x 1 + x 2 x 3 R1 : 5x 1 2x 2 + 8x 3 15 R2 : 8x 1 + 3x 2 x 3 9 7/8 x 1 9/5 0 x 2 1 1 x 3 101/64 Increasing x 2 makes constraints satisfied x 2 = 1 Decreasing x 3 makes constraints satisfied x 3 = 1 31

Example max 2x 1 + x 2 x 3 R1 : 5x 1 2x 2 + 8x 3 15 R2 : 8x 1 + 3x 2 x 3 9 7/8 x 1 9/5 0 x 2 1 1 x 3 101/64 Increasing x 2 makes constraints satisfied x 2 = 1 Decreasing x 3 makes constraints satisfied x 3 = 1 We are left with: max{2x 1 : 7/8 x 1 9/5} 31

for Set Covering/Partitioning 1. if e T i A = 0 then the ith row can never be satisfied [ 0 0... 1... 0 ] 0... 0... 0 = 0 0 0. 0 0 32

for Set Covering/Partitioning 1. if e T i A = 0 then the ith row can never be satisfied [ 0 0... 1... 0 ] 0... 0... 0 = 0 0 0. 0 0 2. if e T i A = e k then x k = 1 in every feasible solution [ 0 0... 1... 0 ] 0... 1... 0 = 0.. 1. 0 0 32

for Set Covering/Partitioning 1. if e T i A = 0 then the ith row can never be satisfied [ 0 0... 1... 0 ] 0... 0... 0 = 0 0 0. 0 0 2. if e T i A = e k then x k = 1 in every feasible solution [ 0 0... 1... 0 ] 0... 1... 0 = 0.. 1. 0 0 In SPP can remove all rows t with a tk = 1 and set x j = 0 (ie, remove cols) for all cols that cover t 32

3. if e T t A e T p A then we can remove row t, row p dominates row t (by covering p we cover t) t 1 1 1 p 1 1

3. if e T t A e T p A then we can remove row t, row p dominates row t (by covering p we cover t) t 1 1 1 p 1 1 In SPP we can remove all cols j: a tj = 1, a pj = 0 4. if j S Ae j = Ae k and j S c j c k then we can cover the rows by Ae k more cheaply with S and set x k = 0 (Note, we cannot remove S if j S c j c k ) 1 1 1 1 1 1 0 0 0 0 1 1 0 0 0 0

Summary 1. 2. 34