DECOMP: A Framework for Decomposition in Integer …DECOMP: A Framework for Decomposition in Integer...

59
Decomposition Methods Integrated Decomposition Methods 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 2006 Computational Optimization and Software Galati, Ralphs DECOMP: A Framework for Decomposition in IP

Transcript of DECOMP: A Framework for Decomposition in Integer …DECOMP: A Framework for Decomposition in Integer...

Page 1: DECOMP: A Framework for Decomposition in Integer …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP 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 2006Computational Optimization and Software

Galati, Ralphs DECOMP: A Framework for Decomposition in IP

Page 2: DECOMP: A Framework for Decomposition in Integer …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP Framework

Outline

1 Decomposition Methods

2 Integrated Decomposition Methods

3 DECOMP Framework

Galati, Ralphs DECOMP: A Framework for Decomposition in IP

Page 3: DECOMP: A Framework for Decomposition in Integer …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP Framework

Outline

1 Decomposition Methods

2 Integrated Decomposition Methods

3 DECOMP Framework

Galati, Ralphs DECOMP: A Framework for Decomposition in IP

Page 4: DECOMP: A Framework for Decomposition in Integer …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP 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 …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP 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 …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP 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 …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP 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 …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP 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 …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP Framework

Traditional Decomposition Methods

Cutting Plane Method (CPM)

CPM builds an outer approximation of P ′ intersected with Q′′.

Master: zCP = minx∈Rn{c⊤x | Dx ≥ d}

Subproblem: SEP (xCP ,P ′)

Dantzig-Wolfe Method

DW builds an inner approximation of P ′ intersected with Q′′.

Master:z̄DW = min

λ∈RE+{c⊤(

P

s∈Esλs) | A′′(

P

s∈Esλs) ≥ b′′,

P

s∈Eλs = 1}

Subproblem: OPT (c⊤−u⊤DW

A′′,P ′)

Lagrangian Method

LD formulates a relaxation as finding the minimal extreme point of P ′ withrespect to a cost which is penalized if the point lies outside of Q′′.

Master: zLD = maxu∈R

m′′+

{mins∈E{c⊤s + u⊤(b′′ − A′′s)}}

Subproblem: OPT (c−u⊤LD

A′′,P ′)

Galati, Ralphs DECOMP: A Framework for Decomposition in IP

Page 10: DECOMP: A Framework for Decomposition in Integer …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP Framework

Traditional Decomposition Methods

Cutting Plane Method (CPM)

CPM builds an outer approximation of P ′ intersected with Q′′.

Master: zCP = minx∈Rn{c⊤x | Dx ≥ d}

Subproblem: SEP (xCP ,P ′)

Dantzig-Wolfe Method

DW builds an inner approximation of P ′ intersected with Q′′.

Master:z̄DW = min

λ∈RE+{c⊤(

P

s∈Esλs) | A′′(

P

s∈Esλs) ≥ b′′,

P

s∈Eλs = 1}

Subproblem: OPT (c⊤−u⊤DW

A′′,P ′)

Lagrangian Method

LD formulates a relaxation as finding the minimal extreme point of P ′ withrespect to a cost which is penalized if the point lies outside of Q′′.

Master: zLD = maxu∈R

m′′+

{mins∈E{c⊤s + u⊤(b′′ − A′′s)}}

Subproblem: OPT (c−u⊤LD

A′′,P ′)

Galati, Ralphs DECOMP: A Framework for Decomposition in IP

Page 11: DECOMP: A Framework for Decomposition in Integer …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP Framework

Traditional Decomposition Methods

Cutting Plane Method (CPM)

CPM builds an outer approximation of P ′ intersected with Q′′.

Master: zCP = minx∈Rn{c⊤x | Dx ≥ d}

Subproblem: SEP (xCP ,P ′)

Dantzig-Wolfe Method

DW builds an inner approximation of P ′ intersected with Q′′.

Master:z̄DW = min

λ∈RE+{c⊤(

P

s∈Esλs) | A′′(

P

s∈Esλs) ≥ b′′,

P

s∈Eλs = 1}

Subproblem: OPT (c⊤−u⊤DW

A′′,P ′)

Lagrangian Method

LD formulates a relaxation as finding the minimal extreme point of P ′ withrespect to a cost which is penalized if the point lies outside of Q′′.

Master: zLD = maxu∈R

m′′+

{mins∈E{c⊤s + u⊤(b′′ − A′′s)}}

Subproblem: OPT (c−u⊤LD

A′′,P ′)

Galati, Ralphs DECOMP: A Framework for Decomposition in IP

Page 12: DECOMP: A Framework for Decomposition in Integer …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP 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).

zCP = zDW = zLD = 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 13: DECOMP: A Framework for Decomposition in Integer …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP 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).

zCP = zDW = zLD = 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 14: DECOMP: A Framework for Decomposition in Integer …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP 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).

zCP = zDW = zLD = 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 15: DECOMP: A Framework for Decomposition in Integer …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP Framework

Outline

1 Decomposition Methods

2 Integrated Decomposition Methods

3 DECOMP Framework

Galati, Ralphs DECOMP: A Framework for Decomposition in IP

Page 16: DECOMP: A Framework for Decomposition in Integer …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP Framework

Integrated Decomposition Methods

Price and Cut (PC)

PC approximates P by building an inner approximation of P ′ (as in DW) inter-sected with an outer approximation of P (as in CPM).

Master:z̄PC = min

λ∈RE+{c⊤(

P

s∈Esλs) | D(

P

s∈Esλs) ≥ d,

P

s∈Eλs = 1}

Subproblem:

Pricing: OPT (c⊤−u⊤P CD,P′), or

Cutting: SEP (xP C ,P)

Relax and Cut (RC)

RC improves on the bound zD using LD and augmenting the multiplier space withvalid inequalities that are violated by the solution to the Lagrangian subproblem.

Master: zRC = maxu∈R

m′′+

{mins∈E{c⊤s + u⊤(d − Ds)}}

Subproblem:

Pricing: OPT (c−u⊤LDD,P′), or

Cutting: SEP (s,P)

Galati, Ralphs DECOMP: A Framework for Decomposition in IP

Page 17: DECOMP: A Framework for Decomposition in Integer …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP Framework

Integrated Decomposition Methods

Price and Cut (PC)

PC approximates P by building an inner approximation of P ′ (as in DW) inter-sected with an outer approximation of P (as in CPM).

Master:z̄PC = min

λ∈RE+{c⊤(

P

s∈Esλs) | D(

P

s∈Esλs) ≥ d,

P

s∈Eλs = 1}

Subproblem:

Pricing: OPT (c⊤−u⊤P CD,P′), or

Cutting: SEP (xP C ,P)

Relax and Cut (RC)

RC improves on the bound zD using LD and augmenting the multiplier space withvalid inequalities that are violated by the solution to the Lagrangian subproblem.

Master: zRC = maxu∈R

m′′+

{mins∈E{c⊤s + u⊤(d − Ds)}}

Subproblem:

Pricing: OPT (c−u⊤LDD,P′), or

Cutting: SEP (s,P)

Galati, Ralphs DECOMP: A Framework for Decomposition in IP

Page 18: DECOMP: A Framework for Decomposition in Integer …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP Framework

Structured Separation

In general, the complexity of OPT (c, X) = SEP (x, X).

Observation: Restrictions on input or output can change their complexity.

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 19: DECOMP: A Framework for Decomposition in Integer …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP 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 20: DECOMP: A Framework for Decomposition in Integer …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP 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 21: DECOMP: A Framework for Decomposition in Integer …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP 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 22: DECOMP: A Framework for Decomposition in Integer …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP 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 23: DECOMP: A Framework for Decomposition in Integer …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP Framework

Example - TSP

Separation of Comb Inequalities:

x(E(H)) +k

X

i=1

x(E(Ti)) ≤ |H| +k

X

i=1

(|Ti| − 1) − ⌈k/2⌉

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 ⌈k/2⌉ − 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 24: DECOMP: A Framework for Decomposition in Integer …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP Framework

Example - TSP

Separation of Comb Inequalities:

x(E(H)) +k

X

i=1

x(E(Ti)) ≤ |H| +k

X

i=1

(|Ti| − 1) − ⌈k/2⌉

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 ⌈k/2⌉ − 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 25: DECOMP: A Framework for Decomposition in Integer …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP Framework

Example - TSP

Separation of Comb Inequalities:

x(E(H)) +k

X

i=1

x(E(Ti)) ≤ |H| +k

X

i=1

(|Ti| − 1) − ⌈k/2⌉

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 ⌈k/2⌉ − 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 26: DECOMP: A Framework for Decomposition in Integer …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP Framework

Structured Separation Motivation

Motivation: RC, solutions to LR, s ∈ E, have some nice combinatorial structure.

New Algorithms:

Price and Cut (Revisited) - see fig

Decomp and Cut - inverse process

Provides an alternative neccessary (but not sufficient) condition to find an improvinginequality which is very easy to implement and understand.

For some theoretical details see:

T. Ralphs and M.G., Decomposition and Dynamic Cut Generation in Integer Programming,Mathematical Programming 106 (2006), 261

T. Ralphs and M.G., Decomposition in Integer Programming, in Integer Programming: Theory andPractice, John Karlof, ed. (2005), 57

Galati, Ralphs DECOMP: A Framework for Decomposition in IP

Page 27: DECOMP: A Framework for Decomposition in Integer …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP Framework

Structured Separation Motivation

Motivation: RC, solutions to LR, s ∈ E, have some nice combinatorial structure.

New Algorithms:

Price and Cut (Revisited) - see fig

Decomp and Cut - inverse process

Provides an alternative neccessary (but not sufficient) condition to find an improvinginequality which is very easy to implement and understand.

For some theoretical details see:

T. Ralphs and M.G., Decomposition and Dynamic Cut Generation in Integer Programming,Mathematical Programming 106 (2006), 261

T. Ralphs and M.G., Decomposition in Integer Programming, in Integer Programming: Theory andPractice, John Karlof, ed. (2005), 57

Galati, Ralphs DECOMP: A Framework for Decomposition in IP

Page 28: DECOMP: A Framework for Decomposition in Integer …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP 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 29: DECOMP: A Framework for Decomposition in Integer …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP 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 30: DECOMP: A Framework for Decomposition in Integer …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP 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 31: DECOMP: A Framework for Decomposition in Integer …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP 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 32: DECOMP: A Framework for Decomposition in Integer …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP 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 33: DECOMP: A Framework for Decomposition in Integer …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP 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 34: DECOMP: A Framework for Decomposition in Integer …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP 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 35: DECOMP: A Framework for Decomposition in Integer …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP 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 36: DECOMP: A Framework for Decomposition in Integer …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP 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 37: DECOMP: A Framework for Decomposition in Integer …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP Framework

Multiple Polytopes

Common paradigm - tighten bounds by solving SEP (x, X), for various X.

X is a polyhedron - the closure of the set of all cuts in a particular template.

Successive outer approximation from the intersection of various polyhedra.

TSP: X = subtour closure, blossom closure, comb closure, etc...

MILP: X = knapsack closure, flow cover closure, clique closure, etc...

Common paradigm - column generation based on one oracle Why only one?

New paradigm - generate vars from multiple polytopes, solving OPT (c, X), for various X.

Successive inner approximation from the intersection of various polyhedra.

TSP: X = one-tree, 2-matching, TSP, etc...

Galati, Ralphs DECOMP: A Framework for Decomposition in IP

Page 38: DECOMP: A Framework for Decomposition in Integer …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP Framework

Multiple Polytopes

Common paradigm - tighten bounds by solving SEP (x, X), for various X.

X is a polyhedron - the closure of the set of all cuts in a particular template.

Successive outer approximation from the intersection of various polyhedra.

TSP: X = subtour closure, blossom closure, comb closure, etc...

MILP: X = knapsack closure, flow cover closure, clique closure, etc...

Common paradigm - column generation based on one oracle Why only one?

New paradigm - generate vars from multiple polytopes, solving OPT (c, X), for various X.

Successive inner approximation from the intersection of various polyhedra.

TSP: X = one-tree, 2-matching, TSP, etc...

Galati, Ralphs DECOMP: A Framework for Decomposition in IP

Page 39: DECOMP: A Framework for Decomposition in Integer …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP Framework

Multiple Polytopes

Common paradigm - tighten bounds by solving SEP (x, X), for various X.

X is a polyhedron - the closure of the set of all cuts in a particular template.

Successive outer approximation from the intersection of various polyhedra.

TSP: X = subtour closure, blossom closure, comb closure, etc...

MILP: X = knapsack closure, flow cover closure, clique closure, etc...

Common paradigm - column generation based on one oracle Why only one?

New paradigm - generate vars from multiple polytopes, solving OPT (c, X), for various X.

Successive inner approximation from the intersection of various polyhedra.

TSP: X = one-tree, 2-matching, TSP, etc...

Galati, Ralphs DECOMP: A Framework for Decomposition in IP

Page 40: DECOMP: A Framework for Decomposition in Integer …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP Framework

Outline

1 Decomposition Methods

2 Integrated Decomposition Methods

3 DECOMP Framework

Galati, Ralphs DECOMP: A Framework for Decomposition in IP

Page 41: DECOMP: A Framework for Decomposition in Integer …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP 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’06 - MD02)

BiCePS: Branch, Constrain and Price [Generic Bounding]

BLIS: BiCePS Linear Integer Solver = BCP

DECOMP will 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 42: DECOMP: A Framework for Decomposition in Integer …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP 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 43: DECOMP: A Framework for Decomposition in Integer …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP 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 44: DECOMP: A Framework for Decomposition in Integer …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP 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 45: DECOMP: A Framework for Decomposition in Integer …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP 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 46: DECOMP: A Framework for Decomposition in Integer …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP 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 …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP 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 …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP Framework

DECOMP - Applications

A key 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.

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.

This is a major differentiator for DECOMP, compared to others BCP, ABACUS, MINTO, etc.

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.

Column generation based on multiple polytopes can be easily defined and employed.

Active LP compression, variable and cut pool management.

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 49: DECOMP: A Framework for Decomposition in Integer …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP Framework

DECOMP - Applications

A key 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.

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.

This is a major differentiator for DECOMP, compared to others BCP, ABACUS, MINTO, etc.

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.

Column generation based on multiple polytopes can be easily defined and employed.

Active LP compression, variable and cut pool management.

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 50: DECOMP: A Framework for Decomposition in Integer …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP Framework

DECOMP - Applications

A key 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.

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.

This is a major differentiator for DECOMP, compared to others BCP, ABACUS, MINTO, etc.

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.

Column generation based on multiple polytopes can be easily defined and employed.

Active LP compression, variable and cut pool management.

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 51: DECOMP: A Framework for Decomposition in Integer …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP Framework

DECOMP - TSP ExampleTSP DecompApp

c l a s s TSP DecompApp : pub l i c DecompApp {// De f i n e modelCore as 2−deg r ee c o n s t r a i n t s , mode lRe lax empty .vo id APPcreateModel ( double ∗& ob jCoe f f ,

v e c to r<DecompConst ra intSet∗> & modelCore ,v ec to r<DecompConst ra intSet∗> & modelRe lax ) ;

//A 2−matching s o l v e r , a 1−t r e e s o l v e r .decompStat APPso lveRe laxed ( const i n t whichModel ,

const double ∗ redCostX ,const double ∗ o r i gCos t ,l i s t <DecompVar∗> & va r s ) ;

// S t r u c t u r e d s e p a r a t i o n r o u t i n e s :// connected components f o r s ub t ou r s// BFS f o r b lo s soms and g e n e r a l combsv 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 ) ;

// Standard s e p a r a t i o n r o u t i n e s :// 1 . ) min−cut f o r s ub t ou r s// 2 . ) padberg−rao f o r b lo s soms// 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 & modelRelax ,DecompCutList & newCuts ) ;

//Does x d e f i n e a tou r ?boo l i s F e a s i b l e ( const double ∗ x ,

const i n t nCols ,DecompCutList & newCuts ) ;

. . .}

DecompApp

TSP_DecompApp

Galati, Ralphs DECOMP: A Framework for Decomposition in IP

Page 52: DECOMP: A Framework for Decomposition in Integer …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP 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 53: DECOMP: A Framework for Decomposition in Integer …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP Framework

DECOMP - TSP Example

TSP Main

i n t main ( i n t argc , char ∗∗ a rgv ){Ut i lApp u t i lApp ( argc , a rgv ) ;

// c r e a t e the u s e r a p p l i c a t i o n ( a DecompApp)TSP DecompApp t sp ( u t i lApp ) ;t s p . c r ea teMode l ( ) ;

// c r e a t e i n s t a n c e s o f each a l g o r i t hm and s o l v eDecompAlgoC algoC(& t sp ) ;a lgoC . i n i t S e t u p (TSP DecompApp : : BASIC ) ;a lgoC . processNode ( ) ;

DecompAlgoPC algoPC(& t sp ) ;algoPC . i n i t S e t u p (TSP DecompApp : :TWO MATCH) ;algoPC . processNode ( ) ;algoPC . r e f r e s h ( ) ;algoPC . i n i t S e t u p (TSP DecompApp : : ONE TREE ) ;algoPC . processNode ( ) ;

DecompAlgoRC algoRC(& t sp ) ;algoRC . i n i t S e t u p (TSP DecompApp : :TWO MATCH) ;algoRC . processNode ( ) ;algoRC . r e f r e s h ( ) ;algoRC . i n i t S e t u p (TSP DecompApp : : ONE TREE ) ;algoRC . processNode ( ) ;

}

Galati, Ralphs DECOMP: A Framework for Decomposition in IP

Page 54: DECOMP: A Framework for Decomposition in Integer …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP Framework

DECOMP - Interface to ALPS/BiCePs

XXX DecompApp is also built as a callable library

BcpsDecompModel : public BcpsModel

a wrapper class that calls (data access) methods from DecompApp

BcpsDecompTreeNode : public BcpsDecompTreeNode

a wrapper class that calls (algorithmic) methods from DecompAlgo

Minimal additional user responsibilities:

(optional) branching decisions - defaults are straightforward since we work in the original x-space

each built-in DecompAlgoXXX provides a default BiCePs branching routine

default RC branching assumes use of volume or bundle (need primal solutions)

(not optional) enforcing branching decisions in subproblem oracle

(not optional) encoding/decoding Decomp objects for disributed processing

Galati, Ralphs DECOMP: A Framework for Decomposition in IP

Page 55: DECOMP: A Framework for Decomposition in Integer …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP 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.Two new techniques based on SS: revised-PC and DC

A new paradigm for column generation using multiple oracles.

DECOMP provides an easy-to-use framework for comparing and developing variousdecomposition-based bounding methods.

The key to ease-of-use, is that the user can stay in the original (intuitive) space.

The interface to ALPS allows us to investigate large-scale problems on distributed networks.

The code is open-source, currently released under CPL and will soon be available throughthe COIN-OR project repository www.coin-or.org.

Galati, Ralphs DECOMP: A Framework for Decomposition in IP

Page 56: DECOMP: A Framework for Decomposition in Integer …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP 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.Two new techniques based on SS: revised-PC and DC

A new paradigm for column generation using multiple oracles.

DECOMP provides an easy-to-use framework for comparing and developing variousdecomposition-based bounding methods.

The key to ease-of-use, is that the user can stay in the original (intuitive) space.

The interface to ALPS allows us to investigate large-scale problems on distributed networks.

The code is open-source, currently released under CPL and will soon be available throughthe COIN-OR project repository www.coin-or.org.

Galati, Ralphs DECOMP: A Framework for Decomposition in IP

Page 57: DECOMP: A Framework for Decomposition in Integer …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP 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.Two new techniques based on SS: revised-PC and DC

A new paradigm for column generation using multiple oracles.

DECOMP provides an easy-to-use framework for comparing and developing variousdecomposition-based bounding methods.

The key to ease-of-use, is that the user can stay in the original (intuitive) space.

The interface to ALPS allows us to investigate large-scale problems on distributed networks.

The code is open-source, currently released under CPL and will soon be available throughthe COIN-OR project repository www.coin-or.org.

Galati, Ralphs DECOMP: A Framework for Decomposition in IP

Page 58: DECOMP: A Framework for Decomposition in Integer …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP 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.Two new techniques based on SS: revised-PC and DC

A new paradigm for column generation using multiple oracles.

DECOMP provides an easy-to-use framework for comparing and developing variousdecomposition-based bounding methods.

The key to ease-of-use, is that the user can stay in the original (intuitive) space.

The interface to ALPS allows us to investigate large-scale problems on distributed networks.

The code is open-source, currently released under CPL and will soon be available throughthe COIN-OR project repository www.coin-or.org.

Galati, Ralphs DECOMP: A Framework for Decomposition in IP

Page 59: DECOMP: A Framework for Decomposition in Integer …DECOMP: A Framework for Decomposition in Integer Programming Matthew Galati1 Ted Ralphs2 1SAS Institute – Analytical Solutions

Decomposition MethodsIntegrated Decomposition Methods

DECOMP 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.Two new techniques based on SS: revised-PC and DC

A new paradigm for column generation using multiple oracles.

DECOMP provides an easy-to-use framework for comparing and developing variousdecomposition-based bounding methods.

The key to ease-of-use, is that the user can stay in the original (intuitive) space.

The interface to ALPS allows us to investigate large-scale problems on distributed networks.

The code is open-source, currently released under CPL and will soon be available throughthe COIN-OR project repository www.coin-or.org.

Galati, Ralphs DECOMP: A Framework for Decomposition in IP