Доступно с лицензией Network Analyst.
В этом упражнении будут найдены наиболее оптимальные маршруты для автопарка дистрибьюторской компании для доставки товаров из центра распределения в 25 розничных магазинов. У каждого магазина есть определенные потребности в товаре, и у каждого грузовика есть ограниченная вместимость товара. Основная цель – подобрать грузовики из автопарка под определенный набор магазинов и распределить доставки таким образом, чтобы снизить общие транспортные расходы.
В этом заключается решение задачи нахождения маршрута транспорта (VRP). Когда последовательность доставки будет определена, будут созданы пошаговые путевые листы итоговых маршрутов, которые можно отправить электронным способом или распечатать и передать водителям, работающим на маршрутах доставки.
Получение данных
Данные для этого учебного руководства доступны для скачивания.
- Перейдите на страницу скачивания данных.
- Щелкните Загрузить и сохраните файл на свой компьютер.
- Разархивируйте загруженный файл.
Создание карты
- Откройте ArcGIS Pro.
- Создайте новый проект на основе шаблона Map.aptx.
Появится новый проект с картой.
Добавление в проект учебных данных
Набор сетевых данных – интеллектуальная модель дорожной сети. Он содержит не только местоположение и атрибуты дорог, но и информацию об отношении дорог друг к другу, например, о том, какие дороги соединены, какие повороты с одной дороги на другую разрешены, а какие запрещаются, и другие данные, влияющие на доступность различных дорог и время, проведенное в дороге. Алгоритм построения маршрута использует набор сетевых данных, определяющий самый короткий путь между остановками.
Примечание:
Если вы выполняете анализ посредством ArcGIS Online, алгоритм решения использует высококачественный набор сетевых данных на весь мир, хранящийся в облаке ArcGIS Online, и расходует кредиты ArcGIS Online. Вы также можете использовать свой собственный набор сетевых данных, хранящийся локально на вашем компьютере, или воспользоваться ArcGIS Enterprise для публикации сервисов маршрутизации с использованием собственного набора сетевых данных и настроить сервисы на корпоративном портале для их использования в ArcGIS Pro.Для этого добавьте набор сетевых данных на карту.
- На панели Каталог, находящейся по умолчанию на стороне приложения, щелкните правой кнопкой Папки и выберите Добавить подключение к папке .
Появится диалоговое окно Добавить подключение к папке.
- Перейдите к папке, в которую вы разместили учебные данные, дважды щелкните Network Analyst и укажите Tutorial для выбора папки.
- Нажмите OK.
Будет создано подключение к папке Tutorial
- На панели Каталог разверните Папки > Руководство пользователя > SanFrancisco.gdb > Транспорт.
- Перетащите на карту Streets_ND со значком набора сетевых данных .
Набор сетевых данных добавляется на панель Содержание и на карту.
- Щелкните правой кнопкой Streets_ND на панели Содержание и выберите Приблизить к слою , чтобы увидеть область Сан-Франциско.
По умолчанию, наборы сетевых данных строятся с данными о дорожном движении на текущее время их добавления на карту. Этот набор сетевых данных содержит историю трафика, то есть вы можете увидеть типичные условия дорожного движения для конкретного времени и дня недели. Не все дороги набора сетевых данных содержат данные о трафике, поэтому только некоторые из них по умолчанию показываются.
На территории, покрытой набором сетевых данных, можно осуществлять анализ сети.
Просмотр набора сетевых данных не требуется для выполнения анализа, так что в последующем вы его скроете.
- На панели Содержание снимите отметку Streets_ND, чтобы отображать только базовую карту.
- На панели Каталог выберите Tutorial > SanFrancisco.gdb > Analysis.
- На панели Каталог щелкните правой кнопкой мыши слой Stores и выберите Добавить к текущей карте.
Слой Stores добавляется на панель Содержание и на карту.
- Повторите шаг 9, чтобы добавить слой DistributionCenter на карту.
Примечание:
Также можно добавить слой, перетащив его с панели Каталог на карту.
После этого добавьте один из наборов сетевых данных из папки на карту.
Создание слоя Vehicle Routing Problem
Слой Vehicle Routing Problem (VRP) предоставляет структуру и свойства, необходимые для настройки и решения множества проблем с маршрутизацией транспортных средств. Он также содержит результаты расчета.
- На вкладке Анализ в группе Рабочие процессы щелкните Анализ сети > Задача выбора маршрута транспорта .
Слой VRP добавляется на панели Содержание. От включает подслои со входными и выходными данными анализа.
Это ссылка на набор сетевых данных Сан-Франциско, потому что сеть находилась на панели Содержание, когда создавался слой VRP.
Примечание:
Чтобы просмотреть или изменить набор сетевых данных, который используется для создания слоя сетевого анализа, на вкладке Анализ в группе Рабочие процессы вы можете щелкнуть ниспадающее меню Сетевой анализ и посмотреть в ниспадающем меню Источник сетевых данных.
- На панели Содержание щелкните Vehicle Routing Problem для выбора составного слоя.
Вкладка Vehicle Routing Problem появляется в группе Сетевой анализ в верхней части ArcGIS Pro.
- Щелкните VRP, чтобы увидеть на вкладке элементы управления.
Вы будете использовать эти элементы управления для определения модели VRP, которую вы хотите сгенерировать.
Подсказка:
Вкладка VRP появится только при выборе вами слоя VRP на панели Содержание. Кроме того, если у вас несколько слоев VRP, вы можете изменить настройки этих слоев по отдельности или выбрать несколько слоев, чтобы изменить настройки для всех выбранных слоев, если они используют один и тот же источник сетевых данных. Для каждой имеется своя вкладка.
Добавление заказов
Расположения розничных магазинов будут добавлены в класс сетевого анализа Заказы. Заказы можно представить как заявки, которые необходимо выполнить, поскольку каждый магазин заказывает определенное количество товара из центра распределения. Элементы класса Заказы в конечном итоге будут остановками на транспортном маршруте.
Расположения магазинов уже добавлены в качестве слоя объектов Stores в документ карты. Атрибуты слоя Stores содержат сведения об общем весе товара (в фунтах), который требуется каждому магазину, времени, когда должна быть выполнена доставка, и времени разгрузки (в минутах) в каждом магазине. Время разгрузки — это время, необходимое для разгрузки товара.
В таблице приведены значения даты 12/30/1899. Это значение даты, используемое для указания того, что указывается только время. Когда у всех полей времени эта дата связана со своими значениями времени, инструмент решения задачи будет использовать дату по умолчанию, чтобы определить, какую дату использовать для решения. В этом случае мы выберем обычный понедельник, который будет использоваться в каждом поле времени.
Узнайте больше о временных окнах и как указать даты
- На вкладке VRP в группе Входные данные щелкните Импорт заказов.
Откроется окно Добавить местоположения.
- Убедитесь, что в качестве Входного слоя сетевого анализа установлен слой Vehicle Routing Problem, а в качестве Подслоя – Заказы.
- Щелкните стрелку ниспадающего меню под Входными местоположениями и выберите Stores. Это класс точечных объектов, который вы ранее добавили на карту.
- Под опцией Сопоставление полей выберите Имя из Свойств и убедитесь, что NAME автоматически сопоставляется с параметром Имя поля.
- Сопоставьте следующие поля, если они не сопоставлены автоматически:
- TimeWindowStart > TimeStart1
- TimeWindowEnd > TimeEnd1
- DeliveryQuantity_1 > Demand
- Под Сопоставлением полей выберите MaxViolationTime из Свойств и введите 0 в параметре Значение по умолчанию.
Это указывает на то, что местоположение не может быть посещено за пределами его назначенного временного окна.
- Остальные параметры оставьте по умолчанию и щелкните OK.
Всего в таблице атрибутов Orders перечислены 25 магазинов, которые отображаются на карте в виде заказов.
Добавление станций
Товары доставляются из одного распределительного центра, местоположение которого отображается в слое пространственных объектов DistributionCenter, который ранее был добавлен на карту. Центр распределения работает с 8:00 до 17:00. Этот точечный объект должен быть добавлен в класс сетевого анализа Станции.
- На вкладке VRP в группе Входные данные щелкните Импорт станций.
Откроется окно Добавить местоположения.
- Убедитесь, что в качестве Входного слоя сетевого анализа установлен слой Vehicle Routing Problem, а в качестве Подслоя – Depots.
- Щелкните стрелку ниспадающего меню под Входными местоположениями и выберите DistributionCenter.
- Под опцией Сопоставление полей выберите Имя из Свойств и убедитесь, что NAME автоматически сопоставляется с параметром Имя поля.
- Под опцией Сопоставление полей выберите TimeWindowStart из Свойств и введите 8AM для параметра Значение по умолчанию.
- Под опцией Сопоставление полей выберите TimeWindowEnd из Свойств и введите 5PM для параметра Значение по умолчанию.
- Остальные параметры оставьте по умолчанию и щелкните OK.
Один распределительный центр указан в таблице атрибутов Depots и отображается как Depot на карте.
Добавление маршрутов
У центра распределения есть три грузовика, каждый из которых может перевозить не более 15 тыс. фунтов товара. Нужно добавить три маршрута (один для каждого грузовика) и задать свойства для маршрутов исходя из инструкций центра распределения.
- На вкладке VRP в группе Входные данные щелкните ниспадающую стрелку для Импорт маршрутов и выберите Добавить маршруты.
Откроется окно Добавить местоположения.
- Убедитесь, что Входной слой задачи выбора маршрута транспортного средства установлен на Vehicle Routing Problem.
- Для Числа маршрутов введите 3.
- Измените Префикс имени маршрута на Truck.
- В раскрывающихся меню Имя начальной станции и Имя конечной станции выберите Сан-Франциско.
- Измените Самое раннее время начала и Самое позднее время начала на 8:00:00.
- Измените Максимальное число заказов на 10.
- Для Capacity_1 введите значение 15000.
- Для Ограничения маршрута, введите следующие значения:
Параметр
Значение
Описание
Максимальное общее время
360
В силу ограничений рабочего дня водители не могут работать дольше шести часов (360 минут).
Максимальное общее время в пути
120
Чтобы не нарушать ограничения рабочего дня и обслуживать достаточное количество магазинов, учитывая время разгрузки у каждого магазина, грузовик должен тратить не более двух часов (120 минут) на движение по улицам.
Максимальное общее расстояние
80
Чтобы сбалансировать ежедневные расходы на топливо и обслуживание для всего автопарка, каждый грузовик должен проезжать не более 80 миль маршрута.
- Для Стоимости, введите следующие значения:
Параметр
Значение
Описание
Стоимость на единицу времени
0.20
Водитель грузовика получает 12 долларов в час, то есть его заработная плата составляет 12 долларов/60 минут = 0,20 центов в минуту.
Стоимость на единицу расстояния
1.5
Средняя стоимость в долларах на милю с учетом расхода топлива, амортизации грузовика и обслуживания.
- Остальные параметры оставьте по умолчанию и щелкните OK.
Три маршрута добавляются в таблицу атрибутов подслоя Route.
Задайте свойства для анализа задачи выбора маршрута
Лента VRP включает в себя различные разделы, где вы можете указать параметры для слоя.
- На вкладке VRP в группе Настройки передвижения откройте диалоговое окно свойств слоя, щелкнув кнопку Запустить свойства режима передвижения в правом углу раздела Настройки передвижения
Появляется диалоговое окно Свойства слоя: Vehicle Routing Problem.
- Разверните раздел Развороты и выберите из ниспадающего списка None.
- Нажмите OK.
В ниспадающем списке Режим отображается <Driving Time> указывающее, что режим движения настроен.
- В группе Настройки передвижения убедитесь, что Единицы поля времени установлены на Минуты и Единицы поля расстояния установлены на Мили.
Примечание:
Параметр Единицы поля времени и Единицы поля расстояния для полей подслоев VPR и не влияют на единицы направления. Единицы направления всегда отображаются в стандартах используемой локали.
- В группе Данные по умолчанию выберите День недели из ниспадающего списка Тип даты по умолчанию.
- Из ниспадающего списка с днями недели выберите Понедельник.
- В группе Выходная геометрия выберите Прямые линии из ниспадающего списка Тип линейной формы выходной геометрии.
Выходная геометрия Прямые линии полезна, когда вы хотите знать заказы, назначенные маршруту, и последовательность их посещения. Если вы хотите знать точный маршрут, по которому будет двигаться каждое транспортное средство, используйте опцию Along Network.
Примечание:
Опции выходной геометрии влияют только на отображение маршрутов, а не на результаты, определенные инструментом решения задачи VRP.
Примечание:
Эти установки недоступны при использовании ArcGIS Online.
Запуск анализа
Запустите анализ VRP, чтобы определить наилучшее назначение маршрута и последовательность заказов.
- На вкладке VRP щелкните Запустить
Инструмент решения задачи VRP вычислит три маршрута, необходимые для обслуживания заказов, и нарисует линии, соединяющие заказы. Каждый маршрут начинается и заканчивается в центре распределения и обслуживает набор заказов на соответствующем маршруте.
Определение пошаговых путевых листов для маршрутов
Вы можете увидеть подробные инструкции по маневрированию на панели Путевой лист.
- На вкладке VRP в группе Путевой лист щелкните кнопку Показать Путевой лист .
Появиться панель Путевой лист, показывающая направления от поворота к повороту для каждого маршрута.
Примечание:
Единицы направления отображаются в метрической или не метрической системе на основе стандартов используемой локали.
- Если необходимо продолжить работу и перейти в другие разделы этого упражнения, закройте панель Путевой лист. В противном случае сохраните проект и выйдите из ArcGIS Pro.
Внесите изменения в существующее решение для решения другого сценария: удалите существующий маршрут
Решение VRP, полученное ранее, хорошо работало на компанию. Но через несколько недель водитель маршрута Truck2 вышел в отпуск. Дистрибьюторская компания теперь должна обслуживать то же количество магазинов с помощью только двух грузовиков. Чтобы учесть дополнительную нагрузку, компания решила платить двум другим водителям сверхурочные и предоставить им один оплачиваемый перерыв в течение дня. Дистрибьюторская компания также приобрела два дополнительных центра распределения. Эти центры могут быть использованы грузовиками для пополнения загрузки и продолжения маршрута доставки вместо возвращения в основной центр распределения для очередной загрузки. Необходимо изменить решение, полученное на предыдущем шаге, и учесть эти изменения.
- На панели Содержание щелкните правой кнопкой мыши Маршруты и выберите Таблицу атрибутов из контекстного меню.
Появится таблица атрибутов с входными и выходными полями для каждого маршрута.
- Выберите строку для Truck2 и щелкните кнопку Удалить выборку в виде таблицы.
Это удалит строку из таблицы, а также соответствующий маршрут с карты.
- Щелкните вкладку Редактирование и в группе Управление изменениями щелкните кнопку Сохранить .
- Щелкните Да в диалоговом окне Сохранить изменения.
Изменение маршрута для включения сверхурочного времени
Чтобы учесть сверхурочное время, компания собирается удалить ограничения максимального времени, максимального времени в пути и максимального расстояния для маршрутов. Поскольку водители должны работать дольше обычного, им будут уплачены сверхурочные в размере 18 долларов в час после шести часов работы. В этом шаге эти изменения будут внесены в маршруты.
- Пока таблица атрибутов Routes открыта, прокрутите таблицу до поля OvertimeStartTime и дважды щелкните его для редактирования.
- Отредактируйте Truck1 и Truck3, чтобы они соответствовали значениям в таблице ниже. Для атрибутов со значением <Null> удалите имеющееся значение.
Имя поля
Значение
Описание
OvertimeStartTime
360
Водитель получает сверхурочные, если он работает еще шесть часов (360 минут).
CostPerUnitOvertime
0.3
Водитель получает 18 долларов в час за сверхурочную работу. Заработная плата в минуту составляет 18 долларов/60 минут = 0,30 центов в минуту.
MaxOrderCount
20
Поскольку водитель получает сверхурочные, он должен обслужить больше магазинов.
MaxTotalTime
<Null>
Общее время рабочей смены водителя не имеет ограничений.
MaxTotalTravelTime
<Null>
Время в пути по улицам не имеет ограничений.
MaxTotalDistance
<Null>
Общее расстояние, пройденное грузовиком, не имеет ограничений.
- Щелкните вкладку Редактирование и в группе Управление изменениями щелкните кнопку Сохранить .
- Щелкните Да в диалоговом окне Сохранить изменения.
- Закройте таблицу атрибутов Routes.
Добавление обновлений маршрута
Компания приобрела два вспомогательных распределительных центра на 800 Brush Street и 100 Old County Road, которые служат пунктами для дозагрузки грузовых автомобилей. Грузовые автомобили могут пополнить свой груз, посетив эти вспомогательные пункты и сэкономить время, не возвращаясь на основной склад. Новые центры распределения нужно добавить в класс анализа сети Станции через геокодирование их адресов. Маршруты, на которых можно пополнять загрузку в дополнительном центре распределения, и время загрузки в них указаны в классе сетевого анализа Обновления маршрутов.
Первый набор шагов состоит в том, чтобы поместить местоположения обновления в подслой Depots.
- Щелкните вкладку Карта и в группе Запрос щелкните кнопку Найти местоположение .
Появится панель Найти местоположение.
- Щелкните раскрывающуюся кнопку Опции рядом с окном поиска и выберите Настройки провайдера.
- Щелкните кнопку Добавить Локатор к проекту.
Появляется диалоговое окно Выбрать существующий локатор.
- Перейдите к местоположению данных учебника и выберите SanFranciscoLocator.loc.
- Щелкните OK в диалоговом окне Выбрать существующий локатор.
SanFranciscoLocator.loc добавлен на панель Настройки провайдера.
- Щелкните кнопку Назад к панели Найти местоположение.
- В окне Поиск введите 800 Brush St. и нажмите Enter.
- Щелкните правой кнопкой мыши 800 Brush St, Окленд, Калифорния, 94607 под SanFranciscoLocator и выберите Добавить в класс объектов из контекстного меню.
Примечание:
Применение World Geocoding Service в качестве локатора использует кредиты.
- В диалоговом окне Добавить в класс объектов разверните Vehicle Routing Problem : Depots и выберите Depots.
- Нажмите OK.
Станция добавляется в таблицу атрибутов Depots и добавляется на карту.
- Повторите шаги 7–10 с адресом 100 Old County Rd, Brisbane, California, 94005.
- Закройте панель Найти местоположение.
- На панели Содержание щелкните правой кнопкой мыши подслой Depots и выберите Таблицу атрибутов из контекстного меню.
- В таблице атрибутов Depots дважды щелкните поле Name, чтобы изменить имя вновь добавленных центров с 800 Brush St depot на Brush St и с 100 Old County Rd depot на Old County Rd соответственно.
Эти имена должны точно соответствовать следующему набору шагов для добавления информации об обновлении маршрута.
- На вкладке Редактирование в группе Управление изменениями щелкните кнопку Сохранить .
- Щелкните Да в диалоговом окне Сохранить изменения.
- Закройте таблицу атрибутов Depots.
- На панели Содержание щелкните правой кнопкой подтаблицу Обновления маршрутов и выберите Открыть.
Таблица пуста.
- Щелкните строку Щелкните, чтобы добавить новую строку.
- Добавьте следующую информацию в таблицу атрибутов:
RouteName
DepotName
ServiceTime
Truck1
Brush St
30
Truck3
Brush St
30
Truck1
Old County Rd
30
Truck3
Old County Rd
30
Убедитесь, что орфография соответствует тому, что использовалось в полях Name таблиц Depots и Routes. Таблица атрибутов должна напоминать изображение ниже:
- На вкладке Редактирование в группе Управление изменениями щелкните кнопку Сохранить .
- Щелкните Да в диалоговом окне Сохранить изменения.
- Закройте таблицу атрибутов Route Renewals.
Добавление перерывов
Поскольку водители должны работать дольше, им потребуется получасовой перерыв во время рабочей смены. В этом шаге нужно указать перерывы для каждого маршрута.
- На вкладке VRP в группе Входные данные щелкните стрелку раскрывающегося списка Импорт перерывов и выберите Добавить перерывы.
Откроется окно Добавить местоположения.
- Убедитесь, что для параметра Входной слой задачи выбора маршрута транспортного средства установлено Vehicle Routing Problem.
- Оставьте пустым Имя целевого маршрута.
Это означает, что установленные вами перерывы применяются ко всем маршрутам, и записи будут сделаны для каждого маршрута в настоящее время в таблице атрибутов Routes.
- Убедитесь, что для Типа перерыва установлено значение Перерыв с временным окном.
- Отметьте Is Paid.
В течение этого времени водителям будут платить, поэтому стоимость, связанная со временем, потраченным на перерыв, будет включена в общую стоимость маршрута.
- Установите Длительности перерыва на 30.
Водителям предоставляется 30-минутный перерыв на обед.
- Установите Начало временного окна на 12:30 PM.
- Установите Конец временного окна на 1:30 PM.
- Установите Максимальное время нарушения на 0
Перерывы должны начинаться между 12:30 и 13:30 Нулевое значение означает, что перерыв не может начаться после 13:30.
- Остальные параметры оставьте по умолчанию и щелкните OK.
В таблице атрибутов Breaks теперь отображаются две записи: оплачиваемый обеденный перерыв между 12:30 и 13:30 для каждого из маршрутов (Truck1 и Truck3).
Запуск анализа
Выполните следующие шаги для запуска анализа:
- На вкладке VRP щелкните кнопку Запустить .
Инструмент решения задачи VRP вычислит два маршрута, которые могут быть использованы для обслуживания заказов, и нарисует прямые линии, соединяющие заказы. Каждый маршрут начинается и заканчивается в центре распределения, обслуживает определенный набор заказов на своем пути, заезжает в один центр пополнения загрузки, продолжает обслуживать оставшиеся заказы и, наконец, возвращается в центр распределения.
Можно просмотреть таблицу атрибутов Depot Visits, чтобы увидеть информацию о том, сколько было загружено в начале дня и при посещении мест дозагрузки. Она также покажет ожидаемое время прибытия в эти места.