1. Копирование значений в спланированном решении

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

  1. Промежуточные склады только в начале маршрута

В свойства курьера добавили поле depots_only_at_run_beginning, по умолчанию равное False. Если данное поле имеет значение True, то заезжать на промежуточные склады курьер может только до тех пор, пока не посетил хотя бы один заказ. Это может быть полезно, если вам нужно, чтобы курьеры сначала объехали все склады, и только потом выдвигались на заказы.
Вот пример решения, в котором это значение равно False:

А вот оно же, только с "depots_only_at_run_beginning": true. Автомобили заезжают на промежуточные склады только в начале маршрута:

  1. Количество промежуточных складов в расширенных настройках стоимости


Добавили новую переменную в кастомные косты (формулы поля cost у vehicle) middle_depots - количество промежуточных складов в маршруте.
С помощью неё можно поощрять либо штрафовать алгоритм за количество заездов на промежуточные склады.
Например, у нас есть два заказа, каждый из которых лежит на разных складах. В обычной ситуации мы бы могли развезти их одним курьером:

Теперь представим, что каждый заезд на дополнительный склад для курьера стоит 10 000 рублей. Тогда добавим ему "cost": "middle_depots * 10000"., тем самым алгориму будет выгоднее вывести на рейс вторую машину:

  1. Несовместимые заказы в рамках кузова

У курьера появилось новое свойство onboard_incompatible_load_types, по умолчанию заданное как False. Если в поле указать значение True, то несовместимость заказов будет определяться не по всему заезду (обычное поведение), а по заказам на борту автомобиля.
Пример. Пусть в задаче есть три pickup-delivery пары — Волк, Коза и Капуста. При этом заданы следующие пары несовместимости: [Волк, Коза], [Коза, Капуста]. Раньше в случае последовательности заказов [pickup-Волк] -> [pickup-Капуста] -> [delivery-Волк] -> [delivery-Капуста] -> [pickup-Коза] -> [delivery-Коза] заезд считался бы невыполнимым, так как несовместимость считается по заказам всего заезда. Однако, если задать "onboard_incompatible_load_types": true маршрут становится выполнимым, так как единовременно на борту автомобиля несовместимые грузы не находятся.


На этом сегодня все, по всем вопросам пишите на routing-support@yandex-team.ru

Был ли этот дайджест полезным?
Thu May 16 2024 14:26:26 GMT+0300 (Moscow Standard Time)