Tech Blog

Tips and Tricks for AIMMS Users

Execute, a handy function to run an executable program from AIMMS

run an executableAIMMS provides a good selection of functions, such as arithmetic functions, string manipulation functions, time functions, distribution functions, file functions, and more, for app developers to build prescriptive analytics applications.

However, if you already have another program for certain tasks that you don’t want to rebuild in AIMMS or if the functionality you need is not available, you can use the Execute function to call the program from AIMMS.

Continue reading »

This entry was posted in AIMMS, App development on by .

Modeling for secure apps deployed on AIMMS PRO – Part 3: securing file access in AIMMS PRO storage

This blog post is the last in a series of thee to enable AIMMS app developers to model file sharing in a secure manner.  In the first post, we covered authorization of AIMMS PRO users, and in the second, we covered transferring files. In this blog post, we will cover granting and denying access to files in AIMMS PRO storage.

AIMMS PRO storage organizes access per entity, whereby an entity is a user or a group of users. We start with retrieving the set of entities and the group or user names associated with them. This can be done via the following call to system library AimmsProGUI:

Continue reading »

This entry was posted in Data on by .

Benders Decomposition in CPLEX 12.7

The latest version of CPLEX, version 12.7, supports Benders decomposition. Benders decomposition is an approach to solve mathematical programming problems with a decomposable structure, including stochastic programming (SP) problems (it is also known as the L-shaped method). Computational results by IBM, see this slide show by Xavier Nodet, show that Benders decomposition is faster than traditional branch-and-cut for 5% of their nontrivial MIP models. That number might not seem impressive but for certain type of MIP problems Benders decomposition is much faster than other methods.

Continue reading »

This entry was posted in AIMMS, CPLEX on by .

Modeling for secure apps deployed on AIMMS PRO – Part 2 Uploading and Downloading files

This blog post is the second post in a series of three to enable AIMMS app developers to model necessary file sharing in a secure manner. In our first blog post, we covered AIMMS PRO User groups and how they can be used to authorize access to information within your AIMMS Apps. This blog post explains how you can upload and download files to and from AIMMS PRO Storage.

Continue reading »

This entry was posted in AIMMS on by .

How to link AIMMS with an SQLite database (in Windows 10)

sqlite

Say you have a wonderful AIMMS application, that needs to link a Database Table identifier database (an AIMMS identifier) to one SQL data base of yours. Your amazing SQL data base is, however, an SQLite database. Thus, to be able to read it, AIMMS needs the appropriate “driver”, which enables him to read your SQLite database. This blogpost presents how to:

Continue reading »

This entry was posted in AIMMS, Beginner, Data on by .

Getting reproducible results with distribution functions

Random Number generatorThe other day I got a model from a user and every time that I solved the model the results were different. At first I thought that some of the outputs were used as input, but that wasn’t the case. After some analysis I found out that this statement was the culprit:

ShippingDuration(o,d) := uniform(22,34);

The user was prototyping and did not have all the data yet. In reality, you will use the known (average) durations.

Continue reading »

This entry was posted in AIMMS on by .

Modeling for secure multi-user AIMMS Apps deployed on AIMMS PRO – Part 1 User Groups

AIMMS PRO is a multi-user environment, designed to host several Apps used by several end-users. Information is shared by these users via these applications. Depending on the role of the app user in the organization, selected information may or may not be accessible. For instance, a planner may change the production plan, that plan can be inspected by management, but is not accessible to the HRM staff.

This blog post is the first post in a series of three to enable AIMMS app developers to model necessary file sharing in a secure manner. The topics of the three posts are:

1. Identify the user of the AIMMS PRO App and the AIMMS PRO groups they belong to

2. Upload files to AIMMS PRO Storage and download files from AIMMS PRO Storage

3. Grant access, via authorization strings, as appropriate to files in AIMMS PRO Storage

Continue reading »

This entry was posted in AIMMS, App development on by .

Set, Subset, Index and Element Parameter in AIMMS

2000px-Set.svg

Do you know Set is a god of the desert, storms, disorder, violence and foreigners in ancient Egyptian? So it is totally possible that his disturbance power influenced mathematical world, which is considered employing set theory as foundation system. From 5th century Greek in west India in the east to today’s modern society, there are struggles, debates, paradoxes around set theories. You can find lots of readings about them, or if reading history sounds boring, there will be a little fun video to watch at the end of this blog.

Set in AIMMS can also be confusing for new AIMMS users. We often get questions regarding how to use set, subset, indices, mappings, etc. While working on my own Fantasy Football project, I think it might be helpful to share how I started building one of my models to clarify some of the ambiguity by this example.

Continue reading »

This entry was posted in App development, Beginner, Modeling on by .

How to use the AIMMS Excel Library

The AimmsXLLibrary was introduced in AIMMS 4.20. The new library can communicate with Excel files in server environments, where Excel is not installed. For instance, while running AIMMS through a WebUI on PRO or on Linux. Excel is usually not installed in such environments. However, this isn’t a problem. The AimmsXLLibrary doesn’t require Excel to be installed in order to read from or write to an Excel (.xls/.xlsx) file. By using this library, you can deploy your AIMMS project to more platforms with less restrictions.

In order to use the library, you first need to add the system library ‘AIMMSXLLibrary’ to your model. Then, you can use the functions, which start with prefix “axll”(Aimms eXeL Library), provided in the library. This blog post illustrates how these functions work. Let’s take a look.

Continue reading »

This entry was posted in AIMMS, Excel Library on by .

Debuting a new kind of AIMMS workshop at INFORMS

AIMMS' Chris Gordon and workshop participant Juan Esteban Calle Salazar

AIMMS’ Chris Gordon and workshop participant Juan Esteban Calle Salazar

In preparation for the INFORMS Business Analytics conference in Florida, we wanted to experiment with a new approach for our regular pre-conference workshop. We wanted to engage the audience much more during the session, and do so in a fun and interactive way.

A couple of weeks prior the conference, we sat down and discussed how we could achieve this goal. Almost immediately, we considered the idea of doing a reduced version of our proof of concept (POC). The recently improved POC has proven to be a method that successfully demonstrates the value of AIMMS. It demonstrates just how quickly an AIMMS-based decision support application can be developed and deployed. Our regular POC is a two-day process that starts by defining the problem on a whiteboard with a prospect. The information shared on the whiteboard is then translated into the AIMMS modeling language. Shortly thereafter, an end user application is created on top of the model.

Continue reading »

This entry was posted in AIMMS, INFORMS, Modeling on by .
  • Customer Reviews

    Read more AIMMS reviews
  • Review AIMMS on G2 Crowd
  • Recent Posts

  • Categories