Обновление Яндекс Маршрутизации
за сентябрь-октябрь 2024

Мониторинг

Сглаживание курьерских треков

Добавили технологию сглаживания трека маршрута, которая убирает резкие скачки координат. Такие скачки могут возникать из-за некорректных данных с GPS трекеров или по причине входа нескольких сотрудников в один маршрут через приложение.

При этом, по-прежнему можно увидеть весь трек без сглаживания – за это отвечает опция "Показать маршрут по фактическим GPS координатам":

Перевод полей ID на int64-числа 

Мы внесли изменения в формат идентификаторов (ID) сущностей, таких как маршрут (route.id), заказ (order.id) и другие. Ранее все ID были представлены в формате int32, теперь они обновлены до int64.

Что это значит для вас? На первых порах вы не заметите никаких изменений в работе сервиса. Однако это обновление позволяет нам использовать более широкий диапазон чисел для идентификаторов. В будущем, когда текущие ID в формате int32 будут исчерпаны, новые ID будут выходить за их пределы. Если в ваших API-интеграциях вы используете формат int32, то нужно запланировать переход на int64. Это поможет избежать возможных проблем с несовместимостью идентификаторов в API в будущем.

Переход на карту mvrp-map через интерфейс рабочего места логиста

Теперь переход на карту с таймлайнами доступен напрямую через интерфейс. Для этого в интерфейсе планирования нажмите Экспортировать → Json → Карта:

Индивидуальные перерывы для каждой смены

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

Пример: в запросе ниже машина может воспользоваться более короткой сменой "0", и тогда потребуется вставить перерыв длиной только час, либо более длинной сменой "1", и тогда потребуется вставить перерыв длиной два часа:

"vehicles": 
{
    "capacity": {
        "weight_kg": 1
    },
    "id": 1,
    "max_runs": 1,
    "shifts": [
        {
            "id": "0",
            "time_window": "07:00 - 12:00",
            "rest_schedule": {
                "breaks": [
                    {
                        "break_type": "from_start",
                        "soft_time_range": "1:00 - 1:00",
                        "rest_duration_s": 3600,
                        "id": "break 0"
                    }
                ]
            }
},
    {
        "id": "1",
        "time_window": "07:00 - 17:00",
        "rest_schedule": {
            "breaks": [
                {
                    "break_type": "from_start",
                    "soft_time_range": "1:00 - 1:00",
                    "rest_duration_s": 7200,
                    "id": "break 0"
                }
            ]
        }
    }
]
}, ... ]
Кучность в задачах с расширенными настройками стоимости

Добавили возможность явно указывать стоимости для ребер-кучности, используемых для оценки ограничений global_proximity_factor и proximity_factor.

Ранее, если в задаче были заданы кастомные стоимости транспортных средств, то использовались дефолтные значения этих параметров – 8 единиц за километр и 100 единиц за час. В ситуациях, когда в формуле кастомной стоимости были заданы кратно большие значения коэффициентов duration_h и distance_km это приводило к тому, что параметры кучности практически не учитывались. Теперь есть возможность задать в опциях задачи свойство proximity_edge_cost. Мы рекомендуем использовать этот параметр только при использовании кастомных формул, а в значения параметра указывать коэффициенты при duration_h и distance_km. Так, например, если формула в задаче выглядит как cost:
“1000 + duration_h * 10000 + distance_km * 800 + …”,
 то рекомендуемым вариантом для опции будет:

"vehicles": [
    ...
    {
        ...
        "cost": "1000 + duration_h * 10000 + distance_km * 800 + …",
        "proximity_edge_cost": {
            "km": 800,
            "hour": 10000
        },
    },
    ...
]
Канал на Rutube

Мы запустили канал на Rutube, где можно найти все наши видеоматериалы. Подписывайтесь и следите за обновлениями: https://rutube.ru/channel/41023092.

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

Был ли этот дайджест полезным?