Modelo de custo

As propriedades de custo são definidas em ShipmentModel.shipments.Shipment e ShipmentModel.vehicles.Vehicle.

O principal objetivo da API Route Optimization é encontrar rotas com o menor custo. Assim, o modelo de custo é o principal fator para a otimização de rotas.

O modelo de custo é um conjunto de propriedades que especificam custos globais, de veículos e de envio.

As propriedades do modelo de custo oferecem suporte aos seguintes tipos de objetivos de otimização:

  • Atribuições e rotas eficientes de veículos
  • Horários de coleta e entrega econômicos
  • Priorização de envios críticos

Estrutura

Como mostrado no diagrama, as propriedades do modelo de custo são estruturadas da seguinte maneira:

Este documento destaca apenas os parâmetros essenciais do modelo de custo. Consulte a documentação de referência para ver o conjunto completo de parâmetros de custo.

Lista de verificação de fundamentos

A lista de verificação a seguir descreve o conhecimento essencial que evita possíveis erros relacionados a custos. Essa lista pode ajudar você a validar sua solicitação e solucionar problemas na resposta.

Propriedades

A tabela a seguir lista e descreve as propriedades do modelo de custo.

Com filhos Nome da propriedade Tipo de propriedade Custo por Descrição da propriedade
Shipment penaltyCost número Envio ignorado O custo incorrido ao ignorar o envio.
A API ignora um envio quando o custo para concluí-lo excede o custo da penalidade.
  • A definição de penaltyCost prioriza a entrega de envios com custo maior.
  • Não definir um envio penaltyCost torna o envio obrigatório.
  • Definir explicitamente um envio penaltyCost como zero faz com que a API sempre ignore o envio , a menos que seja exigido por outras restrições.
Vehicle fixedCost número Envio Custo fixo aplicado se esse veículo for usado para processar um envio.
costPerHour número Hora O custo de operação de um veículo por hora, incluindo tempos de trânsito, espera, visita e pausa.
À medida que esse custo aumenta, o otimizador tenta encontrar trajetos mais rápidos que podem não ser os mais curtos.
Essa propriedade pode ser um custo independente eficaz por veículo devido à simplicidade e integridade.
costPerKilometer número Quilômetro O custo por quilômetro percorrido pelo veículo, como custos de combustível e custos de manutenção amortizados do veículo.
costPerTraveledHour número Hora O custo de operação de um veículo por hora apenas durante o trânsito, excluindo tempos de espera, visita e pausa. Isso prioriza rotas de viagem mais rápidas em vez de rotas mais curtas.

Exemplos

Esta seção aborda três tipos de exemplos:

Amostras de código

O exemplo de código a seguir mostra a estrutura das propriedades do modelo de custo em Shipment:

{
  "model": {
    "shipments": [ ...
      {
        "penaltyCost": PENALTY_COST
      }
    ],
    "vehicles": [ ...
    ]
  }
}

O exemplo de código a seguir mostra a estrutura das propriedades do modelo de custo em Vehicle:

{
  "model": {
    "shipments": [ ...
    ],
    "vehicles": [ ...
      {
        "fixedCost": FIXED_COST,
        "costPerKilometer": KILOMETER_COST,
        "costPerHour": HOUR_COST,
        "costPerTraveledHour": TRAVELED_HOUR_COST
      }
    ]
  }
}

Exemplo de cenário

Esta seção descreve um cenário em que você tem uma empresa de creche para cães. Você está otimizando uma rota para o caminhão que usa para buscar os cães nas casas deles. Nesse cenário, você quer que o otimizador considere os custos relacionados à coleta dos cães e às operações do veículo ao fornecer uma rota.

Para este exemplo, uma unidade de custo representa US$ 1. Isso significa que os valores da propriedade do modelo de custo na sua solicitação são os seguintes:

Propriedade Valor Cenário
penaltyCost 10 Representa a penalidade que você oferece aos clientes por não buscar o cão em um dia programado. Sempre que você não buscar o cão em um dia programado, o cliente receberá um desconto de US$ 40 no total do serviço.
fixedCost 30 Representa o custo diário das parcelas do empréstimo do veículo, que é de US$ 30 por dia.
costPerKilometer 0,08 Representa a quantidade de gasolina que o veículo gasta por quilômetro. O veículo precisa de 0,04 galões por quilômetro para se mover, e o custo por galão na sua região é de US$ 2.
costPerHour 27 Representa quanto você paga a um motorista para dirigir seu veículo. Você paga ao motorista US$ 27 por hora.
costPerTraveledHour 2,5 Representa quanto você precisa pagar pelo ar-condicionado do veículo por hora para os cães enquanto estiver na estrada. Sempre que o veículo não estiver em movimento, o motorista poderá abrir as portas na parte de trás e desligar o ar-condicionado.

Com base nos parâmetros de custos, o otimizador pode fazer compensações que não são óbvias para o usuário, mas podem ser encontradas por meio da otimização.

O diagrama a seguir ilustra um exemplo em que o otimizador pode escolher uma rota mais longa, mas mais rápida, pela linha tracejada verde para evitar o trânsito na linha vermelha pontilhada.

O veículo tem dois trajetos possíveis: um representado por uma linha tracejada verde, que é mais longo, mas não tem incidentes, e outro representado por uma linha pontilhada vermelha, que é mais curto, mas tem um acidente de carro no meio.

Nesse cenário, o saldo de custos das duas rotas é o seguinte:

Além de fornecer rotas econômicas, o otimizador também oferece um resumo dos custos totais das rotas de entrega nas propriedades de resposta.

Exemplo de solicitação

O exemplo a seguir mostra a estrutura de uma solicitação básica optimizeTours que incorpora os valores definidos no cenário de exemplo:

{
  "model": {
    "shipments": [
      {
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 37.8024,
              "longitude": -122.4058
            }
          }
        ],
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 37.759773,
              "longitude": -122.427063
            }
          }
        ]
        "penaltyCost": 40
      }
    ],
    "vehicles": [
      {
        "startLocation": {
          "latitude": 37.759773,
          "longitude": -122.427063
        },
        "endLocation": {
          "latitude": 37.759773,
          "longitude": -122.427063
        },
        "fixedCost": 30,
        "costPerKilometer": 0.08,
        "costPerHour": 27,
        "costPerTraveledHour": 2.5
      }
    ]
  }
}

Propriedades de resposta

A mensagem OptimizeToursResponse tem propriedades de custo que descrevem os custos incorridos no processo de conclusão de uma rota:

  • metrics.costs: o custo total em todas as rotas discriminado por campos de solicitação relacionados a custos.
  • metrics.totalCost: o custo total em todas as rotas somadas.