LumenOps Control Tower
Smart street-lighting field service · Noord-Brabant, NL · fictitious data
07:30
idle

Network map

Dispatch board

Bars = jobs · gaps = travel · red edge = SLA breach · click a bar for “why?”

Objective weights

1.0
1.0
30
6000
0.60

The optimizer is an Adaptive Large Neighborhood Search (regret-2 insertion, Shaw/worst/random removal, simulated-annealing acceptance) — the algorithm family production routing engines use. A MILP reference proves the model exact on small instances (model/).

Convergence run the optimizer to see the search

Objective breakdown

Crew utilization

Why is this job on this crew?

Every assignment is auditable: marginal cost of the current position, every alternative crew priced or ruled out with the binding constraint. Explainability of optimizer decisions is a documented, unsolved adoption barrier in commercial dispatch tools — see the Model tab.

Pick a job — from this list, the map, or the dispatch board.

Inject a disruption

Scheduled day events

Re-plan proposal stability-aware

When a disruption lands, re-optimize to see a change-minimal proposal with a plan-churn diff — accept or reject it like a dispatcher would.
Freeze a plan as a scenario, change weights or disruptions, re-optimize, and compare outcomes side-by-side.