Основная цель API оптимизации маршрутов — поиск маршрутов с наименьшей стоимостью. Таким образом, модель стоимости является основным фактором оптимизации маршрутов.
Модель затрат представляет собой набор свойств, определяющих глобальные, транспортные и транспортные расходы.
Свойства модели затрат позволяют использовать следующие типы целей оптимизации:
- Эффективное распределение транспортных средств и составление маршрутов.
- Экономичные сроки погрузки и разгрузки
- Приоритизация критически важных поставок
Структура
Как показано на диаграмме, свойства модели затрат структурированы следующим образом:
- В
Shipmentвходит свойствоpenaltyCost. -
Vehicleобладает следующими свойствами:
В этом документе представлены только основные параметры модели затрат . Полный набор параметров затрат см. в справочной документации.
Контрольный список необходимых вещей
Приведенный ниже контрольный список описывает основные знания , которые помогут предотвратить потенциальные ошибки, связанные с затратами. Этот список поможет вам проверить правильность вашего запроса и устранить неполадки в вашем ответе.
Характеристики
В таблице ниже перечислены и описаны свойства модели затрат.
| Родитель | Название объекта недвижимости | Тип недвижимости | Стоимость за | Описание объекта недвижимости |
|---|---|---|---|---|
Shipment | 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 | Показывает, сколько вам придется платить за кондиционер в автомобиле в час, если в машине находятся собаки во время поездки. Когда автомобиль стоит на месте, водитель может открыть задние двери и выключить кондиционер. |
Исходя из параметров затрат, оптимизатор может идти на компромиссы, которые не очевидны для пользователя, но могут быть найдены в процессе оптимизации.
На следующей диаграмме показан пример, в котором оптимизатор может выбрать более длинный, но более быстрый маршрут, проходящий по зеленой пунктирной линии, чтобы избежать пробок на пунктирной красной линии.

В этом сценарии баланс затрат по двум маршрутам выглядит следующим образом:
Зелёная пунктирная линия имеет низкую
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: Суммарная стоимость всех маршрутов.