Progress Window
Description
AIMMS provides a progress window that allows you to monitor its activities during compilation and execution. When you are compiling and executing large models for the first time, watching the progress can be very instructive.
To display the progress window you can select it from the Window menu.
If you are already familiar with models, then most of the items in the progress window will be clear. If you want to know more about constraints and variables, they are explained in the Language Reference.
The following fields are in the Progress window:
AIMMS: The name of the source file.
Compiling Line: A model is compiled line by line. Under this heading, you can watch AIMMS progressing until the last line of the source file is reached. During execution this field is replaced by the following field:
Executing Line: The line number of the statement AIMMS is currently executing.
Generating: The name of the model AIMMS is generating. The name of the model is taken from the Model statement in the model file.
# Constraints: The number of individual constraints. Note: The predeclared identifier CurrentMatrixRowCount contains the number of rows for the last mathematical program generated.
# Variables: The number of individual variables. If the model contains integer variables then in brackets the number of individual integer variables is shown. Note: The predeclared identifier CurrentMatrixColumnCount contains the number of columns for the last mathematical program generated. Note that the information in the progress window includes slack variables, when used, while the identifier CurrentMatrixColumnCount does not include slacks.
# Nonzeros: The number of nonzero coefficients in the Jacobian matrix. Note: The predeclared identifier CurrentMatrixBlockSizes contains the number of non-zeros for the last mathematical program generated. Note that the information in the progress window includes slack variables, when used, while the identifier CurrentMatrixBlockSizes does not include slacks.
Model Type: The type of the model: LP, LS, NLP, NLS, MIP, RMIP, QP, QCP, MIQP, MIQCP, MINLP, RMINLP, MCP, MPCC, or network.
Direction: The direction of the model: minimize, maximize or feasible solution.
Solver: The name of the solver that is called to solve the model.
Phase: The current phase of the solution process, e.g. ‘Simplex’, ‘Postsolve’.
Iterations: The number of solver iterations completed so far. If the model is successfully solved, this field shows the number of iterations that were required to solve the model. In case of a parallel MIP optimization, the number of threads used by the solver is shown in brackets (‘Threads’).
Solving Time: The time (in CPU seconds) used by the solver by so far to solve the models. During the solve, in brackets (‘Memory’) the memory (in Mb) used by the solver is shown. After the solve, in brackets (‘Peak Mem’) the peak memory (in Mb) used by the solver during the solve is shown.
Program Status: This shows the program status after the solve statement is completed.
Solver Status: This shows the solver status after the solve statement is completed.
Total Time: The total time (in CPU seconds) AIMMS needed to compile and execute the source file and to solve the model.
Memory Used: The total amount of virtual memory (in Mb) used by AIMMS.
Memory Free: The total amount of virtual memory (in Mb) still available to AIMMS.
Between the fields ‘Iterations’ and ‘Model Status’ there is room for more fields. The amount of fields and their contents depend on the model type and the solver used.
In case of an LP two of these fields are filled:
Objective: The value of the objective function at the current iteration. If the model is solved completely, this shows the value of the objective function for the solution.
Best Solution: The value of the objective function for the best feasible solution found so far.
In case of a MIP, MIQP or MIQCP the fields are:
Nodes: The number of nodes generated by so far. For CPLEX, Gurobi and COPT in brackets (‘Left’) also the number of remaining nodes is displayed. If the model is successfully solved, this field shows the number of nodes that were required to solve the model.
Best LP Bound: The LP objective value of the best outstanding node. In brackets (‘Gap’) the relative gap between the ‘Best LP Bound’ and the ‘Best Solution’ is displayed.
Best Solution: The value of the objective function for the best feasible solution found so far. Recall that a feasible solution in a MIP is an integer solution (incumbent). If a postsolve is performed then in brackets (‘Post’) the objective value of the LP problem solved in the postsolve phase is displayed.
In case of a NLP (solver CONOPT) the fields are:
Infeasibility: The sum of the infeasibilities. In brackets (‘Ninf’) the number of infeasibility constraints is displayed. This information is only displayed in phase 0, 1 or 2 of the solving process. In phase 3 or 4 this field is replaced by the following field:
Max Gradient: The numerically largest reduced gradient. In brackets (‘NSB’) the number of superbasic variables is displayed.
Objective: The value of the objective function at the current iteration. If the model is solved completely, this shows the value of the objective function for the solution.
Best Solution: The value of the objective function for the best feasible solution found so far.
In case of a MCP (solver PATH) the fields are:
Restarts: The number of restarts performed by so far.
Jacobian Eval.: The number of Jacobian evaluations performed by so far. If the model is successfully solved, this field shows the number of Jacobian evaluations that were required to solve the model.
In case of a MPCC (solver KNITRO) the fields are:
Infeasibility: The sum of the infeasibilities.
Best Solution: The value of the objective function for the best feasible solution found so far.
In case of a QP or QCP the contents of the fields depends on the solver used. In case of CPLEX the information is the same as for LP models; in case of CONOPT the information is the same as for NLP models.
Note
You can specify a menubar and toolbar for this window (with the options Menubar for progress window and Toolbar for progress window).
During execution you can press CTRL-P to show the progress window.
You can use the procedure ShowProgressWindow to show the progress window.
Having the progress window opened can in some cases cause a significant performance loss. With the options Progress Solution and Progress Time Interval you can influence the update behavior of the progress window.
Learn more about