Optimization analysis
- Last UpdatedAug 14, 2026
- 6 minute read
You can export detailed information about your case optimization to a JSON file, for further analysis and processing. This feature is available in the following components:
-
The Plan environment.
-
The Network environment.
-
The Case Stack environment.
To enable the feature, select the Enable Optimization Analysis check box in the Optimization Analysis page of the Run Settings dialog.

Once optimization analysis is enabled, you can choose which data to export by selecting the relevant check boxes: Static Model Data, Static MIP Data and so on.
In a case stack, you can enable or disable optimization analysis for each case by selecting it from the Case list in the Run Settings dialog.
To export optimization data, follow these steps:
-
In the Infeasibility Breaker Settings page of the Run Settings window, make sure that Activity is not set to Only When Infeasible. The Optimization Analyser is not compatible with this setting.
-
Optimize the case(s).
-
In the Optimization Analysis ribbon tab, click Extract. The Browse For Folder dialog box opens.
-
Choose the folder where you want to save the JSON file. The folder you choose is automatically selected the next time you open this dialog box.
-
Click OK. The JSON file is saved to the selected folder. The name of the file is the same as the name of the optimized case. For analytics and case stacks, multiple files are created, one for each case.
The Optimization Analyser overwrites existing files without prompting. Make sure you move or rename any files you want to keep.
Exporting optimization analysis data fails if the case name contains characters not allowed in Windows file names. These characters are: < > : " / \ | ? *. Rename the case before exporting again.
File structure
This is a high-level description of the contents of the file generated by the optimization analysis feature. One or more sections may be missing from your output depending on the configuration you chose in the Run Settings dialog.
-
Best-Run Index: the index, identifying each element in the Multistart Results array, corresponding to the best multi-start run.
-
Best-Run Seed: the number of the multi-start run which is returned to the user interface and used for reporting purposes. It corresponds to the highlighted row in the Multi-Start Metrics table. If multi-start is disabled, it is always equal to one.
-
Cluster Analysis: included if you have selected the Enable Cluster Analysis check box.
-
Model Statistics: information on the size of the optimization problem, such as the number of variables and equations. Includes information found in the Solution Metrics table.
-
Multistart Results: contains an array with information on each multi-start run. If multi-start is disabled, the array contains a single element. Each array element includes the following:
-
The Index uniquely identifies each array element.
-
The Iteration Summary array lists detailed statistics on each optimization iteration.
-
Several sections follow with lists of the largest quantities in the optimization problem, such as Largest Equation Marginals and Largest Flow Variables.
-
The Metrics section contains run metrics for the multi-start run.
-
Seed and Seed Start Time show the number of the multi-start run and the start date and time.
-
MIP variables contains information on the MIP variables in the case, their type, bounds, and solution value
If a run ends as integer infeasible, use the end-of-run MIP variable values in the Optimization Analysis Report to identify variables that are not at an expected integer value (for example, values that are not whole numbers for integer variables). These variables are good starting points for investigation because they can indicate which MIP constraints are most likely contributing to the infeasibility. Focus your review on the constraints tied to those variables and, where appropriate, consider relaxing or adjusting them to help the model converge.
-
-
Run Information: basic data about the optimization run, such as model and case name, software version and start date and time.
Cluster Analysis
Cluster analysis is available as an optional addition to optimization analysis. This feature lets you identify and analyze plateaus for multi-start optimizations.
To enable cluster analysis, select the Enable Cluster Analysis check box in the Optimization Analysis page of the Run Settings dialog.
You can then choose the algorithm used to detect plateaus:
-
The Default algorithm uses absolute tolerance at the default value of 10-5.
-
The Plateau algorithm lets you set the tolerance level to a value of your choice.
-
The Normalised Gradient algorithm is based on the gradients between plateaus rather than the clustering within them.
When you optimize with cluster analysis enabled, the Cluster Analysis tool calculates the means and standard deviations of the objective functions in the plateaus, and of the degrees of freedom of the model in each plateau. This information is added to the Cluster Analysis section in the optimization analysis JSON report.
You can use the MultiStartSeeds additional run setting to limit the run to seeds that produce plateaus of interest. For instance, use the command MultiStartSeeds = 4, 8, 9, 16 to run seeds 4, 8, 9 and 16.
Contact Support (spiral.support@aveva.com) to receive an Excel workbook where you can load your JSON optimization analysis report to better investigate the differences between plateaus. The workbook presents a summary of the plateaus detected, a worksheet detailing the degrees of freedom for each run seed, statistics for the degrees of freedom within each plateau, and tools to help you identify and analyze areas of the model that might be contributing to local optima.
The following example shows a multi-start solution with two plateaus.

In the Cluster Analysis sheet of the workbook, two sets of columns let you identify degrees of freedom with significant differences between plateaus:
-
In the Zero Switch columns the True values identify degrees of freedoms that are on average zero on one plateau and on average non-zero on another.
-
In the Plateau Switch columns the True values identify degrees of freedom that on average are different in both plateaus but only vary by a small amount within each plateau.
The following image shows the degrees of freedom with True values for both the Zero Switch and Plateau Switch columns. A splitter output flow and feed volume flow are zero on one plateau and nonzero on the other, which may offer clues as to the model behavior that causes the plateaus. Further analysis is possible by applying different filters on the Type and Switch columns.

Optimization Analysis Report — MIP and problem data
The Optimization Analysis report provides output to help you review and debug optimization runs. This topic describes what changed in the report regarding MIP variable data and problem data output.
Static MIP variable data and problem data are no longer included in the Optimization Analysis report. MIP data is now available for each start point separately within the report. Equation and variable data can be retrieved from the MPOC output.
Optimization Analysis Report: MIP variable values
If an optimization run ends as integer infeasible or not converged, it can be difficult to identify which integer decisions are contributing to the problem. The Optimization Analysis Report includes more detail for MIP variables to help you investigate.
What the report shows for each MIP variable
-
Variable type (for example, integer, binary, semi-continuous)
-
Valid range / bounds
-
For semi-continuous variables, the bounds indicate whether the variable can solve to 0 or must solve within [min, max], so you can tell if it solved to its non-zero minimum.
-
-
Value at the end of the run
-
If you used multiple run seeds/start points, values are shown for each run seed.
-
Troubleshooting when a run is integer infeasible
If a run ends as integer infeasible, use the end-of-run MIP variable values in the Optimization Analysis Report to identify variables that are not at an expected integer value (for example, values that are not whole numbers for integer variables). These variables are good starting points for investigation because they can indicate which MIP constraints are most likely contributing to the infeasibility. Focus your review on the constraints tied to those variables and, where appropriate, consider relaxing or adjusting them to help the model converge.