multistage stochastic optimization€¦ · consider n 2 st1. then for all m 2 c(n): qm(xn)= min...

69
Multistage Stochastic Optimization Shabbir Ahmed Georgia Tech IMA 2016

Upload: others

Post on 24-May-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

Multistage Stochastic Optimization

Shabbir AhmedGeorgia Tech

IMA 2016

Page 2: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

Outline•  Setup–  Deterministic problem

–  Uncertainty model–  Dynamics

•  Formulations

–  Extensive formulation–  Scenario formulation

–  Dynamic Programming formulation•  Algorithms

–  Rolling horizon heuristic–  Scenario decomposition

–  Stagewise decomposition

Page 3: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

Multistage Optimization

•  Canonical deterministic problem

•  = state variables; = local/stage variables

•  Linear objective and constraints

•  Bounded and feasible

xt yt

Atxt�1 +Btxt + Ctyt � bt

minx,y

(TX

t=1

f

t

(xt

, y

t

) : (xt�1, xt

, y

t

) 2 X

t

8 t

)

Page 4: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

Example: Hydro Power Planning

Howmuchhydropowertogenerateineachperiodtosa4sfydemand?

Page 5: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

Example: Hydro Power Planning

Howmuchhydropowertogenerateineachperiodtosa4sfydemand?

d

uv

h

minP

t

(bt

qt

+ ct

ut

+ gt

vt

)s.t. h

t

= ht�1 + ⇠

t

� pt

+ ut

� vt

8 t↵p

t

+ qt

= dt

8 t0 h

t

hmax 8 tpt

, qt

, ut

, vt

� 0 8 t.

p

q

↵p

Page 6: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

Example: Hydro Power Planning

Howmuchhydropowertogenerateineachperiodtosa4sfydemand?

d

uv

h

minP

t

(bt

qt

+ ct

ut

+ gt

vt

)s.t. h

t

= ht�1 + ⇠

t

� pt

+ ut

� vt

8 t↵p

t

+ qt

= dt

8 t0 h

t

hmax 8 tpt

, qt

, ut

, vt

� 0 8 t.

p

q

↵p

xt = (ht)yt = (pt, qt, ut, vt)

Page 7: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

Multistage Stochastic Optimization

•  Stochastic Data:

•  Dynamics:

{⇠t = (ft, Xt)}Tt=1

⇠t

#. . . (xt�1, yt�1) �! (xt, yt) . . .

minx,y

(TX

t=1

f

t

(xt

, y

t

) : (xt�1, xt

, y

t

) 2 X

t

8 t

)

Page 8: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

Formulation

•  Optimize expected cost•  Expectation is w.r.t conditional distribution i.e. at stage t

•  Natural extension of the two-stage formulation

•  Decisions in stage t depend on history up to stage t (called a policy)•  Assume “complete recourse”: For any value of state variables and

data realization, there exists a feasible local/stage solution.

min(x1,y1)2X1

n

f1(x1, y1) + Eh

min(x2,y2)2X2(x1)

n

f2(x2, y2) + · · ·

+ Eh

min(xT ,yT )2XT (xT�1)

n

f

T

(xT

, y

T

)oioio

E⇠[t,T ][ · |⇠[1,t�1]]

Page 9: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

Dynamics•  The number of “stages” depend on the decision dynamics and

not on the number of periods

•  Consider the following dynamics:

•  Equivalent to:

This is a two-stage (multiperiod) model

⇠1 ⇠t

# #(x1, . . . , xT ) �! (y1) . . . (yt�1) �! (yt) . . .

(⇠1, . . . , ⇠T )#

(x1, . . . , xT ) �! (y1, . . . , yT )

Page 10: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

Applications

• Energy• Naturalresources• Healthcare• Logis4cs• Telecommunica4ons• Finance• …

Page 11: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

Scenario Tree

•  Dynamic uncertainty modeling: Scenario tree•  Explicit construction/discretization

•  Monte Carlo Sampling•  Markov Chain (implicit)

Page 12: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

Formulations

•  Extensive form

•  Scenario formulation

•  Dynamic programming formulation

Page 13: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

Extensive Form

minxn,yn

(X

n2Tp

n

f

n

(xn

, y

n

) : (xa(n), xn

, y

n

) 2 X

n

8 n 2 T).

1

2

3

4

5

6

7

Page 14: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

Scenario Formulation

minx,y

X

s

p

s

⇣X

t

f

s,t

(xs,t

, y

s,t

)⌘

s.t. (xs,t�1, xs,t

, y

s,t

) 2 X

s,t

8 s, t

x

s,t

= x

s

0,t

8 (s, s0) 2 N

t

, 8 t

1

2

3

4

5

6

7

s=1

s=2

s=3

s=4

NonAn4cipa4vityConstraints

Page 15: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

Dynamic Programming

•  Formulation:

•  Expected Cost-to-go (ECTG) function:

•  Cost-to-go function:

minx1,y1

�f1(x1, y1) +Q1(x1) : (x

a(1), x1, y1) 2 X1

Q

m

(xn

) = minxm,ym

{fm

(xm

, y

m

) +Qm

(xm

) : (xn

, x

m

, y

m

) 2 X

m

} .

Qn(xn) :=X

m2C(n)

qnmQm(xn)

C(n)m

Page 16: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

Dynamic Programming

•  Formulation:

•  Expected Cost-to-go (ECTG) function:

•  Cost-to-go function:

minx1,y1

�f1(x1, y1) +Q1(x1) : (x

a(1), x1, y1) 2 X1

Q

m

(xn

) = minxm,ym

{fm

(xm

, y

m

) +Qm

(xm

) : (xn

, x

m

, y

m

) 2 X

m

} .

Qn(xn) :=X

m2C(n)

qnmQm(xn)

C(n)m

Condi4onalprobabilityqnm = pmP

m02C(n) pm0

Page 17: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

Exercisemin

Pt

(bt

qt

+ ct

ut

+ gt

vt

)s.t. h

t

= ht�1 + ⇠

t

� pt

+ ut

� vt

8 t↵p

t

+ qt

= dt

8 t0 h

t

hmax 8 tpt

, qt

, ut

, vt

� 0 8 t.

d

uv

hp

q

↵p

1

2

3

4

5

6

7

1.0

0.4

0.6

0.2

0.2

0.2

0.4

Supposetheinflowsarestochas4candfollowthescenariotreeshown(withassociatedprobabili4es).Writedown•  Extensiveform•  Scenarioformula4on•  DPformula4on•  Two-stageformula4on(assumingwater

levelsaredecidedhereandnow)

Page 18: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

Solution Approaches

Extensive form is usually too large to be solved as one monolithic problem. Need for decomposition approaches.

•  Two stage approximation + Rolling horizon

•  Scenario Decomposition: –  Progressive Hedging

•  Stagewise Decomposition

–  Stochastic Dual Dynamic Programming

–  Nested Benders

Page 19: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

Two-Stage Approximations

min

(f1(x1, y1) +

X

s

ps

� TX

t=2

fs,t(xs,t, ys,t)�)

min(x1,...,xT )

(X

n2Tp

n

min

yn2Xn(x)f

n

(xtn , yn)

�)

x

y1

2

3

4

5

6

7

•  Restric4on•  Firststage=xvariables•  Secondstage=y

variables•  Decomposebynode•  Feasiblesolu4on

•  Relaxa4on•  Firststage=Firstperiod•  Secondstage=Scenariovariables•  Decomposebyscenario

subproblems

Page 20: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

Rolling Horizon Heuristicfor all t = 1, . . . , T :

for all n 2 St:

- solve two-stage approximation for the multistage problem over

subtree Tn with initial conditions xa(n)

- let {x⇤m, y

⇤m}m2Tn be an optimal solution

- set xn = x

⇤n, yn = y

⇤n (root of Tn)

end-for

end-for

return feasible solution (xn, yn) for all n 2 T

St

Tn

Page 21: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

Progressive Hedging

Page 22: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

minx,y

X

s

p

s

⇣X

t

f

s,t

(xs,t

, y

s,t

)⌘

s.t. (xs,t�1, xs,t

, y

s,t

) 2 X

s,t

8 s, t

x

s,t

= x

s

0,t

8 (s, s0) 2 N

t

, 8 t

1

2

3

4

5

6

7

s=1

s=2

s=3

s=4

Progressive Hedging

PH=ADMM(alterna4ngdirec4onmethodofmul4pliers)appliedtothescenarioformula4on

Page 23: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

Progressive Hedging

1

2

3

4

5

6

7

s=1

s=2

s=3

s=4

minx,y,z

X

s

p

s

⇣X

t

f

s,t

(xs,t

, y

s,t

)⌘

s.t. (xs,t�1, xs,t

, y

s,t

) 2 X

s,t

8 s, t

x

s,t

= z

n

8n 2 St

, 8s 2 n, 8 t

Introducenodalvariables

Page 24: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

Progressive Hedging

1

2

3

4

5

6

7

s=1

s=2

s=3

s=4

minx,y,z

X

s

p

s

⇣X

t

f

s,t

(xs,t

, y

s,t

)+

>s,t

(xs,t

� z

n

) + ⇢

2 ||xs,t

� z

n

||2⌘

s.t. (xs,t�1, xs,t

, y

s,t

) 2 X

s,t

8 s, t

AugmentedLagrangian:

X

s2n

⇣ psPs02n ps0

⌘�s,tn = 0Dualfeasibility:

Page 25: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

Progressive Hedging1. Fix z

i

and �

i

and solve for (x

i+1, y

i+1):

- For each s solve

min

x,y

Pt

�f

s,t

(x

s,t

, y

s,t

) + (�

i

s,t

)

>(x

s,t

� z

i

n

)

+

2 ||xs,t

� z

i

n

||2�

s.t. (x

s,t�1, xs,t

, y

s,t

) 2 X

s,t

8 t.

- Let (x

i+1s,t

, y

i+1s,t

) be the corresponding optimal solutions.

2. Solve for z

i+1:

- Set z

i+1n

=

X

s2n

✓p

sPs

02n

p

s

0

◆x

i+1s,t

3. Update �:

- Set �

i+1s,t

= �

i

s,t

+ ⇢(x

i+1s,t

� z

i+1n

)

Page 26: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

PH Convergence

Theorem: (Under mild assumptions) The sequence of primal and dual solutions converge to an optimal solution of the scenario formulation.

At every iteration, values of nodal variables (z) constitute a feasible state vector and if corresponding local variables are computed, then we have a feasible solution

-RockafellarandWets(1991)

Page 27: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

Stochastic Dual Dynamic Programming

Page 28: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

Dynamic Programming

•  Formulation:

•  Expected Cost-to-go (ECTG) function:

•  Cost-to-go function:

minx1,y1

�f1(x1, y1) +Q1(x1) : (x

a(1), x1, y1) 2 X1

Q

m

(xn

) = minxm,ym

{fm

(xm

, y

m

) +Qm

(xm

) : (xn

, x

m

, y

m

) 2 X

m

} .

Qn(xn) :=X

m2C(n)

qnmQm(xn)

C(n)m

Page 29: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

ConvexityProposition: ECTG function in every node is polyhedral, i.e. piecewise linear and convex.

Proof: (Backward induction)

Suppose for all m 2 St

we have Qm

(x

m

) is polyhedral. Consider n 2 St�1.

Then for all m 2 C(n):

Q

m

(x

n

) = min

xm,ym

{fm

(x

m

, y

m

) +Qm

(x

m

) : A

m

x

n

+B

m

x

m

+ C

n

y

m

� b

m

}= min

xm,ym

{f 0m

(x

m

, y

m

) : B

m

x

m

+ C

n

y

m

� b

m

�A

m

x

n

}

= max

⇡�0

min

xm,ym

{f 0m

(x

m

, y

m

)� ⇡

>(B

m

x

m

+ C

n

y

m

)}+ ⇡

>(b

m

�A

m

x

n

)

= max

⇡�0

⇥v

m

(⇡)� ⇡

>A

m

x

n

)

where the equality follows from strong duality of linear programs and the in-

duction hypothesis. Thus Q

m

is convex. By LP duality finitely many dual

solutions, thus it is piecewise linear. So Q

m

is polyhedral. Since

Qn

(x

n

) =

X

m2C(n)

q

nm

Q

m

(x

n

)

the claim follows.

Page 30: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

ConvexityProposition: ECTG function in every node is polyhedral, i.e. piecewise linear and convex.

Proof: (Backward induction)

Suppose for all m 2 St

we have Qm

(x

m

) is polyhedral. Consider n 2 St�1.

Then for all m 2 C(n):

Q

m

(x

n

) = min

xm,ym

{fm

(x

m

, y

m

) +Qm

(x

m

) : A

m

x

n

+B

m

x

m

+ C

n

y

m

� b

m

}= min

xm,ym

{f 0m

(x

m

, y

m

) : B

m

x

m

+ C

n

y

m

� b

m

�A

m

x

n

}

= max

⇡�0

min

xm,ym

{f 0m

(x

m

, y

m

)� ⇡

>(B

m

x

m

+ C

n

y

m

)}+ ⇡

>(b

m

�A

m

x

n

)

= max

⇡�0

⇥v

m

(⇡)� ⇡

>A

m

x

n

)

where the equality follows from strong duality of linear programs and the in-

duction hypothesis. Thus Q

m

is convex. By LP duality finitely many dual

solutions, thus it is piecewise linear. So Q

m

is polyhedral. Since

Qn

(x

n

) =

X

m2C(n)

q

nm

Q

m

(x

n

)

the claim follows.

Page 31: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

ConvexityProposition: ECTG function in every node is polyhedral, i.e. piecewise linear and convex.

Proof: (Backward induction)

Suppose for all m 2 St

we have Qm

(x

m

) is polyhedral. Consider n 2 St�1.

Then for all m 2 C(n):

Q

m

(x

n

) = min

xm,ym

{fm

(x

m

, y

m

) +Qm

(x

m

) : A

m

x

n

+B

m

x

m

+ C

n

y

m

� b

m

}= min

xm,ym

{f 0m

(x

m

, y

m

) : B

m

x

m

+ C

n

y

m

� b

m

�A

m

x

n

}

= max

⇡�0

min

xm,ym

{f 0m

(x

m

, y

m

)� ⇡

>(B

m

x

m

+ C

n

y

m

)}+ ⇡

>(b

m

�A

m

x

n

)

= max

⇡�0

⇥v

m

(⇡)� ⇡

>A

m

x

n

)

where the equality follows from strong duality of linear programs and the in-

duction hypothesis. Thus Q

m

is convex. By LP duality finitely many dual

solutions, thus it is piecewise linear. So Q

m

is polyhedral. Since

Qn

(x

n

) =

X

m2C(n)

q

nm

Q

m

(x

n

)

the claim follows.

Page 32: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

ConvexityProposition: ECTG function in every node is polyhedral, i.e. piecewise linear and convex.

Proof: (Backward induction)

Suppose for all m 2 St

we have Qm

(x

m

) is polyhedral. Consider n 2 St�1.

Then for all m 2 C(n):

Q

m

(x

n

) = min

xm,ym

{fm

(x

m

, y

m

) +Qm

(x

m

) : A

m

x

n

+B

m

x

m

+ C

n

y

m

� b

m

}= min

xm,ym

{f 0m

(x

m

, y

m

) : B

m

x

m

+ C

n

y

m

� b

m

�A

m

x

n

}

= max

⇡�0

min

xm,ym

{f 0m

(x

m

, y

m

)� ⇡

>(B

m

x

m

+ C

n

y

m

)}+ ⇡

>(b

m

�A

m

x

n

)

= max

⇡�0

⇥v

m

(⇡)� ⇡

>A

m

x

n

)

where the equality follows from strong duality of linear programs and the in-

duction hypothesis. Thus Q

m

is convex. By LP duality finitely many dual

solutions, thus it is piecewise linear. So Q

m

is polyhedral. Since

Qn

(x

n

) =

X

m2C(n)

q

nm

Q

m

(x

n

)

the claim follows.

Page 33: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

ConvexityProposition: ECTG function in every node is polyhedral, i.e. piecewise linear and convex.

Proof: (Backward induction)

Suppose for all m 2 St

we have Qm

(x

m

) is polyhedral. Consider n 2 St�1.

Then for all m 2 C(n):

Q

m

(x

n

) = min

xm,ym

{fm

(x

m

, y

m

) +Qm

(x

m

) : A

m

x

n

+B

m

x

m

+ C

n

y

m

� b

m

}= min

xm,ym

{f 0m

(x

m

, y

m

) : B

m

x

m

+ C

n

y

m

� b

m

�A

m

x

n

}

= max

⇡�0

min

xm,ym

{f 0m

(x

m

, y

m

)� ⇡

>(B

m

x

m

+ C

n

y

m

)}+ ⇡

>(b

m

�A

m

x

n

)

= max

⇡�0

⇥v

m

(⇡)� ⇡

>A

m

x

n

)

where the equality follows from strong duality of linear programs and the in-

duction hypothesis. Thus Q

m

is convex. By LP duality finitely many dual

solutions, thus it is piecewise linear. So Q

m

is polyhedral. Since

Qn

(x

n

) =

X

m2C(n)

q

nm

Q

m

(x

n

)

the claim follows.

Page 34: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

Stage-wise Independence

•  Stage has independent realizations

•  “Recombining” scenario tree

•  One expected cost-to-go function per stage

•  implicitly encodes solution (policy): action under -th realization in stage given previous action is

t Nt

Qn(·) ⌘ Qt(·) 8 n 2 St

Qt(·) jt xt�1

(xt

, y

t

) = argminx,y

{fj,t

(x, y) +Qt

(x) : (xt�1, x, y) 2 X

j,t

}

Page 35: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

x1

x2

x3

Q1(x1)

Q2(x2)

Q3(x3)

Illustra(onofSDDP

Page 36: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

x1

x2

x3

Q1(x1)

Q2(x2)

Q3(x3)

Iter1:Forwardpass

Page 37: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

x1

x2

x3

Q1(x1)

Q2(x2)

Q3(x3)

Iter1:Forwardpass

Page 38: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

x1

x2

x3

Q1(x1)

Q2(x2)

Q3(x3)

Iter1:Backwardpass

Benders’Cut

Page 39: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

x1

x2

x3

Q1(x1)

Q2(x2)

Q3(x3)

Iter1:Backwardpass

Page 40: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

x1

x2

x3

Q1(x1)

Q2(x2)

Q3(x3)

Iter1:Backwardpass

Page 41: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

x1

x2

x3

Q1(x1)

Q2(x2)

Q3(x3)

Iter2:Forwardpass

Page 42: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

x1

x2

x3

Q1(x1)

Q2(x2)

Q3(x3)

Iter2:Forwardpass

Page 43: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

x1

x2

x3

Q1(x1)

Q2(x2)

Q3(x3)

Iter2:Backwardpass

Page 44: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

x1

x2

x3

Q1(x1)

Q2(x2)

Q3(x3)

Iter2:Backwardpass

Page 45: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

x1

x2

x3

Q1(x1)

Q2(x2)

Q3(x3)

Iter2:Backwardpass

Page 46: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

x1

x2

x3

Q1(x1)

Q2(x2)

Q3(x3)

Iter3:Forwardpass

Page 47: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

x1

x2

x3

Q1(x1)

Q2(x2)

Q3(x3)

Iter3:Forwardpass

Page 48: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

x1

x2

x3

Q1(x1)

Q2(x2)

Q3(x3)

Iter3:Backwardpass

Page 49: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

x1

x2

x3

Q1(x1)

Q2(x2)

Q3(x3)

Iter3:Backwardpass

Page 50: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

x1

x2

x3

Q1(x1)

Q2(x2)

Q3(x3)

Iter3:Backwardpass

Page 51: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

x1

x2

x3

Q1(x1)

Q2(x2)

Q3(x3)

Iter4:Forwardpass

Page 52: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

x1

x2

x3

Q1(x1)

Q2(x2)

Q3(x3)

Iter4:Forwardpass

Page 53: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

x1

x2

x3

Q1(x1)

Q2(x2)

Q3(x3)

Iter4:Backwardpass

Page 54: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

x1

x2

x3

Q1(x1)

Q2(x2)

Q3(x3)

Iter4:Backwardpass

Page 55: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

x1

x2

x3

Q1(x1)

Q2(x2)

Q3(x3)

Iter4:Backwardpass

Page 56: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

Details

Forward problem at node (j,t) iteration i:

t� 1 t+ 1t

j = 1

j =...

j = N

x

itSolve to get

Q

i

j,t

(xi

t�1) := minx,y,✓

f

j,t

(x, y) + ✓

s.t. B

j,t

x+ C

j,t

y � b

j,t

�A

j,t

x

i

t�1 (⇢j,t

)

✓ � 1N

hPj

0 v`

j

0,t+1 + (⇡`

j

0,t+1)

>x

i8 ` = 1, . . . , i� 1

Page 57: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

Details

Backward pass: for all j in stage t+1 solve:

t� 1 t+ 1t

j = 1

j =...

j = N

Q

i+1j,t+1

(xi

t

) := minx,y,✓

f

j,t+1(x, y) + ✓

s.t. B

j,t+1x+ C

j,t+1y � b

j,t+1 �A

j,t+1xi

t

(⇢j,t+1)

✓ � 1N

hPj

0 v`

j

0,t+2 + (⇡`

j

0,t+2)

>x

i8 ` = 1, . . . , i

Get dual optimal solution: ⇢j,t+1

Page 58: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

Details

Backward pass: for all j in stage t+1 solve:

t� 1 t+ 1t

j = 1

j =...

j = N

Q

i+1j,t+1

(xi

t

) := minx,y,✓

f

j,t+1(x, y) + ✓

s.t. B

j,t+1x+ C

j,t+1y � b

j,t+1 �A

j,t+1xi

t

(⇢j,t+1)

✓ � 1N

hPj

0 v`

j

0,t+2 + (⇡`

j

0,t+2)

>x

i8 ` = 1, . . . , i

Compute cut coefficients:

v

ij,t+1 = Q

i+1j,t+1

(xit) + ⇢

>j,t+1Aj,t+1x

it

(⇡ij,t+1)

> = �⇢>j,t+1Aj,t+1

Page 59: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

Details

Backward pass: for all j in stage t+1 solve:

t� 1 t+ 1t

j = 1

j =...

j = N

Q

i+1j,t+1

(xi

t

) := minx,y,✓

f

j,t+1(x, y) + ✓

s.t. B

j,t+1x+ C

j,t+1y � b

j,t+1 �A

j,t+1xi

t

(⇢j,t+1)

✓ � 1N

hPj

0 v`

j

0,t+2 + (⇡`

j

0,t+2)

>x

i8 ` = 1, . . . , i

Compute cut coefficients:

v

ij,t+1 = Q

i+1j,t+1

(xit) + ⇢

>j,t+1Aj,t+1x

it

(⇡ij,t+1)

> = �⇢>j,t+1Aj,t+1

✓ � 1

N

2

4X

j0

v

ij0,t+1 + (⇡i

j0,t+1)>x

3

5

Add cut to all nodes in t:

Page 60: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

SDDP Bounds •  Stochastic algorithm•  Forward pass generates candidate solutions along sample

paths, average of these objective values provides a statistical upper bound

•  Optimal value of stage 1 problem (with lower approximation of ECTGF) provides a deterministic lower bound

Page 61: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

Stochastic Dual Dynamic Programming

Page 62: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

SDDP Success

Dr. Pereira developed the well-known stochastic dual DP methodology, used by the National System Operator for the dispatch of Brazil’s 95 GW hydrothermal generation systems; and by the Wholesale Energy Market for the calculation of spot prices.

Itaipu Dam (14GW)

Page 63: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

SDDP Convergence

Theorem: If sampling is done with replacement and basic dual optimal solutions are used to construct Benders’ cuts, then w.p. 1 SDDP converges in a finite number of iterations to an optimal policy for a multistage stochastic LP.

Structure of LP value function structure is crucial

•  Chen&Powell(1999)•  Philpo\&Guan(2008)•  Shapiro(2011)•  Girardeauetal.(2014)•  …

Page 64: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

Cut Conditions and Convergence

•  Valid:

•  Tight:

•  Finite: Possible cut coefficients finite

Qj,t(x) � v

ij,t + (⇡i

j,t)>x 8 x 2 {0, 1}d

Q

i+1j,t

(xit�1) = v

ij,t + (⇡i

j,t)>x

it�1

Theorem: If sampling is done with replacement and cuts are valid, tight and finite, then w.p. 1 SDDP converges in a finite number of iterations to an optimal policy.

Page 65: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

Convergence Proof

•  Consider extensive tree structure since solutions are path dependent

•  Assumption: A solution/policy generated in the forward pass at iteration is completely specified by the approximate ECTG functions

•  Lemma 1: If then is optimal.

Proof: Backward induction of DP equations

{ it(·)}Tt=1

{xin}n2T

i

{xin}n2T i

tn(xin) = Qtn(x

in) 8 n 2 T

x

i

n

=

⇢argmin

x,y

f

n

(x, y) + i

tn(x)

s.t. (xi

a(n), x, y) 2 X

n

Page 66: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

Convergence Proof (contd.)

•  Let

•  Two types of iterations:(a)  At least one approx ECTG function changes

(b)  Approx ECTG functions do not change so policy does not change

•  Finite cuts mean finitely many approximations of ECTG

•  Finitely many possible solutions (because of assumption) means the summation is finite

K = sup{i : {xin}n2T is not optimal}

K = Ka +Kb

K = Ka

+P

x

Kx

b

Ka < +1

Page 67: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

Convergence Proof (contd.)

•  Lemma 2: Proof:

–  If solution is not optimal then by Lemma 1 there is a (last stage) node where approximation is loose

–  By Borel-Cantelli lemma, w.p.1 forward pass will hit this node within finite iterations, then a tight cut is generated, and we have new approximation of ECTGF

•  Thus

Pr[Kx

b

< +1] = 1

1 = Pr[Kx

b

< +1] Pr[K = Ka +P

x

Kx

b

< +1]

Q.E.D

Page 68: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

Nested Benders Decomposition

•  General scenario tree•  Maintain a approximate problem in every node

•  Forward pass: solve all nodes in a stage before moving to next stage.

•  Backward pass: solve all nodes in a stage, and pass back cuts to ancestor problems.

•  Deterministic algorithm•  Implementations: Gussmann (1990), Birge (1996), King (1994)

etc.

Page 69: Multistage Stochastic Optimization€¦ · Consider n 2 St1. Then for all m 2 C(n): Qm(xn)= min xm,ym {fm(xm,ym)+Qm(xm):Amxn + Bmxm + Cnym bm} =min xm,ym {f0 m (xm,ym):Bmxm + Cnym

Selected References1.  Birge (1985): Decomposition and Partitioning methods for Multistage Stochastic

Linear Programs, Operations Research, pp.989-1007

2.  Birge and Louveaux (2011): Introduction to Stochastic Programming (2nd Ed). Springer.

3.  Chen and Powell (1999): Convergent cutting plane and partial-sampling algorithm for multistage stochastic linear programs with recourse, Journal of Optimization Theory and Applications, pp. 497-524.

4.  GAMS: sddp.gms https://www.gams.com/modlib/libhtml/sddp.htm5.  Gassmann (1990): MSLiP: A computer code for the multistage stochastic linear

programming problem, Math. Prog. pp.407-423.

6.  Pereira and Pinto (1991): Multi-stage Stochastic Optimization applied to Energy Planning, Math. Prog., pp.359-375.

7.  Philpott and Guan (2008): On the convergence of stochastic dual dynamic programming and related methods, OR Letters, pp. 450-455.

8.  Rockafellar and Wets (1991): Scenarios and Policy Aggregation in Optimization under Uncertainty, Math. Of OR, pp.119-147.

9.  Shapiro, Dentcheva, and Ruszczynski (2014): Lectures on Stochastic Programming: Modeling and Theory (2nd Ed). SIAM Publishers.