Optimization
Summation Satisfaction Scaling - Numerical Stability Improvement
For Summation derived objectives, the internal scaling was improved for satisfaction variables, reward variables (if using a Reward Table), and objective function coefficients. This results in better freezing of constraints by reducing the number of constraints with dual prices close to the freezing tolerance and improves numeric stability. In some models, this corrects cases of infeasible solutions and reduces solution time. In some optimization models, this could contribute to different results due to a different set of constraints getting frozen.
Single Derived Objective per Goal
Previously, you were not prevented from including multiple derived objectives (Soft Constraint Sets) in a single goal; however, when this was the case, the resulting derived objectives could have unexpected behavior, and the solution could be incorrect. Now each priority is limited to solving only a single derived objective. If it tries to solve a second derived objective at the same priority, the run will abort with an error message. Any models that currently solve multiple derived objectives in the same goal should be revised so that each derived objective is in its own goal.
Incompatible Units in Constraints and Objectives
Previously, it was possible to write constraints or objectives with incompatible unit types, and they were not flagged as an error. For example, comparing units of Flow and Volume:
ADD CONSTRAINT Res.Outflow[t] <= 100 Acre-Feet
This has been corrected by adding a check when the constraint or objective is evaluated (fix to Issue #5906). Now when such cases are encountered, the run will abort with an appropriate error message about incompatible units. This will affect existing models if they currently include constraints or objectives with incompatible units. These constraints and objectives should be corrected to use the appropriate units.
New Message for Skipped Goals
In some cases a goal is effectively skipped (does not solve the optimization problem) because all constraints that would be added by the goal shrink to constraints that are already frozen. Now in these cases, a new green diagnostic message will be issued stating that this has occurred (fix to Issue #5196).
Simplified Objective for Seed-postponed Problem
When using a seed to skip the solution of initial goals, the first problem solved involves all of the constraints that were skipped and previously used an objective that was the weighted sum of all of the individual goal objectives. For reasons of numerical stability, the objective now uses equal weighting for all of the individual goal objectives (i.e. a weight of 1.0 for all goals). With this change, two Optimization parameters in the Seed Parameters category were removed because they are no longer used:
• POSTPONED PROBLEM OBJECTIVE METHOD
• SEED MAX OBJECTIVE WEIGHT
Existing models that contain a non-default value for one of these parameters will issue a warning message when they are loaded in 7.2. The parameters will be removed from the model once it is saved in 7.2.
POSAT Display Improved
In the Priority-oriented Optimization Solution Analysis Tool (POSAT), the three different categories of frozen constraints (New Constraints, Prior Constraints, Physical Constraints) are now displayed on separate tabs in order to make it easier to view lists of multiple frozen constraints. Previously they were three panels on the same tab. See
Priority-oriented Optimization Solution Analysis Tool in Optimization.
Save CPLEX Problems Selectively
Previously if you wanted to save the CPLEX problems or CPLEX minimax subproblems from an Optimization run, you had to select that option in Optimization Run Parameters before the start of the run, and the problems for all priorities were saved. This could slow down the run significantly. Now the Save CPLEX Problems parameters are available during the run (this fixes Issue #933), which makes it possible to selectively save CPLEX problems and thus reduce the time required. For example, to see the problems associated with only a single goal, you could start a run, pause before the goal of interest, check the box to Save CPLEX Problems, continue and execute the goal, then pause and uncheck the box and continue the run.