Hard constraint to keep visit dependency pairs assigned together (no orphaned preceding visits)
H
Harry Pickthall
For a visit dependency A→B, add a hard constraint guaranteeing that A is never assigned while B is unassigned — so the pair is either planned together or not at all.
Current gap
The existing prerequisite-assigned constraint ensures B is never scheduled without A, but nothing enforces the other direction. The solver can schedule A and leave B unassigned — including onto a vehicle that, under coordination: SAME_VEHICLE, can never serve B (outside its coverage area or missing a required skill), making B permanently unassignable with no hard score impact.
Use case
Our preceding visits are parts collections from depots feeding a repair job on the same vehicle. A parts pickup without its repair job is pure wasted work: an engineer drives to collect parts for a visit that isn't happening — and if the pickup lands on a van that can't reach or do the job, the pair can never be completed together. This gap has forced us to move the affected jobs back to manual planning.
Log In