Указывает сведения о невыполненных отгрузках в решении. В тривиальных случаях и/или если мы можем определить причину пропуска, мы сообщаем о причине здесь.
| JSON-представление | 
|---|
{
  "index": integer,
  "label": string,
  "reasons": [
    {
      object ( | 
| Поля | |
|---|---|
 index |    Индекс соответствует индексу отгрузки в исходном   | 
 label |    Копия соответствующей   | 
 reasons[] |    Список причин, объясняющих, почему отгрузка была пропущена. См. комментарий выше.   | 
 penaltyCost |    Это копия  Экспериментально: поведение или существование этого поля может измениться в будущем.  | 
 estimatedIncompatibleVehicleRatio |   Приблизительное количество транспортных средств, которые не могут выполнить эту перевозку хотя бы по одной из приведенных ниже причин. Примечание. Это поле заполняется только в том случае, если причины связаны с транспортным средством. Экспериментально: поведение или существование этого поля может измениться в будущем.  | 
Причина
 Если мы сможем объяснить, почему отправка была пропущена, причины будут перечислены здесь. Если причина не одинакова для всех автомобилей, reason будет иметь более 1 элемента. Пропущенная отправка не может иметь повторяющихся причин, т. е. когда все поля одинаковы, за исключением exampleVehicleIndex . Пример:
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
}
Пропущенная поставка несовместима со всеми транспортными средствами. Причины могут быть разными для всех транспортных средств, но как минимум у одного автомобиля будет превышена вместимость «Яблок» (включая автомобиль 1), как минимум у одного автомобиля будет превышена мощность «Груш» (включая автомобиль 3) и как минимум у одного автомобиля будет превышен лимит расстояния (включая автомобиль 1).
| JSON-представление | 
|---|
{
  "code": enum ( | 
| Поля | |
|---|---|
 code |   Обратитесь к комментариям Кодекса.  | 
 exampleVehicleIndices[] |    То же, что и  Экспериментально: поведение или существование этого поля может измениться в будущем.  | 
 exampleExceededCapacityType |    Если код причины —   | 
 exampleVehicleIndex |   Если причина связана с несовместимостью груза и транспортного средства, в этом поле указывается индекс одного соответствующего транспортного средства.  | 
Код
Код, определяющий тип причины. Порядок здесь бессмысленен. В частности, он не дает указания на то, появится ли данная причина перед другой в решении, если обе применимы.
| Перечисления | |
|---|---|
 CODE_UNSPECIFIED | Это никогда не следует использовать. | 
 NO_VEHICLE | В модели нет транспортного средства, что делает все перевозки невозможными. | 
 DEMAND_EXCEEDS_VEHICLE_CAPACITY |  Потребность в отправке превышает вместимость транспортного средства для некоторых типов мощности, одним из которых является exampleExceededCapacityType . | 
 CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT |  Минимальное расстояние, необходимое для выполнения этой перевозки, т. е. от  Обратите внимание, что для этого расчета мы используем геодезические расстояния.  | 
 CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT |  Минимальное время, необходимое для выполнения этой перевозки, включая время в пути, время ожидания и время обслуживания, превышает  Примечание: время в пути рассчитывается в лучшем случае, а именно как геодезическое расстояние x 36 м/с (примерно 130 км/час).  | 
 CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TRAVEL_DURATION_LIMIT |  То же, что и выше, но мы сравниваем только минимальное время в пути и travelDurationLimit транспортного средства. | 
 CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TIME_WINDOWS |  Транспортное средство не сможет выполнить эту доставку в лучшем случае (см. CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT для расчета времени), если она начнется в самое раннее время начала: общее время приведет к тому, что транспортное средство закончится после самого последнего времени окончания. | 
 VEHICLE_NOT_ALLOWED |  Поле allowedVehicleIndices отправления не пустое и данное транспортное средство ему не принадлежит. | 
 VEHICLE_IGNORED |  Поле  Экспериментально: поведение или существование этого поля может измениться в будущем.  | 
 SHIPMENT_IGNORED |  Поле  Экспериментально: поведение или существование этого поля может измениться в будущем.  | 
 SKIPPED_IN_INJECTED_SOLUTION_CONSTRAINT |  Отгрузка пропускается в  Экспериментально: поведение или существование этого поля может измениться в будущем.  | 
 VEHICLE_ROUTE_IS_FULLY_SEQUENCE_CONSTRAINED |  Ослабление маршрута транспортного средства, указанное в  Экспериментально: поведение или существование этого поля может измениться в будущем.  | 
 ZERO_PENALTY_COST | Отправка имеет нулевую стоимость штрафа. Хотя это может быть полезно в качестве расширенного варианта моделирования, оно также может постфактум объяснить, почему отгрузка была пропущена. Экспериментально: поведение или существование этого поля может измениться в будущем.  |