Resposta após resolver um problema de otimização de passeios que contém as rotas seguidas por cada veículo, as remessas que foram ignoradas e o custo geral da solução.
Representação JSON |
---|
{ "routes": [ { object ( |
Campos | |
---|---|
routes[] |
Trajetos calculados para cada veículo. O trajeto i-th corresponde ao i-th veículo no modelo. |
requestLabel |
Cópia de |
skippedShipments[] |
A lista de todas as remessas ignoradas. |
validationErrors[] |
Lista de todos os erros de validação que foram detectados de forma independente. Consulte a explicação de "MULTIPLE ERROS" para a mensagem |
metrics |
Métricas de duração, distância e uso para esta solução. |
OptimizeToursValidationError
Descreve um erro encontrado ao validar um OptimizeToursRequest
.
Representação JSON |
---|
{
"code": integer,
"displayName": string,
"fields": [
{
object ( |
Campos | |
---|---|
code |
Um erro de validação é definido pelos pares ( Outros campos (abaixo) oferecem mais contexto sobre o erro. VÁRIOS ERROS: quando há vários erros, o processo de validação tenta gerar vários deles. Assim como um compilador, esse é um processo imperfeito. Alguns erros de validação serão "fatais", o que significa que eles interrompem todo o processo de validação. Esse é o caso dos erros ESTABILIDADE: REFERENCE: uma lista de todos os pares (código, nome):
|
displayName |
O nome de exibição do erro. |
fields[] |
Um contexto de erro pode envolver 0, 1 (na maioria das vezes) ou mais campos. Por exemplo, a referência à primeira retirada do veículo 4 e da remessa 2 pode ser feita da seguinte maneira:
No entanto, a cardinalidade de |
errorMessage |
String legível que descreve o erro. Há um mapeamento de 1:1 entre STABILITY: instável. A mensagem de erro associada a uma determinada |
offendingValues |
Pode conter os valores dos campos. Essa opção nem sempre está disponível. Você não deve confiar nele e usá-lo apenas para depuração manual do modelo. |
FieldReference
Especifica um contexto para o erro de validação. Um FieldReference
sempre se refere a um determinado campo nesse arquivo e segue a mesma estrutura hierárquica. Por exemplo, podemos especificar o elemento 2 do startTimeWindows
do veículo 5 usando:
name: "vehicles" index: 5 subField { name: "endTimeWindows" index: 2 }
No entanto, omitimos entidades de nível superior, como OptimizeToursRequest
ou ShipmentModel
, para evitar sobrecarregar a mensagem.
Representação JSON |
---|
{ "name": string, "subField": { object ( |
Campos | |
---|---|
name |
Nome do campo, por exemplo, "vehicles". |
subField |
Subcampo aninhado recursivamente, se necessário. |
Campo de união
|
|
index |
Índice do campo, se repetido. |
key |
Key se o campo for um mapa. |
Métricas
Métricas gerais, agregadas em todas as rotas.
Representação JSON |
---|
{
"aggregatedRouteMetrics": {
object ( |
Campos | |
---|---|
aggregatedRouteMetrics |
Agregado nas rotas. Cada métrica é a soma (ou máxima, para carregamentos) de todos os campos |
skippedMandatoryShipmentCount |
Número de envios obrigatórios ignorados. |
usedVehicleCount |
Número de veículos usados. Observação: se um trajeto de veículo estiver vazio e |
earliestVehicleStartTime |
O primeiro horário de início de um veículo usado, calculado como o mínimo sobre todos os veículos usados de Um carimbo de data/hora no formato UTC "Zulu" RFC3339, com resolução de nanossegundos e até nove dígitos fracionários. Exemplos: |
latestVehicleEndTime |
O último horário de término de um veículo usado, calculado como o máximo sobre todos os veículos usados de Um carimbo de data/hora no formato UTC "Zulu" RFC3339, com resolução de nanossegundos e até nove dígitos fracionários. Exemplos: |
costs |
Custo da solução detalhado por campos de solicitação relacionados ao custo. As chaves são caminhos proto em relação à entrada OptimizeToursRequest, por exemplo, "model.shipments.pickups.cost", e os valores são o custo total gerado pelo campo de custo correspondente, agregado em toda a solução. Em outras palavras, os custos["model.shipments.pickups.cost"] são a soma de todos os custos de retirada na solução. Todos os custos definidos no modelo são informados em detalhes aqui, com exceção dos custos relacionados a TransitionAttributes que só são informados de forma agregada a partir de 2022/01. Um objeto com uma lista de pares |
totalCost |
Custo total da solução. A soma de todos os valores no mapa de custos. |