Especifica los detalles de los envíos no realizados en una solución. En casos triviales o si podemos identificar la causa de la omisión, informamos el motivo aquí.
Representación JSON |
---|
{
"index": integer,
"label": string,
"reasons": [
{
object ( |
Campos | |
---|---|
index |
El índice corresponde al índice del envío en el |
label |
Copia del |
reasons[] |
Una lista de los motivos que explican por qué se omitió el envío. Consulta el comentario de más arriba |
Motivo
Aquí se indicarán los motivos por los que se omitió el envío. Si el motivo no es el mismo para todos los vehículos, reason
tendrá más de 1 elemento. Un envío omitido no puede tener motivos duplicados, es decir, todos los campos son iguales, excepto exampleVehicleIndex
. Ejemplo:
reasons {
code: DEMAND_EXCEEDS_VEHICLE_CAPACITY
exampleVehicleIndex: 1
exampleExceededCapacityType: "Apples"
}
reasons {
code: DEMAND_EXCEEDS_VEHICLE_CAPACITY
exampleVehicleIndex: 3
exampleExceededCapacityType: "Pears"
}
reasons {
code: CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT
exampleVehicleIndex: 1
}
El envío omitido no es compatible con todos los vehículos. Los motivos pueden ser diferentes para todos los vehículos, pero se superaría la capacidad de las “Manzanas” de al menos un vehículo (incluido el vehículo 1), se superaría la capacidad “Peras” de al menos un vehículo (incluido el vehículo 3) y se superaría el límite de distancia de al menos un vehículo (incluido el vehículo 1).
Representación JSON |
---|
{
"code": enum ( |
Campos | |
---|---|
code |
Consulta los comentarios de Code. |
exampleExceededCapacityType |
Si el código de motivo es |
exampleVehicleIndex |
Si el motivo está relacionado con una incompatibilidad de un vehículo de envío, este campo proporciona el índice de un vehículo relevante. |
Código
Código que identifica el tipo de motivo El orden aquí no tiene sentido. En particular, no indica si un motivo determinado aparecerá antes que otro en la solución, si se aplican ambos.
Enumeradores | |
---|---|
CODE_UNSPECIFIED |
Nunca debe usarse. Si no podemos comprender por qué se omitió un envío, simplemente te devolvemos un conjunto vacío de motivos. |
NO_VEHICLE |
No hay ningún vehículo en el modelo que haga que todos los envíos sean inviables. |
DEMAND_EXCEEDS_VEHICLE_CAPACITY |
La demanda del envío supera la capacidad de un vehículo para algunos tipos de capacidad, uno de los cuales es de exampleExceededCapacityType . |
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT |
La distancia mínima necesaria para realizar este envío, es decir, desde la Ten en cuenta que para este cálculo usamos las distancias geodésicas. |
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT |
El tiempo mínimo necesario para realizar este envío, incluidos el tiempo de viaje, el tiempo de espera y el tiempo de servicio, supera los Nota: El tiempo de viaje se calcula en el mejor de los casos, es decir, como una distancia geodésica x 36 m/s (aproximadamente 130 km/hora). |
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TRAVEL_DURATION_LIMIT |
Igual que lo anterior, pero solo comparamos la duración mínima de viaje y el travelDurationLimit del vehículo. |
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TIME_WINDOWS |
En el mejor de los casos, el vehículo no puede realizar este envío (consulta CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT para obtener el cálculo del tiempo) si comienza la hora de inicio más temprana. En este caso, el tiempo total provocaría que el vehículo finalice después de la última hora de finalización. |
VEHICLE_NOT_ALLOWED |
El campo allowedVehicleIndices del envío no está vacío y este vehículo no le pertenece. |