Quick Start

Run Local-MIP

Install the Python bindings in a local virtual environment, or build the CLI solver from source when you need a local binary, C++ APIs, examples, or callbacks.

Fastest Path

Install with pip

For Linux x86_64, the published Python bindings are the quickest way to try Local-MIP. The command below creates a local virtual environment first, so it works on Debian/Ubuntu systems that block global pip installs.

Install
python3 -m venv .venv && .venv/bin/python -m pip install localmip
Import check
.venv/bin/python -c "import localmip_py as lm; print(lm.LocalMIP)"

Use the source build below when you need the standalone Local-MIP CLI, the static C++ library, or the repository examples.

Before Source Builds

Requirements

The source CLI path needs the build tools below. The PyPI path above needs Python 3.8+ on Linux x86_64 and the standard venv module.

CMake3.15+
CompilerC++20 GCC/Clang
Toolsbash, make, POSIX utilities
Source CLI Path

Build and Run in 3 Steps

These commands were verified against the current solver tree and keep the first run to 10 seconds.

Step 1

Download

Use a tagged source archive for a stable snapshot, or clone the repository for the latest development version.

Step 2

Build

From the repository root, start with the release build. Use ./build.sh all when you also need examples and Python bindings.

./build.sh release
Step 3

Run

Run from build/ so bundled test-set paths resolve correctly.

cd build
./Local-MIP -i ../test-set/2club200v15p5scn.mps -t 10

The build writes the solver binary and static library under build/. Use ./Local-MIP --help for the exact CLI flags in your version.

Basic Usage

Command-Line Parameters

A representative CLI invocation looks like this:

./Local-MIP --model_file <model_file> [options]

CLI flags support both short and long forms, for example -i and --model_file.

Representative options from the current CLI:
Flag Parameter Description Default
-i model_file Path to input model file (.mps/.lp) Required
-t time_limit Time limit in seconds 10
-s sol_path Path to output solution file (.sol) ""
-l log_obj Log objective values during search 1
-S random_seed Random seed (0 uses default) 0
Example
# Solve the bundled sample for 10 seconds and save a solution
cd build
./Local-MIP --model_file ../test-set/2club200v15p5scn.mps --time_limit 10 --sol_path quickstart.sol --log_obj 1
Using a Parameter Configuration File

Instead of passing all parameters via command line, you can use a configuration file:

cd build
./Local-MIP --param_set_file ../default.set --model_file ../test-set/2club200v15p5scn.mps

The repository includes default.set as a template with all available parameters and their default values. Its default time limit is 10 seconds.

Configuration file format
  • One parameter per line: parameter_name = value
  • Lines starting with # or ; are comments
  • Command-line arguments override values from the configuration file
After the First Run

Next Steps

Explore More

Docs and examples

Use the website pages for releases, tutorials, and runnable examples.

Run Tests

CTest workflow

Start with the fast unit-test subset from build/; reserve full CTest runs for longer development sweeps.

ctest --output-on-failure -R "^(api|callbacks|constraint_recognition|scoring|model_manager|reader|move_operations|neighbor_config)$"
References

Where to Look Next

These files contain the full setup details:

Checks

Troubleshooting

Build issue

CMake version too old

Install CMake 3.15 or later.

Build issue

C++20 compiler not found

Install a C++20-capable compiler (GCC or Clang) and ensure it is on your PATH.

Runtime issue

Cannot find input file

Run from the build/ directory or use absolute paths.

Runtime issue

Slow performance

Prefer a release build when you want the best runtime performance.

Support

Getting Help