Cynthia Phillips (Sandia National Laboratories)

Slides:



Advertisements
Similar presentations
Branch-and-Bound Technique for Solving Integer Programs
Advertisements

Geometry and Theory of LP Standard (Inequality) Primal Problem: Dual Problem:
Branch-and-Bound In this handout,  Summary of branch-and-bound for integer programs Updating the lower and upper bounds for OPT(IP) Summary of fathoming.
Introduction to Algorithms
Copyright (c) 2003 Brooks/Cole, a division of Thomson Learning, Inc
Lecture 10: Integer Programming & Branch-and-Bound
Basic Feasible Solutions: Recap MS&E 211. WILL FOLLOW A CELEBRATED INTELLECTUAL TEACHING TRADITION.
Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company, for the United States Department of Energy under contract.
Dealing with NP-Complete Problems
Computational Methods for Management and Economics Carla Gomes
Approximation Algorithms
Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company, for the United States Department of Energy under contract.
Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company, for the United States Department of Energy under contract.
Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company, for the United States Department of Energy under contract.
Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company, for the United States Department of Energy under contract.
Review of Reservoir Problem OR753 October 29, 2014 Remote Sensing and GISc, IST.
LP formulation of Economic Dispatch
Daniel Kroening and Ofer Strichman Decision Procedures An Algorithmic Point of View Deciding ILPs with Branch & Bound ILP References: ‘Integer Programming’
1 Lecture 4 Maximal Flow Problems Set Covering Problems.
LINEAR PROGRAMMING SIMPLEX METHOD.
Decision Procedures An Algorithmic Point of View
TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A A A A A A Image:
WOOD 492 MODELLING FOR DECISION SUPPORT
Linear Programming Erasmus Mobility Program (24Apr2012) Pollack Mihály Engineering Faculty (PMMK) University of Pécs João Miranda
15.053Tuesday, April 9 Branch and Bound Handouts: Lecture Notes.
Branch-and-Cut Valid inequality: an inequality satisfied by all feasible solutions Cut: a valid inequality that is not part of the current formulation.
Divide and Conquer Optimization problem: z = max{cx : x  S}
Integer Programming (정수계획법)
OR Chapter 8. General LP Problems Converting other forms to general LP problem : min c’x  - max (-c)’x   = by adding a nonnegative slack variable.
CPSC 536N Sparse Approximations Winter 2013 Lecture 1 N. Harvey TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAAAAAAA.
Lecture.6. Table of Contents Lp –rounding Dual Fitting LP-Duality.
IE 312 Review 1. The Process 2 Problem Model Conclusions Problem Formulation Analysis.
Linear Programming: Formulations, Geometry and Simplex Method Yi Zhang January 21 th, 2010.
TU/e Algorithms (2IL15) – Lecture 12 1 Linear Programming.
Common Intersection of Half-Planes in R 2 2 PROBLEM (Common Intersection of half- planes in R 2 ) Given n half-planes H 1, H 2,..., H n in R 2 compute.
Sullivan Algebra and Trigonometry: Section 12.9 Objectives of this Section Set Up a Linear Programming Problem Solve a Linear Programming Problem.
Approximation Algorithms Duality My T. UF.
Linear Programming Piyush Kumar Welcome to CIS5930.
Chapter 6 Optimization Models with Integer Variables.
Approximation Algorithms based on linear programming.
TU/e Algorithms (2IL15) – Lecture 12 1 Linear Programming.
Linear Programming Many problems take the form of maximizing or minimizing an objective, given limited resources and competing constraints. specify the.
Integer Programming An integer linear program (ILP) is defined exactly as a linear program except that values of variables in a feasible solution have.
The minimum cost flow problem
Lecture 11: Tree Search © J. Christopher Beck 2008.
The CPLEX Library: Mixed Integer Programming
The Simplex Method The geometric method of solving linear programming problems presented before. The graphical method is useful only for problems involving.
Introduction to Operations Research
Linear Programming.
Chap 9. General LP problems: Duality and Infeasibility
Chapter 6. Large Scale Optimization
Chap 3. The simplex method
Integer Programming (정수계획법)
Integer Linear Programming
Linear Programming and Approximation
Chapter 6. Large Scale Optimization
The Simplex Method The geometric method of solving linear programming problems presented before. The graphical method is useful only for problems involving.
2. Generating All Valid Inequalities
Integer Programming (정수계획법)
Flow Feasibility Problems
Chapter 2. Simplex method
BASIC FEASIBLE SOLUTIONS
Chapter 1. Formulations.
Branch-and-Bound Algorithm for Integer Program
Chapter 6. Large Scale Optimization
Branch-and-Bound Technique for Solving Integer Programs
Chapter 2. Simplex method
Integer Linear Programming
1.2 Guidelines for strong formulations
Presentation transcript:

Cynthia Phillips (Sandia National Laboratories) Reconnect ‘04 Solving Integer Programs with Branch and Bound (and Branch and Cut) Cynthia Phillips (Sandia National Laboratories)

One more general branch and bound point Node selection: when working in serial, how do you pick an active node to process next? Usual: best first Select the node with the lowest lower bound With the current incumbent and solution tolerances, you will have to evaluate it anyway If you don’t have a good incumbent finder, you might start with diving: Select the most refined node Once you have an incumbent, switch to best first Slide 2

Mixed-Integer programming (IP) Subject to: Sometimes it’s easier to think of equality, sometime inequality. Use whichever is best at the time. Max is OK too. Slide 3

Branch and Bound Bounding function: solve LP relaxation Branching Select an integer variable xi that’s fractional in the LP solution x* Up child: set Down child: set x* is no longer feasible in either child Incumbent method many incumbent-finding methods to follow in later lectures Obvious: return the LP solution if it is integer Satisfies feasibility-tester constraint Slide 4

Solving Integer Programs: Branch and Bound Lower bound: LP relaxation Root Problem = original fathomed infeasible Slide 5

Branching Decisions: One method Which candidate variable (of thousands or more choices) to choose? Use structural insight (user priorities) when possible. Use gradients (pseudocosts): bound 12 xj = 0.3 15 13.4 xj = 1 xj = 0 . Slide 6

Using gradients Use gradients to compute an expected bound movement for each child Up = up gradient * upward round distance Down = down gradient * downward round distance Try to find a variable for which both children might move the bound Initialization When a variable is fractional for the first time, intialize by “pretending” to branch (better than using an average) Slide 7

Branch Variable Selection method 2: Strong Branching “Try out” interesting subproblems for a while Could be like a gradient “initialization” at every node Could compute part of the subtree This can be expensive, but sometimes these decisions make a huge difference (especially very early) Slide 8

Branching on constraints Can have one child with new constraint: and the other with new constraint: Must cover the subregion Pieces can be omitted, but only if provably have nothing potentially optimal Node bounds are just a special case More generally, partition into many children Slide 9

Special Ordered Sets (SOS) Models selection: Example: time-indexed scheduling xjt = 1 if job j is scheduled at time t Ordered by time Slide 10

Special Ordered Sets: Restricted Set of Values (Review) Variable x can take on only values in Frequently the vi are sorted Capacity of an airplane assigned to a flight The yi’s are a special ordered set. Slide 11

Problems with Simple Branching on SOS Generally want both children to differ from parent substantially For SOS The up child (setting a variable to 1) is very powerful All others in the set go to zero The down child will likely have an LP solution = parent’s “Schedule at any of these 1000 times except this one” Slide 12

Special Ordered Sets: Weak Down-Child Example Variable x can take on only values in Plane capacities, values {50,100,200} If v2=0 (can’t use capacity 100), “fake” a 100-passenger plane by using Slide 13

Branching on SOS Set variables Partition about an index i: Up child has Down child has Examples: Schedule job j before/after time t Use a plane of capacity at least/at most s Slide 14

Branching on SOS Good choice for partition point i is such that as nearly as possible Can compute gradients as with simple variable branching This is not general branching on a constraint: just setting multiple variable upper bounds simultaneously Slide 15

Postponing Branching Branching causes exponential growth of the search tree Is there a way to make progress without branching? Slide 16

Strengthen Linear Program with Cutting Planes (valid inequality) Original LP Feasible region Integer optimal LP optimal solution Make LP polytope closer to integer polytope Use families of constraints too large to explicitly list Exponential, pseudopolynomial, polynomial (n4, n5) Slide 17

Example: Maximum Independent Set 1/2 1/2 1 4 1/2 1/2 1/2 2 7 3 6 5 1/2 1/2 Slide 18

Example: Some Maximum Independent Set Cutting Planes 1/2 1 4 1/2 2 7 3 6 5 1/2 More general clique inequalities (keep going till they’re too hard to find) Slide 19

Value of a Good Feasible Solution Found Early Simulate seeding with optimal (computation is a proof of optimality) Note: proof of optimality depends on a good LP relaxation Root Problem = original fathomed infeasible Within tolerances (and limits of lower-bounding technology), the rest of the search is mandatory. Slide 20

Solving Subproblem LPs Quickly The LP relaxation of a child is usually closely related to its parent’s LP Exploit that similarity by saving the parent’s basis Slide 21

Linear Programming Geometry Optimal point of an LP is at a corner (assuming bounded) feasible Slide 22

Linear Programming Algebra What does a corner look like algebraically? Ax=b Partition A matrix into three parts where B is nonsingular (invertible, square). Reorder x: (xB, xL, xU) We have BxB + LxL + UxU = b B L U Slide 23

Linear Programming Algebra We have BxB + LxL + UxU = b Set all members of xL to their lower bound. Set all members of xU to their upper bound. Let (this is a constant because bounds and u are) Thus we have Set This setting of (xB, xL, xU) is called a basic solution A basic solution satisfies Ax=b by construction If all xB satisfy their bounds ( ), this is a basic feasible solution (BFS) Slide 24

Basic Feasible Solutions We have BxB + LxL + UxU = b Set all members of xL to their lower bound. Set all members of xU to their upper bound. Let (this is a constant because bounds and u are) Set In the common case we have xB are basic variables, N are nonbasic (xL are nonbasic at lower, xU are nonbasic at upper) Slide 25

Algebra and Geometry A BFS corresponds to a corner of the feasible polytope: m inequality constraints (plus bounds) and n variables. Polytope in n-dimensional space. A corner has n tight constraints. With slacks Ax + IxS = b m equality constraints (plus bounds) in n+m variables. A BFS has n tight bound constraints (from the nonbasic variables). Slide 26

Dual (Simplified) primal LP problem is minimize such that The dual problem is: maximize yTb dual(dual(primal)) = primal Frequently has a nice interpretation (max flow/min cut) Slide 27

LP Primal/Dual Pair Primal feasible Opt Dual feasible Slide 28

Parent/Child relationship (intuition) Parent optimal pair (x*,y*) Branching reduces the feasible region of the child LP with respect to its parent and increases the dual feasible region y* is feasible in the child’s dual LP and it’s close to optimal Resolving the children using dual simplex, starting from the parent’s optimal basis can be at least an order of magnitude faster than starting from nothing. Note: Basis can be big. Same space issues as with knapsack example. Slide 29