Professional Documents
Culture Documents
net/publication/319087828
CITATIONS READS
0 397
4 authors, including:
Mehdi Towhidi
4 PUBLICATIONS 14 CITATIONS
SEE PROFILE
Some of the authors of this publication are also working on these related projects:
All content following this page was uploaded by Dominique Orban on 12 August 2017.
Pascal Côté
Rio Tinto, Quebec Power Operation, Jonquière, QC, Canada,
Kenjy Demeester · Dominique Orban
GERAD and Department of Mathematics and Industrial Engineering, École Polytechnique,
Montréal, QC, Canada,
Mehdi Towhidi
Kronos Canadian Systems, Montréal, QC, Canada.
2 Côté, Demeester, Orban, Towhidi
1 1 Introduction
22 st+1 = st + qt C ut , (1)
23 where qt := (q1,t , q2,t , . . . , qn,t ) are the natural inflows to the reservoirs during the
24 period t and C is a connectivity matrix, i.e., whose elements are either ±1 or 0.
25 The objective function is the sum of a terminal time cost JT +1 (sT +1 ) with
26 stagewise benefit functions Gt (st , ut ). The latter are mainly defined by the way the
27 hydropower is used, including maximizing revenue from selling energy, minimizing
28 energy purchase for sustaining a load, and minimizing the risk of flooding.
We thus consider the reservoir management problem formulated as
T
X
minimize Gt (st , ut ) + JT +1 (sT +1 ) (2a)
ut
t=1
subject to st+1 = st + qt C ut , t = 1, . . . , T, (2b)
smin st smax , t = 1, . . . , T + 1, (2c)
0 ut umax , t = 1, . . . , T, (2d)
1 The notation in (3) means that Jt (st ) is the optimal value of the constrained
2 optimization problem. In stochastic dynamic programming, it is customary to call
3 policy the optimal control law corresponding to a given state at a given stage. More
4 precisely, a policy is a vector ⇧ := (⇡1 , . . . , ⇡T ) where each function ⇡t is defined
5 as
6 ⇡t (st ) 2 arg min (3).
ut
7 Note that each evaluation of Jt requires the solution of (3) at time steps
8 t, . . . , T . The SDP algorithm naturally proceeds backwards, first solving (3) at
9 time T , i.e., with objective function JT +1 (sT +1 ), and recursively until time t. In
10 many applications (Côté, Haguma, Leconte, and Krau, 2011; Turgeon, 2005; Zhao,
11 Zhao, and Yang, 2012), Jt is sampled on a grid ⌦ contained in the box [smin , smax ].
12 Interpolation techniques then allow us to approximate Jt outside of ⌦. Various
13 interpolation techniques could be used, e.g., cubic splines (Johnson, Stedinger,
14 Shoemaker, Li, and Tejada-Guibert, 1993), which also provide approximations of
15 first and second derivatives.
The natural inflows qt are random parameters that are often strongly correlated
over time and must be estimated using statistical models. The model of Tejada-
Guibert, Johnson, and Stedinger (1995) estimates qt as a linear function of qt 1 .
In such an approach, qt 1 temporarily becomes a state variable and its domain is
added to the grid ⌦. The counterpart of (3) can be written
n o
J˜t (st , qt 1 ) := minimize E Gt (st , ut ) + J˜t+1 (st+1 , qt ) (4a)
ut qt |qt 1
M ⇣
X ⌘
19 Gt (st , ut ) + J˜t+1 (st+1 , qjt ) P(qjt | qit 1 ), (5)
j=1
20 where P(qjt | qit 1 ) is the probability of observing qjt at time t given that qit 1
21 was observed at time t 1. A common approach to estimate these probabilities is
22 with a least-squares technique using historical data (Faber, 2001; Côté and Leconte,
23 2015).
Numerical methods for SDP 5
12 3.1 Context
13 Rio Tinto is a multinational metal and mining corporation that operates a hy-
14 droelectric system in the Saguenay-Lac-Saint-Jean region of Québec to power
15 aluminum smelters. The water resources management group at Rio Tinto recently
16 developed an SDP solver for the management of the SLSJ system. The system,
17 illustrated in Figure 1, is composed of five generating stations and three reservoirs,
18 for an installed capacity of 3100 MW.
19 Their implementation computes the current benefit function as the operating
20 cost of the system, i.e., the cost of purchasing energy to compensate for a deficit in
21 generation and the ability to sell excess energy depending on a certain demand
22 known in advance, dt . Therefore, information regarding hydropower production for
23 each powerhouse must be considered in the model.
6 Côté, Demeester, Orban, Towhidi
Lac Manouane
(Reservoir) LM
Passes-Dangereuse
(Reservoir)
PD
Chute-des-Passes
CP (Power house)
CD Chute-du-Diable
(Power house)
CS Chute-à-la-Savane
(Run-of-the-river power house)
Lac-St-Jean
(Reservoir)
LSJ
Isle-Maligne
IM
(Power house)
SH-CC Shipshaw
Chute-à-Caron
(Run-of-the-river power houses)
1 corresponds to a discharge of 135. The points “pt #1” and “pt #2” correspond to
2 the discharges that yield the highest efficiency for 3 and 4 turbines, i.e., about 115
3 and 155, respectively. The efficiency suggested by the envelope can be achieved
4 by operating 3 turbines at a discharge of 115 half of the time and 4 turbines at a
5 discharge 155 the other half of the time.
0.3
convex combination Efficiency curve
Envelope
0.29
pt #1
Efficiency
pt #2
0.28
0.27
3 turbines 4 turbines 5 turbines
0.26
85 95 105 115 125 135 145 155 165 175 185 195 205
Discharge (m3/s)
Fig. 2 Powerhouse efficiency curve for a specific net head.
6 We use two different approaches to interpolate the envelope. In the first, we use
7 cubic splines, which also supply approximations to the first derivatives. However,
8 in our experience, and as the results of §5.2 illustrate, they can make the SDP
9 process substantially more difficult to solve. The second interpolation technique
10 is a piecewise linear approximation that bounds the envelope of the hydropower
11 production function by the set of K hyperplanes
12 pi,t ↵i,k s̄i,t + i,k ui,t + i,k , i = 1, . . . , 5, k = 1, . . . , K. (7)
13 where ↵i,k , i,k , i,k 2 R are determined using a Gauss-Newton heuristic (Magnani
14 and Boyd, 2009). Compared to cubic splines, the second approach increases the
15 number of constraints significantly but it allows us to work with linear constraints.
16 Table 1 summarizes the problem dimensions in each formulation.
The SDP subproblem is defined as
n o
J˜t (st , qt 1 ) := minimize E Gt (st , ut ) + J˜t+1 (st+1 , qt ) , (8a)
ut qt |qt 1
1 In the next section, we describe the methodology behind the state of the art
2 implementation that we benchmark in §5 to compare both formulation.
4 4.1 Overview
5 The subproblems generated in the course of the SDP process can be expressed in
6 the general constrained form
7 minimize
n
f (x) subject to gl g(x) gu , h(x) = 0, l x u, (9)
x2R
15 The augmented Lagrangian method, also known as the method of multipliers, was
16 proposed by Powell (1969) and Hestenes (1969) as a penalty approach for problems
17 with equality constraints that, contrary to the quadratic penalty method, does not
18 require an unbounded penalty parameter. The MINOS (Murtagh and Saunders,
19 1978) and LANCELOT (Conn, Gould, and Toint, 1992) packages were the first
20 available implementations and they remain reference implementations.
21 For the simplicity of discussion, let us assume temporarily that (9) does not
22 contain general inequality constraints. The method is composed of outer and
23 inner iterations. The k-th outer iteration of LANCELOT consists in solving the
24 subproblem
25 minimize
n
f (x) + µT 1 2
k h(x) + 2 ⇢k kh(x)k2 subject to l x u, (10)
x2R
minimize
n
f (xk ) + rf (xk )T x (11a)
x2R
14 where rf is the gradient of f , rg and rh are the gradient matrices, i.e., the
15 transposed Jacobians, of g and h, respectively, and k > 0 is the trust-region
16 radius at iteration k. The advantage of SLP is that state-of-the-art linear opti-
17 mization software can be used to compute steps. Its main disadvantage is that the
18 curvature of strongly nonlinear problems is not captured adequately. Surprisingly
19 few implementations of SLP are available. The only one we are aware of is included
20 in the FICO Xpress Optimization suite1 . We describe our own in §4.2.
21 Wilson (1963) suggested Sequential Quadratic Programming (SQP) as an
22 improvement over SLP. SQP solves (9) by a sequence of quadratic programs (QP).
23 Each QP is similar to (11) except that (11a) is replaced with the second-order
24 expansion
25 f (xk ) + rf (xk )T x + 12 xT Bk x, (12)
19 In the last decades, interior-point methods proved to be some of the most powerful
20 numerical methods for large scale nonlinear optimization. Briefly, an interior-point
21 method solves (9) by a succession of subproblems using a logarithmic barrier to
22 prevent violation of the inequality constraints and bounds:
mI
X
minimize
n
f (x) ⇢k (log(gi (x) gli ) + log(gui gi (x)))
x2R
i=0
n
23 X (13)
⇢k (log(xi xli ) + log(xui xi ))
i=0
subject to h(x) = 0.
24 If the problem functions remain well defined at values of x that violate the inequality
25 constraints, it is typical to introduce slack variables to convert the latter to equality
26 constraints. In this case, only simple bounds appear in the barrier terms. As for
27 SQP, both trust-region and linesearch mechanisms can be used to promote global
28 convergence.
29 IPOPT (Wächter and Biegler, 2006) and KNITRO/DIRECT (Waltz, Morales,
30 Nocedal, and Orban, 2006) are prime examples of linesearch implementations. Byrd,
31 Hribar, and Nocedal (1999) propose a trust-region implementation in KNITRO/CG.
32 KNITRO implementation details are given by Byrd, Nocedal, and Waltz (2006).
mI
X mE
X
10 ✓(x) := (max{0, gi (x) gui } + max{0, gli gi (x)}) + |hi (x)|
i=1 i=1
is the `1 infeasibility measure for (9). Note that SLP ensures feasibility at each
iteration with respect to linear constraints that might be present in (9). For that
reason, the penalty function need only be applied to nonlinear constraints. We
introduce elastic variables p 2 RmI and q 2 RmE so as to obtain the equivalent
smooth reformulation of the penalty problem
mI
X mE
X
minimize f (x) + ⇢k p i + ⇢k qi
x,p,q
i=0 i=0
subject to gl p g(x) gu + p,
q h(x) q,
bl Ax bu , l x u,
mI
X mE
X
minimize rf (xk )T x + ⇢k p i + ⇢k qi
x,p,q
i=0 i=0
subject to gl p g(xk ) + rg(xk )(x xk ) gu + p,
13 (14)
q h(xk ) + rh(xk )(x xk ) q,
bl Ax bu , l x u,
kx xk k 1 k,
k := (xk ; ⇢k ) (xk + x; ⇢k ).
12 Côté, Demeester, Orban, Towhidi
The step x is deemed acceptable if sufficient progress towards feasibility has been
achieved, i.e.,
✓(x̂) ✏a ,
and
Rk := k/ `k > ⌘1 where 0 < ⌘1 < 1.
1 If ✓(x̂) ✏a and the more demanding condition Rk > ⌘2 is satisfied, where
2 ⌘1 < ⌘2 < 1, the trust-region radius is expanded by a factor 1 1. On the other
3 hand, if ✓(x̂) > ✏a or Rk ⌘1 , the step is rejected and the trust region is shrunk
4 by a factor 2 < 1.
5 Before solving the first subproblem (14), we check whether the linear constraints
6 of (9) are satisfied at the initial guess x0 . If they are not satisfied, we project x0
7 into the linear constraints by solving
8 minimize kx x0 k 1 subject to bl Ax bu , l x u.
x
We follow (Bazaraa et al, 2005, Theorem 10.3.1) and report x̂ as stationary for
(9) if
k xk1 ✏d and ✓(x̂) ✏p ,
9 where ✏d , ✏p > 0 are the dual and primal infeasibility tolerance, respectively.
10 As is typical with the `1 -penalty approach, Bazaraa et al (2005) indicate that
11 ⇢k must be at least as large as the `1 -norm of the optimal vector of Lagrange
12 multipliers associated with the nonlinear constraints of (9). Our update has the
13 form
14 ⇢k+1 = min{ k k k1 , ⇢max } (15)
15 where ⇢max := 103 is the maximal value of the penalty parameter and k is the
16 vector of multipliers associated to the linearized constraints of (14) by the LP
17 solver. In addition, we also follow (Nocedal and Wright, 2006, Algorithm 18.5) and
18 only update ⇢k when p > 0 or q > 0 in (14), i.e., the linearized constraints of (9)
19 are violated.
20 Algorithm 4.1 summarizes the sequential linear programming approach.
Numerical methods for SDP 13
2 5.1 Implementation
10 5.2 Benchmarks
11 We use a set of 3, 750 subproblems from SDP with the formulation (8). I order to
12 limit the computational effort, we impose a maximum of 700 objective function
13 evaluations.
We report our numerical results using the performance and data profiles of
Moré and Wild (2009) with the convergence test
1.0 1.0
0.8 0.8
IPOPT
0.6 KNITRO/DIRECT 0.6
KNITRO/CG
KNITRO/ACTIVE
0.4 KNITRO/SQP 0.4
LANCELOT SIMPLE
MINOS
0.2 SLP/CLP 0.2
SLP/Xpress
SNOPT
0.0 0 0.0 0
2 21 22 23 24 25 26 27 28 2 21 22 23 24 25 26 27 28
Within this factor of the best Within this factor of the best
Fig. 3 Performance profiles (logarithmic scale) of the number of objective function evaluations
required to satisfy (16) with ⌧ = 10 3 for 3, 750 subproblems from SDP. The left plot shows
results for the formulation with linear constraints (hyperplanes) and the right plot those for
the formulation with nonlinear constraints using cubic splines.
9
10 The two profiles tell different stories. In the formulation with the linear con-
11 straints, almost all algorithms are able to satisfy the convergence test for all
12 subproblems. Sequential linear and quadratic optimization methods are the most
13 efficient when constraints are linear. In particular, SLP dominates all other solvers
14 followed by SNOPT. They both dominate all other solvers. KNITRO/SQP initially
15 exhibits the same behavior but is soon dominated by the interior-point solvers
16 IPOPT and KNITRO/DIRECT. KNITRO/ACTIVE shows a performance on par
17 with the interior-point methods.
18 Using nonlinear hydropower constraints appears to increase the level of difficulty
19 because some solvers are no longer able to satisfy the stopping criteria for all
20 problems. This time, the interior-point methods dominate all other solvers. Although
21 SNOPT does not lag far behind in terms of efficiency, its robustness is substantially
22 lower at about 80%. SLP on the other hand may not be as efficient but shows
23 levels of robustness comparable to the interior-point solvers. Note that in both
24 profiles, the curves SLP/CLP and SLP/Xpress are superposed.
25 As a complement to performance profiles, data profiles (Moré and Wild, 2009)
26 illustrate the proportion of problems satisfying (16) within a given budget of
27 objective evaluations. Figure 4 shows the data profiles for ⌧ = 10 3 with both
28 problem formulations.
29 The data profiles show that SLP and SNOPT attain (16) with few objective
30 evaluations when all constraints are linear, followed closely by the interior-point
16 Côté, Demeester, Orban, Towhidi
1.0 1.0
0.8 0.8
IPOPT
0.6 KNITRO/DIRECT
0.6
KNITRO/CG
KNITRO/ACTIVE
0.4 KNITRO/SQP 0.4
LANCELOT SIMPLE
MINOS
0.2 SLP/CLP 0.2
SLP/Xpress
SNOPT
0.0 0.0
0 50 100 150 200 0 100 200 300 400 500 600 700
Number of objective evaluations Number of objective evaluations
Fig. 4 Data profiles with ⌧ = 10 3 for 3, 750 subproblems from SDP. The left plot shows
results for the formulation with linear constraints (hyperplanes) and the right plot those for
the formulation with nonlinear constraints using cubic splines.
1 methods. Again, SLP dominates all other solvers, and almost all solvers attain
2 (16) within 200 objective evaluations. A larger budget of objective evaluations is
3 necessary when using nonlinear constraints, but there again, the interior-point
4 solvers dominate. Multiple solvers fail to attain (16) within 700 objective evaluations.
5 SNOPT is one of them, while SLP is not, though it requires over 500 evaluations.
7 We now compare several solvers during the simulation phase, i.e., Step 11 of
8 Algorithm 2.1. The simulation evaluates the operating policy identified by SDP
9 in Step 3 of Algorithm 2.1. Throughout this section, we use a set Q composed of
10 25 annual inflow scenario from historical data. We assess the performance of the
11 solvers by measuring the quality of the operating policy in simulation and the time
12 to solve all subproblems. Our own external optimality test described in §5.2 is
13 deactivated. We set the stopping tolerance of each solver to 10 5 and set a budget
14 of 700 objective evaluations. Note that times should be taken as indicative because
15 IPOPT, MINOS and SNOPT are all implemented in low-level languages while SLP
16 is implemented in Python, and each solver implements slightly different stopping
17 criteria, possibly involving different scalings. We believe the times reported remain
18 meaningful nonetheless because all computationally expensive tasks taking place
19 in SLP occur either in the Cython communication layer or in CLP, which is itself
20 implemented in a low-level language. Because we minimize the operational cost at
21 each period, the quality of the policies is given by the annual cumulative cost.
22 The state space of reservoir levels is discretized into a grid ⌦ of 7 values for
23 each of the three reservoirs. The random natural inflows are discretized separately
24 into 5 values. We use T = 122 time steps and apply the repeat loop at Step 4 of
25 Algorithm 2.1 three times. Thus, SDP solves a total of 73 · 5 · 122 · 3 = 627, 690
26 subproblems to compute a policy approximation. Because of the high number
27 of subproblems, parallelism is essential. Exploiting parallelism during policy ap-
28 proximation is simple because of the grid ⌦. However, there is no possibility to
29 parallelize the model in simulation because of the recursion. In our results, the
30 approximation is parallelized over 20 cores.
Numerical methods for SDP 17
Table 2 Summary of the average annual cumulative cost (AACC) using IPOPT, MINOS, SLP
and SNOPT on the formulation with linear (left) and nonlinear constraints (right) during the
approximation process. The simulation process always uses nonlinear constraints. The columns
“Simul” and “Approx” refer to the simulation and approximation steps of Algorithm 2.1.
Solver AACC Time (min) AACC Time (min)
Simul Approx Simul Total Simul Approx Simul Total
IPOPT 140.3 157.9 3.6 161.5 134.0 94.9 3.4 98.3
MINOS 154.3 12.4 55.7 68.1 9,584.9 2,502.8 105.2 2,608.0
SLP 222.2 26.0 23.3 49.3 5,298.3 285.8 16.8 302.6
SNOPT 127.9 28.9 26.7 55.6 146.9 2,033.3 28.1 2,061.4
7 The results of Table 2 show that despite parallelism, the computational time
8 using nonlinear constraints is excessive for all solvers except IPOPT. MINOS is
9 the fastest solver to approximate the policy when constraints are linear, possibly
10 because it is able to exploit those linear constraints. Surprisingly, IPOPT is the
11 only method that is slower using linear constraints. However, IPOPT outperforms
12 all solvers during the simulation, where the hydropower constraints are nonlinear.
13 SLP and MINOS produce larger values of the annual cumulative cost during the
14 simulation than the other solvers. In order to understand why, we compute the
15 evolution of the average cost over all scenarii in Q for each of the four solvers and
16 plot the results in Figure 5.
17 The top row of Figure 5 reveals that using linear constraints during the approx-
18 imation step (Step 3) of Algorithm 2.1 mostly keeps costs down over all 25 inflows
19 scenarii. However, MINOS and SLP induce unnecessarily high costs between July
20 and September. The same solvers induce high costs through most of the year when
21 using nonlinear hydropower constraints. The origin of those costs is as follows. If
22 the system is not able to provide sufficient energy at a certain period, extra energy
23 is purchased to compensate the deficit. Because the amount of energy available to
24 purchase is limited, the system can be forced to shut down if the deficit persists,
25 and such a system failure is severely penalized.
26 The bottom row of Figure 5 illustrates the evolution of the average cost caused
27 by system failures over all scenarii in Q for each of the four solvers and confirms
28 that failures occur and are related to MINOS and SLP. A detailed look at the
29 behavior of MINOS and SLP during the SDP process reveals that they both
30 perform well during the approximation but often attain the maximum number of
31 objective evaluations during the simulation step. Therefore, the decisions returned
32 are likely suboptimal, which leads to the system failures.
33 A promising implementation results from combining the efficiency of SLP during
34 the approximation step (Step 3) of Algorithm 2.1 with that of IPOPT during the
35 simulation step (Step 11). For purposes of comparison, we combine each of SLP,
36 MINOS and SNOPT used for the policy approximation during Step 3 with IPOPT
37 for the simulation in Step 11. Policy approximation uses linearly-constrained
18 Côté, Demeester, Orban, Towhidi
Fig. 5 Top: Evolution of the average cost over 25 inflow scenarii. Bottom: Evolution of the
average cost over the same 25 inflow scenarii related to system failures. The left plots correspond
to linear constraints during the approximation step and the right plots to nonlinear constraints.
Table 3 Summary of the average annual cumulative cost (AACC) by combining MINOS, SLP,
SNOPT with IPOPT using linear and nonlinear hydropower constraints in Step 3 (“Approx”)
and Step 11 (“Simul”), respectively.
Solver AACC Time (min)
Simul Approx Simul Total
MINOS/IPOPT 133.0 12.4 3.7 16.1
SLP/IPOPT 131.7 26.0 3.6 29.6
SNOPT/IPOPT 134.1 29.1 3.7 32.8
Numerical methods for SDP 19
Fig. 6 Probability density functions of the difference between the annual cost generated by
IPOPT-N/IPOPT and the solver combinations of Table 3.
1 For each of the four combinations, we compute the annual cost difference ei
2 with IPOPT-N/IPOPT for all 25 scenarii in Q. Those differences can be visualized
3 as the probability density functions in Figure 6, obtained by sorting the cost
4 differences e1 , . . . , e25 and plotting the function ↵ 2 R 7! # {i | ei ↵} /25, where
5 # indicates cardinality.
6 Figure 6 suggests that the distributions are approximately normal with zero
7 mean, and nearly coincide. To confirm those conclusions, we use the two-sample
8 t-test, a statistical test to determine whether two population means are statistically
9 equivalent. The first population comprises the 25 annual costs obtained by IPOPT-
10 N/IPOPT and the second the 25 annual costs found by each solver combination of
11 Table 3 in turn. Let µ1 and µ2 denote the mean of each population, and s1 and s2
12 their standard deviation. The test statistic T is defined by
µ1 µ 2
13 T = p 2 .
s1 /N + s22 /N
14 The hypothesis µ1 ⇡ µ2 is rejected based on a 95% confidence interval if
15 |T | t1 ↵/2, v ,
16 where t1 ↵/2, v is the critical value of the distribution associated with a significance
17 level ↵ = 0.05 and a degree of freedom v = N 1 = 24. Table 4 gives the result of
18 the statistical test.
19 Table 4 indicates that the lower and upper tails are different, which suggests
20 that our normality assumption is not quite satisfied. The differences, however,
21 are not substantial, except in the case of IPOPT-L/IPOPT. In each case, the
22 hypothesis that µ1 ⇡ µ2 is accepted.
1 6 Conclusions
20 References
1 Byrd RH, Gould NI, Nocedal J, Waltz RA (2003) An algorithm for nonlinear
2 optimization using linear programming and equality constrained subproblems.
3 Mathematical Programming 100(1):27–48, DOI:10.1007/s10107-003-0485-4
4 Byrd RH, Nocedal J, Waltz RA (2006) KNITRO: An integrated package for nonlin-
5 ear optimization. Large-Scale Nonlinear Optimization 83:35–59, DOI:10.1007/0-
6 387-30065-1_4
7 Conn AR, Gould NIM, Toint PhL (1992) Lancelot: A FORTRAN package for
8 large-scale nonlinear optimization (release A). Springer-Verlag New York, Inc
9 Côté P, Leconte R (2015) Comparison of stochastic optimization algorithms
10 for hydropower reservoir operation with ensemble streamflow prediction.
11 Journal of Water Resources Planning and Management 142(2):04015,046,
12 DOI:10.1061/(ASCE)WR.1943-5452.0000575
13 Côté P, Haguma D, Leconte R, Krau S (2011) Stochastic optimisation of hydro-
14 quebec hydropower installations: a statistical comparison between SDP and
15 SSDP methods. Canadian Journal of Civil Engineering 38(12):1427–1434,
16 DOI:10.1139/l11-101
17 Davidsen C, Pereira-Cardenal SJ, Liu S, Mo X, Rosbjerg D, Bauer-Gottwein
18 P (2014) Using stochastic dynamic programming to support water resources
19 management in the Ziya river basin, China. Journal of Water Resources Planning
20 and Management 141(7):04014,086, DOI:10.1061/(ASCE)WR.1943-5452.0000482
21 Desreumaux Q, Côté P, Leconte R (2014) Role of hydrologic information in
22 stochastic dynamic programming: a case study of the Kemano hydropower
23 system in British Columbia. Canadian Journal of Civil Engineering 41(9):839–
24 844, DOI:10.1139/cjce-2013-0370
25 Faber BA (2001) Real-time reservoir optimization using ensemble streamflow
26 forecasts. PhD thesis, Cornell University
27 Fletcher R, Leyffer S (2002) Nonlinear programming without a penalty function.
28 Mathematical programming 91(2):239–269, DOI:10.1007/s101070100244
29 Gill PE, Murray W, Saunders MA (2005) SNOPT: An SQP algo-
30 rithm for large-scale constrained optimization. SIAM review 47(1):99–131,
31 DOI:10.1137/S0036144504446096
32 Gould NIM, Orban D, Toint PhL (2003) GALAHAD, a library of thread-safe
33 FORTRAN 90 packages for large-scale nonlinear optimization. ACM Transactions
34 on Mathematical Software (TOMS) 29(4):353–372
35 Gould NIM, Orban D, Toint PhL (2008) LANCELOT_simple: A simple interface
36 for LANCELOT B. Cahier du GERAD, G-2008-11, GERAD, Montréal, QC,
37 Canada
38 Griffith RE, Stewart R (1961) A nonlinear programming technique for the opti-
39 mization of continuous processing systems. Management science 7(4):379–392,
40 DOI:10.1287/mnsc.7.4.379
41 Hestenes MR (1969) Multiplier and gradient methods. Journal of optimization
42 theory and applications 4(5):303–320, DOI:10.1007/BF00927673
43 Johnson S, Stedinger JR, Shoemaker C, Li Y, Tejada-Guibert J (1993) Numeri-
44 cal solution of continuous-state dynamic programming using linear and spline
45 interpolation. Operations research 41(3), DOI:10.1287/opre.41.3.484
46 Labadie JW (2004) Optimal operation of multireservoir systems: State-of-the-art
47 review. Journal of water resources planning and management 130(2):93–111,
48 DOI:10.1061/(ASCE)0733-9496(2004)130:2(93)
22 Côté, Demeester, Orban, Towhidi