Modeling the forest: Ontario’s Ministry of Natural Resources takes us through decades of effective forest management

SCI_MNR_logo_bronzeForest ecosystems are highly complex and influenced by a diversity of factors. Sustainable forest management is therefore an ongoing and constantly evolving process which requires an integrated approach. Government bodies, such as The Ontario Ministry of Natural Resources (OMNR), must conform to provincial policies and standards, while taking economical and ecological considerations into account to arrive at optimal forest management policies. OMNR manages 27 million ha of Ontario’s public forest and has been using an AIMMS-based model for this purpose since 1994. The Strategic Forest Management Model, or SFMM, enables foresters to analyze the relationships between forest condition, silvicultural practices, wood supply and potential wildlife habitat. This analysis enables them to understand how a forest develops through time and explore alternative forest management strategies and trade-offs. Today, nearly 2 decades after its launch, we spoke with Dirk Kloss, OMNR’s Resource Modeling Specialist, to find out where SFMM stands today and what their experience using AIMMS has been like.

Continue reading

Using external functions for data input

Make connection

Make connection

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 blog 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.

Continue reading

Monitoring memory use

Memory module

Memory module

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 deallocation 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.

This blog post will delve into some of these tools.

Continue reading

Using operations research to solve pressing global issues: the mathematical story behind North Star Alliance’s POLARIS

A North Star Alliance Roadside Wellness Centre, located in Emali, Kenya. (Photography by Dave Chidley)

A North Star Alliance Roadside Wellness Centre, located in Emali, Kenya. (Photography by Dave Chidley)

More than 35 million people worldwide are infected with HIV or are living with AIDS, and approximately 70% live in Sub-Saharan Africa. Mobile populations, such as long distance truck drivers, are particularly at risk of contracting and transmitting the virus. In 2007, TNT Express and the United Nations World Food Programme joined forces to form North Star Alliance (North Star) – a public-private partnership that is working to increase access to health services along major transport corridors in sub-Saharan Africa. ORTEC, a longstanding AIMMS partner, joined North Star in 2008 to design their award-winning Corridor Medical Transfer System (COMETS), which enables North Star staff to access and monitor patient health data across boarders and throughout its network of clinics. ORTEC has also contributed to North Star by developing POLARIS, an innovative application built on the AIMMS optimization platform that helps the organization improve their planning and decision-making on the ground. In this blog post, we will explore the POLARIS Supply Chain Model developed by Harwin de Vries while at ORTEC.

Continue reading

Top 5 Reasons Math Modelers Should Use AIMMS

Professors, students, and practitioners of operations research can choose from a variety of tools when conducting research and delivering results. When it comes to solving math programs and optimization problems, there are many options, such as using a math modeling tool, a generic programming language with an API, or a solver directly.

As someone who is new to AIMMS and has done all of the above for doing research and providing solutions, there are several reasons why I prefer to use AIMMS. Here are the top 5 reasons:
Continue reading

Past the size limit of old data manager files

By Vladimir Shioshvili

By Vladimir Shioshvili

During the evolution of an application, the amount of data it is capable of handling tends to grow. The number of areas in which it can be deployed does as well. When a single data manager file is used to store all this data, the file will grow significantly – even if the data is stored in a compressed form. For applications created with AIMMS 3.12 or earlier versions, there is a 4Gb size limit to data manager files. For applications handling a lot of data, this limit needs to be addressed. Versions of AIMMS from 3.13 onward, use another format for data manager files to which this limit no longer applies. Even though AIMMS 3.13 can read cases from old data manager files and store new cases therein, AIMMS 3.13 does not automatically convert old data manager files to the new format. Luckily, this conversion can be coded in AIMMS. I will demonstrate how in this blog post.

Continue reading

Units of measurement – localized interaction with numeric data

mm inch ruler

mm inch ruler

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

Support of UTF8 and Other Encodings

German Enigma Machine

German Enigma Machine

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”.

Continue reading

Farewell to Guido

bos tulpen

Wednesday July 31 will be Guido’s last day at AIMMS. He will start a new challenge at one of the big consultancy firms.

Guido has been the driving force behind this AIMMS Blog. With great enthusiasm and energy, he has written the vast majority of our Blogs. Often his blogs were linked to this other ‘baby’ of Guido: the AIMMS Google Group.

Using his forum, I’d like to thank Guido for putting his knowledge, energy and wit to work to make such a success out of the AIMMS blog.
And….an open invitation to Guido to return to this forum and write a guest blog from time to time!

Gijs Dullaert
CEO of AIMMS

Using implicit identifier set in pivot table

Screenshot Pivot TableOne 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.

Continue reading