Временные окна

Временное окно - это период между начальным и конечным временем, в течение которого сетевое местоположение, такое как остановка в маршрутном анализе, должно быть посещено маршрутом.

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

Поля временного окна в слоях анализа маршрута

Класс сетевого анализаПоле временного окна

Остановки

TimeWindowStart

TimeWindowEnd

Примечание:

Временные окна используются, когда заполнены любые из полей временных окон (TimeWindowStart и TimeWindowEnd) в слое Остановок. Часовой пояс для полей временных окон можно указать при создании нового слоя анализа Маршрута с помощью параметра Часовой пояс для полей времени в диалоговом окне инструмента геообработки Создать слой анализа маршрутов. Вы также можете указать часовой пояс для полей временного окна, используя раскрывающийся список Базовый часовой пояс на ленте Маршрут. Чтобы обновить часовой пояс для полей временных окон в существующем слое, используйте свойство timeZoneUsageForTimeFields класса RouteSolverProperties в Python.

Поля временного окна в слоях анализа задач выбора маршрута транспорта

Класс сетевого анализаПоле временного окна

Заказы

TimeWindowStart

TimeWindowEnd

TimeWindowStart2

TimeWindowEnd2

Станции

TimeWindowStart

TimeWindowEnd

TimeWindowStart2

TimeWindowEnd2

Перерывы

TimeWindowStart

TimeWindowEnd

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

Примечание:

Временные окна используются, когда заполнены любые из полей временных окон (TimeWindowStart и TimeWindowEnd) в слое Заказов и Станций. Часовой пояс для полей временных окон можно указать при создании нового слоя анализа задача выбора маршрута транспорта с помощью параметра Часовой пояс для полей времени в диалоговом окне инструмента геообработки Создать слой анализа задачи выбора маршрута транспорта. Вы также можете указать часовой пояс для полей временного окна, используя раскрывающийся список Базовый часовой пояс на ленте VRP. Чтобы обновить часовой пояс для полей временных окон в существующем слое, используйте свойство timeZoneUsageForTimeFields класса VehicleRoutingProblemSolverProperties в Python.

Объекты маршрута в задаче выбора маршрута транспорта также имеют поля временных окон: EarliestStartTime и LatestStartTime. Они указывают период, в который маршрут может начать свою поездку.

Использование дат во временных окнах

Чтобы слой анализа маршрута определял «Сегодня», в полях временного окна и Времени дня должно быть установлено значение Сегодня - 30/12/1899. Точно так же, чтобы решить «Сегодня» для слоя анализа задачи выбора маршрута транспорта, в качестве Даты по умолчанию должно быть установлено значение Сегодня - 30/12/1899.

Если вы предпочитаете решать для дня недели, в полях временного окна по-прежнему используйте значение «Сегодня», но Время дня для слоя маршрутного анализа и Дата по умолчанию для слоя анализа задачи выбора маршрута транспорта должны указывать соответствующую дату для дня недели.

Вместо конкретной даты может быть задан день недели, при помощи следующих условных дат:

  • Сегодня – 12/30/1899
  • Воскресенье – 12/31/1899
  • Понедельник – 1/1/1900
  • Вторник – 1/2/1900
  • Среда – 1/3/1900
  • Четверг – 1/4/1900
  • Пятница – 1/5/1900
  • Суббота – 1/6/1900

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

Пример временного окна

Для того, чтобы лучше понять принцип работы временных окон, рассмотрим случай с четырьмя остановками: a, b, c и d, – для которых необходимо найти маршрут. Временное окно каждой остановки задается свойствами TimeWindowStart и TimeWindowEnd.

Пример четырех остановок с информацией о временных окнах

Маршрут может начаться из точки a в любое время между 8:00 и 9:00. Однако он не должен прибывать в точку b до 9:10. Как показано ниже, маршрут прибывает в точку b в 9:05:08.

Время прибытия и отправления

Так как точка b должна быть посещена только в промежутке между 9:10 и 9:12 утра,маршрут вынужден ждать в точке b в течение 4 минут и 52 секунд, а затем отправиться в 9:10 утра. Это время ожидания хранится в поле Wait_TravelTime остановки b как 4,66 минут, и добавлено в общее время, которое занимает маршрут. В поле Cumul_TraveTime сохраняется общее время, затраченное на прохождение маршрута. Суммарное время в пути по маршруту для остановки b составляет 10 минут (5 минут и 8 секунд в пути и 4 минуты и 52 секунды в ожидании, что необходимо для учета требований временного окна остановки b).

Время ожидания

Маршрут отправляется из остановки b в 9:10 утра и прибывает в остановку c в 9:15:20 утра. Однако остановка c имеет временное окно с 9:10 до 9:12 утра. Превышение составляет 3 минуты и 20 секунд, оно хранится в поле Violation_TravelTime как 3,33 минуты, так как маршрут не может учесть временное окно остановки c.

Время превышения

Временные окна рассматриваются как "гибкие" ограничения. Это значит, что несмотря на то, что механизм расчета пытается соблюсти условия временного окна, он будет нарушать условия временного окна некоторых остановок, которые необходимо достичь. Этот процесс отличается от обработки «жесткого» ограничения, когда движение по маршруту к точке с нарушенными условиями временного окна осуществлено не будет. Жесткие временные окна не поддерживаются слоем анализа Маршрутов. Однако вы можете использовать их для временных окон Заказов в слое анализа Задачи выбора маршрута транспорта, задав для поля MaxViolationTime значение ноль.

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