Zhiqiang Jiang, in his "Two Dimension Reduction Methods for Multi-Dimensional Dynamic Programming and Its Application in Cascade Reservoirs Operation Optimization" propose two optimization methods based on dynamic programming to solve in eficient manner the way to find the operation calendar of a cascade system reservoirs.
In this project I replicate Jiang methods and I make an implementation of them in MATLAB for IMTA.
Code is available here
The big challenge in this project was the inverse engineering developed in order to obtain similar results than those reported bu Jiang, since he only reports basic technical specifications of the reservoir systems leaving gaps not only on the available data to develop mass-energy balances to compute amounts of energy generated by the system, but also on details of application of methods for optimal computation of all amounts.
My strategy to achieve the mimetization of Jiang results was that used on the study of natural complex systems, sending signals to the system and see its answer, in order to deduce the rules that rules the system.
Figure 2 shows a cascade reservoir system, where the ouputs of the upstream reservoirs turns on the inputs of the next reservoir. The big challenge here is to find the combination of operation rules (decisions on the level of the water in each reservoir) that maximize the use of the water along the year, where there are lack or over inputs of water in the system.
Rougly speaking, this is a combinatory problem, where thousands (or more) combinations must be proved in order to find the one that maximize all sources: water and energy.
Jiang proposed two methods: one based on POA (Principle of Optimaly Algorithm), a principle invender in about 1975, and IMDP (Improved Multi-Dimensional Dynamic Programming).
Turgeon (1981) explains in detail POA, that roughly speaking, consist in a method that remains two points as fized whereas the middle one is variated along all possible options as is shown un the next image. In the left a2, and a4 are fixed, whereas a3 is variated to found b3, that is the option that maximize this combination. Next (right figure) one step is developed to improve next point in trajectory
IMDP according to Jiang, consist in a classic MDP improved by means a corridor of computation. This is, the search of combinations of options that maximize the problem is found around a limit of seraching. Jiang ilustrate this method as is shown in next figure, where dot line defines corridor of seraching, and where the initian trajectory (bold line) is variated in all possible options into the limits of the corridor
At the end we find that our implementation reach similar results that Jiang's. This is very easy to say, but it has to be taken in account that we did not have access to technical details of the reservoirs system, then I had to reconstruct theoretical models that represent how reservoirs behave.
Here are some results:
A and B are the Jiang's results, C and D are the mine in above image. Red lines represent the optimazed operation trajectory, this is, height of water in meters that reservoirs must mantain along the year (divided in 36 time periods). As is possible see, C and D are more or less (in shape) similar than original trajectories (A and B), be I was capable to found a little better results: 172 kWh instead 143 kWh of energy generated.
Note that these results must be interpretated carefully. It would fool to readers and push then to think that my implementation is totally superior, but it is not that true (at all, I think). Take in account that I was working with invented and modeled data, then, in principle, if you try my implementation with the same data used by Jiang, in theorym they have to results in very, very similar quantities.