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ículo e de envio.

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

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

Estrutura

Conforme 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 conferir o conjunto completo de parâmetros de custo.

Lista de verificação de itens essenciais

A lista de verificação a seguir descreve o conhecimento essencial que evita possíveis erros relacionados a custos. Esta 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 Property type Custo por Descrição da propriedade
Shipment penaltyCost número Envio pulado O custo de pular o envio.
A API pula um envio quando o custo para concluí-lo excede o custo da penalidade.
  • A configuração penaltyCost prioriza a entrega de remessas com custo mais alto.
  • Se você não definir um envio penaltyCost, ele será obrigatório.
  • A definição explícita de um envio penaltyCost como zero faz com que a API sempre ignore o envio, a menos que seja necessário por outras restrições.
Vehicle fixedCost número Envio Custo fixo aplicado se o veículo for usado para processar um envio.
costPerHour número Hora O custo de operar um veículo por hora, incluindo o tempo 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 autônomo 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 amortizados de manutenção do veículo.
costPerTraveledHour número Hora O custo de operar um veículo por hora apenas em trânsito, excluindo os tempos de espera, de visita e de intervalo. 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 um negócio de creche para cães. Você está otimizando uma rota para o caminhão que você usa para pegar os cães nas casas deles. Nesse cenário, você quer que o otimizador leve em conta os custos relacionados à coleta de cães e às operações do veículo ao fornecer um trajeto.

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 por não buscarem o cachorro no dia agendado. Sempre que você não buscar o cachorro em um dia programado, o cliente vai receber um desconto de US$ 40 no valor total do serviço.
fixedCost 30 Representa o custo diário dos pagamentos do empréstimo do 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ões 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 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 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 podem ser encontradas pela otimização.

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

O veículo tem duas rotas possíveis, uma representada por uma linha tracejada verde, que é mais longa, mas não tem incidentes, e outra representada por uma linha pontilhada vermelha, que é mais curta, mas tem um acidente de carro no meio.

Nesse cenário, o equilíbrio de custos 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 uma rota:

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