AIMMS Function Reference
website·Indexed 35 days ago
https://documentation.aimms.com/Technical documentation for the AIMMS language, including detailed references for suffixes (such as .Level, .Priority, and .SolutionTime), predefined identifiers (like AllFunctions and AllDataSets), and system interaction procedures for file management and action scheduling.
What's inside AIMMS
- The Selection Box V2 widget allows users to select a single element or a subset of elements from a set. It is available in AIMMS version 4.82 and later and is exclusively compatible with Grid Layout pages. Compared to the original Selection Box, V2 offers improved performance through lazy-loading of element lists and server-side 'text contains' searching (note: regex search is not supported).
Overview of the AIMMS PRO Platform
The AIMMS PRO Platform is a publishing and remote optimization environment that allows organizations to deploy AIMMS Applications to end-users via a web-based portal. It removes the need for developers to manually code interfaces or deployment setups. The platform automatically dispatches processing tasks to high-performance central servers, ensuring end-users always have access to the latest version of an application through their browser.Overview of AIMMS reporting facilities
AIMMS provides four primary ways to present and verify model results:
- Graphical User Interface: The most direct way to view results, change input values, and run models interactively.
- Print Pages: Hard-copy versions of graphical results, which can be printed from the end-user interface or triggered via model functions.
- Text Reports: Results saved to files or displayed in a text window using
PUTandDISPLAYstatements. These are ideal for generating formatted input files for external programs. - Listing Files: Detailed views of all constraints and variables in a mathematical program, used primarily for debugging the model's mathematical structure before or after solving.
Overview of Constraint Programming in AIMMS
Constraint Programming (CP) in AIMMS is a paradigm designed for solving highly combinatorial optimization problems, such as timetabling, sequencing, and resource-constrained scheduling. Unlike integer linear or nonlinear programming, CP in AIMMS supports a broader range of modeling constructs, including arbitrary algebraic and logical expressions, specialized variable types, and dedicated constraint types likealldifferent. AIMMS also provides specific syntax tailored for intuitive constraint-based scheduling.Overview of Robust Optimization in AIMMS
AIMMS provides built-in facilities to create and solve robust optimization models based on a min-max approach (best performance in the worst-case scenario). A key feature is the ability to automatically generate a robust optimization model from an existing deterministic linear program (LP) or mixed-integer program (MIP) using a single symbolic formulation. This ensures that changes to the deterministic model automatically propagate to the robust version without requiring the user to manually reformulate constraint definitions.Overview of AIMMS Language Reference structure
The AIMMS Language Reference is organized into several key functional areas to guide developers in modeling and implementation:
- Preliminaries: Basic concepts, model structure, data types, and execution statements.
- Nonprocedural Components: Declarations and expressions for sets and multidimensional parameters, including functional relationship execution.
- Procedural Components: Implementation of custom algorithms using assignment/flow control statements, index binding, and internal/external procedures and functions (DLL linking).
- Sparse Execution: Guidance on the AIMMS sparse execution engine and techniques for improving execution efficiency in large-scale models.
- Optimization Modeling: Tools for specifying and solving mathematical programs, including variables, constraints, network flow (nodes/arcs), nonlinear programs, mixed complementarity problems, stochastic programming, and robust optimization.
- Data Communication: Mechanisms for importing/exporting data via text files, databases, spreadsheets (Excel/OpenOffice), and XML, as well as generating text reports.
- Advanced Components: Specialized features for modeling and external application communication.
Overview of AIMMS Network License Server
The AIMMS Network License Server is a software application used to manage and distribute AIMMS licenses to AIMMS clients across a network. It is compatible with both Windows and Linux operating systems.Overview of the AIMMS Data Exchange library
The AIMMS Data Exchange library enables the mapping of multi-dimensional AIMMS data to and from tree-based formats (JSON, XML, YAML) and table-based formats (CSV, Parquet, Excel, database). This is achieved through a mapping file that describes the repetitive structure of the target format, allowing users to read external data into AIMMS identifiers or write AIMMS data to external files.
Mapping files typically define three types of nodes:
- Structural nodes: Contain children with different structures.
- Repetitive nodes: Contain multiple child nodes of the same type and structure.
- Value-holding leaf nodes: Contain the actual labels for bound indices or values for multi-dimensional identifiers.
Overview of AIMMS WebUI Selection Widgets
Selection widgets allow users to select one element from a set (using an element parameter) or a subset of elements (using a 1-dimensional binary indicator parameter). The available widget types areselectionbox,multiselect, andlegend.Overview of Automatic Benders’ Decomposition in AIMMS
The
GMP Benders Decompositionsystem module in AIMMS automates the process of decomposing an optimization problem into a master problem (solving a relaxed version for a subset of variables) and a subproblem (solving for remaining variables with the master variables fixed). This is particularly useful for Mixed-Integer Programming (MIP) and Linear Programming (LP) problems where integer variables are typically assigned to the master problem and continuous variables to the subproblem.AIMMS provides three main algorithmic approaches:
- Classical: An alternating sequence of master and subproblem solves; works for any problem type.
- Modern: Works only for problems with integer variables. It solves a single master MIP problem and uses solver callbacks to solve subproblems.
- Two-Phase: Solves a relaxed problem in the first phase and the original problem in the second phase.
Key Capabilities:
- Ability to solve subproblems as either primal or dual.
- Support for subproblem normalization to improve feasibility cuts.
- Open algorithm implementation in the AIMMS language, allowing developers to customize individual steps for performance tuning.
Overview of the pyaimms library
Thepyaimmslibrary enables the execution of Python code (both single statements and full scripts) directly from within AIMMS procedures. It uses UV to manage the embedded Python environment and dependencies, meaning Python does not need to be pre-installed on the system.Overview of the AIMMS Table Widget
The Table widget is used to visualize and edit one or more AIMMS identifiers in a tabular format. Key capabilities include:
- Sorting data (increasing, decreasing, or default).
- Customizing layout via drag-and-drop index pivoting.
- Configuring aggregators (Totals).
- Adjusting column widths by dragging and row heights via the 'Default row height' option in the Miscellaneous options editor.
- Exporting data to .csv files.
- Defining Widget Actions and Item Actions.