Category archives: AIMMS
Say you have a wonderful AIMMS application, that needs to link a Database Table identifier (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:
- Install the SQLite driver,
- Connect your SQLite database and
- Verify that you can access it through AIMMS.
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.
The goal of this article is to explain how you can control errors and warnings within AIMMS. Namely, we will walk you through some useful tips that can help you manage errors and warnings in the best possible way to create better models.
uomconv Optimization applications deal with numeric data. Interpreting these numeric values is easier when they are presented according to familiar units of measurement, hereafter abbreviated as units. For instance, I’m used to calculating distances in km and need to consciously re-interpret them when I get a distance measurement in miles. Some of my American colleagues, however, are used to miles for measuring distance. When we are aware that we are dealing with an unfamiliar unit, we need to put in a little extra effort in its interpretation. Not being aware, we run the risk of encountering serious errors resulting from incorrect unit assumptions. And I mean horror stories, such as loss of spacecraft. This begs the question: which units should be chosen and how do we make a given choice clear when we’re dealing with applications that have an international audience? Such applications should be smart enough to adapt the units depending on the user. Continue reading »
One of the nice things of the pivot table in AIMMS is that you can easily display a large number of identifiers. Especially after the feature to select specific elements of a set to be displayed, this really allows for end-users to perform so-called slice-and-dice to get insights in data/results.
Normally, if you want to display multiple identifiers in a page object in AIMMS (for the ones that support this), you have to explicitly add each of these identifiers in the contents tab of the page property. Especially when the number of identifiers is large, this can take quite some time. Fortunately, the pivot table in AIMMS also has the option to work with a so-called implicit identifier set.
For most users, it is actually not a big problem if execution of certain steps in your project take some time, as long as they know that something is actually happening. If you don’t provide any feedback to the user about what is currently happening, the user might think that the application is hanging.
One possibility you have in AIMMS is to use a progress bar dialog indicating the progress via a graphical progress bar combined with a string describing the status.
For a lot of problems you will need to work with some time based notion during the modeling. For example, with a transportation problem the main decision could be how much to transport from each depot to each customer for every day in a given time horizon.
Of course, it is possible to just create a set Days in AIMMS and give this exactly the same number of elements as there are days in the time horizon you are considering. However, this would require you to manually keep track of which of these elements are working days and which ones are weekend days. Also, you would have to take care of the fun details regarding leap years. Fortunately, in AIMMS you have the possibility to work with a Calendar, which makes working with time related things a lot easier.
In the first post of this year (Happy New Year) I showed how you can use the network object in AIMMS to create an animation of exploding fireworks. In another recent post (Using colors for feedback in pivot table)I showed how you can use the pivot table in AIMMS to display a heat map.
In this new post, I will show how you can use the user color related functions UserColorAdd and UserColorDelete in AIMMS to create an animation of the heat map that is displayed on the right.
The goal is to create an animation that will morph the picture such that each point that starts out as green ends up as red and vice versa.
After my questions on both the AIMMS Google Group and on this Blog about participating in an AIMMS Google Hangout, I got two replies from Yawen and Thiruselvan that they were willing to be the guinea piggs.
We just finished the first AIMMS Hangout and I would like to thank both Yawen and Thiruselvan again for being the guinea piggs!
In the rest of this post I will provide some more details about the questions and pointers that might be helpful.
In an earlier post Change default solver used for each type of mathematical program I showed how you can modify the default solver that AIMMS will use for solving each type of mathematical program.
I did not only demonstrate how you can modify these defaults via the solver configuration screen (which you can access via the Settings menu), but also showed how you could temporarily overrule this default by modifying the contents of the predefined CurrentSolver element parameter or by using a where clause with the solve statement.
Normally, the list of solvers available via the solver configuration screen is the same for all projects opened with the same version of AIMMS. In this post, I will show how you can overrule the solvers that are available for your current project.