Модель затрат

The cost properties are defined under ShipmentModel.shipments.Shipment and ShipmentModel.vehicles.Vehicle

Основная цель API оптимизации маршрутов — поиск маршрутов с наименьшей стоимостью. Таким образом, модель стоимости является основным драйвером оптимизации маршрутов.

Модель затрат представляет собой набор свойств, которые определяют глобальные затраты, затраты на транспортные средства и затраты на доставку.

Свойства модели затрат поддерживают следующие виды целей оптимизации:

  • Эффективное распределение транспортных средств и маршрутов
  • Экономически эффективные сроки получения и доставки
  • Приоритетность критических поставок

Структура

Как показано на диаграмме, свойства модели затрат структурированы следующим образом:

В этом документе освещаются только основные параметры модели стоимости . Полный набор параметров стоимости см. в справочной документации.

Контрольный список основных вещей

Следующий контрольный список описывает основные знания , которые предотвращают потенциальные ошибки, связанные с расходами. Этот список может помочь вам проверить ваш запрос и устранить неполадки в вашем ответе.

Характеристики

В следующей таблице перечислены и описаны свойства модели затрат.

Родитель Имя свойства Тип недвижимости Стоимость за Описание недвижимости
Shipment penaltyCost число Пропущенная отправка Расходы, понесенные в связи с пропуском отгрузки .
API пропускает отправку, если стоимость ее выполнения превышает размер штрафа.
  • Установка penaltyCost отдает приоритет доставке грузов с более высокой стоимостью.
  • Неустановление penaltyCost отправкуСтоимость делает отправку обязательной .
  • Явное задание penaltyCost доставки равным нулю приводит к тому, что API всегда пропускает доставку, если только этого не требуют другие ограничения.
Vehicle fixedCost число Отгрузка Фиксированная стоимость применяется, если данное транспортное средство используется для перевозки груза.
costPerHour число Час Стоимость эксплуатации транспортного средства в час, включая время на проезд, ожидание, посещение и перерывы.
По мере увеличения этой стоимости оптимизатор пытается найти более быстрые маршруты, которые могут не быть самыми короткими.
Эта недвижимость может быть эффективным самостоятельным источником затрат на транспортное средство благодаря своей простоте и полноте.
costPerKilometer число Километр Стоимость километра пробега транспортного средства, например, расходы на топливо и амортизированные расходы на техническое обслуживание транспортного средства.
costPerTraveledHour число Час Стоимость эксплуатации транспортного средства в час только в пути , без учета времени ожидания, посещения и перерывов. Это отдает приоритет более быстрым маршрутам передвижения над более короткими.

Примеры

В этом разделе рассматриваются три типа примеров:

  • Примеры кода , иллюстрирующие структуру свойств модели затрат.
  • Пример сценария , демонстрирующий один из способов использования свойств модели затрат для достижения бизнес-цели.
  • Пример запроса , включающий значения, заданные в примере сценария.

Примеры кода

В следующем примере кода показана структура свойств модели стоимости в Shipment :

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

В следующем примере кода показана структура свойств модели стоимости в Vehicle :

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

Пример сценария

В этом разделе описывается сценарий, в котором у вас есть бизнес по уходу за собаками. Вы оптимизируете маршрут для грузовика, который вы используете, чтобы забрать собак из дома. В этом сценарии вы хотите, чтобы оптимизатор учитывал расходы, связанные с забиранием собак и эксплуатацией транспортного средства при предоставлении маршрута.

Для этого примера одна единица стоимости представляет 1 доллар. Это означает, что значения свойств модели стоимости в вашем запросе следующие:

Свойство Ценить Сценарий
penaltyCost 10 Представляет собой штраф, который вы предлагаете своим клиентам за то, что они не забирают свою собаку в запланированный день. Всякий раз, когда вы не забираете собаку в запланированный день, клиент получает скидку в размере 40 долларов от общей суммы услуг.
fixedCost 30 Представляет собой ежедневную стоимость платежей по кредиту на покупку автомобиля, которая составляет 30 долларов в день.
costPerKilometer 0,08 Показывает, сколько бензина тратит ваш автомобиль на километр. Вашему автомобилю требуется 0,04 галлона на километр, а стоимость галлона в вашем регионе составляет 2 доллара.
costPerHour 27 Показывает, сколько вы платите водителю за вождение вашего транспортного средства. Вы платите водителю 27 долларов в час.
costPerTraveledHour 2.5 Показывает, сколько вы должны платить за кондиционер автомобиля в час для собак во время движения. Когда автомобиль не движется, водитель может открыть задние двери и выключить кондиционер.

На основе параметров затрат оптимизатор может принимать компромиссные решения, которые не очевидны для пользователя, но могут быть найдены посредством оптимизации.

На следующей диаграмме показан пример, в котором оптимизатор может выбрать более длинный, но быстрый маршрут по зеленой пунктирной линии, чтобы избежать движения на пунктирной красной линии.

The vehicle has two possible routes, one represented by a green dashed line, which is longer but doesn't have any incidents, and one represented by a red dotted line, which is shorter but has a car crash in the middle of it.

В этом сценарии баланс затрат двух маршрутов будет следующим:

  • Зеленая пунктирная линия имеет низкие значения costPerHour и costPerTraveledHour поскольку это быстрый маршрут, избегающий пробок, что более рентабельно, даже если costPerKilometer высокое.

  • Красная пунктирная линия имеет низкую costPerKilometer поскольку это прямой маршрут, но costPerHour и costPerTraveledHour слишком высоки из-за времени ожидания в пробках, что делает этот маршрут самым дорогим .

Помимо предоставления экономически эффективных маршрутов, оптимизатор также обеспечивает суммирование общих затрат на маршруты доставки в свойствах ответа .

Запросить пример

В следующем примере показана структура базового запроса optimizeTours , включающего значения, заданные в примере сценария:

{
  "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
      }
    ]
  }
}

Свойства ответа

Сообщение OptimizeToursResponse имеет свойства стоимости, которые описывают затраты, понесенные в процессе завершения маршрута:

  • metrics.costs : общая стоимость по всем маршрутам, разбитая по полям запроса, связанным со стоимостью.
  • metrics.totalCost : общая стоимость по всем маршрутам.