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
Build a Python application or custom pricing loop pyBaldes documentation
Use multiple route families in one master Multi-pricing
Configure backends or troubleshoot a build Build and installation

Reading paths

  • CLI users: first solve → CLI reference → solver concepts → tree/cut guides.
  • Python users: pyBaldes installation → quickstart → routing, pricing, or network modeling.
  • Rust contributors: build guide → source layout → model/solver contracts → documentation maintenance.

Getting started

pyBaldes: Python documentation

A separate handbook for the Python package, with its own entry point and API reference.

Solver

Reference

Extensions and modeling

Benchmarks

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/Gurobi solves
Branch-and-price tree Yes --tree Not exposed Clp model store; Clp/IPM/optional HiGHS/Gurobi solves
Shared-master root and integer tree Yes multi-pricing solve_networks Clp; HiGHS for optional enumerated MIP
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