Доступно с лицензией Network Analyst.
Различные организации обслуживают заказы парком транспортных средств. Например, большой мебельный магазин может использовать несколько грузовиков для доставки мебели домой. Специализированная компания по утилизации отходов может направлять грузовые автомобили для сбора отходов в ресторанах. Служба здравоохранения может планировать ежедневные визиты осмотра для каждого из своих врачей, проводящих осмотр.
Общей задачей в вышеперечисленных примерах является задача выбора маршрута транспорта. Каждой организации требуется определить, какие заказы (дома, рестораны или пункты осмотра) должны обслуживаться каждым маршрутом (грузовиком или врачом) и в какой последовательности заказы должны выполняться. Основной целью является наилучшее обслуживание заказов и минимизация общих затрат на эксплуатацию парка транспортных средств. Таким образом, в то время как механизм расчета маршрута дополнительного модуля ArcGIS Network Analyst находит лучший маршрут для посещения множества остановок одним транспортным средством, механизм расчета задачи выбора маршрута транспорта (VRP) находит лучшие маршруты для обслуживания множества заказов парком транспортных средств. Кроме того, механизм расчета задачи выбора маршрута транспорта может решать более конкретные задачи, поскольку доступны различные параметры, такие как сопоставление емкости транспортных средств с объемами заказов, предоставление перерывов водителям и сопряжение заказов для обслуживания единым маршрутом.
Решение задачи выбора маршрута транспорта выполняется так же, как в ходе любого другого сетевого анализа.
Более подробно о рабочих процессах Network Analyst
Слой анализа задачи выбора транспортного маршрута
Слой анализа задачи выбора маршрута транспорта содержит входные данные, параметры и результаты решения данной задачи выбора маршрута транспорта.
Создание слоя анализа задачи выбора маршрута транспорта
Вы можете создать слой анализа задачи выбора маршрута транспорта, используя панель инструментов Network Analyst и щёлкнув Network Analyst > Новая задача выбора маршрута транспорта (New Vehicle Routing Problem).
При создании слоя анализа задачи выбора маршрута транспорта он отображается в окне Network Analyst вместе со своими 13 классами сетевого анализа – «Заказы» (Orders), «Станции» (Depots), «Маршруты» (Routes), «Посещения станций» (Depot Visits), «Перерывы» (Breaks), «Зоны маршрутов» (Route Zones), «Исходные точки маршрутов» (Route Seed Points), «Обновления маршрутов» (Route Renewals), «Специальные требования» (Specialties), «Пары заказов» (Order Pairs), «Точечные барьеры» (Point Barriers), «Линейные барьеры» (Line Barriers) и «Полигональные барьеры» (Polygon Barriers).
Слой анализа задачи выбора маршрута транспорта также отображается в окне Таблица содержания (Table of Contents) в виде составного слоя, который называется «Задача выбора маршрута транспорта» (Vehicle Routing Problem) или, если задача выбора маршрута транспорта с таким именем уже существует в документе карты, «Задача выбора маршрута транспорта 1», «Задача выбора маршрута транспорта 2» и т. д. В него входят девять слоев пространственных объектов: «Заказы» (Orders), «Посещения станций» (Depot Visits), «Станции» (Depots), «Исходные точки маршрутов» (Route Seed Points), «Маршруты» (Routes), «Зоны маршрутов» (Route Zones), «Точечные барьеры» (Point Barriers), «Линейные барьеры» (Line Barriers) и «Полигональные барьеры» (Polygon Barriers). Каждый из девяти слоев пространственных объектов имеет условные обозначения по умолчанию, которые можно изменить в диалоговом окне Свойства слоя (Layer Properties).
Классы анализа задачи выбора маршрута транспорта.
Слой анализа задачи выбора маршрута транспорта состоит из 13 классов сетевого анализа, которые представляют собой либо слои пространственных объектов, либо таблицы, хранящиеся внутри слоя анализа. Они содержат объекты сетевого анализа, используемые при решении задачи выбора маршрута транспорта. Отношения между различными классами сетевого анализа показаны в следующем документе:
Отношения между классами сетевого анализа в задаче выбора маршрута транспортаВ следующих разделах приводится обзор каждого класса и описание его свойств.
Более подробно о классах сетевого анализа
Слой пространственных объектов «Заказы» (Orders)
В этом слое пространственных объектов хранятся заказы, являющиеся частью данного слоя анализа задачи выбора маршрута транспорта. Заказом может быть доставка клиенту, сбор чего-либо у клиента или какой-то другой вид работы. Примерами могут служить доставка мебели, сбор использованного жира в ресторане или инспекция.
Если в заказах содержатся элементы для сбора или доставки, эти элементы могут обладать несколькими характеристиками вместимости, которые могут быть основаны на любой форме измерения или сочетания измерений, например веса, объема или количества единиц. С некоторыми заказами, например визитами для осмотра, может быть не связана никакая доставка или сбор.
У заказа может быть время обслуживания, то есть время, необходимое для завершения работы по заказу. Например, грузовику для доставки может требоваться время обслуживания 20 минут на выгрузку предмета мебели и перемещения его в дом. Время обслуживания может быть одинаковым для всех заказов или уникальным для каждого заказа.
У заказа могут быть одно или два временных окна, которые указывают, когда транспортному средству разрешено выезжать на этот заказ. Например, грузовику для оптовой доставки продуктов разрешено прибывать к ресторану между 8:00 и 10:00 утра или между 2:00 и 4:00 дня, поскольку прибытие в другое время может нарушить бизнес ресторана.
С заказом могут быть связаны специальные требования. Например, заказ может требовать наличия технического специалиста с определенным набором навыков (например, электрика) или автомобиля со специальными возможностями (механический подъемник). Заказу будет назначен только маршрут с таким же специальным требованием.
Свойства заказа
Входные поля для Заказов
Входное поле | Описание |
---|---|
ObjectID | Управляемое системой поле ID. |
Shape | Поле геометрии, показывающее географическое положение объекта сетевого анализа. |
Имя | Имя объекта сетевого анализа. Имя должно быть уникальным. Это поле служит первичным ключом и используется как внешний ключ для обращения к заказам в таблице OrderPairs. Имена заказов нечувствительны к регистру и не могут быть пустыми, даже если заказ исключен из операции расчета. |
Описание | Описательная информация о заказе. Может содержать любую текстовую информацию по заказу и не имеет ограничений на уникальность. В поле «Имя» (Name), к примеру, можно хранить идентификационный номер клиента, а в поле «Описание» (Description) – фактическое имя или адрес этого клиента. |
ServiceTime | Данное свойство определяет время, которое будет проведено в сетевом положении при посещении его на маршруте; это означает, что оно хранит в себе значение импеданса для сетевого положения. Нулевое значение или значение NULL указывают, что сетевое положение не требует времени обслуживания. Единица измерения для значения данного поля задается свойством Единицы поля времени (Time Field Units) для слоя анализа. |
TimeWindowStart1 | Время начала и конца первого временного окна для сетевого положения. Это поле может содержать значение NULL; значение NULL показывает отсутствие времени начала. (Дополнительную информацию см. в примечании к данной таблице свойств.) |
TimeWindowEnd1 | Время окончания первого окна для сетевого положения. Это поле может содержать значение NULL; значение NULL показывает отсутствие времени окончания. (Дополнительную информацию см. в примечании к данной таблице свойств.) |
TimeWindowStart2 | Время начала и конца второго временного окна для сетевого положения. Это поле может содержать значение NULL; значение NULL показывает отсутствие второго временного окна. Если первое временное окно содержит null, как указано в полях TimeWindowStart1 и TimeWindowEnd1, то второе временное окно также должно иметь значения null. Если оба временных окна непустые, то они не могут перекрываться. Кроме того, второе временное окно должно следовать за первым. (Дополнительную информацию см. в примечании к данной таблице свойств.) |
TimeWindowEnd2 | Время окончания второго временного окна для сетевого положения. Это поле может содержать значение NULL. Когда TimeWindowStart2 и TimeWindowEnd2 оба имеют значение NULL, то второе временное окно отсутствует. Когда TimeWindowStart2 не NULL, а TimeWindowEnd2 – NULL, то имеется второе временное окно со временем начала, но без времени окончания. Это корректная ситуация. (Дополнительную информацию см. в примечании к данной таблице свойств.) |
MaxViolationTime1 | Временное окно считается нарушенным, если прибытие происходит после окончания временного окна. В данном поле указывается максимальное допустимое время превышения для первого временного окна заказа. Оно может содержать нулевое значение, но не может содержать отрицательные значения. Нулевое значение показывает, что нарушение временного окна в первом временном окне заказа недопустимо; то есть первое временное окно является жестким. С другой стороны, значение NULL показывает, что для допустимого превышения времени предел отсутствует. Ненулевое значение показывает максимальную величину опоздания; например маршрут может прибыть на точку заказа в течении 30 минут после окончания первого временного окна. Единица измерения для значения данного поля задается свойством Единицы поля времени (Time Field Units) для слоя анализа. Превышение временного окна может отслеживаться и взвешиваться механизмом расчета. По этой причине вы можете указать механизму расчета VRP следующие подходы:
Назначая уровень важности параметру Нарушение временного окна (Time Window Violation), вы фактически выбираете один из этих трех подходов. Однако в любом случае механизм расчета приведет к ошибке, если будет превышено значение, заданное для свойства MaxViolationTime1. |
MaxViolationTime2 | Максимальное допустимое время нарушения для второго временного окна заказа. Данное поле аналогично полю MaxViolationTime1. |
InboundArriveTime | Определяет, когда доставляемый товар будет готов на станции. Заказу может быть приписан маршрут, только если входное время прибытия предшествует значению последнего времени старта маршрута. То есть маршрут не может стартовать со станции, пока товар не будет загружен. Это поле поможет смоделировать возможные наплывы заказов доставок. Например, работа над заказом требует специальных материалов, которые отсутствуют на станции. Материалы доставляются из другого местоположения и прибудут на станцию в 11:00. Чтобы убедиться, что ни один маршрут, который начинается до их доставки, не приписан к заказу, входное время заказа устанавливается на 11:00. Специальные материалы будут доставлены в 11:00, загружены в автомобиль, который затем отправится со станции выполнять приписанные ему заказы. Примечания:
|
OutboundDepartTime | Определяет, когда требуемый для заказа товар должен прибыть на конечную станцию. Заказ должен быть присвоен маршруту, только если маршрут может посетить место заказа и достичь его конечной станции до указанного исходящего времени отъезда. Это поле поможет смоделировать возможные наплывы заказов доставок. Например, судоходная компания посылает грузовики забрать пакеты с заказами, привезти их на станцию, откуда они будут перенаправлены на другие объекты и отправлены по маршруту к месту назначения. Ежедневно в 15:00 полуприцеп останавливается на станции, чтобы забрать приоритетные пакеты и отвезти их непосредственно на центральную станцию обработки. Чтобы избежать задержки приоритетных пакетов до 15:00 вечера следующего дня, судоходная компания старается, чтобы грузовики забирали приоритетные пакеты из заказов и отвозили их на станцию до 15:00. Этого можно достичь путем установки 15:00 в качестве исходящего времени отъезда. Примечания:
|
DeliveryQuantities |
Размер доставки. Вы можете указать размер в любом формате, например, масса, объем или количество. Вы можете даже указать несколько различных измерений, например, вес и объем. Если для заказа требуются 2000 фунтов товаров, параметру Число характеристик ёмкости (Capacity Count) в диалоговом окне Свойства слоя (Layer Properties) слоя анализа следует задать значение 1, а параметру DeliveryQuantities – значение 2000. При наличии нескольких характеристик вместимости, на что указывает значение свойства Число характеристик ёмкости (Capacity Count) слоя анализа, значения параметра DeliveryQuantities разделяются пробелом. Например, если известны как вес, так и объем, параметру Число характеристик ёмкости (Capacity Count) в диалоговом окне Свойства слоя (Layer Properties) слоя анализа следует задать значение 2. Если для заказа требуются 2000 фунтов товаров, которые занимают 100 кубических футов, параметру DeliveryQuantities следует задать значение 2000 100. Пустая строка или значение NULL соответствует нулю для всех размеров. Если строка содержит недостаточное число значений относительно числа отслеживаемых характеристик емкости или размеров, то оставшиеся значения интерпретируются, как равные нулю. Количество элементов поставки не может быть отрицательными. |
PickupQuantities | Размер сбора. Вы можете указать размер в любом формате, например, масса, объем или количество. Вы можете даже указать несколько различных измерений, например, вес и объем. При этом вы не можете использовать отрицательные значения. Данное поле аналогично полю DeliveryQuantities для Заказов. |
Revenue | Доход, создаваемый в случае включения заказа в решение. Это поле может содержать значение NULL; значение NULL соответствует нулевой прибыли, но не может быть отрицательным. Прибыль включается в оптимизацию значения целевой функции, но не является частью оперативных расходов на решение. Это означает, что поле TotalCost в классе маршрута никогда не включает в выходное значение прибыль; при этом прибыль имеет относительно важную роль при обслуживании заказов. |
SpecialtyNames | Строка, разделенная пробелами и содержащая имена специальных требований, необходимых для заказа. Значение NULL показывает, что маршрут не имеет специальных требований. Это поле является внешним ключом для поля Name в таблице «Специальные требования» (Specialties). Объекты специальных требований должны существовать до того, как они появятся в раскрывающемся списке SpecialtyNames. Например, компании по уходу за газонами может понадобиться обслужить заказ пестицидом, для применения которого требуется лицензия. Компания может создать объект специального требования с именем Лицензия (License) и установить этому свойству значение Лицензия (License). |
AssignmentRule | В данном поле указывается правило назначения заказа для маршрута. Оно ограничивается с помощью домена значений, перечисленных ниже (их кодированные значения указаны в скобках).
Это поле не может содержать значение NULL. |
Поля сетевого положения
| Вместе эти четыре свойства описывают точку сети, в которой расположен объект. |
CurbApproach | Свойство CurbApproach указывает направление, со стороны которого транспортное средство может прибыть и в котором отправиться из сетевого положения. Можно выбрать четыре варианта (их кодированные значения показаны в скобках):
|
Входные/Выходные поля для Заказов
Входное/Выходное поле | Описание |
---|---|
RouteName |
Имя маршрута, для которого назначен заказ. Являясь входным, данное поле используется для предварительного назначения заказа определенному маршруту. Оно может содержать значение NULL, показывающие, что заказ предварительно не назначен ни одному маршруту, и механизм расчета определяет наилучшее из возможных назначений маршрутов для заказа. Если оно задано пустым (NULL), то поле последовательности также должно быть равно NULL. Поле RouteName является внешним ключом для поля Name в классе «Маршруты» (Routes). Объекты маршрутов должны существовать до того, как они появятся в списке RouteName. После вычисления, если заказ присвоен маршруту, то поле RouteName будет содержать имя маршрута, которому был назначен заказ. |
Sequence | Обозначает последовательность заказа на маршруте. Являясь входным, данное поле используется для указания относительной последовательности для заказа на маршруте. Данное поле может содержать значение NULL, показывающие, что заказ может быть размещен в любой точке маршрута. Значение NULL может иметь место только при значении NULL в RouteName. Значения входной последовательности являются положительными и уникальными для каждого маршрута (распределенного среди посещений станций, заказов и перерывов), но не обязаны начинаться с 1 или быть последовательными. После расчета в поле Sequence будут содержаться значения последовательности заказа для назначенного маршрута. Выходные значения последовательности для маршрута едины для посещений станций, заказов и перерывов; начинаются с 1 (на начальной станции); и являются последовательными. Таким образом, минимальным возможным выходным значением последовательности для заказа на маршруте является 2, это обусловлено тем, что маршрут всегда начинается со станции. |
Статус | Данное поле ограничивается с помощью домена значений, которые указаны ниже (их кодированные значения указаны в скобках).
По завершении операции расчета статус может быть изменен с помощью одного из приведенных ниже значений статуса.
Если используются временные окна, а прибытие по маршруту происходит слишком рано или слишком поздно, значение меняется на Превышение временного окна (Time window violation) (6). |
Поля вывода слоя «Заказы» (Orders)
Выходное поле | Описание |
---|---|
ViolatedConstraints | Это поле содержит сводку по нарушениям ограничений, и значение ему присваивается после операции расчета. Полю может быть назначено сочетание одного или нескольких нарушений, перечисленных ниже, если назначение заказа любому из маршрутов привело бы к нарушению ограничения.
|
FromPrevTravelTime | Время в пути до заказа от предыдущего посещения на маршруте. Единица измерения для значения данного поля задается свойством Единицы поля времени (Time Field Units) для слоя анализа. |
FromPrevDistance | Расстояние до заказа от предыдущего посещения на маршруте. Единица измерения для значения данного поля устанавливается свойством Единицы поля расстояния (Distance Field Units) слоя анализа. Это поле пустое (NULL), если свойство Атрибут расстояния (Distance Attribute) не задано в параметрах анализа. |
CumulTravelTime | Суммарное время в пути по маршруту до прибытия на заказ. Единица измерения для значения данного поля задается свойством Единицы поля времени (Time Field Units) для слоя анализа. |
CumulDistance | Кумулятивное расстояние по маршруту до прибытия на заказ. Единица измерения для значения данного поля устанавливается свойством Единицы поля расстояния (Distance Field Units) слоя анализа. Это поле пустое (NULL), если свойство Атрибут расстояния (Distance Attribute) не задано в параметрах анализа. |
CumulTime | Кумулятивная длительность маршрута до заказа включительно. Кумулятивная длительность включает в себя значения времени в пути, а также времени обслуживания и ожидания заказов. Единица измерения для значения данного поля задается свойством Единицы поля времени (Time Field Units) для слоя анализа. |
ArriveCurbApproach | Указывает на сторону транспортного средства, с которой должен находится бордюр при прибытии в сетевое положение. Если для параметра CurbApproach сетевого положения задано значение Справа по направлению движения (Right side of vehicle), то после решения ArriveCurbApproach будет равен Справа по направлению движения (Right side of vehicle). Однако, если значение CurbApproach установлено на С любой стороны (Either side of vehicle) или Без разворота (No U-Turn), то свойство ArriveCurbApproach может быть как слева, так и справа по направлению движения, в зависимости от того, что позволит выполнить кратчайший маршрут. |
DepartCurbApproach | Указывает на сторону транспортного средства, с которой должен находиться бордюр при отправлении из сетевого положения. Если для параметра CurbApproach сетевого положения задано значение Справа по направлению движения (Right side of vehicle), то после решения DepartCurbApproach будет равен Справа по направлению движения (Right side of vehicle). Однако, если значение CurbApproach установлено на С любой стороны (Either side of vehicle) или Без разворота (No U-Turn), то свойство DepartCurbApproach может быть как слева, так и справа по направлению движения, в зависимости от того, что позволит выполнить кратчайший маршрут. |
ArriveTime | Значение даты и времени, указывающее время прибытия на заказ. Прибытие по маршруту на заказ может предшествовать началу одного из временных окон заказа, и в этом случае в заказе будет время ожидания. Для заказа с гибкими временными окнами прибытие по маршруту на заказ может состояться после окончания одного из временных окон, и в этом случае в заказе будет время нарушения. При использовании данных трафика, охватывающих несколько часовых поясов, часовой пояс для данного значения времени дня берется из элемента сети, на котором расположен заказ. |
DepartTime | Значение даты и времени, указывающее время отправления с заказа. Отправление по маршруту с заказа производится после завершения обслуживания. При использовании данных трафика, охватывающих несколько часовых поясов, часовой пояс для данного значения времени дня берется из элемента сети, на котором расположен заказ. |
WaitTime | Время ожидания или задержки заказа. Например, значение времени ожидания будет добавлено, если по маршруту предусмотрено ожидание открытия временного окна. Единица измерения для значения данного поля задается свойством Единицы поля времени (Time Field Units) для слоя анализа. |
ViolationTime | Величина времени между окончанием временного окна заказа и прибытием транспортного средства по маршруту. Единица измерения для значения данного поля задается свойством Единицы поля времени (Time Field Units) для слоя анализа. |
CumulWaitTime | Суммарное время ожидания от начала маршрута вплоть до заказа включительно. Единица измерения для значения данного поля задается свойством Единицы поля времени (Time Field Units) для слоя анализа. |
CumulViolationTime | Суммарное время нарушений от начала маршрута вплоть до заказа включительно. Единица измерения для значения данного поля задается свойством Единицы поля времени (Time Field Units) для слоя анализа. |
Класс «Станции» (Depots)
В этом классе сетевого анализа хранятся станции, являющиеся частью данного слоя анализа задачи выбора маршрута транспорта. Станция – это место, откуда отправляется транспортное средство в начале рабочего дня и куда возвращается по его окончании. Станции – это пункты, в которых транспортные средства загружаются (при доставке) или разгружаются (при сборе). В некоторых случаях станция может также служить местом пополнения загрузки, в котором транспортное средство может разгружаться или догружаться и продолжать выполнять доставку и сбор. У станции есть значения времени открытия и закрытия, указываемые жестким временным окном. Транспортные средства не могут прибывать на станцию за пределами этого временного окна.
Свойства станции
Поля ввода слоя «Станции» (Depots)
Входное поле | Описание |
---|---|
ObjectID | Управляемое системой поле ID. |
Shape | Поле геометрии, показывающее географическое положение объекта сетевого анализа. |
Имя | Имя объекта сетевого анализа. Это поле служит первичным ключом и используется как внешний ключ в слое пространственных объектов «Маршруты» (Routes), таблице RouteRenewals и слое пространственных объектов «Посещения станций» (Depot Visits) для обращения к станциям. Имена станций нечувствительны к реестру и должны быть непустыми и уникальными. |
Описание | Описательная информация об объекте сетевого анализа. Может содержать любую текстовую информацию и не имеет ограничений на уникальность. Возможно, необходимо будет записать регион, в котором находится станция, или ее адрес и номер телефона. Эту информацию можно ввести здесь, а не в поле «Имя» (Name). |
TimeWindowStart1 | Время начала и конца первого временного окна для сетевого положения. Это поле может содержать значение NULL; значение NULL показывает отсутствие времени начала. (Дополнительную информацию см. в примечании к данной таблице свойств.) |
TimeWindowEnd1 | Время окончания первого окна для сетевого положения. Это поле может содержать значение NULL; значение NULL показывает отсутствие времени окончания. (Дополнительную информацию см. в примечании к данной таблице свойств.) |
TimeWindowStart2 | Время начала и конца второго временного окна для сетевого положения. Это поле может содержать значение NULL; значение NULL показывает отсутствие второго временного окна. Если первое временное окно содержит null, как указано в полях TimeWindowStart1 и TimeWindowEnd1, то второе временное окно также должно иметь значения null. Если оба временных окна непустые, то они не могут перекрываться. Кроме того, второе временное окно должно следовать за первым. (Дополнительную информацию см. в примечании к данной таблице свойств.) |
TimeWindowEnd2 | Время окончания второго временного окна для сетевого положения. Это поле может содержать значение NULL. Когда TimeWindowStart2 и TimeWindowEnd2 оба имеют значение NULL, то второе временное окно отсутствует. Когда TimeWindowStart2 не NULL, а TimeWindowEnd2 – NULL, то имеется второе временное окно со временем начала, но без времени окончания. Это корректная ситуация. (Дополнительную информацию см. в примечании к данной таблице свойств.) |
Поля сетевого положения
| Вместе эти четыре свойства описывают точку сети, в которой расположен объект. |
CurbApproach | Свойство CurbApproach указывает направление, с которого транспортное средство может прибыть и в котором отправиться со станции. Это полезно для транспортных средств, которым необходимо прибывать на станцию и отправляться с нее с определенного направления или с избеганием разворотов. Удовлетворить эти требования можно, выбрав одно из следующих четырех значений свойства CurbApproach:
|
Поля ввода/вывода слоя «Станции» (Depots)
Входное/Выходное поле | Описание |
---|---|
Статус | Данное поле ограничивается с помощью домена значений, которые указаны ниже (их кодированные значения указаны в скобках).
По завершении операции расчета статус может быть изменен с помощью одного из приведенных ниже значений статуса.
Если используются временные окна, а транспортное средство прибывает по маршруту слишком рано или слишком поздно, значение меняется на Превышение временного окна (Time window violation) (6). |
Класс Маршруты
В этом классе сетевого анализа хранятся маршруты, являющиеся частью данного слоя анализа задачи выбора маршрута транспорта. Маршрут задает характеристики транспортного средства и водителя, а также представляет прохождение между станциями и заказами. В Network Analyst транспортные средства, маршруты и водители являются синонимами, а термин маршрут обычно охватывает все три этих понятия.
Маршрут может включать в себя время загрузки или выгрузки на начальной или конечной станциях. Величина времени, проводимая на станции, является фиксированной для маршрута и указывается в качестве времени обслуживания на начальной и конечной станциях.
Маршрут может начинаться в фиксированное время или иметь гибкое время начала, то есть диапазон между наиболее ранним и наиболее поздним возможным временем начала. Диапазон времени начала и временное окно начальной станции учитываются при определении фактического времени начала маршрута.
Эксплуатационные затраты для отдельного маршрута могут состоять из затрат на основе времени, затрат на основе расстояния и/или фиксированных затрат, независимых от величины отработанного времени или пройденного расстояния. Например, могут присутствовать фиксированные затраты, связанные с использованием транспортного средства, если необходимо арендовать дополнительные транспортные средства в дни высокой нагрузки. Подобным образом водителю может быть оплачено число отработанных часов, включая или исключая сверхурочные и перерывы на обед. Такие затраты могут использоваться для указания затрат на основе времени. Затраты на топливо могут использоваться для указания затрат на основе расстояния.
Транспортное средство, работающее на заданном маршруте, может также обладать определенной вместимостью, которая ограничивает объем перевозимого груза.
Могут быть установлены ограничения рабочего дня водителя, например общее пройденное расстояние или число часов работы или вождения, в связи с государственным регулированием или профсоюзными соглашениями.
Маршрут может включать перерывы в работе. Водителю эти перерывы могут оплачиваться или не оплачиваться.
Транспортное средство может обладать определенными возможностями, например механическим подъемником или специальным экранированием, а технические специалисты – разными наборами навыков. Заказы, в которых определены такие специальные требования, должны назначаться соответствующим маршрутам.
Маршрут может быть связан с той или иной зоной, если работа по нему ограничена предварительно определенным географическим регионом.
Маршруты представляют собой линейные пространственные объекты. Их можно импортировать из существующих маршрутов, расположенных в других слоях анализа задачи выбора маршрута транспорта, других линейных объектов или таблиц. Также их можно создавать командой Добавить элемент (Add Item).
Свойства маршрута
Входные поля Маршрутов
Входное поле | Описание |
---|---|
ObjectID | Управляемое системой поле ID. |
Имя | Имя объекта сетевого анализа. Это поле служит первичным ключом и используется как внешний ключ в слое пространственных объектов «Заказы» (Orders), таблице «Перерыв» (Breaks), слое пространственных объектов «Зоны маршрутов» (Route Zones), слое пространственных объектов «Исходные точки маршрутов» (Route Seed Points), таблице «Обновления маршрутов» (Route Renewals) и слое пространственных объектов «Посещения станций» (Depot Visits). Имена маршрутов нечувствительны к регистру и не могут быть пустыми, даже если маршрут не является частью операции расчета. Имя должно быть уникальным. |
Описание | Описательная информация об объекте сетевого анализа. Может содержать любую текстовую информацию и не имеет ограничений на уникальность. |
StartDepotName | Имя начальной станции маршрута. Это поле является внешним ключом для поля Name в классе Станции (Depots). Объекты станций должны существовать до того, как они появятся в раскрывающемся списке StartDepotName. Если значение StartDepotName равно нулю, то маршрут начинается с первого назначенного заказа. Исключение начальной станции полезно в том случае, если начальное положение транспортного средства неизвестно или неважно для вашей задачи. При этом, если значение StartDepotName равно нулю, то EndDepotName не может быть равно нулю. Если маршрут выполняет доставку и StartDepotName равен нулю, то предполагается, что груз загружен в транспортное средство на виртуальной станции перед началом маршрута. Для маршрута без обновления заказы маршрутов (с ненулевыми значениями DeliveryQuantities в классе Заказы) загружаются на начальной станции или виртуальной станции. Для маршрута с обновлениями, на начальной или виртуальной станции выполняется загрузка только тех заказов маршрутов, которые выполняются до первого обновления. |
EndDepotName | Имя конечной станции маршрута. Это поле является внешним ключом для поля Name в классе Станции (Depots). Объекты станций должны существовать до того, как они появятся в раскрывающемся списке EndDepotName. |
StartDepotServiceTime | Время обслуживания на начальной станции. Может использоваться для моделирования времени, затраченного на загрузку транспортного средства. Это поле может содержать значение NULL; значение NULL соответствует нулевому времени обслуживания. Единица измерения для значения данного поля задается свойством Единицы поля времени (Time Field Units) для слоя анализа. |
EndDepotServiceTime | Время обслуживания на конечной станции. Может использоваться для моделирования времени, затраченного на разгрузку транспортного средства. Это поле может содержать значение NULL; значение NULL соответствует нулевому времени обслуживания. Единица измерения для значения данного поля задается свойством Единицы поля времени (Time Field Units) для слоя анализа. |
EarliestStartTime |
Наиболее ранее допустимое время начала маршрута. Используется механизмом расчета в сочетании с временным окном для начальной станции, чтобы определить времена начала выполнимого маршрута. Это поле не может содержать нулевые значения и имеет по умолчанию значение только времени «8:00 AM»; значение по умолчанию интерпретируется как 8:00 утра даты, заданной свойством Дата по умолчанию (Default Date) слоя анализа. Дата по умолчанию игнорируется, когда поле временного окна содержит дату и время. Для предотвращения этой ошибки форматируйте все временные окна для Станций, Маршрутов, Заказов и Перерывов чтобы они также включали дату и время. При использовании наборов сетевых данных с данными трафика, охватывающими несколько часовых поясов, часовой пояс для EarliestStartTime такой же, как и часовой пояс для ребра или соединения, на котором расположена начальная станция. |
LatestStartTime | Наиболее позднее допустимое время начала маршрута. Это поле не может содержать нулевые значения и имеет по умолчанию значение только времени «10:00 AM»; значение по умолчанию интерпретируется как 10:00 утра даты, заданной свойством Дата по умолчанию (Default Date) слоя анализа. Дата по умолчанию игнорируется, когда поле временного окна содержит дату и время. Для предотвращения этой ошибки форматируйте все временные окна для Станций, Маршрутов, Заказов и Перерывов чтобы они также включали дату и время. При использовании наборов сетевых данных с данными трафика, охватывающими несколько часовых поясов, часовой пояс для LatestStartTime такой же, как и часовой пояс для ребра или соединения, на котором расположена начальная станция. |
ArriveDepartDelay | В этом поле хранится величина времени в пути, необходимая для ускорения транспортного средства до обычной скорости передвижения, замедления его до остановки и перемещения из сети и в сеть (например, на парковку и с парковки). Включение значения ArriveDepartDelay позволяет механизму расчета задачи выбора маршрута транспорта не отправлять множество маршрутов для обслуживания физически совпадающих заказов. Стоимость для этого свойства выводится между визитами по несовпадающим заказам, станциям и обновлениям маршрута. Например, если маршрут начинается со станции и посещает первый заказ, ко времени пути добавляется общая задержка прибытия/отправления. То же касается пути от первого заказа ко второму. Если второй и третий заказы совпадают, значение ArriveDepartDelay между ними не добавляется, поскольку транспортному средству не нужно перемещаться. Если маршрут следует к пункту обновления загрузки, значение снова добавляется ко времени в пути. Хотя транспортному средству необходимо замедляться и останавливаться на перерыв, а после него ускоряться, механизм расчета задачи выбора маршрута транспорта не может добавлять значение ArriveDepartDelay для перерывов. Это значит, что при выезде с заказа, остановке на перерыв и продолжении движения к следующему заказу, задержка прибытия/отправления добавляется только один раз, а не два. Предположим, имеются пять совпадающих заказов в одном многоэтажном доме, которые обслуживаются тремя разными маршрутами. Это значит, что нужно было бы добавить три задержки прибытия/отправления; то есть трем водителям необходимо было бы найти места для парковки и войти в одно и то же здание. Однако если заказы могут быть обслужены всего одним маршрутом, парковаться и входить в здание необходимо только одному водителю – и возникает только одна задержка прибытия/отправления. Поскольку механизм расчета задачи выбора маршрута транспорта пытается минимизировать затраты, он попробует ограничить задержки прибытия/отправления и поэтому выберет вариант с одним маршрутом. (Обратите внимание, что при наличии других ограничений – специальных требований, временных окон или емкости – могут понадобиться несколько маршрутов.) Единица измерения для значения данного поля задается свойством Единицы поля времени (Time Field Units) для слоя анализа. |
Capacities | Максимальная величина (например, объем, вес или количество), которая может быть перевезена транспортным средством. Если транспортное средство может перевозить максимум 40000 фунтов, параметру Число характеристик ёмкости (Capacity Count) в диалоговом окне Свойства слоя (Layer Properties) слоя анализа следует задать значение 1, а параметру Вместимость (Capacities) – значение 40000. Подобным образом, если транспортное средство может перевозить 1000 кубических футов, параметру Число характеристик ёмкости (Capacity Count) следует задать значение 1, а параметру Вместимость (Capacities) – значение 1000. При наличии нескольких характеристик вместимости, на что указывает параметр Число характеристик ёмкости (Capacity Count) слоя анализа, значения характеристик разделяются пробелом. Например, если используются как максимальный вес, так и максимальный объем транспортного средства, параметру Число характеристик ёмкости (Capacity Count) в диалоговом окне Свойства слоя (Layer Properties) слоя анализа следует задать значение 2; если транспортное средство может перевозить вес 40000 фунтов и объем 2000 кубических футов, параметру Вместимость (Capacities) следует задать значение 40000 2000. Пустая строка или значение NULL соответствует нулю для всех значений. Значения емкости не могут быть отрицательными. Если строка «Вместимость» (Capacities) содержит недостаточное число значений относительно числа характеристик вместимости, оставшиеся значения интерпретируются как равные нулю. |
FixedCost | Фиксированное денежная стоимость, которая принимается только в том случае, если маршрут используется в решении (то есть, что для него назначены некоторые заказы). Это поле может содержать значения NULL; значение NULL соответствует нулевой фиксированной стоимости. Данная стоимость является частью общих оперативных расходов на маршрут. |
CostPerUnitTime | Примененная денежная стоимость – на единицу времени работы – для общей продолжительности маршрута, включая значения времени в пути, а также времени обслуживания и ожидания на заказах, станциях и в перерывах. Это поле не может содержать значение NULL и имеет значение по умолчанию, равное 1,0. Единица измерения для значения данного поля задается свойством Единицы поля времени (Time Field Units) для слоя анализа. |
CostPerUnitDistance | Примененная денежная стоимость – на единицу пройденного расстояния – для длины маршрута (общее пройденное расстояние). Это поле может содержать значения NULL; значение NULL соответствует нулевой стоимости. Единица расстояния указывается свойством Единицы поля расстояния (Distance Field Units) слоя анализа. Механизм расчета вернет ошибку, если для данного поля введено значение, а свойство Атрибут расстояния (Distance Attribute) не задано для слоя анализа. |
OvertimeStartTime | Продолжительность регулярного времени работы перед началом вычисления сверхурочных. Это поле может содержать значения NULL; значение NULL соответствует отсутствию сверхурочных. Единица измерения для значения данного поля задается свойством Единицы поля времени (Time Field Units) для слоя анализа. Например, если водителю выплачиваются сверхурочные при превышении общей длительностью маршрута восьми часов, значение OvertimeStartTime указывается равным 8, если свойству Единицы поля расстояния (Distance Field Units) слоя анализа задано значение Часы (Hours). |
CostPerUnitOvertime | Денежная стоимость для единицы времени сверхурочной работы. Это поле может содержать значения NULL; значение NULL соответствует равенству значений CostPerUnitOvertime и CostPerUnitTime. |
MaxOrderCount |
Максимальное допустимое число заказов на маршруте. Это поле не может содержать значения NULL и имеет значение по умолчанию, равное 30. |
MaxTotalTime | Максимально допустимая продолжительность маршрута. Продолжительность (длительность) маршрута включает в себя значения времени в пути, а также времени обслуживания и ожидания на заказах, на станциях и в перерывах. Это поле может содержать значения NULL; значение NULL соответствует отсутствию ограничений по продолжительности маршрута. Единица измерения для значения данного поля задается свойством Единицы поля времени (Time Field Units) для слоя анализа. |
MaxTotalTravelTime | Максимально допустимое время в пути для маршрута. Данное время в пути содержит только время, затраченное на движение по сети, и не включает в себя время обслуживания или ожидания. Единица измерения для значения данного поля задается свойством Единицы поля времени (Time Field Units) для слоя анализа. Это поле может содержать значения NULL; значение NULL соответствует отсутствию ограничений по максимально допустимому времени передвижения по маршруту. Значение данного поля не может быть выше значения поля MaxTotalTime. |
MaxTotalDistance | Максимально допустимое расстояние движения для маршрута. Единица измерения общего расстояния указывается свойством Единицы поля расстояния (Distance Field Units) слоя анализа. Это поле может содержать значения NULL; значение NULL соответствует отсутствию ограничений по максимально допустимому расстоянию для маршрута. Механизм расчета вернет ошибку, если для данного поля введено значение, а свойство Атрибут расстояния (Distance Attribute) не задано для слоя анализа. |
SpecialtyNames | Строка, разделенная пробелами и содержащая имена специальных требований, поддерживаемых маршрутом. Нулевое значение указывает, что маршрут не поддерживает никаких специальных требований. Это поле является внешним ключом для поля Name в таблице «Специальные требования» (Specialties). Объекты специальных требований должны существовать до того, как они появятся в списке SpecialtyNames. |
AssignmentRule | Определяет, может ли маршрут быть использован для решения задачи. Это поле ограничено доменом значений; возможные значения:
|
Выходные поля Маршрутов
Выходное поле | Описание |
---|---|
Shape | Форма линии маршрута. Если свойству Тип формы на выходе (Output Shape Type) слоя анализа задано значение «Нет» (None), форма не возвращается. Присвоение свойству Тип формы на выходе (Output Shape Type) значения «Прямая» (Straight Line) возвращает прямые линии маршрутов, соединяющие каждую пару последовательных посещений. Значения Истинная форма с измерениями (True Shape with measures) и Истинная форма (True Shape) оба возвращают линии, трассирующие соответствующие маршруты по сети. Разница в том, что при значении Истинная форма с измерениями (True Shape with measures) возвращается линия, которая уже линейно привязана ко времени. |
ViolatedConstraints | Это поле содержит сводку по нарушениям ограничений, и значение ему присваивается после операции расчета. Если маршрут вызывает нарушение ограничения, полю может быть назначено сочетание одного или нескольких нарушений, перечисленных ниже.
|
OrderCount | Число заказов, назначенных маршруту. |
TotalCost | Общие затраты на эксплуатацию маршрута, которые являются суммой значений следующих полей:
|
RegularTimeCost | Стоимость обычного рабочего времени, за исключением неоплачиваемых перерывов. |
OvertimeCost | Стоимость сверхурочной работы, за исключением неоплачиваемых перерывов. |
DistanceCost | Компонент стоимости расстояния, получаемый умножением значений полей TotalDistance и CostPerUnitDistance. Это поле имеет нулевое значение, если свойство Атрибут расстояния (Distance Attribute) не указан для слоя анализа. |
TotalTime | Общая длительность маршрута. Она включает в себя значения времени в пути, а также времени обслуживания и ожидания на заказах, на станциях и в перерывах. Значение TotalTime является суммой значений следующих полей:
Единица измерения для значения данного поля задается свойством Единицы поля времени (Time Field Units) для слоя анализа. |
TotalOrderServiceTime | Общее время обслуживания, потраченное на всех заказах по маршруту. Единица измерения для значения данного поля задается свойством Единицы поля времени (Time Field Units) для слоя анализа. |
TotalBreakServiceTime | Общее время обслуживания, потраченное на всех перерывах по маршруту. Единица измерения для значения данного поля задается свойством Единицы поля времени (Time Field Units) для слоя анализа. |
TotalTravelTime | Общее время в пути для маршрута. Единица измерения для значения данного поля задается свойством Единицы поля времени (Time Field Units) для слоя анализа. |
TotalDistance | Общее расстояние пути для маршрута. Единица измерения для значения данного поля устанавливается свойством Единицы поля расстояния (Distance Field Units) слоя анализа. Это поле пустое (NULL), если свойство Атрибут расстояния (Distance Attribute) не задано в параметрах анализа. |
StartTime | Время начала маршрута. Маршрут может начинаться до начала временного окна его начальной станции; в этом случае на начальной станции будет затрачено время ожидания. При использовании данных о трафике, охватывающих несколько часовых поясов, часовой пояс для данного значения времени дня берется из элемента сети, на котором расположена начальная станция. |
EndTime | Время окончания маршрута. Маршрут заканчивается по завершении обслуживания на конечной станции. При использовании данных о трафике, охватывающих несколько часовых поясов, часовой пояс для данного значения времени дня берется из элемента сети, на котором расположена конечная станция. |
TotalWaitTime | Общее время ожидания на всех точках заказов, станциях и перерывах по маршруту. Единица измерения для значения данного поля задается свойством Единицы поля времени (Time Field Units) для слоя анализа. |
TotalViolationTime | Общее время нарушения на всех заказах и перерывах по маршруту. Единица измерения для значения данного поля задается свойством Единицы поля времени (Time Field Units) для слоя анализа. |
RenewalCount | Для маршрута с обновлениями равно числу посещений станций для пополнения загрузки. |
TotalRenewalServiceTime | Для маршрута с обновлениями общее время обслуживания, потраченное при всех посещениях для обновления загрузки по маршруту. Единица измерения для значения данного поля задается свойством Единицы поля времени (Time Field Units) для слоя анализа. |
Слой пространственных объектов «Посещения станций» (Depot Visits)
Когда маршрут начинается, обновляется (разгружается или догружается) или заканчивается на станции, создается посещение станции. Объекты посещений станций предоставляют информацию о том, почему станция была посещена маршрутом, и что на ней произошло. Количество загруженных или выгруженных из транспортного средства на станции товаров записывается в свойствах посещения станции. Также включается дополнительная информация, полезная при интерпретации решения задачи выбора маршрута транспорта.
Это класс сетевого анализа, предназначенный только для вывода. Пространственные объекты посещений станций создаются строго во время операции расчета; поэтому класс анализа до начала процесса расчета всегда пуст.
Свойства посещения станции
Выходные поля Посещения станций
Выходное поле | Описание |
---|---|
ObjectID | Управляемое системой поле ID. |
Shape | Поле геометрии, показывающее географическое положение объекта сетевого анализа. |
DepotName | Имя посещенной станции Это поле является внешним ключом для поля Name в классе сетевого анализа «Станции» (Depots). Если в маршруте используется виртуальная станция, то есть маршрут начинается или заканчивается на заказе, а не на станции, поле DepotName имеет нулевое значение. |
RouteName | Имя маршрута, содержащего данное посещение. Это поле является внешним ключом для поля Name в слое пространственных объектов «Маршруты» (Routes). |
Sequence | Обозначает последовательность посещенной станции на маршруте. Выходные значения последовательности для маршрута едины для посещений станций, заказов и перерывов; начинаются с 1 (на начальной станции); и являются последовательными. |
VisitType | Причина посещения данной станции. Это поле ограничено доменом значений:
|
ServiceTime | Время обслуживания (например, загрузки или выгрузки) на станции. Единица измерения для значения данного поля задается свойством Единицы поля времени (Time Field Units) для слоя анализа. |
FromPrevTravelTime | Время в пути до станции от предыдущего посещения на маршруте. Единица измерения для значения данного поля задается свойством Единицы поля времени (Time Field Units) для слоя анализа. |
FromPrevDistance | Расстояние до станции от предыдущего посещения на маршруте. Единица измерения для значения данного поля устанавливается свойством Единицы поля расстояния (Distance Field Units) слоя анализа. Это поле пустое (NULL), если свойство Атрибут расстояния (Distance Attribute) не задано в параметрах анализа. |
CumulTravelTime | Суммарное время в пути по маршруту до прибытия на данную станцию. Единица измерения для значения данного поля задается свойством Единицы поля времени (Time Field Units) для слоя анализа. |
CumulDistance | Суммарное расстояние перемещения по маршруту до прибытия на данную станцию. Единица измерения для значения данного поля устанавливается свойством Единицы поля расстояния (Distance Field Units) слоя анализа. Это поле пустое (NULL), если свойство Атрибут расстояния (Distance Attribute) не задано в параметрах анализа. |
CumulTime | Суммарная продлжительность маршрута до станции включительно. Кумулятивная длительность включает в себя значения времени в пути, а также времени обслуживания и ожидания на заказах, на станциях и в перерывах. Единица измерения для значения данного поля задается свойством Единицы поля времени (Time Field Units) для слоя анализа. |
ArriveTime | Время прибытия на станцию. Маршрут может прибывать на станцию до начала ее временного окна; в этом случае на станции будет время ожидания. При использовании данных о трафике, охватывающих несколько часовых поясов, часовой пояс для данного значения времени дня такой же, как и для элемента сети, на котором расположена станция. |
DepartTime | Время отправления со станции. При использовании данных о трафике, охватывающих несколько часовых поясов, часовой пояс для данного значения времени дня такой же, как и для элемента сети, на котором расположена станция. |
WaitTime | Время ожидания на станции. Единица измерения для значения данного поля задается свойством Единицы поля времени (Time Field Units) для слоя анализа. |
CumulWaitTime | Суммарное время ожидания от начала маршрута вплоть до станции включительно. Единица измерения для значения данного поля задается свойством Единицы поля времени (Time Field Units) для слоя анализа. |
CumulViolationTime | Суммарное время нарушений от начала маршрута вплоть до станции включительно. Единица измерения для значения данного поля задается свойством Единицы поля времени (Time Field Units) для слоя анализа. |
TotalLoadedQuantities | Величина (например, объем, вес или количество), загружаемая на станции. При наличии нескольких характеристик вместимости, на что указывает свойство Число характеристик ёмкости (Capacity Count) слоя анализа, они разделяются пробелом. Например, в случае доставки значение поля TotalLoadedQuantities обозначает фактическое количество товаров, доставляемых транспортным средством перед возвращением на станцию. Это значение меньше или равно значению поля «Вместимость» (Capacities) для заданного маршрута, что обозначает, что маршрут выполняет доставку с одним заполнением грузовика. |
TotalUnloadedQuantities | Величина (например, объем, вес или количество), выгружаемая на станции. При наличии нескольких характеристик вместимости, на что указывает свойство Число характеристик ёмкости (Capacity Count) слоя анализа, они разделяются пробелом. Например, в случае сбора или маршрутов с обновлениями значение поля TotalUnloadedQuantities обозначает фактическое количество товаров, собираемых транспортным средством и доставляемых на станцию. Это значение меньше или равно значению поля «Вместимость» (Capacities) для заданного маршрута, что обозначает, что маршрут выполняет сбор с одним заполнением грузовика. |
Класс «Перерывы»
Это класс непространственного сетевого анализа, в котором хранятся периоды отдыха (перерывы) для маршрутов в задаче выбора маршрута транспорта. Перерыв связан ровно с одним маршрутом и может быть взят после выполнения заказа, на пути к заказу или перед обслуживанием заказа. У него есть время начала и длительность, которые могут оплачиваться или не оплачиваться водителю. Имеется три способа установки начала перерыва: можно ввести временное окно, максимальное время в пути или максимальное время работы.
Перерыв с временным окном – для настройки перерыва с временным окном следует ввести два значения времени дня для определения временного диапазона, в котором должен начинаться перерыв. В полях TimeWindowStart и TimeWindowEnd содержатся граничные значения времени дня. Длительность перерыва (время обслуживания) не зависит от временного окна и поэтому может выходить за предел окончания окна времени. Например, если окно времени для часового перерыва простирается от 10:00 до 10:15, перерыв должен начаться после 10:00, но до 10:15. Если перерыв начнется в 10:10, он закончится в 11:10.
Перерыв с максимальным временем в пути – при этом виде перерыва следует указать, как долго человек может вести транспортное средство, прежде чем потребуется перерыв. (Обратите внимание, что ограничено только время в пути, а не другие значения времени, такие как время ожидания и обслуживания.) Например, если ввести значение свойства MaxTravelTimeBetweenBreaks первого перерыва, равное четырем часам, водитель получит перерыв до того, как накопленное время в пути от начала маршрута превысит четыре часа. Для последующих перерывов время в пути накапливается от предыдущего перерыва. Поэтому если для второго перерыва значение свойства MaxTravelTimeBetweenBreaks будет равно двум часам, второй перерыв будет взят перед накоплением двух часов времени в пути от предыдущего перерыва, а не от начальной станции.
Последний на маршруте перерыв после максимального времени в пути не только ограничивает величину накопленного времени в пути от предыдущего перерыва или начала маршрута, но и ограничивает время в пути от последнего перерыва до конечной станции. Это справедливо даже в случае только одного перерыва. Механизм расчета задачи выбора маршрута транспорта разработан таким образом, чтобы предотвратить взятие всех перерывов на маршруте с последующим движением в течение продолжительного периода без дополнительного перерыва. В последнем примере для свойства MaxTravelTimeBetweenBreaks было задано значение, равное двум часам. Если это последний перерыв на маршруте, должна быть возможность достичь конечной станции в течение двух часов времени в пути от последнего перерыва; в противном случае механизм расчета вернет ошибку.
Перерыв с максимальным временем работы – этот перерыв указывает, как долго человек может работать, прежде чем потребуется перерыв. В отличие от перерывов с максимальным временем в пути, которые могут накапливать время в пути от окончания предыдущего перерыва, перерывы с максимальным временем работы всегда накапливают время работы от начала маршрута, включая время обслуживания на начальной станции.
Обратите внимание, что этот перерыв ограничивает накопленное время работы, которое включает в себя время в пути и все время обслуживания; однако время ожидания в него не включается.
Слой анализа задачи выбора маршрута транспорта может быть рассчитан только при условии, если все перерывы одного типа; то есть процесс расчета завершится ошибкой при наличии любого сочетания перерывов с окном времени, с максимальным временем в пути и с максимальным временем работы.
На одном маршруте можно указать до пяти перерывов. Например, предположим, что для анализа используются перерывы с максимальным временем в пути. На один маршрут можно назначить два перерыва так, чтобы после накопления двух часов времени в пути водитель мог отдохнуть 15 минут, а еще через два часа пути он мог остановиться на обед на один час. При этом могут быть и другие маршруты с любым числом перерывом от нуля до пяти.
У перерывов есть поле Приоритет (Precedence), которое упорядочивает их в последовательность. Таким образом, если необходимо, чтобы 15-минутный перерыв состоялся перед одночасовым перерывом, значением приоритета для 15-минутного перерыва должно быть 1, а значением приоритета для другого – 2. Приоритет необходим для обоих перерывов, даже несмотря на то, что перерывам с максимальным временем работы и с временным окном присущ хронологический порядок.
Если маршрут достигает конечного пункта назначения до взятия всех перерывов с максимальным временем в пути или максимальным временем работы, оставшиеся перерывы игнорируются. Если в конце маршрута остаются перерывы с временным окном, маршрут перед завершением будет ожидать, пока будут взяты все перерывы, а не завершится досрочно.
Свойства перерыва
Поля ввода слоя «Перерывы» (Breaks)
Входное поле | Описание |
---|---|
ObjectID | Управляемое системой поле ID. |
TimeWindowStart |
Время начала временного окна перерыва. Если данное поле пустое (null) и для TimeWindowEnd указано действительное значение времени в течении дня, то перерыв может начаться в любое время до TimeWindowEnd. Если данное поле содержит значение, то MaxTravelTimeBetweenBreaks и MaxCumulWorkTime должны быть пустыми (null); более того, все остальные перерывы в слое анализа должны иметь значения NULL для параметров MaxTravelTimeBetweenBreaks и MaxCumulWorkTime. Если маршрут имеет множество перерывов с перекрывающимися временными окнами, то во время решения будет возникать ошибка. Поля временных окон в перерывах могут содержать значение только времени или даты и времени. Если поле времени, например TimeWindowStart, имеет значение только времени (например, 12:00), дата предполагается равной дате, указанной свойством Дата по умолчанию (Default Date) слоя анализа. Использование значений даты и времени (например, 11.07.2012 12:00) позволяет указывать временные окна, охватывающие два и более дней. Это особенно полезно, если перерыв следует сделать в районе полуночи. Дата по умолчанию игнорируется, когда поле временного окна содержит дату и время. Для предотвращения этой ошибки форматируйте все временные окна для Станций, Маршрутов, Заказов и Перерывов чтобы они также включали дату и время. При использовании наборов сетевых данных с данными трафика, охватывающими несколько часовых поясов, часовой пояс для TimeWindowStart и TimeWindowEnd принимается таким же, как и часовой пояс для ребра или соединения, на котором расположена начальная станция. |
TimeWindowEnd | Время окончания временного окна перерыва. Если данное поле пустое (null) и для TimeWindowStart указано действительное значение времени в течении дня, то перерыв может начаться в любое время после TimeWindowStart. Если данное поле содержит значение, то MaxTravelTimeBetweenBreaks и MaxCumulWorkTime должны быть пустыми (null); более того, все остальные перерывы в слое анализа должны иметь значения NULL для параметров MaxTravelTimeBetweenBreaks и MaxCumulWorkTime. Дата по умолчанию игнорируется, когда поле временного окна содержит дату и время. Для предотвращения этой ошибки форматируйте все временные окна для Станций, Маршрутов, Заказов и Перерывов чтобы они также включали дату и время. Дополнительную информацию см. в описании TimeWindowStart (выше). |
MaxTravelTimeBetweenBreaks |
Максимальное время в пути, которое может быть суммировано до начала перерыва. Время в пути суммируется от окончания предыдущего перерыва или, если перерыв еще произошел, от начала маршрута. Если это последний перерыв маршрута, то MaxTravelTimeBetweenBreaks также указывает на максимальное время в пути, которое может быть суммировано от последнего перерыва до конечной станции. Это свойство предназначено ограничить длительность вождения транспортного средства человеком, прежде чем потребуется перерыв. Например, если для свойства Единицы поля времени (Time Field Units) слоя анализа установлено значение «Минуты» (Minutes), а свойство MaxTravelTimeBetweenBreaks имеет значение 120, водитель получит перерыв через два часа вождения. Чтобы назначить второй перерыв еще через два часа вождения, свойству MaxTravelTimeBetweenBreaks второго перерыва следует присвоить значение 120. Если данное поле содержит значение, то TimeWindowStart, TimeWindowEnd, MaxViolationTime и MaxCumulWorkTime должны быть пустыми (NULL) для успешного выполнения анализа. Единица измерения для значения данного поля задается свойством Единицы поля времени (Time Field Units) для слоя анализа. |
MaxCumulWorkTime | Максимальное время работы, которое может быть суммировано до начала перерыва. Время работы всегда накапливается от начала маршрута. Оно включает в себя сумму времени перемещения, а также времени обслуживания и ожидания на заказах, на станциях и в перерывах. Обратите внимание, что здесь исключено время ожидания, которое равно времени, затрачиваемому маршрутом (или водителем) на ожидание в точке заказа или на станции до начала временного окна. Это свойство предназначено ограничить длительность работы человека, прежде чем потребуется перерыв. Например, если для свойства Единицы поля времени (Time Field Units) слоя анализа установлено значение «Минуты» (Minutes), свойство MaxCumulWorkTime имеет значение 120, а ServiceTime – значение 15, водитель получит 15-минутный перерыв через два часа работы. Продолжая рассматривать последний пример, предположим, что второй перерыв должен начаться через три часа работы. Для указания данного перерыва необходимо ввести значение 315 (пять часов и 15 минут) в параметр MaxCumulWorkTime второго перерыва. Данное значение включает в себя MaxCumulWorkTime и ServiceTime предыдущего перерыва, а также три дополнительных часа работы до второго перерыва. Чтобы избежать преждевременных перерывов с максимальным временем работы, помните, что они суммируют время работы от начала маршрута, а также, что время работы включает в себя время обслуживания на предварительно посещенных станциях, заказах и в перерывах. Если данное поле содержит значение, то TimeWindowStart, TimeWindowEnd, MaxViolationTime и MaxTravelTimeBetweenBreaks должны быть пустыми (NULL) для успешного выполнения анализа. Единица измерения для значения данного поля задается свойством Единицы поля времени (Time Field Units) для слоя анализа. |
RouteName | Название маршрута, для которого применяется перерыв. Несмотря на то, что перерыв назначается строго одному маршруту, этому маршруту могут быть назначены несколько перерывов. Данное поле является внешним ключом для поля Имя (Name) в классе Маршруты (Routes) и не может содержать значение NULL. Объекты маршрутов должны существовать до того, как они появятся в раскрывающемся списке RouteName. |
Precedence | Значения приоритета (Precedence) определяют последовательность перерывов для заданного маршрута. Перерывы со значением приоритета 1 происходят до перерывов со значением 2 и т. д. Все перерывы должны иметь значение приоритета вне зависимости от того, являются ли они перерывами временного окна, максимального времени в пути или максимального времени работы. |
ServiceTime |
Продолжительность перерыва. Это поле может содержать значения NULL; значение NULL соответствует отсутствию времени обслуживания. Единица измерения для значения данного поля задается свойством Единицы поля времени (Time Field Units) для слоя анализа. |
MaxViolationTime | В данном поле указывается максимальное допустимое время нарушения для временного окна перерыва. Временное окно считается нарушенным, если время прибытия не попадает в диапазон времени. Нулевое значение указывает, что временное окно не может быть нарушено; то есть это окно является жестким. Ненулевое значение указывает максимальную величину опоздания; например, перерыв может начаться до 30 минут после окончания выделенного ему временного окна, но штраф за опоздание рассчитывается в соответствии со свойством Нарушения временных окон (Time Window Violations) слоя анализа. Это свойство может быть пустым (null); значение NULL в параметрах TimeWindowStart и TimeWindowEnd соответствует отсутствию ограничений по допустимому времени нарушения. Если для параметров MaxTravelTimeBetweenBreaks или MaxCumulWorkTime задано значение, то MaxViolationTime должен быть пустым (null). Единица измерения для значения данного поля задается свойством Единицы поля времени (Time Field Units) для слоя анализа. |
IsPaid | Булево значение, указывающее, будет ли перерыв оплачиваемым или нет. Значение Истина (True) определяет, что время, затраченное на перерыв, включается в расчет затрат маршрута и определение сверхурочных. Значение Ложь (False) определяет обратное. По умолчанию используется значение Истина (True). |
Поля ввода/вывода слоя «Перерывы» (Breaks)
Входное/Выходное поле | Описание |
---|---|
Sequence |
Являясь входным, данное поле показывает последовательность перерыва на его маршруте. Это поле может содержать значения NULL. Значения входной последовательности являются положительными и уникальными для каждого маршрута (распределенного среди посещений станций, заказов и перерывов), но не обязаны начинаться с 1 или быть последовательными. Механизм расчета изменяет поле последовательности. После решения данное поле содержит значение последовательности перерыва на его маршруте. Выходные значения последовательности для маршрута едины для посещений станций, заказов и перерывов; начинаются с 1 (на начальной станции); и являются последовательными. |
Поля вывода слоя «Перерывы» (Breaks)
Выходное поле | Описание |
---|---|
RelativePosition | Относительное положение перерыва. Перерывы берутся в любом месте между двумя сетевыми положениями (заказами или станциями). Значение 0,0 указывает, что перерыв берется сразу после завершения заказа в предыдущем сетевом положении; значение 1,0 – что сразу после начала обслуживания в последующем сетевом положении; а значение между этими двумя указывает, где на пути от первого ко второму сетевому положению берется перерыв. Например, значение 0,25 указывает, что перерыв берется на четверти пути от предыдущего сетевого положения к следующему. Независимо от того, сколько перерывов между двумя сетевыми положениями, относительное положение всегда сообщается относительно сетевых положений, а не других перерывов. |
FromPrevTravelTime | Время в пути от предыдущего заказа, станции или перерыва до данного перерыва. Единица измерения для значения данного поля задается свойством Единицы поля времени (Time Field Units) для слоя анализа. |
FromPrevDistance | Расстояние пути от предыдущего заказа, станции или перерыва до данного перерыва. Единица измерения для значения данного поля устанавливается свойством Единицы поля расстояния (Distance Field Units) слоя анализа. Это поле пустое (NULL), если свойство Атрибут расстояния (Distance Attribute) не задано в параметрах анализа. |
CumulTravelTime | Суммарное время в пути по маршруту до прибытия на перерыв. Единица измерения для значения данного поля задается свойством Единицы поля времени (Time Field Units) для слоя анализа. |
CumulDistance | Кумулятивное расстояние пути по маршруту до прибытия на перерыв. Единица измерения для значения данного поля устанавливается свойством Единицы поля расстояния (Distance Field Units) слоя анализа. Это поле пустое (NULL), если свойство Атрибут расстояния (Distance Attribute) не задано в параметрах анализа. |
CumulTime | Кумулятивная длительность маршрута до перерыва включительно. Кумулятивная длительность включает в себя значения времени в пути, а также времени обслуживания и ожидания на заказах, на станциях и в перерывах. Единица измерения для значения данного поля задается свойством Единицы поля времени (Time Field Units) для слоя анализа. |
ArriveTime | Фактическое время прибытия на перерыв. Маршрут может прибывать на перерыв до начала его временного окна; в этом случае на перерыве будет время ожидания. Для перерыва с гибкими временными окнами прибытие по маршруту на перерыв может состояться после окончания временного окна, и в этом случае на перерыве будет время нарушения. При использовании данных о трафике с несколькими часовыми поясами время сообщается в часовом поясе начальной станции связанного маршрута. |
DepartTime | Время завершения перерыва. При использовании данных о трафике с несколькими часовыми поясами время сообщается в часовом поясе начальной станции связанного маршрута. |
WaitTime | Время ожидания на перерыве. Единица измерения для значения данного поля задается свойством Единицы поля времени (Time Field Units) для слоя анализа. |
ViolationTime | Время нарушения на перерыве. Единица измерения для значения данного поля задается свойством Единицы поля времени (Time Field Units) для слоя анализа. |
CumulWaitTime | Суммарное время ожидания от начала маршрута вплоть до перерыва включительно. Единица измерения для значения данного поля задается свойством Единицы поля времени (Time Field Units) для слоя анализа. |
CumulViolationTime | Суммарное время нарушений от начала маршрута вплоть до перерыва включительно. Единица измерения для значения данного поля задается свойством Единицы поля времени (Time Field Units) для слоя анализа. |
Класс «Зоны маршрутов» (Route Zones)
Зоны маршрутов указывают территорию работы для заданного маршрута. Зона маршрута – это полигональный пространственный объект, который используется для ограничения маршрутов обслуживанием только тех заказов, которые находится в пределах области или вблизи нее. Вот несколько примеров, когда зоны маршрутов могут быть полезны:
- У некоторых ваших сотрудников нет необходимых разрешений на выполнение работ в определенных областях или районах. Вы можете создать жесткую зону маршрута, чтобы такие сотрудники выполняли заказы только в тех районах, требованиям которых они соответствуют.
- Одно из ваших транспортных средств часто выходит из строя, поэтому вы хотите минимизировать время реакции, отправляя его только на заказы, находящиеся вблизи вашего гаража техобслуживания. Вы можете создать гибкую или жесткую зону маршрута для удержания транспортного средства поблизости.
При использовании зон маршрутов в анализе нельзя также использовать исходные точки маршрутов.
Свойства зоны маршрута
Поля ввода слоя «Зоны маршрутов» (Route Zones)
Входное поле | Описание |
---|---|
ObjectID | Управляемое системой поле ID. |
Shape | Поле геометрии, показывающее географическое положение объекта сетевого анализа. |
RouteName | Название маршрута, для которого применяется данная зона. Зона маршрута может иметь не более одного связанного маршрута. Это поле не может содержать значения NULL и является внешним ключом для поля Имя (Name) в классе слоя Маршруты (Routes). Объекты маршрутов должны существовать до того, как они появятся в списке RouteName. |
IsHardZone |
Двоичное значение, определяющее гибкую или жесткую зону маршрута. Значение Истина (True) определяет жесткую зону; это означает, что заказ, выходящий за пределы полигона зоны маршрута, не может быть назначен этому маршруту. По умолчанию используется значение Истина (True) (1). Значение Ложь (False) (0) определяет, что такие заказы все еще могут быть назначены, но стоимость обслуживания заказа взвешена на основании функции евклидова расстояния от зоны маршрута. Обычно это означает что, по мере увеличения расстояния по прямой от гибкой зоны до заказа вероятность того, что заказ будет присвоен маршруту, уменьшается. |
Класс «Исходные точки маршрутов» (Route Seed Points)
В этом классе сетевого анализа хранятся исходные точки маршрутов, являющиеся частью данного слоя анализа задачи выбора маршрута транспорта. Исходные точки маршрутов служат для указания кластеризации маршрутов на основе точек. Обычно чем ближе заказ к исходной точке маршрута, тем вероятнее он будет этому маршруту назначен – при условии, что соблюдаются другие критерии, например специальные возможности и вместимость. Кластеризация заказов может вести к маршрутам, охватывающим меньшую область и как можно меньше пересекающим другие маршруты, но общая стоимость решения может быть больше. Исходные точки могут понадобиться для того, чтобы водители оставались в общих районах или регионах, с которыми они знакомы, или чтобы маршруты были разбиты на секции, если так ими легче управлять вашей организации.
Вот несколько правил и вариантов выбора, которые следует учитывать при работе с исходными точками маршрутов:
- Для маршрута может быть предварительно назначена исходная точка, или же она может быть вычислена механизмом расчета задачи выбора маршрута транспорта.
- При использовании исходных точек маршрутов в анализе нельзя использовать зоны маршрутов.
- Если используются исходные точки маршрутов, каждому маршруту необходимо назначить одну исходную точку.
- Типы исходных точек маршрутов нельзя объединять; в классе сетевого анализа все исходные точки должны быть либо динамическими, либо статическими.
Исходные точки маршрутов являются точечными пространственными объектами; однако они не являются сетевыми положениями. Поэтому у них нет полей сетевых положений.
Класс «Исходные точки маршрутов» (Route Seed Points)
Поля ввода слоя «Исходные точки маршрутов» (Route Seed Points)
Входное поле | Описание |
---|---|
ObjectID | Управляемое системой поле ID. |
RouteName | Название маршрута, к которому применяется данная исходная точка. На каждый маршрут допустима только одна исходная точка. Это поле не может содержать нулевые значения и является внешним ключом для поля Name в классе «Маршруты» (Routes). Объекты маршрутов должны существовать до того, как они появятся в списке RouteName. |
SeedPointType | Тип исходной точки. Это поле ограничено доменом значений; возможные значения – Статический (Static) и Динамический (Dynamic). Значение этого поля по умолчанию – «Статический» (Static). В случае статических исходных точек следует указать, где находится исходная точка маршрута, и механизм расчета попытается кластеризовать маршрут вокруг положения исходной точки. В случае динамических исходных точек таковая добавляется в любом месте карты, заказы в процессе расчета кластеризуются, после чего исходная точка перемещается в центроид заказов маршрута. |
Поля ввода-вывода слоя «Исходные точки маршрутов» (Route Seed Points)
Входное/Выходное поле | Описание |
---|---|
Shape | Как поле ввода, указывает положение исходной точки маршрута. При статической исходной точке ее входная точечная форма остается без изменения в течение всего процесса расчета. С другой стороны, при динамической исходной точке входная форма игнорируется, и механизм расчета меняет поле «Форма» (Shape) в процессе расчета, отображая ее новое положение. |
Класс «Обновления маршрутов» (Route Renewals)
Класс «Обновления маршрутов» (Route Renewals) указывает промежуточные станции, которые могут посещаться на маршруте в задаче выборе маршрута транспорта для догрузки и выгрузки доставляемых или собираемых грузов.
Конкретно, объект анализа обновления маршрута связывает объект маршрута с объектом станции. Связь указывает, что на маршруте может производиться обновление (догрузка или выгрузка) на связанной станции.
В некоторых отраслях каждый маршрут состоит из одного или нескольких рейсов, в которых транспортное средство доставляет или собирает полный объем загрузки. Обновления маршрутов могут использоваться для моделирования сценариев, в которых транспортное средство набирает полный объем доставляемых грузов на начальной станции, обслуживает заказы, возвращается на станцию для новой загрузки и продолжает обслуживать дальнейшие заказы. Например, при доставке газа пропана транспортное средство может осуществить несколько доставок до тех пор, пока его резервуар не будет почти или полностью опустошен, посетить пункт дозаправки и осуществлять дальнейшую доставку.
Вот несколько правил и вариантов выбора, которые следует учитывать при обновлении маршрутов:
- Пункт догрузки/выгрузки (место пополнения загрузки) может отличаться от начальной и конечной станций.
- На каждом маршруте может быть одно или несколько предустановленных мест пополнения загрузки.
- Место пополнения загрузки может использоваться на одном маршруте несколько раз.
- В некоторых случаях при наличии нескольких потенциальных мест пополнения загрузки для маршрута механизмом расчета выбирается ближайшее доступное из них.
Свойства обновления маршрута
Поля ввода слоя «Обновления маршрутов» (Route Renewals)
Входное поле | Описание |
---|---|
ObjectID | Управляемое системой поле ID. |
DepotName | Имя станции, в которой происходит такое обновление. Это поле не может содержать значение NULL и является внешним ключом для поля Имя (Name) в классе слоя Станции (Depots). Объекты станций должны существовать до того, как они появятся в списке DepotName. |
RouteName | Название маршрута, к которому применяется данное обновление. Это поле не может содержать значение NULL и является внешним ключом для поля Имя (Name) в классе слоя Маршруты (Routes). Объекты маршрутов должны существовать до того, как они появятся в списке RouteName. |
ServiceTime | Время обслуживания для обновления. Это поле может содержать значение NULL; значение NULL соответствует нулевому времени обслуживания. Единица измерения для значения данного поля задается свойством Единицы поля времени (Time Field Units) для слоя анализа. |
Поля ввода/вывода слоя «Обновления маршрутов» (Route Renewals)
Входное/Выходное поле | Описание |
---|---|
Sequences | В качестве входного поля указывает разделенную пробелами строку значений последовательности посещений станции пополнения загрузки. Это поле может содержать нулевое значение и используется для предварительного назначения посещений станции пополнения загрузки. В качестве выходного поля механизм расчета может изменять и хранить здесь последовательность. После расчета в этом поле будут содержаться значения последовательности посещений данной станции пополнения загрузки для связанного маршрута. Если на одном маршруте эта станция посещается для пополнения загрузки несколько раз, значения последовательности разделяются пробелом. Выходные значения последовательности для маршрута едины для посещений станций, заказов и перерывов; начинаются с 1 (на начальной станции); и являются последовательными. Таким образом, если маршрут начинается на станции, посещает два заказа, осуществляет пополнение загрузки и продолжается, значением последовательности в месте пополнения загрузки будет 4. |
Класс «Специальные требования» (Specialties)
В этой таблице перечисляются специальные требования, которые могут быть обязательны для заказов и поддерживаться маршрутами. Маршрут может обслужить заказ, только если он поддерживает все специальные требования этого заказа.
Заказ может требовать наличия технического специалиста с определенным набором навыков или автомобиля со специальными возможностями. Эти навыки, возможности и т. п. можно моделировать, добавляя их сначала в класс «Специальные требования» (Specialties). Затем специальные требования, поддерживаемые маршрутом, добавляются в его свойство SpecialtyName. Наконец, специальные требования заказа добавляются в его свойство SpecialtyName. При расчете анализа задачи выбора маршрута транспорта заказы со специальными требованиями сопоставляются с маршрутами, которые им удовлетворяют.
Свойства специального требования
Входные поля Специальных требований
Входное поле | Описание |
---|---|
ObjectID | Управляемое системой поле ID. |
Имя | Имя объекта сетевого анализа. Это поле служит первичным ключом и используется как внешний ключ в слоях пространственных объектов «Заказы» (Orders) и «Маршруты» (Routes) для обращения к специальным требованиям. Имена специальных требований должны быть уникальными и не могут быть пустыми. Они также не могут содержать пробелы. Поэтому, например, специальное требование наличия старшего технического специалиста следует ввести как SeniorTechnician. Требование отсутствия пробелов обязательно, поскольку в заказах и маршрутах, связанных с несколькими специальными требованиями, их список разделяется пробелами, например «SeniorTechnician Lift» (СтаршийТехническийСпециалист Подъемник). |
Описание | Описательная информация об объекте сетевого анализа. Может содержать любую текстовую информацию и не имеет ограничений на уникальность. |
Класс «Пары заказов» (Order Pairs)
Этот класс сетевого анализа представляет собой таблицу записей, используемую для формирования пар заказов на доставку и сбор так, чтобы они обслуживались единым маршрутом.
Иногда необходимо, чтобы сбор и доставка по заказам производились совместно. Например, для курьерской компании доставка документа может состоять из двух остановок: одна – для получения документа у источника, а другая – для его доставки в пункт назначения. Эти связанные остановки назначаются одному и тому же маршруту с соответствующей последовательностью. Маршруту запрещается назначать только один из заказов: либо одному и тому же маршруту назначаются оба заказа, либо не назначается ни один.
Могут существовать ограничения на продолжительность хранения пакета в транспортном средстве; например, образец крови должен быть перевезен из офиса врача в лабораторию в пределах двух часов.
В некоторых ситуациях могут быть необходимы две пары заказов. Например, предположим, что нужно перевезти пожилую пациентку из дома к врачу и привезти обратно домой. Рейс от ее дома к врачу будет одной парой заказов с желаемым временем прибытия к врачу, а рейс от врача обратно к дому – другой парой с желаемым временем посадки.
Свойства пары заказов
Входные поля Пар заказов
Входное поле | Описание |
---|---|
ObjectID | Управляемое системой поле ID. |
FirstOrderName | Имя первого заказа в паре. Это поле является внешним ключом для поля Имя (Name) в слое пространственных объектов Заказы. Объекты заказов должны существовать до того, как они появятся в списке FirstOrderName. |
SecondOrderName | Имя второго заказа в паре. Это поле является внешним ключом для поля Имя (Name) в слое пространственных объектов Заказы. Объекты заказов должны существовать до того, как они появятся в списке SecondOrderName. Первый заказ в паре должен быть заказом сбора, это означает, что значение поля DeliveryQuantities для него пустое (NULL). Второй заказ в паре должен быть заказом доставки, это означает, что значение поля PickupQuantities для него пустое (NULL). Количество, которое собирается в первом заказе, должно соответствовать количеству, поставляемому во втором заказе. В отдельном случае оба заказа могут иметь нулевые количества для сценариев, в которых емкости не используются. |
MaxTransitTime |
Максимальное время нахождения в пути для пары. Время нахождения в пути представляет собой продолжительность от времени отправления для первого заказа до времени прибытия на точку второго заказа. Это ограничение влияет на время в транспортном средстве, или время поездки, между двумя заказами. Если транспортное средство перевозит людей или скоропортящиеся товары, то его время поездки обычно короче, чем для транспортного средства, перевозящего коробки или непортящиеся товары. Это поле может содержать значения NULL; значение NULL соответствует отсутствию ограничений по времени поездки. Единица измерения для значения данного поля задается свойством Единицы поля времени (Time Field Units) для слоя анализа. Механизмом расчета может отслеживаться и учитываться лишнее время в пути (измеряемое с учетом непосредственного времени в пути между парами заказов). По этой причине можно задать для механизма решения задачи выбора маршрута транспорта один из трех подходов: (1) минимизировать общее лишнее время в пути, независимо от увеличения стоимости пути для парка; (2) найти баланс между общим временем нарушений и стоимостью пути; (3) игнорировать общее лишнее время в пути и вместо этого минимизировать стоимость пути для парка. Назначая уровень важности параметру Избыточное время в пути (Excess Transit Time) слоя анализа, вы фактически выбираете один из этих трех подходов. Независимо от уровня значимости, механизм расчета всегда будет приводить к ошибке при превышении значения свойства MaxTransitTime. |
Точечные, линейные и полигональные барьеры
Барьеры используются для временного ограничения, добавления импеданса и его масштабирования на частях сети. При создании нового слоя сетевого анализа классы барьеров создаются пустыми. Они заполняются только при добавлении в них объектов, при этом добавление барьеров не требуется.
Барьеры доступны во всех слоях сетевого анализа; поэтому они описаны в отдельной теме.
Параметры анализа задачи выбора маршрута транспорта.
Параметры анализа устанавливаются в диалоговом окне Свойства слоя для слоя анализа. Доступ к диалоговому окну можно получить разными способами:
Закладка Настройки анализа (Analysis Settings)
Следующие подразделы перечисляют параметры, которые вы можете задать для слоя анализа. Они устанавливаются на закладке Настройки анализа (Analysis Settings) в диалоговом окне Свойства слоя (Layer Properties) для слоя анализа.
Атрибут времени (Time Attribute)
Атрибут стоимости времени, используемый для определения времени прохождения по элементам сети. Атрибут стоимости времени является обязательным, поскольку механизм расчета задачи выбора маршрута транспорта ориентирован на минимизацию времени.
Атрибут расстояния (Distance Attribute)
Атрибут стоимости расстояния, используемый для определения длины пути по элементам сети. Атрибут стоимости расстояния является необязательным.
Дата по умолчанию
Неявно предполагаемая дата для значений полей времени, в которых не указывается дата. Если поле времени в заказе, например TimeWindowStart1, содержит только значение времени, то предполагается дата, указанная свойством Дата по умолчанию (Default Date). Например, если в заказе для поля TimeWindowStart1 указано значение 9:00, а значение свойства Дата по умолчанию (Default Date) – 6 марта 2011 г., полное значение времени для поля будет иметь вид 9:00, 6 Марта 2011 г. При изменении параметра Дата по умолчанию (Default Date) неявно предполагаемой датой для всех значений полей времени без указанной даты будет новая дата по умолчанию. Дата по умолчанию не влияет на значения полей времени, для которых время уже указано вместе с определенной датой.
Если набор сетевых данных включает данные о движении, результаты анализа могут меняться в зависимости от указанной здесь даты. Например, если маршруты начинаются в 8:00 утра в воскресенье, когда дорога не слишком загруженная, то по сравнению с ними дорога в 8:00 утра в понедельник (во время часа пик) займет больше времени. Кроме того, лучший путь может меняться в зависимости от дорожных условий.
По выбору можно ввести «плавающий» день или календарную дату. Календарная дата включает в себя конкретное число, месяц и год. Плавающий днем может быть «Сегодня» (Today) или любой день недели (от воскресенья до субботы). Плавающие дни позволяют настроить слой анализа для повторного использования без необходимости помнить о смене даты.
Опция выбора дней особенно полезна при использовании данных трафика, так как движение машин и ситуация на дорогах может часто меняться. Например, если вы вычисляете одинаковые маршруты каждый день, и вам требуется более точное время или лучший маршрут в данных условиях трафика, можно выбрать параметры День недели (Day of Week) и Сегодня (Today). Механизм расчета сформирует результаты на основе трафика для текущего дня; эта дата определяется операционной системой компьютера. Если использовать следующий день (например, 5 мая) для обновления маршрутов этого дня, можно повторно рассчитать тот же слой анализа. Решение автоматически будет основываться на условиях трафика 5 мая, так как для параметра День недели (Day of Week) задано значение Сегодня (Today).
Число характеристик ёмкости
Число измерений ограничений вместимости, необходимое для описания соответствующих лимитов транспортных средств. В случае доставки заказов у каждого транспортного средства может быть ограниченный вес и объем, которые оно может перевозить одновременно, в зависимости от физических и законодательных ограничений. В этом случае при отслеживании веса и объема заказов можно использовать эти две характеристики вместимости для предотвращения перегрузки транспортных средств. Число характеристик вместимости для этого сценария равно двум (вес и объем). В зависимости от задачи может понадобиться отслеживать разные типы величин вместимости. Характеристики вместимости, которые вводятся в поля вместимости (DeliveryQuantities и PickupQuantities для класса «Заказы» (Orders) и Capacities для класса «Маршруты» (Routes)), представляют собой разделяемые пробелами строки чисел, которые могут содержать вплоть до максимального количества значений, указанного свойством «Счетчик вместимости» (Capacity Count). Каждое измерение вместимости должно отображаться на той же позиции во всех значениях полей вместимости в одном и том же слое анализа задачи выбора маршрута транспорта. Сами характеристики вместимости не имеют имен, поэтому во избежание случайного перемещения измерений вместимости убедитесь, что разделяемые пробелами списки характеристик вместимости всегда вводятся в одинаковом порядке для всех значений полей вместимости.
Единицы поля времени
Единицы времени, используемые в полях времени вложенных слоев и таблиц слоя анализа (классов сетевого анализа). Они не обязательно должны соответствовать единицам атрибута стоимости времени.
Единицы поля расстояния
Единицы расстояния, используемые в полях расстояния вложенных слоев и таблиц слоя анализа (классов сетевого анализа). Они не обязательно должны соответствовать единицам необязательного атрибута стоимости времени.
Развороты в соединениях
Network Analyst может разрешать развороты на 180 градусов везде, не разрешать нигде или разрешать только в тупиках либо только на перекрестках и в тупиках. При разрешении U-образных разворотов неявно предполагается, что маршрут может развернуться на развязке и продолжить движение по той же улице в обратную сторону.
Тип выходной формы (Output Shape Type)
Пространственные объекты маршрута, выводимые в ходе анализа, могут быть представлены одним из четырех способов:
- Истинная форма (True Shape) дает точную форма маршрута, полученного в результате расчета.
- Истинная форма с измерениями (True Shape with Measures) дает точную форма маршрута, полученного в результате расчета. Более того, выходной результат включает измерения маршрута для линейной привязки. Измерения начинаются с первой остановки и записывают накапливаемый импеданс.
- Прямая линия (Straight Line) выдает отдельную прямую линию между остановками.
- Если свойству типа формы на выходе (Output Shape Type) присвоено значение Нет (None), то никакая форма не возвращается.
Во всех этих случаях затраты на основе времени и на основе расстояния в решении одинаковы, равно как и атрибуты слоя пространственных объектов «Маршруты»; единственным отличием является форма вывода маршрута или то, настраивается ли автоматически система линейных координат.
Использовать иерархию (Use Hierarchy)
Если для набора сетевых данных установлен атрибут иерархии, в процессе анализа можно использовать иерархию. При использовании иерархических результатов в механизме расчета предпочтение отдается ребрам высокого порядка перед ребрами низкого порядка. Иерархические расчеты более быстрые, и они могут быть использованы для симуляции ситуации, когда водитель предпочитает движение по автомагистралям движению по местным (локальным)дорогам - даже если это означает более длинную поездку. Если иерархия не используется, то это приводит к вычислению точного маршрута для набора сетевых данных.
Игнорировать неправильные местоположения заказов
Определяет, должны ли быть проигнорированы неправильные заказы при решении задачи выбора маршрута транспортного средства. Если данная опция выключена, и какие-либо другие заказы некорректны, решение найдено не будет.
Некорректный заказ – это заказ, который не может быть достигнут при расчете VRP. Заказ может быть недоступен по различным причинам, в том числе: он может быть расположен на запрещенном для проезда элементе сети; не расположен в сети вообще; размещен в несвязанном с другими сегменте сети.
Анализ причин появления неправильных заказов и решение подобных проблем может занять много времени. Поэтому если вам нужно быстро создать маршруты и передать их водителям, просто проигнорируйте некорректные заказы, постройте маршруты и отправьте их водителям. После этого решите проблемы с неправильным размещением заказов и включите их в анализ VRP для следующего рабочего дня или смены.
Ограничения (Restrictions)
Вы можете выбрать, какие атрибуты ограничений будут применяться при выполнении анализа. В большинстве случаев, ограничения приводят к запрету проезда по дорогам, но они также могут указывать, избегать дорогу или наоборот, предпочесть ее. Атрибут ограничения, такой как Oneway, должен быть использован при вычислении решений для транспортных средств, которые должны подчиняться движению по односторонним улицам (транспортные средства, не принадлежащие службам спасения). Другие общие атрибуты ограничений включают ограничения (предельные величины) высоты или веса, которые запрещают некоторым транспортным средствам проезд по определенным дорогам или мостам; ограничения для перевозимых опасных веществ, когда водители, перевозящие такие материалы, должны полностью объезжать, или пытаться избежать некоторых дорог; и предусмотренные маршруты для грузового транспорта, которых должны придерживаться водители грузовиков. Вы можете выбрать, какие атрибуты ограничений будут применяться при выполнении анализа. (Вы можете дальше уточнить, будет ли перемещение по элементам, использующим это ограничение, запрещено, или оно будет избегаться или предпочитаться, на закладке Параметры атрибута (Attribute Parameters).)
Путевой лист
С помощью свойств раздела Путевой лист можно задать единицы отображения расстояния и (необязательно) времени. Кроме того, можно выбрать автоматическое открытие путевого листа после формирования маршрута. (Чтобы отключить автоматическое отображение путевого листа, можно нажать кнопку Окно путевого листа (Directions Window) для отображения направлений.)
Закладка Дополнительные настройки (Advanced Settings)
На закладке Дополнительные настройки (Advanced Settings) диалогового окна Свойства слоя (Layer Properties) отображаются следующие свойства слоя анализа задачи выбора маршрута транспорта. Сделанные тут настройки влияют на приоритеты механизма расчета при обработки нарушений временных окон для маршрутов и избыточного времени в пути для парных заказов. Присвоить можно значение Низкий (Low), Средний (Medium) или Высокий (High). Чем выше важность, тем больше механизм расчета пытается сократить или устранить связанные нарушения временных окон или лишнее время в пути.
Нарушение временного окна
Нарушение временного окна (Time Window Violation): это свойство позволяет ранжировать важность учета временных окон без их нарушений. Нарушение временного окна происходит в случае прибытия транспортного средства по вызову, в гараж или на остановку после своего временного окна. Нарушение – это интервал времени между моментом окончания временного окна и моментом прибытия.
Решение задачи выбора маршрута транспорта может меняться в соответствии со значением, выбранным для свойства Нарушение временного окна (Time Window Violation). В следующем списке перечислены значения и результаты анализа при выборе маршрута.
Высокий (High) – механизм расчета пытается найти решение с минимальным нарушением временных окон ценой увеличения общего времени в пути. Выберите Высокий (High), если прибытие вовремя важнее, чем минимизация общей стоимости решения. Это может быть необходимо, если вы встречаетесь с клиентами по вашей просьбе и не хотите создавать им неудобства в случае опоздания (альтернативным вариантом является использование жесткого временного окна, которое нельзя нарушить).
При наличии других ограничений задачи выбора маршрута транспорта может быть невозможно посетить все заказы в пределах выделенных для них временных окон. В этом случае даже настройка «Высокий» (High) может вызывать нарушения.
Средний (Medium) – это настройка по умолчанию. Механизм расчета будет стремиться найти компромиссное решение с одновременным соблюдением временных окон и обеспечением минимальной общей стоимости решения.
Низкий (Low) – механизм расчета пытается найти решение с минимальным временем в пути независимо от временных окон. Выберите Низкий (Low), если учет временных окон не столь важен, как сокращение общей стоимости решения. Этот параметр также можно использовать при накоплении отставания в обработке заказов. Для обработки как можно большего количества заказов в день и сокращения отставания можно выбрать Низкий (Low) несмотря на то, что клиенты будут испытывать неудобства из-за позднего прибытия транспортных средств.
На следующих двух графиках показан один и тот же набор заказов и станций; однако маршруты различаются, поскольку были использованы разные настройки нарушений временных окон. На графике слева показан маршрут, получаемый при уровне важности нарушений временных окон «Низкий» (Low). Маршрут является коротким, но в нем содержится нарушение временного окна. В случае уровня «Высокий» (High) маршрут соблюдает все временные окна, но занимает больше времени, поскольку сначала обслуживает заказ с временным окном.
Избыточное время транзита
Это свойство позволяет ранжировать важность сокращения избыточного времени в пути. Избыточное время в пути – это затрачиваемое сверх необходимого время для перемещения от одного вызова к другому. Лишнее время может возникать по причине перерывов или возвращения в гараж между вызовами.
Решение задачи выбора маршрута транспорта может меняться в соответствии со значением, выбранным для свойства Избыточное время в пути (Excess Transit Time). В следующем списке перечислены значения и результаты анализа при выборе маршрута.
- Высокий (High) – механизм расчета пытается найти решение с минимальным лишним временем в пути между парными заказами за счет увеличения общей стоимости перемещения. Имеет смысл использовать этот параметр, если вы перевозите людей между парами заказов и хотите сократить их время в пути. Эта опция подходит для такси.
- Средний (Medium) – это настройка по умолчанию. Механизм расчета будет стремиться найти компромиссное решение с одновременным сокращением избыточного времени и обеспечением минимальных общих затрат.
- Низкий (Low) – механизм расчета пытается найти решение с минимальными общими затратами независимо от избыточного времени в пути. Этот параметр обычно используется курьерской службой. Поскольку курьерская служба перевозит грузы, а не людей, ей не нужно особенно заботиться о времени в пути. Значение Low (Низкий) позволяет курьерской службе обрабатывать два вызова в должной очередности с минимальными общими затратами.
На следующих двух графиках показан один и тот же набор заказов и станций; однако маршруты различаются, поскольку были использованы разные настройки избыточного времени в пути. На графике слева показан маршрут, получаемый при заданном низком уровне важности избыточного времени в пути. Общий маршрут является коротким, но время в пути от первого заказа до спаренного с ним (аэропорта) – длительным. При высоком уровне важности маршрут сокращает время между первым заказом и аэропортом, поддерживая при этом такое же время поездки в аэропорт для заказа справа; однако общая стоимость маршрута увеличивается.
Закладка Сетевые положения (Network Locations)
Параметры на закладке Сетевые положения (Network Locations) используются для нахождения сетевых положений и установки значений для их свойств.
Вычисление и интерпретация результатов решения задачи выбора маршрута транспорта
После создания слоя анализа задачи выбора маршрута транспорта, заполнения его необходимыми объектами сетевого анализа и установки соответствующих свойств анализа можно получить решение слоя анализа задачи выбора маршрута транспорта, нажав кнопку Расчет (Solve) на панели инструментов Network Analyst.
После расчета, если для свойства Тип формы на выходе (Output Shape Type) установлено значение Истинная форма (True Shape), механизм расчета задачи выбора маршрута транспорта проводит линии вдоль сети, соединяющей начальные станции, заказы, станции пополнения загрузки и конечные станции для каждого из маршрутов.
Окно Network Analyst также обновляет класс «Заказы» (Orders), группируя все заказы по маршрутам, которым они назначены. Обновляется класс «Посещения станций» (Depot Visits) для отображения начальных, конечных станций и станций пополнения загрузки для каждого из маршрутов.
Механизм расчета задачи выбора маршрута транспорта игнорирует любой маршрут, в котором для поля AssignmentRule задано значение «Исключить» (Exclude), и любой заказ, в котором для поля AssignmentRule задано значение «Исключить» (Exclude).
Затем механизм расчета задачи выбора маршрута транспорта вычисляет внутренне управляемую матрицу стоимости Источник-Назначение между каждым из положений заказов и станций, используя Атрибут времени (Time Attribute) в качестве импеданса и Атрибут расстояния (Distance Attribute) (если указан) в качестве накапливаемого атрибута.
Сведения об анализе матрицы стоимости Источник-Назначение
Механизм расчета задачи выбора маршрута транспорта создает первоначальное решение, состоящее из предварительно назначенных заказов, перерывов и посещений для пополнения загрузки, если какие-либо из этих объектов сетевого анализа предварительно назначены маршрутам. Если не удается найти допустимое первоначальное решение с использованием данного предварительного назначения (то есть нарушаются некоторые ограничения), процесс расчета завершается ошибкой.
При наличии заказов без маршрутов механизм расчета задачи выбора маршрута транспорта пытается вставить наиболее дешевый заказ без маршрута в наилучший совместимый маршрут. Механизм пытается изменить последовательность назначенных маршруту заказов, если такое изменение улучшит решение, но не перемещает относительную последовательность заказов, значение поля AssignmentRule в которых установлено как «Сохранить маршрут и относительную последовательность» (Preserve route and relative sequence).
После успешного выбора маршрутов для всех возможных заказов механизм расчета задачи выбора маршрута транспорта выдает результаты в соответствующих полях вывода объектов сетевого анализа. Если для некоторых заказов не удается назначить маршрут, нарушенные ограничения выводятся в поля ViolatedConstraints слоя пространственных объектов «Заказы» (Orders). Если маршрут не используется в решении, его полям вывода присваивается нулевое значение.
Сведения о нарушаемых ограничениях для заказов и маршрутов
Интерпретация результатов анализа задачи выбора маршрута транспорта
После успешного решения слоя анализа задачи выбора маршрута транспорта можно собрать решение для каждого маршрута, считав входные и выходные поля из таблицы «Перерывы» (Breaks) и слоев пространственных объектов «Посещения станций» (Depot Visits), «Заказы» (Orders) и «Маршруты» (Routes). Для каждого маршрута можно получить расписание, выполнив поиск по полю RouteName и получив значения последовательностей «Перерывы» (Breaks), «Посещения станций» (Depot Visits) и «Заказы» (Orders). Можно сформировать направления для составления подобного расписания. Слой пространственных объектов «Маршруты» (Routes) предоставляет сводку по каждому вычисленному маршруту.