Especifica os detalhes dos envios não realizados em uma solução. Para casos triviais e/ou se conseguirmos identificar a causa da omissão, vamos informar o motivo aqui.
| Representação JSON | 
|---|
{
  "index": integer,
  "label": string,
  "reasons": [
    {
      object ( | 
            
| Campos | |
|---|---|
index | 
              
                 
 O índice corresponde ao índice do envio na   | 
            
label | 
              
                 
 Cópia do   | 
            
reasons[] | 
              
                 
 Uma lista de motivos que explicam por que o envio foi ignorado. Consulte o comentário acima de   | 
            
penaltyCost | 
              
                 
 Esta é uma cópia do  Experimental: a existência ou o comportamento desse campo pode mudar no futuro.  | 
            
estimatedIncompatibleVehicleRatio | 
              
                 
 Proporção estimada de veículos que não podem realizar esse envio por pelo menos um dos motivos abaixo. Observação: esse campo só é preenchido quando os motivos envolvem um veículo. Experimental: a existência ou o comportamento desse campo pode mudar no futuro.  | 
            
Motivo
Se pudermos explicar por que o envio foi pulado, os motivos serão listados aqui. Se o motivo não for o mesmo para todos os veículos, reason terá mais de um elemento. Um envio pulado não pode ter motivos duplicados, ou seja, quando todos os campos são iguais, exceto exampleVehicleIndex. Exemplo:
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
}
A remessa pulada é incompatível com todos os veículos. Os motivos podem ser diferentes para todos os veículos, mas a capacidade de "Maçãs" de pelo menos um veículo seria excedida (incluindo o veículo 1), a capacidade de "Peras" de pelo menos um veículo seria excedida (incluindo o veículo 3) e o limite de distância de pelo menos um veículo seria excedido (incluindo o veículo 1).
| Representação JSON | 
|---|
{
  "code": enum ( | 
              
| Campos | |
|---|---|
code | 
                
                   
 Consulte os comentários do código.  | 
              
exampleVehicleIndices[] | 
                
                   
 Igual a  Experimental: a existência ou o comportamento desse campo pode mudar no futuro.  | 
              
exampleExceededCapacityType | 
                
                   
 Se o código do motivo for   | 
              
exampleVehicleIndex | 
                
                   
 Se o motivo estiver relacionado a uma incompatibilidade entre o envio e o veículo, esse campo vai mostrar o índice de um veículo relevante.  | 
              
Código
Código que identifica o tipo de motivo. A ordem aqui não tem sentido. Em particular, não há indicação de que um determinado motivo vai aparecer antes de outro na solução, se ambos se aplicarem.
| Enums | |
|---|---|
CODE_UNSPECIFIED | 
                Isso nunca deve ser usado. | 
NO_VEHICLE | 
                Não há nenhum veículo no modelo, o que torna todos os envios inviáveis. | 
DEMAND_EXCEEDS_VEHICLE_CAPACITY | 
                A demanda do envio excede a capacidade de um veículo para alguns tipos de capacidade, um deles é exampleExceededCapacityType. | 
              
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT | 
                A distância mínima necessária para realizar esse envio, ou seja, de  Para essa computação, usamos as distâncias geodésicas.  | 
              
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT | 
                O tempo mínimo necessário para realizar esse envio, incluindo o tempo de viagem, de espera e de atendimento, excede o  Observação: o tempo de viagem é calculado no melhor cenário, ou seja, como distância geodésica x 36 m/s (aproximadamente 130 km/hora).  | 
              
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TRAVEL_DURATION_LIMIT | 
                Igual ao exemplo acima, mas só comparamos o tempo mínimo de viagem e a travelDurationLimit do veículo. | 
              
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TIME_WINDOWS | 
                O veículo não pode realizar esse envio no melhor cenário (consulte CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT para o cálculo de tempo) se ele começar no horário de início mais cedo: o tempo total faria o veículo terminar depois do horário de término mais recente. | 
              
VEHICLE_NOT_ALLOWED | 
                O campo allowedVehicleIndices da remessa não está vazio e o veículo não pertence a ela. | 
              
VEHICLE_IGNORED | 
                O campo  Experimental: a existência ou o comportamento desse campo pode mudar no futuro.  | 
              
SHIPMENT_IGNORED | 
                O campo  Experimental: a existência ou o comportamento desse campo pode mudar no futuro.  | 
              
SKIPPED_IN_INJECTED_SOLUTION_CONSTRAINT | 
                O envio é pulado no  Experimental: a existência ou o comportamento desse campo pode mudar no futuro.  | 
              
VEHICLE_ROUTE_IS_FULLY_SEQUENCE_CONSTRAINED | 
                A flexibilização da rota do veículo especificada no  Experimental: a existência ou o comportamento desse campo pode mudar no futuro.  | 
              
ZERO_PENALTY_COST | 
                O custo da multa é zero. Embora isso possa ser útil como uma opção de modelagem avançada, também pode explicar por que um envio foi ignorado. Experimental: a existência ou o comportamento desse campo pode mudar no futuro.  |