Es la respuesta después de resolver un problema de optimización de recorridos que contiene las rutas que siguió cada vehículo, los envíos que se omitieron y el costo general de la solución.
Representación JSON |
---|
{ "routes": [ { object ( |
Campos | |
---|---|
routes[] |
Son las rutas calculadas para cada vehículo. La ruta i corresponde al vehículo i en el modelo. |
requestLabel |
Copia de |
skippedShipments[] |
La lista de todos los envíos omitidos |
validationErrors[] |
Lista de todos los errores de validación que pudimos detectar de forma independiente. Consulta la explicación de “MULTIPLE ERRORS” para el mensaje |
metrics |
Métricas de duración, distancia y uso de esta solución. |
OptimizeToursValidationError
Describe un error o una advertencia que se encontró cuando se validó un OptimizeToursRequest
.
Representación JSON |
---|
{
"code": integer,
"displayName": string,
"fields": [
{
object ( |
Campos | |
---|---|
code |
Un error de validación se define mediante el par ( Otros campos (a continuación) proporcionan más contexto sobre el error. MULTIPLE ERRORS: Cuando hay varios errores, el proceso de validación intenta mostrar varios de ellos. Al igual que un compilador, este es un proceso imperfecto. Algunos errores de validación serán "irreparables", lo que significa que detienen todo el proceso de validación. Este es el caso de los errores de ESTABILIDAD: REFERENCIA: Es una lista de todos los pares (código, nombre):
|
displayName |
El nombre visible del error. |
fields[] |
Un contexto de error puede incluir 0, 1 (la mayoría de las veces) o más campos. Por ejemplo, hacer referencia al vehículo núm. 4 y al primer retiro del envío núm. 2 se puede hacer de la siguiente manera:
Sin embargo, ten en cuenta que la cardinalidad de |
errorMessage |
Es una cadena legible que describe el error. Hay una asignación de 1:1 entre ESTIBILIDAD: No estable: El mensaje de error asociado a un |
offendingValues |
Puede contener los valores de los campos. Esta opción no siempre está disponible. No debes confiar en él y solo debes usarlo para la depuración manual de modelos. |
FieldReference
Especifica un contexto para el error de validación. Un FieldReference
siempre se refiere a un campo determinado en este archivo y sigue la misma estructura jerárquica. Por ejemplo, podemos especificar el elemento 2 de startTimeWindows
del vehículo 5 de la siguiente manera:
name: "vehicles" index: 5 subField { name: "endTimeWindows" index: 2 }
Sin embargo, omitimos las entidades de nivel superior, como OptimizeToursRequest
o ShipmentModel
, para evitar que el mensaje se sature.
Representación JSON |
---|
{ "name": string, "subField": { object ( |
Campos | |
---|---|
name |
Es el nombre del campo, p.ej., "vehicles". |
subField |
Subcampo anidado de forma recursiva, si es necesario |
Campo de unión
|
|
index |
Es el índice del campo si se repite. |
key |
Es clave si el campo es un mapa. |
Métricas
Métricas generales, agregadas en todas las rutas.
Representación JSON |
---|
{
"aggregatedRouteMetrics": {
object ( |
Campos | |
---|---|
aggregatedRouteMetrics |
Se agregan en las rutas. Cada métrica es la suma (o el máximo, para las cargas) de todos los campos |
skippedMandatoryShipmentCount |
Cantidad de envíos obligatorios omitidos. |
usedVehicleCount |
Cantidad de vehículos usados Nota: Si la ruta de un vehículo está vacía y |
earliestVehicleStartTime |
La hora de inicio más temprana de un vehículo usado, que se calcula como la hora mínima de Una marca de tiempo en formato RFC3339 UTC “Zulú”, con una resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: |
latestVehicleEndTime |
Es la hora de finalización más reciente de un vehículo usado, calculada como el máximo de todos los vehículos usados de Una marca de tiempo en formato RFC3339 UTC “Zulú”, con una resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: |
costs |
Es el costo de la solución, desglosado por campos de solicitud relacionados con el costo. Las claves son rutas de acceso proto, relacionadas con la entrada OptimizeToursRequest, p.ej., “model.shipments.pickups.cost”, y los valores son el costo total generado por el campo de costo correspondiente, agregado en toda la solución. En otras palabras, los costos["model.shipments.pickups.cost"] es la suma de todos los costos de retiro en la solución. Todos los costos definidos en el modelo se registran en detalle aquí, a excepción de los costos relacionados con TransitionAttributes, que solo se registran de forma agregada a partir de 1/2022. Es un objeto que contiene una lista de pares |
totalCost |
El costo total de la solución Es la suma de todos los valores en el mapa de costos. |