Доступно с лицензией Network Analyst.
В этом упражнении будут найдены наиболее оптимальные маршруты для автопарка дистрибьюторской компании для доставки товаров из центра распределения в 25 розничных магазинов. У каждого магазина есть определенные потребности в товаре, и у каждого грузовика есть ограниченная вместимость товара. Основная цель – подобрать грузовики из автопарка под определенный набор магазинов и распределить доставки таким образом, чтобы снизить общие транспортные расходы.
В этом заключается решение задачи нахождения маршрута транспорта (VRP). Когда последовательность доставки будет определена, будут созданы пошаговые путевые листы итоговых маршрутов, которые можно отправить электронным способом или распечатать и передать водителям, работающим на маршрутах доставки.
Получение данных
Данные для этого учебного руководства доступны для скачивания.
- Перейдите на страницу загрузки данных.
- Щелкните Загрузить и сохраните файл на свой компьютер.
- Разархивируйте загруженный файл.
Создание карты
- Откройте ArcGIS Pro.
- Создайте новый проект на основе шаблона Map.aptx.
Появится новый проект с картой.
Добавление в проект учебных данных
Набор сетевых данных – интеллектуальная модель дорожной сети. Он содержит не только местоположение и атрибуты дорог, но и информацию об отношении дорог друг к другу, например, о том, какие дороги соединены, какие повороты с одной дороги на другую разрешены, а какие запрещаются, и другие данные, влияющие на доступность различных дорог и время, проведенное в дороге. Алгоритм построения маршрута использует набор сетевых данных, определяющий самый короткий путь между остановками.
Если вы выполняете анализ используя ArcGIS Online, механизм расчета использует высококачественный набор сетевых данных по всему миру, хранящийся в облаке ArcGIS Online, при этом расходуются кредиты ArcGIS Online. При использовании собственных данных, кредиты не расходуются, но необходимо связать свой набор сетевых данных с проектом.
Для этого добавьте набор сетевых данных на карту.
- На панели Каталог, находящейся по умолчанию на стороне приложения, щелкните правой кнопкой Папки и выберите Добавить подключение к папке .
Появится диалоговое окно Добавить подключение к папке.
- Перейдите к папке, в которую вы разместили учебные данные, дважды щелкните 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) предоставляет структуру и свойства, необходимые для настройки и решения множества проблем с маршрутизацией транспортных средств. Он также содержит результаты расчета.
- На вкладке Анализ в группе Инструменты щелкните Сетевой анализ > Vehicle Routing Problem, .
Слой VRP добавляется на панель Содержание. От включает подслои со входными и выходными данными анализа.
Это ссылка на набор сетевых данных Сан-Франциско, потому что сеть находилась на панели Содержание, когда создавался слой VRP.
Примечание:
Чтобы просмотреть или изменить источник сетевых данных, который используется для создания слоя анализа сети, на вкладке Анализ в группе Инструменты щелкните ниспадающее меню Сетевой анализ и просмотрите раздел Источник сетевых данных.
- На панели Содержание щелкните Vehicle Routing Problem для выбора составного слоя.
Вкладка Vehicle Routing Problem появляется в группе Сетевой анализ в верхней части ArcGIS Pro.
- Щелкните VRP, чтобы увидеть на вкладке элементы управления.
Вы воспользуетесь ими для определения модели VRP, которую вы хотите создать.
Подсказка:
Вкладка VRP появится только при выборе вами слоя VRP на панели Содержание. Кроме того, если у вас есть несколько слоев VRP, у каждого есть своя вкладка.
Добавьте заказы
Расположения розничных магазинов будут добавлены в класс сетевого анализа Заказы. Заказы можно представить как заявки, которые необходимо выполнить, поскольку каждый магазин заказывает определенное количество товара из центра распределения. Элементы класса Заказы в конечном итоге будут остановками на транспортном маршруте.
Расположения магазинов уже добавлены в качестве слоя объектов Stores в документ карты. Атрибуты слоя Stores содержат сведения об общем весе товара (в фунтах), который требуется каждому магазину, времени, когда должна быть выполнена доставка, и времени разгрузки (в минутах) в каждом магазине. Время разгрузки — это время, необходимое для разгрузки товара.
В таблице приведены значения даты 12/30/1899. Это значение даты, используемое для указания того, что указывается только время. Когда у всех полей времени эта дата связана со своими значениями времени, инструмент решения задачи будет использовать дату по умолчанию, чтобы определить, какую дату использовать для решения. В этом случае мы выберем обычный понедельник, который будет использоваться в каждом поле времени.
Узнайте больше о временных окнах и как указать даты
- На вкладке VRP в группе Входные данные щелкните Import Orders .
Появляется панель Геообработка с инструментом Добавить положения. Инструмент Добавить положения загружает объекты в слой сетевого анализа, например, в слой VRP. Этот инструмент может загрузить точки, отображающие положения магазинов, в подслой Orders.
- Убедитесь, что в качестве Входного слоя сетевого анализа установлен Vehicle Routing Problem, а в качестве Подслоя – Orders.
- Щелкните стрелку ниспадающего меню под Входными местоположениями и выберите Stores. Это класс точечных объектов, который вы ранее добавили на карту.
- Под опцией Сопоставление полей выберите Имя из Свойств и убедитесь, что NAME автоматически сопоставляется с параметром Имя поля.
- Сопоставьте следующие поля, если они не сопоставлены автоматически:
- TimeWindowStart > TimeStart1
- TimeWindowEnd > TimeEnd1
- DeliveryQuantity_1 > Demand
- Под опцией Сопоставление полей выберите MaxViolationTime из Свойств и введите 0 для параметра Значение по умолчанию.
Это указывает на то, что местоположение не может быть посещено за пределами его назначенного временного окна.
- Оставьте заданные по умолчанию настройки для остальных параметров и щелкните кнопку Запустить внизу панели Геообработка.
Всего в таблице атрибутов Orders перечислены 25 магазинов, которые отображаются на карте в виде заказов.
Добавьте склады
Товары доставляются из одного распределительного центра, местоположение которого отображается в слое пространственных объектов DistributionCenter, который ранее был добавлен на карту. Распределительный центр работает с 8:00 до 17:00. Этот точечный объект должен быть добавлен в класс сетевого анализа Станции.
- На вкладке VRP в группе Входные данные щелкните Import Depots .
Появляется панель Геообработка с инструментом Добавить положения.
- Убедитесь, что в качестве Входного слоя сетевого анализа установлена Vehicle Routing Problem, а в качестве Подслоя – Depots.
- Щелкните стрелку ниспадающего меню под Входными местоположениями и выберите DistributionCenter.
- Под опцией Сопоставление полей выберите Имя из Свойств и убедитесь, что NAME автоматически сопоставляется с параметром Имя поля.
- Под опцией Сопоставление полей выберите TimeWindowStart из Свойств и введите 8AM для параметра Значение по умолчанию.
- Под опцией Сопоставление полей выберите TimeWindowEnd из Свойств и введите 5PM для параметра Значение по умолчанию.
- Оставьте заданные по умолчанию настройки для остальных параметров и щелкните кнопку Запустить внизу панели Геообработка.
Один распределительный центр указан в таблице атрибутов Depots и отображается как Depot на карте.
Добавить маршруты
У центра распределения есть три грузовика, каждый из которых может перевозить не более 15 тыс. фунтов товара. Нужно добавить три маршрута (один для каждого грузовика) и задать свойства для маршрутов исходя из инструкций центра распределения.
- На вкладке VRP в группе Входные данные щелкните ниспадающую стрелку для Импорт маршрутов и выберите Добавить маршруты.
Появится панель Геообработка с инструментом Добавить маршруты для задачи выбора маршрута транспорта. Этот инструмент создает маршруты в слое 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
Средняя стоимость в долларах на милю с учетом расхода топлива, амортизации грузовика и обслуживания.
- Оставьте заданные по умолчанию настройки для остальных параметров и щелкните кнопку Запустить внизу панели Геообработка.
Три маршрута добавляются в таблицу атрибутов подслоя Route.
Установите свойства для анализа проблемы маршрутизации транспортных средств
Лента VRP включает в себя различные разделы, где вы можете указать параметры для слоя.
- На вкладке VRP в группе Настройки передвижения откройте диалоговое окно свойств слоя, щелкнув кнопку Запустить свойства режима передвижения в правом углу раздела Настройки передвижения
Появляется диалоговое окно Свойства слоя: Vehicle Routing Problem.
- Разверните раздел Развороты и выберите из ниспадающего списка None.
- Нажмите OK.
В ниспадающем списке Режим отображается <Driving Time> указывающее, что режим движения настроен.
- В группе Настройки передвижения убедитесь, что Единицы поля времени установлены на Минуты и Единицы поля расстояния установлена на Мили.
- В группе Дата по умолчанию выберите День недели из ниспадающего списка Тип даты по умолчанию.
- Из ниспадающего списка с днями недели выберите Понедельник.
- В группе Выходная геометрия выберите Прямые линии из ниспадающего списка Тип линейной формы выходной геометрии.
Выходная геометрия Прямые линии полезна, когда вы хотите знать заказы, назначенные маршруту, и последовательность их посещения. Если вы хотите знать точный маршрут, по которому будет двигаться каждое транспортное средство, используйте опцию 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
Убедитесь, что орфография соответствует тому, что использовалось в полях таблиц Depots и Routes Name. Таблица атрибутов должна напоминать изображение ниже:
- На вкладке Редактирование в группе Управление изменениями щелкните кнопку Сохранить .
- Щелкните Да в диалоговом окне Сохранить изменения.
- Закройте таблицу атрибутов Route Renewals.
Добавить перерывы
Поскольку водители должны работать дольше, им потребуется получасовой перерыв во время рабочей смены. В этом шаге нужно указать перерывы для каждого маршрута.
- На вкладке VRP в группе Входные данные щелкните стрелку раскрывающегося списка Импорт перерывов и выберите Добавить перерывы.
Появится панель Геообработка с инструментом Добавить перерывы задачи выбора маршрута транспортного средства. Этот инструмент создает разрывы в слое VRP с указанными параметрами, позволяющими создавать несколько разрывов одновременно.
- Убедитесь, что для параметра Входной слой задачи выбора маршрута транспортного средства установлено Vehicle Routing Problem.
- Оставьте пустым Имя целевого маршрута.
Это означает, что установленные вами перерывы применяются ко всем маршрутам, и записи будут сделаны для каждого маршрута в настоящее время в таблице атрибутов Routes.
- Убедитесь, что для Типа перерыва установлено значение Перерыв с временным окном.
- Отметьте Is Paid.
В течение этого времени водителям будут платить, поэтому стоимость, связанная со временем, потраченным на перерыв, будет включена в общую стоимость маршрута.
- Установите Длительности перерыва на 30.
Водителям предоставляется 30-минутный перерыв на обед.
- Установите Начало временного окна на 12:30 PM.
- Установите Конец временного окна на 1:30 PM.
- Установите Максимальное время нарушения на 0
Перерывы должны начинаться между 12:30 и 13:30 Нулевое значение означает, что перерыв не может начаться после 13:30.
- Оставьте заданные по умолчанию настройки для остальных параметров и щелкните кнопку Запустить внизу панели Геообработка.
В таблице атрибутов Breaks теперь отображаются две записи: оплачиваемый обеденный перерыв между 12:30 и 13:30 для каждого из маршрутов (Truck1 и Truck3).
Запуск анализа
Выполните следующие шаги для запуска анализа:
- На вкладке VRP щелкните кнопку Запустить .
Инструмент решения задачи VRP вычислит два маршрута, которые могут быть использованы для обслуживания заказов, и нарисует прямые линии, соединяющие заказы. Каждый маршрут начинается и заканчивается в центре распределения, обслуживает определенный набор заказов на своем пути, заезжает в один центр пополнения загрузки, продолжает обслуживать оставшиеся заказы и, наконец, возвращается в центр распределения.
Можно просмотреть таблицу атрибутов Depot Visits, чтобы увидеть информацию о том, сколько было загружено в начале дня и при посещении мест дозагрузки. Она также покажет ожидаемое время прибытия в эти места.