DOCS Overview

BALDES documentation

New to BALDES? Follow Your first solve to build the CLI, run a small instance, and understand the result. Commands in these guides run from the repository root.

Choose your task

I want to… Start here
Run a small example and understand its output Your first solve
Find a feasible routing solution quickly HGS and CLI usage
Search for an integer solution with bounds Branch-and-price tree
Model customer data in Python Python API
Use multiple route families in one master Multi-pricing
Configure backends or troubleshoot a build Build and installation

Getting started

Solver

Reference

Extensions and modeling

Benchmarks

  • Root benchmarks: published root relaxation timings and measurement setup.

Capabilities and interfaces

Operation Rust CLI Python Backend
RCSP pricing and enumeration Yes Through routing solves Low-level Solver Core Rust
Routing root relaxation Yes Default vrptw / cvrp mode pybaldes.solve_root Clp model store; Clp/IPM/optional HiGHS solves
Branch-and-price tree Yes --tree Not exposed Clp model store; Clp/IPM/optional HiGHS solves
Complete enumerated node MIP Yes, opt-in --tree --enumerated-mip Not exposed Clp + HiGHS
Generic mixed-integer master solve highs::solve_integer Not exposed directly Not exposed HiGHS

The vrptw and cvrp routing tree uses one pricing network. For models with multiple route families, use the multi-pricing interface, including its CLI and Python APIs and assignment tree. Its supported branching families and solve limitations differ from the single-network routing tree.

Root Optimal means the LP relaxation converged. Tree Optimal means the integer routing gap closed within the configured tolerances. A feasible restricted-column solution supplies an incumbent; its objective alone does not prove a lower bound for the full routing problem.

Rust module organization

Core modules implement graphs, labeling, pricing, cuts, enumeration and the master. master::mp coordinates one master with multiple pricing subproblems and belongs to the core master framework. Rust callers can also use master::mp::solve_master for original master variables with no pricing subproblems.

Module Purpose
extensions::hgs Hybrid Genetic Search and primal heuristics
extensions::ipm Native interior-point LP backend
extensions::evrp Electric-vehicle routing models and charging schedules
extensions::pstep P-step CVRP LP with parallel bucket pricing and reference enumeration
master::mp Shared rows, per-subproblem multiplicities and node lifecycle

extensions groups algorithms and specialized models in the same crate; it does not imply runtime plugins or new build features. Existing baldes::hgs, baldes::ipm, baldes::evrp and master::networks paths remain compatibility re-exports. New Rust code should use the module paths above. CLI JSON fields and Python names such as NetworkProblem and solve_networks stay compatible.

BALDES · Rust tools for vehicle routing · MIT license