Feature(s) introduced in AIMMS 4.97 (October 2023)
We are currently working on a number of bigger features, which take a while to implement fully. That is why this AIMMS 4.97 release only brings some minor improvements to the product, combined with quite some bug fixes. Please refer to the release notes for the details.
Feature(s) introduced in AIMMS 4.96 (June 2023)
- Current Widget Named View Model Configurable
- Upload/Download via Widget and Item Actions
- Octeract 4.7 with Performance Improvements
- Procedures With Optional Arguments in WebUI
We extended the Widget Named View feature, introduced in AIMMS 4.95, with the possibility to specify the Current View using an element parameter in the model. This makes it possible to provide the end user with different views of the same data based on his interaction with the app. For details, see the documentation.
Even though the existing Upload and Download widgets are very convenient, they do take up some space on your page. Furthermore, there are scenarios where an upload or a download action should be more integrated with particular widgets in your WebUI App. This is why we extended the widget actions and the item actions with the possibility to upload or download a file. For details, see the documentation.
The global solver Octeract has been upgraded to version 4.7. Octeract 4.7 comes with perfomance improvements for all kinds of nonlinear problems.
Up till now, you could only call procedures from WebUI buttons that did not have any arguments, because there would be no way to specify the argument values to pass. Now we also allow you to call procedures with only optional arguments from WebUI buttons. When called, the default values of the arguments will be used.
Feature(s) introduced in AIMMS 4.95 (May 2023)
- Widget Named Views for WebUI
- Two New WebUI Library Procedures
- Identifier Tooltip Support for Table Header and Scalar Widget
- Missing CSS Configurations Added to Theming
- AIMMS Image on the Cloud Updated
The app developer can now define multiple Named Views for a widget. Each of these views represents a specific state of the widget. The end-user can select either of these named views to have a different look at the widget. For example, there could be named views for different pivotings of the data, or even completely different widget types, such that you can present the data in a Bar chart of a Line chart, according to which named view the end-user selects. Please refer to the documentation for all the possibilities.
Up until now the most recent Theming options could not be considered ‘complete’ yet: despite the number of custom CSS properties available, there were several elements not subject to any theming (using fixed values to achieve an AIMMS Theme) or only pretty coarse theming was achieved at the best, leaving you with the need to add application specific stylesheets like before… With the help of customer feedback and by going through virtually all components, we have added a whole range of additional CSS properties and made sure they are applied in all logical locations. Please review the latest base theme file to see how Theming should now ‘reach’ all parts of a WebUI application much better. For more information, please see this documentation.
The image running AIMMS in the cloud has been upgraded:
- It is based on ubuntu 22.04
- The available ODBC driver for MySQL is now called ‘MySQL8.0’. The ‘MySQL’ driver (which was 5.3 under the hood) is no longer supported.
- Available ODBC drivers for MS SQL Server: “ODBC Driver 17 for SQL Server” and “ODBC Driver 18 for SQL Server”
In the previous image only version 17 was available, be aware that version 18 has breaking changes, see also here.
- This image no longer contains direct support for R: contact user support if you are using R in the cloud for the migration trajectory to this AIMMS version.
Feature(s) introduced in AIMMS 4.94 (April 2023)
(see also the introduction of these features here on our Community page).
When enabling Case Comparison mode, in previous AIMMS versions all the widgets that support case comparison (the Table and most of the Chart widgets) would go into this mode. Starting with AIMMS 4.94, you can configure this behaviour for each individual widget. So, according to where you feel that case comparison will add value to your WebUI, you can enable it for your users.
Table filtering has been around in AIMMS for quite a while now. However, it was not possible yet to filter on the actual identifiers that are displayed in the Table widget. Now you can determine which identifiers that are present in the contents should be displayed, using the same filtering options that you are used to (like ‘is’, ‘is not’, ‘contains’, etc.).
Feature(s) introduced in AIMMS 4.93 (April 2023)
- Support for Indexed Sets on Table and Scalar Widgets
- Support for more WebUI Sidepanel Tabs
- Further Workflow Enhancements on WebUI
- Tooltip Support for X-Axis Labels on the Combination Chart
Displaying element parameters that have an indexed set as their range in the WebUI, was not fully supported. The data was displayed fine, but when you wanted to change such a value in a Table or a Scalar widget, the dropdown displayed all possible values of the whole indexed set, without respecting the current index values. We changed that in this AIMMS version, such that you now only get to choose from the valid values from such lists. We are working on enhancing more widget types with this functionality.
Up until AIMMS 4.92, WebUI sidepanels supported up to six tabs. From this AIMMS 4.93 onwards, you can configure up to ten tabs, using the same mechanism as always.
We have further enhanced our the WebUI Workflow feature:
- As an app developer, you can now always open pages belonging to hidden or inactive workflow steps through the app manager. Previously, you first had to reconfigure the step in your model to become visible and active in order to do so.
- The Workflow feature was flexible enough to allow for the configuration of a single page as a step in multiple Workflows. However, when you had clicked on such a Workflow step, you would have been taken to the first Workflow that had this page configured. Now we addressed this, such that clicking on a Workflow step like this will keep you in the current Workflow that is being displayed.
The Combination Chart did not support configurable tooltips for labels displayed on the X-axis yet. Now it does. In case such a label displays both an element and an identifier (which can happen with certain pivotings), and you have a webui::identifierTooltip set for the identifier, the chart will show both tooltips concatenated.
Feature(s) introduced in AIMMS 4.92 (February 2023)
- Improved User Experience in the WebUI Table Widget
- Workflow Enhancements on WebUI
- Various Algorithmic Capabilities Improvements
To complement the recent Advanced Table Editing feature, we have added new keyboard/mouse controls for the WebUI Table widget. As you are used from Excel, you can now easily navigate to the first or the last cell of the table, or the start/end of the current row/column. Furthermore, you can now also make block selections using the SHIFT key combined with the arrow keys or the mouse. For details, see the documentation.
We have expanded the WebUI Workflow panel to support a sublevel of workflow steps. Using this, you can represent parent-child relationships which exist in certain workflows in a very natural way. At the same time, we improved the visual design of the Workflow panel. For details on how to configure the improved Workflow panel, see the documentation.
A number of improvements have been made in the Algorithmic Capabilities area of AIMMS. These include the following:
- Postsolve supported for MIP models containing a pool of lazy constraints.
- New KNITRO version: KNITRO 13.2, which will now use CPLEX 22.1 instead of 12.10.
- New Gurobi verson: Gurobi 10.0.1
Feature(s) introduced in AIMMS 4.91 (January 2023)
The dropdown boxes in both the Scalar and the Table widgets, when displaying element parameters, have been upgraded to a new underlying technology which we have already used for the Selectionbox widget for a while. It offers dynamic updating of the data in the list without having to close it first, faster loading of the elements and a search feature.
We’ve changed the way the widget menu (the ‘kebab menu’) and the access to the widget options (‘the cogwheel’) looks. This is especially noticeable for application developers that will now find that these two buttons are always visibly attached to all widgets, both the ones with and without the a full header. This makes their presence immediately known and consistent for both developers and end-users, with editable or non-editable interfaces. It also allows the widget menu, which can also contain the widget actions, to have a more prominent and clear role in your application and development.
Feature(s) introduced in AIMMS 4.90 (November 2022)
- Gurobi 10.0
- COPT Linear Solver
- Header Sorting in WebUI Table Widget
- WebUI: Advanced Table Editing now a Generally Available Feature
- Runtime Quantities and Units creation
Gurobi 10.0 (version 10.0.0) has been added. Gurobi 10.0 comes with performance improvements for LP, MIP, convex MIQP models and for convex and non-convex MIQCP models.
The new linear solver COPT has been added. COPT can be used to solve LP and MIP problems, as well as convex QP and QCP problems. COPT is developed by Cardinal Operations. For details, see our documentation.
Next to the already existing feature to sort the data in a WebUI Table widget, it is now also possible to sort the row and the column headers. You can sort exactly one of these headers now, in ascending, descending or “default” order (meaning the set order as prescribed in the underlying AIMMS model). For more details and examples, please refer to the documentation
Since AIMMS 4.87, we already offer support for Block Selection, Block Editing, and Copy/Paste in the WebUI Table widget. Later we added the ability to Search and Find data in the Table. We’ve been addressing the feedback we’ve gotten and making improvements. With the release of AIMMS 4.90, we formally establish this as a Generally Available feature and take it out of the Experimental Feature category.
From AIMMS 4.90 onwards, it is possible to create both Quantities and Units during runtime using the AIMMS Model Edit functions. This adds even more flexibility in creating your models.
Feature(s) introduced in AIMMS 4.89 (October 2022)
- Experimental Feature: Search/Find for WebUI Table
- Excel Upload/Download Support for WebUI Tables made a Generally Available Feature
- WebUI: Cleaner Widget Header Menu
- Better support for academic/community licenses
- Improved Presolver Efficiency
- New Function: SetAsString
As an addition to the ‘Advanced Table Editing’ Experimental Feature, we added the possibility to search for data in the WebUI Table. Cells that contain your search string are highlighted and selected, and you can easily navigate through your search results. Full details are described in the documentation.
In AIMMS 4.86 we introduced the feature to Download Excel data from a WebUI Table and to upload Excel data into a WebUI Table. Since then, we have polished this feature and now we consider it good enough to make it into a generally available (GA) feature. This means that you do not have to set the ‘Excel Upload/Download Support’ checkbox anymore.
Over time, we have added more icons to the header menu of our widgets. In some cases, especially in the Table widget, this could become a bit ‘messy’. To mitigate that, we now introduce the new ‘Kebab’ widget header menu. Instead of all the loose icons (for Excel upload/download, CSV download, etc.), we group these menus as items in the new menu, together with the widget actions. For details, please refer to the documentation.
We have improved the support for academic and community licenses. Failed connections to our academic/community license server specified through a license URL now provide more detail about the reason of failure (e.g., license expired, too many sessions, etc). Licenses with a license URL can now also be specified in the License Configuration dialog in AIMMS itself. Previously, such licenses could only be entered in the AIMMS Launcher.
The memory usage and computing speed of the AIMMS Presolver has become more efficient for linear models. For large linear models it can be beneficial to switch on the option ‘Linear presolve’ because this might drastically reduce the memory usage of the solver.
We introduced a new function ‘SetAsString’ in the AIMMS language. It returns a string representation of a set. As a result of this, implicitly casting from a set to a string is now deprecated. Please refer to the AIMMS Function Reference for more information.
Feature(s) introduced in AIMMS 4.88 (August 2022)
- IMPORTANT: Backward Compatibility on PRO
- Adding New Widgets Directly to an Area
- Possibility to Show/Hide WebUI Table Downloads
- Miscellaneous Algorithmic Capabilities Improvements
For applications that are or will be built with AIMMS 4.88 (or future versions) to be published on PRO, it is necessary to update AIMMS PRO (on-premise) to version 2.44, released July 15 (see the PRO release notes).
We have changed the underlying build configuration of our C++ code to move faster to new technologies. This upgrade does not affect the functionality of any product of AIMMS. Still, due to unavoidable name changes of some of the binaries we release with AIMMS, older versions of PRO and repository libraries are no longer compatible. This adjustment will improve the robustness and maintainability of our code.
It might also affect some Repository Libraries, but that will be solved ‘automatically’ when you open the model in AIMMS 4.88 (or future versions).
If you open the model in AIMMS 4.88 (or future versions) before publishing, the Autolib will find the supported version for all repository libraries in the model and will show a pop-up that versions have been updated, and you need to save the model. Only when the model used a very old version ( <1.0.0) of the Unit Test Library, some incompatibility may arise because an identifier ‘s’ is no longer available.
When adding a new widget to a WebUI page, it would be created under the Unassigned Widgets area. After that, you had to manually move the widget to the area where you wanted to display the widget. In this AIMMS version, we made this easier for you. You can directly add a widget to a specific area, saving you the additional manual step. For details, see the documentation.
Although downloading the Table content as a CSV file or as an Excel file can greatly enhance your end users’ workflow, there might also be a risk. If the table widget displays sensitive data, for example, it should not be easy for the end user to download the complete table to a CSV/Excel file. With such a scenario in mind, we introduced the option ‘Show Upload/Download Data Controls’ (on the ‘Miscellaneous’ tab) to switch off these possibilities, per table widget.
AIMMS 4.88 comes with the following Algorithmic Capabilities improvements:
- A number if new GMP procedures were added:
- GMP::Coefficient::GetMinAndMax. It can be used to determine the minimum and maximum value of coefficients in a generated mathematical program.
- Gurobi 9.5 has been upgraded to version 9.5.2.
- Several solution and solver related statistics have been added to the Math Program Inspector, on the Math Program Solution, Variable Statistics and Constraint Statistics tabs.
- The option ‘Updates batch size’ has been added for Gurobi to pass GMP updates more efficiently.
Feature(s) introduced in AIMMS 4.87 (July 2022)
- Block Editing and Copy/Paste Support for WebUI Tables (Experimental Feature)
- New Color Palette in the WebUI
- Knitro 13.1
- Improved Performance of the CleanDependents Statement
We have extended the WebUI Table with block editing and copy/paste functionality. You can now edit more than just a single cell at a time, making working with the Table more time efficient. Copying from a Table and pasting to another Table (not necessarilly in the same WebUI App) also makes the widget more convenient in everyday use. For details and some limitations, please see the documentation. Please note that this is currently implemented as an Experimental Feature (“Advanced Table Editing”).
A new color palette, consisting of 16 well discernable colors for most users, was introduced to replace the previously default 19-color palette. It will affect all Widgets that derive the coloring of their nodes from ordinal annotations: all Charts and the Map. The new palette also works better when using the Transparency Index option to create additional color variations for the Combination Chart. Please refer to the documentation to learn more about the new colors, about falling back to the previous 19, 11 or 7-color palettes and how this influences any custom data coloring that might be in place.
In this release, we updated the Knitro solver to version 13.1. A major improvement in this version is the parallel implementation of the branch-and-bound algorithm.
The performance of the Cleandependents function has been greatly improved. Due to implicit use of this functionality by Aimms, this also affects some other statements. It is sometimes used as part of a solve statement, it is used when calling Empty on a set, and it is used when calling Empty on a part of an identifier
Feature(s) introduced in AIMMS 4.86 (June 2022)
- Excel Upload and Download Support for WebUI Tables (Experimental Feature)
- Debugger Break When an Error Occurs
- Octeract 4.3
We added the possibility to download WebUI Table data into an Excel file and to upload data from an Excel file to a WebUI Table. The resulting Excel file will have a look and feel close to the WebUI Table. Not only is this an easy way to get some of your WebUI data into Excel, you can also edit the data in Excel and upload it back to the WebUI Table. There are some limitations on what you can and cannot do, though. For details on those and on the feature itself, please see the documentation. Please note that this is currently implemented as an Experimental Feature.
In the Debugger menu there is a new command “Break on Error”. If this command is checked, then whenever an error is triggered during the execution of a statement, the debugger automatically breaks on that statement. This allows you to more easily inspect the cause of an execution error as you can look at all the data that is used in that statement. This new feature only applies when the Debugger is already enabled.
In this release, we updated the Octeract solver to version 4.3.
Feature(s) introduced in AIMMS 4.85 (April 2022)
- WebUI: New Way of Theming Apps
- WebUI: Combination Chart Improvements (experimental feature)
- WebUI: Tooltip Support for Selectionbox, MultiSelect and Legend Widgets
- New Solver: Octeract
- Solver Update: CPLEX 22.1
- Various Algorithmic Capabilities Improvements
- Various Compiler and Engine Improvements
In the WebUI, we offer you a whole new way of theming your apps. It is simpler to apply than the current custom css possibilities, though the latter remains a possibility to allow for some fine-tuning, if needed. By specifying values for selected pre-defined variables, you can easily change the appearance of your WebUI apps using the new theming feature. For details, please see the documentation.
Combination Chart Improvements (experimental feature)
The experimental Combination Chart widget has been greatly extended. In the previous release, just the Column chart was supported. Now it also supports the following chart types:
- Area Spline
All of these chart types can be mixed and displayed in one and the same chart. Beside this major improvement, the following enhancements are introduced in AIMMS 4.85:
- Now that the Combination Chart supports multiple types, we also made it possible to automatically convert existing widget types (i.e. the Bar charts, Line charts and BarLine charts) to the new Combination Chart widget.
- A secondary Y-axis is now also supported.
- The interval used for the X-axis labeling can now be specified.
- For each displayed index, you can specify whether you want to hide it.
- There are better coloring options by using the color index and the transparency index.
For more information, please see the documentation.
In this release, we added support for tooltips on the Selectionbox, Multiselect and Legend widgets. They can be added through your model in the normal manner using tooltip annotations on your identifiers.
The new global solver Octeract has been added. It can be used to find a global optimal solution for NLP, MINLP and non-convex quadratic or quadratically constrained problems and it can handle models with trigonometric functions. Currently Octeract is only available for Windows.
- CP Optimizer 22.1 has been added. CP Optimizer 22.1 comes with a new experimental local search method which works best on lightly constrained problems.
- AIMMS Postsolve is now less strict on bound violations of continuous variables.
- The progress window information for BARON has been changed such that it is more inline with other solvers.
- The new compiler now supports the LoopCount construct.
- The Math Program Inspector Layout is now remembered between sessions of the tool.
- Most of the simple procedure call statements in a body of a procedure or function are now handled by the new compiler and engine.
- If an expression contains a reference to a Macro, it can now be handled by the new compiler and execution engine.
- The new compiler can now handle if/then/else constructs.
Feature(s) introduced in AIMMS 4.84 (January 2022)
- New Combination Chart (experimental feature)
- Dual Reductions in AIMMS Presolver
- OAuth support for WebUI on PRO/Cloud
New Combination Chart (experimental feature)
We have extended the WebUI with a new widget: the Combination Chart. In AIMMS 4.84, it is released as an experimental feature. This chart offers the possibility to display various chart types combined in one single chart. In this first release, we offer the Column Chart as the first chart type. In subsequent releases, additional chart types will follow. Next to this, the chart offers various other features, like zooming, an interactive Legend with the option to show/hide it, an option to control the number of data categories visible on the viewport and many more. For more information, please see the documentation.
Dual Reductions in AIMMS Presolver
The AIMMS Presolve will now apply dual reductions by default, as controlled by the new option ‘Presolve Dual Reductions’. Dual reductions remove feasible or even optimal solutions while guaranteeing that at least one optimal solution remains.
Feature(s) introduced in AIMMS 4.83 (November 2021)
- Gurobi 9.5
- Miscellaneous Algorithmic Capabilities Improvements
- Custom Tooltips for Axes on Bubble Chart
- Improved Handling of Infinity Values in the WebUI
- For most GMP procedures that can be used to modify columns, rows or coefficients, a ‘raw’ variant has been added which uses a set of column and/or row numbers as input.
- By using the new CPLEX 20.1 option ‘Find fractional root solution’ you can instruct CPLEX to find and return the fractional solution after exploring the root node in the branch-and-bound tree of a MIP solve. It can be useful to analyze this fractional solution to improve the formulation of a MIP problem, aiming to reduce the solving time. This new option can be combined with another new option, named ‘Write cuts’, which can be used to write the cutting planes, found by CPLEX at the root node, to a file, while possibly also writing the presolved model. Both options can be found in the new category MIP Advanced.
- The new procedure GMP::SolverSession::GetIIS can be used to retrieve an irreducible infeasible set (IIS) for an infeasible math program. It returns the row and column numbers of the rows and columns in the IIS. The IIS will be calculated by the solver and is supported by CPLEX, Gurobi and BARON.
Custom Tooltips for Axes on Bubble Chart
You can now add custom tooltips for the X-, Y- and Size labels in your Bubble Chart widgets, which can further increase the clarity of the data that you are presenting to your users in this widget type.
Improved Handling of Infinity Values in the WebUI
WebUI improved the handling of the special values ‘inf’ and ‘-inf’. WebUI can now display them and is able to use them in totals. Furthermore, you can now also enter these values from within the WebUI, just like any normal value.
Feature(s) introduced in AIMMS 4.82 (September 2021)
- Application Management
- Improved SelectionBox Widget
- Download Widget Content as an Image
- Access to Runtime identifier in non-runtime Procedures
In AIMMS 4.78, new and improved Application Management was already introduced as an experimental feature allowing you to easily rename and copy widgets as well as move them between pages in your Web Apps. In the meantime, we have been extending and polishing the Application Management further, e.g. by adding a “Widgets on page” section and we are making it the standard way to manage your widgets going forward. Now it is ready to be released as a standard feature.
The new SelectionBox V2 widget, which has been an experimental feature so far, is now released as a standard feature. When using a page with Grid Layout, any SelectionBox will automatically be the new version. When using Classic layout, the old version will still be used.
Since AIMMS 4.79, it is possible to download a widget containing data to an image (PNG). This feature has now become a standard feature and we added support for the Map widget as well.
Procedures now have an additional attribute: ‘Uses runtime libs’. A procedure with this attribute specified enables developers to use runtime identifiers in their models without the need to having them explicitly already available during modeling; so far, a compilation error would occur making this impossible.
Feature(s) introduced in AIMMS 4.81 (July 2021)
- WebUI Grid Layout GA
- Gurobi Use on the AIMMS Cloud
- Using Quadratic Structures with Knitro
- Creating Block Matrices for Submodels
WebUI Grid Layout GA
The Grid Layout for WebUI pages was already available as an Experimental Feature since AIMMS 4.75, but with the release of AIMMS 4.81, it has become the default way of organizing your pages. Using this new functionality based on GridCSS, you have far better control over where widgets will be placed on your pages, dialogs, and side panels using pre-defined or custom layout templates. It allows for a more efficient use of your screen real estate and the resize behavior of pages has been improved as a result, too.
To make it easier for you to plan your transition to the new Grid Layout, we added an option to disable the feature and fall back on the classic layout.
The following improvements have been made in the algorithmic capabilities of AIMMS:
Gurobi Use on the AIMMS Cloud
This AIMMS version enables you to run Gurobi on the AIMMS Cloud using the recently introduced Gurobi Web License Service (WLS). If you have such a Gurobi WLS, you can activate Gurobi 9.1 (or higher) through a few simple adjustments in your model code as explained in the AIMMS Cloud Platform documentation. Also, you need to acquire a (paid) Gurobi-link extension for your AIMMS Cloud; please contact us at [email protected] if you are interested.
Using Quadratic Structures with Knitro
A new option, called “Use Quadratic Structure”, was added to the Solvers General category. If this option is active, quadratic structures are passed to Knitro 12.3 (or higher). See the AIMMS Help inside the AIMMS IDE for more information.
Creating Block Matrices for Submodels
If the coefficient matrix of a math program contains several independent block submatrices then the new function GMP::Instance::CreateBlockMatrices can be used to decompose the math program into several generated math programs, each containing an independent block submatrix. Each of these blocks can be solved separately, and by combining the solutions of these blocks a solution of the original math program can be obtained. This approach can be more efficient than solving the complete math program at once.
Feature(s) introduced in AIMMS 4.80 (June 2021)
- WebUI: Dialog Page Improvements
- WebUI: Side Panel Improvements
- WebUI: Selectionbox-V2 Widget Introduced as Experimental Feature
- Solver Updates
- Improvements in GMP Functions
- Linux Repo Libraries Included in aimmspack-Files
- Improved Case Loading Time
The following exciting improvements have been made to the AIMMS WebUI:
- Dialog pages can now also use the new Grid Layout to improve the look and feel in Apps.
- There is a custom sizing option added next to the small, medium and large defaults allowing for larger or specific dialog sizes (this requires use of the new Grid Layout).
- Side panels can now also use the new Grid Layout to improve the look and feel in Apps.
- Each side panel can now include a custom-colored icon to identify the side panel tabs more easily for the App users.
WebUI: Selectionbox-V2 Widget Introduced as Experimental Feature
A more efficient implementation of the Selection Box widget is introduced in this AIMMS version as an experimental feature. The widget uses less resources than the current implementation and supports a far larger number of items in the dropdown (tens of thousands). Please note: a selectionbox-v2 requires the page to use the Grid Layout.
The following improvements have been made in the algorithmic capabilities of AIMMS:
Improvements in GMP Functions
The optional argument ‘merge’ has been added to the procedures GMP::Solution::SendToModel and GMP::Solution::SendToModelSelection. This argument can be used to merge the values of the variables and constraints in a math program with a solution in the solution repository of a GMP. Furthermore, the functions GMP::Solution::GetColumnValue and GMP::Solution::GetRowValue can now also be used to retrieve information regarding basic columns and rows.
Next to the improvements already mentioned, AIMMS 4.80 also offers the following:
Linux Repo Libraries Included in aimmspack-Files
If your application uses libraries from the online library repository, you can now choose to include the sources of these libraries in the .aimmspack for both Windows and Linux; this used to be only available for Windows libraries. This extension makes the deployment on the AIMMS Cloud more efficient as any online sources do not need to be downloaded during startup.
Feature(s) introduced in AIMMS 4.79 (April 2021)
- Required Unit Attribute for Libraries and Modules
- WebUI: Tooltip Annotation for Sets
- WebUI: String Parameters in the Text Widget
- WebUI: Download Chart Contents as an Image
Required Unit Attribute for Libraries and Modules
AIMMS Libraries and Modules now offer the attribute required unit. By specifying here which unit(s) the Library or Module uses, you no longer have to declare these units in the Library or Module itself. Instead, they are automatically declared for you in an automatically generated dedicated section in the main model. Beside the convenience this gives, it also prevents compatibility problems between Libraries and Modules which need (and declare) the same units. For details, see the Language Reference. For more information about the background and typical use, see this AIMMS Community article.
WebUI: Tooltip Annotation for Sets
AIMMS already featured the possibility to specify custom tooltips on the data in your WebUI widgets. In this release we have added the possibility to do this for header data (Table headers and the x-axis labels of the Bar, Line and the Bar-Line charts). This functionality offers the ability to provide more clarity for your end-users when interpreting the chart. For details, see the documentation.
WebUI: String Parameters in the Text Widget
Up until this AIMMS version, the content of the Text widget was static text. Although useful, we have greatly enhanced the flexibility of this widget by providing for dynamic content through the use of a string parameter. The result is a Text widget which can be dynamically updated depending on the state in your WebUI app.
WebUI: Download Chart Contents as an Image
Sometimes it is more practical to quickly share the content of a WebUI widget from your App by simply providing it as an image. Previously, this could be done by taking a screenshot of your page and cropping out the required area. Now the WebUI offers a button in the widget header with which you can easily download the content of the widget as an image file. For more info, see the documentation.
Feature(s) introduced in AIMMS 4.78 (February 2021)
- Automated Scaling
- Solver Updates
- WebUI: App Management as Experimental Feature
- WebUI: Table Filtering Tolerances
- WebUI: More Efficient Communication
The scaling tool can, going forward, be directly used in a (GMP) solve statement. This removes the immediate need to adjust the actual model using the proposed scaling factors (introduced in 4.74) and makes scaling valuable beyond a pre-solver.
By activating the automated scaling option (there are a number of options on how to scale), the model will be scaled automatically before sending it to the solver; in addition, results will be scaled back to be able to be interpreted correctly. Although this is convenient, it is good to realize that these scaling steps takes place at each solve. If you have a model that needs constant scaling, we recommend you to scale the actual model so you can turn off the auto scaling to reduce the total solve time (scale + solve + scale back).
- BARON 21.
- CPLEX-ODH 5.3.
- KNITRO 12.3.
In addition, different option settings can now be used for the optimization problems, corresponding to different objective priorities. CPLEX and Gurobi use those settings during the optimization of a multi-objective problem.
WebUI: App Management as Experimental Feature
AIMMS 4.78 comes with new App Management tooling that allows you to easily rename and copy widgets as well as move them between pages in your Web Apps. It is available as experimental feature. We expect that this will improve your speed of building and changing Apps drastically, as you do not need to rebuild widgets from the ground up, or – as we noticed some users were doing – use some manual trickery in the webui.json file.
WebUI: Table Filtering Tolerances
To improve the Table filtering, a certain tolerance has been added when comparing numerical values, resulting in a better user experience. This is especially important for using (in)equalities in a filter.
WebUI: More Efficient Communication
The communication of resources to the browser has been made more efficient. For more details, see this community post.
Feature(s) introduced in AIMMS 4.77 (January 2021)
- Solver Updates
- WebUI Date/time Picker and Time Zone Support
- New Implementation of the Case Mechanism
- JIT (Just-in-Time) Compilation
- Help On menu Links to Online Version of Manuals
- CPLEX 20.1 (CPLEX uses a new numbering, which is now; now based on the year of release) comes with performance improvements for mixed integer programming (MIP) models to provide better solutions more quickly.
- CONOPT 4.1 has a few bug fixes.
- Gurobi 9.1 (version 9.1.1) comes with performance improvements for LP, MIP, MIQP and MIQCP models.
- CP Optimizer 20.1 comes with improvements to constraint programming models with variables that have large domains.
WebUI Date/time Picker and Time Zone Support
The WebUI date/time picker and the time zone support (both introduced in AIMMS 4.75 as experimental features) are now officially supported features. This means that this functionality is present by default from AIMMS 4.77 onwards.
New Implementation of the Case Mechanism
The code to read and write case files has been completely re-written This should not have any negative impact on existing models. and includes a few fixes related to the order in which data was read how definitions were evaluated during reading. The format of the case files has not been changed and thus is still compatible with older AIMMS versions. This rewrite should not impact case usage in your models, but if you encounter any problems because of this change, please let us know as soon as possible.
JIT (Just-in-Time) Compilation
There is a new project option “JIT_Body_Compilation” to enable the new feature: Just-In-Time body compilation. This skips the compilation of the body attributes of procedures and functions that are not required at startup, which decreases the startup time of your models. Procedures and functions are compiled just before their first actual run. This also means that Procedures and Functions that are in the application, but not used, will not be unnecessarily compiled. You can enable this feature by setting the new option ‘JIT_Body_Compilation’ to ‘On’.
Help On menu Links to Online Version of Manuals
The links to the Language and Function Reference which can be accessed through the Help On menu in the AIMMS IDE, now point to the online version of these manuals instead of to static PDF versions of them. This has the advantage that the information that is displayed is always the latest version.
Feature(s) introduced in AIMMS 4.76 (October 2020)
We have extended our WebUI framework with the Bar-Line Chart widget to improve the possibilities of showing your AIMMS model data to your end users. The widget makes it possible to add a line identifier and a set of bar identifiers (stacked or grouped) as can be seen in the example below. Read more in the documentation.
Features introduced in AIMMS 4.75 (September 2020)
- KNITRO 12.2
- Table Filtering in WebUI
- Grid Layout in WebUI (Experimental)
- DateTimePicker in WebUI (Experimental)
- Timezone Support in WebUI (Experimental)
Knitro 12.2 has been added to this release of AIMMS. This version of the solver is expected to bring you significant enhanced performance in medium– and large–scale models (50% or more in some cases). When using the multi-start, multi-algorithm or tuner features, parallelism is enabled by default now. Next to more extensive presolving by default, it also offers a new ‘weak Wolfe line search’ option, which can prove useful when solving non-smooth unconstrained models. Please let us know how Knitro 12.2 works for you!
Focusing on the most important aspects of your data displayed in WebUI Tables just got even easier: you now have the possibility to add filters to limit the rows and columns to be displayed, based on various criteria. For example, when showing transport costs for a big set of cities, you can set up a filter showing only the rows containing a particular city and another filter showing only those rows for which the cost is higher than $1,000. Created filters can easily be enabled, disabled or deleted.
We are in the process of improving the way in which you can design your WebUI pages. We are proud to offer our work on this new Grid Layout as an experimental feature in this release. Using the new functionality based on GridCSS, you have far better control over where widgets will be placed on your WebUI pages, by using pre-defined or custom layout templates. It allows for a more efficient use of your screen real estate and the resize behavior of pages has been improved as a result, too. Although we realize this feature is not yet complete (e.g. currently only regular pages support this new layout; dialog and side panels are still ‘old style’), we are looking forward to your initial response and experience.
The WebUI now offers an easy way of selecting dates/times (calendar elements), with a dedicated DateTime Picker. Up till now, this had to be done using a generic dropdown or select widget. The DateTime Picker will listen to the format of the calendar elements showing only hours and minutes if needed.
Next to this, we have added functionality to streamline working with the same WebUI App from different time zones. This allows each user to see time-related data in their own time, or for a developer to decidegoo to build an application in a specific timezone. As adding timezones is not trivial and requires a good structural setup, we have also created a best practice guide for you, which you can read here.
Features introduced in AIMMS 4.74 (June 2020)
- Scaling linear models in the Math Program Inspector
- ODH-CPLEX Solver Updated to Version 5.0
- WebUI Item Actions
- Improved Bubble Chart Widget
- Missing Values and Areas in Line Charts
- Sorting Dates in a Table
- Online Function Reference Used in Help On
Scaling your models can be important in case of numerical instability. Instead of making the scaling factor determination a manual exercise, AIMMS will now do this for you by offering a Scale Model action that is available to developers in the Math Program Inspector (MPI). It can be used to scale linear optimization models and will determine scaling factors for all (symbolic) variables and constraints. Results can be viewed in the Scaling Factors tab, and the Resolve action allows you to resolve the model using the new scaling factors to see the impact (inside the MPI tool). If you like what you see, you can decide to incorporate the scaling factors into your original model (no changes are made to your model). This part is not automated as developers may have their own preferences on how to do this (e.g. by using units, or by explicitly adding the scaling factors). The example below shows the Matrix View of the original model on the left side and of the scaled model on the right side. Scaling the model resulted in a significant decrease in the maximum constraint violation, and in a large decrease in the maximum solution value of a variable (in absolute sense).
The solver ODH-CPLEX 5.0 is now available in AIMMS. It uses CPLEX 12.10 underneath, whereas the previous version (4.0) used CPLEX 12.8. The new options for ODH-CPLEX 5.0 stem from the CPLEX part. Also, for some MIP cases, the results obtained by ODH-CPLEX 4.0 were not deterministic. With the new version, they are.
The Item Actions, which were already an experimental feature in AIMMS 4.73 for the table, are now an official feature in AIMMS 4.74 and available for all data and chart widgets. It allows you to pull up a context menu in all kinds of widget types for specific element values; ideal to e.g. allow specific actions on a cell, or add actions to a node or arc in a Map (e.g. activate/de-activate a depot, or pop up a dialog with additional details for a particular transport arc). For all the details, please refer to the documentation.
There have been some improvements to the Bubble chart widget. The formula for calculating the bubble sizes was updated and improved. Sizes are calculated based on the area, just like in the Map widget. Also, we added a maximum reference size for the user to set, to have more influence on the final size of the bubbles.
The Line chart widget now offers the option to show the area under the line chart. What’s more, missing values (so-called NULLs) are now no longer displayed. In previous versions, they were displayed as zero-valued points in the lines, which was not a correct representation. In addition, you can now select a line chart to show the areas underneath the lines.
The sorting algorithm in the Table widget has been adjusted such that values that are based on an underlying AIMMS calendar are sorted on actual dates (and not alphabetically). Up to 4.73 this could lead to, for example, August 1 preceding July 1. There is no change needed by the developers.
The ‘Help on…’ feature in the AIMMS IDE (select a function and hit Right Click) now takes you to the online version of the AIMMS Function Reference. Previously, the included .pdf document was opened. By using the online version, you can be assured that you are always pointed to the most up-to-date information. BTW, the complete function reference is available here.
Features introduced in AIMMS 4.73 (April 2020)
- Many New Features in the WebUI Map Widget
- WebUI Upon Change Procedures through Annotations Mechanism
In this AIMMS 4.73 Release, the Map widget in the WebUI has been the main point of focus. We created some exciting new features, making this widget even more versatile than it was before. Here is the complete list of the additions and changes:
- We have upgraded the framework that we use internally for the Map widget to Leaflet JS. This upgrade allows for better support and the ability to develop more features including many of the ones below.
- The Map widget now offers a so-called ‘Heatmap’. For a set of coordinates on your map, you can specify a ‘heat value’. Based on these values, a gradual coloring is applied between the points represented by the coordinates. This feature gives immediate visual cues about the data presented in your map.
- The map tiles will be served from Omniscale when the application is running on localhost (app developer, or on local PRO) and when the application is deployed on the PRO cloud. If customers have deployed the application on-premise using a different domain the tile server will roll back to OpenStreetMaps. Omniscale is available only for the upgraded map version.
- If you already use services from Google Maps, it is possible to override the default map provider in AIMMS with Google Maps. This way, the Map widget will display the content provided with Google Maps.
- We have introduced Item Actions on the nodes and arcs of the Map widget as an experimental feature. For details, please see the documentation.
- We extended the possibility to use the store focus mechanism to include arcs (both source and destination). This means that you can, upon selection of a node and/or arc in the Map widget, ensure element parameters will be set. These changed values can be used to e.g. show sliced data around the Map widget or trigger other data to be adjusted.
- You can now add annotations to arcs in your Map widgets in a straightforward way. This provides flexibility in selectively styling the arcs, to give even clearer visual cues to your application users and reducing the need to start using custom CSS.
- Arcs are now drawn in a clockwise manner: arcs drawn from left to right (west to east, north to south) will curve towards the top, and right to left (east to west, south to north) will curve towards the bottom. This is due to the new framework, but also offers the benefit that bi-directional arcs no longer overlap.
- The labels displayed on the arcs also look crisper compared to earlier versions of the Map widget.
- Both the nodes and arcs can now be provided with a custom HTML tooltip, specified – similar to e.g. the bar chart – through the AIMMS model. This greatly enhances the possibilities to add context to data when hovering specific nodes or arcs.
- In previous versions of the Map widget, the nodes were always displayed by a colored circle. Now we made it possible to display an icon in your nodes. The icons are specified in the AIMMS model, making this as flexible as possible, from a ‘one icon-fits-all’ approach to assigning each node a different icon.
- App developers can now control the order of the nodes drawn based on the node-set order. Important: The first node-set will be drawn over the other node-sets if there are overlapping nodes.
- We introduced a Maximum Reference Size, which offers you more flexibility in sizing the nodes on your map. Instead of an automatic size calculation, relative to the size of the biggest node, you can now specify a size yourself to base this calculation on. This is specifically handy in case you have multiple node sets and you want them all in similar size, or you care about controlling node size.
- We have changed the node sizing formula. The sizes of nodes for a node-set are relative to their surface area, whereas earlier they used to be based on the radius in pixels. This assures that relative size is visually correct (a demand node of say 50 will be twice as small in area as a demand node of 100).
- As node display is based on relative size, we removed the display of nodes with size 0 as that conflicts with what is expected. If it is important to display nodes of size 0, one has to adjust for it via additional node sets.
Should you wish to not use these new features already, you can do this by checking the “ignore the map upgrade” checkbox in the experimental features dialog (reachable by CTRL+SHIFT+. and then clicking the ‘crossed hammers’ icon in the WebUI menu bar). Please be aware that any new features in upcoming AIMMS releases will be developed for the upgraded map only.
Now you can specify your Upon Change procedures for the WebUI through the AIMMS annotations widget. Previously, you had to do this with AIMMS procedures using a specific naming convention, potentially leading to unexpected problems when renaming identifiers.
Features introduced in AIMMS 4.72 (March 2020)
- New List Widget in WebUI
- CPOptimizer 12.10
- New R Packages For AIMMS Cloud
- WebUI State Support
- Experimental Features in WebUI
In this release we introduce the new List Widget as an experimental feature. The idea of this widget is that you can generate a list of (grouped) items to e.g. build up a set of Tasks, develop a custom Legend, or find other means (I am sure you can think of other ways to use this). All items can be made interactive by associating them with AIMMS procedures (upon click). Like other workflow items, such as Status Bar and Page Actions, the List Widget items are generated via the model and can thus by super dynamic and change upon the status of the application or data, user, etc. See also our earlier discussion at the AIMMS Community. For details on the widget itself, please see the documentation.
We have upgraded our Constraint Programming solver to the latest available version 12.10, which should bring performance benefits in specific cases.
We extended the packages for R on the AIMMS Cloud with the “Caret” package (short for Classification And REgression Training). It is a set of functions that attempt to streamline the process for creating predictive models and contains tools for: data splitting, pre-processing, feature selection, model tuning using resampling, and variable importance estimation.
We are introducing the CurrentPageID for WebUI feature so modelers can benefit from the location (i.e. current page/browser tab) of the user of the application and adjust e.g. the workflow accordingly or run specific validation routines. Initially, this will also be offered as an Experimental Feature so we can get feedback on the behavior. For more information see the documentation.
Activating Experimental Features can be done by hitting the 3-key combination “CTRL-SHIFT-.” in your WebUI app; at this moment, a new icon appears on top to show a dialog to manage your Experimental Features. It is good to be aware that we release new features this way more often as it allows us to release faster to the public and collect feedback, while still having an option to structurally correct features in case the feedback we receive requires this. Hence, the status of an Experimental Feature is less formal and users should be aware of this (it does not fall under our SLS). We try to upgrade Experimental Features to standard features as soon as possible. In particular cases, it does happen that Experimental Features will not make it to the a formal release in the end.
Features introduced in AIMMS 4.71 (January 2020)
- Better Way of Handling Flags, Tooltips and Annotations
- Convenient Excel Functions to Determine Data Ranges
- Option to Disable Implicit Database Table Mapping
- Inspect Stochastic Models in The Math Program Inspector (MPI)
The existing methods of adding Flags, Tooltips, Annotations and Text annotations have been deprecated. The new way of doing it, using the annotation section in the identifier attributes, is a more elegant way and will make the model more flexible with respect to choosing which identifiers should be the annotations (and name those to your liking). In addition, it will make it clear inside an identifier declaration which annotations exist for it. We ask you to convert your model to the new way of defining annotations as soon as possible (at this point warnings are generated in case you use the old-style annotations).
The Excel Library has been extended with 4 new functions, which make it far easier to determine the range on a sheet that contains cell data. The functions FirstUsedRowNumber, LastUsedRowNumber, FirstUsedColumnNumber and LastUsedColumnNumber can be called to check, for example, which is the first column in the sheet which contains data. In combination with AIMMS’s functions to convert column numbers into names, this offers a powerful mechanism to dynamically determine data ranges.
There is a new property called ‘No Implicit Mapping’ added to the Database Table. When executing a read or write statement on the table, implicit mapping occurs by comparing the column names in the table which are not already bound by the explicit mapping with identifier names in the model. This is not always the desired behavior and can lead to surprises in specific cases, so now this implicit mapping can be turned off.
The Math Program Inspector has been adjusted to use the GMP interface to communicate with the underlying models. This change, next to having an improved code base, also now allows users to inspect stochastic programming models (math programs generated with the function GMP::Instance::GenerateStochasticProgram) using the MPI.
Features introduced in AIMMS 4.70 (December 2019)
Announced previously in Product Owner updates and shared via our Community already in a pre-release, AIMMS now offers the ability to compile content for the status bar (bottom bar of your WebUI App).
The content can be based on the behavior or status of the Application that you believe is important to continuously share with your users. Here, you can think of adding items like current data, recent solution details, or general KPIs. Some additional ideas are provided in our design system here and a concrete example is shown below. The status items can, next to headers, text, icon, color and tooltip, also contain a link to a procedure allowing you to generate an activity such as running a procedure that opens a DialogPage (e.g. to show much more details of a solution). Many more use case can be thought of (we love to see yours!). For more details on the setup and usage, please check out the AIMMS WebUI Manual. The Status Bar will be offered via the Experimental Feature tab at this point in time.
We added new aggregator types to the WebUI widgets. For example, you can now distinguish between aggregators for the total data covered by a widget, or for only the data currently displayed. For details, see the documentation.
Next to these features and all the items mentioned in the release notes for AIMMS 4.70, we did a lot of work ‘under the hood’ of the AIMMS WebUI, to lay a strong foundation for the future.
Features introduced in AIMMS 4.69 (September 2019)
- Showing/Hiding CSV Downloads in WebUI Tables
- WebUI Cog Wheel Inside Small Widgets
- Widget Actions for Scalar, Legend and Slider widgets
- Offline Support for RepositoryLibraries
AIMMS now offers the possibility to include your versions of the repository libraries when exporting your model to a .aimmspack file. Using this feature, you can make sure that your model is fully compatible with the set of libraries that it uses. Furthermore, if the model will be deployed on a machine with restricted network access (such that it cannot download any repository libraries), it can still work as you intended.
The Widget Actions feature has now also been applied to the Scalar, the Legend and Slider Widgets.
We have changed the position of the widget cog wheel for some smaller widgets (such as button, label, upload, download and selection box). It is now displayed inside the widget, upon hovering it, making overlap situations a thing of the past.
The button which allows your app users to download the contents of a Table widget as a .csv file, can now also be hidden by the app developer.
Features introduced in AIMMS 4.68 (July 2019)
- Page Actions in WebUI
- Name Change Support in the WebUI
- Page Leave Procedure for WebUI
- SetProgressMessage Function for WebUI
- Experimental Feature: Workflow Support in WebUI
We added Page Actions to the WebUI, which help your users to get quick access to actions that are needed often, while at the same time reducing unnecessary clutter on their WebUI pages. For more details, see the documentation.
In previous versions of AIMMS, the WebUI was not automatically updated when you made name changes in AIMMS identifiers. From 4.68 onwards, these are propagated to the WebUI as well.
Next to the existing ‘Action Upon Load’, the WebUI now also offers an ‘Action Upon Leave’ for each page. Using this feature, you can specify a procedure which is automatically executed upon leaving the page. It also features a mechanism to perform checks and return a status code, determining whether the page may indeed be left, or something still needs to be done by the user in order to leave it. For more details, see the documentation.
AIMMS has been extended with a procedure ‘webui::SetProgressMessage’ which allows you to replace the text of the ‘busy’ message in the WebUI with something more suitable to your specific situation. You can update/change this message multiple times during execution. For details, see the documentation.
We are working on the Workflow Panel feature in the WebUI. This allows you to define clear workflows which guide your users through your application. It comes with a clear overview of these workflows, including the status of the steps that the user needs to do to get a specific task done. For a detailed description of the feature, see the documentation. Currently, we have pre-released this feature to a small group of customers who requested access to it to become alpha-testers. If you are interested in trying out this feature as well, please contact AIMMS support.
Features introduced in AIMMS 4.67 (May 2019)
In this release, we have made the following of improvements to the Gantt Chart widget of the WebUI:
- It is now also possible to change only the start date of a job by a single drag action on the left side of a bar. Previously, this was possible, but it required you to first drag the whole bar to the desired start position, and then to re-adjust the end date to what it was before.
- Two new options have been introduced: Minimum Resource Height and Maximum Resource Height. With these, you can set the minimum and the maximum height of the bars in the Gantt chart. If the values that you provide lead to rows of bars falling out of the widget area, a vertical scroll bar will automatically appear.
For more details, see the documentation.
We made a fundamental change in the storage of WebUI pages and widgets. Where each page and widget was previously stored in a separate folder, currently the entire application including *all pages and widgets* is stored in a single webui.json file. When opening your application in the IDE, the webui.json file will be automatically generated from your existing setup. During the conversion, only pages and their associated widgets that are actually referenced in the WebUI page manager will be included in the webui.json file. The conversion will *not* delete the contents of the existing pages, widgets and application folders on disk, allowing you to still use older AIMMS versions, which depend on the old format. If you make changes to the WebUI using older AIMMS versions, you can delete the webui.json file, in which case it will be automatically re-generated. Changes made with AIMMS 4.67 and higher will never be visible in older AIMMS versions.
If you are using version control on your WebUI project, please make sure to add the new webui.json file, and delete the pages, widgets and application folders from version control when you don’t plan to use the project with AIMMS version 4.66 and lower any longer. The new format as a true json file will make the structure of the webui directly clear, allowing you to resolve merge conflicts in the WebUI much easier. It also makes searching where widgets are used in your WebUI application straightforward.
When deleting pages and widgets in the WebUI, these will now be deleted from the webui.json file immediately, solving the issue where deleted pages and widgets were kept on disk making it unclear which pages and widgets were actually used and which were not. The immediate removal from the webui.json file will prevent you from reverting page and widget deletions from within the WebUI. Using version control, however, you can easily revert such deletions directly on the webui.json file on disk.
If you plan to publish your existing AIMMS app(s) using AIMMS 4.67, you first need to re-export your model using AIMMS 4.67. This step creates the expected webui.json file. If you omit this step, you will get an error message upon publishing.
Next to the direct user benefits, this change will enable us to make architectural and performance improvements in future AIMMS versions.
Features introduced in AIMMS 4.66 (May 2019)
The WebUI has been extended with the possibility to add so-called widget actions to your widgets. Using these, you can add menu’s to individual widgets. The menu options can be linked to procedures in your underlying AIMMS model, allowing you a lot of flexibility in context-related actions. For more details, see the documentation.
A number of solver upgrades were introduced in AIMMS 4.66:
- CP Optimizer 12.9 has been added. CP Optimizer 12.9 is only available for 64-bit Windows (VS2017) and Linux.
- Gurobi 8.1 has been upgraded to version 8.1.1.
- BARON 19 has been added. BARON 19 is only available for 64-bit Windows (VS2017).
Features introduced in AIMMS 4.65 (April 2019)
The WebUI has been extended with the possibility to create Dialog Pages. These act like dialogs in, for example, Windows. You can choose between three sizes for such pages and define buttons on it, next to the widgets that you want to show. For more details, see the documentation.
Next to the Dialog Pages as described above, AIMMS now offers three pre-defined functions to open either Pages, Side Panels or external URLS from within your model. For details, see the documentation.
Features introduced in AIMMS 4.64 (February 2019)
In the WebUI, you can now also add Side Panels to your pages. Side Panels allow you to put ‘controlling’ widgets to a panel on the right side of the screen, which can be opened and closed. This gives you the benefit of not having to clutter your pages with all kinds of selection widgets, allowing your users to focus better on the widgets that present your data. For more details, see the documentation.
In this release the implementation of the error handling system as described in the Language Reference, has been rebuilt. This has been done because the previous implementation had some problems that sometimes resulted in errors or warnings not being presented to the user. Although in most situations the new error handling works exactly the same, you might notice some differences in how errors or warnings are handled. If you think that this handling is incorrect, please let us know. Known changes/bugfixes:
- An error in constraint evaluations during a solve did not stop the execution.
- An Assertion with a specified Action attribute that does not contain a Halt statement, triggered a Halt anyway. This implicit Halt should only occur when the Action attribute is empty.
- Changes in the legacy function handling (see Language Reference 8.4.3). The described options intrinsice_procedure_error_handling and external_procedure_error_handling now only have an effect on the errors for which the procedure sets the CurrentErrorMessage. If the procedure (also) uses the more modern style of raising warnings and errors then these raised warnings and errors will just be handled like any other warning or error that is raised during execution.
- If a new error is raised during the handling of warnings and errors in a local error handler (like in the OnError clause of the Block statement, or inside the global_erroror_handler procedure) then the handling of the remaining warnings and errors is skipped and these warnings and errors are marked as handled.
- If an external procedure (like for example the axll:: spreadsheet procedures) only raises warnings, these warnings are now correctly reported. In previous AIMMS versions these warnings sometimes just disappeared.
- The WebUI now only displays errors and warnings that are not handled by any local or global error handler. Besides that, the various warning control options (like ‘communicate warnings to end users’) now also have an effect on the warnings shown in the WebUI. In general, this change will lead to a lot less warnings being displayed.
Features introduced in AIMMS 4.63 (February 2019)
We have implemented an authority mechanism, which allows you to fully control which of your model identifiers will be readable, writable or executable in your WebUI app. For all details on what is possible, please refer to the documentation.
Under the hood, we have done a lot of work on the WebUI code in this version. This should help us in our goal to make the WebUI more robust. Functionally, there should not be any difference. In terms of performance you may experience a slight gain in specific scenarios.
Features introduced in AIMMS 4.62 (January 2019)
- HTML Tooltips for WebUI Scalar and Table Widgets
- Better Visual Support for Dragging in WebUI Gantt Chart Widget
- Now/Today Indicators in WebUI Gantt Chart Widget
- Expanding Indices in WebUI
The Scalar widget and the Table widget now support custom HTML tooltips. The user can override the default tooltip on these widgets using a ‘_Tooltips’ suffix on identifiers, as usual. This gives you a lot of creative freedom to present your tooltips exactly as you want. For example, HTML-tables could be included or even images to pass context-sensitive information to your users.
The Gantt chart now has support lines/backdrop or indicators when a job is being dragged or resized. This will be a default feature for the Gantt chart. When you drag or resize a job, there will be a background that helps the user drag the job with reference to other jobs. This makes it easier for the user to either line up jobs from different tasks/resources, or schedule jobs one after the other.
The Gantt chart now offers an indication using Today and Now lines, that helps the user identify the exact day and time on the Gantt chart. In combination with the previous feature, this really enhances the usability of the Gantt chart widget.
In addition to the identifier slicing that is common through all of AIMMS and the WebUI, you can now also expand indices in the WebUI. So, in addition to slicing an index to (for example) a subset, you can now also expand it to a SUPERset. This allows you to match indexes of different identifiers displayed in the same widget. For example, you can make the displaying of related identifiers in a Table much more concise and intuitive. For details and examples, please refer to the documentation.
Features introduced in AIMMS 4.61 (November 2018)
The Map widget has undergone a major overhaul. Now it is possible to use multiple arc sets and multiple node sets, you can hide the labels on the arcs or display the arcs as straight lines instead of curved ones. When creating a new map widget, you will automatically get the new version. Existing Map widgets in your apps will remain the old style. In order to use the new functionality, you should redo the existing maps. For details on how to set up a new Map widget and all the possibilities with it, please refer to the documentation.
Features introduced in AIMMS 4.60 (October 2018)
- Find All and Bookmark Functionality in AIMMS IDE
- Store Focus In Bar Chart and Line Chart Widgets
- Improved Gantt Chart Hovering
The AIMMS IDE has been extended with Find All functionality and with a mechanism to set bookmarks.
With the Find All button/menu item, you can enter a search term, for which AIMMS will list all occurrences. The difference with the existing Find functionality is, that the latter only allows you to move from one found occurrence to the next, without keeping the total overview. There are two possible output windows into which you can send the Find All results and it is possible to limit the number of occurrences displayed.
Using the Bookmark mechanism, it is possible to mark specific lines in your code for later reference. You can also define categories for your bookmarks. This allows you to quickly move to important parts of your model during development. The bookmarks/categories are being saved with your model, such that you can refer to them at a later stage as well. Of course you can delete them too if you do not need them anymore.
The Bar Chart and the Line Chart widgets now also support Store Focus functionality, allowing you to associate element parameters with the bar/dot that the user currently selects. This provides flexibility in presenting master/detail views of your data.
When hovering over or selecting a job in a Gantt Chart widget, now the selected job is made more prominent by desaturating the other jobs and by lowering their opacity.
AIMMS Email Client Library
AIMMS has been extended with a library which you can use to send email directly from your AIMMS application. This way, you can for example send the results of your optimization model to other users in your organization. The library consists of a number of functions that you can use to set up your email message, to add attachments to it if needed, and to send it. For details on the functions contained in the library and an example, please see the documentation.
The AIMMS Email Client Library is available from the AIMMS Library Repository within the Library Manager in the AIMMS IDE.
Features introduced in AIMMS 4.59 (September 2018)
We are introducing a new default theme in AIMMS WebUI as we felt the current default was not up to par and typically needed rework while we prefer to give you an out of the box great experience. The new default Theme is part of the UX 2.0 project referred to before, and should allow you to build nice looking Apps from the moment you start. Together with the new Action Menu as well as the new Navigation on top of each App, it also provides you with a clear and uniform look and feel, and help users work more naturally through Apps and have the ability to focus on what is important.
Of course there are still ways to tune this style, but we certainly hope that is limited to a few small things. We are making a some options directly available for you such as: adding an App Icon (or company logo), changing the color of the separation line between Navigation and page (e.g. in your core house style color), and possibly even the background color of the main screen. We suggest to leave other items alone as much as possible as that assures better upgrade compatibility when changes in the technology and style occur.
Also, we are not done yet. The focus of our current theme has been on the general look-and-feel, improving the settings and manager panels; a next step will be to look at the coloring inside the widgets. So please stay tuned and we are looking forward to improving AIMMS step by step so you can work with more joy and ease towards bringing value to end users.
We recognize that some of our customers created full or partial custom themes via Application Specific Resources and we have therefore added the options to keep these projects run in the ‘Classic Theme’ by an application setting. If you are ready to upgrade, you can set the switch to the new theme and see how it works for your customization (and you will notice you have to make some adaptions). You can also decide to remove all your customization and start from scratch using our new default theme. In any case, we love to hear from you if you do; be sure to ask for support as these things will take some time. New Apps will start with the new theme from scratch as the default (and only) option.
The Barchart and the Linechart widget now offer the possibility to specify a minimum bound, a maximum bound and the step size for the Y-axis. This allows you to provide the end-user of your WebUI apps with more focus on specific parts of your data.
When hovering over elements in the chart widgets in the WebUI, the hovered over item in a Bar, Line, Pie and Treemap chart is now displayed more prominently (other elements get lighter) such that you can better understand what you are looking at. In addition, you can also select the specific element and all other items fade even more to the background (see picture below). The latter is a precursor to having store focus support in all chart widgets.
Features introduced in AIMMS 4.58 (August 2018)
The Gantt chart widget in the AIMMS WebUI has been extended with the possibility to show text inside the associated bars. The text can be used to display additional information for each bar, allowing the user to have a direct overview of the data that they need. To show text in the bars, the app developer needs to add an
_text annotation identifier with the same index domain as the duration identifier. The data of the new identifier will then be displayed in the bars. For more details, please read our documentation on the Gantt Chart.
In previous versions of AIMMS, it was hard to see how or whether Table widgets were sorted. From AIMMS 4.58 onwards, this has changed. If a column or a row is sorted, this is now clearly visible by a sorting indicator. Also, there is a new and clear dialog from which to set your sorting.
Features introduced in AIMMS 4.57 (July 2018)
- Full Control Over Integer Sets
- Extra Arguments for UponChange Procedures
- Delete and Backspace in the Table widget
- HTML in WebUI Tooltips
For each subset of Integers you can now specify either of the two properties ‘ElementsAreNumerical’ or ‘ElementsAreLabels’ to have full control on how elements of these sets behave in an expression. See the Language Reference or our tech blog for more information on this.
The UponChange procedures for the WebUI have been extended with 2 arguments. Until now, the mechanism basically just told you that a specific identifier had changed, but there was no information available about which specific tuples had changed or what the old values were. Now this information is available for you.
The delete and backspace keys can now be used in the Table widget to quickly delete the present value (the delete key), or to delete it and immediately open the cell editor (the backspace key).
The _Tooltips identifier that you can use to override the default tooltip of the WebUI widgets now accepts HTML formatting as well.
Features introduced in AIMMS 4.56 (July 2018)
The WebUI now has a ‘health check’ facility. Should you run into a ‘Data Session Lost’ situation in your app, the WebUI will, after a few seconds, automatically perform some connectivity checks. When this is done, it offers you the possibility to download a small report to your local machine. If the problem persists, you can provide this report to AIMMS support for analysis, which will provide us with more insight into the problem.
The identifier columns/rows in the Table widget now display the set name(s) of the identifier(s) which are in the table. This makes it easier to understand what the tuples are about. Please be aware that this does not work yet for sets which are defined in libraries.
Features introduced in AIMMS 4.54 (June 2018)
Up until AIMMS 4.54, editing values in the WebUI Table Widget could be a slow process. With this new release, this has been made very fast, allowing you to do your data editing work more efficiently.
Features introduced in AIMMS 4.53 (April 2018)
Introduction This year, we started a new user experience improvement project called UX 2.0 to drastically improve the usability of AIMMS applications. To get to the right design and user experience, we uphold 3 key principles:
- We want to Democratize Prescriptive Analytics, making it easier to onboard new users
- We want to Reduce Time-To-Value, the ability to gain faster and better insights
- We want to Tame the Chaos, a clear and focused experience in all Apps
One such improvement is our roll out of a new Navigation Menu. This menu should help users find their way around AIMMS Apps and get a general overview much more easily. As this new menu will become the new default, your existing Apps will change automatically.
The menu supports up to a maximum of six columns on one row (width 1024). AIMMS recommends using no more than that, but the menu does support it if needed by introducing a second row; even adding a 7th column if possible due to wider screen usage. The menu supports up to 10 menu items and five levels of hierarchy. However, AIMMS recommends using no more than three giving you a theoretical 600 pages (6x10x10). If more are needed it could be wise to reconsider the app architecture.
AIMMS CDM (Collaborative Data Management)
AIMMS has been designed to allow AIMMS modelers to create decision-support Apps for their end-users. Prescriptive decision-support apps implemented with AIMMS typically recommend one or more possible courses of action. Being able to play with the input data of the model and observe the consequences on the actions suggested by the model, is essential for the end-users to gain confidence in the solution(s) presented. Because user changes can occur throughout the App before being committed, creating multi-user Apps with the current database and case functionality in AIMMS is very tough to accomplish.
CDM implements version control on AIMMS model data, very similar to the functionality offered by modern version control systems such as git. It offers a version control repository for AIMMS data within a regular relational database, with all data being stored in a tree of branches (or revision sequences). This allows you to effectively collaborate with other users and review each other’s changes. CDM enables you to:
- Check out the data snapshot in a particular revision
- Commit, pull, revert, and select change sets
- Create and merge branches
- Resolve merge conflicts
On top of that, CDM offers the capability to automatically commit and pull changes. All of these functionalities combined, allow AIMMS modelers to create versatile multi-user work flows for decision-support apps that are suitable for a range of use cases:
- For operational decision support apps operating on a single data set, CDM supports a concurrent editing work flow, where end-users will be able to view other users’ changes as soon as they are committed.
- For tactical and strategic apps, end-users can work independently on one or more scenarios, represented as branches in the CDM repository.
Features introduced in AIMMS 4.50 (February 2017)
- New Method for Annotations in WebUI
- Dynamic Arc Widths in the WebUI Map Widget
- Reverse Link Support in the WebUI Map Widget
To add annotations to your WebUI, it is no longer needed to create an ‘_annotations’ suffix to the relevant model identifiers. Instead, you can use the annotations attribute of them now and specify a ‘webui::AnnotationsIdentifier’ annotations attribute. An advantage of this new method is that if you rename the original identifier, you do not run into the problem that the _annotations identifier is not renamed accordingly. Of course, it is also much ‘cleaner’ to not rely on naming of your identifiers in order to trigger specific functionality. For more details, see this page in the WebUI manual. This also means that you can now annotate the nodes in your Map widgets, by specifying an annotation on the set that defines the nodes.
The arcs in a WebUI Map widget can now dynamically show the relative sizes of the flows they represent by drawing the arcs thinner or fatter. By default, this option is turned off, in order to have backward compatibility in your apps. In the Miscellaneous tab of the Map options editor, you can switch it on.
Like a number of other widgets, the WebUI Map widget now also supports reverse links. This means that if you click on a node somewhere in your map, you can automatically fill an element parameter which then holds the element corresponding to the selected node. This allows for all kinds of interactivity in your app.
Features introduced in AIMMS 4.47 (January 2017)
CPLEX 12.8 has been added to AIMMS. It comes with performance improvements for MIP problems.
The options editors are now more limited to PRO users of your WebUI apps. This means that they only see/can change the relevant options for widgets in PRO mode, or the options editors will not show at all if no relevant options can be set by the end-user.
Features introduced in AIMMS 4.46 (December 2017)
- New ODH-CPLEX Solver
- CONOPT 4.0
- New Element Text Mechanism
- Page Jumps Using WebUI Button
- Hiding Options From End-Users in WebUI
AIMMS now offers ODH-CPLEX, which is a new solver designed to run on modern multiprocessor machines. Many cores are exploited by the ODH-CPLEX engine by breaking complex models and difficult MIPs into sub-models and solving them into parallel threads. ODH-CPLEX combines this new algorithm with CPLEX specifically to find solutions for difficult and/or massive MIP models. ODH-CPLEX is designed for scheduling problems but works for any MIP which has a reasonable number of integer feasible solutions. It has been deployed effectively on packing problems, supply chain and telecoms as well as scheduling applications. On large scale MIPs it provides good solutions and optimality measures that are often beyond the reach of traditional optimization methods.
CONPOPT 4.0 has been added to AIMMS. It comes with performance improvements for large nonlinear models. CONOPT 4.0 is less likely to end up in a locally infeasible solution.
We introduced a new, more elegant, way to add element text to your WebUI. This used to be done by specifying a .js file. Now it’s done from within the AIMMS model and it allows you to replace element names with any alternative text that you like. Furthermore, it includes an inheritance mechanism between sets and subsets, for even more flexibility.
The WebUI Button widget can now, apart from executing procedures, also be used to jump to another WebUI page or to an external web page.
Using the UI Editable application option now disallows end-users to open the options editors of the widgets in your WebUI app. Furthermore, on touch devices, it is now also possible to hide the options editors for your end-users.
Features introduced in AIMMS 4.45 (November 2017)
Until now, when not explicitly using the AllPublicIdentifiers set, you had to restart your AIMMS model every time you added a new identifier which you wanted to use in your WebUI, slowing down your development process. From this version onwards, when developing your WebUI, all accessible identifiers are immediately selectable in the WebUI, even if they are not part of the AllPublicIdentifiers set. When running the resulting WebUI on PRO, however, the AllPublicIdentifiers set is still respected when the end-user tries to change the content of a widget, thus keeping the protection advantage of using this set.
The Page Manager is now also available when running your WebUI app on PRO. With it, end-users of your WebUI apps can more easily navigate the pages in their app and get an overview of the current page tree. The existing horizontal page menu can also still be used. There are new project options to specify which of these you want to offer to your end-users. It is also possible to use both at the same time, or to make sure that the Page Manager is already open upon starting up your WebUI.
A library repository browser is added to the Library Manager that will allow AIMMS to make extra libraries available that can easily be included in projects. Note that libraries with a version number starting with 0 are for internal testing and should not be used it in any serious project.
The AIMMS DataLink library was added. This is a library that allows different types of data sources to read and write data from and into AIMMS, using a common interface. For more information, please see the documentation.
Features introduced in AIMMS 4.44 (October 2017)
From this version onwards, you can add an extra 1-dimensional parameter to the Contents of your Map widget. In this parameter, you specify the size for each node on the map. The bigger the size, the bigger the resulting blue disc on the node (though there is a maximum node size). It is also possible to use negative node sizes, for example to provide profit/loss info per node; these are rendered in red.
Features introduced in AIMMS 4.40 (September 2017)
We have created a new Page Manager, that will allow you to better manage your WebUI Page Tree. This new Page Manager allows you to easily add, rename, restructure and delete pages. Furthermore, you can let AIMMS identifiers specify the visibility of a page for your end-users. For details, please read our manual. To be able to use AIMMS 4.40, your project needs to be converted such that the new Page Manager can be used. Please create a backup of your project before you convert it. After conversion, your project is no longer compatible with older AIMMS versions! Please note that you will get a warning before your project is converted.
After conversion of your project, a Page Menu will be displayed in your project. The Page Menu is based on all the pages in your Page Manager and uses the same tree structure. The visibility of a page determines whether the page shows up in the menu or not. By using AIMMS identifiers for the visibility, you can dynamically change the Page Menu. For details, please read our manual.
In the new Page Manager, you can also create so-called Wizards. A Wizard is a series of pages that a user should follow in a certain order. In the Wizard Editor, you can indicate which pages belong to the wizard and in which order they should be visited. Furthermore, next to the Page Procedure that every page can have, you can specify a start and end procedure for each page in the wizard. You can select these procedures in the Wizard Editor that is accessible from within the Page Manager. It allows you to e.g. disallow a user to go to the next page when the user has not yet filled in all the required data.
Multi-line Scalar Support
The Scalar Widget has been extended with an option called ‘Enable Multi-Line’. When set to 1, string values are displayed in multi-line mode, allowing the user to enter long strings, like e.g. a description. For details, please read our manual.
When creating a new WebUI project, the PRO and WebUI libraries are now automatically added to your project. The default UI will be WebUI, unless you choose for WinUI. If you still want to use WinUI pages, you should set the DefaultUI option to WinUI and you can still use WebUI next to WinUI. Furthermore, your WebUI home page in the browser is now accessible more easily, as we have added a WebUI menu to the AIMMS toolbar and extended the Tools – WebUI menu with all the supported browsers.
Features introduced in AIMMS 4.38 (July 2017)
The set of widget types in the AIMMS WebUI has been extended with the Slider widget. With this Slider widget, you can change the value of a scalar identifier by dragging a slider handle to the left or right. You can specify a min, max and step size value for this widget type. For details, please read our manual.
Features introduced in AIMMS 4.37 (June 2017)
The Identifier Settings tab that can be found in most of the WebUI widget option editors, has been extended with a Slicing feature. On this tab, you can specify whether you want to slice the data that is displayed in the widget. Per identifier, you can slice one or more dimensions (indices) to either a subset, an element parameter value, or a fixed element. This allows you to easily show part of your data in a widget. E.g. you could create a selection-box that displays an element parameter and a table that shows data that is sliced to that element parameter. For details, please read our manual.
Features introduced in AIMMS 4.36 (June 2017)
- Keyboard Navigation in WebUI Table widget
- ‘Reverse Link’ Functionality Available in WebUI Table Widget
The Table widget now offers the possibility to navigate it with the keyboard too. There is always a cell which has the focus in a table. You can use the arrow keys to navigate this focus cell around. You can start editing ‘normal’ cells immediately, by starting to type. Dropdown cells can be opened by either pressing [ENTER] or [ALT-ARROW DOWN]. Checkboxes can be set to their two values by typing ‘0’, ‘1’, or [SPACE] to toggle the present value.
The Table widget now has the ‘Reverse Link’ functionality in place (as you may know from the WinUI). With this, you can specify which element parameters should be updated automatically when the focus cell of the Table widget changes (it does not work the other way around, though). It can be set on the ‘Store Focus’ tab on the Table widget options editor.
Some Background on Possible Differences in Errors and Warnings
Since the second half of 2016, we started a process in which the compiler of AIMMS, that is responsible for compiling all the identifier attributes, is gradually being replaced by a completely new implementation that is better prepared for the (also new) execution engine that is capable of running expressions in parallel using multiple threads. We try to keep this replacement as smooth as possible, such that the developer hardly notices that things have been changed. However, in one specific area the differences are noticeable and that is in the warning and error messages that are generated. The possible differences are:
- The text of the error or warning messages is different;
- The handling of warnings might be handled by other options (example ‘warning_explicit_element_not_in_set’); and
- The new compiler might be more strict on the syntax as it is defined in the Language Reference.
It will take some time before the new compiler and new engine can handle all the expressions and constructs that are allowed in AIMMS. During this transition period you can get warnings and errors from either of the two implementations.
Feature introduced in AIMMS 4.34 (April 2017)
In the Table Widget in the WebUI, it did not always feel very fast to edit data values, especially not when having other widgets on the same page, which displayed the same identifier(s) as displayed in the Table widget. Now, by introducing a new internal buffering algorithm, editing data in the Table feels very ‘snappy’.
In the AIMMS 4.33 release, no new features have been introduced. There was a technical reason to increase the version number instead.
Features introduced in AIMMS 4.32 (February 2017)
In the WebUI, there is a new option for all widgets, with which you can control the sparsity domain of the identfier(s) displayed in the widgets. This means that you now have full control over which values will be displayed or hidden in your widgets. You can use this, for example, to force the displaying of rows/columns in a Table which only contain default values. You can also use it to display slices of your data, or to filter your data. The option which controls this behaviour is called ‘Display Domain’. It can be found on the new ‘Identifier Settings’ options dialog in the widget options editor (see screenshot below). For details on how to use this feature, please see the documentation.
Features introduced in AIMMS 4.31 (January 2017)
Good news for users who cannot use Google Chrome on their system: both Internet Explorer 11 and Microsoft Edge can now be used with the WebUI. Please note that we are still in the beta phase. So, if you find anything not working as expected, please let us know. Furthermore, Google Chrome remains the preferred browser for the AIMMS WebUI, as it performs better than either IE11 or Edge.
CP Optimizer 12.7 has been added, offering significant performance improvements for scheduling problems. Note: CP Optimizer 12.7 is not available for 32 bits Windows.
Feature introduced in AIMMS 4.30 (December 2016)
CPLEX 12.7 is now available. CPLEX 12.7 comes with significant performance improvements for MIP, MIQP, MIQCP, and nonconvex QP and MIQP models. CPLEX 12.7 features a Benders decomposition algorithm which can be used to solve linear problems with a decomposable structure, including stochastic programming problems with integer variables in the first stage. For more information, see the new option ‘Benders strategy’. CPLEX 12.7 also offers modeling assistance in the form of warnings regarding performance degradation or numerical stability; this is controlled by the option ‘Data check and modeling assistance’. Note: CPLEX 12.7 is not available for 32 bits Windows.
Features introduced in AIMMS 4.29 (November 2016)
In the Table Widget in the WebUI, it is now possible to resize the columns and the row area by just using the drag handles that appear when you hover over the border between two columns. This allows more flexibility in the way you present your table data to your end-users.
Features introduced in AIMMS 4.28 (November 2016)
We have made improvements in some advanced methods for nonlinear programs. The multistart algorithm has been improved such that it finds good solutions for a wider range of nonlinear models. A detailed description of the new algorithm can be found in the Language Reference. Furthermore, the AIMMS Presolver can now automatically scale a model, and use optimization-based bound tightening to tighten the variable bounds even further.
The responsiveness of the WebUI Table widget when editing data values has been improved significantly.
Features introduced in AIMMS 4.27 (October 2016)
WebUI pages will load faster on average, when switching pages in your application. From this version on, the data structures underlying the web pages that you have already closed are marked as inactive, 30 seconds after closing. That means that when you open a new page, which usually causes the underlying data structures to be updated, these inactive data structures do not have to be updated anymore, which results in a quicker loading time of your newly opened page. This effect is most prominent in applications which use several pages with big AIMMS identifiers. Of course, when the inactive data structures are needed again, they are made active again automatically and updated when needed.
Features introduced in AIMMS 4.26 (October 2016)
The Bubble Chart widget now also offers reverse link functionality. You can specify element parameters which should be filled based upon the currently selected bubble in the chart.. For details on how to use it, see the Bubble Chart documentation.
The AimmsXLLibrary has been updated to include table write functionality and a number of methods to create new workbooks and sheets. The documentation of the AIMMS Excel Library is in the library itself: each function/procedure is documented in its comment field.
Features introduced in AIMMS 4.25 (September 2016)
We have introduced a new widget type in the WebUI: the Bubble Chart. With this chart, you can display up to 3 aspects of your data at once. In a X/Y plane, circles (called ‘bubbles’) are displayed, where the size of the bubbles also depict an aspect of your data. For details on how to use it, see the Bubble Chart documentation.
It is now possible to override the default tooltips of all widgets in the WebUI with your custom strings, allowing you to fine-tune how your users will see the details of the data that you have displayed. To learn how to do this, please see the documentation.
Features introduced in AIMMS 4.24 (August 2016)
- More Stable and Faster Table Widget in WebUI
- Reverse Link Support and Viewport Options in Gantt Chart Widget
In this version of AIMMS, the Table widget in the WebUI has been replaced with a new implementation, which offers more stability and faster operation, even with large datasets. All tables in your WebUI are automatically updated to the new one if you run AIMMS 4.24. However, should you have reasons for keeping the old table, you should use the previous version of AIMMS for that.
The Gantt Chart now supports reverse links (using the Store Focus tab in its options editor) and has new options to specify the visible viewport, allowing to implement scrolling/zooming in your model. For details, see the Gantt Chart documentation.
Features introduced in AIMMS 4.22 (July 2016)
Previously, if you wanted to make sure that the AIMMS PRO users of your WebUI would not change the user interface (by resizing widgets, for example, or by switching widget types), you had to define a special PRO users group, which you had to give a certain pre-defined and hardcoded name. In this AIMMS 4.22 version, this is implemented differently and in a far more flexible way: there is an application options dialog, where you can set the new option called “UI Editable”. The default value is true (or 1), meaning that every user is able to change the UI to his/her liking. If you want to change that, you can set the option to false (or 0). The best thing about this, is that you can also specify an AIMMS identifier as the value for this option. This way, you can use any kind of model logic to determine which users are allowed or forbidden to change the UI.
Features introduced in AIMMS 4.21 (June 2016)
- Time Window and Vertical Drag and Drop in WebUI Gantt Chart Widget.
- Fast Version of the WebUI Table Widget.
Previously, the WebUI’s Gantt Chart widget’s time window was defined by the activities displayed in the chart: the left border of the Gantt Chart was determined by the earliest activity, and the right border was determined by the last activity. As a user, you want to have more control over which part of the data is displayed. For example, if you display a Gantt Chart which covers 2 years of planning data, you may be interested in just the first 3 weeks. This new feature lets you specify the begin date and the end date of this so-called ‘viewport’. These dates determine what part of the Gantt Chart is actually displayed. Since these two values can be specified using AIMMS model identifiers too, they can be used to implement advanced scrolling and/or zooming functionality by the model developer. For more details, see the Documentation on the Gantt Chart.
The current Table widget of the WebUI does its job, but in situations that you need to display a huge amount of data, its performance in terms of speed is not always fully up to the task. In this release, we offer a partial rewrite of the Table widget, called the New Table widget. This New Table widget offers a far better performance than the old one, including smooth scrolling in both directions and sorting. In the current iteration of the widget, it’s still a read-only version though. We are working on getting the New Table to support all the functionality of the existing Table widget (including full editing possibilities). For now, if you only want to display your data (i.e. don’t want users to edit the data), you can simply switch to the New Table widget type from any already existing Table widget (just do a type switch through the options editor).
Features introduced in AIMMS 4.20 (May 2016)
- AIMMS Excel Functions Usable in Server Environments
- Greatly Improved Usability of the WebUI Gantt Chart
The existing AIMMS Excel functions had the important restriction that the environment on which the AIMMS model was executed must have Excel installed. In server environments, such as running your model through a WebUI on PRO, this was a problem. In AIMMS 4.20, the most commonly used Excel functions have been rewritten to use a new library, which doesn’t need Excel to be installed in order to work. This also means that you can use the Excel functions in the Linux version of AIMMS. In order to use the functions, please add the system library ‘AIMMSXLLibrary’ to your model. The functions are documented in the library itself.
The WebUI Gantt Chart has been hauled over quite a bit in AIMMS 4.20. New features include horizontal drag and drop functionality, clear and unambiguous rendering of (partly) overlapping bars, more sensible X-axis labels, detailed tooltips when hovering over the bars and alternating background colors. For more details, see the updated documentation on the Gantt Chart.
AIMMS 4.19 Release
Features introduced in AIMMS 4.19 (March 2016)
In the WebUI, we have added a new widget: the Download Widget. With this new widget, you can run an AIMMS procedure that prepares/creates a file to be downloaded by the app user, after which the in-browser download functionality allows the app user to download the just created file.
The manuals for AIMMS WebUI and AIMMS PRO have been improved, re-structured and made up-to-date. You can find them here:
Features introduced in AIMMS 4.18 (March 2016)
In the WebUI, we have added a new implementation of the dropdown box, which is visible in the scalar and the table widget types if an element parameter is displayed. This new implementation adds a search box, which greatly helps you if the range of the element parameter is a big set. You can simply type any (sub)string: the search box will provide you with all the set elements that match your search. Furthermore, you can use some basic regular expressions in the search box, giving you even more flexibility when searching. For more details on the more common possibilities that regular expressions offer, see the documentation.
In the WebUI, the DatePicker widget has been deprecated. But: in case you need this functionality, you can now use the new dropdown box, introduced above, giving you even more flexibility than before! If you let it show an element parameter defined over an AIMMS calendar, you can still pick dates. For example: if you use a date format showing the weekdays, you can search for ‘Mon’ to quickly get an overview of all Mondays. Or you can type ‘2016’, to get all available dates in 2016. Using the ‘.*’ sign, you can even combine both by using a regular expression: searching for ‘Mon.*2016′ will show you all Mondays in 2016, for example.
Features introduced in AIMMS 4.17 (March 2016)
We have made some changes that improve the performance of the selection widgets. Furthermore, you can now select several items in a row without having to scroll up all the time.
The Selection-Box widget will now also display a Search Box. It appear as soon as you click on the Selection-Box.
Features introduced in AIMMS 4.16 (February 2016)
We have created a new widget type for you: the Upload Widget. With this widget, end-users can upload a file to the AIMMS PRO server, which can then be further processed by the AIMMS model. This is very useful for Web Apps that depend on user specific data that is not yet available on the server (e.g. Excel data input).
The Upload Widget has, like the Button Widget, a call ‘Procedure’ option, in which you can specify the AIMMS procedure that will run once the upload is finished. Please read the documentation for more details.
If you use the AIMMS WebUI on a Windows device with a touch screen (such as a Microsoft Surface tablet), the WebUI will show an additional button that allows you to toggle between touch-input and mouse-input.
The WebUI will automatically detect touch support and implement improvements for touch interaction. These improvements impair some mouse interactions. If you use the AIMMS WebUI primarily with a mouse, we recommend that you toggle to mouse-support. This setting will be remembered by your browser.
Features introduced in AIMMS 4.15 (February 2016)
- Single Line Option Editor supports AIMMS identifier
- Hiding Specific Widgets using the ‘Visible’ Option
- Basic Sorting in the Table Widget
To fully customize your widgets, you can now use the data of AIMMS identifiers to provide your widgets with option values. This allows you to specify the options (at the Miscellaneous tab in the option editor) in a more dynamic way. You can let your model decide on the value of e.g. the new ‘Visible’ option.
Specifying an AIMMS identifier for the ‘Visible’ option
With the ‘Visible’ option, your app users will be able to focus more on the information that is relevant to them. As an app developer, you can now control for each widget whether it should be visible for a specific app user. This allows you to create a user interface that is customized for every (group of) user(s). You can find the ‘Visible’ option at the ‘Miscellaneous’ tab of the widget option editor. If you use an AIMMS identifier to determine the visibility of the widget, you can use all AIMMS logic that you need. E.g. only show the widget when relevant for the user (group), or only show a widget when certain data is available. Please read the documentation for more detail.
From now on, all WebUI users can do basic sorting in the Table widget. This allows you to get a better insight into your data. You can sort on both rows and columns (one at a time).
Basic Sorting in the Table Widget
Features introduced in AIMMS 4.14 (January 2016)
- Parallel solving automatically enabled for CPLEX
- Improved identifier selection for widgets
- ‘No Changes Allowed’ feature for WebUI Apps
- Improved line up widgets
- Shift-Click in Multi-Select Widget
- Control save/restore WebUI State
- Download table to .csv file
The default values of the CPLEX options ‘Parallel mode’ and ‘Global thread limit’ have been changed for CPLEX 12.6 and higher. By default, CPLEX will now use the deterministic mode and all available threads for solving MIP problems, and LP problems if the barrier algorithm is used. This can lead to significant performance improvements when solving MIP or LP problems.
When selecting identifiers to determine the contents of a new widget, or when editing an existing widget, has been improved by offering a more extended wizard. To make selection easier, the wizard now shows the identifier type (set, parameter etc). The limit of the number of identifiers shown, has been dropped (initially the pull-down list will contain the first 100 identifiers and the last item in the list tells you there is more; using search you can list and select those). In addition, when creating a new widget, you can directly add multiple identifiers to Current Contents. These new features make life easier for the app developer and for the end user who is changing widget contents.
We added a ‘No Changes Allowed’ feature for AIMMS WebUI Apps, preventing the end user from making changes to the setup of widgets or pages (end users can of course still change data). This feature is set through AIMMS PRO roles and thus can be differentiated per user. It allows the publication of Apps where changing those Apps is considered undesirable. For example because by removing or changing information the user could end up taking the wrong decision. Similarly, this also prevents end users from adding any personal widgets in the App. For more information, please read the documentation. If an AIMMS WebUI App is locked for editing, the editors and widget manager won’t allow any changes to be made by the end user. Greyed out and a lock appears.
View of the editor and widget manager of a locked AIMMS WebUI App
We improved the way widgets and items, such as buttons, line up to help achieve higher data densities and make Apps look better.
You can now use shift-click in the Multi-Select Widget to select a range of elements shown, at once.
By default an AIMMS WebUI App will save its user state (i.e. view) upon closing, and restore its state upon starting the App. As a developer, you can now have more control of this behavior, e.g. override it to not save any user state, or only save part of the user state. To do this, you can specify your own control procedures and using the WebUI State Hook element parameters. Please see the WebUI State Hook Declarations section in the WebUI Library for details.
The Table widget now offers you the possibility to download its current contents to a .csv file on your local machine. This allows you to e.g. further process your data in Excel. Please read the documentation for more details.
Here you can read about the new features in AIMMS 4.13. More details can be found in the release notes. AIMMS 4.13 and its release notes can be downloaded here.
Features introduced in AIMMS 4.13 (November 2015)
- Gurobi 6.5
- Position of adjustable resize lines stored
- Database foreign key handling option introduced
- WebUI Improvements
Gurobi 6.5 has been added. Gurobi 6.5 comes with significant performance improvements across MIP, LP, SOCP, MIQP and MIQCP problem types. Gurobi 6.5 supports variable hints: if you have a guess at a high quality solution for a MIP model (for example, from solving a related model), the new variable hint feature allows you to pass that guess to Gurobi to help guide the search for a new solution.
The current position of adjustable resize lines in a page can now be stored in a model parameter. Doing so prevents the positions of the resize lines on a page from being reset upon re-opening the page.
A new option has been introduced, which may improve the performance of database write statements. Previously, the database would always determine whether the tables affected by your write statements had foreign keys involved. In certain cases, this can be a slow operation. With the new option, it’s up to you to decide whether you want this behaviour or not. You should know what you’re doing, though: in case the tables you write to have foreign keys involved, skipping the check means either getting an error message, or even loss of rows in referring tables, depending on the cascade setting of your database.
- The search fields in the multiselect and legend widgets and the contents and filter option editors now automatically (dis)appear when there are (few)/many items to select from.
- The selection-box widget is now the same height as a button, which decreases the amount of space it takes on your screen.
- When creating a button widget, you will get a suggestion to use a group widget. A group allows you to group multiple buttons together in a consistent layout.
Here you can read about the new features in AIMMS 4.12. More details can be found in the release notes. AIMMS 4.12 and its release notes can be downloaded here.
Features introduced in AIMMS 4.12 (November 2015)
- Checkboxes in WebUI forms
- Dense Data Support in Selection Widgets
- Template Selector for WebUI Group Widget
- Dynamic error messages in WebUI
The check-box and pull-down list functionality for forms has been added, making them easier to operate when selecting possible values.
We have started to add the ability to view default data by adding ‘dense data support’ to selection widgets. This removes the need for App developers to set non-default values to force data to be shown.
Previously, in AIMMS 4.10, we introduced widget grouping. In the current release we added the ability to change the preferred layout of the group via a template selector. This way you can easily select the best layout for your widgets and your users will be able to receive an improved experience to operate the App.
When using forms in your App, you can easily provide the App user with feedback on the data that is filled in in the form. The AIMMS WebUI procedure webui::CreateValidationError that is used for this feedback, is now extended with optional arguments such that you can add information based on model identifier data to the error messages. This allows you to provide your App users with the exact information they need.
Here you can read about the new features in AIMMS 4.11. More details can be found in the release notes. AIMMS 4.11 and its release notes can be downloaded here.
Features introduced in AIMMS 4.11 (November 2015)
Scalar and table widgets in the AIMMS WebUI now display checkboxes for binary parameters. In fact, this will be automatically handled for you when the ranges are set as such. Checkboxes are not displayed for form identifiers yet.
Element parameters that are displayed in a scalar or table widget in the WebUI now have a drop down list from which you can select one of the elements of the corresponding set. Dropdown lists are not displayed for form identifiers yet.
Here you can read about the new features in AIMMS 4.10. More details can be found in the release notes. AIMMS 4.10 and its release notes can be downloaded here.
Features introduced in AIMMS 4.10 (October 2015)
- Data Forms and Group Widget in WebUI
- Configurable Initial Collapsed State of Pivot Table
- Extension of Forecasting Library
- Support For .aim/.amb Files Dropped in this Version
We have extended the WebUI functionality to support Data Forms. The use of Data Forms enables end users to modify and validate multiple data points related to a specific item before applying data changes to the master data, assuring better data consistency. In addition, we implemented Widget Grouping to improve the end user’s WebUI experience. This ensures that chosen widgets stay together, regardless of the device or resolution they are being viewed on.
In the Pivot Table object of the WindowsUI, the initial state of a Pivot Table can now be set to collapsed or not. This can be specified per index.
We have extended the Forecasting Functions library after its initial launch in AIMMS 4.9. The values of steering parameters for exponential smoothing functions (normal, with trend, or with trend and seasonality) can now be computed such that the Mean Squared Error is minimized.
From AIMMS 4.10 onwards, we have stopped the support for .aim/.amb files in our AIMMS versions. In practice, this means that if you have projects that contain files in either of these formats (typically projects that started its development in AIMMS 3 or older), you will need an AIMMS 4 version that is released before AIMMS 4.10 (i.e. 4.0 – 4.9) to convert the project for you into .ams files. After that, you can continue working with your project in AIMMS 4.10 and higher. If you have any questions or concerns about this upgrade, please do not hesitate to contact us via [email protected].
Here you can read about the new features in AIMMS 4.9. More details can be found in the release notes. AIMMS 4.9 and its release notes can be downloaded here.
Features introduced in AIMMS 4.9 (August 2015)
- Parallel Multistart
- Addition of AIMMS Forecasting Functions
- WebUI: Support For Project-specific Language Files
- Support For .aim/.amb Files Will Stop in the Near Future
The multistart algorithm has been parallelized as it can now use multiple asynchronous solver sessions to solve an NLP problem, whereby each session uses a different starting point. Using multiple solver sessions might lead to a significant performance improvement. The multiple solver sessions use the same NLP solver. To use this parallel feature, your AIMMS license should allow the NLP solver to use parallel solver sessions.
AIMMS 4.9 contains the first version of the ‘AIMMS Forecasting’ library to give app developers who need basic forecasting functionality an alternative to connecting AIMMS to dedicated software such as R or SAS. This first version contains the basic time series forecasting functions for calculating by means of moving average, exponential smoothing, exponential smoothing with trend and exponential smoothing with trend and seasonality. You can find the documentation on these functions in AIMMS: The Function Reference, chapter “Forecasting Functions”.
The WebUI now offers support for (multiple) project-specific language files, allowing app developers to add translation tables, for example to show human readable names instead of ‘technical’ identifier names. They can also be used, of course, to show multiple languages.
Not really a new feature, but still good to mention here. In the near future (from version 5.0 onwards), we will stop the support for .aim/.amb files in our AIMMS versions. In practice, that means that if you have projects that contains files in either of these formats, you will need an AIMMS 4 version to convert the project for you into .ams files. After that, you can continue working with your project in AIMMS 5. In order to make the transition as smooth as possible for you, AIMMS 4.9 already shows you a warning message every time that you’re using a project that still contains .aim/.amb files in the developer version of AIMMS (i.e. not in the end-user versions).
Here you can read about the new features in AIMMS 4.8. More details can be found in the release notes. AIMMS 4.8 and its release notes can be downloaded here.
Features introduced in AIMMS 4.8 (July 2015)
In the WebUI, you can now drive table cell formatting from your AIMMS model. This provides you with very flexible conditional formatting so that you can make your table very easy to interpret for the app users.
The data management in the WebUI has been improved. It is now more like the way you were used to in AIMMS itself.
Here you can read about the new features in AIMMS 4.7. More details can be found in the release notes. AIMMS 4.7 and its release notes can be downloaded here.
Features introduced in AIMMS 4.7 (June 2015)
There is a new version of CPLEX, namely CPLEX 12.6.2. The settings ‘Barrier – Primal crossover’ and ‘Barrier – Dual crossover’ of the option ‘LP method’ have been removed. Crossover is now controlled by the new option ‘Solution type’.
Namechange files (.nch) files are now always sorted consistently. This has the benefit that they don’t show as much ‘changes’ when you compare them with older versions if your project is under a source control system.
Tooltips for page objects can now have any length. Previously, they were cut off at 255 characters.
Various improvements have been made to the case management of the web-based UI, including shared case management.
Here you can read about the new features in AIMMS 4.6. More details can be found in the release notes. AIMMS 4.6 and its release notes can be downloaded here.
Features introduced in AIMMS 4.6 (May 2015)
- New AIMMS styling and logo
- Progress Time Interval option added
- Web-based UI offers finer grained control over layout
- Web-based UI enables passing of multi-select data to underlying model
AIMMS 4.6 comes in our fresh new styling and with our new logo!
Progress Window updates are now, by default, based on elapsed time instead of the number of iterations. The new option ‘Progress Time Interval’ controls the progress frequency based on time.
To improve the flexibility in lay-outing your widgets, the number of columns in the grid that contains the widget has been doubled. As a result, you might have to adjust the width of widgets that have been created with a previous version of the WebUI.
As a first step to make model selections in the WebUI available to the end-user, the multi-select widget now also accepts a one-dimensional parameter (with a default value other than 0 or 1) as its contents. The selected items in the multi-select widget will be kept in sync with the value of the parameter in your model.
Here you can read about the new features in AIMMS 4.5. More details can be found in the release notes. AIMMS 4.5 and its release notes can be downloaded here.
Features introduced in AIMMS 4.5 (April 2015)
If you have any questions on these new or improved features, please contact us at [email protected] and we can discuss how we can help you. Below, you can find a description of all new features that have been introduced in AIMMS 4.5.
The web-based UI has been extended with the option to fix the location of one more widgets, so that the responsive design functionality does not (re)arrange them when the size of your browser tab changes.
The web-based UI has been extended with a basic Gantt Chart widget.
For more information on how to use this new widget, see this page.
Here you can read about the new features in AIMMS 4.4. More details can be found in the release notes. AIMMS 4.4 and its release notes can be downloaded here.
Features introduced in AIMMS 4.4 (March 2015)
- Web-based UI extended with the TreeMap widget
- Cell coloring based on values in Web-based UI
- Basic case comparison in web-based UI
- New version of KNITRO: KNITRO 9.1
- New version of BARON: BARON 15
- Further work on the parallelization of the AIMMS engine
If you have any questions on these new or improved features, please contact us at [email protected] and we can discuss how we can help you. Below, you can find a description of all new features that have been introduced in AIMMS 4.4.
The web-based UI has been extended with the TreeMap widget, to provide you with the possibility of an alternative presentation of your AIMMS data.
Cells in the web-based UI can now be colored distinctly, depending on their specific values. Using this functionality you can, for example, present negative numbers in the color red and positive numbers in the color green.
Basic support for case comparison has been implemented in the web-based UI.
There is a new version of KNITRO, i.e. KNITRO 9.1, which introduces a new Sequential Quadratic Programming (SQP) algorithm for continuous problems. This new SQP algorithm is primarily designed for small problems, where the computational cost is dominated by function/derivative evaluations.
There is a new version of BARON, i.e. BARON 15, which can use parallel threads for solving problems with integer variables. Also the COIN-OR solver FilterSD can now be selected as the NLP solver.
After the start of the parallelization of the AIMMS engine in version 4.3, we have continued our developments in this area. We will keep releasing the results of our ongoing work in gradual, incremental improvements.
Below you can read about the new features in AIMMS 4.3. More details can be found in the release notes. AIMMS 4.3 and its release notes can be downloaded here.
Features introduced in AIMMS 4.3 (January 2015)
- Web-based UI around AIMMS models
- Only installation-free executables
- Installation-free AIMMS Launcher
- Parallelization of the AIMMS engine started
If you have any questions on these new or improved features, please contact us at [email protected] and we can discuss how we can help you. Below, you can find a description of all new features that have been introduced in AIMMS 4.3.
A development environment for creating a web-based UI around your AIMMS model, to be hosted through the AIMMS PRO platform. At this stage, the AIMMS web UI contains a fairly limited set of features, which will be extended through multiple small improvements using our new agile development approach.
To make sure that AIMMS developers can keep up with the increased release frequency more easily, AIMMS will only be made available in the form of installation-free executables from version 4.3 onwards. Installers will no longer be available.
To make working with multiple installation-free AIMMS versions easy, we also provide an installation-free AIMMS Launcher, which
- provides right-mouse menu items in Windows Explorer to start AIMMS projects either with the closest available AIMMS version or with an AIMMS version selected by the user from the list of available AIMMS versions,
- lets you manage the collection of installation-free AIMMS versions present on your system,
- offers support to use the Excel add-in and the AIMMS COM object with any of the available AIMMS versions on your system.
In the past few months we have started working on the parallelization of the AIMMS runtime engine using our new agile development approach. We will release the results of this effort in gradual, incremental improvements. By parallelizing calculations in AIMMS models computation times can be significantly reduced.
- AIMMS 4.3 contains a first and very limited collection of parallelized expressions, and the performance improvements to be expected for most model will be very limited.
- With each new AIMMS release, the collection of parallelized expressions will be extended, and over time models will see increased performance until the entire engine is parallelized.
Previous releases contain the following new features:
In general, we try to release AIMMS Hotfix Releases as soon as possible after severe bugs have been fixed and tested internally. For less severe bugs, we may choose to combine a number of fixes into a single hotfix release.
We try to release Feature Releases as soon as possible after one or more new features have been implemented and tested internally. The release process for a Feature Release usually takes more time than that for a Hotfix Release.