stochastic linear programming - engie chairuclengiechair.be/.../stochasticlinearprogramming.pdf ·...

44
Stochastic Linear Programming Operations Research Anthony Papavasiliou 1 / 44

Upload: others

Post on 13-Jul-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Stochastic Linear Programming - ENGIE Chairuclengiechair.be/.../StochasticLinearProgramming.pdf · stochastic programming A tree (N;E) is an acyclic connected graph, where N denotes

Stochastic Linear ProgrammingOperations Research

Anthony Papavasiliou

1 / 44

Page 2: Stochastic Linear Programming - ENGIE Chairuclengiechair.be/.../StochasticLinearProgramming.pdf · stochastic programming A tree (N;E) is an acyclic connected graph, where N denotes

Stochastic Linear Programming

1 Two-Stage Stochastic Linear Programs

2 Scenario Trees, Lattices, and Serial Independence

3 Multi-Stage Stochastic Linear Programs

4 Applying Dynamic Programming to Stochastic Linear Programs

2 / 44

Page 3: Stochastic Linear Programming - ENGIE Chairuclengiechair.be/.../StochasticLinearProgramming.pdf · stochastic programming A tree (N;E) is an acyclic connected graph, where N denotes

Outline

1 Two-Stage Stochastic Linear Programs

2 Scenario Trees, Lattices, and Serial Independence

3 Multi-Stage Stochastic Linear Programs

4 Applying Dynamic Programming to Stochastic Linear Programs

3 / 44

Page 4: Stochastic Linear Programming - ENGIE Chairuclengiechair.be/.../StochasticLinearProgramming.pdf · stochastic programming A tree (N;E) is an acyclic connected graph, where N denotes

2-Stage Stochastic Linear Programs

Stochastic linear programs: linear programs with uncertaindata

Key feature of stochastic programs is recourse: decisions thatcan be taken after uncertainty is revealed

4 / 44

Page 5: Stochastic Linear Programming - ENGIE Chairuclengiechair.be/.../StochasticLinearProgramming.pdf · stochastic programming A tree (N;E) is an acyclic connected graph, where N denotes

Sequence of Events

1 First-stage decisions: decisions taken before uncertainty isrevealed

2 Second-stage decisions: decisions taken after uncertainty isrevealed

3 Sequence of events: x → ω → y(x , ω)

5 / 44

Page 6: Stochastic Linear Programming - ENGIE Chairuclengiechair.be/.../StochasticLinearProgramming.pdf · stochastic programming A tree (N;E) is an acyclic connected graph, where N denotes

Mathematical Formulation

min cT x + Eω[min q(ω)T y(ω)]

Ax = b

T (ω)x + W (ω)y(ω) = h(ω)

x ≥ 0, y(ω) ≥ 0

First stage decisions x ∈ Rn1 , second stage decisions y(ω) ∈ Rn2

First stage parameters: c ∈ Rn1 , b ∈ Rm1 , A ∈ Rm1×n1

Second-stage data: q(ω) ∈ Rn2 , h(ω) ∈ Rm2 , T (ω) ∈ Rm2×n1 ,W (ω) ∈ Rm2,n2

Fixed recourse if W does not depend on ω

6 / 44

Page 7: Stochastic Linear Programming - ENGIE Chairuclengiechair.be/.../StochasticLinearProgramming.pdf · stochastic programming A tree (N;E) is an acyclic connected graph, where N denotes

Example: Newsboy ProblemDenote

x : amount of product produced in period 1y : amount of product sold in period 2C: unit cost of productionP: sale priceD(ω): random demand

Two-stage stochastic formulation of newsboy problem:

minx,s(ω)≥0

C · x − Eω[P · s(ω)]

s.t. s(ω) ≤ x

s(ω) ≤ D(ω)

Extensions: salvage value, penalty for unserved demand

What is the trade-off of large/small value of x?

7 / 44

Page 8: Stochastic Linear Programming - ENGIE Chairuclengiechair.be/.../StochasticLinearProgramming.pdf · stochastic programming A tree (N;E) is an acyclic connected graph, where N denotes

Example: Capacity Expansion Planning

minx,y≥0

n∑i=1

(Ii · xi + Eω[m∑

j=1

Ci · Tj · yij (ω)])

s.t.n∑

i=1

yij (ω) = Dj (ω), j = 1, . . . ,m

m∑j=1

yij (ω) ≤ xi , i = 1, . . .n − 1

Ii ,Ci : fixed/variable cost of technology i

Dj (ω),Tj : height/width of load block j

yij (ω): capacity of i allocated to j

xi : capacity of i

Note: Tj independent of ω

8 / 44

Page 9: Stochastic Linear Programming - ENGIE Chairuclengiechair.be/.../StochasticLinearProgramming.pdf · stochastic programming A tree (N;E) is an acyclic connected graph, where N denotes

Example: Capacity Expansion Planning - GraphicalIllustration

Note: Tj independent of ω

How did we get rid of block 1 in first scenario (ω = 1)?9 / 44

Page 10: Stochastic Linear Programming - ENGIE Chairuclengiechair.be/.../StochasticLinearProgramming.pdf · stochastic programming A tree (N;E) is an acyclic connected graph, where N denotes

Example: Hydro-Thermal Scheduling

Denote:

qt : hydro power

pt : thermal power

C: marginal cost of thermal power plant

Dt : demand

E : storage limit in the dam

xt : content of dam at the end of a stage

rt : amount of rain during stage t

10 / 44

Page 11: Stochastic Linear Programming - ENGIE Chairuclengiechair.be/.../StochasticLinearProgramming.pdf · stochastic programming A tree (N;E) is an acyclic connected graph, where N denotes

Hydro-thermal scheduling problem:

min C · p1 + Eω[C · p2(ω)]

p1 + q1 ≥ D1

x1 ≤ x0 + r1 − q1

x1 ≤ E

p2(ω) + q2(ω) ≥ D2

q2(ω) ≤ x1 + r2(ω)

p1,q1, x1,p2(ω),q2(ω) ≥ 0

What is the trade-off?

11 / 44

Page 12: Stochastic Linear Programming - ENGIE Chairuclengiechair.be/.../StochasticLinearProgramming.pdf · stochastic programming A tree (N;E) is an acyclic connected graph, where N denotes

Scenario Tree

Scenario tree: graphical representation of uncertainty in stochasticprograms

Characteristics of scenario tree

Time stages

Nodes/outcomes at each stage

Transition probabilities from nodes/outcomes of stage t tonodes/outcomes of stage t + 1

12 / 44

Page 13: Stochastic Linear Programming - ENGIE Chairuclengiechair.be/.../StochasticLinearProgramming.pdf · stochastic programming A tree (N;E) is an acyclic connected graph, where N denotes

Example: Newsboy - Scenario Tree

D(ω) =

2, ω = 13, ω = 2

with equal likelihood

One node/outcome in stage 1, two nodes/outcomes in stage 2

13 / 44

Page 14: Stochastic Linear Programming - ENGIE Chairuclengiechair.be/.../StochasticLinearProgramming.pdf · stochastic programming A tree (N;E) is an acyclic connected graph, where N denotes

Outline

1 Two-Stage Stochastic Linear Programs

2 Scenario Trees, Lattices, and Serial Independence

3 Multi-Stage Stochastic Linear Programs

4 Applying Dynamic Programming to Stochastic Linear Programs

14 / 44

Page 15: Stochastic Linear Programming - ENGIE Chairuclengiechair.be/.../StochasticLinearProgramming.pdf · stochastic programming A tree (N;E) is an acyclic connected graph, where N denotes

Modeling Uncertainty in Multistage Stochastic LinearProgramming (MSLP)

Recall multi-period decision making under uncertainty:

St : state space at stage tAt : action space at stage t

The general framework of multi-period decision making underuncertainty defines Ω = (S0,A0)× . . .× (SH−1,AH−1)× SH

Multi-stage stochastic linear programming (MSLP):

The above framework is unnecessarily general for MSLPsIn MSLPs one defines a set St at each stage, and the samplespace Ω = S1 × . . . ,SH (note that in MSLP time counts fromt = 1)We can then define the probability space (Ω,AH ,P), whereAH = B(ΩH), and P is a probability measure on AH

P implies a probability measure for any At ⊆ B(Ω)15 / 44

Page 16: Stochastic Linear Programming - ENGIE Chairuclengiechair.be/.../StochasticLinearProgramming.pdf · stochastic programming A tree (N;E) is an acyclic connected graph, where N denotes

Scenario Trees

In practice, nobody uses (Ω,AH ,P) to describe uncertainty (tootedious, unnecessarily complex)

Scenario trees: compact, graphical representation of uncertainty instochastic programming

A tree (N,E) is an acyclic connected graph, where N denotes itsnodes and E denotes its edges

A rooted tree is a tree where there exists a unique node which isdesignated as the root

A scenario tree is a rooted tree which consists ofoutcomes (or nodes): history of random input ξ[t] = (ξ1, . . . , ξt)

(each node characterized by a unique time index)edges: transition probabilities from a history ξ[t1] in stage t1 tohistory ξ[t2] in stage t2, with t1 ≤ t2

16 / 44

Page 17: Stochastic Linear Programming - ENGIE Chairuclengiechair.be/.../StochasticLinearProgramming.pdf · stochastic programming A tree (N;E) is an acyclic connected graph, where N denotes

Scenario Tree Structure

Root corresponds to t = 1

Ancestor of a node ξ[t], A(ξ[t]): unique adjacent node which isindexed by an earlier point in time

A(ξ[t]) = ξ[t′] : (ξ[t′], ξ[t]) ∈ E

Children or descendants of a node, C(st ): set of nodes that areadjacent to st and are indexed by a later moment in time

C(ξ[t]) = ξ[t′] : (ξ[t], ξ[t′]) ∈ E

Each node of stage t corresponds to a realization of a randomvector ξ[t]

17 / 44

Page 18: Stochastic Linear Programming - ENGIE Chairuclengiechair.be/.../StochasticLinearProgramming.pdf · stochastic programming A tree (N;E) is an acyclic connected graph, where N denotes

Example: Newsboy Problem

Formal definition of probability space (Ω,B(Ω),P):

Sample space: Ω = High,Low

Probability measure: P[High] = P[Low] = 0.5

Random variable: D(Low) = 3, D(High) = 218 / 44

Page 19: Stochastic Linear Programming - ENGIE Chairuclengiechair.be/.../StochasticLinearProgramming.pdf · stochastic programming A tree (N;E) is an acyclic connected graph, where N denotes

Lattice

A lattice is a scenario tree where every state ξ[t−1] ∈ Ξ[t−1] has thesame set of descendants in ξ[t] ∈ Ξt

Lattices are more compact representations of uncertainty thanscenario trees, typically employed in SDDP

19 / 44

Page 20: Stochastic Linear Programming - ENGIE Chairuclengiechair.be/.../StochasticLinearProgramming.pdf · stochastic programming A tree (N;E) is an acyclic connected graph, where N denotes

Serial Independence

Define

ξ[t−1](ω) = (ξ1(ω), . . . , ξt−1(ω)) as the history of realizations ofthe random input up to stage t − 1

Ξ[t] = Ξ1 × . . .×Ξt the set of possible paths from time period 1 tot

Serial independence: random disturbance ξt (ω) in each stage t hasa probability distribution that does not depend on the history of theprocess, i.e. one can define a probability measure pt (i) at each staget , such that

P[ξt (ω) = i |ξ[t−1](ω)] = pt (i),∀ξ[t−1] ∈ Ξ[t−1], i ∈ Ξ[t]

20 / 44

Page 21: Stochastic Linear Programming - ENGIE Chairuclengiechair.be/.../StochasticLinearProgramming.pdf · stochastic programming A tree (N;E) is an acyclic connected graph, where N denotes

Examples

Values on arcs indicate transition probabilities, values in nodesindicate realization of ξt

Which scenario tree(s) obey(s) serial independence

21 / 44

Page 22: Stochastic Linear Programming - ENGIE Chairuclengiechair.be/.../StochasticLinearProgramming.pdf · stochastic programming A tree (N;E) is an acyclic connected graph, where N denotes

Outline

1 Two-Stage Stochastic Linear Programs

2 Scenario Trees, Lattices, and Serial Independence

3 Multi-Stage Stochastic Linear Programs

4 Applying Dynamic Programming to Stochastic Linear Programs

22 / 44

Page 23: Stochastic Linear Programming - ENGIE Chairuclengiechair.be/.../StochasticLinearProgramming.pdf · stochastic programming A tree (N;E) is an acyclic connected graph, where N denotes

General Formulation

(MSLP) : min cT1 x1 + E[c2(ω)T x2(ω) + · · ·+ cH(ω)T xH(ω)]

s.t. W1x1 = h1

T1(ω)x1 + W2(ω)x2(ω) = h2(ω), ω ∈ Ω

...

Tt−1(ω)xt−1(ω) + Wt (ω)xt (ω) = ht (ω), ω ∈ Ω

...

TH−1(ω)xH−1(ω) + WH(ω)xH(ω) = hH(ω), ω ∈ Ω

x1 ≥ 0, xt (ω) ≥ 0, t = 2, . . . ,H

23 / 44

Page 24: Stochastic Linear Programming - ENGIE Chairuclengiechair.be/.../StochasticLinearProgramming.pdf · stochastic programming A tree (N;E) is an acyclic connected graph, where N denotes

Notation

ct (ω) ∈ Rnt : cost coefficients

ht (ω) ∈ Rmt : right-hand side parameters

Wt (ω) ∈ Rmt×nt : coefficients of xt (ω)

Tt−1(ω) ∈ Rmt×nt−1 : coefficients of xt−1(ω)

xt (ω): set of state and action variables in period t

Action space / feasible set of xt (ω):

Tt−1(ω)xt−1(ω) + Wt (ω)xt (ω) = ht (ω)

xt (ω) ≥ 0

24 / 44

Page 25: Stochastic Linear Programming - ENGIE Chairuclengiechair.be/.../StochasticLinearProgramming.pdf · stochastic programming A tree (N;E) is an acyclic connected graph, where N denotes

Formulation on a Scenario Tree

min cT1 x1 + E[c2(ω[t])

T x2(ω[2]) + · · ·+ cH(ω[H])T xH(ω[H])]

s.t. W1x1 = h1

T1(ω2)x1 + W2(ω[2])x2(ω[2]) = h2(ω[2]), ω[2] ∈ Ξ[2]

...

Tt−1(ω[t])xt−1(ω[t−1]) + Wt (ω[t])xt (ω[t]) = ht (ω[t]), ω[2] ∈ Ξ[2]

...

TH−1(ω[H])xH−1(ω[H]) + WH(ω[H])xH(ω[H]) = hH(ωH), ω[H] ∈ Ξ[H]

x1 ≥ 0, xt (ω[t]) ≥ 0, t = 2, . . . ,H

Note: random input ξt and decision vector xt is indexed over historyω[t] ∈ Ξ[t]

25 / 44

Page 26: Stochastic Linear Programming - ENGIE Chairuclengiechair.be/.../StochasticLinearProgramming.pdf · stochastic programming A tree (N;E) is an acyclic connected graph, where N denotes

Formulation on Lattice

(MSLP) : min cT1 x1 + E[c2(ω2)T x2(ω[2]) + · · ·+ cH(ωH)T xH(ω[H])]

s.t. W1x1 = h1

T1(ω2)x1 + W2(ω2)x2(ω[2]) = h2(ω2), ω[2] ∈ Ξ[2]

...

Tt−1(ωt )xt−1(ω[t−1]) + Wt (ωt )xt (ω[t]) = ht (ωt ), ω[t] ∈ Ξ[t]

...

TH−1(ωH)xH−1(ω[H−1]) + WH(ωH)xH(ω[H]) = hH(ωH), ω[H] ∈ Ξ[H]

x1 ≥ 0, xt (ω[t]) ≥ 0, t = 2, . . . ,H

Note: ξt is indexed over ωt ∈ Ξt , while xt is indexed over ω[t] ∈ Ξ[t].

26 / 44

Page 27: Stochastic Linear Programming - ENGIE Chairuclengiechair.be/.../StochasticLinearProgramming.pdf · stochastic programming A tree (N;E) is an acyclic connected graph, where N denotes

Example: Capacity Expansion - Scenario Tree

Table: Load duration curve for reference and 10x outcome

Duration (hours) Level (MW) Level (MW)Reference scenario 10x wind scenario

Base load 8760 0-7086 0-3919Medium load 7000 7086-9004 3919-7329

Peak load 1500 9004-11169 7329-10315

27 / 44

Page 28: Stochastic Linear Programming - ENGIE Chairuclengiechair.be/.../StochasticLinearProgramming.pdf · stochastic programming A tree (N;E) is an acyclic connected graph, where N denotes

Example: Capacity Expansion - Technological Options

Technology Fuel cost ($/MWh) Inv cost ($/MWh)Coal 25 16Gas 80 5

Nuclear 6.5 32Oil 160 2DR 1000 0

28 / 44

Page 29: Stochastic Linear Programming - ENGIE Chairuclengiechair.be/.../StochasticLinearProgramming.pdf · stochastic programming A tree (N;E) is an acyclic connected graph, where N denotes

Example: Capacity Expansion - Notation and Setup

Denote:

vitω[t] : capacity of technology i constructed in period t

xitω[t] : total amount of capacity of technology i available in period t

yijtω[t] : power allocation from technology i to load block j

Sequence of events:1 Capacity xi,t−1,ω[t−1] available at the end of stage t − 1 that can

serve demand in t2 Demand Djtω[t] is observed3 Construct new capacity vitω[t]

29 / 44

Page 30: Stochastic Linear Programming - ENGIE Chairuclengiechair.be/.../StochasticLinearProgramming.pdf · stochastic programming A tree (N;E) is an acyclic connected graph, where N denotes

Example: Capacity Expansion - ModelObjective function:

minx,v ,y≥0

n∑i=1

Ii · vi11

+2∑

ω[2]=1

pω[2](n∑

i=1

Ii · vi2ω[2] +n∑

i=1

m∑j=1

Ci · Tj · yij2ω[2])

+4∑

ω[3]=1

pω[3](n∑

i=1

Ii · vi3ω[3] +n∑

i=1

m∑j=1

Ci · Tj · yij3ω[3])

Note: first stage involves only investment decision

Supply equals demand (enforced only for t > 1):n∑

i=1

yijtω[t] = Djtω[t] , j ∈ 1, . . . ,m, t ∈ 2, . . . ,3

ω[2] ∈ 1,2, ω[3] ∈ 1, . . . ,4

30 / 44

Page 31: Stochastic Linear Programming - ENGIE Chairuclengiechair.be/.../StochasticLinearProgramming.pdf · stochastic programming A tree (N;E) is an acyclic connected graph, where N denotes

Example: Capacity Expansion - ModelInvestment dynamics:

xi2ω[2] = xi11 + vi2ω[2] , i ∈ 1, . . . ,n − 1, ω[2] ∈ 1,2

xi3ω[3] = xi21 + vi3ω[3] , i ∈ 1, . . . ,n − 1, ω[3] ∈ 1,2

xi3ω[3] = xi22 + vi3ω[3] , i ∈ 1, . . . ,n − 1, ω[3] ∈ 3,4

Technology capacity constraints:m∑

j=1

yij2ω[2] ≤ xi11, i ∈ 1, . . .n − 1, ω[2] ∈ 1,2

m∑j=1

yij3ω[3] ≤ xi21, i ∈ 1, . . .n − 1, ω[3] ∈ 1,2

m∑j=1

yij3ω[3] ≤ xi22, i ∈ 1, . . .n − 1, ω[3] ∈ 3,4

Does this model obey block separability?

31 / 44

Page 32: Stochastic Linear Programming - ENGIE Chairuclengiechair.be/.../StochasticLinearProgramming.pdf · stochastic programming A tree (N;E) is an acyclic connected graph, where N denotes

Example: Capacity Expansion - Optimal Solution

Optimal expansion plan:

Coal, period 1: 2986 MW

Nuclear, period 1: 7329 MW

Oil, period 1: 854 MW

Period 2: nothing (!)

Why is it optimal to invest only in period 1?

32 / 44

Page 33: Stochastic Linear Programming - ENGIE Chairuclengiechair.be/.../StochasticLinearProgramming.pdf · stochastic programming A tree (N;E) is an acyclic connected graph, where N denotes

Outline

1 Two-Stage Stochastic Linear Programs

2 Scenario Trees, Lattices, and Serial Independence

3 Multi-Stage Stochastic Linear Programs

4 Applying Dynamic Programming to Stochastic Linear Programs

33 / 44

Page 34: Stochastic Linear Programming - ENGIE Chairuclengiechair.be/.../StochasticLinearProgramming.pdf · stochastic programming A tree (N;E) is an acyclic connected graph, where N denotes

Multistage Decision Making Under Uncertainty

34 / 44

Page 35: Stochastic Linear Programming - ENGIE Chairuclengiechair.be/.../StochasticLinearProgramming.pdf · stochastic programming A tree (N;E) is an acyclic connected graph, where N denotes

Multistage Stochastic Linear Programming

Differences between the two block diagrams:

In MSLP, decision maker first observes the realization ofuncertainty, ξt , then decides xt

System state which is propagated from one period to the next:vector xt and node in the scenario tree ωt

Feasible action set At depends on xt−1 and ξt

35 / 44

Page 36: Stochastic Linear Programming - ENGIE Chairuclengiechair.be/.../StochasticLinearProgramming.pdf · stochastic programming A tree (N;E) is an acyclic connected graph, where N denotes

Block SeparabilityFeasible action set in stage t :

Tt−1(ωt )xt−1(ω[t]) + Wt (ωt )xt (ω[t]) = ht (ωt ), ωt ∈ Ξ[t]

Block separability occurs when these constraints can be written inthe following form:

T xxt−1(ωt )xt−1(ω[t−1]) + W xx

t (ωt )xt (ω[t]) = hxxt (ωt ), ωt ∈ Ξ[t]

T xut−1(ωt )xt−1(ω[t−1]) + W xu

t (ωt )ut (ωt ) = hxut (ωt ), ωt ∈ Ξ[t]

So what?

Decision variables ut do not need to be propagated forward

Computational benefits: SDDP does not scale well for largedimension of xt vector, can handle high-dimensional actionvectors efficiently

36 / 44

Page 37: Stochastic Linear Programming - ENGIE Chairuclengiechair.be/.../StochasticLinearProgramming.pdf · stochastic programming A tree (N;E) is an acyclic connected graph, where N denotes

Application of Dynamic Programming in MSLPQ-function in final period:

QH(xH−1, ξH) = minxH

cH(ωH)T xH

s.t. TH−1(ωH)xH−1 + WH(ωH)xH = hH(ωH)

xH ≥ 0

Value function in final period:

VH(xH−1, ωH−1) = EξH [QH(xH−1, ξH)|ωH−1]

Proceeding recursively, Q-function in stage t :

Qt (xt−1, ξt ) = minxt

ct (ωt )T xt + Vt+1(xt , ωt )

s.t. Tt−1(ωt )xt−1 + Wt (ωt )xt = ht (ωt )

xt ≥ 0

Value function in stage t :

Vt (xt−1, ωt−1) = Eξt [Qt (xt−1, ξt )|ωt−1]

37 / 44

Page 38: Stochastic Linear Programming - ENGIE Chairuclengiechair.be/.../StochasticLinearProgramming.pdf · stochastic programming A tree (N;E) is an acyclic connected graph, where N denotes

Notational Convention

Note the different notation for node of the lattice (ωt ) andrealization of uncertainty (ξt )

It is only necessary to propagate (xt , ωt ) forward, not (xt , ξt )

The notation Vt (xt−1, ωt−1) emphasizes how value functions arestored by SDDP

The notation Qt (xt−1, ξt ) is the conventional notation used instochastic programming, but Q-functions are not explicitly storedin SDDP

38 / 44

Page 39: Stochastic Linear Programming - ENGIE Chairuclengiechair.be/.../StochasticLinearProgramming.pdf · stochastic programming A tree (N;E) is an acyclic connected graph, where N denotes

Application of Dynamic Programming to 2-StageStochastic Linear Programming

Qt (xt−1, ωt ) = min ct (ωt )T xt + Vt+1,ωt (xt )

s.t. Wt (ωt )xt = ht (ωt )− Tt−1(ωt )xt−1

xt ≥ 0

Proceed backwards until:

min cT1 x1 + V2(x1)

s.t. W1x1 = h1

x1 ≥ 0

39 / 44

Page 40: Stochastic Linear Programming - ENGIE Chairuclengiechair.be/.../StochasticLinearProgramming.pdf · stochastic programming A tree (N;E) is an acyclic connected graph, where N denotes

Example: Hydrothermal Scheduling

40 / 44

Page 41: Stochastic Linear Programming - ENGIE Chairuclengiechair.be/.../StochasticLinearProgramming.pdf · stochastic programming A tree (N;E) is an acyclic connected graph, where N denotes

Example: Hydrothermal Scheduling

Consider the following hydro-thermal system:

3 periods

Demand in each period: 1000 MW

Marginal cost of thermal generators: 25 $/MWh

Max production of thermal generators: 500 MW

Marginal cost of lost load: 1000 $/MWh

Rainfall: independent identically distributed, uniformly on[0,1000] MW, denote density function as f : R→ R

41 / 44

Page 42: Stochastic Linear Programming - ENGIE Chairuclengiechair.be/.../StochasticLinearProgramming.pdf · stochastic programming A tree (N;E) is an acyclic connected graph, where N denotes

Example: Hydrothermal Scheduling

Denote

p: thermal production

q: hydro production

l : unserved demand

x2: stored hydro energy at beginning of period 2

Q3(x2,R3) = min 1000 · l + 25 · p

s.t. l + p + q ≥ 1000

p ≤ 500

q ≤ x2 + R3

l ,p,q ≥ 0

42 / 44

Page 43: Stochastic Linear Programming - ENGIE Chairuclengiechair.be/.../StochasticLinearProgramming.pdf · stochastic programming A tree (N;E) is an acyclic connected graph, where N denotes

Q function of period 3:

Q3(x2,R3) =

0, x2 + R3(ω) ≥ 100025 · (1000 − (x2 + R3(ω))), 500 ≤ x2 + R3(ω) < 1000500 · 25 + 1000 · (500 − (x2 + R3(ω))), 0 ≤ x2 + R3(ω) < 500

Value function of period 3:

V3(x2) = ER3 [Q3(x2,R3)]

= P[R3(ω) ≥ 1000 − x2] · 0

+

∫ 1000−x2

r=500−x2

(25 · (1000 − r − x2))f (r)dr

+

∫ 500−x2

r=0(500 · 25 + 1000 · (500 − r − x2))f (r)dr

=

0, x2 ≥ 1000

12500 − 25 · x2 + 0.0125 · x22 , 500 ≤ x2 < 1000

134375 − 512.5 · x2 + 0.5 · x22 , 0 ≤ x2 < 500

Note:

V3 is convex

V3 is not a piecewise linear function of x2

43 / 44

Page 44: Stochastic Linear Programming - ENGIE Chairuclengiechair.be/.../StochasticLinearProgramming.pdf · stochastic programming A tree (N;E) is an acyclic connected graph, where N denotes

Q2 can be computed as:

Q2(x1,R2) = min 1000 · l + p + V3(x2)

s.t. l + p + q ≥ 1000,p ≤ 500

x2 = x1 − q + R2(ω)

l ,p,q, x2 ≥ 0

Q2 yields V2, V2 yields Q1, . . .

44 / 44