This page is for general questions about using BAM and solutions to common error messages. For further technical support, please email info@minlp.com.
Getting Started
What is BAM?
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.
When should I use BAM?
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.
What platforms does BAM run on?
BAM runs on:
- Windows
- Linux
- macOS
Installation is easy. Simply download and run the installer or unzip the archive available at BAM Downloads.
Problem Scope
What types of problems can BAM solve?
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
Does BAM require derivatives?
No. BAM is completely derivative-free. It uses function values only. No gradients or Hessians are needed.
Licensing
Do I need a license?
Yes. BAM requires a valid license file.
Options include:
- Free academic license
- Commercial license (with support and updates)
See BAM Licenses for details.
What types of licenses are available (academic, commercial)?
BAM offers three license types:
- Commercial License: Includes technical support and software updates.
- Academic License: Free for academic research and educational use.
- DOE License: Free for the U.S. Department of Energy.
See BAM Licenses to view options or contact sales@minlp.com for further information.
Usage Tips
How do I run BAM?
From the command line:
bam my_problem.bam
This runs BAM using the input file my_problem.bam
.
What is the data provider?
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
)
Can BAM start from existing data?
Yes. BAM can use:
- Unevaluated points (initial guesses)
- Evaluated points (historical data)
This reduces function calls and helps warm-start the optimization.
Error Messages and Support
Why did BAM terminate early?
Check the terminal or listing file (.lst
). BAM provides clear termination codes such as:
- Licensing error
- Input file error
- Simulator not returning valid output
- Function call or time limit reached
See the Error Messages section of the BAM User Manual for full details.
Where can I get help?
Please contact our technical team at info@minlp.com for support or licensing questions.