-
Notifications
You must be signed in to change notification settings - Fork 7
Description
We want to allocate equal ratios of demands in times of scarcity, but it turns out this is quite hard to formulate as a linear objective. We found that:
- When maximizing the minimal allocated fraction, the optimizer doesn't care that there might be water left to allocate so that some nodes get a larger fraction.;
- When maximizing the sum of the absolute errors, the optimizer doesn't care how the available water is distributed over the demands
- When maximizing the sum of the relative errors, the optimizer is incentivized to allocate to smaller demands
None of these has the desired equal fraction effect. We did come up with the 'target fraction' concept (see also #2399), but that is a coarse method which doesn't take into account the topology and constraining nodes in the model, and also some simplifications have to be made to define the source capacity of level boundaries.
Therefore I came up with a 2 goal approach per demand priority:
- The first goal is just to minimize the absolute error
- The second goal is to minimize the difference between the allocated fractions
This second goal still doesn't work in the case where a Basin level leaves the target window over the allocation timestep. A way to get around this is to base the storage demand of Basins with a LevelDemand not on its level at the start of the allocation time step but at the end of the timestep when 'no action is taken'. I however wonder whether 'taking no action' is well defined given e.g. allocation controlled nodes.
This does increase the number of goals, which has a performance impacts. We will have to see how the allocation algorithm runtime scales with the number of goals, especially after #2233.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status