Note: This is documentation for version 5.0 of Source. For a different version of Source, select the relevant space by using the Spaces menu in the toolbar above
Insight: Multi-objective optimisation
Decision variables
The goal of optimsation is to acheive a set of defined objectives based on decision variables that act as management levers. For example, the amount of water to release for environmental flows, the level of demand, or the amount of water to order from alternative supplies.
When deciding on decision variables, it is important to consider:
- What the key drivers are likely to be (relevance);
- Which parameter in the model represents the decision variable;
- The number of decision variables, and the consequence of multiple decision variables;
- Real decisions and discrete decisions refer to real and discrete decision variables. Real decisions variables can be any real number between an upper and lower bound; discrete decision variables can only be specific. Both variables must be defined in the Source project, and their possible value specified in Insight.
- What are realistic ranges? Are there any constraints on the likely acceptable range for the decision variables?
Constraints
These define the limits of an acceptable optimisation result. They allow you to specify a function such that Insight rejects the solution if the value is < 0.
For example, you can create a function to specify that the environmental impact of a system does not exceed a certain value, or that the power output does not drop below a specified number. If maximum daily generation must exceed 100MWh, first create a new function $Constraint_min_power = $min_power - 100. If $Constraint_min_power is then declared as a constraint, any solutions resulting in a daily generation of <100MWh would be rejected.
Objectives
Mathematically known as objective functions, these can contain multiple parts, such as measure of cost, a measure of environmental impact and a measure of social costs. Examples of objective functions might include: minimising the operating cost of the system, minimising environmental impacts, or minimising time spent in water restrictions. In Insight, objective funcitons must be expressed as minimisation problems. Maximisation problems can be optimised by expressing the objective function as a negative.
When choosing objectives, it is important to consider:
- The number of objectives;
- The independence of the objectives;
- Sensitivity of those objective functions to decision variables;
- The value of the objectives to stakeholders; and
- The ability to use outputs from the model to calculate the required objective.
Working with Insight
Ensure that the following pre-requisites are met prior to installing Insight:
- eWater Source must be installed prior to running Insight;
- Microsoft .NET framework v4 (or higher); and
- Microsoft C++ 2010 x86 redistributable package.
Additionally, at a minimum, Insight requires the following to run an optimisation:
- A Source project file containing a single scenario with decision variables and objectives expressed as Source functions (see Note);
- Access to the Source command line tool;
- An Insight settings file (containing the Source project location, objectives and decision variables);
- The number of generations; and
- The population size of each generation.
Working with Insight is a three-step process:
- Configuring an Insight Optimisation Run - Load a project and/or configuration and configure optimisation settings. This can be done using either the user interface or the command line;
- Run the optimisation; and
- View and analyse the optimisation results - Results of on optimisation run can only be viewed using the Insight interface (due to the two and three-dimensional nature of results).
Note
Insight should usually be run using a Source project file containing a single scenario. It is possible to run Insight using a project file containing multiple scenarios. However, Insight will run just one scenario in the project file, the first scenario created by the user.
Launching Insight
Figure 1 shows how to launch Insight once Source has been installed:
- Click on the Windows Start menu;
- Choose All Programs;
- Scroll down and click on the folder indicating the version of Source you have installed (In Figure 1, this is eWater Source 3.3.0.234); and
- Choose Insight from the list of programs listed.
Figure 1. Launching Insight
The Insight user interface
Figure 2. Insight user interface
The Insight user interface (Figure 2) comprises of:
- A top-level menu where you can perform high-level functions such as load configuration settings or open a set of results;
- A toolbar, where you can add/remove components of the optimisation run or perform a run;
- A tree menu structure on the left that lists the components required to complete an optimisation run - objectives etc; and
- A panel on the right that provides details of the selected tree menu item.
Insight menus
The File menu items allow you to work with settings configuration and results as follows:
- File » Load RiverSystem project directory - This is synonymous to clicking Browse. It loads the directory containing the Source project(s). In Source (public version), you can only load a single project at a time;
- File » Load Configuration - Loads the settings file of a previously saved configuration;
- File » Load Configuration and project - Allows you to add additional configuration parameters to a loaded settings file;
- File » Save Configuration - Saves the current configuration settings;
- File » Import results and File » Export results - allows you to import and export results of an optimisation run respectively; and
- File » Exit - Quits Insight.
The Help menu contains a link to this documentation page.
Insight toolbar
Figure 3. Insight toolbar
Creates a new component of type as selected:
- Objective;
- Constraint;
- Real decision;
- Discrete decision; or
- Tracked variable
Removes the selected item from the tree menu.
Expands all folders in the tree.
Collapses all folders in the tree
Performs an optimisation run for the loaded project. Synonymous to clicking Run in the main interface.