New version of Advanced Integrated Multidimensional Modeling System provides fully integrated application development environment
By Dan Streiffert
AIMMS 3 is the most recent version of the Advanced Integrated Multidimensional Modeling System (AIMMS) developed by Paragon Decision Technology (PDT). This new version is a major rewrite of the previous version (AIMMS 2.20) that this reviewer has been using for the past five years in the development of power system applications for electric utilities.
AIMMS provides an all-round development environment for advanced Decision Support Systems (DSS), which are usually interactive systems with a strong emphasis on advanced computational techniques. These systems frequently make use of mathematical optimization methods for finding optimal solutions to complex resource allocation problems. Alternative solutions to these problems should be readily accessible through "what-if?" type analysis.
The development environment includes tools for building a sophisticated graphical end-user interface (GUI) which is highly integrated with the modeling environment. This makes it possible to quickly create complex graphics for presentation of study results. Figure 1 (taken from one of the examples delivered with AIMMS 3) illustrates an example page containing such complex graphics. It uses the new network object (with zooming capabilities) that is included in the system. This object has arcs and nodes whose color, size and location can be programmatically controlled to provide the user with an excellent visual representation of study case results.
Figure 1: Network object.
It is the complete integration of software development and end-user presentation graphics that sets AIMMS 3 apart from the few competitors in this field. The package enables you to build everything from a simple prototype model to a sophisticated DSS system that interacts with large database systems, all under one development environment. This allows you to start with an idea and to keep building on this idea until you have an application. It's the kind of tool that puts the fun back into software development.
Costs and Risks
License costs for commercial use of the AIMMS system run from $795 for a "Basic" system without solvers to $13,500 for a fully functional "Business" system (including the CPLEX solver). AIMMS is only available for PCs running Windows 95/98, Windows NT 4.0 or Windows 2000. PDT offers a variety of volume discounts and recently initiated a rental program to allow evaluation of the product. More information can be found on their Web site (http://www.aimms.com).
For academic use, PDT offers an unlimited academic network version along with the right to freely distribute a size-restricted (300 x 300) student version among the students of the faculty that acquired the academic license. The price of an academic license is $3,600.
A major concern in starting a new software project is the reliability and availability of any third-party software used in developing your product.
In our case, the fact that Paragon Decision Technology is a relatively small company turned out to be a significant benefit, as we found them more than willing to work with us to provide special functionality and even on-site support when critical software milestones were approaching. We were using the AIMMS modeling language in conjunction with CPLEX solvers.
We found the AIMMS 2.20 product very reliable and have had few problems. On the other hand, the initial AIMMS 3.0 release was very buggy. This has improved dramatically with the recent AIMMS 3.1 release; however, and I would not expect any major problems with future releases. Throughout all of our dealings with PDT, we have found the company quite responsive to bug reports and willing to listen to new ideas and suggestions for improving their product. This is one of the pleasures of working with a small company that has not become burdened with bureaucratic roadblocks.
My first exposure to AIMMS 3 was in trying to convert a large, existing AIMMS 2.20 model to work under AIMMS 3. This was a very complex process and the conversion took much longer than I expected. Part of my problem throughout this process was that I repeatedly incorporated new features of version 3 into my model as I did the conversion. As a result, I spent a lot of time learning and experimenting with different ideas, rather than simply getting the model to run. On the other hand, experimenting is part of the fun of working with a tool like AIMMS 3; the kind of fun that keeps you at your computer late into the evening when you should be working on the list of craft projects that your spouse is patiently waiting for you to complete.
AIMMS 3 Overview
Perhaps the most significant difference between AIMMS 2.20 and AIMMS 3 is a change in focus from an enhanced modeling language to a fully integrated application development environment. This integrated environment makes it possible to fully develop a complex end-user application using a single tool and programming language.
AIMMS 3 is much more than just another programming language, however. PDT has incorporated numerous state-of-the-art concepts into this product. These include:
In the remainder of this review, I will attempt to restrict my review to elements of the system that I have found particularly innovative and useful. Numerous other features of this product will not be covered.
AIMMS Modeling Tools
An AIMMS project consists of three basic parts: a model, (end-user) pages and data. In the model, you can describe and solve a mathematical problem. Pages can be used to display and change data, as well as to let the user execute (part of) the model. Data is used to save (and load) data sets for future reference.
AIMMS has user-friendly tools to construct projects. A model can be built with the model explorer tool, and the identifiers in the model can be viewed using the identifier selector and view manager tools. Pages can be constructed with the page manager tool and enhanced with the template manager and menu builder tools. The data manager and data management setup tools should be used to save and load data.
Once you have constructed a project in AIMMS in developer mode, you can let others use the project in end-user mode. This allows you to hide the model source and prevent accidental changes to the model.
In the following sections I will give a brief overview of the model explorer, identifier selector, page manager, template manager and data manager tools.
Model explorer. The model explorer provides a simple graphical model representation. All relevant information is stored in the form of a tree, referred to as the model tree, which can be subdivided into named sections to store pieces of similar information in a directory-like structure. The leaf nodes of the tree contain the actual declarations, procedures and functions that make up the core of a modeling application.
The significance of this feature only becomes apparent as your model increases in size and complexity. Programs that consist of two pages of source code can generally be viewed and understood quite easily. When the source code grows to 1,000 or 10,000 lines of code, it becomes very difficult to view and understand the relationships of the various modules and data structures. With AIMMS 3, you build a model in a source database; it can be readily transformed and viewed in alternative ways.
The model explorer in AIMMS lets you partition and structure a model as you create it. Individual model components (identifiers) are entered using forms, which reduces syntax errors. Most forms include built-in wizards to assist in filling out the forms. Figure 2 illustrates the model explorer along with a sample form for defining a multidimensional parameter. Also shown is the unit wizard for assisting in defining the Unit attribute.
Figure 2 - Model explorer with parameter form.
Using the toolbar on the parameter form provides shortcuts to various common tasks such as viewing the current data of the parameter, traversing the model tree, showing the location of the parameter in the model tree and various methods of (partially) compiling and saving the contents of the form. Buttons on the form in front of the various attribute fields provide access to wizards that assist in entering information on the form.
Within the attribute fields, AIMMS provides a number of right-mouse button actions, in addition to the standard cut/copy/paste operations, which you can use to readily access the attribute form or current data values for any identifier your mouse is on. This provides a convenient way to navigate directly to identifiers without having to traverse the model tree. Also, whenever you need to enter a parameter of variable name in the model, you only need enter the first few characters. Pressing "ctrl-space" activates auto-name completion and provides a list of items that begin with these characters so you may select the item you desire.
Some language features new to AIMMS 3 include:
Identifier selector. One of the really nice features of AIMMS 3 is the ability to access model components in a variety of ways (i.e., no restriction to a single, sequential view of a model). The model explorer provides one view that represents the primary developer's idea of how the model should be organized. Frequently, you may want to "query" the model for alternative views. For example, you might want to view all constraints with a certain domain index, all string parameters, or all variables in a specific node of your model.
The identifier selector tool allows you to create various alternative views in a hierarchical manner and save them for later use. These views are fully functional in that you may edit the model and perform incremental compilations from within these views. Views may also be printed and are automatically formatted. These can be used to provide documentation for your model, and thus form an ideal tool for model audits.
I strongly believe that these alternative views may be one of the most powerful features of the language. In practice, however, I have not actually made much use of this feature. I expect this is primarily due to old habits acquired from years of editing sequential source files.
Page manager. The page manager tool lets you organize all existing pages in an AIMMS application in a tree-like fashion. The single tree in the page manager holding all pages is called the page tree. Relative to a particular page in the page tree, the positions of the other pages define common page relationships such as parent page, child page, next page or previous page.
Based on the hierarchy of pages in the page manager, AIMMS offers several navigational interface components that can be added to a page or end-user menu such as navigation objects, navigation menus and navigation-related button actions. These components allow for easy navigation to the parent, child, next or previous pages with respect to either the current page or a fixed page in the page tree.
Figure 3 illustrates a section of the page manager from one of our own applications.
Figure 3: Page manager.
The sample page shown in figure 4 includes a number of navigation objects that are used to automatically create buttons on the right-hand side of the page, the pull-down menu and the page title directly from the hierarchical arrangement of the pages in the page tree. These kinds of features will substantially reduce future maintenance costs for your model.
Figure 4: Sample page with navigation object.
Other capabilities included in the page manager include:
Template manager. Complementary to the page manager (and the page tree), the template manager (and the template tree) makes sure that all pages have the same size and possess the same look and feel. This is done by creating template pages and letting other pages depend on these template pages.
Data manager. AIMMS 3 can create multiple save cases for storing both model inputs and results. Built-in case comparison features are also provided so that you may readily view differences from a number of "what if"-type analyses. Advanced features include the capability to define data categories (groups of related data) and save them in datasets.
The data manager offers various commands to work with a large number of cases and datasets stored together in a single data file. You can:
Extended search and find operations. Within each component of the AIMMS project, standard search and replace capabilities are provided. Extended search and find operations are also provided between AIMMS components. For example, dragging any item from the model explorer window to the page manager window causes the mouse pointer to change to a binocular icon, indicating a search operation is to be performed.
Releasing the mouse button results in highlighting all pages that contain references to the item. Similar search and find operations can be performed between other model components.
These are powerful concepts that can be of great assistance in model maintenance. This is also one of the many benefits that comes from using a tool that integrates both modeling and end-user GUI development into a single environment.
Figure 5: Extended search.
Units of measure and conventions. Many applications include parameters and variables with different units of measure (i.e., distance, time, volume, mass). Often there are conversions from one quantity to another in your application. Other times, you may want to present your results in alternative units (i.e., meters vs. feet). AIMMS includes a built-in dimensional analysis capability that allows you to associate units of measure with each identifier. These units may be shown in the GUI and can be quite helpful to the user in understanding your model. In addition, units you specified for the variables and constraints within a model will be used to automatically scale a mathematical program before it is sent to a solver.
AIMMS checks your model for unit consistency during compilation and issues error messages when it detects problems. You can also define unit conventions for different localities. You can then automatically change your result pages from one convention to another.
One word of caution. This is not something that you can do halfway. Once you start applying units to your model, AIMMS will keep issuing error messages until everything is unit-consistent. This can be a very pervasive and painful exercise if you are working on a large model. On the other hand, if you start using units of measure when you begin developing your model, unit association will probably be very helpful in terms of getting your model correct.
VAR licensing. Having spent considerable time developing a model, most companies would like to protect their investment. AIMMS 3 includes the ability to encrypt a model (or submodels) and license individual components for a limited amount of time or to specific AIMMS users. Such encryption and licensing is dependent on a special encryption code added to each AIMMS license that is unique to any value-added reseller (VAR). Uniqueness of VAR encryption codes ensures that you are the only one able to license your projects.
Unicode AIMMS version. Along with the ordinary AIMMS 3 version, PDT also distributes a unicode version of AIMMS 3 to support the use of, for instance, Japanese or Korean characters in both the model and end-user interface. This version also contains various tools to assist in automatically preparing the end-user interface for multiple languages. We used this version to distribute one of our models to a customer on the Asian market.
I have always found it difficult to assess a package like AIMMS when looking at someone else's application. The best way to get a feel for this tool is to buy or rent a copy from PDT and start experimenting. I would suggest starting with a small project that you thoroughly understand and can get working in a short amount of time. You can then experiment with enhancing the model and the user interface. Before you know it, you will be demonstrating your creativity to customers (and your boss) and committing to deadlines that you can't possibly meet.
Dan Streiffert of ALSTOM ESCA Corporation develops operations research applications for electric utilities. His primary area of interest is economic operation of power systems. He has been using AIMMS for more than five years.
OR/MS Today copyright © 2001 by the Institute for Operations Research and the Management Sciences. All rights reserved.
Lionheart Publishing, Inc.
506 Roswell Street, Suite 220, Marietta, GA 30060, USA
Phone: 770-431-0867 | Fax: 770-432-6969
Web Site © Copyright 2000 by Lionheart Publishing, Inc. All rights reserved.