Decomposition Methods
Decomposition Methods
x = (x1, x2, y)
• y is the complicating variable or coupling variable; when it is fixed
the problem is separable in x1 and x2
with variable y
called primal decomposition since master problem manipulates primal
(complicating) variables
repeat
1. Solve the subproblems (in parallel).
Find x1 that minimizes f1(x1, y), and a subgradient g1 ∈ ∂φ1(y).
Find x2 that minimizes f2(x2, y), and a subgradient g2 ∈ ∂φ2(y).
2. Update complicating variable.
y := y − αk (g1 + g2).
• x1, x2 ∈ R20, y ∈ R
• fi are PWL (max of 100 affine functions each); f ⋆ ≈ 1.71
3.5
φ1 (y)
φ2 (y)
3 φ1 (y) + φ2 (y)
2.5
1.5
0.5
−1 −0.5 0 0.5 1
y
EE364b, Stanford University 6
primal decomposition, using bisection on y
0
10
−1
10
f (k) − f ⋆
−2
10
−3
10
−4
10
1 2 3 4 5 6 7 8
k
L(x1, y1, x2, y2) = f1(x1, y1) + f2(x2, y2) + ν T (y1 − y2)
separable; can minimize over (x1, y1) and (x2, y2) separately
repeat
1. Solve the dual subproblems (in parallel).
Find x1, y1 that minimize f1(x1, y1) + ν T y1.
Find x2, y2 that minimize f2(x2, y2) − ν T y2.
2. Update dual variables (prices).
ν := ν − αk (y2 − y1).
2.5
g1 (ν)
g2 (ν)
g1 (ν) + g2 (ν)
2
1.5
0.5
0
−1 −0.5 0 0.5 1
ν
2.6
better bound
2.5 worse bound
2.4 g(ν)
2.3
2.2
2.1
1.9
1.8
1.7
1.6
0 5 10 15
k
• can fix allocation (i.e., compute φi), or add regularization terms ǫkyik2
minimize f1(x1)
subproblem 1:
subject to x1 ∈ C1, h1(x1) t
minimize f2(x2)
subproblem 2:
subject to x2 ∈ C2, h2(x2) −t
• λ2 − λ1 ∈ ∂(φ1 + φ2)(t)
−1
10
f (k) − p⋆
−2
10
−3
10
−4
10
0 20 40 60 80 100
k
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
−0.1
−0.2
0 20 40 60 80 100
k
0.45
0.4
0.35
0.3
0.25
0.2
0.15
0.1
0.05
0
0 5 10 15 20 25 30
k
−0.4
g
−0.6 fˆ
−0.8
−1
−1.2
−1.4
−1.6
−1.8
0 5 10 15 20 25 30
k
−1
10
−2
10
−3
10
−4
10
0 5 10 15 20 25 30
k
• multiple subsystems
1 2 3
• 3 subsystems, with private variables x1, x2, x3, and public variables y1,
(y2, y3), and y4
• 2 (simple) edges
c1
1 2
c2
c3 c4
3 4 5
PK
minimize i=1 fi (xi , yi )
subject to (xi, yi) ∈ Ci, i = 1, . . . , K
yi = Eiz, i = 1, . . . , K
repeat
1. Distribute net variables to subsystems.
yi := Eiz, i = 1, . . . , K.
2. Optimize subsystems (separately).
Solve subproblems to find optimal xi, gi ∈ ∂φi(yi), i = 1, . . . , K.
3. Collect and sum subgradients for each net.
PK
g := i=1 EiT gi.
4. Update net variables.
z := z − αk g.
0
0 2 4 6 8 10
k
1
10
0
10
ky − E ẑk
−1
10
−2
10
−3
10
−4
10
0 2 4 6 8 10
k