Skip to main content

ALAMO Frequently Asked Questions

Welcome, Anonymous

This page is for general questions about using ALAMO and solutions to common error messages. For further technical support, please email info@minlp.com.

General

ALAMO is a powerful machine learning software used by over 500 engineers and data scientists in industries including automation, chemicals, pharmaceuticals, computer software, and manufacturing since its launch in 2018. To learn more, read our Company Brochure or watch the ALAMO Tutorial.

To get a license, please see our ALAMO Licenses page for license options.

Commercial users can pay $200 for a monthly license to evaluate the product at minimal cost. After your monthly license expires, we are happy to apply the amount paid for your initial license to your next purchase of either a perpetual or annual license.

Try registering through a different browser or contact us to generate a license for you.

You can renew your license online for free for as long as your company remains a member of the CAPD.

Yes! You can create a user account and request your free license here

Error Messages and Solutions

Ensure that your simulator exists and can be found in your system PATH or specify its complete path through ALAMO’s SIMULATOR option. ALAMO will execute the simulator in a scratch directory it generates during its run; hence, the simulator should not rely on any relative paths to access other programs or files.

Make sure you are using the latest ALAMO version and generate a new license online. Please send us a screenshot of ALAMO's output to diagnose the problem if the error message persists.

Capabilities

Please look under the examples folder of the ALAMO distribution. The folder contains several examples of how to use ALAMO. You can also find tutorials and short demos on our YouTube channel.

For using the constrained regression feature, please see Section 6.4 in the ALAMO User Manual.

We pose the sampling problem as an optimization problem to find points in the domain that maximize the deviation between the simulator and ALAMO's current surrogate model. These simulation-optimization problems must be solved in the absence of derivative information, i.e., they are 'black-box optimization problems.' ALAMO comes with an implementation of the SNOBFIT algorithm (from Neumaier's group in Vienna) for solving black-box optimization problems.

In the sampling stage of the algorithm, ALAMO cannot proceed unless you provide at least one data point. Without it, ALAMO will terminate.

ALAMO communicates with simulators through text files. To use a simulator with ALAMO, the user must provide a wrapper to the simulator in order to deal with the data exchange between ALAMO and the simulator. This wrapper needs to read an ALAMO text file with the points requested by ALAMO to be simulated, call the simulator at these points, and return the simulation results to ALAMO through another text file. To understand how this process work, we provide a folder with examples in your ALAMO installation. On a Windows system, this folder is likely located at C:\alamo\examples. On a Linux system, it may be under /usr/local/alamo/examples. The examples folder includes many examples of using ALAMO with simulators, including MATLAB, Python, and direct executables. In all cases, all you need to write is a wrapper to the specific simulator. The best way to get started with these is to look into a specific example. For instance, if you are comfortable using Python in a Windows environment, look into the folder named batpython and consider example e1.alm. This is a text file that can be opened in any editor and includes the line: 

simulator e1.bat 

This line instructs ALAMO to use the executable e1.bat as the simulator. All e1.bat is doing is launching Python through the command: 

python2.7 C:\alamo\e1.py 

In this line, Python Version 2.7 can be replaced by the one available in your system. Then, consider the contents of e1.py, which is also provided in the same folder. For this example, the actual simulator is in line 28 of e1.py, where the function x^2 is computed. All other lines in e1.py deal with input/output operations. In particular, they read input.txt to obtain the points that ALAMO wants to be simulated, run the simulator in line 28, and write the simulator results for ALAMO to read from file output.txt. 

Overall, keep in mind that ALAMO communicates with simulators with text files. All you need to do in order to utilize a process simulator is replace line 28 in e1.py with a sequence of commands that will fire up the simulator, provide it with the simulation point, and collect the simulation results.

In SIMOUT, the simulator must return a number of lines, each containing a point in the input variable space (space-separated NINPUTS reals) where a simulation was performed, along with the corresponding output variable values (space-separated NOUTPUTS reals). In other words, each line contains NINPUTS+NOUTPUTS reals that are space-separated.

Please look under the examples folder of the ALAMO distribution. The folder contains several examples of how to use ALAMO with a simulator in Python, Matlab, or any other executable.

You can do a system call from Python, Fortran, C, bash, or bat and call an Aspen or GAMS executable.

Data splitting is required by other surrogate model-building algorithms but not by ALAMO. For algorithms such as neural network training, users are required to do cross-validation to tune hyperparameters and have to set aside a small portion of their data set for final testing. ALAMO does not have such requirements because it relies on information criteria, such as the Bayesian information criterion, Akaike's information criterion, and others, that are known to be equivalent to leave-one-out-cross-validation. This is advantageous because all your measurements can be used for model building. As a result, in comparison to neural networks and other similar techniques, ALAMO requires a much smaller number of measurements to build models.

You cannot change it in the GUI version of the software. Specifying NINPUTS in the GUI is not needed. Once you have specified NOUTPUTS, ALAMO will subtract that number from the number of columns in the spreadsheet to calculate NINPUTS.

NDATA is the number of measurements the user has from a pre-existing data set obtained outside ALAMO. 

NSAMPLE is the number of points to be generated via sampling by ALAMO before any model is built. 

If INITIALPOINTS is declared by the user, NSAMPLE will be ignored and set equal to the difference between INITIALPOINTS and NDATA; otherwise, INITIALPOINTS will be set equal to the sum of NDATA and NSAMPLE.

You can use NPREDDATA for points for which you are only interested in using for predictions. You can use the options NVALSETS and NVALDATA to specify points for testing.

You can see demos here and here. For a more extensive description of the methods behind ALAMO, you can see a demo through the Python interface in this tutorial (starting at about 17:37). 

For a complete description of all the options, please see the ALAMO User Manual.

Please get in touch with info@minlp.com, and our technical team will get back to you. In your email, please attach a screenshot of any warning or error messages you are getting. This allows us to investigate the issue and provide better insights.