Upload
others
View
42
Download
0
Embed Size (px)
Citation preview
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
DECOMP: A Framework for Decomposition in Integer Programming
Matthew Galati1 Ted Ralphs2
1SAS Institute – Analytical Solutions – Operations Research and Development
2Lehigh University – Department of Industrial and Systems Engineering
INFORMS 2005Open-Source Tools for Mixed Integer Programming
Galati, Ralphs DECOMP: A Framework for Decomposition in IP
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
Outline
1 Decomposition Methods
2 Integrated Decomposition Methods
3 Structured Separation
4 DECOMP Framework
Galati, Ralphs DECOMP: A Framework for Decomposition in IP
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
Outline
1 Decomposition Methods
2 Integrated Decomposition Methods
3 Structured Separation
4 DECOMP Framework
Galati, Ralphs DECOMP: A Framework for Decomposition in IP
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
Preliminaries
Consider the following integer linear program (ILP):
zIP = minx∈F
{c>x} = minx∈P
{c>x} = minx∈Zn
{c>x | Ax ≥ b}
where
F = {x ∈ Zn | A′x ≥ b′, A′′x ≥ b′′}
F ′ = {x ∈ Zn | A′x ≥ b′}
Q = {x ∈ Rn | A′x ≥ b′, A′′x ≥ b′′}
Q′ = {x ∈ Rn | A′x ≥ b′}
Q′′ = {x ∈ Rn | A′′x ≥ b′′}
Q′
Q′′
(2,1)P
P′
Denote P = conv(F) and P ′ = conv(F ′).
OPT (c,X): Subroutine returns x ∈ X that minimizes c>x.
SEP (x,X): Subroutine returns (a, β) which separates x from X (if exists).
Galati, Ralphs DECOMP: A Framework for Decomposition in IP
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
Preliminaries
Assumption:OPT (c,P) and SEP (x,P) are “hard”.
OPT (c,P′) and SEP (x,P′) are “easy”.
Q′′ can be represented explicitly (description has polynomial size).
P′ must be represented implicitly (description has exponential size).
Example - Traveling Salesman Problem
x(δ({u})) = 2 ∀u ∈ Vx(E(S)) ≤ |S| − 1 ∀S ⊂ V, 3 ≤ |S| ≤ |V | − 1xe ∈ {0, 1} ∀e ∈ E
One classical decomposition of TSP is to look for a spanning subgraph with |V | edges (P ′
= 1-Tree) that satisfies the 2-degree constraints (Q′′).
Galati, Ralphs DECOMP: A Framework for Decomposition in IP
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
Preliminaries
Assumption:OPT (c,P) and SEP (x,P) are “hard”.
OPT (c,P′) and SEP (x,P′) are “easy”.
Q′′ can be represented explicitly (description has polynomial size).
P′ must be represented implicitly (description has exponential size).
Example - Traveling Salesman Problem
x(δ({u})) = 2 ∀u ∈ Vx(E(S)) ≤ |S| − 1 ∀S ⊂ V, 3 ≤ |S| ≤ |V | − 1xe ∈ {0, 1} ∀e ∈ E
One classical decomposition of TSP is to look for a spanning subgraph with |V | edges (P ′
= 1-Tree) that satisfies the 2-degree constraints (Q′′).
00
112
2
33
44
55
66
77
88
99
11
00
11
11
11
22
11
33
11
44
11
55
Galati, Ralphs DECOMP: A Framework for Decomposition in IP
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
Bounding
Goal
Compute a lower bound on zIP by building an approximation to P .
The most common approach is to use the LP relaxation.
zLP = minx∈Q
{c>x} = minx∈Rn
{c>x | A′x ≥ b′, A′′x ≥ b′′}
Decomposition methods attempt to improve on this bound byutilizing the fact that OPT (c,P ′) or SEP (x,P ′) is easy.
zD = minx∈P′
{c>x | A′′x ≥ b′′} = minx∈P′∩Q′′
{c>x} ≥ zLP
P ′ is represented implicitly through solution of a subproblem.
Decomposition Methods
Cutting Plane Method (Outer Method)
Dantzig-Wolfe Method / Lagrangian Method (Inner Methods)
Q′′
Q′ ∩ Q′′
c>
Galati, Ralphs DECOMP: A Framework for Decomposition in IP
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
Bounding
Goal
Compute a lower bound on zIP by building an approximation to P .
The most common approach is to use the LP relaxation.
zLP = minx∈Q
{c>x} = minx∈Rn
{c>x | A′x ≥ b′, A′′x ≥ b′′}
Decomposition methods attempt to improve on this bound byutilizing the fact that OPT (c,P ′) or SEP (x,P ′) is easy.
zD = minx∈P′
{c>x | A′′x ≥ b′′} = minx∈P′∩Q′′
{c>x} ≥ zLP
P ′ is represented implicitly through solution of a subproblem.
Decomposition Methods
Cutting Plane Method (Outer Method)
Dantzig-Wolfe Method / Lagrangian Method (Inner Methods)
Q′′
Q′ ∩ Q′′
P′ ∩ Q′′
c>
Galati, Ralphs DECOMP: A Framework for Decomposition in IP
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
Cutting Plane Method
Cutting Plane Method (CPM)
CPM approximates P by building an outer approximation of P ′ intersected with Q′′.
Let [D,d] denote the facets of P ′, so that P ′ = {x ∈ Rn | Dx ≥ d}.
The method converges to the bound zCP = c>x̂CP = zD .
1 Initialize: Form outer approximation [D0, d0] = [A′′, b′′]
P0O = {x ∈ R
n | D0x ≥ d0} ⊇ P′
2 Master Problem: Obtain optimal primal solution xtCP
ztCP = min
x∈Rn{c>x | Dtx ≥ dt} = min
x∈PtO
{c>x}
3 Subproblem: Call SEP (xtCP ,P′) to generate vi’s for P, violated by xt
CP
4 Update: If found, form a new outer approximation, and go to Step 2
Pt+1O = {x ∈ R
n | Dt+1x ≤ dt+1} ⊇ P′
Galati, Ralphs DECOMP: A Framework for Decomposition in IP
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
Cutting Plane Method
Cutting Plane Method (CPM)
CPM approximates P by building an outer approximation of P ′ intersected with Q′′.
Let [D,d] denote the facets of P ′, so that P ′ = {x ∈ Rn | Dx ≥ d}.
The method converges to the bound zCP = c>x̂CP = zD .
1 Initialize: Form outer approximation [D0, d0] = [A′′, b′′]
P0O = {x ∈ R
n | D0x ≥ d0} ⊇ P′
2 Master Problem: Obtain optimal primal solution xtCP
ztCP = min
x∈Rn{c>x | Dtx ≥ dt} = min
x∈PtO
{c>x}
3 Subproblem: Call SEP (xtCP ,P′) to generate vi’s for P, violated by xt
CP
4 Update: If found, form a new outer approximation, and go to Step 2
Pt+1O = {x ∈ R
n | Dt+1x ≤ dt+1} ⊇ P′
Galati, Ralphs DECOMP: A Framework for Decomposition in IP
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
Dantzig-Wolfe Method (DW)
Dantzig-Wolfe Method
DW approximates P by building an inner approximation of P ′ intersected with Q′′.
Let E denote the extreme points of P ′, so that
P ′ = {x ∈ Rn | x =
X
s∈E
sλs,X
s∈E
λs = 1, λs ≥ 0 ∀s ∈ E}.
The method converges to the bound zDW = c>(P
s∈E sλ̂s) = c>x̂DW = zD
1 Initialize: Form inner approximation E0 ⊂ E
P0I = {x ∈ R
n | x =X
s∈E0
sλs,X
s∈E0
λs = 1, λs ≥ 0 ∀s ∈ E0} ⊆ P′
2 Master Problem: Obtain optimal dual solution (utDW , αt
DW )
z̄tDW = min
λ∈REt+
{c>(X
s∈Et
sλs) | A′′(X
s∈Et
sλs) ≥ b′′,X
s∈Et
λs = 1}
3 Subproblem: Call OPT (c>−utDW
>A′′,P′), to generate ep’s with rc(s) < 0
4 Update: If found, form a new inner approximation, and go to Step 2
Pt+1I = {x ∈ R
n| x =
X
s∈Et+1
sλs,X
s∈Et+1
λs = 1, λs ≥ 0 ∀s ∈ Et+1
} ⊆ P′
Galati, Ralphs DECOMP: A Framework for Decomposition in IP
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
Dantzig-Wolfe Method (DW)
Dantzig-Wolfe Method
DW approximates P by building an inner approximation of P ′ intersected with Q′′.
Let E denote the extreme points of P ′, so that
P ′ = {x ∈ Rn | x =
X
s∈E
sλs,X
s∈E
λs = 1, λs ≥ 0 ∀s ∈ E}.
The method converges to the bound zDW = c>(P
s∈E sλ̂s) = c>x̂DW = zD
1 Initialize: Form inner approximation E0 ⊂ E
P0I = {x ∈ R
n | x =X
s∈E0
sλs,X
s∈E0
λs = 1, λs ≥ 0 ∀s ∈ E0} ⊆ P′
2 Master Problem: Obtain optimal dual solution (utDW , αt
DW )
z̄tDW = min
λ∈REt+
{c>(X
s∈Et
sλs) | A′′(X
s∈Et
sλs) ≥ b′′,X
s∈Et
λs = 1}
3 Subproblem: Call OPT (c>−utDW
>A′′,P′), to generate ep’s with rc(s) < 0
4 Update: If found, form a new inner approximation, and go to Step 2
Pt+1I = {x ∈ R
n| x =
X
s∈Et+1
sλs,X
s∈Et+1
λs = 1, λs ≥ 0 ∀s ∈ Et+1
} ⊆ P′
Galati, Ralphs DECOMP: A Framework for Decomposition in IP
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
Lagrangian Method
Lagrangian Method (LD)
(LD) formulates a relaxation as finding the minimal extreme point of P ′ with respect toa cost which is penalized if the point lies outside of Q′′.
The Lagrangian Dual is a piecewise-linear concave function
zLD = maxu∈Rm′′
+
{mins∈E
{c>s + u>(b′′ − A′′s)}}
Rewriting LD as an LP gives the dual of the DW-LP
zLD = maxα∈R,u∈Rm′′
+
{α + b′′>u | α ≤ (c> − u>A′′)s ∀s ∈ E}
So, zLD = zDW and LD also achieves the bound zD .
1 Initialize: Define s0 ∈ E, initialize dual multipliers u0LD for [A′′, b′′].
2 Master Problem: Update the dual multipliers using directional info st.
3 Subproblem: Call OPT (c − (utLD)>A′′,P′), to obtain a new
direction st+1 ∈ E. If the stopping criterion is not met, go to Step 2.
Galati, Ralphs DECOMP: A Framework for Decomposition in IP
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
Lagrangian Method
Lagrangian Method (LD)
(LD) formulates a relaxation as finding the minimal extreme point of P ′ with respect toa cost which is penalized if the point lies outside of Q′′.
The Lagrangian Dual is a piecewise-linear concave function
zLD = maxu∈Rm′′
+
{mins∈E
{c>s + u>(b′′ − A′′s)}}
Rewriting LD as an LP gives the dual of the DW-LP
zLD = maxα∈R,u∈Rm′′
+
{α + b′′>u | α ≤ (c> − u>A′′)s ∀s ∈ E}
So, zLD = zDW and LD also achieves the bound zD .
1 Initialize: Define s0 ∈ E, initialize dual multipliers u0LD for [A′′, b′′].
2 Master Problem: Update the dual multipliers using directional info st.
3 Subproblem: Call OPT (c − (utLD)>A′′,P′), to obtain a new
direction st+1 ∈ E. If the stopping criterion is not met, go to Step 2.
Galati, Ralphs DECOMP: A Framework for Decomposition in IP
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
Common Framework
The continuous approximation of P is formed as the intersection of twoexplicitly defined polyhedra (both with a small description).
zLP = minx∈Rn
{c>x | x ∈ Q′ ∩Q′′}
Decomposition Methods form an approximation as the intersection of oneexplicitly defined polyhedron (with a small description) and one implicitlydefined polyhedron (with a large description).
zD = minx∈Rn
{c>x | x ∈ P ′ ∩ Q′′} ≥ zLP
Each of the traditional decomposition methods contain two primary steps
Master Problem: Update the primal or dual solution information.
Subproblem: Update the approximation of P: SEP (x,P ′) or OPT (c,P′).
Integrated Decomposition Methods form an approximation as theintersection of two implicitly defined polyhedra (both with a largedescription).
So, we improve on the bound zD by building both an inner approximationPI of P ′ intersected with some outer approximation PO ⊂ Q′′.
Q′′
Q′ ∩ Q′′
c>
Galati, Ralphs DECOMP: A Framework for Decomposition in IP
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
Common Framework
The continuous approximation of P is formed as the intersection of twoexplicitly defined polyhedra (both with a small description).
zLP = minx∈Rn
{c>x | x ∈ Q′ ∩Q′′}
Decomposition Methods form an approximation as the intersection of oneexplicitly defined polyhedron (with a small description) and one implicitlydefined polyhedron (with a large description).
zD = minx∈Rn
{c>x | x ∈ P ′ ∩ Q′′} ≥ zLP
Each of the traditional decomposition methods contain two primary steps
Master Problem: Update the primal or dual solution information.
Subproblem: Update the approximation of P: SEP (x,P ′) or OPT (c,P′).
Integrated Decomposition Methods form an approximation as theintersection of two implicitly defined polyhedra (both with a largedescription).
So, we improve on the bound zD by building both an inner approximationPI of P ′ intersected with some outer approximation PO ⊂ Q′′.
Q′′
Q′ ∩ Q′′
P′ ∩ Q′′
c>
Galati, Ralphs DECOMP: A Framework for Decomposition in IP
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
Common Framework
The continuous approximation of P is formed as the intersection of twoexplicitly defined polyhedra (both with a small description).
zLP = minx∈Rn
{c>x | x ∈ Q′ ∩Q′′}
Decomposition Methods form an approximation as the intersection of oneexplicitly defined polyhedron (with a small description) and one implicitlydefined polyhedron (with a large description).
zD = minx∈Rn
{c>x | x ∈ P ′ ∩ Q′′} ≥ zLP
Each of the traditional decomposition methods contain two primary steps
Master Problem: Update the primal or dual solution information.
Subproblem: Update the approximation of P: SEP (x,P ′) or OPT (c,P′).
Integrated Decomposition Methods form an approximation as theintersection of two implicitly defined polyhedra (both with a largedescription).
So, we improve on the bound zD by building both an inner approximationPI of P ′ intersected with some outer approximation PO ⊂ Q′′.
Q′′
Q′ ∩ Q′′
P′ ∩ Q′′
c>
Galati, Ralphs DECOMP: A Framework for Decomposition in IP
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
Outline
1 Decomposition Methods
2 Integrated Decomposition Methods
3 Structured Separation
4 DECOMP Framework
Galati, Ralphs DECOMP: A Framework for Decomposition in IP
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
Price and Cut
Price and Cut (PC)
PC approximates P by building an inner approximation of P ′ (as in DW) intersected withan outer approximation of P (as in CPM).
1 Initialize: Form inner E0 ⊂ E and outer [D0, d0] = [A′′, b′′] approximations
P0I = {x ∈ R
n | x =P
s∈E0 sλs,P
s∈E0 λs = 1, λs ≥ 0 ∀s ∈ E0} ⊆ P′
P0O = {x ∈ R
n | D0x ≥ d0} ⊇ P
2 Master Problem: Solve the DW-LP to obtain optimal dual (utP C , αt
P C),
decomposition λtP C , and primal solution xt
P C .
z̄tP C = min
λ∈REt+
{c>(X
s∈Et
sλs) | Dt(X
s∈Et
sλs) ≥ dt,X
s∈Et
λs = 1}
3 Do either:
1 Pricing Subproblem and Update: Call OPT (c>−utPC
>Dt,P′), to generate e.p.s with
rc(s) < 0. If found, form a new inner approximation Pt+1I
, and go to Step 2.
2 Cutting Subproblem and Update: Call SEP (xtPC ,P) to generate v.i.s violated by xt
P C .
If found, form a new outer approximation Pt+1O
, and go to Step 2.
Galati, Ralphs DECOMP: A Framework for Decomposition in IP
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
Price and Cut
Price and Cut (PC)
PC approximates P by building an inner approximation of P ′ (as in DW) intersected withan outer approximation of P (as in CPM).
1 Initialize: Form inner E0 ⊂ E and outer [D0, d0] = [A′′, b′′] approximations
P0I = {x ∈ R
n | x =P
s∈E0 sλs,P
s∈E0 λs = 1, λs ≥ 0 ∀s ∈ E0} ⊆ P′
P0O = {x ∈ R
n | D0x ≥ d0} ⊇ P
2 Master Problem: Solve the DW-LP to obtain optimal dual (utP C , αt
P C),
decomposition λtP C , and primal solution xt
P C .
z̄tP C = min
λ∈REt+
{c>(X
s∈Et
sλs) | Dt(X
s∈Et
sλs) ≥ dt,X
s∈Et
λs = 1}
3 Do either:
1 Pricing Subproblem and Update: Call OPT (c>−utPC
>Dt,P′), to generate e.p.s with
rc(s) < 0. If found, form a new inner approximation Pt+1I
, and go to Step 2.
2 Cutting Subproblem and Update: Call SEP (xtPC ,P) to generate v.i.s violated by xt
P C .
If found, form a new outer approximation Pt+1O
, and go to Step 2.
Galati, Ralphs DECOMP: A Framework for Decomposition in IP
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
Relax and Cut
Relax and Cut (RC)
(RC) improves on the bound zD using LD and augmenting the multiplier space with validinequalities that are violated by the solution to the Lagrangian subproblem.
1 Initialize: Define s0 ∈ E, [D0, d0] = [A′′, b′′], initialize dual multipliers u0LD
for [D0, d0].
2 Master Problem: Update the dual multipliers using directional info st.
3 Do either:
1 Pricing Subproblem: Call OPT (c−utLD
>Dt, P′), to obtain a new direction
st+1∈ E. If the stopping criterion is not met, go to Step 2.
2 Cutting Subproblem: Call SEP (st,P) to generate v.i.s violated by st . If found, add
them to [Dt, dt] along with new dual multipliers, and go to Step 2.
Galati, Ralphs DECOMP: A Framework for Decomposition in IP
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
Relax and Cut
Relax and Cut (RC)
(RC) improves on the bound zD using LD and augmenting the multiplier space with validinequalities that are violated by the solution to the Lagrangian subproblem.
1 Initialize: Define s0 ∈ E, [D0, d0] = [A′′, b′′], initialize dual multipliers u0LD
for [D0, d0].
2 Master Problem: Update the dual multipliers using directional info st.
3 Do either:
1 Pricing Subproblem: Call OPT (c−utLD
>Dt, P′), to obtain a new direction
st+1∈ E. If the stopping criterion is not met, go to Step 2.
2 Cutting Subproblem: Call SEP (st,P) to generate v.i.s violated by st . If found, add
them to [Dt, dt] along with new dual multipliers, and go to Step 2.
Galati, Ralphs DECOMP: A Framework for Decomposition in IP
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
Outline
1 Decomposition Methods
2 Integrated Decomposition Methods
3 Structured Separation
4 DECOMP Framework
Galati, Ralphs DECOMP: A Framework for Decomposition in IP
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
Structured Separation
In general, the complexity of OPT (c,X) = SEP (x,X).
Observation: Restrictions on the input or output of these subroutines can change theircomplexity.
Template Paradigm, restricts the output of SEP (x,X) to valid inequalities (a, β) thatconform to a certain structure. This class of inequalities forms a polyhedron C ⊃ X.
For example, let P be the convex hull of solutions to the TSP.
SEP (x,P) is NP -Complete.
SEP (x,C) is polynomially solvable, for C ⊃ P the Subtour Polytope (Min-Cut) or BlossomPolytope (Padberg-Rao).
Structured Separation, restricts the input of SEP (x,X), such that x conforms to somestructure. For example, if x is restricted to solutions to a combinatorial problem, thenseparation often becomes much easier.
Galati, Ralphs DECOMP: A Framework for Decomposition in IP
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
Example - TSP
Traveling Salesman Problem Formulation:
x(δ({u})) = 2 ∀u ∈ Vx(E(S)) ≤ |S| − 1 ∀S ⊂ V, 3 ≤ |S| ≤ |V | − 1xe ∈ {0, 1} ∀e ∈ E
P ′ = 1-Tree Relaxation: OPT (c, 1 − Tree) in O(|E| log |V |)
x(δ({0})) = 2x(E(V \ {0})) = |V | − 2x(E(S)) ≤ |S| − 1 ∀S ⊂ V \ {0}, 3 ≤ |S| ≤ |V | − 1xe ∈ {0, 1} ∀e ∈ E
P ′ = 2-Matching Relaxation: OPT (c,2 − Match) in polynomial time
x(δ(u)) = 2 ∀u ∈ Vxe ∈ {0, 1} ∀e ∈ E
Galati, Ralphs DECOMP: A Framework for Decomposition in IP
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
Example - TSP
Separation of Subtour Inequalities:
x(E(S)) ≤ |S| − 1
SEP (x,Subtour), for x ∈ Rn can be solved in O(|V |4) (Min-Cut)
SEP (s,Subtour), for s a 2-matching, can be solved in O(|V |)
Simply determine the connected components Ci, and set S = Ci for each component (each givesa violation of 1).
0
1
2
0.6
3
0.2
0.8
0.2
4
5
6
0.8
7
0.8
8
9
0.6
10
11
0.4
0.2
12
0.2
0.2
0.2
130.4
0.60.8
14
0.6
0.2
0.2
15
0.2
0.2
0.2
0.8
0.6
Galati, Ralphs DECOMP: A Framework for Decomposition in IP
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
Example - TSP
Separation of Subtour Inequalities:
x(E(S)) ≤ |S| − 1
SEP (x,Subtour), for x ∈ Rn can be solved in O(|V |4) (Min-Cut)
SEP (s,Subtour), for s a 2-matching, can be solved in O(|V |)
Simply determine the connected components Ci, and set S = Ci for each component (each givesa violation of 1).
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Galati, Ralphs DECOMP: A Framework for Decomposition in IP
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
Example - TSP
Separation of Subtour Inequalities:
x(E(S)) ≤ |S| − 1
SEP (x,Subtour), for x ∈ Rn can be solved in O(|V |4) (Min-Cut)
SEP (s,Subtour), for s a 2-matching, can be solved in O(|V |)
Simply determine the connected components Ci, and set S = Ci for each component (each givesa violation of 1).
00
11
22
0.6
33
4
0.2
5
0.8
6
0.2
7
4
5
8
6
9
0.8
7
10
0.8
8
11
9
12
0.6
13
10
14
11
15
0.4
0.2
12
0.2
0.2
0.2
130.4
0.60.8
14
0.6
0.2
0.2
15
0.2
0.2
0.2
0.8
0.6
Galati, Ralphs DECOMP: A Framework for Decomposition in IP
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
Example - TSP
Separation of Comb Inequalities:
x(E(H)) +k
X
i=1
x(E(Ti)) ≤ |H| +k
X
i=1
(|Ti| − 1) − dk/2e
SEP (x,Blossoms), for x ∈ Rn can be solved in O(|V |5) (Padberg-Rao)
SEP (s,Blossoms), for s a 1-Tree, can be solved in O(|V |2)Construct candidate handles H from BFS tree traversal and an odd (>= 3) set of edges with oneendpoint in H and one in V \ H as candidate teeth (each gives a violation of dk/2e − 1).
This can also be used as a quick heuristic to separate 1-Trees for more general comb structures, forwhich there is no known polynomial algorithm for separation of arbitrary vectors.
0
1213
14
15
11
1
2
3
4 5
6
7
8
10
9
0.5
0.5
0.5
0.5
0.5
0.5
0.2
0.30.7
0.3
0.3
0.2
Galati, Ralphs DECOMP: A Framework for Decomposition in IP
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
Example - TSP
Separation of Comb Inequalities:
x(E(H)) +k
X
i=1
x(E(Ti)) ≤ |H| +k
X
i=1
(|Ti| − 1) − dk/2e
SEP (x,Blossoms), for x ∈ Rn can be solved in O(|V |5) (Padberg-Rao)
SEP (s,Blossoms), for s a 1-Tree, can be solved in O(|V |2)Construct candidate handles H from BFS tree traversal and an odd (>= 3) set of edges with oneendpoint in H and one in V \ H as candidate teeth (each gives a violation of dk/2e − 1).
This can also be used as a quick heuristic to separate 1-Trees for more general comb structures, forwhich there is no known polynomial algorithm for separation of arbitrary vectors.
0
1
2
3
4 5
6
7
8
9
10
11
1213
14
15
Galati, Ralphs DECOMP: A Framework for Decomposition in IP
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
Example - TSP
Separation of Comb Inequalities:
x(E(H)) +k
X
i=1
x(E(Ti)) ≤ |H| +k
X
i=1
(|Ti| − 1) − dk/2e
SEP (x,Blossoms), for x ∈ Rn can be solved in O(|V |5) (Padberg-Rao)
SEP (s,Blossoms), for s a 1-Tree, can be solved in O(|V |2)Construct candidate handles H from BFS tree traversal and an odd (>= 3) set of edges with oneendpoint in H and one in V \ H as candidate teeth (each gives a violation of dk/2e − 1).
This can also be used as a quick heuristic to separate 1-Trees for more general comb structures, forwhich there is no known polynomial algorithm for separation of arbitrary vectors.
00
1213
14
15
11
1122
33
4455
66
77
88
10
99
10
11
1213
14
15
0.5
0.5
0.5
0.5
0.5
0.5
0.2
0.30.7
0.3
0.3
0.2
Galati, Ralphs DECOMP: A Framework for Decomposition in IP
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
Motivation
In Relax and Cut, solutions to the Lagrangian subproblem s ∈ E typically have some nicecombinatorial structure. So, in RC, SEP (s,P), can be relatively easy as opposed togeneral separation.
Question: Can we take advantage of this in other contexts?
LP theory says in order to improve the bound, it is necessary and sufficient to cut off theentire face of optimal solutions F .
This condition is difficult to verify, so we typically use the necessary condition that thegenerated inequality be violated by some member of that face, x ∈ F .
In CPM, we solve SEP (xtCP ,P), where xt
CP ∈ F t, and F t is optimal face over PtO ∩ Q′′.
In PC, we solve SEP (xtP C ,P), where xt
P C ∈ F t, and F t is optimal face over PtI ∩ Pt
O .
Galati, Ralphs DECOMP: A Framework for Decomposition in IP
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
Motivation
Now, consider the following set
S(u,α) = {s ∈ E | (c> − u>A′′)s = α},
Then, S(utDW , αt
DW ) is the set ep’s with rc(s) = 0 in the DW-LP master or the set ofalternative optimal solutions to the Lagrangian subproblem.
Theorems
1 F t ⊆ conv(S(utDW , αt
DW )).
Separation of S(utDW , αt
DW ) is also necessary and sufficient.
2 (a, β) ∈ R(n+1) improving ⇒ ∃s ∈ D = {s ∈ E | λt
s > 0} s.t. a>s < β.
Every improving ineq must violate at least one e.p. in the optimal decomposition.
3 D = {s ∈ E | λts > 0} ⊆ S(ut
P C , αtP C).
The optimal decomposition is contained in S.
Theorems 1-3, along with the observation that structured separation canbe relatively easy, motivates the following revised Price and Cut method.
Key Idea: In the cutting subproblem, rather than (or in addition to)separating xt
PC, separate each s ∈ D.
Galati, Ralphs DECOMP: A Framework for Decomposition in IP
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
Price and Cut (Revisited)
The violated subtour found by separating the 2-Matching also violates the fractional point,but was found at little cost.
00
00
11
11
22
22
0.6
33
33
44
4
0.2
55
5
0.8
66
6
0.2
77
4
7
5
88
8
6
99
9
0.8
1010
7
10
0.8
1111
8
11
1212
9
12
0.6
1313
13
10
1414
1411
1515
15
0.4
0.2
12
0.2
0.2
0.2
130.4
0.60.8
14
0.6
0.2
0.2
15
0.2
0.2
0.2
0.8
0.6
x̂ λ̂0 = 0.2 λ̂1 = 0.2 λ̂2 = 0.6
Similarly, the violated blossom found by separating the 1-Tree also violates the fractionalpoint, but was found at little cost.
Galati, Ralphs DECOMP: A Framework for Decomposition in IP
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
Price and Cut (Revisited)
The violated subtour found by separating the 2-Matching also violates the fractional point,but was found at little cost.
00
00
11
11
22
22
0.6
33
33
44
4
0.2
55
5
0.8
66
6
0.2
77
4
7
5
88
8
6
99
9
0.8
1010
7
10
0.8
1111
8
11
1212
9
12
0.6
1313
13
10
1414
1411
1515
15
0.4
0.2
12
0.2
0.2
0.2
130.4
0.60.8
14
0.6
0.2
0.2
15
0.2
0.2
0.2
0.8
0.6
x̂ λ̂0 = 0.2 λ̂1 = 0.2 λ̂2 = 0.6
Similarly, the violated blossom found by separating the 1-Tree also violates the fractionalpoint, but was found at little cost.
000
00
0
1213
14
15
11
0
111
11
1
1
222
22
2
2
333
33
3
3
444
44
4
4
555
55
5
5
666
66
6
6
777
77
7
7
888
88
8
10
8
999
99
9
9
111
11
1
000
00
0
111
11
1
111
11
1
1 1
1
12
11
2
2
2
22
111
111
333
333
11 1
11
44 4
41
44
1
11
11
1
5
55
55
5
0.5
0.5
0.5
0.5
0.5
0.5
0.2
0.30.7
0.3
0.3
0.2
x̂
λ̂4 = 0.1 λ̂5 = 0.1
λ̂0 = 0.3 λ̂1 = 0.2 λ̂2 = 0.2
λ̂3 = 0.1
Galati, Ralphs DECOMP: A Framework for Decomposition in IP
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
Decomp and Cut
In the context of the traditional CPM, we can construct (inverse DW) the decomposition λfrom the current fractional solution xCP by solving the following LP
maxλ∈R
E+
{0>λ|X
s∈E
sλs = xCP ,X
s∈E
λs = 1},
If we find a decomposition D, then we separate each s ∈ D, as in revised PC.
If we fail, then the LP proof of infeasibility (Farkas Cut) gives us a separating hyperplanewhich can be used to cut off the current fractional point.
P′
Farkas ineqaulity
P P
P′
xCP xCP
s ∈ E : λs > 0
(a) xCP ∈ P′ (b) xCP /∈ P′
valid ineqaulity for P
Galati, Ralphs DECOMP: A Framework for Decomposition in IP
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
Decomp and Cut
In the context of the traditional CPM, we can construct (inverse DW) the decomposition λfrom the current fractional solution xCP by solving the following LP
maxλ∈R
E+
{0>λ|X
s∈E
sλs = xCP ,X
s∈E
λs = 1},
If we find a decomposition D, then we separate each s ∈ D, as in revised PC.
If we fail, then the LP proof of infeasibility (Farkas Cut) gives us a separating hyperplanewhich can be used to cut off the current fractional point.
P′
Farkas ineqaulity
P P
P′
xCP xCP
s ∈ E : λs > 0
(a) xCP ∈ P′ (b) xCP /∈ P′
valid ineqaulity for P
Galati, Ralphs DECOMP: A Framework for Decomposition in IP
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
Structured Separation - Useful?
In the context of PC or DC, Theorem 2 provides an alternative necessary condition tofinding an improving inequality.
SS alone, is not sufficient for finding an improving inequality.
SS alone, is not sufficient for separating the original fractional x̂.Unless we enumerate all cuts from a class which violate each s ∈ D.
SS does provide an easy to implement and understand alternative method for what istypically a difficult task (general separation).
In addition, one can quickly separate several classes of cuts using one decomposition(Example: VRP/k-Tree GSECs and Combs).
Galati, Ralphs DECOMP: A Framework for Decomposition in IP
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
Structured Separation - Useful?
Case 1: There exists a polynomial algorithm for SEP (x,C).TSP/1-Tree: SEP (x, Blossoms) Padberg-Rao, SEP (s, Blossoms) BFS.Unlikely that SS will ever outperform a well written exact method, but very easy to implement.
Case 2: There exists no polynomial algorithm for SEP (x,C).VRP,k-Tree: SEP (x, GSECs) heuristics, SEP (s, GSECs) in O(|E|).SS provides an alternative and typically simple heuristic for separation.
Case 3: There exists no algorithm for SEP (x,C), but ineq’s in C are facet-defining.KCCP,CP: SEP (x, MaxSet) heuristics, SEP (s, MaxSet) in O(|E|).SS provides a starting point for constructing separation heuristics.
Case 4: We have a new problem class for which we are searching for new valid inequalities.Trying to analyze integral points (as in SS) seems much more promising.
00
1213
14
15
11
1122
33
4455
66
77
88
10
99
10
11
1213
14
15
0.5
0.5
0.5
0.5
0.5
0.5
0.2
0.30.7
0.3
0.3
0.2
Galati, Ralphs DECOMP: A Framework for Decomposition in IP
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
Structured Separation - Useful?
Case 1: There exists a polynomial algorithm for SEP (x,C).TSP/1-Tree: SEP (x, Blossoms) Padberg-Rao, SEP (s, Blossoms) BFS.Unlikely that SS will ever outperform a well written exact method, but very easy to implement.
Case 2: There exists no polynomial algorithm for SEP (x,C).VRP,k-Tree: SEP (x, GSECs) heuristics, SEP (s, GSECs) in O(|E|).SS provides an alternative and typically simple heuristic for separation.
Case 3: There exists no algorithm for SEP (x,C), but ineq’s in C are facet-defining.KCCP,CP: SEP (x, MaxSet) heuristics, SEP (s, MaxSet) in O(|E|).SS provides a starting point for constructing separation heuristics.
Case 4: We have a new problem class for which we are searching for new valid inequalities.Trying to analyze integral points (as in SS) seems much more promising.
00
1213
14
15
11
1122
33
4455
66
77
88
10
99
10
11
1213
14
15
0.5
0.5
0.5
0.5
0.5
0.5
0.2
0.30.7
0.3
0.3
0.2
Galati, Ralphs DECOMP: A Framework for Decomposition in IP
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
Structured Separation - Useful?
Case 1: There exists a polynomial algorithm for SEP (x,C).TSP/1-Tree: SEP (x, Blossoms) Padberg-Rao, SEP (s, Blossoms) BFS.Unlikely that SS will ever outperform a well written exact method, but very easy to implement.
Case 2: There exists no polynomial algorithm for SEP (x,C).VRP,k-Tree: SEP (x, GSECs) heuristics, SEP (s, GSECs) in O(|E|).SS provides an alternative and typically simple heuristic for separation.
Case 3: There exists no algorithm for SEP (x,C), but ineq’s in C are facet-defining.KCCP,CP: SEP (x, MaxSet) heuristics, SEP (s, MaxSet) in O(|E|).SS provides a starting point for constructing separation heuristics.
Case 4: We have a new problem class for which we are searching for new valid inequalities.Trying to analyze integral points (as in SS) seems much more promising.
00
1213
14
15
11
1122
33
4455
66
77
88
10
99
10
11
1213
14
15
0.5
0.5
0.5
0.5
0.5
0.5
0.2
0.30.7
0.3
0.3
0.2
Galati, Ralphs DECOMP: A Framework for Decomposition in IP
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
Structured Separation - Useful?
Case 1: There exists a polynomial algorithm for SEP (x,C).TSP/1-Tree: SEP (x, Blossoms) Padberg-Rao, SEP (s, Blossoms) BFS.Unlikely that SS will ever outperform a well written exact method, but very easy to implement.
Case 2: There exists no polynomial algorithm for SEP (x,C).VRP,k-Tree: SEP (x, GSECs) heuristics, SEP (s, GSECs) in O(|E|).SS provides an alternative and typically simple heuristic for separation.
Case 3: There exists no algorithm for SEP (x,C), but ineq’s in C are facet-defining.KCCP,CP: SEP (x, MaxSet) heuristics, SEP (s, MaxSet) in O(|E|).SS provides a starting point for constructing separation heuristics.
Case 4: We have a new problem class for which we are searching for new valid inequalities.Trying to analyze integral points (as in SS) seems much more promising.
00
1213
14
15
11
1122
33
4455
66
77
88
10
99
10
11
1213
14
15
0.5
0.5
0.5
0.5
0.5
0.5
0.2
0.30.7
0.3
0.3
0.2
Galati, Ralphs DECOMP: A Framework for Decomposition in IP
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
Structured Separation - Applications
Steiner Tree ProblemMinimum Spanning Tree : Lifted SECs, Partition - RC* [Lucena 92]
Traveling Salesman ProblemOne-Tree: Blossoms, CombsMatching: SECs
Vehicle Routing Problemk-Traveling Salesman Problem : GSECs - DC [Ralphs, et al. 03]k-Tree : GSECs, Combs, Multistars - RC* [Marthinhon, et al. 01]
Axial Assignment ProblemAssignment Problem : Clique-Facets - RC [Balas, Saltzman 91]
Knapsack Constrained Circuit ProblemKnapsack Problem : Cycle Cover, Maximal-Set InequalitiesCircuit Problem: Cycle Cover, Maximal-Set Inequalities
Edge-Weighted Clique ProblemTree Relaxation : Trees, Cliques - RC [Hunting, et al. 01]
Subtour Elimination Problem [G. Benoit / S. Boyd]Fractional 2-Factor Problem : SECs - DC / LP Context [Benoit, Boyd 03]
Galati, Ralphs DECOMP: A Framework for Decomposition in IP
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
Outline
1 Decomposition Methods
2 Integrated Decomposition Methods
3 Structured Separation
4 DECOMP Framework
Galati, Ralphs DECOMP: A Framework for Decomposition in IP
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
DECOMP Framework
DECOMP Framework
DECOMP provides a flexible software framework for testing and extending the theoreticalframework presented thus far, with the primary goal of minimal user responsibility.
DECOMP was built around data structures and interfaces provided by COIN-OR:
COmputational INfrastructure for Operations Research
BCP provides a framework for parallel PC with LP-Based Bounding.
A generalization of BCP currently under development:
ALPs: Abstract Library for Parallel Search (INFORMS’05 - WC44)
BiCePS: Branch, Constrain and Price [Generic Bounding]
BLIS: BiCePS Linear Integer Solver = BCP
DECOMP could provide an implementation of the BiCePS layer.
The DECOMP framework, written in C++, is accessed through two user interfaces:
Applications Interface: DecompApp
Algorithms Interface: DecompAlgo
Galati, Ralphs DECOMP: A Framework for Decomposition in IP
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
DECOMP - Applications
The base class DecompApp provides all default algorithms: CPM, DW, LD, PC, RC, DC.
In order to develop an application, the user must derive the following methods/objects. Allother methods have appropriate defaults but are virtual and may be overridden.
DecompApp::createModel(). Define [A′′, b′′] and [A′, b′] (optional).TSP: [A′′, b′′] define the degree constraints. [A′, b′] is empty.
DecompApp::isFeasible(). Does x∗ define a feasible solution?TSP: do we have a feasible tour?
DecompApp::solveRelaxed(). Provide a subroutine for OPT (c,P ′).This is optional as well, if [A′, b′] is defined (it will call the built in IP solver, currently CBC).TSP 1-Tree: provide a solver for 1-tree.TSP 2-Match: provide a solver for 2-matching.
DecompApp::generateCuts(s). Provide a subroutine for SEP (s,C)TSP 1-Tree: provide separation for comb/blossoms which violate a 1-tree (BFS).TSP 2-Match: provide separation for subtours which violate a 2-matching (connect-comp).
To perform traditional CPM, if known, the user can also derive a subroutine to solveSEP (x,C), for separation of arbitrary real vectors. Note: the user also has the option toturn on CGL cuts.
Galati, Ralphs DECOMP: A Framework for Decomposition in IP
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
DECOMP - Applications
The base class DecompApp provides all default algorithms: CPM, DW, LD, PC, RC, DC.
In order to develop an application, the user must derive the following methods/objects. Allother methods have appropriate defaults but are virtual and may be overridden.
DecompApp::createModel(). Define [A′′, b′′] and [A′, b′] (optional).TSP: [A′′, b′′] define the degree constraints. [A′, b′] is empty.
DecompApp::isFeasible(). Does x∗ define a feasible solution?TSP: do we have a feasible tour?
DecompApp::solveRelaxed(). Provide a subroutine for OPT (c,P ′).This is optional as well, if [A′, b′] is defined (it will call the built in IP solver, currently CBC).TSP 1-Tree: provide a solver for 1-tree.TSP 2-Match: provide a solver for 2-matching.
DecompApp::generateCuts(s). Provide a subroutine for SEP (s,C)TSP 1-Tree: provide separation for comb/blossoms which violate a 1-tree (BFS).TSP 2-Match: provide separation for subtours which violate a 2-matching (connect-comp).
To perform traditional CPM, if known, the user can also derive a subroutine to solveSEP (x,C), for separation of arbitrary real vectors. Note: the user also has the option toturn on CGL cuts.
Galati, Ralphs DECOMP: A Framework for Decomposition in IP
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
DECOMP - Applications
The base class DecompApp provides all default algorithms: CPM, DW, LD, PC, RC, DC.
In order to develop an application, the user must derive the following methods/objects. Allother methods have appropriate defaults but are virtual and may be overridden.
DecompApp::createModel(). Define [A′′, b′′] and [A′, b′] (optional).TSP: [A′′, b′′] define the degree constraints. [A′, b′] is empty.
DecompApp::isFeasible(). Does x∗ define a feasible solution?TSP: do we have a feasible tour?
DecompApp::solveRelaxed(). Provide a subroutine for OPT (c,P ′).This is optional as well, if [A′, b′] is defined (it will call the built in IP solver, currently CBC).TSP 1-Tree: provide a solver for 1-tree.TSP 2-Match: provide a solver for 2-matching.
DecompApp::generateCuts(s). Provide a subroutine for SEP (s,C)TSP 1-Tree: provide separation for comb/blossoms which violate a 1-tree (BFS).TSP 2-Match: provide separation for subtours which violate a 2-matching (connect-comp).
To perform traditional CPM, if known, the user can also derive a subroutine to solveSEP (x,C), for separation of arbitrary real vectors. Note: the user also has the option toturn on CGL cuts.
Galati, Ralphs DECOMP: A Framework for Decomposition in IP
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
DECOMP - Applications
The base class DecompApp provides all default algorithms: CPM, DW, LD, PC, RC, DC.
In order to develop an application, the user must derive the following methods/objects. Allother methods have appropriate defaults but are virtual and may be overridden.
DecompApp::createModel(). Define [A′′, b′′] and [A′, b′] (optional).TSP: [A′′, b′′] define the degree constraints. [A′, b′] is empty.
DecompApp::isFeasible(). Does x∗ define a feasible solution?TSP: do we have a feasible tour?
DecompApp::solveRelaxed(). Provide a subroutine for OPT (c,P ′).This is optional as well, if [A′, b′] is defined (it will call the built in IP solver, currently CBC).TSP 1-Tree: provide a solver for 1-tree.TSP 2-Match: provide a solver for 2-matching.
DecompApp::generateCuts(s). Provide a subroutine for SEP (s,C)TSP 1-Tree: provide separation for comb/blossoms which violate a 1-tree (BFS).TSP 2-Match: provide separation for subtours which violate a 2-matching (connect-comp).
To perform traditional CPM, if known, the user can also derive a subroutine to solveSEP (x,C), for separation of arbitrary real vectors. Note: the user also has the option toturn on CGL cuts.
Galati, Ralphs DECOMP: A Framework for Decomposition in IP
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
DECOMP - Applications
The base class DecompApp provides all default algorithms: CPM, DW, LD, PC, RC, DC.
In order to develop an application, the user must derive the following methods/objects. Allother methods have appropriate defaults but are virtual and may be overridden.
DecompApp::createModel(). Define [A′′, b′′] and [A′, b′] (optional).TSP: [A′′, b′′] define the degree constraints. [A′, b′] is empty.
DecompApp::isFeasible(). Does x∗ define a feasible solution?TSP: do we have a feasible tour?
DecompApp::solveRelaxed(). Provide a subroutine for OPT (c,P ′).This is optional as well, if [A′, b′] is defined (it will call the built in IP solver, currently CBC).TSP 1-Tree: provide a solver for 1-tree.TSP 2-Match: provide a solver for 2-matching.
DecompApp::generateCuts(s). Provide a subroutine for SEP (s,C)TSP 1-Tree: provide separation for comb/blossoms which violate a 1-tree (BFS).TSP 2-Match: provide separation for subtours which violate a 2-matching (connect-comp).
To perform traditional CPM, if known, the user can also derive a subroutine to solveSEP (x,C), for separation of arbitrary real vectors. Note: the user also has the option toturn on CGL cuts.
Galati, Ralphs DECOMP: A Framework for Decomposition in IP
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
DECOMP - Applications
The base class DecompApp provides all default algorithms: CPM, DW, LD, PC, RC, DC.
In order to develop an application, the user must derive the following methods/objects. Allother methods have appropriate defaults but are virtual and may be overridden.
DecompApp::createModel(). Define [A′′, b′′] and [A′, b′] (optional).TSP: [A′′, b′′] define the degree constraints. [A′, b′] is empty.
DecompApp::isFeasible(). Does x∗ define a feasible solution?TSP: do we have a feasible tour?
DecompApp::solveRelaxed(). Provide a subroutine for OPT (c,P ′).This is optional as well, if [A′, b′] is defined (it will call the built in IP solver, currently CBC).TSP 1-Tree: provide a solver for 1-tree.TSP 2-Match: provide a solver for 2-matching.
DecompApp::generateCuts(s). Provide a subroutine for SEP (s,C)TSP 1-Tree: provide separation for comb/blossoms which violate a 1-tree (BFS).TSP 2-Match: provide separation for subtours which violate a 2-matching (connect-comp).
To perform traditional CPM, if known, the user can also derive a subroutine to solveSEP (x,C), for separation of arbitrary real vectors. Note: the user also has the option toturn on CGL cuts.
Galati, Ralphs DECOMP: A Framework for Decomposition in IP
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
DECOMP - Applications
An important feature of DECOMP is that the user only needs to provide methods for theirapplication in the original space (x-space), rather than in the space of a particularreformulation.
This automatic reformulation allows for users to consider cuts and variables in their mostintuitive form and greatly simplifies the process of expansion into rows and columns.
Structured separation allows for fast and easy prototyping without the need forimplementation of difficult separation routines.
Features:
One interface to all default algorithms: CPM/DC, DW, LD, PC, RC.
Built on top of the COIN/OSI interface, so easily interchange LP solvers.
Active LP compression, variable and cut pool management.
Easily switch between relaxations (choice of P ′) - just redefine solveRelaxed().
Flexible parameter interface: command line, parm file, direct call overrides.
Visualization tools for graph problems (linked to graphviz).
Galati, Ralphs DECOMP: A Framework for Decomposition in IP
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
DECOMP - TSP Example
TSP DecompApp
c l a s s TSP DecompApp : p u b l i c DecompApp {v i r t u a l vo i d c r e a t eMode l( DecompConst ra intSet & modelCore ,
DecompConst ra intSet & mode lRe lax ) = 0 ;
v i r t u a l i n t s o l v eR e l a x ed( const double ∗ redCostX ,DecompVarList & va r s ) = 0 ;
v i r t u a l i n t gene r a t eCu t s ( const double ∗ x ,const DecompVar & var ,DecompCutList & new cuts ) = 0 ;
// Standard s ep a r a t i o n r o u t i n e s :// 1 . ) min−cut f o r s ub tou r s// 2 . ) padberg−rao f o r b lossoms// 3 . ) h e u r i s t i c s f o r g e n e r a l combsi n t gene r a t eCu t s ( const double ∗ x ,
const DecompConst ra intSet & modelCore ,const DecompConst ra intSet & mode lRe lax ,DecompCutList & newCuts ) ;
//Does x d e f i n e a t ou r ?bool i s F e a s i b l e ( const double ∗ x ,
const i n t nCols ,DecompCutList & newCuts ) ;
. . .}
DecompApp
TSP_DecompApp
TSP_OneTreeDecompAppTSP_MatchDecompApp
Galati, Ralphs DECOMP: A Framework for Decomposition in IP
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
DECOMP - TSP Example
TSP OneTreeDecompApp
c l a s s TSP OneTreeDecompApp : p u b l i c TSP DecompApp {// De f i n e modelCore as 2−deg r e e c o n s t r a i n t s .// De f i n e mode lRe lax as empty .vo i d c r e a t eMode l( DecompConst ra intSet & modelCore ,
DecompConst ra intSet & mode lRe lax ) ;
//A 1− t r e e s o l v e r .i n t s o l v eR e l a x e d( const double ∗ redCostX ,
DecompVarList & va r s ) ;
// S t ruc tu r ed s ep a r a t i o n r o u t i n e s :// BFS f o r b lossoms and g e n e r a l combsi n t gene r a t eCu t s ( const double ∗ x ,
const DecompVar & var ,DecompCutList & new cuts ) ;
. . .}
DecompApp
TSP_DecompApp
TSP_OneTreeDecompAppTSP_MatchDecompApp
Galati, Ralphs DECOMP: A Framework for Decomposition in IP
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
DECOMP - TSP Example
TSP MatchDecompApp
c l a s s TSP MatchDecompApp : p u b l i c TSP DecompApp {// De f i n e modelCore as 2−deg r e e c o n s t r a i n t s ( o p t i o n a l ) .// De f i n e mode lRe lax as empty .vo i d c r e a t eMode l( DecompConst ra intSet & modelCore ,
DecompConst ra intSet & mode lRe lax ) ;
//A 2−match ing s o l v e r .i n t s o l v eR e l a x e d( const double ∗ redCostX ,
DecompVarList & va r s ) ;
// S t ruc tu r ed s ep a r a t i o n r o u t i n e s :// connected components f o r s ub tou r si n t gene r a t eCu t s ( const double ∗ x ,
const DecompVar & var ,DecompCutList & new cuts ) ;
. . .}
DecompApp
TSP_DecompApp
TSP_OneTreeDecompAppTSP_MatchDecompApp
Galati, Ralphs DECOMP: A Framework for Decomposition in IP
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
DECOMP - TSP Example
TSP Main
i n t main ( i n t argc , char ∗∗ argv ){Uti lApp u t i lApp ( argc , argv ) ;
TSP MatchDecompApp tspMatch ( u t i lApp ) ;TSP OneTreeDecompApp tspOneTree( u t i lApp ) ;
tspMatch . Cut . s o l v e ( ) ;tspMatch . Pr iceAndCut . s o l v e ( ) ;tspMatch . RelaxAndCut . s o l v e ( ) ;
t spOneTree . Cut . s o l v e ( ) ;t spOneTree . Pr iceAndCut . s o l v e ( ) ;t spOneTree . RelaxAndCut . s o l v e ( ) ;
}
DecompAlgo
DecompAlgoUSERDecompAlgoRCDecompAlgoPCDecompAlgoC
Galati, Ralphs DECOMP: A Framework for Decomposition in IP
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
DECOMP - Algorithms
The base class DecompAlgo provides the shell (init / master / subproblem / update).
Each of the methods described have derived default implementations DecompAlgoX :
public DecompAlgo which are accessible by any application class, allowing full flexibility.
New, hybrid or extended methods can be easily derived by overriding the varioussubroutines, which are called from the base class. For example,
Alternative methods for solving the master LP in DW, such as interior point methods or ACCPM.
The user might choose to add some advanced stabilizing factor to the dual updates in LD, as inbundle methods.
The user might choose the Volume algorithm for solving the LD, which provides an approximateprimal solution, for which cuts can be generated.
Hybrid methods like using LD to initialize the columns of the DW master.
During PC, adding cuts to both Pt+1O and Pt+1
I simultaneously (Vanderbeck).
DecompAlgo
DecompAlgoUSERDecompAlgoRCDecompAlgoPCDecompAlgoC
Galati, Ralphs DECOMP: A Framework for Decomposition in IP
Decomposition MethodsIntegrated Decomposition Methods
Structured SeparationDECOMP Framework
Summary
Traditional Decomposition Methods approximate P as P ′ ∩Q′′.P′ ⊃ P may have a large description.
Integrated Decomposition Methods approximate P as PI ∩ PO.Both PI ⊂ P′ and PO ⊃ P may have a large description.
Structured separation can be much easier than general separation.
We gave some motivation for two new techniques based on SS: revised-PC and DC.
The question remains: Empirically, how good are the cuts generated by separation of s ∈ D?
In some cases, this does not matter - we simply don’t know how to separate x ∈ Rn. These ideas
provide a starting point.
DECOMP provides an easy-to-use framework for comparing and developing variousdecomposition-based bounding methods.
The code is open-source, currently released under CPL and will eventually be availablethrough the COIN-OR project repository www.coin-or.org.
Galati, Ralphs DECOMP: A Framework for Decomposition in IP