● 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.
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),
])) 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
More results
| Problem | Measure | optimaru | OR-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.
03 — Solutions
22 use cases, four families.
Each one is a working model with its own constraints, tests and benchmarks — a starting point we adapt to your rules, not a slide.
- 01 Routing & Logistics Vehicle routing (VRP) · Pickup & delivery (PDPTW) · Order picking · Facility location 4 use cases →
- 02 Scheduling Employee & nurse rostering · Flight crew scheduling · Maintenance scheduling · Project scheduling (RCPSP) · Semiconductor fab scheduling · Production line sequencing · Task assignment · Meeting scheduling 8 use cases →
- 03 Timetabling School timetabling · Conference scheduling · Sports league scheduling · Tournament scheduling 4 use cases →
- 04 Allocation & Packing Hospital bed allocation · Bin packing · Knapsack & selection · Assembly line balancing · Quadratic assignment · Max-cut & partitioning 6 use cases →
04 — Products
Built on the same engine.
Early access
optimaru Timetabling
School timetables in minutes instead of weeks. Import your teaching assignments from a spreadsheet, set the rules, generate, then inspect and fine-tune — on the web and on mobile.
Learn more →Open source · Apache 2.0
optimaru Engine
The solver itself, with Python packages for every use case. Use it directly, embed it in your product, or have us build the model with you.
Learn more →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.