- This feature is configurable via
.json
input, without the need for code customization. - Available for both the Marketplace app and Platform. You can find a list of all available features here.
- This how-to guide assumes you already completed the get started with vehicle routing tutorial.
Field name | Required | Data type | SI Unit | Defined on | Example | Configurable via defaults |
---|---|---|---|---|---|---|
precedes | No | array of string or string | NA | stop | {"precedes": ["foo", "bar"]} | ➖ |
succeeds | No | array of string or string | NA | stop | {"succeeds": ["foo", "bar"]} | ➖ |
The precedence constraint is used to indicate that a specific stop must be visited (pickup) before a different one (dropoff). You can use the precedes
and succeeds
fields on the stops
of the input to work with precedence constraints as follows.
precedes
: ensures that the pickup is visited before the dropoff. It is applied to the individual stop that must be visited before the stopid
defined in theprecedes
field.succeeds
: can be used to model the precedence relation the other way around. Using the same example as above, the opposite would be specified: on the dropoff stop we define that it needs to succeed its pickup counterpart.
Both precedes
and succeeds
may be specified as:
- a
string
value that specifies a relationship with a single stop given by itsid
. - an
array
ofstring
values that specifies a relationship with multiple stops given by theirid
s. This array is unordered meaning that the order of the stops in the array will not be enforced in the assigned route.
Here is an example defining both types of precedence relationships and their types. A sample output obtained after solving the problem is also shown.
- All stops that have a precedence relationship that groups them together will be assigned to the same vehicle in the final solution.
- Both,
precedes
andsucceeds
, can be used in combination to model more complex precedence relationships.