Topics about getting started or leveling up as an AIMMS developer. Datalinks, AIMMS language, building apps...
- 608 Topics
- 1,334 Replies
AIMMS has a number of distribution functions included, in order for you to be able to generate random numbers very efficiently. This capability might be extremely useful when you want to quickly populate a multidimensional parameter. [url=https://how-to.aimms.com/Articles/12/12-generate-random-numbers.html]Here[/url]
Many models involve some time-based notion. This article explains how using Calendars in AIMMS can make working with time a lot easier. Find out [url=https://how-to.aimms.com/Articles/189/189-using-calendars-in-aimms.html]here[/url]
A mathematical formula is considered data within an application when it is read in as a string during the application’s runtime, and subsequently used in the construction of selected assignments and constraints. The concept “Formulas as Data” can be applied to several optimization apps, for instance those that deal with “Blending on Specification” and “Asset Management.” In these types of applications, the benefit of the end-users is that they do not have to share these formulas with anyone else, including the developers of the apps. For such apps, good formulas are expensive to develop and having good formulas provides a competitive edge to these end-users. In AIMMS, formulas can be used in the following way ... [url=https://how-to.aimms.com/Articles/131/131-Formulas-as-Data.html]here[/url]
related to this topic, with the addition of Model Edit Functions (MEF), a lot of things that were previously impossible to do with AIMMS became possible. [url=https://how-to.aimms.com/Articles/146/146-value-dynamic-identifier.html]Here's[/url] all you need to know.
A text is a sequence of characters. A text file contains such a text whereby the characters are represented by numbers. The mapping between these characters in a text and these numbers in a file is called an encoding. Confusion arises when people or programs communicate using different encodings :-(. For instance, a text file containing the following bytes (hexadecimal): “48 65 6c 6c 6f 20 57 6f 72 6c 64 2e”, would be interpreted using the IBM284 encoding, a Spanish variant of EBCDIC, as: “çÁ%%?ï?Ê%À”, but using UTF16LE encoding, it would be interpreted as “效汬潗汲”. Finally, using an ASCII encoding, it would be interpreted as: “Hello World”. Lots more to explore [url=https://how-to.aimms.com/Articles/135/135-UTF8-Encoding.html]here[/url]
[url=https://how-to.aimms.com/Articles/170/170-memory-in-use.html]Investigate Memory in Use[/url] discusses the different tools available in AIMMS to investigate the memory usage. This article discusses an approach to log the memory used while executing a procedure to identify any possible memory leaks. Find out more, [url=https://how-to.aimms.com/Articles/134/134-Monitoring-Memory-Use.html]here[/url]
Analytic applications may involve a lot of data and subsequently a lot of computer memory. AIMMS hides the technicalities related to memory management from the model developer. These technicalities include, for instance, the allocation and de-allocation of memory for individual data items. Still, the memory usage of applications created with AIMMS grows as the amount of data related to these applications grows. At some point during model development, the memory usage of your application becomes interesting. AIMMS offers tools to monitor and investigate the memory usage of your application. We will discuss a couple of the tools available in AIMMS to investigate memory usage. [url=https://how-to.aimms.com/Articles/170/170-memory-in-use.html]Here[/url]
The time spent by AIMMS applications can be divided into AIMMS execution time ( including evaluation parameters with definition, executing procedures, generate matrix for solvers, etc), the time spent by solvers, and the I/O time. [url=https://how-to.aimms.com/Articles/125/125-execution-efficiency.html]Here [/url]you find some examples.
There are situations where you would like to know how long the execution of something in AIMMS took. When you are working as an AIMMS developer, one of the tools you have for this is the AIMMS profiler. This profiler will provide you with information about how long each statement in an execution took, as well as how long the evaluation of the definition of a parameter took. More information about the profiler can be found in the [url=https://documentation.aimms.com/_downloads/AIMMS_user.pdf]AIMMS The User’s Guide[/url] Chapter “Debugging and Profiling an Aimms Model”. When running in End-user mode, the profiler is not available. To still be able to give the end-user feedback on how much time certain steps took, you can create a ‘stopwatch’ in AIMMS code. Read [url=https://how-to.aimms.com/Articles/144/144-Stopwatch.html]here [/url]how this can be achieved.
For the past couple of years, we have worked on improving the compiler and execution engine in AIMMS. We’ve done this in a way that minimizes problems in existing models. During this process, we have encountered issues in the existing code that are not in line with the Language Reference. We struggled with the handling of subsets of integers in an expression in particular. Read [url=https://how-to.aimms.com/Articles/112/112-Integer-properties.html]here[/url]
Very often, you will find yourselves having to define a certain property for an item based on its category. For example, cost($) of an item based on the size of that item (small, medium, or large). This is similar to using lookups in Excel to create a map from the size-cost table to the list of items. This article will show you how to model such a category mapping in AIMMS. Find a use case and more information [url=https://how-to.aimms.com/Articles/17/17-category-mapping.html]here[/url]
I would like to know how to get the sensitivity analysis of a constraint shadow price. For example, say we have the following constraint: x+y ≤ c and its shadow price "SP". How do I get the relationship between c and SP ? In other words, the sensitivity analysis of SP according to c. I would appreciate if you can show me how to achieve this in AIMMS. Thank you very much for your assistance!
Set in AIMMS can 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. [url=https://how-to.aimms.com/Articles/121/121-set-index-element-parameter.html]Here[/url]
Data exchange is an essential part of every application. AIMMS supports various industry standards for data exchange, such as ODBC for databases, XML Files and spreadsheets. But what if the data is not stored according to one of these standards? In order to read data from an arbitrary data source, AIMMS offers access to self-developed or third party functions. This [url=https://how-to.aimms.com/Articles/133/133-External-Functions-InputData.html]blog [/url]post provides an overview of the steps you need to take to create a data exchange link between a proprietary data format and AIMMS. The process is illustrated by using a concrete modeling exercise from the Constraint Programming example library CSPLIB. [url=https://how-to.aimms.com/Articles/133/133-External-Functions-InputData.html]Here[/url]
When constructing AIMMS models, we are usually able to handle repetition and structure by adding indexes. For instance, if we have built a model for the conversion process of a single machine, we do not have to duplicate the relevant model code when given an extra machine. Instead, we can use an extra index over a set of machines. However, there are situations where adding an extra index is not an option. This blog post will provide an example of such a situation, illustrating how the issue can be tackled using the AIMMS Model Query and Model Edit functions Here is a [url=https://how-to.aimms.com/Articles/132/132-Repetive-Patterns-Model-Edit.html]link [/url]to the blog
If your model contains multiple calls to these functions, you will need to have this “Option Seed” statement only before the very first call and not all the other calls. Find out why, [url=https://how-to.aimms.com/Articles/119/119-Reproducible-Random-Sequence.html]here[/url]
Already have an account? Login
Please use your business or academic e-mail address to register
Login to the community
No account yet? Create an account
Enter your username or e-mail address. We'll send you an e-mail with instructions to reset your password.