Code(value)
Code identifying the reason type. The order here is meaningless. In particular, it gives no indication of whether a given reason will appear before another in the solution, if both apply.
Values:
CODE_UNSPECIFIED (0):
This should never be used. If we are unable
to understand why a shipment was skipped, we
simply return an empty set of reasons.
NO_VEHICLE (1):
There is no vehicle in the model making all
shipments infeasible.
DEMAND_EXCEEDS_VEHICLE_CAPACITY (2):
The demand of the shipment exceeds a vehicle's capacity for
some capacity types, one of which is
example_exceeded_capacity_type
.
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT (3):
The minimum distance necessary to perform this shipment,
i.e. from the vehicle's start_location
to the shipment's
pickup and/or delivery locations and to the vehicle's end
location exceeds the vehicle's route_distance_limit
.
Note that for this computation we use the geodesic
distances.
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT (4):
The minimum time necessary to perform this shipment,
including travel time, wait time and service time exceeds
the vehicle's `route_duration_limit`.
Note: travel time is computed in the best-case scenario,
namely as geodesic distance x 36 m/s (roughly 130 km/hour).
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TRAVEL_DURATION_LIMIT (5):
Same as above but we only compare minimum travel time and
the vehicle's `travel_duration_limit`.
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TIME_WINDOWS (6):
The vehicle cannot perform this shipment in the best-case
scenario (see
`CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT` for
time computation) if it starts at its earliest start time:
the total time would make the vehicle end after its latest
end time.
VEHICLE_NOT_ALLOWED (7):
The `allowed_vehicle_indices` field of the shipment is not
empty and this vehicle does not belong to it.