58
Decomposition Methods Integrated Decomposition Methods Structured Separation DECOMP Framework DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati 1 Ted Ralphs 2 1 SAS Institute – Analytical Solutions – Operations Research and Development 2 Lehigh University – Department of Industrial and Systems Engineering INFORMS 2005 Open-Source Tools for Mixed Integer Programming Galati, Ralphs DECOMP: A Framework for Decomposition in IP

DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

  • Upload
    others

  • View
    42

  • Download
    0

Embed Size (px)

Citation preview

Page 1: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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

Page 2: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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

Page 3: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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

Page 4: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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

Page 5: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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

Page 6: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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

Page 7: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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

Page 8: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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

Page 9: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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

Page 10: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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

Page 11: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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

Page 12: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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

Page 13: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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

Page 14: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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

Page 15: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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

Page 16: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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

Page 17: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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

Page 18: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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

Page 19: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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

Page 20: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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

Page 21: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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

Page 22: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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

Page 23: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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

Page 24: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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

Page 25: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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

Page 26: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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

Page 27: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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

Page 28: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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

Page 29: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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

Page 30: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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

Page 31: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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

Page 32: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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

Page 33: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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

Page 34: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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

Page 35: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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

λ̂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

Page 36: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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

Page 37: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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

Page 38: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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

Page 39: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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

Page 40: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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

Page 41: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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

Page 42: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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

Page 43: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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

Page 44: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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

Page 45: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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

Page 46: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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

Page 47: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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

Page 48: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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

Page 49: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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

Page 50: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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

Page 51: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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

Page 52: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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

Page 53: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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

Page 54: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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

Page 55: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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

Page 56: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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

Page 57: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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

Page 58: DECOMP: A Framework for Decomposition in Integer Programming · DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute { Analytical

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