Latest News from the Optimization Firm
Stay up-to-date with the latest releases and news. Sign up for our…
The Optimization Firm is building new software solutions for large-scale power systems.
Jan 17, 2019
BARON is still ahead of other competing MINLP solvers.
Published Feb. 28, 2017 Updated Feb. 25, 2022
This page is for general questions about using the MATLAB/BARON interface and solutions to common error messages. For further technical support, please contact info…
This page is for general questions about using BARON and solutions to common error messages. For further technical support, please contact info@minlp.com.

…
BAM (Branch-And-Model) is a derivative-free global optimization solver designed for problems where the objective or constraints are not available in algebraic form. It is ideal for simulation-based, experimental, or black-box optimization problems.
Use BAM when:
- You cannot write the problem in a closed-form equation.
- Your model is a simulator or experiment (black-box).
- Function evaluations are expensive.
- You want a global solution to high-dimensional or nonconvex problems.
BAM combines:
No. BAM is completely derivative-free. It uses function values only. No gradients or Hessians are needed.
BAM can handle:
- Continuous, integer, or categorical variables
- Nonconvex, discontinuous, or noisy functions
- Problems defined by simulators or experiments
- Data-driven optimization using previously collected evaluations
From the command line:
bam my_problem.bam
This runs BAM using the input file my_problem.bam.
A simple input file includes:
Number of variables (
nvars)Variable bounds (
xmin,xmax)Data provider executable (your simulator)
Input/output file names
Evaluation budget (
maxevals)
Example:
The data provider is your simulator or executable. BAM calls it to evaluate the objective function. The provider must:
- Read input variables from a file (
input.in) - Write a single output value to a file (
output.out)
Yes. BAM can use:
- Unevaluated points (initial guesses)
- Evaluated points (historical data)
This reduces function calls and helps warm-start the optimization.
BAM runs on:
- Windows
- Linux
- macOS
Installation is easy. Simply download and run the installer or unzip the archive available at BAM Downloads.
Yes. BAM requires a valid license file.
Options include:
- Free academic license
- Commercial license (with support and updates)
See BAM Licenses for details.
Sample input files are available at minlp.com/bam. The BAM manual also includes benchmark examples like the Six-Hump Camel function.
Please contact our technical team at info@minlp.com for support or licensing questions.
In SIMOUT mode, your simulator must return one line per evaluated point, with:
NINPUTSreal values (input variables)NOUTPUTSreal 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:
- Read input points from
input.txt - Use a system call to run the Aspen or GAMS executable
- 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.NVALSETSandNVALDATA– Define validation sets to test model performance.
These options let you assess predictions on selected data without impacting model training.