the branch-and-cut algorithm for solving mixed …the branch-and-cut algorithm for solving...
TRANSCRIPT
The Branch-and-Cut Algorithm for SolvingMixed-Integer Optimization Problems
IMA New Directions Short Course on Mathematical Optimization
Jim Luedtke
Department of Industrial and Systems EngineeringUniversity of Wisconsin-Madison
August 10, 2016
Jim Luedtke (UW-Madison) Branch-and-Cut Lecture Notes 1 / 54
Branch-and-Bound
Branch-and-Bound
Basic idea behind most algorithms for solving integer programmingproblems
Solve a relaxation of the problem
Some constraints are ignored or replaced with less stringent constraints
Gives an upper bound on the true optimal value
If the relaxation solution is feasible, it is optimal
Otherwise, we divide the feasible region (branch) and repeat
Jim Luedtke (UW-Madison) Branch-and-Cut Lecture Notes 3 / 54
Branch-and-Bound
Linear Programming Relaxation
Consider the integer program:
MILP: z∗ = max{c>x : x ∈ S}
whereS := {x ∈ Rn
+ : Ax ≤ b, xj ∈ Z, j ∈ J}
Linear programming relaxation of MILP
max{c>x : x ∈ P ′}
whereP ′ := {x ∈ Rn
+ : A′x ≤ b′}
and S ⊆ P ′
Jim Luedtke (UW-Madison) Branch-and-Cut Lecture Notes 4 / 54
Branch-and-Bound
Linear Programming Relaxation
MILP: z∗ = max{c>x : x ∈ S}
whereS := {x ∈ Rn
+ : Ax ≤ b, xj ∈ Z, j ∈ J}
Natural linear programming relaxation
z0 = max{c>x : x ∈ P0}
where the P0 is the natural linear relaxation
P0 = {x ∈ Rn+ : Ax ≤ b}
How does z0 compare to z∗?
What if the solution x0 of the LP relaxation has x0j ∈ Z for all j ∈ J?
Jim Luedtke (UW-Madison) Branch-and-Cut Lecture Notes 5 / 54
Branch-and-Bound
Branching: The “divide” in “Divide-and-conquer”
Generic optimization problem:
z∗ = max{c>x : x ∈ S}
Consider subsets S1, . . . Sk of S which cover S: S =⋃
i Si. Then
max{c>x : x ∈ S} = max1≤i≤k
{max{cx : x ∈ Si}
}In other words, we can optimize over each subset separately.
Usually want Si sets to be disjoint (Si ∩ Sj = ∅ for all i 6= j)
Dividing the original problem into subproblems is called branching
Jim Luedtke (UW-Madison) Branch-and-Cut Lecture Notes 6 / 54
Branch-and-Bound
Bounding: The “Conquer” in “Divide-and-conquer”
Any feasible solution to the problem provides a lower bound L on theoptimal solution value. (x ∈ S ⇒ z∗ ≥ cx).
We can use heuristics to find a feasible solution x
After branching, for each subproblem i we solve a relaxation yielding anupper bound u(Si) on the optimal solution value for the subproblem.
Overall Bound: U = maxi u(Si)
Key: If u(Si) ≤ L, then we don’t need to consider subproblem i.
In MIP, we usually get the upper bound by solving the LP relaxation, butthere are other ways too.
Jim Luedtke (UW-Madison) Branch-and-Cut Lecture Notes 7 / 54
Branch-and-Bound
LP-based Branch-and-Bound for MIP
Let z∗ be the optimal value of the MIP
In LP-based branch-and-bound, we first solve the LP relaxation of theoriginal problem. The result is one of the following:
1 The LP in unbounded ⇒ the MIP is unbounded or infeasible.2 The LP is infeasible ⇒ MIP is infeasible.3 We obtain a feasible solution for the MIP ⇒ it is an optimal solution
to MIP. (L = z∗ = U)4 We obtain an optimal solution to the LP that is not feasible for the
MIP ⇒ Upper Bound. (U = zLP ).
In the first three cases, we are finished.
In the final case, we must branch and recursively solve the resultingsubproblems.
Jim Luedtke (UW-Madison) Branch-and-Cut Lecture Notes 8 / 54
Branch-and-Bound
Terminology
If we picture the subproblemsgraphically, they form a search tree.
Eliminating a problem from furtherconsideration is called pruning.
The act of bounding and thenbranching is called processing.
A subproblem that has not yet beenprocessed is called a candidate.
The set of candidates is thecandidate list.
Jim Luedtke (UW-Madison) Branch-and-Cut Lecture Notes 9 / 54
Branch-and-Bound
LP-based Branch-and-Bound Algorithm
1 Derive a lower bound L using a heuristic method (if possible).
2 Put the original problem on the candidate list.
3 Select a problem S from the candidate list and solve the LP relaxation toobtain the bound u(S)
If the LP is infeasible ⇒ node can be pruned.If u(S) > L and the solution is feasible for the MIP ⇒ set L← u(S).If u(S) ≤ L⇒ node can be pruned.Otherwise, branch. Add the new subproblems to the list.
4 If the candidate list in nonempty, go to Step 3. Otherwise, the algorithm iscompleted.
The “Global” upper bound
U t = max{u(parent(S)) : S in candidate list at step t
}Jim Luedtke (UW-Madison) Branch-and-Cut Lecture Notes 10 / 54
Branch-and-Bound
Let’s Do An Example
maximize5.5x1 + 2.1x2
subject to
−x1 + x2 ≤ 2
8x1 + 2x3 ≤ 17
x1, x2 ≥ 0
x1, x2 integer
Jim Luedtke (UW-Madison) Branch-and-Cut Lecture Notes 11 / 54
Choices in Branch-and-Bound
Choices in Branch-and-Bound
Each of the steps in a branch-and-bound algorithm can be done in manydifferent ways
Heuristics to find feasible solutions – yields lower bounds
Solving a relaxation – yields upper bounds
Node selection – which subproblem to look at next
Branching – dividing the feasible region
You can “help” an integer programming solver by telling it how it shoulddo these steps
You can even implement your own better way to do one or more ofthese steps
You can do better because you know more about your problem
Jim Luedtke (UW-Madison) Branch-and-Cut Lecture Notes 13 / 54
Choices in Branch-and-Bound
How Long Does Branch-and-Bound Take?
Simplistic approximation:
Total time = (Time to process a node)× (Number of nodes)
When making choices in branch-and-bound, think about effect on theseseparately
Question
Which of these is likely to be most important for hard instances?
Jim Luedtke (UW-Madison) Branch-and-Cut Lecture Notes 14 / 54
Choices in Branch-and-Bound Heuristics
Choices in Branch-and-Bound: Heuristics
Practical perspective: finding good feasible solutions is most important
Manager won’t be happy if you tell her you have no solution, but youknow the optimal solution is at most U
A heuristic is an algorithm that tries to find a good fesible solution
No guarantees – maybe fails to find a solution, maybe finds a poor one
But, typically runs fast
Sometimes called “primal heuristics”
Good heuristics help find an optimal solution in branch-and-bound
Key to success: Prune early and often
We prune when u(Si) ≤ L, where L is the best lower bound
Good heuristics ⇒ larger L ⇒ prune more
Jim Luedtke (UW-Madison) Branch-and-Cut Lecture Notes 15 / 54
Choices in Branch-and-Bound Heuristics
Heuristics – Examples
Solving the LP relaxation can be interpreted as a heuristic
Often (usually) fails to give a feasible solution
Rounding/Diving
Round the fractional integer variablesWith those fixed, solve LP to find continuous variable valuesDiving: fix one fractional integer variable, solve LP, continueMany more clever possibilities
Metaheuristics—Simulated Annealing, Tabu Search, GeneticAlgorithms, etc...
Optimization-based heuristics
Solve a heavily restricted version of the problem optimallyRelaxation-induced neighborhood search (RINS), local branching
Problem specific heuristics
This is often a very good way to help an IP solver
Jim Luedtke (UW-Madison) Branch-and-Cut Lecture Notes 16 / 54
Choices in Branch-and-Bound Relaxation
Choices in Branch-and-Bound: Choosing/solving theRelaxation
The relaxation is the most important factor for proving a solution isoptimal
Optimal value of the relaxation yields the upper bound
Recall: we prune when u(Si) ≤ LSmaller (tighter) upper bounds ⇒ prune moreSo the formulation is very important
Time spent solving the relaxation at each node usually dominates thetotal solution time
Want to solve it fast, but also want to solve fewerPotential trade-off: a formulation that yields a better upper bound maybe larger (more time to solve relaxation)
Usually, the formulation with a better upper bound wins
Jim Luedtke (UW-Madison) Branch-and-Cut Lecture Notes 17 / 54
Choices in Branch-and-Bound Relaxation
Solving the LP relaxation Efficiently
Branching is usually done by changing bounds on a variable which isfractional in the current solution (xj ≤ 0 or xj ≥ 1)
Only difference in the LP relaxation in the new subproblem is thisbound change
LP dual solution remains feasibleReoptimize with dual simplexIf choose to process the new subproblem next, can even avoidrefactoring the basis
Jim Luedtke (UW-Madison) Branch-and-Cut Lecture Notes 18 / 54
Choices in Branch-and-Bound Node Selection
Choices in Branch-and-Bound: Node selection
Node selection: Strategy for selecting the next subproblem (node) to beprocessed.
Important, but not as important as heuristics, relaxations, orbranching (to be discussed next)
Often called search strategy
Two different goals:
Minimize overall solution time.
Find a good feasible solution quickly.
Jim Luedtke (UW-Madison) Branch-and-Cut Lecture Notes 19 / 54
Choices in Branch-and-Bound Node Selection
The Best First Approach
One way to minimize overall solution time is to try to minimize thesize of the search tree.
We can achieve this if we choose the subproblem with the best bound(highest upper bound if we are maximizing).
Let’s prove this
A candidate node is said to be critical if its bound exceeds the value ofan optimal solution solution to the IP.Every critical node will be processed no matter what the search orderBest first is guaranteed to examine only critical nodes, therebyminimizing the size of the search tree (for a given fixed choice ofbranching decisions).
Jim Luedtke (UW-Madison) Branch-and-Cut Lecture Notes 20 / 54
Choices in Branch-and-Bound Node Selection
Drawbacks of Best First
1 Doesn’t necessarily find feasible solutions quickly
Feasible solutions are “more likely” to be found deep in the tree
2 Node setup costs are high
The linear program being solved may change quite a bit from one nodeLP solve to the next
3 Memory usage is high
It can require a lot of memory to store the candidate list, since the treecan grow “broad”
Jim Luedtke (UW-Madison) Branch-and-Cut Lecture Notes 21 / 54
Choices in Branch-and-Bound Node Selection
The Depth First Approach
Depth first: always choose the deepest node to process next
Dive until you prune, then back up and go the other way
Avoids most of the problems with best first:
Number of candidate nodes is minimized (saving memory)
Node set-up costs are minimized since LPs change very little from oneiteration to the next
Feasible solutions are usually found quickly
Unfortunately, if the initial lower bound is not very good, then we may endup processing many non-critical nodes.
We want to avoid this extra expense if possible.
Jim Luedtke (UW-Madison) Branch-and-Cut Lecture Notes 22 / 54
Choices in Branch-and-Bound Node Selection
Hybrid Strategies
A Key Insight
If you knew the optimal solution value, the best thing to do would be togo depth first
Idea: Go depth-first until zLP goes below optimal value z∗, thenmake a best-first move.
But we don’t know the optimal value!
Make an estimate zE of the optimal solution valueGo depth-first until zLP ≤ zEThen jump to a better node
Jim Luedtke (UW-Madison) Branch-and-Cut Lecture Notes 23 / 54
Choices in Branch-and-Bound Branching
Choices in branch-and-bound: Branching
If our “relaxed” solution x is not integer feasible, we must decide howto partition the search space into smaller subproblems
The strategy for doing this is called a Branching Rule
Branching wisely is very important
Significantly impacts bounds in subproblemsIt is most important at the top of the branch-and-bound tree
Jim Luedtke (UW-Madison) Branch-and-Cut Lecture Notes 24 / 54
Choices in Branch-and-Bound Branching
Branching in Integer Programming
Most common approach: Changing variable bounds
If x is not integer feasible, choosej ∈ N such that fj := xj − bxjc > 0
Create two problems with additional constraints1 xj ≤ bxjc on one branch2 xj ≥ dxje on other branch
In the case of 0-1 IP, this dichotomy reduces to1 xj = 0 on one branch2 xj = 1 on other branch
Key question
Which variable to branch on?
Jim Luedtke (UW-Madison) Branch-and-Cut Lecture Notes 25 / 54
Choices in Branch-and-Bound Branching
The Goal of Branching
Branching divides one problem into two or more subproblems
We would like to choose the branching that minimizes the sum of thesolution times of all the created subproblems.
This is the solution of the entire subtree rooted at the node.
How do we know how long it will take to solve each subproblem?
Answer: We don’t.
Idea: Try to branch on variables that will cause the upper bounds todecrease the most
This will lead to more pruning, and smaller subtrees
Jim Luedtke (UW-Madison) Branch-and-Cut Lecture Notes 26 / 54
Choices in Branch-and-Bound Branching
Predicting the Bound Change in a Subproblem
How can I (quickly?) estimate the upper bounds that would result frombranching on a variable?
Strong branchingActually solve the LP relaxation of each subproblem for each potentialbranching variable
Pseudo-costsApproximate the bound change based on previous information collectedin the branch-and-bound tree
Hybrid: “Reliability branching”
Tentative branchingLike strong branching, but also add valid inequalities to thesubproblems, and possibly branch a few times
Jim Luedtke (UW-Madison) Branch-and-Cut Lecture Notes 27 / 54
Choices in Branch-and-Bound Branching
Strong Branching: Practicalities
Don’t fully solve the subproblem LPs – just do a few dual simplex pivots
This gives an upper bound on the subproblem bound
How many is “a few”? — empirical study suggests 25 or so
Don’t check subproblem for every candidate branching variable
Which to evaluate?
Look at an estimate of their effectiveness that is very cheap toevaluate
E.g., “most fractional” variables, or pseudocost (next slide)
Perhaps evaluate more candidates near the top of the tree
Fully solving the LPs or evaluating more candidates will probably reducesearch tree size, but likely increases total time
Jim Luedtke (UW-Madison) Branch-and-Cut Lecture Notes 28 / 54
Choices in Branch-and-Bound Branching
Using Pseudo-costs
The pseudo-cost of a variable is an estimate of the per-unit changein the objective function from forcing the value of the variable to berounded up or down. Like a gradient!
For each variable xj , we maintain an up and a down pseudo-cost,denoted P+
j and P−j .
Let fj be the current (fractional) value of variable xj .
An estimate of the change in objective function in each of thesubproblems resulting from branching on xj is given by
D+j = P+
j (1− fj),D−j = P−j fj .
How to get the pseudo-costs?
Jim Luedtke (UW-Madison) Branch-and-Cut Lecture Notes 29 / 54
Choices in Branch-and-Bound Branching
Obtaining and Updating Pseudo-costs
Empirical data
Observe the actual change that occurs after branching on each one ofthe variables and use that as the pseudo-cost
We can either choose to update the pseudo-cost as the calculationprogresses or just use the first pseudo-cost found
Pseudo-costs tend to remain fairly constant
How to initialize? Possibilities:
Use the objective function coefficientUse the average of all known pseudo-costsExplicity initialize the pseudocosts using strong branching – this is thehybrid “reliability branching” approach
Jim Luedtke (UW-Madison) Branch-and-Cut Lecture Notes 30 / 54
Choices in Branch-and-Bound Branching
Combining Multiple Subproblem Bounds
For each candidate branching variable, we calculate an estimate ofthe upper bound change for each subproblem
Either via strong branching or pseudo-costs
How do we combine the two numbers together to form one measureof goodness for choosing a branching variable?
Idea: branch on variable xj∗ with:
j∗ = argmax{D+
j D−j
}.
Other alternative: A weighted sum of (min/max)...
Jim Luedtke (UW-Madison) Branch-and-Cut Lecture Notes 31 / 54
Quality of Formulations
Formalizing MIP formulations
Definition: Formulation
Let X ⊆ {x ∈ Rn : xj ∈ Z, j ∈ J}. A polyhedron P ⊆ Rn is aformulation for X if
X = {x ∈ P : xj ∈ Z, j ∈ J}
There may be multiple valid formulation for a given set X
E.g., two polyhedron P1 and P2, P1 6= P2, with
X = {x ∈ P1 : xj ∈ Z, j ∈ J} = {x ∈ P2 : xj ∈ Z, j ∈ J}
When using branch-and-bound, what makes a formulation “good”?
Jim Luedtke (UW-Madison) Branch-and-Cut Lecture Notes 33 / 54
Quality of Formulations
Extended Formulations
The polyhedron P (used to define a MIP formulation) might berepresented using extra variables:
P = {x ∈ Rn : ∃y ∈ Rp s.t. Ax+By ≤ b}
If we letQ = {(x, y) ∈ Rn+p : Ax+By ≤ b}
then we say P is a projection of Q, and write P = projx(Q)
We say Q is an extension of P , and the representation(Ax+By ≤ b) is an extended formulation of P
A useful result about projections:
Theorem
A projection of a polyhedron is a polyhedron.
Jim Luedtke (UW-Madison) Branch-and-Cut Lecture Notes 34 / 54
Quality of Formulations
All Formulations are NOT Created Equal
Definition: Better formulation
Given two formulations for X, formulation P1 is better than P2 if P1 (P2.
Why this definition?
Jim Luedtke (UW-Madison) Branch-and-Cut Lecture Notes 35 / 54
Quality of Formulations
Best Possible Formulation
Definition: Convex hull
Let X ⊆ Rn. The convex hull of X, denoted conv(X), is the set of allpoints that can be written as a convex combination of points in X:
conv(X) =
{x ∈ Rn : ∃ x1, . . . , xt ∈ X and λ ∈ Rt
+ with
x =∑t
i=1 λixi,∑t
i=1 λi = 1
}.
Theorem
If P is any formulation of X, then conv(X) ⊆ P .
Jim Luedtke (UW-Madison) Branch-and-Cut Lecture Notes 36 / 54
Quality of Formulations
Is conv(X) a Formulation?
To be a formulation, conv(X) must be a polyhedron.
Theorem
If X is the feasible region of a mixed-integer program defined by rationaldata, then conv(X) is a polyhedron.
Easy to prove for bounded pure integer programs.
Jim Luedtke (UW-Madison) Branch-and-Cut Lecture Notes 37 / 54
Quality of Formulations
IP ≡ LP!
Theorem
If x is an extreme point of conv(X), then x ∈ X.
We’ll prove it...
Conclusion
max{c>x : x ∈ X} = max{c>x : x ∈ conv(X)}
So, if X is the feasible region of our MIP, and we know the convex hullof X, we could solve the MIP as a linear program!
⇒ We’d really really really like to know the convex hull of X.
Jim Luedtke (UW-Madison) Branch-and-Cut Lecture Notes 38 / 54
Quality of Formulations
Which Formulation is Better?
To prove P1 is a better formulation than P2
1 Prove P1 ⊆ P2.
Formally: let x ∈ P1, then show x ∈ P2.
2 Give an example that shows P1 6= P2.
I.e., for a specific instance of your problem, find a point x ∈ P2 withx /∈ P1.Or, simply solve LP relaxations: z1 = maxx∈P1
c>x andz2 = maxx∈P2 c
>x: If z1 < z2, this shows P1 6= P2
Given formulations P1 and P2, it is possible that neither is better
But, then there’s an obvious formulation better than them both!
Jim Luedtke (UW-Madison) Branch-and-Cut Lecture Notes 39 / 54
Quality of Formulations Examples of better formulations
Example: “big-M” constraints
Suppose for a binary variable y, you want to model the condition:
y = 1 ⇒ a>x ≤ b
where a ∈ Rn, and x ∈ Q, for some bounded set Q
Model with:a>x− b ≤M(1− y)
where M is a “big enough” number
How big is “big enough”? M ≥M∗, where
M∗ = max{a>x− b : x ∈ Q}
Claim: Using M∗ instead of any M > M∗ is better!
Jim Luedtke (UW-Madison) Branch-and-Cut Lecture Notes 40 / 54
Quality of Formulations Examples of better formulations
Example: Lot Sizing Problem
Recall the single-item uncapacitated lot sizing problem
min
n∑t=1
ptxt +
n∑t=1
htst +
n∑t=1
ftyt
s.t. st−1 + xt − st = dt, t = 1, . . . , n
xt ≤ Dtnyt, t = 1, . . . , n
s0 = sn = 0, st ≥ 0, xt ≥ 0, yt ∈ {0, 1}, t = 1, . . . , n
where Dj` =∑`
t=j dt for j ≤ `.This problem can be solved in polynomial time by dynamicprogramming
Question: Why bother trying to find a good MIP formulation for thisproblem?
Answer: The same structure may appear in more general productionplanning problems, e.g., having multiple products
Jim Luedtke (UW-Madison) Branch-and-Cut Lecture Notes 41 / 54
Quality of Formulations Examples of better formulations
Lot Sizing: Extended Formulation
Let wkt = amount of product made in period k and used to meet demandin period t (k ≤ t)
We relate these variables to the xt variables:
xt =
n∑l=t
wtl, t = 1, . . . , n
Also the inventory variables can be expressed with these new variables:
st =
t∑k=1
n∑l=t+1
wkl, t = 1, . . . , n
Jim Luedtke (UW-Madison) Branch-and-Cut Lecture Notes 42 / 54
Quality of Formulations Examples of better formulations
Lot Sizing: Extended Formulation
Let wkt = amount of product made in period k and used to meet demandin period t (k ≤ t)
So far we’ve done nothing! What more?
New constraints on new variables:
wtl ≤ dlyt, 1 ≤ t ≤ l ≤ n
Compare these to bounds on x (recall xt =∑
l≥twtl):
xt ≤( n∑
l=t
dl
)yt, 1 ≤ t ≤ n
We keep all other constraints ⇒ This formulation can only be better
Jim Luedtke (UW-Madison) Branch-and-Cut Lecture Notes 43 / 54
Quality of Formulations Examples of better formulations
Lot Sizing: Extended formulation
We can also eliminate the x and s variables
Constraint that must meet demands in each time period:
t∑k=1
wkt = dt, t = 1, . . . , n
Expression for holding cost in objective:
n∑l=1
l∑k=1
( l∑t=k
ht)wkl
Expression for production cost in objective:
n∑t=1
t∑k=1
pkwkt
Jim Luedtke (UW-Madison) Branch-and-Cut Lecture Notes 44 / 54
Valid Inequalities/Cuts
Review: Branch-and-Bound
Branch-and-bound works (well) only if obtain good upper bounds fromrelaxation
This motivated search for better formulations
Valid inequalities/cuts:
Adaptively find a better formulation
Jim Luedtke (UW-Madison) Branch-and-Cut Lecture Notes 46 / 54
Valid Inequalities/Cuts
Valid Inequalities
Let X = {x ∈ Rn+ : Ax ≤ b, xj ∈ Z, j ∈ J}
Definition
An inequality πx ≤ π0 is a valid inequality for X if πx ≤ π0 for allx ∈ X. (π ∈ Rn, π0 ∈ R)
Valid inequalities are also called “cutting planes” or “cuts”
Goal of adding valid inequalities to a formulation: improve relaxationbound ⇒ explore fewer branch-and-bound nodes
Key questions
How to find valid inequalities?
How to use them in a branch-and-bound algorithm?
Jim Luedtke (UW-Madison) Branch-and-Cut Lecture Notes 47 / 54
Valid Inequalities/Cuts Using valid inequalities
Using Valid Inequalities
1 Add them to the initial formulation
Creates a formulation with better LP relaxationFeasible only when you have a “small” set of valid inequalitiesEasy to implement
2 Add them only as needed to cut off fractional solutions
Solve LP relaxation, cut off solution with valid inequalities, repeatCut-and-branch: Do this only with the initial LP relaxation (root node)Branch-and-cut: Do this at all nodes in the branch-and-bound tree
Trade-off with increasing effort generating cuts
+ Fewer nodes from better bounds
− More time finding cuts and solving LP
Jim Luedtke (UW-Madison) Branch-and-Cut Lecture Notes 48 / 54
Valid Inequalities/Cuts Using valid inequalities
Branch-and-Cut
At each node in branch-and-bound tree
1 Solve current LP relaxation ⇒ x
2 Attempt to generate valid inequalities that cut off x
3 If cuts found, add to LP relaxation and go to step 1
Why branch-and-cut?
Reduce number of nodes to explore with improved relaxation bounds
Add inequalities required to define feasible region
This approach is the heart of all modern MIP solvers
Jim Luedtke (UW-Madison) Branch-and-Cut Lecture Notes 49 / 54
Valid Inequalities/Cuts Using valid inequalities
Deriving Valid Inequalities
General purpose valid inequalities
Assume only that you have a (mixed or pure) integer set describedwith inequalities
X = {x ∈ Rn+ : Ax ≤ b, xj ∈ Z, j ∈ J}
Critical to success of deterministic MIP solvers
Focus of two lectures tomorrow
Structure-specific valid inequalities
Rely on particular structure that appears in a problem
Combinatorial optimization problems: matching, traveling salesmanproblem, set packing, ...
Knapsack constraints: {x ∈ Zn+ : ax ≤ b}
Flow balance with variable upper bounds, etc.
Jim Luedtke (UW-Madison) Branch-and-Cut Lecture Notes 50 / 54
Valid Inequalities/Cuts Using valid inequalities
Valid Inequalities: Lot Sizing Problem
Recall again the single-item uncapacitated lot sizing problem
min
n∑t=1
ptxt +
n∑t=1
htst +
n∑t=1
ftyt
s.t. st−1 + xt − st = dt, t = 1, . . . , n
xt ≤ Dtnyt, t = 1, . . . , n
s0 = sn = 0, st ≥ 0, xt ≥ 0, yt ∈ {0, 1}, t = 1, . . . , n
where Dj` =∑`
t=j dt for j ≤ `.Valid inequalities for this problem useful for any problem containingthis structure in it, e.g., production planning problems with multipleproducts
Jim Luedtke (UW-Madison) Branch-and-Cut Lecture Notes 51 / 54
Valid Inequalities/Cuts Using valid inequalities
Lot Sizing Valid Inequalities
Let X be the feasible region of the lot sizing problem.
Theorem
Let ` ∈ {1, . . . , n} and S ⊆ {1, . . . , `}. The inequality∑j∈S
xj ≤∑j∈S
Dj`yj + s`
is valid for X.
Jim Luedtke (UW-Madison) Branch-and-Cut Lecture Notes 52 / 54
Valid Inequalities/Cuts Using valid inequalities
Strength of the Lot Sizing Valid Inequalities
Let X be the feasible region of the lot sizing problem.
Theorem
conv(X) is described by the inequalities defining X and the set of all`, S inequalities.
Jim Luedtke (UW-Madison) Branch-and-Cut Lecture Notes 53 / 54
Valid Inequalities/Cuts Using valid inequalities
Separation of `, S Inequalities
For any ` ∈ {1, . . . , n} and S ⊆ {1, . . . , `}: the `, S inequality:∑j∈S
xj ≤∑j∈S
Dj`yj + s`
Given an LP relaxation solution (x, s, y) how to efficiently find a violatedone if one exists?
Try all ` = 1, . . . , n. (Not too many of those!)
For fixed `, what set S defines most violated inequality?
maxS⊆{1,...,`}
∑j∈S(xj −Dj`yj)
S∗` = {j ∈ {1, . . . , `} : xj −Dj`yj > 0}A violated cut exists (defined by `, S∗` ) if and only if∑
j∈S∗`(xj −Dj`yj) > s`
Jim Luedtke (UW-Madison) Branch-and-Cut Lecture Notes 54 / 54