branch and cut l.
Skip this Video
Loading SlideShow in 5 Seconds..
Branch-and-Cut PowerPoint Presentation
Download Presentation

Loading in 2 Seconds...

play fullscreen
1 / 61

Branch-and-Cut - PowerPoint PPT Presentation

  • Uploaded on

Branch-and-Cut. Valid inequality: an inequality satisfied by all feasible solutions Cut: a valid inequality that is not part of the current formulation Violated cut: a cut that is not satisfied by the solution to the current LP relaxation. Branch-and-Cut.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about 'Branch-and-Cut' - Samuel

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
branch and cut
  • Valid inequality: an inequality satisfied by all feasible solutions
  • Cut: a valid inequality that is not part of the current formulation
  • Violated cut: a cut that is not satisfied by the solution to the current LP relaxation
branch and cut2

Branch-and-cut is a generalization of branch-and-bound where, after solving the LP relaxation, and having not been successful in pruning the node on the basis of the LP solution, we try to find a violated cut. If one or more violated cuts are found, they are added to the formulation and the LP is solved again. If none are found, we branch.

branch and cut3

Given a solution to the LP relaxation of a MIP that does not satisfy all the integrality constraints, the separation problem is to find a violated cut.

cut classification
Cut Classification
  • General purpose
  • Relaxation
  • Problem specific
cut classification5
Cut Classification
  • General purpose: a fractional extreme point can always be separated
    • Gomory cuts
    • 0-1 disjunctive cuts
cut classification6
Cut Classification
  • Relaxation cuts:
    • 0-1 knapsack set
    • Continuous 0-1 knapsack set
    • Node packing
cut classification7
Cut Classification
  • Problem specific: generally facets, derived from problem structure
    • blossom inequalities for matching
    • comb inequalities for TSP
lift and project cuts

with optimal solution

Lift-and-Project cuts
  • A Mixed 0-1 Program
  • its LP Relaxation
lift and project cuts9
Lift-and-Project cuts
  • Generate cutting planes for any mixed 0-1 program:
  • Disjunction
  • Descriptionof
  • Choose a set of inequalities valid for Pi thatcut off

One side of the



The other side of

the disjunction


The convex-hull of the

union of the disjunctive sets


One facet of the convex-hull

but it is also a cut!



The new “feasible” solution!

how do we get disjunctive cuts in practice

Hence, we have a linear description of the inequalities valid for Pi.

How do we get disjunctive cuts in practice?
  • A cut a x >b is valid for Pi if and only if (a, b) satisfies

Generate a cutting plane by:

i) Requiring that inequality be valid, i.e. (a, b)Î Pi;

ii) Requiring that it cuts-off the current fractional point

relaxation cuts
Relaxation Cuts
  • A valid inequality for a relaxation of a problem is also a valid inequality for the problem itself
  • Idea: Derive valid inequalities for common relaxations
cover inequalities
Cover Inequalities
  • 0-1 integer set
  • Cover C
  • Minimal cover C
  • Cover inequality
  • Given a point find a cover C such that
  • Let zj = 1 if element j is in the cover

zj = 0 if element j is not in the cover

  • If v < 1, then we identified a violated cover
  • Find valid inequality
  • Case 1: xk = 0

Valid for all k

  • Case 2: xk = 1
  • Define
  • Let k  N\C. Find k such that

is valid for

  • verified if
  • where
  • Proposition: Let k  N\C, then
  • is valid for
sequential lifting
Sequential Lifting
  • We can repeat the same procedure to lift the other variables in N\C
  • Different lifting sequence can lead to a different lifted cover inequality!
continuous 0 1 knapsack
Continuous 0-1 Knapsack
  • Mixed integer set
  • We can apply similar ideas and results concerning lifting to generate valid inequalities for MIPs
node packing relaxation
Node Packing Relaxation
  • Problem
  • Implications
node packing relaxation32
Node Packing Relaxation
  • Conflict graph
  • Clique inequality
cut generation
Cut generation
  • Clique inequalities
  • Odd-cycle inequalities
cut management
Cut Management
  • Cut generation takes time (even if we are not successful)
  • Cuts increase the size of the formulation (and thus increases the time it takes to solve the LP relaxation)
  • Only useful if it leads to reduced overall solution times !
cut management35
Cut Management
  • When and how many violated cuts to add the current formulation ?
  • When and which cuts to delete from the current formulation ?
cut management36
Cut Management
  • Do not generate cuts at every node of the search tree
  • Limit the rounds of cut generation per node
  • Limit the number of cuts generated per round of cut generation
  • Delete inactive cuts
cut management37
Cut Management

Do not generate cuts at every node of the search tree

1. Only at the root node (cut-and-branch)

2. Only at the top k levels of the search tree

3. Only at the first k evaluated nodes (best-first search)

4. Every kth evaluated node (skip factor)

cut management38
Cut Management

Delete inactive cuts

If the dual variable associated with a cut has been 0 for k consecutive iterations, then delete the cut and move it to the cut pool

cut management39
Cut Management

Cut generator

Active formulation

Cut pool

branch and price
  • Branch-and-price is a generalization of LP based branch-and-bound specifically designed to handle integer programs that contain a huge number of variables
branch and price46
  • Columns are left out of the LP relaxation because there are too many to handle efficiently and most of them will have their associated variable equal to zero in an optimal solution anyway
  • To check the optimality of an LP solution, a pricing problem is solved to try to identify columns with profitable reduced cost
branch and price47
  • If profitable reduced cost columns are found, they are added and the LP relaxation is resolved
  • If no profitable columns are found, the LP solution is optimal
  • Branching occurs when the optimal LP solution does not satisfy the integrality conditions
branch and price48
  • Branch-and-price applies column generation at every node of the branch-and-bound tree
why use formulations with a huge number of variables
Why use formulations with a huge number of variables ?
  • Compact formulation may have a weak LP relaxation
  • Compact formulation may have a symmetric structure
  • Provides a decomposition in master and pricing problem
  • Only choice
  • Conventional branching on variables may not be effective because fixing variables destroys the structure of the pricing problem
  • Column generation often converges slowly and solving LPs to optimality may be computationally prohibitive
generalized assignment problem
Generalized Assignment Problem
  • In the GAP the objective is to find a maximum profit assignment of m tasks to n machines such that each task is assigned to precisely one machine subject to capacity restrictions on the machines
  • The LP relaxation of the master problem is tighter then the LP relaxation of the natural formulation because certain fractional solutions are eliminated. Specifically, all fractional solution solutions that are not convex combinations of 0-1 solutions to the knapsack constraints
solving lp relaxation
Solving LP Relaxation
  • Restricted master problem
  • Pricing problem
  • Standard branching on the  variables creates problem on the branch where it is set to zero
  • Solution: Branch on original variables:
  • Branch xij = 0:
    • No columns for machine j with a 1 in row i
  • Branch xij = 1:
    • All columns for machine j have a 1 in row i
    • All columns for machine kj have a 0 in row i