Расчет задачи выбора маршрута транспорта (Network Analyst)

Краткая информация

Создает слой анализа задачи выбора маршрута транспорта (VRP), задает свойства анализа и рассчитывает его, что является идеальным вариантом для настройки веб-сервиса VRP. Слой анализа задачи выбора маршрута транспорта находит лучшие маршруты для парка транспортных средств.

Подробнее о выходных данных инструмента Решить задачу выбора маршрута транспорта

Прежние версии:

Это устаревший инструмент. Его функциональность была заменена на инструмент Создать слой анализа задачи маршрута транспортного средства и кнопку Задача выбора маршрута транспорта в ниспадающем меню Сетевой анализ на ленте Анализ.

Использование

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

    • Расширенный анализ
    • Барьеры
    • Пользовательский режим передвижения
    • Сетевые положения
    • Выходные данные
    • Возможности сервиса

Параметры

ПодписьОписаниеТип данных
Заказы

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

Набор объектов заказа имеет связанную таблицу атрибутов. Поля в таблице атрибутов описаны ниже.

ObjectID

Управляемое системой поле ID.

Shape

Поле геометрии, указывающее географическое положение объекта сетевого анализа.

Name

Имя заказа. Имя должно быть уникальным. Если оставить имя равным null, имя будет автоматически сгенерировано во время решения.

ServiceTime

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

Единицы измерения для значения данного поля задается параметром Единицы поля времени (time_units в Python).

TimeWindowStart1

Время начала и конца первого временного окна для сетевого положения. Это поле может содержать значение null; значение null указывает на отсутствие времени начала.

Примечание:
  • Временное окно только указывает, когда транспортное средство может прибыть по заказу, но не указывает, когда должно закончиться время обслуживания. Чтобы учесть время обслуживания и уехать до окончания временного окна, вычтите значение ServiceTime из поля TimeWindowEnd1.

  • Поля временных окон могут содержать только значение времени или даты и времени, они не могут быть целыми числами, представляющими миллисекунды с начала Эпохи. Часовой пояс для полей временного окна задается с помощью параметра Использование часового пояса для полей времени. Если поле времени, такое как TimeWindowStart1, содержит значение только времени (например, 8:00), дата предполагается равной дате, указанной свойством слоя анализа Дата по умолчанию. Использование значений даты и времени (например, 7/11/2010 8:00 AM) позволяет задавать временные окна, которые могут охватывать несколько дней.

  • Дата по умолчанию игнорируется, когда поле временного окна содержит дату и время. Для предотвращения этой ошибки форматируйте все временные окна для Станций, Маршрутов, Заказов и Перерывов чтобы они также включали дату и время.

  • Если используются данные трафика, поля времени суток для нового сетевого положения всегда соответствуют тому же часовому поясу, что и ребро, на котором располагается это положение.

TimeWindowEnd1

Время окончания для первого временного окна для сетевого положения. Это поле может содержать значение null; значение null указывает на отсутствие времени окончания.

TimeWindowStart2

Время начала и конца второго временного окна для сетевого положения. Это поле может содержать значение null; значение null указывает на отсутствие второго временного окна.

Если первое временное окно содержит null, как указано в полях TimeWindowStart1 и TimeWindowEnd1, то второе временное окно также должно иметь значения null.

Если оба временных окна не пустые, то они не могут перекрываться. Кроме того, второе временное окно должно появиться после первого.

TimeWindowEnd2

Время окончания второго временного окна для сетевого положения. Это поле может содержать значение null.

Когда оба TimeWindowStart2 и TimeWindowEnd2 имеют значение null, то второе временное окно отсутствует.

Когда TimeWindowStart2 не null, а TimeWindowEnd2 – null, то имеется второе временное окно со временем начала, но без времени окончания. Это действительно так.

MaxViolationTime1

Временное окно считается нарушенным, если прибытие происходит после окончания временного окна. В данном поле указывается максимальное допустимое время превышения для первого временного окна заказа. Оно может содержать нулевое значение, но не может содержать отрицательные значения. Нулевое значение показывает, что нарушение временного окна в первом временном окне заказа недопустимо; то есть первое временное окно является жестким. С другой стороны, значение NULL показывает, что для допустимого превышения времени предел отсутствует. Ненулевое значение показывает максимальную величину опоздания; например, маршрут может прибыть на точку заказа в течение 30 минут после окончания первого временного окна.

Единицы измерения для значения данного поля задается параметром Единицы поля времени (time_units в Python).

Превышение временного окна может отслеживаться и взвешиваться механизмом расчета. По этой причине вы можете указать механизму расчета VRP следующие подходы:

  • Сведите к минимуму общее время нарушения независимо от увеличения транспортных расходов для автопарка.
  • Найдите решение, которое уравновешивает общее превышение времени и расходы на поездку.
  • Игнорируйте общее превышение времени; вместо этого минимизируйте транспортные расходы для автопарка.

Назначая уровень важности параметру Значимость превышения временного окна (time_window_factor в Python), вы фактически выбираете один из этих трех подходов. В любом случае механизм расчета приведет к ошибке, если будет превышено значение, заданное для свойства MaxViolationTime1.

MaxViolationTime2

Максимальное допустимое время нарушения для второго временного окна заказа. Данное поле аналогично полю MaxViolationTime1.

InboundArriveTime

Определяет, когда доставляемый товар будет готов на станции.

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

Это поле поможет смоделировать возможные наплывы заказов доставок. Например, работа над заказом требует специальных материалов, которые отсутствуют на станции. Материалы отправляются из другого места и прибудут на склад в 11:00. Чтобы убедиться, что ни один маршрут, который начинается до их доставки, не приписан к заказу, входное время заказа устанавливается на 11:00. Специальные материалы будут доставлены в 11:00, загружены в автомобиль, который затем отправится со станции выполнять приписанные ему заказы.

Примечание:

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

  • Это поле времени может содержать только значение времени или даты и времени. Если поле времени имеет значение только времени (например, 11:00 AM), дата предполагается равной дате, заданной свойством Дата по умолчанию слоя анализа. Если же поле времени содержит дату в Станциях, Маршрутах, Заказах или Перерывах, дата по умолчанию игнорируется. В этом случае укажите все такие поля с датой и временем (например, 7/11/2015 11:00 AM).

  • Механизм расчета задачи выбора маршрута транспорта использует InboundArriveTime, независимо от значения поля DeliveryQuantities.

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

  • Механизм расчета Задачи выбора маршрута транспорта не разработан для задач сроком более одного года. Все значения времени обслуживания и временные окна должны быть меньше одного года.

OutboundDepartTime

Определяет, когда требуемый для заказа товар должен прибыть на конечную станцию.

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

Это поле поможет смоделировать возможные наплывы заказов доставок. Например, судоходная компания посылает грузовики забрать пакеты с заказами, привезти их на станцию, откуда они будут перенаправлены на другие объекты и отправлены по маршруту к месту назначения. Ежедневно в 15:00 полуприцеп останавливается на станции, чтобы забрать приоритетные пакеты и отвезти их непосредственно на центральную станцию обработки. Чтобы избежать задержки приоритетных пакетов до 15:00 вечера следующего дня, судоходная компания старается, чтобы грузовики забирали приоритетные пакеты из заказов и отвозили их на станцию до 15:00. Этого можно достичь путем установки 15:00 в качестве исходящего времени отъезда.

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

  • Это поле времени может содержать только значение времени или даты и времени. Если поле времени имеет значение только времени (например, 11:00 AM), дата предполагается равной дате, заданной свойством Дата по умолчанию слоя анализа. Если же поле времени содержит дату в Станциях, Маршрутах, Заказах или Перерывах, дата по умолчанию игнорируется. В этом случае укажите все такие поля с датой и временем (например, 7/11/2015 11:00 AM).

  • Механизм расчета задачи выбора маршрута транспорта использует OutboundDepartTime, независимо от значения поля PickupQuantities.

  • Если указано также входящее время прибытия, этот момент времени должен наступить до исходящего времени отъезда.

DeliveryQuantities

Размер доставки. Вы можете указать размер в любом формате, например, масса, объем или количество. Вы можете даже указать несколько различных измерений, например, вес и объем.

Введите число объектов поставки без указания единиц. Например, если необходимо выполнить доставку объекта массой 300 фунтов по заказу, введите 300. Вам необходимо запомнить, что данное значение приведено в фунтах.

Если при составлении маршрута учитываются несколько измерений, разделяйте их числовые значения пробелами. Например, если вы записываете массу и объем поставки в 2 000 фунтов и 100 кубических футов, введите 2000 100. В этом случае вам необходимо запомнить, что данные значения приведены в фунтах и кубических футах. Вам также необходимо запомнить последовательность введения значений и соответствующие им единицы измерения.

Убедитесь, что аналогичным образом указаны Capacities для Маршрутов, DeliveryQuantities и PickupQuantities для Заказов; это означает, что данные значения должны быть указаны в тех же единицах и, если вы используете несколько размеров, то данные размеры должны быть приведены в той же последовательности для всех параметров. Таким образом, если вы указали массу в фунтах, а затем объем в кубических футах для DeliveryQuantities, то емкости ваших маршрутов и количества собираемых заказов необходимо указать аналогичным образом: массу в фунтах, а затем объем в кубических футах. Если вы смешиваете единицы измерения или изменяете последовательность, вы получите нежелательные результаты без каких-либо предупреждающих сообщений.

Пустая строка или значение NULL соответствует нулю для всех размеров. Если строка содержит недостаточное число значений относительно числа отслеживаемых характеристик емкости или размеров, то оставшиеся значения интерпретируются, как равные нулю. Количество элементов поставки не может быть отрицательными.

PickupQuantities

Размер загрузки. Вы можете указать размер в любом формате, например, масса, объем или количество. Вы можете даже указать несколько различных измерений, например, вес и объем. При этом вы не можете использовать отрицательные значения. Данное поле аналогично полю DeliveryQuantities для Заказов.

Примечание:
В случае поездки для обмена, заказ может содержать указанное количество как поставки, так и загрузки.

Revenue

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

Прибыль включается в оптимизацию значения целевой функции, но не является частью оперативных расходов на решение. То есть поле TotalCost в классе маршрута никогда не включает доход в итоговое значение; однако, доход имеет определенный вес и важность для обслуживания заказов.

SpecialtyNames

Строка, разделенная пробелами и содержащая имена специальных требований, необходимых для заказа. Значение null указывает, что заказ не содержит специальных требований.

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

Для иллюстрации того, что такое специальные требования, и как они работают, предположим, что у компании по уходу за газонами и подрезанию деревьев имеется часть заказов, которые требуют применения автоподъемника с люлькой для обрезки высоких деревьев. Компания введет BucketTruck в поле SpecialtyNames для данных заказов, чтобы указать на наличие специального требования. SpecialtyNames будет оставлено пустым для других заказов. Аналогичным образом, компания введет BucketTruck в поле SpecialtyNames маршрутов, выполняемых грузовиками с гидравлическими стрелами-манипуляторами. Для остальных маршрутов данное поле останется пустым (NULL). Во время решения механизм расчета VRP назначает заказы без особых требований для любого маршрута, но назначает заказы, для которых требуются автовозы, только маршрутам, в которых они есть.

AssignmentRule

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

  • Исключить (Exclude) (0) – заказ будет исключен из последующего решения.
  • Сохранить маршрут и соответствующий порядок следования (1) – механизм расчета должен всегда назначать заказ для предварительно назначенного маршрута и в предварительно назначенной относительной последовательности во время решения. Если правило назначения нельзя учесть, то это приведет к нарушению заказа.

    При помощи данной настройки поддерживается только относительная последовательность, а не абсолютная. Для иллюстрации данного утверждения представим два заказа: A и B. Они имеют последовательные значения 2 и 3, соответственно. Если вы зададите для их поля AssignmentRule значения Сохранить маршрут и соответствующий порядок следования, то фактические значения последовательности A и B могут изменяться после решения, так как другие заказы, перерывы и посещения станций все еще могут быть перед ними, между или после A и B. Однако B не может быть обслужен раньше, чем A.

  • Сохранить маршрут (2) – механизм расчета должен всегда назначать заказ для предварительно назначенного маршрута во время расчета. Действительная последовательность также должна быть задана, даже несмотря на то, что последовательность может сохраняться или нет. Если заказ не может быть присвоен указанному маршруту, результатом будет нарушение заказа.
  • Замещение (3) – механизм расчета игнорирует маршрут и предварительно назначенную последовательность (если есть) для заказа во время операции расчета. Он присваивает заказу маршрут и последовательность так, чтобы сократить общую стоимость функции достижения цели. Это значение используется по умолчанию.
  • Первый якорь (4) – механизм расчета игнорирует маршрут и предварительно назначенную последовательность (если есть) для заказа во время операции расчета. Он присваивает заказу маршрут и делает этот заказ первым, так, чтобы сократить общую стоимость функции достижения цели.
  • Последний якорь (5) – механизм расчета игнорирует маршрут и предварительно назначенную последовательность (если есть) для заказа во время операции расчета. Он присваивает заказу маршрут и делает этот заказ последним, так, чтобы сократить общую стоимость функции достижения цели.

Это поле не может содержать значения null.

CurbApproach

Свойство CurbApproach указывает направление, откуда транспортное средство может прибыть и куда отправиться из сетевого местоположения. Можно выбрать четыре варианта (их кодированные значения показаны в скобках):

  • С любой стороны (0) – Транспортное средство может прибывать и отправляться от сетевого положения в любом направлении. Развороты допустимы. Вам необходимо выбрать данную настройку в том случае, если транспортное средство может сделать разворот на остановке, или если оно может съехать на проезжую часть или в место для стоянки и развернуться.
  • Справа по направлению движения (1) – При подъезде транспортного средства к сетевому положению и отправлению от него, бордюр должен находиться с правой стороны транспортного средства. Разворот запрещен.
  • Слева по направлению движения (2) – При подъезде транспортного средства к сетевому положению и отправлении от него, бордюр должен находиться с левой стороны транспортного средства. Разворот запрещен.
  • Без разворота (3) – При подъезде транспортного средства к сетевому положению бордюр может располагаться с любой стороны транспортного средства. Но при отправлении транспортное средство не должно выполнять разворот.

RouteName

Имя маршрута, для которого назначен заказ.

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

После вычисления, если заказ присвоен маршруту, то поле RouteName будет содержать имя маршрута, которому был назначен заказ.

Sequence

Это обозначает последовательность заказа на маршруте.

Являясь входным, данное поле используется для указания относительной последовательности для заказа на маршруте. Данное поле может содержать значение NULL, показывающие, что заказ может быть размещен в любой точке маршрута. Значение null может иметь место только вместе со значением RouteName null.

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

После расчета в поле Sequence будут содержаться значения последовательности заказа для назначенного маршрута. Выходные значения последовательности для маршрута едины для посещений станций, заказов и перерывов; начинаются с 1 (на начальной станции); и являются последовательными. Таким образом, минимальным возможным выходным значением последовательности для заказа на маршруте является 2, это обусловлено тем, что маршрут всегда начинается со станции.

Feature Set
Станции

Станция – это место, откуда транспортное средство отправляется в начале рабочего дня, и куда оно возвращается по окончании рабочего дня. Транспортные средства загружаются (при доставке) или разгружаются (при сборе) на станциях в начале маршрута. В некоторых случаях станция может также служить местом пополнения загрузки, в котором транспортное средство может разгружаться или догружаться и продолжать выполнять доставку и сбор. У станции есть значения времени открытия и закрытия, указываемые жестким временным окном. Транспортные средства не могут прибывать на станцию за пределами этого временного окна.

Набор объектов станций имеет связанную таблицу атрибутов. Поля в таблице атрибутов описаны ниже.

ObjectID

Управляемое системой поле ID.

Shape

Поле геометрии, указывающее географическое положение объекта сетевого анализа.

Name

Имя станции. Поля StartDepotName и EndDepotName набора записей маршрутов ссылаются на указанные здесь имена. На них также ссылаются наборы записей обновления маршрутов при их использовании.

Имена станций нечувствительны к регистру и должны быть не пустыми и уникальными.

TimeWindowStart1

Время начала и конца первого временного окна для сетевого положения. Это поле может содержать значение null; значение null указывает на отсутствие времени начала.

Примечание:
  • Поля временных окон могут содержать только значение времени или даты и времени. Если поле времени имеет значение только времени (например, 8:00), дата предполагается равной дате, указанной свойством Дата по умолчанию слоя анализа. Использование значений даты и времени (например, 7/11/2010 8:00 AM) позволяет задавать временные окна, которые могут охватывать несколько дней.

  • Дата по умолчанию игнорируется, когда поле временного окна содержит дату и время. Для предотвращения этой ошибки форматируйте все временные окна для Станций, Маршрутов, Заказов и Перерывов чтобы они также включали дату и время.

  • Если используются данные трафика, поля времени суток для нового сетевого положения всегда соответствуют тому же часовому поясу, что и ребро, на котором располагается это положение.

TimeWindowEnd1

Время окончания для первого временного окна для сетевого положения. Это поле может содержать значение null; значение null указывает на отсутствие времени окончания.

TimeWindowStart2

Время начала и конца второго временного окна для сетевого положения. Это поле может содержать значение null; значение null указывает на отсутствие второго временного окна.

Если первое временное окно содержит null, как указано в полях TimeWindowStart1 и TimeWindowEnd1, то второе временное окно также должно иметь значения null.

Если оба временных окна не пустые, то они не могут перекрываться. Кроме того, второе временное окно должно появиться после первого.

TimeWindowEnd2

Время окончания второго временного окна для сетевого положения. Это поле может содержать значение null.

Когда оба TimeWindowStart2 и TimeWindowEnd2 имеют значение null, то второе временное окно отсутствует.

Когда TimeWindowStart2 не null, а TimeWindowEnd2 – null, то имеется второе временное окно со временем начала, но без времени окончания. Это действительно так.

CurbApproach

Свойство CurbApproach указывает направление, откуда транспортное средство может прибыть и куда отправиться из сетевого местоположения. Можно выбрать четыре варианта (их кодированные значения показаны в скобках):

  • С любой стороны (0) – Транспортное средство может прибывать и отправляться от сетевого положения в любом направлении. Развороты допустимы. Вам необходимо выбрать данную настройку в том случае, если транспортное средство может сделать разворот на остановке, или если оно может съехать на проезжую часть или в место для стоянки и развернуться.
  • Справа по направлению движения (1) – При подъезде транспортного средства к сетевому положению и отправлению от него, бордюр должен находиться с правой стороны транспортного средства. Разворот запрещен.
  • Слева по направлению движения (2) – При подъезде транспортного средства к сетевому положению и отправлении от него, бордюр должен находиться с левой стороны транспортного средства. Разворот запрещен.
  • Без разворота (3) – При подъезде транспортного средства к сетевому положению бордюр может располагаться с любой стороны транспортного средства. Но при отправлении транспортное средство не должно выполнять разворот.

Bearing

Направление, в котором движется точка. Единицами измерения являются градусы, которые отсчитываются по часовой стрелке от истинного севера. Это поле используется совместно с полем BearingTol.

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

Использование данного поля обеспечивает защиту от добавления положений на неверные ребра, что может произойти, например, когда транспортное средство расположено недалеко от перекрестка или эстакады. Bearing также помогает Network Analyst определить, на какой стороне улицы находится точка.

Дополнительные сведения см. в разделе Bearing и BearingTol.

BearingTol

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

Единицы измерения указаны в градусах, значение по умолчанию - 30. Значения должны быть больше нуля и меньше 180.

Значение 30 означает, что, когда Network Analyst предпринимает попытку добавить сетевое положение на ребро, диапазон допустимых значений направления создается в пределах 15º с каждой стороны ребра (слева и справа), в обоих направлениях оцифровки ребра.

Дополнительные сведения см. в разделе Bearing и BearingTol.

NavLatency

Данное поле используется при расчете только, если для Bearing и BearingTol также введены значения; при этом ввод значения NavLatency является необязательным, даже если для Bearing и BearingTol заданы значения. Поле NavLatency определяет время, которое должно пройти от момента передачи GPS информации от движущегося транспортного средства на сервер, а также момент, когда обработанный маршрут получен устройством навигации транспортного средства. Эти единицы времени NavLatency аналогичны единицам атрибута стоимости, которые задаются параметром Атрибут времени.

Feature Set
Маршруты

Маршруты, доступные для заданной задачи нахождения маршрута транспорта. Маршрут определяет характеристики транспортного средства и водителя. После решения он также включает маршрут между станциями и заказами.

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

Набор записей маршрута имеет несколько атрибутов. Поля в таблице атрибутов описаны ниже.

Name

Название маршрута. Имя должно быть уникальным.

Network Analyst создает уникальное имя во время расчета, если для него было указано значение null. Ввод значения в большинстве случаев является необязательным. Однако вам необходимо ввести имя, если анализ содержит перерывы, обновления маршрута, зоны маршрутов или заказы, которые были предварительно назначены для маршрута, так как имя маршрута в данном случае используется как внешний ключ. Имена маршрутов не чувствительны к регистру.

StartDepotName

Имя начальной станции маршрута. Это поле является внешним ключом для поля Name в параметре Станции.

Если значение StartDepotName - null, то маршрут начинается с первого назначенного заказа. Исключение начальной станции полезно в том случае, если начальное положение транспортного средства неизвестно или неважно для вашей задачи. Однако, когда StartDepotName имеет значение null, EndDepotName не может быть null.

Виртуальные начальные станции не допускаются, если заказы или станции находятся в нескольких часовых поясах.

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

EndDepotName

Имя конечной станции маршрута. Это поле является внешним ключом для поля Name в параметре Станции.

StartDepotServiceTime

Время обслуживания на начальной станции. Может использоваться для моделирования времени, затраченного на загрузку транспортного средства. Это поле может содержать пустое значение; пустое значение соответствует нулевому времени обслуживания.

Единицы измерения для значения данного поля задается параметром Единицы поля времени (time_units в Python).

Примечание:

Время обслуживания на начальной и конечной станции является фиксированным (определяется значениями полей StartDepotServiceTime и EndDepotServiceTime) и не учитывает фактическую загрузку для маршрута. Например, время, затраченное на загрузку транспортного средства на начальной станции, может зависеть от размера заказов. Таким образом, время обслуживания на станции может иметь значения, соответствующие полной загрузке грузовика или средней загрузке грузовика, или вы можете сделать свою собственную оценку времени.

EndDepotServiceTime

Время обслуживания на конечной станции. Может использоваться для моделирования времени, затраченного на разгрузку транспортного средства. Это поле может содержать пустое значение; пустое значение соответствует нулевому времени обслуживания.

Единицы измерения для значения данного поля задается параметром Единицы поля времени (time_units в Python).

Примечание:

Время обслуживания на начальной и конечной станции является фиксированным (определяется значениями полей StartDepotServiceTime и EndDepotServiceTime) и не учитывает фактическую загрузку для маршрута. Например, время, затраченное на загрузку транспортного средства на начальной станции, может зависеть от размера заказов. Таким образом, время обслуживания на станции может иметь значения, соответствующие полной загрузке грузовика или средней загрузке грузовика, или вы можете сделать свою собственную оценку времени.

EarliestStartTime

Наиболее раннее допустимое время начала маршрута. Оно используется механизмом решения вместе с временным окном начальной станции для определения возможного времени начала маршрута.

Это поле не может содержать значения null и имеет значение по умолчанию только для времени, равное 8:00. Значение по умолчанию означает 8:00 утра даты, заданной параметром Дата по умолчанию (default_date в Python).

Дата по умолчанию игнорируется, когда поле временного окна содержит дату и время. Для предотвращения этой ошибки форматируйте все временные окна для Станций, Маршрутов, Заказов и Перерывов чтобы они также включали дату и время.

При использовании наборов сетевых данных с данными трафика, охватывающими несколько часовых поясов, часовой пояс для EarliestStartTime такой же, как и часовой пояс для ребра или соединения, на котором расположена начальная станция.

LatestStartTime

Наиболее позднее допустимое время начала маршрута. Это поле не может содержать значения null и имеет значение по умолчанию только времени, равное 10:00. Значение по умолчанию интерпретируется как 10:00 утра даты, определяемой свойством Дата по умолчанию слоя анализа.

При использовании наборов сетевых данных с данными трафика, охватывающими несколько часовых поясов, часовой пояс для LatestStartTime такой же, как и часовой пояс для ребра или соединения, на котором расположена начальная станция.

ArriveDepartDelay

В этом поле хранится величина времени в пути, необходимая для ускорения транспортного средства до обычной скорости передвижения, замедления его до остановки и перемещения из сети и в сеть (например, на парковку и с парковки). Включение значения ArriveDepartDelay позволяет механизму расчета VRP не отправлять множество маршрутов для обслуживания физически совпадающих заказов.

Стоимость для этого свойства выводится между визитами по несовпадающим заказам, станциям и обновлениям маршрута. Например, если маршрут начинается со станции и посещает первый заказ, ко времени пути добавляется общая задержка прибытия/отправления. То же касается пути от первого заказа ко второму. Если второй и третий заказы совпадают, значение ArriveDepartDelay между ними не добавляется, поскольку транспортному средству не нужно перемещаться. Если маршрут следует к пункту обновления загрузки, значение снова добавляется ко времени в пути.

Хотя транспортному средству необходимо замедляться и останавливаться на перерыв, а после него ускоряться, механизм расчета задачи выбора маршрута транспорта не может добавлять значение ArriveDepartDelay для перерывов. Это означает, что если маршрут оставляет заказ, останавливается на перерыв и переходит к следующему заказу, задержка прибытия/отправления добавляется только один раз, а не дважды.

Для иллюстрации данного утверждения предположим, что имеются пять совпадающих заказов в одном многоэтажном доме, которые обслуживаются тремя разными маршрутами. Это значит, что нужно добавить три задержки прибытия/отправления; то есть трем водителям необходимо раздельно найти места для парковки и войти в одно и то же здание. Однако если заказы могут быть обслужены всего одним маршрутом, парковаться и входить в здание необходимо только одному водителю – и возникает только одна задержка прибытия/отправления. Поскольку механизм расчета задачи выбора маршрута транспорта пытается минимизировать затраты, он попробует ограничить задержки прибытия/отправления и поэтому выберет вариант с одним маршрутом. (Обратите внимание, что при наличии других ограничений – специальных требований, временных окон или емкостей – могут понадобиться несколько маршрутов.)

Единицы измерения для значения данного поля задается параметром Единицы поля времени (time_units в Python).

Capacities

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

Введите вместимости без указания единиц. Например, если ваш автомобиль может перевозить максимум 40 000 фунтов, введите 40000. Вам надо запомнить, что данное значение приведено в фунтах.

Если при составлении маршрута учитываются несколько измерений, разделяйте их числовые значения пробелами. Например, если вы регистрируете и вес, и объем, и ваш автомобиль может нести максимальный вес 40 000 фунтов и максимальный объем 2 000 кубических футов, введите 40000 2000. Вам будет необходимо запомнить единицы измерения. Вам также нужно помнить последовательность введенных значений и соответствующие им единицы измерения (в данном случае фунты, а затем кубические футы).

Запомнить единицы измерения и их последовательность важно по нескольким причинам: во-первых, для возможности интерпретации информации в будущем, во-вторых, для правильного ввода значений полей DeliveryQuantitiesи PickupQuantities для параметра Заказы. Механизм расчёта VRP одновременно ссылается на Capacities, DeliveryQuantities и PickupQuantities, чтобы убедиться в том, что маршрут не станет перегруженным. Поскольку единицы измерения нельзя вводить в поле, Network Analyst не может преобразовывать единицы. Вы должны ввести значения для трех полей, используя одни и те же единицы измерения и одну и ту же последовательность единиц измерения, чтобы обеспечить правильную интерпретацию значений. Если вы комбинируете единицы измерения или изменяете последовательность в любом из трех полей, будут созданы нежелательные результаты без каких-либо предупреждающих сообщений. Рекомендуется сначала определить стандарт ввода единиц измерения и последовательность их ввода и постоянно использовать ее при вводе значений для этих трех полей.

Пустая строка или значение NULL соответствует нулю для всех значений. Значение емкости не может быть отрицательным.

Если в поле Capacities содержится недостаточное число значений относительно полей DeliveryQuantities или PickupQuantities в заказах, оставшиеся значения интерпретируются как равные нулю.

Внимание:

Механизм расчета VRP только выполняет простой двоичный тест для определения превышения емкостей. Если значение емкости маршрута выше или равно общей вместимости, то механизм расчета VRP предположит, что груз помещается в транспортное средство. Это может быть неверно, в зависимости от фактической формы груза и транспортного средства. Например, механизм расчета VRP позволяет вам загрузить сферу объемом 1 000-кубических футов в грузовик вместимостью 1 000 кубических футов и шириной 8 футов. В действительности, сфера имеет диаметр 12,6 фута, и ее нельзя поместить в грузовик шириной 8 футов.

FixedCost

Фиксированное денежная стоимость, которая принимается только в том случае, если маршрут используется в решении (то есть, что для него назначены некоторые заказы). Это поле может содержать значения NULL; значение NULL соответствует нулевой фиксированной стоимости. Эта стоимость является частью общей стоимости эксплуатации маршрута.

CostPerUnitTime

Примененная денежная стоимость – на единицу времени работы – для общей продолжительности маршрута, включая значения времени в пути, а также времени обслуживания и ожидания на заказах, станциях и в перерывах. Это поле не может содержать значения null и имеет значение по умолчанию, равное 1.0.

Единицы измерения для значения данного поля задается параметром Единицы поля времени (time_units в Python).

CostPerUnitDistance

Примененная денежная стоимость – на единицу пройденного расстояния – для длины маршрута (общее пройденное расстояние). Это поле может содержать значения null; значение null указывает на нулевую стоимость.

Единица измерения для данного значения поля указывается параметром Единицы поля расстояния (distance_units для Python).

OvertimeStartTime

Продолжительность регулярного времени работы перед началом вычисления сверхурочных. Это поле может содержать значения null; значение null указывает, что сверхурочная работа не применяется.

Единицы измерения для значения данного поля задается параметром Единицы поля времени (time_units в Python).

Например, сверхурочные должны выплачиваться водителю, когда общая продолжительность поездки превышает 8 часов; в этом случае параметр OvertimeStartTime задается как 480 (8 часов * 60 минут/час), если для параметра Единицы поля времени заданы Минуты.

CostPerUnitOvertime

Денежная стоимость для единицы времени сверхурочной работы. Это может содержать только значение null, если OvertimeStartTime также равно null. В противном случае это должно быть положительное значение больше, чем CostPerUnitTime.

MaxOrderCount

Максимальное допустимое число заказов на маршруте. Это поле не может содержать значения NULL и имеет значение по умолчанию, равное 30.

MaxTotalTime

Максимально допустимая продолжительность маршрута. Продолжительность (длительность) маршрута включает в себя значения времени в пути, а также времени обслуживания и ожидания на заказах, на станциях и в перерывах. Это поле может содержать значения null; значение null указывает на отсутствие ограничений на продолжительность маршрута.

Единицы измерения для значения данного поля задается параметром Единицы поля времени (time_units в Python).

MaxTotalTravelTime

Максимально допустимое время в пути для маршрута. Время в пути включает только время, проведенное за рулем, и не включает время обслуживания или ожидания.

Это поле может содержать значения NULL; значение NULL соответствует отсутствию ограничений по максимально допустимому времени передвижения по маршруту. Значение данного поля не может быть больше значения поля MaxTotalTime.

Единицы измерения для значения данного поля задается параметром Единицы поля времени (time_units в Python).

MaxTotalDistance

Максимально допустимое расстояние для маршрута.

Единица измерения для данного значения поля указывается параметром Единицы поля расстояния (distance_units для Python).

Это поле может содержать значения null; значение null соответствует отсутствию ограничений по максимально допустимому расстоянию маршрута.

SpecialtyNames

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

Это поле является внешним ключом для поля SpecialtyNames в параметре Заказы.

Для иллюстрации того, что такое специальные требования, и как они работают, предположим, что у компании по уходу за газонами и подрезанию деревьев имеется часть заказов, которые требуют применения автоподъемника с люлькой для обрезки высоких деревьев. Компания введет BucketTruck в поле SpecialtyNames для данных заказов, чтобы указать на наличие специального требования. SpecialtyNames будет оставлено пустым для других заказов. Аналогичным образом, компания введет BucketTruck в поле SpecialtyNames маршрутов, выполняемых грузовиками с гидравлическими стрелами-манипуляторами. Для остальных маршрутов данное поле останется пустым (NULL). Во время решения механизм расчета VRP назначает заказы без особых требований для любого маршрута, но назначает заказы, для которых требуются автовозы, только маршрутам, в которых они есть.

AssignmentRule

Определяет, может ли маршрут быть использован для решения задачи. Это поле ограничено доменом значений, и возможны следующие значения:

  • Включить – Маршрут включен в решение. Это значение используется по умолчанию.
  • Исключить – Маршрут исключен из решения.

Record Set
Перерывы

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

Набор записей перерыва имеет связанные атрибуты. Поля в таблице атрибутов описаны ниже.

ObjectID

Управляемое системой поле ID.

RouteName

Название маршрута, для которого применяется перерыв. Хотя перерыв назначается ровно одному маршруту, одному и тому же маршруту может быть назначено множество перерывов.

Это поле является внешним ключом для поля Name в классе Маршруты, и его значение не может иметь значение null.

Precedence

Значения приоритета определяют последовательность перерывов для заданного маршрута. Перерывы со значением приоритета 1 происходят перед перерывами со значением 2 и так далее.

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

ServiceTime

Продолжительность перерыва. Это поле не может содержать значения NULL и имеет значение по умолчанию, равное 60.

Единицы измерения для значения данного поля задается параметром Единицы поля времени (time_units в Python).

TimeWindowStart

Время начала временного окна перерыва. Полуоткрытые временные окна некорректны для перерывов.

Если данное поле содержит значение, то MaxTravelTimeBetweenBreaks и MaxCumulWorkTime должны быть пустыми (null); более того, все остальные перерывы в слое анализа должны иметь значения null для параметров MaxTravelTimeBetweenBreaks и MaxCumulWorkTime.

Ошибка возникнет во время решения, если на маршруте есть несколько перерывов с перекрывающимися временными окнами.

Поля временных окон могут содержать только значение времени или даты и времени, они не могут быть целыми числами, представляющими миллисекунды с начала Эпохи. Часовой пояс для полей временного окна задается с помощью параметра Использование часового пояса для полей времени (time_zone_usage_for_time_fields в Python). Если поле времени, например, TimeWindowStart, содержит значение только времени (например, 12:00 пополудни), то используется дата, которая была задана параметром Дата по умолчанию (default_date в Python). С помощью значений даты и времени (например, 7/11/2012 12:00 p.m.) можно задавать временные окна, которые могут охватывать два и более дней. Это удобно, если перерыв следует сделать в районе полуночи.

Дата по умолчанию игнорируется, когда поле временного окна содержит дату и время. Для предотвращения этой ошибки форматируйте все временные окна для Станций, Маршрутов, Заказов и Перерывов чтобы они также включали дату и время.

TimeWindowEnd

Время окончания временного окна перерыва. Полуоткрытые временные окна некорректны для перерывов.

Если данное поле содержит значение, то MaxTravelTimeBetweenBreaks и MaxCumulWorkTime должны быть пустыми (null); более того, все остальные перерывы в слое анализа должны иметь значения null для параметров MaxTravelTimeBetweenBreaks и MaxCumulWorkTime.

MaxViolationTime

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

Нулевое значение указывает, что временное окно не может быть нарушено; то есть, это окно является жестким. Ненулевое значение указывает максимальное время опоздания. Например, перерыв может начаться через 30 минут после окончания выделенного ему временного окна, но штраф за опоздание рассчитывается в соответствии с параметром Значимость превышения временного окна (time_window_factor в Python).

Это свойство может быть пустым (null); значение null в значениях TimeWindowStart и TimeWindowEnd соответствует отсутствию ограничений по допустимому времени нарушения. Если MaxTravelTimeBetweenBreaks или MaxCumulWorkTime имеют значение, MaxViolationTime должно быть null.

Единицы измерения для значения данного поля задается параметром Единицы поля времени (time_units в Python).

MaxTravelTimeBetweenBreaks

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

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

Это поле ограничения продолжительности работы водителя, прежде чем ему потребуется перерыв. Например, если для параметра Единицы поля времени (time_units в Python) в настройках анализа установлено значение Минуты и у MaxTravelTimeBetweenBreaks указано значение 120, то у водителя будет перерыв через два часа вождения. Чтобы назначить второй перерыв еще через два часа вождения, значение в поле MaxTravelTimeBetweenBreaks для второго перерыва должно быть равным 120.

Если данное поле содержит значение, то TimeWindowStart, TimeWindowEnd, MaxViolationTime и MaxCumulWorkTime должны быть null для успешного выполнения анализа.

Единицы измерения для значения данного поля задается параметром Единицы поля времени (time_units в Python).

MaxCumulWorkTime

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

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

Это поле ограничения продолжительности работы человека, прежде чем потребуется перерыв. Например, если для параметра Единицы поля времени (time_units в Python) выбрано значение Минуты, для параметра MaxCumulWorkTime выбрано значение 120, а для ServiceTime значение 15, то у водителя будет 15-минутный перерыв через два часа вождения.

Продолжая рассматривать последний пример, предположим, что второй перерыв должен начаться через три часа работы. Для указания данного перерыва необходимо ввести значение 315 (пять часов и 15 минут) в значение MaxCumulWorkTime второго перерыва. Данное значение включает в себя MaxCumulWorkTime и ServiceTime предыдущего перерыва, а также три дополнительных часа работы до второго перерыва. Чтобы избежать преждевременных перерывов на максимальное рабочее время, помните, что они накапливают рабочее время с начала маршрута и что рабочее время включает время обслуживания на ранее посещенных станциях, заказы и перерывы.

Если данное поле содержит значение, то TimeWindowStart, TimeWindowEnd, MaxViolationTime и MaxTravelTimeBetweenBreaks должны быть null для успешного выполнения анализа.

Единицы измерения для значения данного поля задается параметром Единицы поля времени (time_units в Python).

IsPaid

Булево значение, указывающее, будет ли перерыв оплачиваемым или нет. Значение Да (True) определяет, что время, затраченное на перерыв, включается в расчет затрат маршрута и определение сверхурочных. Значение Нет (False) определяет обратное. По умолчанию используется значение Да (True).

Sequence

Являясь входным, данное поле показывает последовательность перерыва на его маршруте. Это поле может содержать значения NULL. Значения входной последовательности являются положительными и уникальными для каждого маршрута (распределенного среди посещений станций, заказов и перерывов), но не обязаны начинаться с 1 или быть последовательными.

Механизм расчета изменяет поле последовательности. После решения данное поле содержит значение последовательности перерыва на его маршруте. Выходные значения последовательности для маршрута едины для посещений станций, заказов и перерывов; начинаются с 1 (на начальной станции); и являются последовательными.

Record Set
Единицы поля времени

Задает единицы измерения времени, используемые для всех значений времени в анализе.

Многие объекты и записи в анализе VRP содержат поля для записи значений времени, например, ServiceTime для заказов и CostPerUnitTime - для маршрутов. Для сокращения требований по вводу данных эти поля не должны включать в себя единицы. Все значения времени должны вводиться в одних и тех же единицах, и данный параметр используется для указания единиц этих значений.

Выходные поля на основании времени используют единицы, указанные данным параметром.

Данная единица времени не обязана совпадать с единицей времени параметра сети Атрибут времени (time_attribute в Python).

  • СекундыЕдиницами времени будут секунды.
  • МинутыЕдиницами времени будут минуты.
  • HoursЕдиницами времени будут часы.
  • ДниЕдиницами времени будут дни.
String
Единицы поля расстояния

Задает единицы измерения расстояния, которые будет использоваться во всех полях расстояний в анализе.

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

Выходные поля с расстояниями используют единицы, определяемые данным параметром.

Данная единица расстояния необязательно должна совпадать с единицей расстояния сети Атрибут расстояния (distance attribute в Python).

  • МилиЕдиницами измерения расстояния будут мили.
  • КилометрыЕдиницами измерения расстояния будут километры.
  • ФутыЕдиницами измерения расстояния будут футы.
  • ЯрдыЕдиницами измерения расстояния будут ярды.
  • МетрыЕдиницами измерения расстояния будут метры.
  • Морские милиЕдиницами измерения расстояния будут морские мили.
String
Набор сетевых данных

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

Network Dataset Layer
Выходная рабочая область базы геоданных

Файловая база геоданных или рабочая область in-memory, в которой создаются выходные классы пространственных объектов. Рабочая область должна существовать. Выходная рабочая область по умолчанию – в оперативной памяти.

Workspace
Имя выходных не назначенных остановок

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

String
Имя выходных остановок

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

String
Имя выходных маршрутов

Имя класса пространственных объектов, которое будет содержать маршруты анализа.

String
Имя выходного путевого листа

Имя класса пространственных объектов, который будет содержать путевые листы для маршрутов.

String
Дата по умолчанию
(Дополнительный)

Дата по умолчанию для значений полей времени, в которых указывается время в течение дня без указания даты.

Date
Правила разворотов
(Дополнительный)

Определяет правила разворотов, которые будут использоваться на перекрестках. Разрешение разворотов подразумевает возможность развернуться на перекрестке и продолжить движение назад по той же улице. Учитывая, что соединения представляют собой пересечения улиц и тупики, различные транспортные средства могут разворачиваться на некоторых соединениях, но не на всех – это зависит от того, является ли соединение перекрестком или тупиком. Чтобы учесть это, поведение при развороте неявно определяется числом ребер, которые соединяются с соединением, т.е. валентностью соединения. Ниже приведены допустимые значения для данного параметра; каждое из них сопровождается описанием значения в терминах валентности соединения.

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

Значение этого параметра перезаписывается, если для Режима передвижения (travel_mode в Python) установлено значение, отличное от Пользовательский.

  • РазрешеноРазвороты разрешены в соединениях с любым количеством смежных ребер. Это значение используется по умолчанию.
  • Не разрешеноРазвороты запрещены во всех соединениях, вне зависимости от их валентности. Однако даже если эта опция выбрана, развороты в сетевых положениях по-прежнему разрешены, но вы можете запретить развороты в отдельных сетевых положениях с помощью свойства местоположения CurbApproach.
  • Разрешено только в тупикахРазвороты запрещены во всех соединениях, кроме тех, у которых имеется только одно смежное ребро (тупик).
  • Разрешено только на пересечениях и в тупикахРазвороты запрещены в соединениях с ровно двумя смежными ребрами, но разрешены на перекрестках (в соединениях с тремя смежными ребрами или более) и в тупиках (соединениях с ровно одним смежным ребром). Часто сети имеют избыточные соединения в середине сегмента дороги. Эта опция позволяет запретить развороты транспортных средств в таких местах.
String
Значимость превышения временного окна
(Дополнительный)

Задает уровень значимости, который будет использоваться для временных окон.

  • LowБолее высокая значимость будет придана сокращению времени в пути и более низкая – прибытию на остановки в указанное время. Эта опция применяется при накоплении отставания в обработке заказов. Для обработки как можно большего количества заказов в день и сокращения отставания можно выбрать данный параметр несмотря на то, что клиенты могут испытывать неудобства из-за позднего прибытия транспортных средств.
  • СредняяБудет соблюден баланс между сокращением времени в пути и соблюдением временных окон при прибытии. Это значение используется по умолчанию.
  • HighБолее высокая значимость будет установлена для прибытия на остановки в указанное время и менее высокая – для сокращения времени в пути. Этот вариант подойдет организациям, выполняющим доставки, критичные ко времени или связанным с обслуживанием клиентов.
String
Пространственно сгруппированные маршруты
(Дополнительный)

Определяет, будут ли заказы пространственно кластеризованы.

  • Отмечено – заказы, назначенные отдельному маршруту, пространственно кластеризуются (группируются). Деление заказов на кластеры приводит к сохранению маршрутов в небольших областях и сокращает частоту пересечения линий маршрутов, при этом деление на кластеры также приводит к увеличению общего времени в пути. Используется по умолчанию.
  • Не отмечено – заказы не будут пространственно кластеризоваться, и линии маршрута могут пересекаться. Снимите отметку с этого параметра, если указаны зоны маршрута.
Boolean
Зоны маршрутов
(Дополнительный)

Очерчивает рабочие территории для заданных маршрутов. Зона маршрута – это полигональный пространственный объект, который используется для ограничения маршрутов обслуживанием только тех заказов, которые находятся в пределах указанной области или вблизи нее. Вот несколько примеров, когда зоны маршрутов могут быть полезны:

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

Набор объектов зон маршрутов имеет связанную таблицу атрибутов. Поля в таблице атрибутов описаны ниже.

ObjectID

Управляемое системой поле ID.

Shape

Поле геометрии, указывающее географическое положение объекта сетевого анализа.

RouteName

Название маршрута, для которого применяется данная зона. Зона маршрута может иметь не более одного связанного маршрута. Это поле не может содержать пустые значения, и оно является внешним ключом для поля Name в классе объектов Маршруты.

IsHardZone

Двоичное значение, определяющее гибкую или жесткую зону маршрута. Значение Да (True) определяет жесткую зону; это означает, что заказ, выходящий за пределы полигона зоны маршрута, не может быть назначен этому маршруту. По умолчанию используется значение Истина (1). Значение Ложь (0) определяет, что такие заказы все еще могут быть назначены, но стоимость обслуживания заказа взвешена на основании функции евклидова расстояния от зоны маршрута. По сути, это означает, что по мере увеличения расстояния по прямой от гибкой зоны до заказа вероятность того, что заказ будет назначен маршруту, уменьшается.

Feature Set
Обновления маршрутов
(Дополнительный)

Промежуточные станции, которые могут посещаться на маршруте для догрузки и выгрузки доставляемых или собираемых грузов. Обновление связывает маршрут со станцией. Связь указывает, что на маршруте может производиться обновление (догрузка или выгрузка на маршруте) на связанной станции.

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

Вот несколько правил и вариантов выбора, которые также следует учитывать при работе с исходными точками маршрутов:

  • Пункт догрузки/выгрузки (место пополнения загрузки) может отличаться от начальной и конечной станций.
  • У каждого маршрута может быть одно или несколько заранее определенных мест пополнения.
  • Место пополнения загрузки может использоваться на одном маршруте несколько раз.
  • В некоторых случаях при наличии нескольких потенциальных мест пополнения загрузки для маршрута механизм расчет определяет ближайшее доступное из них.

Набор записей обновлений маршрута имеет связанные атрибуты. Поля в таблице атрибутов описаны ниже.

ObjectID

Управляемое системой поле ID.

DepotName

Имя станции, в которой происходит такое обновление. Это поле не может содержать значение null, и оно является внешним ключом для поля Name в классе объектов Станции.

RouteName

Название маршрута, к которому применяется данное обновление. Это поле не может содержать значение null, и оно является внешним ключом для поля Name в классе объектов Маршруты.

ServiceTime

Время обслуживания для обновления. Это поле может содержать пустое значение; пустое значение соответствует нулевому времени обслуживания.

Единица измерения для значения данного поля задается свойством Единицы поля времени для слоя анализа.

Примечание:

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

Record Set
Пары заказов
(Дополнительный)

Пары заказов сбора и доставки, которые обслуживаются на одном маршруте.

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

Набор записей пар заказов имеет связанные атрибуты. Поля в таблице атрибутов описаны ниже.

ObjectID

Управляемое системой поле ID.

FirstOrderName

Имя первого заказа в паре. Это поле является внешним ключом для поля Name в векторном слое Заказы.

SecondOrderName

Имя второго заказа в паре. Это поле является внешним ключом для поля Name в векторном слое Заказы.

Первый заказ в паре должен быть заказом сбора, это означает, что значение поля DeliveryQuantities для него null. Второй заказ в паре должен быть заказом доставки, это означает, что значение поля PickupQuantities для него null. Количество, которое собирается в первом заказе, должно соответствовать количеству, поставляемому во втором заказе. В отдельном случае оба заказа могут иметь нулевые количества для случаев, когда емкости не используются.

Примечание:

Заказы не загружаются и не разгружаются на станциях.

MaxTransitTime

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

Единица измерения для значения данного поля задается свойством Единицы поля времени для слоя анализа.

Механизмом расчета может отслеживаться и учитываться лишнее время в пути (измеряемое с учетом непосредственного времени в пути между парами заказов). По этой причине можно задать для механизма решения задачи выбора маршрута транспорта один из трех подходов: минимизировать общее лишнее время в пути, независимо от увеличения стоимости пути для парка; найти решение, балансирующее общее время нарушений и стоимость пути; или игнорировать общее лишнее время в пути и вместо этого минимизировать стоимость пути для парка. Назначая уровень значимости для параметра Значимость избыточного времени нахождения в пути (excess_transit_factor в Python), вы фактически выбираете один из этих трех подходов. Независимо от уровня значимости, механизм расчета всегда будет возвращать ошибку при превышении значения свойства MaxTransitTime.

Record Set
Значимость избыточного времени нахождения в пути
(Дополнительный)

Задает уровень важности сокращения избыточного времени в пути для пар заказов. Избыточное время в пути – это затрачиваемое сверх необходимого время для перемещения от одного заказа к другому. Избыточное время в пути может быть вызвано перерывами в работе водителя или движением к промежуточным заказам и станциям.

  • LowБольшое значение будет придано минимизации общей стоимости, независимо от избыточного времени в пути. Этот вариант обычно используется курьерской службой. Поскольку курьерская служба перевозит грузы, а не людей, ей не нужно особенно заботиться о времени в пути. Такая возможность позволяет курьерской службе обрабатывать парные заказы в должной очередности с минимальными общими затратами.
  • СредняяЗначимость сокращения избыточного времени нахождения в пути будет сбалансирована с сокращением общей стоимости решения. Это значение используется по умолчанию.
  • HighБольшая значимость будет придана минимальному времени нахождения в пути между спаренными заказами и меньшая - полной стоимости решения. Эта опция используется при перевозке людей между парными заказами, и вы хотите сократить время их поездки. Это характеристика сервисов такси
String
Точечные барьеры
(Дополнительный)

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

ObjectID:

Управляемое системой поле ID.

Shape:

Поле геометрии, показывающее географическое положение объекта сетевого анализа.

Name:

Имя барьера.

BarrierType:

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

  • Ограничение (0) – запрещает перемещение через барьер. Это значение используется по умолчанию.
  • Дополнительная стоимость (2) – Прохождение через барьер увеличивает сетевую стоимость на значение, указанное в полях Additional_Time и Additional_Distance.

Additional_Time:

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

Единицы измерения для значения данного поля задается свойством Единицы поля времени для слоя анализа.

Additional_Distance:

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

Единица измерения для значения данного поля указывается параметром Единицы поля расстояния.

Feature Set
Линейные барьеры
(Дополнительный)

Определяет линейные барьеры, которые временно ограничивают прохождение через них. Линейные барьеры определяются набором объектов. Ниже приведены поля в таблице атрибутов с описанием.

ObjectID:

Управляемое системой поле ID.

Shape:

Поле геометрии, показывающее географическое положение объекта сетевого анализа.

Name:

Имя барьера.

Feature Set
Полигональные барьеры
(Дополнительный)

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

ObjectID:

Управляемое системой поле ID.

Shape:

Поле геометрии, показывающее географическое положение объекта сетевого анализа.

Name:

Имя барьера.

BarrierType:

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

  • Ограничение (0) – запрещает прохождение через любую часть барьера. Это значение используется по умолчанию.
  • Масштабированная стоимость (1) – масштабирует импеданс для расположенных снизу ребер путем их умножения на значение свойства Attr_[Impedance]. Если ребра частично перекрыты барьером, будет умножаться пропорциональная доля импеданса.

Scaled_Time:

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

Scaled_Distance:

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

Feature Set
Атрибут времени (Time Attribute)
(Дополнительный)

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

Значение этого параметра перезаписывается, если для Режима передвижения (travel_mode в Python) установлено значение, отличное от Пользовательский.

String
Атрибут расстояния
(Дополнительный)

Сетевой атрибут стоимости, который будет использоваться для определения расстояния по элементам сети.

Значение этого параметра перезаписывается, если для Режима передвижения (travel_mode в Python) установлено значение, отличное от Пользовательский.

String
Использовать иерархию в анализе
(Дополнительный)
  • Отмечено – при анализе будет использоваться атрибут иерархии. Применение иерархии приводит при расчете к предпочтению ребер высшего порядка по сравнению с ребрами низшего порядка. Расчеты с иерархией выполняются быстрее, и они могут использоваться для моделирования предпочтений водителя, который скорее выберет для проезда автостраду, нежели местную дорогу – даже если это приведет к увеличению длины пути. Данная опция доступна, только если входной набор сетевых данных имеет атрибут иерархии.
  • Не отмечено – при анализе не будет использоваться атрибут иерархии. Если иерархия не используется, результатом является точный маршрут для набора сетевых данных.

Этот параметр неактивен, если в наборе сетевых данных, используемом для выполнения анализа, не задан атрибут иерархии.

Значение этого параметра перезаписывается, если для Режима передвижения (travel_mode в Python) установлено значение, отличное от Пользовательский.

Boolean
Ограничения
(Дополнительный)

Определяет, какие сетевые атрибуты ограничения будут учитываться во время расчета.

Значение этого параметра перезаписывается, если для Режима передвижения (travel_mode в Python) установлено значение, отличное от Пользовательский.

String
Значения Параметра атрибутов
(Дополнительный)

Определяет значения параметра для атрибутов сети, имеющих параметры. Набор записей имеет два столбца, которые используются вместе для уникальной идентификации параметров, а также другой столбец, который определяет значение параметра.

Значение этого параметра перезаписывается, если для Режима передвижения (travel_mode в Python) установлено значение, отличное от Пользовательский.

Набор записей значений параметра атрибута имеет связанные атрибуты. Ниже приведены поля в таблице атрибутов с описанием.

ObjectID:

Управляемое системой поле ID.

AttributeName:

Имя сетевого атрибута, чей параметр атрибута задан строкой таблицы.

ParameterName:

Имя параметра атрибута, чье значение задано строкой таблицы. (Параметры типа объекта не могут быть обновлены с помощью данного инструмента.)

ParameterValue:

Значение, которое вы хотите задать для параметра атрибута. Если значение не указано, для параметра атрибута устанавливается значение NULL.

Record Set
Максимальный допуск замыкания
(Дополнительный)

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

Linear Unit
Исключить части сети с ограничениями
(Дополнительный)

Задает размещение сетевых местоположений.

  • Отмечено – сетевые местоположения будут размещены только на проходимых участках сети. Это предотвратит размещение сетевых положений на элементах, которых нельзя достичь из-за ограничений или барьеров. Чтобы получить ожидаемые результаты, перед добавлением своих сетевых местоположений с использованием этого параметра, убедитесь в том, что в слой сетевого анализа уже добавлены все ограничивающие барьеры. Этот параметр не применяется при добавлении объектов барьеров.
  • Не отмечено – сетевые положения будут размещены на всех элементах сети. Сетевые положения, добавляемые с использованием этого параметра, могут быть недоступны в процессе решения, если они размещены на ограниченных элементах.
Boolean
Условие Where локатора объектов
(Дополнительный)

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

Value Table
Заполнить линии маршрута
(Дополнительный)

Задает генерацию линий, отображающих истинную геометрию маршрутов.

  • Отмечено – у объектов маршрутов поле Shape заполнено линиями.
  • Не отмечено - для выходных маршрутов геометрия не создается.
Boolean
Допуск упрощения линий маршрута
(Дополнительный)

Упрощенная протяженность геометрии маршрута.

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

Значение этого параметра перезаписывается, если для Режима передвижения (travel_mode в Python) установлено значение, отличное от Пользовательский.

Linear Unit
Заполнить путевой лист
(Дополнительный)

Задает, будут ли создаваться направления.

  • Отмечено - путевой лист создается. Класс пространственных объектов, указанный в параметре Выходное имя направлений, заполняется инструкциями для последовательных поворотов на каждом маршруте. Набор сетевых данных должен поддерживать направления движения; в противном случае во время расчетов направлений произойдет ошибка.
  • Не отмечено – путевой лист не будет создан.
Boolean
Язык путевого листа
(Дополнительный)

Язык, на котором создаются направления. Список языков, доступных в раскрывающемся меню, зависит от установленных на компьютере языковых пакетов ArcGIS.

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

String
Имя стиля путевого листа
(Дополнительный)

Задает стиль форматирования, который будет использоваться для путевого листа.

  • NA DesktopПутевой лист будет в формате, доступном для печати.
  • NA NavigationЭто будет пошаговый путевой лист, созданный для автомобильного навигационного устройства.
  • NA CampusЭто будет пошаговый пешеходный путевой лист, разработанный для пешеходных маршрутов.
String
Сохранить выходной слой сетевого анализа
(Дополнительный)

Задает, будут ли выходные данные содержать слой сетевого анализа с результатами.

  • Отмечено – в выходные данные включается слой сетевого анализа с результатами.
  • Не отмечено – в выходные данные не включается слой сетевого анализа с результатами.

В любом случае возвращаются автономные таблицы и классы объектов. Администратор сервера может выбрать вывод слоя сетевого анализа, с тем чтобы настройку и результаты работы инструмента можно было отладить с использованием средств управления Network Analyst в среде ArcGIS Desktop. Это упрощает процесс отладки.

В ArcGIS Desktop по умолчанию выходное местоположение слоя сетевого анализа находится во временной рабочей области, на одном уровне, что и временная база геоданных, то есть он хранится как одноуровневый элемент временной базы геоданных. Выходной слой сетевого анализа хранится в виде файла .lyr, имя которого начинается с _ags_gpna, а затем следует буквенно-числовое значение GUID.

Boolean
Возможности сервиса
(Дополнительный)

Задает максимальный объем вычислительных ресурсов, выделяющихся при работе данного инструмента в качестве сервиса геообработки. Вы можете использовать этот параметр, чтобы избежать решения сервером задач, которые требуют больше ресурсов или времени на обработку, либо чтобы создать несколько сервисов с различными возможностями VRP для поддержки ваших бизнес-задач. Например, если у вас имеется бизнес-модель, привязанная к сервису, вы можете предоставить бесплатный VRP-сервис, который поддерживает расчет максимум пяти маршрутов, и второй сервис, платный, поддерживающий расчет более пяти маршрутов.

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

  • MAXIMUM POINT BARRIERSОграничьте максимально возможное число точечных барьеров. В случае превышения этого значения возвращается ошибка. Значение null показывает, что предел отсутствует.
  • MAXIMUM FEATURES INTERSECTING LINE BARRIERSОграничьте максимальное количество исходных объектов, которое может быть пересечено всеми линейными барьерами в анализе. В случае превышения этого значения возвращается ошибка. Значение null показывает, что предел отсутствует.
  • MAXIMUM FEATURES INTERSECTING POLYGON BARRIERSОграничивает максимальное количество исходных объектов, которые могут быть пересечены всеми полигональными барьерами в анализе. В случае превышения этого значения возвращается ошибка. Значение null показывает, что предел отсутствует.
  • MAXIMUM ORDERSОграничивает максимальное число заказов, разрешенное в анализе. В случае превышения этого значения возвращается ошибка. Значение null показывает, что предел отсутствует.
  • MAXIMUM ROUTESОграничивает максимальное число маршрутов, разрешенное в анализе. В случае превышения этого значения возвращается ошибка. Значение null показывает, что предел отсутствует.
  • FORCE HIERARCHY BEYOND DISTANCEОграничивает максимальное расстояние по прямой между заказами перед расчетом маршрута транспорта с использованием сетевой иерархии. Для этого значения применяются те же единицы, что и единицы параметра Единицы поля расстояния.Если сеть не имеет атрибута иерархии, то данное ограничение игнорируется. Если установлена метка Использовать иерархию в анализе, иерархия используется всегда. Если параметр Использовать иерархию в анализе не включен и данное ограничение имеет нулевое значение, то иерархия не применяется.
  • MAXIMUM ORDERS PER ROUTEОграничивает максимальное число заказов, которое может быть назначено каждому маршруту. В случае превышения этого значения возвращается ошибка. Значение null показывает, что предел отсутствует.
Value Table
Игнорировать некорректные положения заказа
(Дополнительный)

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

  • Отмечено - некорректные заказы будут игнорироваться, и решение будет возвращено в случае отсутствия других ошибок. Если вам нужно быстро создать маршруты и передать их водителям, просто проигнорируйте некорректные заказы, постройте маршруты и отправьте их водителям. После этого решите проблемы с неправильным размещением заказов и включите их в анализ VRP для следующего рабочего дня или смены.
  • Не отмечено – решения не будет при наличии недействительных заказов. Некорректный заказ – это заказ, который невозможно достичь при расчете VRP. Заказ может быть недоступен по различным причинам, например, если он расположен на запрещенном для проезда элементе сети, не находится в сети вообще или размещен в отсоединенном сегменте сети.

Boolean
Режим передвижения
(Дополнительный)

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

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

  • Правила разворотов

  • Атрибут времени

  • Атрибут расстояния

  • Использовать иерархию в анализе

  • Ограничения

  • Значения Параметра атрибутов

  • Допуск упрощения линий маршрута

  • ПользовательскийОпределите режим, соответствующий вашим нуждам. При выборе Пользовательского режима инструмент не перезаписывает параметры режима, перечисленные выше. Это значение используется по умолчанию.
String
Игнорировать поля сетевых положений
(Дополнительный)

Определяет, будут ли рассматриваться поля в сетевом местоположении (SourceID, SourceOID, PosAlong и SideOfEdge) при местонахождении заказов, стоянок или барьеров в сети.

  • Отмечено – поля сетевого местоположения не будут учитываться при нахождении входных данных в сети. Вместо этого входные всегда будут находиться с помощью пространственного поиска.
  • Не отмечено – поля сетевого местоположения будут учитываться при нахождении вводных данных в сети. Это значение используется по умолчанию.
Boolean
Использование часового пояса для полей времени
(Дополнительный)

Указывает часовой пояс для следующих входных полей даты-времени, поддерживаемых инструментом: TimeWindowStart1, TimeWindowEnd1, TimeWindowStart2, TimeWindowEnd2, InboundArriveTime и OutboundDepartTime для заказов; TimeWindowStart1, TimeWindowEnd1, TimeWindowStart2 и TimeWindowEnd2 для станций; EarliestStartTime и LatestStartTime для маршрутов; TimeWindowStart и TimeWindowEnd для перерывов.

Указание значений даты-времени по времени UTC особенно полезно, когда не известен часовой пояс, в котором расположены заказы или станции, или когда они расположены в нескольких часовых поясах, а вы хотите, чтобы все значения даты-времени были синхронизированы. Опция UTC применяется только в случае, когда атрибут часового пояса определяется набором сетевых данных. Во всех других случаях все значения даты-времени всегда считаются как Geo local (GEO_LOCAL в Python).

  • Geo localЗначения даты-времени, связанные с заказами или станциями, приводятся в том же часовом поясе, где они находятся. Для маршрутов значения даты-времени основываются на часовом поясе, в котором расположено начальная станция маршрута. Если у маршрута нет исходной станции, то все заказы и станции на всех маршрутах должны быть в одном часовом поясе. Для остановок значения даты-времени основываются на часовом поясе маршрута. Например, если станция находится в часовом поясе восточного стандартного времени и для нее заданы первые значения временных окон (указаны как TimeWindowStart1 и TimeWindowEnd1) 08:00 и 17:00, то значениями временных окон будут считаться 08:00 и 17:00 по восточному стандартному времени.
  • UTCЗначения даты-времени, связанные с заказами или станциями, находятся в универсальном координированном времени UTC, и не основаны на часовом поясе, где находятся заказы или станции. Например, если станция расположена в зоне восточного стандартного времени и имеет значение первого временного окна (указано как TimeWindowStart1 и TimeWindowEnd1) 08:00 и 17:00, соответственно, то значениями временных окон будут считаться 12:00 дня и 21:00 по летнему восточному стандартному времени.
String
Замещения
(Дополнительный)

Примечание:

Этот параметр предназначен только для внутреннего использования.

String
Сохранить данные маршрута
(Дополнительный)

Определяет, будет ли сохранен файл .zip, содержащий файловую базу геоданных со входными и выходными данными анализа в формате, который можно использовать для публикации слоев маршрутов в ArcGIS Online или ArcGIS Enterprise.

В ArcGIS Desktop выходное местоположение данного выходного файла – это временная папка. Вы можете определить местоположение временной папки с помощью arcpy.env.scratchFolder или по значению среды геообработки.

  • Отмечено — будет сохранен файл архива .zip, содержащий рабочую область файловой базы геоданных, в которой хранятся входные и выходные данные анализа.
  • Не отмечено — данные маршрута не будут сохранены. Используется по умолчанию.
Boolean

Производные выходные данные

ПодписьОписаниеТип данных
Выходной расчет прошел успешно

Логическое значение, указывающее успешность выполнения анализа расчета задачи выбора маршрута транспорта.

Boolean
Выходные не назначенные остановки

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

Table
Выходные остановки

Таблица предоставляет информацию об остановках, сделанных на станциях, на заказах и в перерывах.

Table
Выходные маршруты

Класс объектов, который представляет водителей, транспортные средства и маршруты транспортных средств для задачи выбора маршрута.

Feature Class
Выходной путевой лист

Пошаговые инструкции, которые помогают водителям следовать назначенным маршрутам.

Feature Class
Выходной слой сетевого анализа

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

File
Данные выходного маршрута

Файл .zip, содержащий всю информацию для определенного маршрута.

File

arcpy.na.SolveVehicleRoutingProblem(orders, depots, routes, breaks, time_units, distance_units, network_dataset, output_workspace_location, output_unassigned_stops_name, output_stops_name, output_routes_name, output_directions_name, {default_date}, {uturn_policy}, {time_window_factor}, {spatially_cluster_routes}, {route_zones}, {route_renewals}, {order_pairs}, {excess_transit_factor}, {point_barriers}, {line_barriers}, {polygon_barriers}, {time_attribute}, {distance_attribute}, {use_hierarchy_in_analysis}, {restrictions}, {attribute_parameter_values}, {maximum_snap_tolerance}, {exclude_restricted_portions_of_the_network}, {feature_locator_where_clause}, {populate_route_lines}, {route_line_simplification_tolerance}, {populate_directions}, {directions_language}, {directions_style_name}, {save_output_layer}, {service_capabilities}, {ignore_invalid_order_locations}, {travel_mode}, {ignore_network_location_fields}, {time_zone_usage_for_time_fields}, {overrides}, {save_route_data})
ИмяОписаниеТип данных
orders

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

Набор объектов заказа имеет связанную таблицу атрибутов. Поля в таблице атрибутов описаны ниже.

ObjectID

Управляемое системой поле ID.

Shape

Поле геометрии, указывающее географическое положение объекта сетевого анализа.

Name

Имя заказа. Имя должно быть уникальным. Если оставить имя равным null, имя будет автоматически сгенерировано во время решения.

ServiceTime

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

Единицы измерения для значения данного поля задается параметром Единицы поля времени (time_units в Python).

TimeWindowStart1

Время начала и конца первого временного окна для сетевого положения. Это поле может содержать значение null; значение null указывает на отсутствие времени начала.

Примечание:
  • Временное окно только указывает, когда транспортное средство может прибыть по заказу, но не указывает, когда должно закончиться время обслуживания. Чтобы учесть время обслуживания и уехать до окончания временного окна, вычтите значение ServiceTime из поля TimeWindowEnd1.

  • Поля временных окон могут содержать только значение времени или даты и времени, они не могут быть целыми числами, представляющими миллисекунды с начала Эпохи. Часовой пояс для полей временного окна задается с помощью параметра Использование часового пояса для полей времени. Если поле времени, такое как TimeWindowStart1, содержит значение только времени (например, 8:00), дата предполагается равной дате, указанной свойством слоя анализа Дата по умолчанию. Использование значений даты и времени (например, 7/11/2010 8:00 AM) позволяет задавать временные окна, которые могут охватывать несколько дней.

  • Дата по умолчанию игнорируется, когда поле временного окна содержит дату и время. Для предотвращения этой ошибки форматируйте все временные окна для Станций, Маршрутов, Заказов и Перерывов чтобы они также включали дату и время.

  • Если используются данные трафика, поля времени суток для нового сетевого положения всегда соответствуют тому же часовому поясу, что и ребро, на котором располагается это положение.

TimeWindowEnd1

Время окончания для первого временного окна для сетевого положения. Это поле может содержать значение null; значение null указывает на отсутствие времени окончания.

TimeWindowStart2

Время начала и конца второго временного окна для сетевого положения. Это поле может содержать значение null; значение null указывает на отсутствие второго временного окна.

Если первое временное окно содержит null, как указано в полях TimeWindowStart1 и TimeWindowEnd1, то второе временное окно также должно иметь значения null.

Если оба временных окна не пустые, то они не могут перекрываться. Кроме того, второе временное окно должно появиться после первого.

TimeWindowEnd2

Время окончания второго временного окна для сетевого положения. Это поле может содержать значение null.

Когда оба TimeWindowStart2 и TimeWindowEnd2 имеют значение null, то второе временное окно отсутствует.

Когда TimeWindowStart2 не null, а TimeWindowEnd2 – null, то имеется второе временное окно со временем начала, но без времени окончания. Это действительно так.

MaxViolationTime1

Временное окно считается нарушенным, если прибытие происходит после окончания временного окна. В данном поле указывается максимальное допустимое время превышения для первого временного окна заказа. Оно может содержать нулевое значение, но не может содержать отрицательные значения. Нулевое значение показывает, что нарушение временного окна в первом временном окне заказа недопустимо; то есть первое временное окно является жестким. С другой стороны, значение NULL показывает, что для допустимого превышения времени предел отсутствует. Ненулевое значение показывает максимальную величину опоздания; например, маршрут может прибыть на точку заказа в течение 30 минут после окончания первого временного окна.

Единицы измерения для значения данного поля задается параметром Единицы поля времени (time_units в Python).

Превышение временного окна может отслеживаться и взвешиваться механизмом расчета. По этой причине вы можете указать механизму расчета VRP следующие подходы:

  • Сведите к минимуму общее время нарушения независимо от увеличения транспортных расходов для автопарка.
  • Найдите решение, которое уравновешивает общее превышение времени и расходы на поездку.
  • Игнорируйте общее превышение времени; вместо этого минимизируйте транспортные расходы для автопарка.

Назначая уровень важности параметру Значимость превышения временного окна (time_window_factor в Python), вы фактически выбираете один из этих трех подходов. В любом случае механизм расчета приведет к ошибке, если будет превышено значение, заданное для свойства MaxViolationTime1.

MaxViolationTime2

Максимальное допустимое время нарушения для второго временного окна заказа. Данное поле аналогично полю MaxViolationTime1.

InboundArriveTime

Определяет, когда доставляемый товар будет готов на станции.

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

Это поле поможет смоделировать возможные наплывы заказов доставок. Например, работа над заказом требует специальных материалов, которые отсутствуют на станции. Материалы отправляются из другого места и прибудут на склад в 11:00. Чтобы убедиться, что ни один маршрут, который начинается до их доставки, не приписан к заказу, входное время заказа устанавливается на 11:00. Специальные материалы будут доставлены в 11:00, загружены в автомобиль, который затем отправится со станции выполнять приписанные ему заказы.

Примечание:

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

  • Это поле времени может содержать только значение времени или даты и времени. Если поле времени имеет значение только времени (например, 11:00 AM), дата предполагается равной дате, заданной свойством Дата по умолчанию слоя анализа. Если же поле времени содержит дату в Станциях, Маршрутах, Заказах или Перерывах, дата по умолчанию игнорируется. В этом случае укажите все такие поля с датой и временем (например, 7/11/2015 11:00 AM).

  • Механизм расчета задачи выбора маршрута транспорта использует InboundArriveTime, независимо от значения поля DeliveryQuantities.

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

  • Механизм расчета Задачи выбора маршрута транспорта не разработан для задач сроком более одного года. Все значения времени обслуживания и временные окна должны быть меньше одного года.

OutboundDepartTime

Определяет, когда требуемый для заказа товар должен прибыть на конечную станцию.

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

Это поле поможет смоделировать возможные наплывы заказов доставок. Например, судоходная компания посылает грузовики забрать пакеты с заказами, привезти их на станцию, откуда они будут перенаправлены на другие объекты и отправлены по маршруту к месту назначения. Ежедневно в 15:00 полуприцеп останавливается на станции, чтобы забрать приоритетные пакеты и отвезти их непосредственно на центральную станцию обработки. Чтобы избежать задержки приоритетных пакетов до 15:00 вечера следующего дня, судоходная компания старается, чтобы грузовики забирали приоритетные пакеты из заказов и отвозили их на станцию до 15:00. Этого можно достичь путем установки 15:00 в качестве исходящего времени отъезда.

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

  • Это поле времени может содержать только значение времени или даты и времени. Если поле времени имеет значение только времени (например, 11:00 AM), дата предполагается равной дате, заданной свойством Дата по умолчанию слоя анализа. Если же поле времени содержит дату в Станциях, Маршрутах, Заказах или Перерывах, дата по умолчанию игнорируется. В этом случае укажите все такие поля с датой и временем (например, 7/11/2015 11:00 AM).

  • Механизм расчета задачи выбора маршрута транспорта использует OutboundDepartTime, независимо от значения поля PickupQuantities.

  • Если указано также входящее время прибытия, этот момент времени должен наступить до исходящего времени отъезда.

DeliveryQuantities

Размер доставки. Вы можете указать размер в любом формате, например, масса, объем или количество. Вы можете даже указать несколько различных измерений, например, вес и объем.

Введите число объектов поставки без указания единиц. Например, если необходимо выполнить доставку объекта массой 300 фунтов по заказу, введите 300. Вам необходимо запомнить, что данное значение приведено в фунтах.

Если при составлении маршрута учитываются несколько измерений, разделяйте их числовые значения пробелами. Например, если вы записываете массу и объем поставки в 2 000 фунтов и 100 кубических футов, введите 2000 100. В этом случае вам необходимо запомнить, что данные значения приведены в фунтах и кубических футах. Вам также необходимо запомнить последовательность введения значений и соответствующие им единицы измерения.

Убедитесь, что аналогичным образом указаны Capacities для Маршрутов, DeliveryQuantities и PickupQuantities для Заказов; это означает, что данные значения должны быть указаны в тех же единицах и, если вы используете несколько размеров, то данные размеры должны быть приведены в той же последовательности для всех параметров. Таким образом, если вы указали массу в фунтах, а затем объем в кубических футах для DeliveryQuantities, то емкости ваших маршрутов и количества собираемых заказов необходимо указать аналогичным образом: массу в фунтах, а затем объем в кубических футах. Если вы смешиваете единицы измерения или изменяете последовательность, вы получите нежелательные результаты без каких-либо предупреждающих сообщений.

Пустая строка или значение NULL соответствует нулю для всех размеров. Если строка содержит недостаточное число значений относительно числа отслеживаемых характеристик емкости или размеров, то оставшиеся значения интерпретируются, как равные нулю. Количество элементов поставки не может быть отрицательными.

PickupQuantities

Размер загрузки. Вы можете указать размер в любом формате, например, масса, объем или количество. Вы можете даже указать несколько различных измерений, например, вес и объем. При этом вы не можете использовать отрицательные значения. Данное поле аналогично полю DeliveryQuantities для Заказов.

Примечание:
В случае поездки для обмена, заказ может содержать указанное количество как поставки, так и загрузки.

Revenue

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

Прибыль включается в оптимизацию значения целевой функции, но не является частью оперативных расходов на решение. То есть поле TotalCost в классе маршрута никогда не включает доход в итоговое значение; однако, доход имеет определенный вес и важность для обслуживания заказов.

SpecialtyNames

Строка, разделенная пробелами и содержащая имена специальных требований, необходимых для заказа. Значение null указывает, что заказ не содержит специальных требований.

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

Для иллюстрации того, что такое специальные требования, и как они работают, предположим, что у компании по уходу за газонами и подрезанию деревьев имеется часть заказов, которые требуют применения автоподъемника с люлькой для обрезки высоких деревьев. Компания введет BucketTruck в поле SpecialtyNames для данных заказов, чтобы указать на наличие специального требования. SpecialtyNames будет оставлено пустым для других заказов. Аналогичным образом, компания введет BucketTruck в поле SpecialtyNames маршрутов, выполняемых грузовиками с гидравлическими стрелами-манипуляторами. Для остальных маршрутов данное поле останется пустым (NULL). Во время решения механизм расчета VRP назначает заказы без особых требований для любого маршрута, но назначает заказы, для которых требуются автовозы, только маршрутам, в которых они есть.

AssignmentRule

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

  • Исключить (Exclude) (0) – заказ будет исключен из последующего решения.
  • Сохранить маршрут и соответствующий порядок следования (1) – механизм расчета должен всегда назначать заказ для предварительно назначенного маршрута и в предварительно назначенной относительной последовательности во время решения. Если правило назначения нельзя учесть, то это приведет к нарушению заказа.

    При помощи данной настройки поддерживается только относительная последовательность, а не абсолютная. Для иллюстрации данного утверждения представим два заказа: A и B. Они имеют последовательные значения 2 и 3, соответственно. Если вы зададите для их поля AssignmentRule значения Сохранить маршрут и соответствующий порядок следования, то фактические значения последовательности A и B могут изменяться после решения, так как другие заказы, перерывы и посещения станций все еще могут быть перед ними, между или после A и B. Однако B не может быть обслужен раньше, чем A.

  • Сохранить маршрут (2) – механизм расчета должен всегда назначать заказ для предварительно назначенного маршрута во время расчета. Действительная последовательность также должна быть задана, даже несмотря на то, что последовательность может сохраняться или нет. Если заказ не может быть присвоен указанному маршруту, результатом будет нарушение заказа.
  • Замещение (3) – механизм расчета игнорирует маршрут и предварительно назначенную последовательность (если есть) для заказа во время операции расчета. Он присваивает заказу маршрут и последовательность так, чтобы сократить общую стоимость функции достижения цели. Это значение используется по умолчанию.
  • Первый якорь (4) – механизм расчета игнорирует маршрут и предварительно назначенную последовательность (если есть) для заказа во время операции расчета. Он присваивает заказу маршрут и делает этот заказ первым, так, чтобы сократить общую стоимость функции достижения цели.
  • Последний якорь (5) – механизм расчета игнорирует маршрут и предварительно назначенную последовательность (если есть) для заказа во время операции расчета. Он присваивает заказу маршрут и делает этот заказ последним, так, чтобы сократить общую стоимость функции достижения цели.

Это поле не может содержать значения null.

CurbApproach

Свойство CurbApproach указывает направление, откуда транспортное средство может прибыть и куда отправиться из сетевого местоположения. Можно выбрать четыре варианта (их кодированные значения показаны в скобках):

  • С любой стороны (0) – Транспортное средство может прибывать и отправляться от сетевого положения в любом направлении. Развороты допустимы. Вам необходимо выбрать данную настройку в том случае, если транспортное средство может сделать разворот на остановке, или если оно может съехать на проезжую часть или в место для стоянки и развернуться.
  • Справа по направлению движения (1) – При подъезде транспортного средства к сетевому положению и отправлению от него, бордюр должен находиться с правой стороны транспортного средства. Разворот запрещен.
  • Слева по направлению движения (2) – При подъезде транспортного средства к сетевому положению и отправлении от него, бордюр должен находиться с левой стороны транспортного средства. Разворот запрещен.
  • Без разворота (3) – При подъезде транспортного средства к сетевому положению бордюр может располагаться с любой стороны транспортного средства. Но при отправлении транспортное средство не должно выполнять разворот.

RouteName

Имя маршрута, для которого назначен заказ.

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

После вычисления, если заказ присвоен маршруту, то поле RouteName будет содержать имя маршрута, которому был назначен заказ.

Sequence

Это обозначает последовательность заказа на маршруте.

Являясь входным, данное поле используется для указания относительной последовательности для заказа на маршруте. Данное поле может содержать значение NULL, показывающие, что заказ может быть размещен в любой точке маршрута. Значение null может иметь место только вместе со значением RouteName null.

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

После расчета в поле Sequence будут содержаться значения последовательности заказа для назначенного маршрута. Выходные значения последовательности для маршрута едины для посещений станций, заказов и перерывов; начинаются с 1 (на начальной станции); и являются последовательными. Таким образом, минимальным возможным выходным значением последовательности для заказа на маршруте является 2, это обусловлено тем, что маршрут всегда начинается со станции.

Feature Set
depots

Станция – это место, откуда транспортное средство отправляется в начале рабочего дня, и куда оно возвращается по окончании рабочего дня. Транспортные средства загружаются (при доставке) или разгружаются (при сборе) на станциях в начале маршрута. В некоторых случаях станция может также служить местом пополнения загрузки, в котором транспортное средство может разгружаться или догружаться и продолжать выполнять доставку и сбор. У станции есть значения времени открытия и закрытия, указываемые жестким временным окном. Транспортные средства не могут прибывать на станцию за пределами этого временного окна.

Набор объектов станций имеет связанную таблицу атрибутов. Поля в таблице атрибутов описаны ниже.

ObjectID

Управляемое системой поле ID.

Shape

Поле геометрии, указывающее географическое положение объекта сетевого анализа.

Name

Имя станции. Поля StartDepotName и EndDepotName набора записей маршрутов ссылаются на указанные здесь имена. На них также ссылаются наборы записей обновления маршрутов при их использовании.

Имена станций нечувствительны к регистру и должны быть не пустыми и уникальными.

TimeWindowStart1

Время начала и конца первого временного окна для сетевого положения. Это поле может содержать значение null; значение null указывает на отсутствие времени начала.

Примечание:
  • Поля временных окон могут содержать только значение времени или даты и времени. Если поле времени имеет значение только времени (например, 8:00), дата предполагается равной дате, указанной свойством Дата по умолчанию слоя анализа. Использование значений даты и времени (например, 7/11/2010 8:00 AM) позволяет задавать временные окна, которые могут охватывать несколько дней.

  • Дата по умолчанию игнорируется, когда поле временного окна содержит дату и время. Для предотвращения этой ошибки форматируйте все временные окна для Станций, Маршрутов, Заказов и Перерывов чтобы они также включали дату и время.

  • Если используются данные трафика, поля времени суток для нового сетевого положения всегда соответствуют тому же часовому поясу, что и ребро, на котором располагается это положение.

TimeWindowEnd1

Время окончания для первого временного окна для сетевого положения. Это поле может содержать значение null; значение null указывает на отсутствие времени окончания.

TimeWindowStart2

Время начала и конца второго временного окна для сетевого положения. Это поле может содержать значение null; значение null указывает на отсутствие второго временного окна.

Если первое временное окно содержит null, как указано в полях TimeWindowStart1 и TimeWindowEnd1, то второе временное окно также должно иметь значения null.

Если оба временных окна не пустые, то они не могут перекрываться. Кроме того, второе временное окно должно появиться после первого.

TimeWindowEnd2

Время окончания второго временного окна для сетевого положения. Это поле может содержать значение null.

Когда оба TimeWindowStart2 и TimeWindowEnd2 имеют значение null, то второе временное окно отсутствует.

Когда TimeWindowStart2 не null, а TimeWindowEnd2 – null, то имеется второе временное окно со временем начала, но без времени окончания. Это действительно так.

CurbApproach

Свойство CurbApproach указывает направление, откуда транспортное средство может прибыть и куда отправиться из сетевого местоположения. Можно выбрать четыре варианта (их кодированные значения показаны в скобках):

  • С любой стороны (0) – Транспортное средство может прибывать и отправляться от сетевого положения в любом направлении. Развороты допустимы. Вам необходимо выбрать данную настройку в том случае, если транспортное средство может сделать разворот на остановке, или если оно может съехать на проезжую часть или в место для стоянки и развернуться.
  • Справа по направлению движения (1) – При подъезде транспортного средства к сетевому положению и отправлению от него, бордюр должен находиться с правой стороны транспортного средства. Разворот запрещен.
  • Слева по направлению движения (2) – При подъезде транспортного средства к сетевому положению и отправлении от него, бордюр должен находиться с левой стороны транспортного средства. Разворот запрещен.
  • Без разворота (3) – При подъезде транспортного средства к сетевому положению бордюр может располагаться с любой стороны транспортного средства. Но при отправлении транспортное средство не должно выполнять разворот.

Bearing

Направление, в котором движется точка. Единицами измерения являются градусы, которые отсчитываются по часовой стрелке от истинного севера. Это поле используется совместно с полем BearingTol.

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

Использование данного поля обеспечивает защиту от добавления положений на неверные ребра, что может произойти, например, когда транспортное средство расположено недалеко от перекрестка или эстакады. Bearing также помогает Network Analyst определить, на какой стороне улицы находится точка.

Дополнительные сведения см. в разделе Bearing и BearingTol.

BearingTol

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

Единицы измерения указаны в градусах, значение по умолчанию - 30. Значения должны быть больше нуля и меньше 180.

Значение 30 означает, что, когда Network Analyst предпринимает попытку добавить сетевое положение на ребро, диапазон допустимых значений направления создается в пределах 15º с каждой стороны ребра (слева и справа), в обоих направлениях оцифровки ребра.

Дополнительные сведения см. в разделе Bearing и BearingTol.

NavLatency

Данное поле используется при расчете только, если для Bearing и BearingTol также введены значения; при этом ввод значения NavLatency является необязательным, даже если для Bearing и BearingTol заданы значения. Поле NavLatency определяет время, которое должно пройти от момента передачи GPS информации от движущегося транспортного средства на сервер, а также момент, когда обработанный маршрут получен устройством навигации транспортного средства. Эти единицы времени NavLatency аналогичны единицам атрибута стоимости, которые задаются параметром Атрибут времени.

Feature Set
routes

Маршруты, доступные для заданной задачи нахождения маршрута транспорта. Маршрут определяет характеристики транспортного средства и водителя. После решения он также включает маршрут между станциями и заказами.

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

Набор записей маршрута имеет несколько атрибутов. Поля в таблице атрибутов описаны ниже.

Name

Название маршрута. Имя должно быть уникальным.

Network Analyst создает уникальное имя во время расчета, если для него было указано значение null. Ввод значения в большинстве случаев является необязательным. Однако вам необходимо ввести имя, если анализ содержит перерывы, обновления маршрута, зоны маршрутов или заказы, которые были предварительно назначены для маршрута, так как имя маршрута в данном случае используется как внешний ключ. Имена маршрутов не чувствительны к регистру.

StartDepotName

Имя начальной станции маршрута. Это поле является внешним ключом для поля Name в параметре Станции.

Если значение StartDepotName - null, то маршрут начинается с первого назначенного заказа. Исключение начальной станции полезно в том случае, если начальное положение транспортного средства неизвестно или неважно для вашей задачи. Однако, когда StartDepotName имеет значение null, EndDepotName не может быть null.

Виртуальные начальные станции не допускаются, если заказы или станции находятся в нескольких часовых поясах.

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

EndDepotName

Имя конечной станции маршрута. Это поле является внешним ключом для поля Name в параметре Станции.

StartDepotServiceTime

Время обслуживания на начальной станции. Может использоваться для моделирования времени, затраченного на загрузку транспортного средства. Это поле может содержать пустое значение; пустое значение соответствует нулевому времени обслуживания.

Единицы измерения для значения данного поля задается параметром Единицы поля времени (time_units в Python).

Примечание:

Время обслуживания на начальной и конечной станции является фиксированным (определяется значениями полей StartDepotServiceTime и EndDepotServiceTime) и не учитывает фактическую загрузку для маршрута. Например, время, затраченное на загрузку транспортного средства на начальной станции, может зависеть от размера заказов. Таким образом, время обслуживания на станции может иметь значения, соответствующие полной загрузке грузовика или средней загрузке грузовика, или вы можете сделать свою собственную оценку времени.

EndDepotServiceTime

Время обслуживания на конечной станции. Может использоваться для моделирования времени, затраченного на разгрузку транспортного средства. Это поле может содержать пустое значение; пустое значение соответствует нулевому времени обслуживания.

Единицы измерения для значения данного поля задается параметром Единицы поля времени (time_units в Python).

Примечание:

Время обслуживания на начальной и конечной станции является фиксированным (определяется значениями полей StartDepotServiceTime и EndDepotServiceTime) и не учитывает фактическую загрузку для маршрута. Например, время, затраченное на загрузку транспортного средства на начальной станции, может зависеть от размера заказов. Таким образом, время обслуживания на станции может иметь значения, соответствующие полной загрузке грузовика или средней загрузке грузовика, или вы можете сделать свою собственную оценку времени.

EarliestStartTime

Наиболее раннее допустимое время начала маршрута. Оно используется механизмом решения вместе с временным окном начальной станции для определения возможного времени начала маршрута.

Это поле не может содержать значения null и имеет значение по умолчанию только для времени, равное 8:00. Значение по умолчанию означает 8:00 утра даты, заданной параметром Дата по умолчанию (default_date в Python).

Дата по умолчанию игнорируется, когда поле временного окна содержит дату и время. Для предотвращения этой ошибки форматируйте все временные окна для Станций, Маршрутов, Заказов и Перерывов чтобы они также включали дату и время.

При использовании наборов сетевых данных с данными трафика, охватывающими несколько часовых поясов, часовой пояс для EarliestStartTime такой же, как и часовой пояс для ребра или соединения, на котором расположена начальная станция.

LatestStartTime

Наиболее позднее допустимое время начала маршрута. Это поле не может содержать значения null и имеет значение по умолчанию только времени, равное 10:00. Значение по умолчанию интерпретируется как 10:00 утра даты, определяемой свойством Дата по умолчанию слоя анализа.

При использовании наборов сетевых данных с данными трафика, охватывающими несколько часовых поясов, часовой пояс для LatestStartTime такой же, как и часовой пояс для ребра или соединения, на котором расположена начальная станция.

ArriveDepartDelay

В этом поле хранится величина времени в пути, необходимая для ускорения транспортного средства до обычной скорости передвижения, замедления его до остановки и перемещения из сети и в сеть (например, на парковку и с парковки). Включение значения ArriveDepartDelay позволяет механизму расчета VRP не отправлять множество маршрутов для обслуживания физически совпадающих заказов.

Стоимость для этого свойства выводится между визитами по несовпадающим заказам, станциям и обновлениям маршрута. Например, если маршрут начинается со станции и посещает первый заказ, ко времени пути добавляется общая задержка прибытия/отправления. То же касается пути от первого заказа ко второму. Если второй и третий заказы совпадают, значение ArriveDepartDelay между ними не добавляется, поскольку транспортному средству не нужно перемещаться. Если маршрут следует к пункту обновления загрузки, значение снова добавляется ко времени в пути.

Хотя транспортному средству необходимо замедляться и останавливаться на перерыв, а после него ускоряться, механизм расчета задачи выбора маршрута транспорта не может добавлять значение ArriveDepartDelay для перерывов. Это означает, что если маршрут оставляет заказ, останавливается на перерыв и переходит к следующему заказу, задержка прибытия/отправления добавляется только один раз, а не дважды.

Для иллюстрации данного утверждения предположим, что имеются пять совпадающих заказов в одном многоэтажном доме, которые обслуживаются тремя разными маршрутами. Это значит, что нужно добавить три задержки прибытия/отправления; то есть трем водителям необходимо раздельно найти места для парковки и войти в одно и то же здание. Однако если заказы могут быть обслужены всего одним маршрутом, парковаться и входить в здание необходимо только одному водителю – и возникает только одна задержка прибытия/отправления. Поскольку механизм расчета задачи выбора маршрута транспорта пытается минимизировать затраты, он попробует ограничить задержки прибытия/отправления и поэтому выберет вариант с одним маршрутом. (Обратите внимание, что при наличии других ограничений – специальных требований, временных окон или емкостей – могут понадобиться несколько маршрутов.)

Единицы измерения для значения данного поля задается параметром Единицы поля времени (time_units в Python).

Capacities

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

Введите вместимости без указания единиц. Например, если ваш автомобиль может перевозить максимум 40 000 фунтов, введите 40000. Вам надо запомнить, что данное значение приведено в фунтах.

Если при составлении маршрута учитываются несколько измерений, разделяйте их числовые значения пробелами. Например, если вы регистрируете и вес, и объем, и ваш автомобиль может нести максимальный вес 40 000 фунтов и максимальный объем 2 000 кубических футов, введите 40000 2000. Вам будет необходимо запомнить единицы измерения. Вам также нужно помнить последовательность введенных значений и соответствующие им единицы измерения (в данном случае фунты, а затем кубические футы).

Запомнить единицы измерения и их последовательность важно по нескольким причинам: во-первых, для возможности интерпретации информации в будущем, во-вторых, для правильного ввода значений полей DeliveryQuantitiesи PickupQuantities для параметра Заказы. Механизм расчёта VRP одновременно ссылается на Capacities, DeliveryQuantities и PickupQuantities, чтобы убедиться в том, что маршрут не станет перегруженным. Поскольку единицы измерения нельзя вводить в поле, Network Analyst не может преобразовывать единицы. Вы должны ввести значения для трех полей, используя одни и те же единицы измерения и одну и ту же последовательность единиц измерения, чтобы обеспечить правильную интерпретацию значений. Если вы комбинируете единицы измерения или изменяете последовательность в любом из трех полей, будут созданы нежелательные результаты без каких-либо предупреждающих сообщений. Рекомендуется сначала определить стандарт ввода единиц измерения и последовательность их ввода и постоянно использовать ее при вводе значений для этих трех полей.

Пустая строка или значение NULL соответствует нулю для всех значений. Значение емкости не может быть отрицательным.

Если в поле Capacities содержится недостаточное число значений относительно полей DeliveryQuantities или PickupQuantities в заказах, оставшиеся значения интерпретируются как равные нулю.

Внимание:

Механизм расчета VRP только выполняет простой двоичный тест для определения превышения емкостей. Если значение емкости маршрута выше или равно общей вместимости, то механизм расчета VRP предположит, что груз помещается в транспортное средство. Это может быть неверно, в зависимости от фактической формы груза и транспортного средства. Например, механизм расчета VRP позволяет вам загрузить сферу объемом 1 000-кубических футов в грузовик вместимостью 1 000 кубических футов и шириной 8 футов. В действительности, сфера имеет диаметр 12,6 фута, и ее нельзя поместить в грузовик шириной 8 футов.

FixedCost

Фиксированное денежная стоимость, которая принимается только в том случае, если маршрут используется в решении (то есть, что для него назначены некоторые заказы). Это поле может содержать значения NULL; значение NULL соответствует нулевой фиксированной стоимости. Эта стоимость является частью общей стоимости эксплуатации маршрута.

CostPerUnitTime

Примененная денежная стоимость – на единицу времени работы – для общей продолжительности маршрута, включая значения времени в пути, а также времени обслуживания и ожидания на заказах, станциях и в перерывах. Это поле не может содержать значения null и имеет значение по умолчанию, равное 1.0.

Единицы измерения для значения данного поля задается параметром Единицы поля времени (time_units в Python).

CostPerUnitDistance

Примененная денежная стоимость – на единицу пройденного расстояния – для длины маршрута (общее пройденное расстояние). Это поле может содержать значения null; значение null указывает на нулевую стоимость.

Единица измерения для данного значения поля указывается параметром Единицы поля расстояния (distance_units для Python).

OvertimeStartTime

Продолжительность регулярного времени работы перед началом вычисления сверхурочных. Это поле может содержать значения null; значение null указывает, что сверхурочная работа не применяется.

Единицы измерения для значения данного поля задается параметром Единицы поля времени (time_units в Python).

Например, сверхурочные должны выплачиваться водителю, когда общая продолжительность поездки превышает 8 часов; в этом случае параметр OvertimeStartTime задается как 480 (8 часов * 60 минут/час), если для параметра Единицы поля времени заданы Минуты.

CostPerUnitOvertime

Денежная стоимость для единицы времени сверхурочной работы. Это может содержать только значение null, если OvertimeStartTime также равно null. В противном случае это должно быть положительное значение больше, чем CostPerUnitTime.

MaxOrderCount

Максимальное допустимое число заказов на маршруте. Это поле не может содержать значения NULL и имеет значение по умолчанию, равное 30.

MaxTotalTime

Максимально допустимая продолжительность маршрута. Продолжительность (длительность) маршрута включает в себя значения времени в пути, а также времени обслуживания и ожидания на заказах, на станциях и в перерывах. Это поле может содержать значения null; значение null указывает на отсутствие ограничений на продолжительность маршрута.

Единицы измерения для значения данного поля задается параметром Единицы поля времени (time_units в Python).

MaxTotalTravelTime

Максимально допустимое время в пути для маршрута. Время в пути включает только время, проведенное за рулем, и не включает время обслуживания или ожидания.

Это поле может содержать значения NULL; значение NULL соответствует отсутствию ограничений по максимально допустимому времени передвижения по маршруту. Значение данного поля не может быть больше значения поля MaxTotalTime.

Единицы измерения для значения данного поля задается параметром Единицы поля времени (time_units в Python).

MaxTotalDistance

Максимально допустимое расстояние для маршрута.

Единица измерения для данного значения поля указывается параметром Единицы поля расстояния (distance_units для Python).

Это поле может содержать значения null; значение null соответствует отсутствию ограничений по максимально допустимому расстоянию маршрута.

SpecialtyNames

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

Это поле является внешним ключом для поля SpecialtyNames в параметре Заказы.

Для иллюстрации того, что такое специальные требования, и как они работают, предположим, что у компании по уходу за газонами и подрезанию деревьев имеется часть заказов, которые требуют применения автоподъемника с люлькой для обрезки высоких деревьев. Компания введет BucketTruck в поле SpecialtyNames для данных заказов, чтобы указать на наличие специального требования. SpecialtyNames будет оставлено пустым для других заказов. Аналогичным образом, компания введет BucketTruck в поле SpecialtyNames маршрутов, выполняемых грузовиками с гидравлическими стрелами-манипуляторами. Для остальных маршрутов данное поле останется пустым (NULL). Во время решения механизм расчета VRP назначает заказы без особых требований для любого маршрута, но назначает заказы, для которых требуются автовозы, только маршрутам, в которых они есть.

AssignmentRule

Определяет, может ли маршрут быть использован для решения задачи. Это поле ограничено доменом значений, и возможны следующие значения:

  • Включить – Маршрут включен в решение. Это значение используется по умолчанию.
  • Исключить – Маршрут исключен из решения.

Record Set
breaks

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

Набор записей перерыва имеет связанные атрибуты. Поля в таблице атрибутов описаны ниже.

ObjectID

Управляемое системой поле ID.

RouteName

Название маршрута, для которого применяется перерыв. Хотя перерыв назначается ровно одному маршруту, одному и тому же маршруту может быть назначено множество перерывов.

Это поле является внешним ключом для поля Name в классе Маршруты, и его значение не может иметь значение null.

Precedence

Значения приоритета определяют последовательность перерывов для заданного маршрута. Перерывы со значением приоритета 1 происходят перед перерывами со значением 2 и так далее.

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

ServiceTime

Продолжительность перерыва. Это поле не может содержать значения NULL и имеет значение по умолчанию, равное 60.

Единицы измерения для значения данного поля задается параметром Единицы поля времени (time_units в Python).

TimeWindowStart

Время начала временного окна перерыва. Полуоткрытые временные окна некорректны для перерывов.

Если данное поле содержит значение, то MaxTravelTimeBetweenBreaks и MaxCumulWorkTime должны быть пустыми (null); более того, все остальные перерывы в слое анализа должны иметь значения null для параметров MaxTravelTimeBetweenBreaks и MaxCumulWorkTime.

Ошибка возникнет во время решения, если на маршруте есть несколько перерывов с перекрывающимися временными окнами.

Поля временных окон могут содержать только значение времени или даты и времени, они не могут быть целыми числами, представляющими миллисекунды с начала Эпохи. Часовой пояс для полей временного окна задается с помощью параметра Использование часового пояса для полей времени (time_zone_usage_for_time_fields в Python). Если поле времени, например, TimeWindowStart, содержит значение только времени (например, 12:00 пополудни), то используется дата, которая была задана параметром Дата по умолчанию (default_date в Python). С помощью значений даты и времени (например, 7/11/2012 12:00 p.m.) можно задавать временные окна, которые могут охватывать два и более дней. Это удобно, если перерыв следует сделать в районе полуночи.

Дата по умолчанию игнорируется, когда поле временного окна содержит дату и время. Для предотвращения этой ошибки форматируйте все временные окна для Станций, Маршрутов, Заказов и Перерывов чтобы они также включали дату и время.

TimeWindowEnd

Время окончания временного окна перерыва. Полуоткрытые временные окна некорректны для перерывов.

Если данное поле содержит значение, то MaxTravelTimeBetweenBreaks и MaxCumulWorkTime должны быть пустыми (null); более того, все остальные перерывы в слое анализа должны иметь значения null для параметров MaxTravelTimeBetweenBreaks и MaxCumulWorkTime.

MaxViolationTime

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

Нулевое значение указывает, что временное окно не может быть нарушено; то есть, это окно является жестким. Ненулевое значение указывает максимальное время опоздания. Например, перерыв может начаться через 30 минут после окончания выделенного ему временного окна, но штраф за опоздание рассчитывается в соответствии с параметром Значимость превышения временного окна (time_window_factor в Python).

Это свойство может быть пустым (null); значение null в значениях TimeWindowStart и TimeWindowEnd соответствует отсутствию ограничений по допустимому времени нарушения. Если MaxTravelTimeBetweenBreaks или MaxCumulWorkTime имеют значение, MaxViolationTime должно быть null.

Единицы измерения для значения данного поля задается параметром Единицы поля времени (time_units в Python).

MaxTravelTimeBetweenBreaks

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

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

Это поле ограничения продолжительности работы водителя, прежде чем ему потребуется перерыв. Например, если для параметра Единицы поля времени (time_units в Python) в настройках анализа установлено значение Минуты и у MaxTravelTimeBetweenBreaks указано значение 120, то у водителя будет перерыв через два часа вождения. Чтобы назначить второй перерыв еще через два часа вождения, значение в поле MaxTravelTimeBetweenBreaks для второго перерыва должно быть равным 120.

Если данное поле содержит значение, то TimeWindowStart, TimeWindowEnd, MaxViolationTime и MaxCumulWorkTime должны быть null для успешного выполнения анализа.

Единицы измерения для значения данного поля задается параметром Единицы поля времени (time_units в Python).

MaxCumulWorkTime

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

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

Это поле ограничения продолжительности работы человека, прежде чем потребуется перерыв. Например, если для параметра Единицы поля времени (time_units в Python) выбрано значение Минуты, для параметра MaxCumulWorkTime выбрано значение 120, а для ServiceTime значение 15, то у водителя будет 15-минутный перерыв через два часа вождения.

Продолжая рассматривать последний пример, предположим, что второй перерыв должен начаться через три часа работы. Для указания данного перерыва необходимо ввести значение 315 (пять часов и 15 минут) в значение MaxCumulWorkTime второго перерыва. Данное значение включает в себя MaxCumulWorkTime и ServiceTime предыдущего перерыва, а также три дополнительных часа работы до второго перерыва. Чтобы избежать преждевременных перерывов на максимальное рабочее время, помните, что они накапливают рабочее время с начала маршрута и что рабочее время включает время обслуживания на ранее посещенных станциях, заказы и перерывы.

Если данное поле содержит значение, то TimeWindowStart, TimeWindowEnd, MaxViolationTime и MaxTravelTimeBetweenBreaks должны быть null для успешного выполнения анализа.

Единицы измерения для значения данного поля задается параметром Единицы поля времени (time_units в Python).

IsPaid

Булево значение, указывающее, будет ли перерыв оплачиваемым или нет. Значение Да (True) определяет, что время, затраченное на перерыв, включается в расчет затрат маршрута и определение сверхурочных. Значение Нет (False) определяет обратное. По умолчанию используется значение Да (True).

Sequence

Являясь входным, данное поле показывает последовательность перерыва на его маршруте. Это поле может содержать значения NULL. Значения входной последовательности являются положительными и уникальными для каждого маршрута (распределенного среди посещений станций, заказов и перерывов), но не обязаны начинаться с 1 или быть последовательными.

Механизм расчета изменяет поле последовательности. После решения данное поле содержит значение последовательности перерыва на его маршруте. Выходные значения последовательности для маршрута едины для посещений станций, заказов и перерывов; начинаются с 1 (на начальной станции); и являются последовательными.

Record Set
time_units

Задает единицы измерения времени, используемые для всех значений времени в анализе.

  • SecondsЕдиницами времени будут секунды.
  • MinutesЕдиницами времени будут минуты.
  • HoursЕдиницами времени будут часы.
  • DaysЕдиницами времени будут дни.

Многие объекты и записи в анализе VRP содержат поля для записи значений времени, например, ServiceTime для заказов и CostPerUnitTime - для маршрутов. Для сокращения требований по вводу данных эти поля не должны включать в себя единицы. Все значения времени должны вводиться в одних и тех же единицах, и данный параметр используется для указания единиц этих значений.

Выходные поля на основании времени используют единицы, указанные данным параметром.

Данная единица времени не обязана совпадать с единицей времени параметра сети Атрибут времени (time_attribute в Python).

String
distance_units

Задает единицы измерения расстояния, которые будет использоваться во всех полях расстояний в анализе.

  • MilesЕдиницами измерения расстояния будут мили.
  • KilometersЕдиницами измерения расстояния будут километры.
  • FeetЕдиницами измерения расстояния будут футы.
  • YardsЕдиницами измерения расстояния будут ярды.
  • MetersЕдиницами измерения расстояния будут метры.
  • NauticalMilesЕдиницами измерения расстояния будут морские мили.

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

Выходные поля с расстояниями используют единицы, определяемые данным параметром.

Данная единица расстояния необязательно должна совпадать с единицей расстояния сети Атрибут расстояния (distance attribute в Python).

String
network_dataset

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

Network Dataset Layer
output_workspace_location

Файловая база геоданных или рабочая область in-memory, в которой создаются выходные классы пространственных объектов. Рабочая область должна существовать. Выходная рабочая область по умолчанию – в оперативной памяти.

Workspace
output_unassigned_stops_name

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

String
output_stops_name

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

String
output_routes_name

Имя класса пространственных объектов, которое будет содержать маршруты анализа.

String
output_directions_name

Имя класса пространственных объектов, который будет содержать путевые листы для маршрутов.

String
default_date
(Дополнительный)

Дата по умолчанию для значений полей времени, в которых указывается время в течение дня без указания даты.

Date
uturn_policy
(Дополнительный)

Определяет правила разворотов, которые будут использоваться на перекрестках. Разрешение разворотов подразумевает возможность развернуться на перекрестке и продолжить движение назад по той же улице. Учитывая, что соединения представляют собой пересечения улиц и тупики, различные транспортные средства могут разворачиваться на некоторых соединениях, но не на всех – это зависит от того, является ли соединение перекрестком или тупиком. Чтобы учесть это, поведение при развороте неявно определяется числом ребер, которые соединяются с соединением, т.е. валентностью соединения. Ниже приведены допустимые значения для данного параметра; каждое из них сопровождается описанием значения в терминах валентности соединения.

  • ALLOW_UTURNSРазвороты разрешены в соединениях с любым количеством смежных ребер. Это значение используется по умолчанию.
  • NO_UTURNSРазвороты запрещены во всех соединениях, вне зависимости от их валентности. Однако даже если эта опция выбрана, развороты в сетевых положениях по-прежнему разрешены, но вы можете запретить развороты в отдельных сетевых положениях с помощью свойства местоположения CurbApproach.
  • ALLOW_DEAD_ENDS_ONLYРазвороты запрещены во всех соединениях, кроме тех, у которых имеется только одно смежное ребро (тупик).
  • ALLOW_DEAD_ENDS_AND_INTERSECTIONS_ONLYРазвороты запрещены в соединениях с ровно двумя смежными ребрами, но разрешены на перекрестках (в соединениях с тремя смежными ребрами или более) и в тупиках (соединениях с ровно одним смежным ребром). Часто сети имеют избыточные соединения в середине сегмента дороги. Эта опция позволяет запретить развороты транспортных средств в таких местах.

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

Значение этого параметра перезаписывается, если для Режима передвижения (travel_mode в Python) установлено значение, отличное от Пользовательский.

String
time_window_factor
(Дополнительный)

Задает уровень значимости, который будет использоваться для временных окон.

  • LowБолее высокая значимость будет придана сокращению времени в пути и более низкая – прибытию на остановки в указанное время. Эта опция применяется при накоплении отставания в обработке заказов. Для обработки как можно большего количества заказов в день и сокращения отставания можно выбрать данный параметр несмотря на то, что клиенты могут испытывать неудобства из-за позднего прибытия транспортных средств.
  • MediumБудет соблюден баланс между сокращением времени в пути и соблюдением временных окон при прибытии. Это значение используется по умолчанию.
  • HighБолее высокая значимость будет установлена для прибытия на остановки в указанное время и менее высокая – для сокращения времени в пути. Этот вариант подойдет организациям, выполняющим доставки, критичные ко времени или связанным с обслуживанием клиентов.
String
spatially_cluster_routes
(Дополнительный)

Определяет, будут ли заказы пространственно кластеризованы.

  • CLUSTERЗаказы, назначенные отдельному маршруту будут пространственно кластеризованы. Деление заказов на кластеры приводит к сохранению маршрутов в небольших областях и сокращает частоту пересечения линий маршрутов, при этом деление на кластеры также приводит к увеличению общего времени в пути. Используется по умолчанию.
  • NO_CLUSTERЗаказы не будут пространственно кластеризоваться, и линии маршрута могут пересекаться. Используйте эту опция, если заданы зоны маршрутов.
Boolean
route_zones
(Дополнительный)

Очерчивает рабочие территории для заданных маршрутов. Зона маршрута – это полигональный пространственный объект, который используется для ограничения маршрутов обслуживанием только тех заказов, которые находятся в пределах указанной области или вблизи нее. Вот несколько примеров, когда зоны маршрутов могут быть полезны:

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

Набор объектов зон маршрутов имеет связанную таблицу атрибутов. Поля в таблице атрибутов описаны ниже.

ObjectID

Управляемое системой поле ID.

Shape

Поле геометрии, указывающее географическое положение объекта сетевого анализа.

RouteName

Название маршрута, для которого применяется данная зона. Зона маршрута может иметь не более одного связанного маршрута. Это поле не может содержать пустые значения, и оно является внешним ключом для поля Name в классе объектов Маршруты.

IsHardZone

Двоичное значение, определяющее гибкую или жесткую зону маршрута. Значение Да (True) определяет жесткую зону; это означает, что заказ, выходящий за пределы полигона зоны маршрута, не может быть назначен этому маршруту. По умолчанию используется значение Истина (1). Значение Ложь (0) определяет, что такие заказы все еще могут быть назначены, но стоимость обслуживания заказа взвешена на основании функции евклидова расстояния от зоны маршрута. По сути, это означает, что по мере увеличения расстояния по прямой от гибкой зоны до заказа вероятность того, что заказ будет назначен маршруту, уменьшается.

Feature Set
route_renewals
(Дополнительный)

Промежуточные станции, которые могут посещаться на маршруте для догрузки и выгрузки доставляемых или собираемых грузов. Обновление связывает маршрут со станцией. Связь указывает, что на маршруте может производиться обновление (догрузка или выгрузка на маршруте) на связанной станции.

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

Вот несколько правил и вариантов выбора, которые также следует учитывать при работе с исходными точками маршрутов:

  • Пункт догрузки/выгрузки (место пополнения загрузки) может отличаться от начальной и конечной станций.
  • У каждого маршрута может быть одно или несколько заранее определенных мест пополнения.
  • Место пополнения загрузки может использоваться на одном маршруте несколько раз.
  • В некоторых случаях при наличии нескольких потенциальных мест пополнения загрузки для маршрута механизм расчет определяет ближайшее доступное из них.

Набор записей обновлений маршрута имеет связанные атрибуты. Поля в таблице атрибутов описаны ниже.

ObjectID

Управляемое системой поле ID.

DepotName

Имя станции, в которой происходит такое обновление. Это поле не может содержать значение null, и оно является внешним ключом для поля Name в классе объектов Станции.

RouteName

Название маршрута, к которому применяется данное обновление. Это поле не может содержать значение null, и оно является внешним ключом для поля Name в классе объектов Маршруты.

ServiceTime

Время обслуживания для обновления. Это поле может содержать пустое значение; пустое значение соответствует нулевому времени обслуживания.

Единица измерения для значения данного поля задается свойством Единицы поля времени для слоя анализа.

Примечание:

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

Record Set
order_pairs
(Дополнительный)

Пары заказов сбора и доставки, которые обслуживаются на одном маршруте.

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

Набор записей пар заказов имеет связанные атрибуты. Поля в таблице атрибутов описаны ниже.

ObjectID

Управляемое системой поле ID.

FirstOrderName

Имя первого заказа в паре. Это поле является внешним ключом для поля Name в векторном слое Заказы.

SecondOrderName

Имя второго заказа в паре. Это поле является внешним ключом для поля Name в векторном слое Заказы.

Первый заказ в паре должен быть заказом сбора, это означает, что значение поля DeliveryQuantities для него null. Второй заказ в паре должен быть заказом доставки, это означает, что значение поля PickupQuantities для него null. Количество, которое собирается в первом заказе, должно соответствовать количеству, поставляемому во втором заказе. В отдельном случае оба заказа могут иметь нулевые количества для случаев, когда емкости не используются.

Примечание:

Заказы не загружаются и не разгружаются на станциях.

MaxTransitTime

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

Единица измерения для значения данного поля задается свойством Единицы поля времени для слоя анализа.

Механизмом расчета может отслеживаться и учитываться лишнее время в пути (измеряемое с учетом непосредственного времени в пути между парами заказов). По этой причине можно задать для механизма решения задачи выбора маршрута транспорта один из трех подходов: минимизировать общее лишнее время в пути, независимо от увеличения стоимости пути для парка; найти решение, балансирующее общее время нарушений и стоимость пути; или игнорировать общее лишнее время в пути и вместо этого минимизировать стоимость пути для парка. Назначая уровень значимости для параметра Значимость избыточного времени нахождения в пути (excess_transit_factor в Python), вы фактически выбираете один из этих трех подходов. Независимо от уровня значимости, механизм расчета всегда будет возвращать ошибку при превышении значения свойства MaxTransitTime.

Record Set
excess_transit_factor
(Дополнительный)

Задает уровень важности сокращения избыточного времени в пути для пар заказов. Избыточное время в пути – это затрачиваемое сверх необходимого время для перемещения от одного заказа к другому. Избыточное время в пути может быть вызвано перерывами в работе водителя или движением к промежуточным заказам и станциям.

  • LowБольшое значение будет придано минимизации общей стоимости, независимо от избыточного времени в пути. Этот вариант обычно используется курьерской службой. Поскольку курьерская служба перевозит грузы, а не людей, ей не нужно особенно заботиться о времени в пути. Такая возможность позволяет курьерской службе обрабатывать парные заказы в должной очередности с минимальными общими затратами.
  • MediumЗначимость сокращения избыточного времени нахождения в пути будет сбалансирована с сокращением общей стоимости решения. Это значение используется по умолчанию.
  • HighБольшая значимость будет придана минимальному времени нахождения в пути между спаренными заказами и меньшая - полной стоимости решения. Эта опция используется при перевозке людей между парными заказами, и вы хотите сократить время их поездки. Это характеристика сервисов такси
String
point_barriers
(Дополнительный)

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

ObjectID:

Управляемое системой поле ID.

Shape:

Поле геометрии, показывающее географическое положение объекта сетевого анализа.

Name:

Имя барьера.

BarrierType:

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

  • Ограничение (0) – запрещает перемещение через барьер. Это значение используется по умолчанию.
  • Дополнительная стоимость (2) – Прохождение через барьер увеличивает сетевую стоимость на значение, указанное в полях Additional_Time и Additional_Distance.

Additional_Time:

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

Единицы измерения для значения данного поля задается свойством Единицы поля времени для слоя анализа.

Additional_Distance:

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

Единица измерения для значения данного поля указывается параметром Единицы поля расстояния.

Feature Set
line_barriers
(Дополнительный)

Определяет линейные барьеры, которые временно ограничивают прохождение через них. Линейные барьеры определяются набором объектов. Ниже приведены поля в таблице атрибутов с описанием.

ObjectID:

Управляемое системой поле ID.

Shape:

Поле геометрии, показывающее географическое положение объекта сетевого анализа.

Name:

Имя барьера.

Feature Set
polygon_barriers
(Дополнительный)

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

ObjectID:

Управляемое системой поле ID.

Shape:

Поле геометрии, показывающее географическое положение объекта сетевого анализа.

Name:

Имя барьера.

BarrierType:

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

  • Ограничение (0) – запрещает прохождение через любую часть барьера. Это значение используется по умолчанию.
  • Масштабированная стоимость (1) – масштабирует импеданс для расположенных снизу ребер путем их умножения на значение свойства Attr_[Impedance]. Если ребра частично перекрыты барьером, будет умножаться пропорциональная доля импеданса.

Scaled_Time:

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

Scaled_Distance:

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

Feature Set
time_attribute
(Дополнительный)

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

Значение этого параметра перезаписывается, если для Режима передвижения (travel_mode в Python) установлено значение, отличное от Пользовательский.

String
distance_attribute
(Дополнительный)

Сетевой атрибут стоимости, который будет использоваться для определения расстояния по элементам сети.

Значение этого параметра перезаписывается, если для Режима передвижения (travel_mode в Python) установлено значение, отличное от Пользовательский.

String
use_hierarchy_in_analysis
(Дополнительный)
  • USE_HIERARCHYПри анализе будет использоваться атрибут иерархии. Применение иерархии приводит при расчете к предпочтению ребер высшего порядка по сравнению с ребрами низшего порядка. Расчеты с иерархией выполняются быстрее, и они могут использоваться для моделирования предпочтений водителя, который скорее выберет для проезда автостраду, нежели местную дорогу – даже если это приведет к увеличению длины пути. Данная опция доступна, если входной набор сетевых данных имеет атрибут иерархии.
  • NO_HIERARCHYПри анализе не будет использоваться атрибут иерархии. Если иерархия не используется, результатом является точный маршрут для набора сетевых данных.

Параметр не используется, если в наборе сетевых данных, используемом для выполнения анализа, не задан атрибут иерархии.

Значение этого параметра перезаписывается, если для Режима передвижения (travel_mode в Python) установлено значение, отличное от Пользовательский.

Boolean
restrictions
[restriction,...]
(Дополнительный)

Определяет, какие сетевые атрибуты ограничения будут учитываться во время расчета.

Значение этого параметра перезаписывается, если для Режима передвижения (travel_mode в Python) установлено значение, отличное от Пользовательский.

String
attribute_parameter_values
(Дополнительный)

Определяет значения параметра для атрибутов сети, имеющих параметры. Набор записей имеет два столбца, которые используются вместе для уникальной идентификации параметров, а также другой столбец, который определяет значение параметра.

Значение этого параметра перезаписывается, если для Режима передвижения (travel_mode в Python) установлено значение, отличное от Пользовательский.

Набор записей значений параметра атрибута имеет связанные атрибуты. Ниже приведены поля в таблице атрибутов с описанием.

ObjectID:

Управляемое системой поле ID.

AttributeName:

Имя сетевого атрибута, чей параметр атрибута задан строкой таблицы.

ParameterName:

Имя параметра атрибута, чье значение задано строкой таблицы. (Параметры типа объекта не могут быть обновлены с помощью данного инструмента.)

ParameterValue:

Значение, которое вы хотите задать для параметра атрибута. Если значение не указано, для параметра атрибута устанавливается значение NULL.

Record Set
maximum_snap_tolerance
(Дополнительный)

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

Linear Unit
exclude_restricted_portions_of_the_network
(Дополнительный)

Задает размещение сетевых местоположений.

  • EXCLUDEСетевые положения будут размещены только на проходимых участках сети. Это предотвратит размещение сетевых положений на элементах, которых нельзя достичь из-за ограничений или барьеров. Чтобы получить ожидаемые результаты, перед добавлением своих сетевых местоположений с использованием этого параметра, убедитесь в том, что в слой сетевого анализа уже добавлены все ограничивающие барьеры. Этот параметр не применяется при добавлении объектов барьеров. В таких случаях в качестве значения параметра используйте "#".
  • INCLUDEСетевые положения будут размещены на всех элементах сети. Сетевые положения, добавляемые с использованием этого параметра, могут быть недоступны в процессе решения, если они размещены на ограниченных элементах.
Boolean
feature_locator_where_clause
[[dataset_name, SQL_Query],...]
(Дополнительный)

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

Value Table
populate_route_lines
(Дополнительный)

Задает генерацию линий, отображающих истинную геометрию маршрутов.

  • NO_ROUTE_LINESДля выходных маршрутов форма не создается. Вы не сможете создавать путевые листы, если линии маршрута не создаются.
  • ROUTE_LINESПолученные маршруты будут иметь точную форму лежащих в основе источников сети.
Boolean
route_line_simplification_tolerance
(Дополнительный)

Упрощенная протяженность геометрии маршрута.

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

Значение этого параметра перезаписывается, если для Режима передвижения (travel_mode в Python) установлено значение, отличное от Пользовательский.

Linear Unit
populate_directions
(Дополнительный)

Задает, будут ли создаваться направления.

  • DIRECTIONSНаправления будут создаваться. Класс пространственных объектов, указанный в параметре output_directions_name, заполняется инструкциями для последовательных поворотов на каждом маршруте. Набор сетевых данных должен поддерживать направления движения; в противном случае во время расчетов направлений произойдет ошибка.
  • NO_DIRECTIONSПутевой лист не будет создан.
Boolean
directions_language
(Дополнительный)

Язык, на котором создаются направления. Список языков, доступных в раскрывающемся меню, зависит от установленных на компьютере языковых пакетов ArcGIS.

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

String
directions_style_name
(Дополнительный)

Задает стиль форматирования, который будет использоваться для путевого листа.

  • NA DesktopПутевой лист будет в формате, доступном для печати.
  • NA NavigationЭто будет пошаговый путевой лист, созданный для автомобильного навигационного устройства.
  • NA CampusЭто будет пошаговый пешеходный путевой лист, разработанный для пешеходных маршрутов.
String
save_output_layer
(Дополнительный)

Задает, будут ли выходные данные содержать слой сетевого анализа с результатами.

  • NO_SAVE_OUTPUT_LAYERВ выходные данные не включается слой сетевого анализа с результатами.
  • SAVE_OUTPUT_LAYERВ выходные данные включается слой сетевого анализа с результатами.

В любом случае возвращаются автономные таблицы и классы объектов. Администратор сервера может выбрать вывод слоя сетевого анализа, с тем чтобы настройку и результаты работы инструмента можно было отладить с использованием средств управления Network Analyst в среде ArcGIS Desktop. Это упрощает процесс отладки.

В ArcGIS Desktop по умолчанию выходное местоположение слоя сетевого анализа находится во временной рабочей области, на одном уровне с временной базой геоданных, то есть он хранится как одноуровневый элемент временной базы геоданных. Выходной слой сетевого анализа хранится в виде файла .lyr, имя которого начинается с _ags_gpna, а затем следует буквенно-числовое значение GUID.

Boolean
service_capabilities
[[String, {Long}],...]
(Дополнительный)

Задает максимальный объем вычислительных ресурсов, выделяющихся при работе данного инструмента в качестве сервиса геообработки. Вы можете использовать этот параметр, чтобы избежать решения сервером задач, которые требуют больше ресурсов или времени на обработку, либо чтобы создать несколько сервисов с различными возможностями VRP для поддержки ваших бизнес-задач. Например, если у вас имеется бизнес-модель, привязанная к сервису, вы можете предоставить бесплатный VRP-сервис, который поддерживает расчет максимум пяти маршрутов, и второй сервис, платный, поддерживающий расчет более пяти маршрутов.

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

  • MAXIMUM POINT BARRIERSОграничьте максимально возможное число точечных барьеров. В случае превышения этого значения возвращается ошибка. Значение null показывает, что предел отсутствует.
  • MAXIMUM FEATURES INTERSECTING LINE BARRIERSОграничьте максимальное количество исходных объектов, которое может быть пересечено всеми линейными барьерами в анализе. В случае превышения этого значения возвращается ошибка. Значение null показывает, что предел отсутствует.
  • MAXIMUM FEATURES INTERSECTING POLYGON BARRIERSОграничивает максимальное количество исходных объектов, которые могут быть пересечены всеми полигональными барьерами в анализе. В случае превышения этого значения возвращается ошибка. Значение null показывает, что предел отсутствует.
  • MAXIMUM ORDERSОграничивает максимальное число заказов, разрешенное в анализе. В случае превышения этого значения возвращается ошибка. Значение null показывает, что предел отсутствует.
  • MAXIMUM ROUTESОграничивает максимальное число маршрутов, разрешенное в анализе. В случае превышения этого значения возвращается ошибка. Значение null показывает, что предел отсутствует.
  • FORCE HIERARCHY BEYOND DISTANCEОграничивает максимальное расстояние по прямой между заказами перед расчетом маршрута транспорта с использованием сетевой иерархии. Для этого значения применяются те же единицы, что и единицы параметра Единицы поля расстояния.Если сеть не имеет атрибута иерархии, то данное ограничение игнорируется. Если установлена метка Использовать иерархию в анализе, иерархия используется всегда. Если параметр Использовать иерархию в анализе не включен и данное ограничение имеет нулевое значение, то иерархия не применяется.
  • MAXIMUM ORDERS PER ROUTEОграничивает максимальное число заказов, которое может быть назначено каждому маршруту. В случае превышения этого значения возвращается ошибка. Значение null показывает, что предел отсутствует.
Value Table
ignore_invalid_order_locations
(Дополнительный)

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

  • HALTРешения не будет при наличии недействительных заказов. Некорректный заказ – это заказ, который невозможно достичь при расчете VRP. Заказ может быть недоступен по различным причинам, например, если он расположен на запрещенном для проезда элементе сети, не находится в сети вообще или размещен в отсоединенном сегменте сети. Это значение по умолчанию, эквивалентное логическому false.
  • SKIPНекорректные заказы будут игнорироваться, и решение будет возвращено в случае отсутствия других ошибок.Если вам нужно быстро создать маршруты и передать их водителям, просто проигнорируйте некорректные заказы, постройте маршруты и отправьте их водителям. После этого решите проблемы с неправильным размещением заказов и включите их в анализ VRP для следующего рабочего дня или смены. Это значение по умолчанию, эквивалентное логическому true.
Boolean
travel_mode
(Дополнительный)

Выберите режим передвижения для анализа. CUSTOM можно выбрать всегда. Чтобы появились другие режимы, они должны быть представлены в наборе сетевых данных в параметре Network_Dataset. (Функция arcpy.na.GetTravelModes содержит словарь объектов режима движения для класса сетевых объектов, а свойство name возвращает имя объекта режима передвижения.)

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

  • uturn_policy
  • time_attribute
  • distance_attribute
  • use_hierarchy_in_analysis
  • restrictions
  • attribute_parameter_values
  • route_line_simplification_tolerance

  • CUSTOMОпределите режим, соответствующий вашим нуждам. При выборе режима CUSTOM инструмент не перезаписывает параметры режима, перечисленные выше. Это значение используется по умолчанию.
String
ignore_network_location_fields
(Дополнительный)

Задает, будут ли рассматриваться поля в сетевом местоположении при местонахождении заказов, стоянок или барьеров в сети.

  • IGNOREПоля сетевого местоположения не будут учитываться при нахождении входных данных в сети. Вместо этого входные всегда будут находиться с помощью пространственного поиска.
  • HONORПоля сетевого местоположения будут учитываться при нахождении вводных данных в сети. Это значение используется по умолчанию.
Boolean
time_zone_usage_for_time_fields
(Дополнительный)

Указывает часовой пояс для следующих входных полей даты-времени, поддерживаемых инструментом: TimeWindowStart1, TimeWindowEnd1, TimeWindowStart2, TimeWindowEnd2, InboundArriveTime и OutboundDepartTime для заказов; TimeWindowStart1, TimeWindowEnd1, TimeWindowStart2 и TimeWindowEnd2 для станций; EarliestStartTime и LatestStartTime для маршрутов; TimeWindowStart и TimeWindowEnd для перерывов.

  • GEO_LOCALЗначения даты-времени, связанные с заказами или станциями, приводятся в том же часовом поясе, где они находятся. Для маршрутов значения даты-времени основываются на часовом поясе, в котором расположено начальная станция маршрута. Если у маршрута нет исходной станции, то все заказы и станции на всех маршрутах должны быть в одном часовом поясе. Для остановок значения даты-времени основываются на часовом поясе маршрута. Например, если станция находится в часовом поясе восточного стандартного времени и для нее заданы первые значения временных окон (указаны как TimeWindowStart1 и TimeWindowEnd1) 08:00 и 17:00, то значениями временных окон будут считаться 08:00 и 17:00 по восточному стандартному времени.
  • UTCЗначения даты-времени, связанные с заказами или станциями, находятся в универсальном координированном времени UTC, и не основаны на часовом поясе, где находятся заказы или станции. Например, если станция расположена в зоне восточного стандартного времени и имеет значение первого временного окна (указано как TimeWindowStart1 и TimeWindowEnd1) 08:00 и 17:00, соответственно, то значениями временных окон будут считаться 12:00 дня и 21:00 по летнему восточному стандартному времени.

Указание значений даты-времени по времени UTC особенно полезно, когда не известен часовой пояс, в котором расположены заказы или станции, или когда они расположены в нескольких часовых поясах, а вы хотите, чтобы все значения даты-времени были синхронизированы. Опция UTC применяется только в случае, когда атрибут часового пояса определяется набором сетевых данных. Во всех других случаях все значения даты-времени всегда считаются как Geo local (GEO_LOCAL в Python).

String
overrides
(Дополнительный)

Примечание:

Этот параметр предназначен только для внутреннего использования.

String
save_route_data
(Дополнительный)

Определяет, будет ли сохранен файл .zip, содержащий файловую базу геоданных со входными и выходными данными анализа в формате, который можно использовать для публикации слоев маршрутов в ArcGIS Online или ArcGIS Enterprise.

В ArcGIS Desktop выходное местоположение данного выходного файла – это временная папка. Вы можете определить местоположение временной папки с помощью arcpy.env.scratchFolder.

  • SAVE_ROUTE_DATAБудет сохранен файл архива .zip, содержащий рабочую область файловой базы геоданных, в которой хранятся входные и выходные данные анализа.
  • NO_SAVE_ROUTE_DATAДанные маршрута не будут сохранены. Используется по умолчанию.
Boolean

Производные выходные данные

ИмяОписаниеТип данных
solve_succeeded

Логическое значение, указывающее успешность выполнения анализа расчета задачи выбора маршрута транспорта.

Boolean
out_unassigned_stops

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

Table
out_stops

Таблица предоставляет информацию об остановках, сделанных на станциях, на заказах и в перерывах.

Table
out_routes

Класс объектов, который представляет водителей, транспортные средства и маршруты транспортных средств для задачи выбора маршрута.

Feature Class
out_directions

Пошаговые инструкции, которые помогают водителям следовать назначенным маршрутам.

Feature Class
out_network_analysis_layer

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

File
out_route_data

Файл .zip, содержащий всю информацию для определенного маршрута.

File

Пример кода

SolveVehicleRoutingProblem, пример 1 (окно Python)

Выполнить инструмент с использованием только обязательных параметров.

import arcpy
orders = arcpy.FeatureSet()
orders.load("Stores")
depots = arcpy.FeatureSet()
depots.load("DistributionCenter")
routes = arcpy.RecordSet()
routes.load("RoutesTable")
arcpy.na.SolveVehicleRoutingProblem(orders, depots, routes, "","Minutes",
                                    "Miles", "Streets_ND")
SolveVehicleRoutingProblem, пример 2 (автономный скрипт)

В следующем автономном скрипте Python показано, как можно использовать функцию SolveVehicleRoutingProblem для выполнения заказов посредством транспортных средств.

# Name: SolveVehicleRoutingProblem_Workflow.py
# Description: Find the best routes for a fleet of vehicles, which is operated 
#              by a distribution company, to deliver goods from a main 
#              distribution center to a set of grocery stores.
# Requirements: Network Analyst Extension 

#Import system modules
import arcpy
from arcpy import env
import datetime

try:
    #Check out Network Analyst license if available. Fail if the Network Analyst license is not available.
    if arcpy.CheckExtension("network") == "Available":
        arcpy.CheckOutExtension("network")
    else:
        raise arcpy.ExecuteError("Network Analyst Extension license is not available.")
    
    #Set environment settings
    env.workspace = "C:/data/SanFrancisco.gdb"
    env.overwriteOutput = True
    
    #Set local variables
    inNetworkDataset = "Transportation/Streets_ND"
    impedanceAttribute = "TravelTime"
    timeUnits = "Minutes"
    distanceUnits = "Miles"
    inOrders = "Analysis/Stores"
    inDepots = "Analysis/DistributionCenter"
    inRoutes = "RoutesTable"
    outGeodatabase = "C:\data\output\VRPOutputs.gdb"
    
    #Create two new feature sets and one record set with same schema as
    #Orders, Deopts and Routes parameter in Solve Vehicle Routing Problem tool.
    #Load the feature from the existing feature classes and table in the feature
    #set. Note that Solve Vehicle Routing Problem tool does not provide a way to
    #map field names between your input feature classes and table and the
    #feature set or record set parameters. To ensure that the attributes are
    #correctly transfered, the input feature classes and table must have same
    #field names as the feature sets and record sets.
    orders = arcpy.GetParameterValue("SolveVehicleRoutingProblem_na",0)    
    orders.load(inOrders)
    depots = arcpy.GetParameterValue("SolveVehicleRoutingProblem_na",1)    
    depots.load(inDepots)
    routes = arcpy.GetParameterValue("SolveVehicleRoutingProblem_na",2)    
    routes.load(inRoutes)
    
    #Call the SolveVRP tool and store the results in the result object
    result = arcpy.na.SolveVehicleRoutingProblem(orders,depots, routes,"",
                                                 timeUnits, distanceUnits,
                                                 inNetworkDataset, outGeodatabase,
                                                 populate_directions="DIRECTIONS")
    
    #print the solve status and output any warning messages from tool execution
    solveSucceeded = result.getOutput(0)
    print("Solve Succeeded: {0}".format(solveSucceeded))
    print("Messages from solver are printed below.")
    print(result.getMessages(1))
    
    print("Script completed successfully")

except Exception as e:
    # If an error occurred, print line number and error message
    import traceback, sys
    tb = sys.exc_info()[2]
    print("An error occurred on line %i" % tb.tb_lineno)
    print(str(e))

Информация о лицензиях

  • Basic: Обязательно Network Analyst
  • Standard: Обязательно Network Analyst
  • Advanced: Обязательно Network Analyst