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. Por isso, 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 envios.

As propriedades do modelo de custo são compatíveis com os seguintes tipos de objetivos de otimização:

  • Atribuições e rotas de veículos eficientes
  • Tempos de retirada e entrega econômicos
  • Priorização de remessas críticas

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 do Essentials

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 resolver problemas com a 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 adiado O custo incorrido ao pular o envio.
A API ignora uma remessa quando o custo para concluí-la excede o custo de penalidade.
  • A configuração penaltyCost prioriza a entrega de remessas com custo mais alto.
  • Não definir um penaltyCost torna a remessa obrigatória.
  • Definir explicitamente um penaltyCost de remessa como zero faz com que a API sempre pule a remessa, a menos que seja exigido por outras restrições.
Vehicle fixedCost número Envio Custo fixo aplicado se este veículo for usado para processar uma remessa.
costPerHour número Hora O custo de operação de um veículo por hora, incluindo os tempos de trânsito, espera, visita e pausa.
À medida que esse custo aumenta, o otimizador tenta encontrar rotas mais rápidas que podem não ser as mais curtas.
Essa propriedade pode ser um custo por veículo independente eficaz devido à simplicidade e integridade.
costPerKilometer número Quilômetro O custo por quilômetro percorrido pelo veículo, que pode representar custos de combustível ou de manutenção amortizada do veículo.
costPerTraveledHour número Hora O custo de operação de um veículo por hora apenas durante o transporte, excluindo os tempos de espera, visita e pausa. Isso prioriza rotas 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 creche para cachorros. Você está otimizando um trajeto para o caminhão que usa para buscar os cachorros nas casas deles. Nesse cenário, você quer que o otimizador considere os custos relacionados à busca dos cães e às operações do veículo ao fornecer uma rota.

Neste exemplo, uma unidade de custo representa 1 dólar. 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 multa que você oferece aos clientes que não buscam o cachorro no dia agendado. Sempre que você não busca o cachorro em um dia agendado, o cliente recebe um desconto de 40 dólares no total do serviço.
fixedCost 30 Representa o custo diário das parcelas do financiamento do seu veículo, que é de 30 dólares por dia.
costPerKilometer 0,08 Representa a quantidade de gasolina que seu veículo gasta por quilômetro. Seu veículo precisa de 0,04 galão por quilômetro para se mover, e o custo por galão na sua região é de 2 dólares.
costPerHour 27 Representa quanto você paga a um motorista para dirigir seu veículo. Você paga US$ 27 por hora ao motorista.
costPerTraveledHour 2,5 Representa quanto você precisa pagar por hora pelo ar-condicionado do veículo para os cachorros enquanto estiver na estrada. Sempre que o veículo não estiver em movimento, o motorista pode abrir as portas traseiras e desligar o ar-condicionado.

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

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

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 custo das duas rotas é o seguinte:

Além de fornecer rotas econômicas, o otimizador também fornece uma soma 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 de 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 um trajeto:

  • metrics.costs: o custo total de todas as rotas detalhado por campos de solicitação relacionados ao custo.
  • metrics.totalCost: o custo total de todas as rotas somadas.