Основная цель 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
: общая стоимость по всем маршрутам.