mapbox / mapbox/node-or-tools

Option to force all vehicles to service locations

Open
#5 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
155
Forks
47
PR merge metrics
No merged PRs in 30d

Description

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:

```c++
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);
}
```

Contributor guide

Open the contributing guide

Research direction

Start by reading the linked fairness-constraint issue and locating the vehicle-routing setup in the bindings; the issue provides the proposed NextVar constraint. Check how an option is exposed, then verify with a routing example that every vehicle is required to service a location.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, node.js
Domain
backend
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.