Optimization

Improved Data Checking

Quality checks were added to piecewise approximations to be similar to the quality checks that exist for tangent and secant approximations. Examples of curvature checking include checks that the pieces have expected relative slopes and checks that the data before and after the pieces lie above/below the lines extrapolated from the end pieces as expected.

For approximation data tables which are expected to be a monotonically increasing function, this assumption is now checked and a warning is issued for each table where it does not hold. Note that 3-dimensional tables describe a family of curves and each of them is checked.

Infeasible Problem Handling

When the optimization controller encounters an infeasible problem, it now discards the basis and makes another attempt to solve the problem. If the problem is still found to be infeasible, the run is aborted as before.

Unregulated Spill in Optimization

Although unregulated spill failure is implemented as described Unregulated Spill Nomenclature, optimization now uses the appropriate unregulated spill table given method selection and failure conditions at the beginning of run. Failure during the run isn't modeled in optimization.

User Defined Optimization Variables

You can now write optimization policies which refer to user defined variables. Each user defined optimization variable must be a series slot or a column on a agg series slot on a data object.

To configure that a series slot on a data object is a user defined optimization variable, on the series slot configuration dialog, check the Is User Defined Variable check box. Then, this slot can participate in the optimization problem. You must still add policy that defines the equation for this variable to pull it into the problem.

Also, the automatically generated post-opt RBS ruleset now includes rules to set the user defined variable slots to their optimal values.

Revised: 08/02/2021