Intra-period Market Clearing for a Multi

Intra-period Market Clearing for a
Multi-Use Catchment via CDDP
Indra Mahakalanda, Shane Dye, E. Grant Read, John F. Raffensperger
Department of Management,
University of Canterbury,
New Zealand.
[email protected]
Abstract
In this paper, we show how to efficiently optimise consumptive and non-consumptive
water use in any river catchment that can be represented as a tree radiating from a single
reservoir. We describe a deterministic Constructive Dual Dynamic Programming
(CDDP) algorithm which implicitly clears a market, across all nodes in the catchment,
to construct a net demand curve for water released from the reservoir, in each period.
Given these intra-period demand curves, a stochastic CDDP algorithm can construct the
demand curve for water stored in the reservoir, thus clearing an inter-temporal market to
optimise both consumptive and non-consumptive water use across time.
Key words: Reservoir optimization, water markets, CDDP
1
Introduction
A reservoir operator faces the difficult decision as to how much water to release to users
in the current period, and how much to store or release later. Her decision depends on
the amount of water available, on uncertain inflows into the catchment, and on present
and future consumptive and non-consumptive demands. This paper addresses this
decision problem, with a focus on market clearing. Read and Hindsberger (2010)
survey applications of Constructive Dual Dynamic Programming (CDDP) for intertemporal reservoir optimization, some of which have been in market contexts. (Scott &
Read, 1996).
Dye, Read, Read, and Starkey (2012) describe experiments using CDDP to
determine the value that could be added by using stochastic optimisation in an intertemporal market clearing context (Starkey, Dye, Read, & Read, 2012). However, those
previous studies do not explicitly address the structure of the river network, and
interactions between consumptive and non-consumptive water users at various points
within it, whether by a market or otherwise. The stochastic CDDP algorithm
decomposes the inter-temporal optimisation into a sequence of single period trade-offs
between the benefits of immediate release and the expected benefits of storage for later
release. The benefit from immediate release is modelled by a “Demand Curve for
Release” (DCR), in each period. This paper describes an efficient intra-period CDDP
algorithm to determine the DCRs from a river network. The intra-period optimisations
are deterministic, forming sub-problems to an overall stochastic model.
River networks have a number of features affecting the demand for reservoir release.
A stream or inflow that flows into the catchment is known as a tributary flow. These
tributary flows are often subject to temporal variations. The river flow is often diverted
to cater for ecological demands and consumptive uses; these diversions typically have
only a remote chance to return to the catchment directly. Non-consumptive uses, on the
other hand, gain benefit (or in the case of pumps, incur costs) based on water flow. The
water itself is still available for further use downstream. Both contribute to defining a
DCR.
The DCR defines the amount of water the reservoir manager should economically
release, given the benefit from supplying water to consumptive and non-consumptive
users, as a function of the marginal value (or price) of stored water. The DCR could be
determined using benefit curves estimated by the reservoir manager, but in this
application we envisage the benefits being defined by clearing a market within which
each consumptive user bids for water to be delivered to their node, and each nonconsumptive user bids for water flow on their arc. To clear the full inter-temporal
market requires the determination of a DCR for every inflow state in every period over
the planning horizon.
2
Intra-period multi nodal market model
To construct a DCR solely as a function of long term reservoir storage, we assume that
the costs and benefits of consumptive and non-consumptive use at different locations
within the river network are independent. We also assume that those costs and benefits
are independent of supplies and demands met in previous periods, and can be described
by functions of water use which are convex for costs and concave for benefits.
The resulting DCR forms input for the CDDP market clearing module. We let nb be
the net demand curve for water at a particular node, representing the net quantity of
water demanded at that node as a function of price. We construct nodal net demand
curves for water by combining the consumptive demands, distributary requirements and
tributary flows at each node with the nodal net demand curves from neighbouring
nodes, in a way which respects all constraints.
2.1
Tree representation of a catchment
We assume that the river network has a tree structure. Each node will have a parent
(“next”) node, being the neighbouring node on the unique path towards the reservoir.
Figure 1 illustrates the various features of a catchment. The CDDP algorithm produces a
DCR by aggregating the water demand curves of all nodes towards the reservoir.
Trading, and consumptive use, can occur at any node, except node 0 which is the
reservoir. We generalise the DCR concept by defining a Demand Curve for Water,
whether “released” or not, at each node. Non-consumptive uses occur on arcs between
nodes, and affect marginal benefits in the demand curve for water for the parent node.
Figure 1: A single reservoir multi node catchment.
Our multi-nodal CDDP algorithm works inwards from the “leaves” of this tree, back to
the reservoir (node 0), irrespective of flow direction. We first describe the model in
terms of the demands, supplies and water flows as they would usually be modelled. We
then describe the algorithm, which generates net demand curves. For this purpose nodal
data is re-cast as net demands and arcs are reoriented towards the reservoir.
2.2
The catchment optimisation sub- problem
In this section we simply set up a mathematical description of the catchment
optimisation sub-model which would need to be solved in order to determine the
optimal benefit, B(r), from any particular level of reservoir release, r. A DCR could
then be defined by differencing these B(r) values, but the CDDP algorithm that
follows actually computes the DCR directly.
Let T = ( =0..n,A) be a tree with the reservoir at the root node 0, and
nodes
indexed so that child nodes (further from the reservoir) have a larger index than their
parents. Arcs A are denoted j with j~(i,k) indicating that the usual water flow direction
for arc j is from node i to node k.
Each non-root node i ∈ has Fimax ≥ 0 units of tributary inflow. (Flows directly into
the reservoir are dealt with in the stochastic optimisation described later.) Variable fi
represents the amount of this inflow captured at node i, 0 ≤ fi ≤ Fimax. Inflow not
captured is lost to the system. For full generality, CFi (f) denotes the increasing convex
cost function associated with the capture of this flow. This generality allows for supply
participants who incur costs or who charge for the flow injection, but for a typical
tributary flow CFi(f)=0. Each node i has Ci ≥ 0 units of (potential) consumptive demand,
with the associated decreasing convex benefit function CBi(ci). Variable 0 ≤ ci ≤ Ci,
represents the consumptive demand met at node i.
Variable 0 ≤ di ≤ Ei represents the distributary flow from node i. The minimum flow
into node i is modelled as a target flow Ei (≥ 0), with a convex increasing cost function
CEi(Ei – di) associated with missing the target by (Ei – di) units. Ei = 0 and CEi=0 for
nodes with no distributary flow, but distributary flows could be required to meet
minimum environmental flow requirements.
Each arc j ∈ A has an associated variable xj representing downstream flow, with a
lower bound of Lj and upper bound of Uj. The lower bound could be positive to meet a
strict environmental flow requirement, or negative if pumping or some other upstream
transfer were available. The variable ℝ represents the release from the reservoir. For a
given release r, we solve the following model:
∑
[1]
=
−
−
−
+∑ ∈
Subject to:
[2]
+ ∑ ~ #,
= + + ∑ ~ ,#
∀ % = 1,2, … . . , *
∑ ~ #,+
[3]
− ∑ ~ +,#
≤
[4]
−- ≤ ≤ . ; 0 ≤ ≤ ; 0 ≤ ≤ , 0 ≤ ≤ 123
2.3
The multi-nodal CDDP algorithm
Rather than solve a whole series of sub-problems explicitly, the CDDP algorithm for
clearing the intra-period nodal market implicitly defines (marginal) benefit as a function
of release, across the whole range of possible releases in this period, by directly
constructing marginal water value curves to compute the reservoir DCR. Note that this
is equivalent to optimising model [1]-[4] for all values of r simultaneously, in a single
pass. Arc bounds restrict the opportunities which may be exploited at connected nodes.
The cumulative effect of these restrictions is maintained by a domain associated with
each marginal value curve. We use the notation : 5 to denote function f restricted to
domain S.
The model data is pre-processed to simplify the algorithm description. All cost and
benefit functions at nodes are converted to marginal net demand functions. Here, these
are described as defining marginal prices as a function of water supplied. But they
could, equivalently, be expressed as defining net demand as a function of price.
Specifically, for each node i, the pre-processing calculates the following net demand
functions.
8
• Tributary flows form net demand : 6− 123 , 07 where
= 89
− .
•
•
Consumptive demands form net demand : : 60,
Distributary flows form net demand ; : 60,
7 where :
7 where ;
= 89
= 89
8
8
−
.
.
By convention, arcs are directed away from the reservoir. The flow bounds for arc j are
adjusted to account for this, setting -< = - and . < = . if water flow is away from the
reservoir, and -< = −. and . < = −- if water flow is directed towards the reservoir.
Non-consumptive uses are similarly affected forming net demand function * : =-< , . < >
where *
*
=−
8
=
83
8
83
−
for arcs with water flow away from the reservoir and
otherwise.
The algorithm starts from the node with the largest index. We first form a nodal net
demand curve (nb:S) by “horizontally adding” all tributary flows, distributary and
consumptive demands at the node. This net demand curve, (nb:S), is transferred to the
next node by first truncating using arc flow bounds; then “vertically adding” any nonconsumptive flow demand components to form @
*:? : 5A? . This defines the net demand
curve at the parent node, and the process is repeated until we reach the reservoir (node
0), through the tree.
Description of horizontal [+h] addition and vertical [+v] addition.
When the net demand functions are piecewise constant over a regular domain, we can
efficiently implement both horizontal and vertical addition. Vertical addition amounts to
adding corresponding function values, while horizontal addition amounts to sorting a
collection of bid sections.
Vertical addition is point-wise addition with respect to the horizontal axis over the
coincident domain. Formally:
ℎ: 6C, D7 = : 6 , :7+E F: 6 , 7 is defined by C = min , , D = max :, , and
+F
∈ 6 , :7 ∩ 6 , 7
∈ 6 , :7 ∖ 6 , 7
ℎ
=L
F
∈ 6 , 7 ∖ 6 , :7
Horizontal addition is point-wise addition with respect to the vertical axis over the
coincident range. It corresponds to adding the horizontal axis quantities for each fixed
value on the vertical axis. We define horizontal addition for decreasing functions only.
Formally:
ℎ: 6C, D7 = : 6 , :7+O F: 6 , 7 is defined by C = + , D = : + , and
−
− ≥F
F −
F − ≥
min{R|∃U ∈ 6 , :7, U ≥ R, F − U ≥ R}
otherwise
^
^ ^
(We can alternatively write h(x) as ℎ
=
+F
where this is well
defined.)
To incorporate non-consumptive use, the algorithm adds the non-consumptive
benefit (cost) to the incoming truncated nb(.) from the previous node. A nonconsumptive “user” does not actually use water. She transfers water from one node to
another, at some cost (e.g. for a pump) or to gain some benefit (e.g. for generation). The
trade-off between the upstream/downstream difference in marginal benefit, and the cost
or benefit of non-consumptive use, determines the net value from each flow. So we
account for non-consumptive use by adding demand curves vertically, thus affecting the
prices transferred to the parent node to each increment of flow between the two nodes.
It is straightforward to show that the following combined procedure constructs the
DCR corresponding to B(r) from the previous model. We omit the proof for brevity.
ℎ
=L
Procedure Demand Curve for release DCR for single tree reservoir network
*: : 5 is the nodal demand curve for flow , *: = 0, 5 = ∅, ∀% = 0, … , *
l % = * Dl 1 5D;m − 1 l
*: : 5 ← =*: : 5 +O : : 60, 7+O ; : 60, 7+O : 6− 1 , − 123 7 >
C;D o~ %, m % l o~ m % , % , whichever exists
pppp? : 5q? = D r* D; =*: : 5 , 6-< , . < 7> // Truncated to arc limits
*:
@? : 5A? = =*:
pppp : 5q? +E * : 6-< , . < 7>
*:
@?: 5A? > // m % is the parent to node %
*:u2v : 5u2v ← =*:u2v : 5u2v +O *:
; D % // Repeat process until reach node 0.
xrDmrD: y z ← *:+ : 5+
3
Illustration of multi-nodal CDDP algorithm
We next illustrate the CDDP algorithm to construct the DCR in a single catchment, as
shown in Figure 1. For simplicity, we assume that the catchment has no suppliers, but
only consumptive users submitting demand bids, and non-consumptive users submitting
bids for flow.
3.1
Constructing demand curves for the nodes above the reservoir
Consider a single node located upstream from the reservoir, as in Figure 2 (which shows
detail from Figure 1). As shown in Figure 3, we first stack consumptive demands in
descending price order, to form the consumptive demand curve for water, cb7(c). We
also form a notional bid stack representing a relatively high marginal value for
distributary flow demands to meet local environmental constraints. We represent
tributary flow ‘supplies’ as negative quantities in the “net demand curve”. The
algorithm then constructs the nodal demand curve for water nb(.) incrementally, by
horizontal addition: *:{ : 5{ ← 6 :{ : 60,47+O ;{ : 60,27+O { : 6−4,07 7. This is
equivalent to sorting all increments of consumptive, distributary and (net) tributary
demand by decreasing incremental value.
Figure 2: A node located above the reservoir
Figure 3: Horizontal addition (+h) of distributive, consumptive and tributary flows to
form nodal demand curve, nb(q)
Earlier, we defined flow away from the reservoir as positive, and flow towards reservoir
(or reverse flow) as negative. Therefore, when we work towards the reservoir from
upstream, the flow is negative. In line with the flow direction, we set the upper and
lower limits for flow as6−.{ , −-{ 7. The resulting net demand curve represents the
willingness of upstream participants to pay in order to limit flows to the next
downstream node. The arc bounds truncate this nodal demand curve, as shown in Figure
3, reflecting limits on the ability of the downstream node to take advantage of the
opportunity this represents. But here there is also a non-consumptive use to account for.
The benefit of non-consumptive flow is accounted for by the vertical addition
@
pppp{ : 6−3,07 +E * { : 6−3,07> as in Figure 4. Note that, since flow from
*:{ : 6−3,07 = =*:
node 7 to the reservoir gains additional non-consumptive benefit, the net benefit gained
by using water at node 7, rather than letting it flow through to the reservoir is reduced,
and the prices in the net demand curve passed through to the reservoir are also reduced.
This effect is achieved by the pre-processing, which will make ncf7 ≤ 0, implying
vertical ‘subtraction’.
pppp{
*:
@{
*:
Figure 4: Vertical addition with non-consumptive flow demands (ncf)
3.2
Constructing demand curves for node 4
The next nodes processed are nodes 6 and 5. Both might be considered “downstream”
from the reservoir. But the processing of nb6 and nb5, the net demand curves for these
nodes, follows the process for node 7, because the flow direction from both is “towards”
the reservoir. In this case, arcs (5,4) and (6,4) have no non-consumptive uses, so the net
demand curves constructed at nodes 6 and 5 can be transferred directly to node 4 after
@~ : 5A~ and
truncation for flow limits on the corresponding arcs. In this case, *:
@• : 5A• represent the willingness of participants at nodes 6 and 5, respectively, to pay
*:
to limit flows to node 4. These are treated as further consumptive net demand curves at
node 4, in addition to the local demands there, when determining nb4.
3.3
Truncating for siphon flow limits
@€ : 5A€ for input into the formation of nb3, follows an
Processing node 4 and forming *:
identical process. Figure 5 illustrates processing node 3 and, in particular, accounting
for arc (3,2). This arc represents a syphon which allows flow in either direction. To
account for the unknown flow direction, the processing truncates nb3 by using a domain
interval with a negative lower bound and a positive upper bound.
@• : 5A• represents the willingness of participants to provide flow
The resulting *:
from node 3 to node 2 for quantities in the negative part of the interval, and the desire of
participants for flow from node 2 to node 3 for quantities in the positive part of the
interval. To put this another way, if the price of water were low enough, then node 3
would like to ‘buy’ water from node 2 (at prices to the right of the vertical axis).
However, if the price were high enough, node 3 would be willing to ‘sell’ water to node
2 (at the prices to the left of the vertical axis).
@€
*:
*:•
Figure 5: Processing node 3 and truncating across arc (3,2)
3.4
Processing upstream
The flow direction on the syphon was indeterminate, while the other arcs processed so
far have had water flow ‘towards” the reservoir. But the water flow direction on arc
(1,2) is away from the reservoir. The flow limits are on such arcs will imply nonnegative upper/lower limits on the net demand curve passed back through the tree,
towards the reservoir. And non-consumptive uses on such arcs will add positive
increments to the prices in those demand curves, representing the additional nonconsumptive benefit from flow away from the reservoir, in this case. Figure 6 illustrates
@‚ : 60,47.
the formation of *:
Figure 6: Left: horizontal addition of DCF of previous nodes. Right: local demands at
node 1 and vertical addition of non-consumptive flows
Node 1 is then processed in a similar manner. Finally, we reach node 0, where we
obtain the DCR for the reservoir itself by horizontal addition of the net demand curves
@ and node 7 *:
@{ .
for node 1 *:
4
Using the multi-nodal DCR in a long term Stochastic CDDP model
The multi-nodal CDDP constructs a monotone decreasing DCR for each period. But
that only defines the optimal release, and intra-period market-clearing, as a function of
the reservoir’s marginal water value (MWV). We do not know what the release should
actually be, and have not “cleared the multi-period market”, until we know the reservoir
MWV. So the final step in the process must be to identify a particular solution (at least
for the first market period), starting from a particular storage level.
Before we do that, though, we must determine the optimal release policy, over time.
And we do that by applying the stochastic CDDP model of Starkey et al. (2012) to
determine a DCS, defining the MWV of stored water, as a function of storage level, in
each period. That algorithm assumes a DCS for the last period, and works backwards to
determine the DCS for the beginning of each period from the DCS at the end of that
period, and the intra-period DCR for that period, as determined by the algorithm above.
5
Conclusions and further research
In this paper, we illustrated a nodal catchment model that can be applied to optimise
usage over time, or to clear an inter-temporal market for any catchment with one
reservoir and a tree configuration. To solve the model, we proposed a simple and
efficient two-level application of CDDP. First, a multi-nodal deterministic CDDP,
presented here, constructs aggregate demand curves for release in each period. Then a
stochastic CDDP constructs aggregate demand curves for storage in the single reservoir
for each period. The complexity of the intra-period network can readily be increased by
adding upstream and downstream nodes, and physical links, while still maintaining
efficient computation.
Increasing the number of long term storage reservoirs will increase the complexity
of the algorithm, because the “curse of dimensionality” will eventually apply to any DPbased technique for multiple reservoirs. But Read and Hindsberger (2010) describe
several two reservoir implementations of stochastic CDDP, while Read, Dye and Read
(2012) describe development work on a multi-reservoir generalisation of the stochastic
inter-period algorithm.
6
References
Dye, S., Read, E. G., Read, R. A., & Starkey, S. R. (2012). Easy Implementations of
Generalised Stochastic CDDP Models for Market Simulation Studies Paper presented at
the 4th IEEE and Cigré International Workshop on Hydro Scheduling in Competitive
Markets, Bergen, Norway.
Read, E., & Hindsberger, M. (2010). Constructive dual DP for reservoir optimization.
Handbook of Power Systems I, 3-32.
Read, R., Dye, S., & Read, E. G. (2012). Generalized CDDP for Reservoir Management.
Working paper, . Department of Management, University of Canterbury.
Scott, T. J., & Read, E. G. (1996). Modelling hydro reservoir operation in a deregulated
electricity market. International Transactions in Operational Research, 3(3), 243-253.
Starkey, S. R., Dye, S., Read, E. G., & Read, R. A. (2012). Stochastic vs. Deterministic Water
Market Design: Some Experimental Results. Paper presented at the 4th IEEE and Cigré
International Workshop on Hydro Scheduling in Competitive Markets, Bergen,
Norway.