Class Code (1.3.2)

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.