mapbox / node-or-tools

Node.js bindings for or-tools vehicle routing problems
MIT License
147 stars 48 forks source link

Option to force all vehicles to service locations #5

Open daniel-j-h opened 7 years ago

daniel-j-h commented 7 years ago

We should provide an option to force all vehicles on the road. Probably goes hand in hand with the fairness constraint, see https://github.com/mapbox/node-or-tools/issues/1.


Implementation: remove the depot from the start's NextVar, so vehicles have to service locations:

model.CloseModel()

for (auto vehicle = 0; vehicle < numVehicles; ++vehicle) {
  IntVar* const start = routing.NextVar(routing.Start(vehicle));
  for (auto node = routing.Size(); node < routing.Size() + routing.vehicles(); ++node)
    start->RemoveValue(node);
}