skip to main content
Optimization Overview
Optimization Overview
This document describes RiverWare’s Optimization solver. First it provides an overview of Optimization and how it works in RiverWare. Then it gives describes details about the preemptive linear goal programming approach used by RiverWare, how Optimization interacts with Simulation and Rulebased Simulation, and how variables and constraints (policy) are formulated for RiverWare Optimization.This is followed by a section describing the methods and slots on each object that apply for Optimization. Finally, there are sections on creating, analyzing and debugging a RiverWare Optimization model.
About Optimization
RiverWare’s Optimization solver provides a different solution approach. Instead of solving a model on a timestep-by-timestep basis, Optimization provides a single global solution over all objects and all timesteps. Typically Optimization is used to determine the “best” solution in terms of a stated objective, such as maximizing the value of hydropower over the run period, while satisfying higher-priority policy constraints.
System-wide Approach
Simulation and Rulebased Simulation solve each object individually, one timestep at a time. Optimization, on the other hand, provides a global solution across all objects and across all timesteps. This allows the solution to trade off objectives both spatially and over time. For example, the model can “look ahead” to a peak price period and send water from upstream reservoirs to a downstream reservoir with high generating capacity early in the run so that it can generate at maximum capacity during peak prices. At the same time, it will assure that the upstream reservoirs do not release so much water that they will violate their elevation targets by the end of the run based on inflow forecasts.
Hydropower objectives are a common focus of Optimization models. RiverWare contains some built-in functionality that assists in formulating common hydropower objectives; however there is nothing that limits RiverWare Optimization objectives to be related to hydropower, nor is hydropower required to be included in an Optimization model. Optimization models could just as easily optimize a water management objective unrelated to hydropower.
Preemptive Linear Goal Programming
The Optimization solution in RiverWare is a preemptive linear goal program. The user expresses the policy of the system in a set of prioritized goals. These goals contain either constraints or objectives. A linear program (LP) is solved at each priority level, beginning at the highest priority. If the goal contains a set of soft constraints, the objective function for the LP is to maximize the satisfaction of the constraints. The objective value (level of satisfaction) will not be reduced when the LPs are solved for lower priority goals. In other words, once a constraint has been satisfied at a high priority, it will not be violated to meet a lower priority constraint or objective. In this way, as the solution progresses through the priorities, it shrinks the solution space or removes degrees of freedom from the solution. Typically the final priority is a maximize or minimize objective, such as maximizing the total value of hydropower over the run period. The objective will be maximized/minimized within the reduced solution space after maximizing the satisfaction of all higher priority constraints.
Figure 1.1   
RiverWare provides three solution approaches in the case that not all soft constraints within a goal cannot be satisfied due to hydrologic conditions and/or higher priority constraints. The first approach, Summation, minimizes the total deviation from the constraint values. The second approach, Maximin, minimizes the single largest deviation (technically it maximizes the lowest satisfaction). The third approach, Repeated Maximin, minimizes the single largest deviation. Then it freezes that value and minimizes the next largest deviation, and so on until it has either minimized all deviations or satisfied all remaining constraints. In practice, the Repeated Minimax approach is most-often used.
Optimization Variables
An optimization problem consists of a set of equations that include linear combinations of optimization variables. In RiverWare, some Optimization variables are directly related to slots. For example, Outflow and Storage on a reservoir object are common variables. Each of these slots at each timestep corresponds directly to an individual variable in the Optimization problem. In some cases slots correspond to a linear combination of variables. For example, Power is typically defined by a piecewise linear function of Turbine Release. Each individual variable, or “piece,” is multiplied by the slope of that segment of the power curve. The sum of the pieces is equal to the total Turbine Release. Some variables have no relation to a slot in RiverWare. For example, the satisfaction level of each Repeated Maximin iteration is added to the Optimization problem as a variable. RiverWare decides automatically which variables to add to the Optimization problem based on what is referenced in the Optimization Goal Set.
Physical Constraints
RiverWare automatically adds all relevant physical constraints to the Optimization problem. For example, the mass balance constraint for a reservoir is
This is the defining constraint for the Storage, Inflow and Outflow variables at time t. RiverWare determines which individual variables to include in Gains and Losses depending on the method selection on the reservoir. For example, Evaporation could be an additional loss variable in the mass balance constraint. For a reach, the defining physical constraints are determined by the selected routing method.
RiverWare only adds physical constraints as necessary based on the policy in the Optimization Goal Set. In this way it minimizes the size of the Optimization problem in order to achieve maximum computational efficiency. Physical constraints are always treated as hard constraints.
Prioritized Policy
The policy of a river basin is expressed by the user in an Optimization Goal Set. Like rulesets in Rulebased Simulation, the Goal Set is formulated in RiverWare Policy Language (RPL). Also similarly to a ruleset, the goals in a Goal Set are expressed in priority order. For example, license minimum and maximum pool elevation constraints for reservoirs might be the highest priority goal. These are goals that would essentially never be violated. Lower priority goals might include target operating elevation range constraints. These would represent elevations that should be maintained under normal operating conditions but might be exceeded in extreme scenarios such as flood control operations. Goals with a Minimize or Maximize objective tend to be at the lowest priority, after all policy constraints have been satisfied to the greatest extent possible.
A user has the flexibility to formulate any type of constraint or objective they desire as long as the expressions are linear combinations of variables. Constraints can include average values over multiple timesteps or summations over multiple slots on multiple objects. Similar constraints for multiple objects can be grouped into a single constraint statement. For example, a single maximum elevation constraint can be added for all reservoirs in a model by creating a loop over a list of reservoirs and referencing the maximum elevations from a data object slot corresponding to each reservoir.
Figure 1.2   
Conditional statements can be added for the inclusion of constraints in the form of If-Then statements. For example, seasonal constraints might apply only if the run period is within specified dates, or Special Operations constraints might only apply if data are present in a certain slot.
Objectives allow for a trade-off between present value and future value. An objective might include the combined value of the hydropower generated during the run and the value of energy in storage (future potential value) at the end of the run.
Figure 1.3   
Advantages of Optimization
Optimization is valuable when trying to determine a “best” solution as opposed to just evaluating a solution. Also, because the Optimization solution is global in space and time, it is useful for planning current operations in manner that leaves the system in a good position to meet upcoming conditions. Complex systems can require a great deal of trial and error to approach a “best” solution, and it might not be obvious how changes to one part of the system will affect other parts of the system or operations in the future. Optimization provides an efficient means to find the best operations for near term objectives without jeopardizing the ability to meet constraints in the future.
Optimization License
To use RiverWare's optimization solution, you must have the RiverWare With Optimizer version of the RiverWare license. (See for licensing information.) The license allows to you access RiverWare's optimization module, which embeds the third-party solver IBM ILOG CPLEX. Additional information about CPLEX can be found in the About RiverWare dialog (select About RiverWare... from the Help menu in the main RiverWare workspace).
Revised: 06/03/2019