OptimizeToursResponse
Оптимизируйте свои подборки
Сохраняйте и классифицируйте контент в соответствии со своими настройками.
Ответ после решения задачи оптимизации тура, содержащий маршруты, по которым движется каждое транспортное средство, пропущенные поставки и общую стоимость решения.
Поля |
---|
routes[] | object ( ShipmentRoute ) Маршруты рассчитываются для каждого транспортного средства; i-й маршрут соответствует i-му транспортному средству в модели. |
requestLabel | string Копия OptimizeToursRequest.label , если в запросе была указана метка. |
skippedShipments[] | object ( SkippedShipment ) Список всех отправлений пропущен. |
validationErrors[] | object ( OptimizeToursValidationError ) Список всех ошибок валидации, которые нам удалось обнаружить самостоятельно. См. объяснение «НЕСКОЛЬКО ОШИБОК» для сообщения OptimizeToursValidationError . Вместо ошибок будут выдаваться предупреждения в случае, если solvingMode имеет значение DEFAULT_SOLVE . |
metrics | object ( Metrics ) Показатели продолжительности, расстояния и использования для этого решения. |
Оптимизетурсвалидатионеррор
Описывает ошибку или предупреждение, возникающее при проверке OptimizeToursRequest
.
JSON-представление |
---|
{
"code": integer,
"displayName": string,
"fields": [
{
object (FieldReference )
}
],
"errorMessage": string,
"offendingValues": string
} |
Поля |
---|
code | integer Ошибка проверки определяется парой ( code , displayName ), которая всегда присутствует. Поля, следующие за этим разделом, предоставляют дополнительную информацию об ошибке. НЕСКОЛЬКО ОШИБОК : при наличии нескольких ошибок процесс проверки пытается вывести несколько из них. Как и компилятор, это несовершенный процесс. Некоторые ошибки проверки будут «фатальными», то есть они останавливают весь процесс проверки. Это относится, среди прочего, к ошибкам displayName="UNSPECIFIED" . Некоторые ошибки могут привести к тому, что процесс проверки пропустит другие ошибки. СТАБИЛЬНОСТЬ : code и displayName должны быть очень стабильными. Но со временем могут появиться новые коды и отображаемые имена, что может привести к тому, что данный (недействительный) запрос выдаст другую пару ( code , displayName ), поскольку новая ошибка скрыла старую. Например, см. «НЕСКОЛЬКО ОШИБОК». |
displayName | string Отображаемое имя ошибки. |
fields[] | object ( FieldReference ) Контекст ошибки может включать 0, 1 (в большинстве случаев) или более полей. Например, обращение к транспортному средству № 4 и первому забору груза № 2 можно выполнить следующим образом: fields { name: "vehicles" index: 4}
fields { name: "shipments" index: 2 subField {name: "pickups" index: 0} }
Однако обратите внимание, что количество fields не должно меняться для данного кода ошибки. |
errorMessage | string Читаемая человеком строка, описывающая ошибку. Между code и errorMessage существует соотношение 1:1 (когда code != "UNSPECIFIED"). СТАБИЛЬНОСТЬ : Нестабильно: сообщение об ошибке, связанное с данным code может со временем измениться (надеюсь, чтобы это прояснилось). Вместо этого полагайтесь на displayName и code . |
offendingValues | string Может содержать значения полей. Это не всегда доступно. На него совершенно не следует полагаться и использовать его только для ручной отладки модели. |
ПолеReference
Указывает контекст для ошибки проверки. FieldReference
всегда ссылается на данное поле в этом файле и имеет одну и ту же иерархическую структуру. Например, мы можем указать элемент №2 в startTimeWindows
транспортного средства №5, используя:
name: "vehicles" index: 5 subField { name: "endTimeWindows" index: 2 }
Однако мы опускаем объекты верхнего уровня, такие как OptimizeToursRequest
или ShipmentModel
чтобы не перегружать сообщение.
JSON-представление |
---|
{
"name": string,
"subField": {
object (FieldReference )
},
// Union field index_or_key can be only one of the following:
"index": integer,
"key": string
// End of list of possible types for union field index_or_key .
} |
Поля |
---|
name | string Имя поля, например, «транспортные средства». |
subField | object ( FieldReference ) Рекурсивно вложенное подполе, если необходимо. |
Поле объединения index_or_key . index_or_key может быть только одним из следующих: |
index | integer Индекс поля, если оно повторяется. |
key | string Ключ, если поле является картой. |
Метрики
Общие показатели, агрегированные по всем маршрутам.
JSON-представление |
---|
{
"aggregatedRouteMetrics": {
object (AggregatedMetrics )
},
"skippedMandatoryShipmentCount": integer,
"usedVehicleCount": integer,
"earliestVehicleStartTime": string,
"latestVehicleEndTime": string,
"costs": {
string: number,
...
},
"totalCost": number
} |
Поля |
---|
aggregatedRouteMetrics | object ( AggregatedMetrics ) Агрегировано по маршрутам. Каждая метрика представляет собой сумму (или максимум для загрузок) по всем одноименным полям ShipmentRoute.metrics . |
skippedMandatoryShipmentCount | integer Количество пропущенных обязательных отправок. |
usedVehicleCount | integer Количество используемых автомобилей. Примечание. Если маршрут транспортного средства пуст и Vehicle.used_if_route_is_empty имеет значение true, транспортное средство считается использованным. |
earliestVehicleStartTime | string ( Timestamp format) Самое раннее время начала подержанного автомобиля, вычисляемое как минимальное для всех подержанных автомобилей ShipmentRoute.vehicle_start_time . Временная метка в формате RFC3339 UTC «Зулу» с наносекундным разрешением и до девяти дробных цифр. Примеры: "2014-10-02T15:01:23Z" и "2014-10-02T15:01:23.045123456Z" . |
latestVehicleEndTime | string ( Timestamp format) Самое позднее время окончания для подержанного автомобиля, вычисляемое как максимальное для всех подержанных автомобилей ShipmentRoute.vehicle_end_time . Временная метка в формате RFC3339 UTC «Зулу» с наносекундным разрешением и до девяти дробных цифр. Примеры: "2014-10-02T15:01:23Z" и "2014-10-02T15:01:23.045123456Z" . |
costs | map (key: string, value: number) Стоимость решения с разбивкой по полям запроса, связанным со стоимостью. Ключи — это пути прототипов относительно входных данных OptimizeToursRequest, например «model.shipments.pickups.cost», а значения — это общая стоимость, сгенерированная соответствующим полем стоимости, агрегированная по всему решению. Другими словами, затраты["model.shipments.pickups.cost"] — это сумма всех затрат на самовывоз в рамках решения. Здесь подробно представлены все затраты, определенные в модели, за исключением затрат, связанных с TransitionAttributes, которые по состоянию на 2022/01 год сообщаются только в агрегированном виде. |
totalCost | number Полная стоимость решения. Сумма всех значений на карте затрат. |
Если не указано иное, контент на этой странице предоставляется по лицензии Creative Commons "С указанием авторства 4.0", а примеры кода – по лицензии Apache 2.0. Подробнее об этом написано в правилах сайта. Java – это зарегистрированный товарный знак корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2025-08-29 UTC.
[[["Прост для понимания","easyToUnderstand","thumb-up"],["Помог мне решить мою проблему","solvedMyProblem","thumb-up"],["Другое","otherUp","thumb-up"]],[["Отсутствует нужная мне информация","missingTheInformationINeed","thumb-down"],["Слишком сложен/слишком много шагов","tooComplicatedTooManySteps","thumb-down"],["Устарел","outOfDate","thumb-down"],["Проблема с переводом текста","translationIssue","thumb-down"],["Проблемы образцов/кода","samplesCodeIssue","thumb-down"],["Другое","otherDown","thumb-down"]],["Последнее обновление: 2025-08-29 UTC."],[[["\u003cp\u003eThe response to a tour optimization problem includes routes for each vehicle, skipped shipments, validation errors, and overall solution metrics.\u003c/p\u003e\n"],["\u003cp\u003eValidation errors, detailed under \u003ccode\u003eOptimizeToursValidationError\u003c/code\u003e, provide insights into issues with the \u003ccode\u003eOptimizeToursRequest\u003c/code\u003e, including error codes, display names, affected fields, and error messages.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eFieldReference\u003c/code\u003e specifies the context of a validation error, identifying the name, index, or key of the affected field and potentially its nested sub-fields.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eMetrics\u003c/code\u003e section provides overall metrics for the solution, including aggregated route data, the number of skipped mandatory shipments, used vehicle count, earliest and latest vehicle times, and a detailed breakdown of the solution's costs.\u003c/p\u003e\n"],["\u003cp\u003eThe JSON representation of the response is provided for each data structure: \u003ccode\u003eOptimizeToursValidationError\u003c/code\u003e, \u003ccode\u003eFieldReference\u003c/code\u003e, and \u003ccode\u003eMetrics\u003c/code\u003e, to outline the data structure and types.\u003c/p\u003e\n"]]],[],null,[]]