Roadmap#

This document outlines the development roadmap for the Routing library.


Current Status#

Completed Features#

Composable Problem API

ECS-inspired attribute system for building any VRP variant at runtime without inheritance hierarchies.

Multiple Solvers

GA, MA, VNS, PSO, Local Search metaheuristics with unified API.

Exact Methods

MIP (CPLEX, HiGHS) and CP (CPLEX CP Optimizer, OR-Tools) solvers.

Plugin Architecture

Extensible system for attributes, constraints, and solvers.

Benchmark Readers

Solomon (CVRPTW) and TSPLIB (CVRP) format support.

Python Bindings

Native Python API using nanobind with pip install support.


In Development#

Feature

Status

Description

XCSP3 Export

Active

Export problems to XCSP3 format for external CP solvers

Incremental Evaluation

Planned

O(1) move cost evaluation with delta caching

Documentation

Active

Comprehensive API docs and tutorials


Planned Features#

High Priority#

Feature

Description

Target

Hybrid CP + LNS

CP-based repair operator in Large Neighborhood Search

Q1 2026

ALNS Solver

Adaptive Large Neighborhood Search with operator selection

Q1 2026

Parallel Solving

Multi-threaded solver orchestration and portfolio

Q2 2026

Medium Priority#

Feature

Description

JSON/YAML Format

Universal instance format for all problem types

Solution Visualization

Plot routes and solution statistics

Warm Starting

Initialize solvers with existing solutions

Callback System

Progress callbacks for monitoring long solves

Future Considerations#

Feature

Description

GPU Acceleration

CUDA-based distance matrix computation

Cloud Deployment

REST API and containerized solving

Machine Learning

ML-based operator selection and parameter tuning


Architecture Overview#

                    ┌─────────────────────────────────────┐
                    │          Applications               │
                    │   (Python scripts, C++ examples)    │
                    └─────────────────────────────────────┘
                                      │
                    ┌─────────────────────────────────────┐
                    │          Python Bindings            │
                    │           (nanobind)                │
                    └─────────────────────────────────────┘
                                      │
     ┌────────────────────────────────┼────────────────────────────────┐
     │                                │                                │
┌────┴────┐                    ┌──────┴──────┐                   ┌─────┴─────┐
│ Problem │                    │   Solvers   │                   │  Plugins  │
│  Layer  │                    │    Layer    │                   │   Layer   │
├─────────┤                    ├─────────────┤                   ├───────────┤
│Attributes│                   │GA, MA, VNS  │                   │Attributes │
│Entities  │                   │PSO, LS      │                   │Constraints│
│Distances │                   │MIP, CP      │                   │Evaluators │
└─────────┘                    └─────────────┘                   └───────────┘
                                      │
                    ┌─────────────────────────────────────┐
                    │       Optimization Backends         │
                    │  CPLEX │ HiGHS │ OR-Tools │ Gurobi  │
                    └─────────────────────────────────────┘

Version History#

v0.3.0 (Current)#

  • Composable attribute system

  • OR-Tools CP-SAT backend

  • HiGHS MIP backend

  • Python bindings with pip install

  • Documentation site

v0.2.0#

  • Plugin architecture

  • MIP solver (CPLEX)

  • CP Optimizer backend

  • Solomon and TSPLIB readers

v0.1.0#

  • Initial release

  • Genetic Algorithm solver

  • Basic VRP/CVRP/CVRPTW support


Contributing to the Roadmap#

Have ideas for new features? We welcome contributions!


License#

This project is available for research purposes at non-commercial and academic institutions.