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.

Getting Started

ALAMO (short for Automated Learning of Algebraic MOdels) is a modeling tool that builds simple, accurate algebraic models from data. It uses global optimization to select the best set of basis functions and model terms while balancing complexity and predictive performance. ALAMO is especially useful when you need transparent, interpretable models with guaranteed optimality properties, often in engineering, scientific, and process systems applications.

You can find ALAMO tutorials on the official ALAMO Downloads page, which includes example files, user guides, and documentation to help you get started. For additional help, you can also email info@minlp.com.

Yes, ALAMO includes examples that demonstrate constrained regression, such as enforcing monotonicity or bounding model outputs. These examples are available in the example files provided on the ALAMO Downloads page. For using the constrained regression feature, please see Section 6.4 in the ALAMO user manual.

Adaptive sampling in ALAMO works by iteratively selecting new data points that maximize improvement in the model. It poses this as a black-box optimization problem using a surrogate model to identify high-uncertainty regions. The process continues until a stopping criterion is met, such as a target error or point limit.

The goal is to minimize costly data evaluations while building an accurate, interpretable model.

ALAMO requires at least one initial data point during the sampling stage. This point serves as the starting reference for building and refining the surrogate model. If no data is provided, ALAMO cannot evaluate model accuracy or guide sampling, and will terminate with an error.

The options under the RUN tab depend on your modeling goals. Here is a general guidance:

  • Enable Adaptive Sampling – Select if you want ALAMO to iteratively sample new data points to improve model accuracy.

  • Use Simulator – Check this if you are linking ALAMO to an external simulator for data generation.

  • Save Surrogate Model – Select if you want to export the final model for reuse or analysis.

  • Cross Validation – Useful if you want to evaluate model performance using subsets of the data.

For detailed configuration, refer to the demos here and here. You can also 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.

Licensing

To request an ALAMO license:

  1. Please visit the ALAMO Licenses page to view available types and pricing. Academic users, CAPD sponsors, and DOE researchers qualify for free licenses. 

  2. Send an email to sales@minlp.com with the following information:

    1. Your name, email, and institution

    2. License type (e.g., annual single-user)

We will send payment instructions (if applicable), followed by your license file and activation details.

ALAMO does not offer a free trial for commercial use. However, commercial users can purchase a monthly license at a low cost to evaluate the software. If you later purchase an annual or perpetual license, the cost of your initial monthly license can be credited toward the upgrade.

Yes! Researchers affiliated with U.S. national laboratories can create a user account and request a free license here. If you have questions, email info@minlp.com.

If you requested an ALAMO license but have not received it within 30 minutes, please:

  1. Check your spam or junk folder for an email from @minlp.com or @theoptimizationfirm.com.

  2. If not found, email info@minlp.com to follow up and confirm your request was received.

Delays can occasionally occur due to email filters or missing information in the request.

Browser errors during license registration are often due to:

  • Network restrictions (e.g., firewalls on institutional or government networks) 

  • Outdated browsers or unsupported versions

  • Disabled JavaScript or strict browser privacy settings

Try using a different browser (e.g., Chrome or Firefox) or network. If the issue persists, contact info@minlp.com to generate a license for you.

Go to https://minlp.com/baron-licenses-capd-sponsors and submit a new request. Renewals are free for active sponsors.

Usage Tips

ALAMO communicates with external simulators using text files. To use a simulator, you must provide a wrapper script that:

  1. Reads input.txt – contains the points ALAMO wants to simulate.
  2. Calls your simulator – runs simulations at those points.
  3. Writes output.txt – returns the results for ALAMO to read.

Example Setup

Example wrappers are included in the examples folder:

  • Windows: C:\alamo\examples
  • Linux: /usr/local/alamo/examples

One useful example is in the batpython folder:

  • In e1.alm, the line simulator e1.bat tells ALAMO to use e1.bat as the simulator wrapper.
  • e1.bat runs: 
    python2.7 C:\alamo\e1.py 
    (Replace python2.7 with the version installed on your system.)

In e1.py:

  • Line 28 performs the simulation (e.g., x^2).
  • Other lines handle I/O — reading from input.txt and writing to output.txt.

Customizing for Your Simulator

To integrate your own simulator, replace line 28 of e1.py with code that:

  • Launches your simulator
  • Reads input(s) from input.txt
  • Writes results to output.txt

Examples for Python, MATLAB, and executable-based simulators are included in the ALAMO software package.

In SIMOUT mode, your simulator must return one line per evaluated point, with:

  • NINPUTS real values (input variables)
  • NOUTPUTS real values (output results)
  • All values must be space-separated

Each line should contain NINPUTS + NOUTPUTS real numbers. ALAMO reads these lines from the output file to match simulation points with their results.

Yes, ALAMO can work with Python-based data or simulators. You will need to create a Python wrapper script that:

  • Reads input points from input.txt
  • Runs your Python code or simulator
  • Writes results to output.txt

Example scripts are available in the examples folder of your ALAMO installation (e.g., batpython/e1.py) and can be adapted to your setup.

Yes, you can use Aspen or GAMS with ALAMO by calling them from a wrapper script. The wrapper can be written in Python, Fortran, C, bash, or batch and should:

  1. Read input points from input.txt
  2. Use a system call to run the Aspen or GAMS executable
  3. Write simulation results to output.txt

This setup allows ALAMO to interface with almost any simulator that can be executed from the command line.

You do not need to manually split your data when using ALAMO. Unlike other modeling techniques—such as neural networks—that require separate training, validation, and testing sets, ALAMO uses information criteria (e.g., BIC, AIC) that are mathematically equivalent to leave-one-out cross-validation.

This means:

  • No separate test set is required
  • All your data can be used for model building
  • Fewer measurements are needed compared to methods like neural networks

This makes ALAMO especially efficient when working with limited data.

While ALAMO does not require data splitting, it provides options if you want to separate data for testing or prediction:

  • NPREDDATA – Specifies points used only for prediction, not model training.
  • NVALSETS and NVALDATA – Define validation sets to test model performance.

These options let you assess predictions on selected data without impacting model training.

You cannot directly set NINPUTS in the GUI. It is not required—once you specify NOUTPUTS, ALAMO automatically calculates NINPUTS by subtracting NOUTPUTS from the total number of columns in your spreadsheet.

INITIALPOINTS defines the total number of data points available before model building begins. It is used with:

  • NDATA – Number of pre-existing measurements provided by the user
  • NSAMPLE – Number of points ALAMO should generate through sampling

Behavior depends on whether INITIALPOINTS is specified:

  • If INITIALPOINTS is declared, ALAMO sets NSAMPLE = INITIALPOINTS - NDATA (ignoring any provided NSAMPLE value).
  • If INITIALPOINTS is not declared, ALAMO sets INITIALPOINTS = NDATA + NSAMPLE.

This lets you control how much data is available before model training begins.

We recommend using Java version 21.0.1 (released on 2023-10-17) or newer. Make sure to install the Java Development Kit (JDK)—the Java Runtime Environment (JRE) alone is not sufficient.

Error Messages and Support

This error means ALAMO was launched without a required input file. To fix it, provide an ALAMO input file (e.g., example.alm) as a command-line argument when starting ALAMO. 

This error means ALAMO could not locate or run the simulator. To resolve it:

  • Ensure the simulator exists and is accessible from your system's PATH, or
  • Specify the full path to the simulator using ALAMO’s SIMULATOR option.

Note: ALAMO runs the simulator in a scratch directory, so the simulator should not rely on relative paths to locate other files or programs. Use absolute paths where needed.

Make sure you are using the latest version of ALAMO and generate a new license online. If the error persists, please send us a screenshot of ALAMO's output so we can help diagnose the issue.

  • For Windows: Follow the instructions here.
  • For Mac: Follow the instructions here.

After making the changes, restart your terminal and operating system to apply the updated path.

The issue is likely due to an insufficient Java version. We recommend updating to the most recent version of Java and installing the Java Development Kit (JDK).

This issue is likely related to your Java version. We recommend using Java version 21.0.1 (released on 2023-10-17) or a newer version to ensure proper functionality of the GUI.

To get technical support, email info@minlp.com. Please include a screenshot of any warning or error messages you are receiving. This will help our technical team investigate the issue and provide more accurate assistance.