Skip to content

●  Combinatorial optimization

Hard planning problems,
cleared to go.

optimaru is an optimization engine for the problems operations teams actually face: routes, rosters, timetables and production plans with messy, real-world constraints — answered in seconds.

School timetable · Class 2-3

24 classes · 40 teachers · 25 rooms

Teacher · class · room clashes
0
First conflict-free timetable
11 ms

01 — Engine

One engine. Constraints as data.

The core is a dependency-free C++17 metaheuristic engine with Python bindings. Each problem is a small domain model on top of it; each business rule or preference is a constraint plugin you add, remove, weight and tune — no solver code changes.

Fast where it matters
Incremental scoring re-evaluates only what a move touches, so the search explores millions of candidate changes per second on a single core.
Measured, not claimed
We benchmark against established solvers such as Google OR-Tools and on public instances like CVRPLIB, Li & Lim and Patterson. Every solution is re-checked by an independent validator.
pip install optimaru
One Python package with every use case, compiled for Linux, macOS and Windows. Solve in a few lines, or embed it in your own service.
Constraints as plugins
Every hard rule and preference is a plugin with a name, a weight and a hard/soft level. Add or remove them per project; the solver core never changes, and the same rule means the same thing in the engine, the reference model and the UI.
$ pip install optimaru

from optimaru import vehicle_routing as vrp
from optimaru.vehicle_routing.constraints import (
    get_constraints, vehicle_capacity, maximize_visits_assigned,
    MinimizeTravelTime, MaxRouteDuration,
)

config = vrp.SolverConfig()
config.spent_limit_seconds = 5
solver = vrp.Solver(config)

# Plug in only the rules you need, weighted your way.
solver.solve_with_constraints(plan, get_constraints([
    vehicle_capacity,
    maximize_visits_assigned,
    MinimizeTravelTime(weight=10),
    MaxRouteDuration(hard=True),
]))
Vehicle routing: the cost function is just a list of plugins.

02 — Benchmarks

Measured against OR-Tools.

Same instances, same time budget, every result re-checked. Where the two tie, we say so.

School timetabling — total penalty · lower is better

All hard rules satisfied by both. Lower penalty means fewer broken preferences.

  • optimaru
  • OR-Tools CP-SAT
S · 6 classes
310 30% lower
443
M · 12 classes
1,176 22% lower
1,511
L · 24 classes
2,752 34% lower
4,164

More results

ProblemMeasureoptimaruOR-Tools
School timetabling · 24 classes First conflict-free timetable 11 ms None within 10 s
Vehicle routing · CVRPLIB A-n32-k5 Gap to known optimum 5.48% 24.36%
Pickup & delivery · Li & Lim lc101 Total distance 156 tie 156
Project scheduling · Patterson Pat1 Makespan 67 tie 67

Same instance and the same 10-second budget for both; every solution re-checked by an independent validator. OR-Tools CP-SAT ran with 8 workers on timetabling, 1 elsewhere. Measured August 2026.

05 — Why we exist

Combinatorial optimization runs quietly behind deliveries, hospital rosters and school timetables — yet most teams still choose between expensive black-box solvers and research code that breaks on the first real constraint. We started optimaru to build an open-source engine that is easy to use and holds up in the real world.

— Seunghyun Kang, Founder · About us →

Have a routing or scheduling problem?

Send us the rules you work with today. We will tell you honestly whether optimization helps, and how much.

Talk to us