What can be expected from the AIMMS 3.6 release
For the upcoming AIMMS 3.6 release, to be released in October of 2005, we are developing the following new and extended functionality:
- Pivot Table, a new advanced interactive GUI object
- Case Diffence funtionality
- Extended support for Generated Math Programs
- Solver additions and updates
- Performance improvements
- Windows x64 platform support
- Web Services
The pivot table is a new and very flexible GUI object, which allows selections of one or more identifiers to be displayed in tabular format. Which selection of identifiers to show in the pivot table can either be determined by the developer at design time or by the end-user at run time from a developer-specified subset of all model identifiers.
The indices shared by all identifiers, or specific to a sub-selection of the identifiers in the table, can be freely moved between rows and columns, and can also be moved within the index order of rows and columns. In addition, indices can be made outer to reduce the dimension of the table, and data underneath indices can be collapsed and expanded. The identifiers displayed in the table, as well as the multiple case selection (if selected), count as extra dimensions, which can also be moved freely throughout rows and columns.
Both end-users and developers can dynamically associate several types of aggregations to each of the indices, in both rows and columns. Aggregation types include sum, average, min, max, count and difference. The latter can be used to visually perform case differencing whenever a multiple case selection is displayed.
The state of a pivot table, i.e. its contents, its row, column and outer index hierarchy and visual display aspects, can be saved to file to allow the table to be displayed in exactly the same state, both by developers and end-users.
Advantage: This new object provides an end user of an application (either the developer or business user) with a non-predefined table that is fully customizable and that provides extra cross-data related information.
AIMMS 3.6 has been extended with a function which allows modelers to save the difference of the current model data compared to a reference case to file. The identifier set to consider or how and when to save a difference can be specified per identifier. This functionality can be used to get an overview of differences of two cases in a human-readable AIMMS data format, or to store a collection of user inputs, or re-apply these to a different case.
Advantage: Monitoring changes can be arranged by using this case difference function allowing one to re-apply changes made to a specific case, also to other cases.
The following additions to the GMP library have been made:
- Callbacks during MIP phase: AIMMS 3.6 supports new callbacks during the MIP phase, e.g. to find a heuristic solution at each node of the branch-and-bound tree, add cuts or reject integer solutions.
- Solving GMPs recursively: AIMMS 3.6 allows solving GMP recursively, e.g. to compute cuts or find a heuristic solution during the MIP callbacks described above.
- Support for NLP problems: AIMMS 3.6 allows the use of the GMP library to NLP problems. Once generated, only the linear sub-problem can be manipulated, the nonlinear functions cannot be changed.
- AOA reimplemented in GMP library: the AOA (AIMMS Outer Approximation) solver introduced in AIMMS 3.5 has been reimplemented in the GMP library (the old AOA solver is still supported). As a consequence of this reimplementation, the AOA algorithm can now be further customized using all available functionality in the GMP library, e.g. to modify the MIP master problem, or add problem-specific constraints.
Advantage: We are continuously adding functionality to the GMP library to further enable solving highly complex model by using decomposition techniques. With the current additions it becomes possible to solve complex MIP/MINLP problems through a (recursive) sequence of smaller subproblems and/or heuristics.
The following solver additions and updates have been made for AIMMS 3.6:
- LGO: AIMMS 3.6 supports the global NLP solver LGO.
- XA 14: AIMMS 3.6 supports the new XA solver version 14, which offers QP, and is also supported as a sub-solver by the BARON global NLP solver.
- BARON 7.5: AIMMS supports the global NLP solver BARON version 7.5. This version can use the XA 14 and CONOPT solvers, which come standard with every AIMMS system to solve the MIP and NLP sub-problems respectively.
- Parallel CPLEX: AIMMS 3.6 supports the parallel CPLEX solver.
Advantage: The above mentioned updates make it possible to extend AIMMS with BARON without the need to have CPLEX, MINOS or SNOPT available and solve (mixed integer nonconvex) nonlinear programs for global optimality. The LGO integrated global-local nonlinear solver suite extends your modeling/solving capability, with support for using arbitrary continuous functions in your AIMMS model formulation. Some prominent examples are sin, cos, tan, abs, min, max, together with many other functions. The parallel CPLEX support can provide substantial performance improvement for (large scale) MIP problems by using multiple processors (when available).
One of the focal points of AIMMS 3.6 has been to remove some performance issues with very large models that have been reported by our customers
- Memory management: The AIMMS memory manager has been adapted to better support very unbalanced memory usage situations, which could lead to excessive memory usage in extreme examples, while retaining its speed. In addition, the AIMMS 3.6 memory manager allows freed up memory to be effectively recovered during an AIMMS run, potentially allowing larger models to be solved within the same amount of memory.
- Data structures: the data structures internally used by AIMMS to store multidimensional data have been adapted to more efficiently store data in very specific, non-generic, situations observed in customer models. In extreme examples, memory reductions of up to 75% have been observed.
- Element parameters: the data storage of multidimensional element parameters has been adapted to be able to much more efficiently execute comparisons involving element parameter values.
Advantage: We continuously strive to improve the performance of AIMMS. The advantages for you are potentially faster execution times and less memory requirements compared to running your models with AIMMS 3.5.
Next to the Windows IA64 platform already supported in AIMMS 3.5, AIMMS 3.6 has been ported to the Windows x64 platform, which has been officially released by Microsoft earlier this year.
Advantage: Windows x64 (as Windows IA64) enables the use of AIMMS models with memory requirements exceeding the 2Gb memory limit imposed by 32-bit processors. The memory limit of the x64 version of AIMMS is restricted only by the available computer memory. Even the 32-bit version of AIMMS has an extended memory limit of 4Gb, when run on the Windows x64 platform.
The AIMMS agent technology has been extended to allow AIMMS procedures to be called through a web service. AIMMS 3.6 supports the automatic generation of WSDL files for the procedures that can be called for a specific agent role, and provides handlers to pass incoming web service requests on to one or more AIMMS sessions. Next to the procedure arguments, web service requests can be accompanied by attachments, which can hold additional (XML) data to be used by the AIMMS model. AIMMS web services support both a stateless and session-oriented model.
Advantage: Web Services provide a standardized and language-independent method of communication between your applications and AIMMS. This allows AIMMS to be called from a wider range of applications than before, and to effectively become part of service-oriented architectures.