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

Доступно с лицензией Network Analyst.

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

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

Внимание:
Если вы запускаете упражнение, используя ArcGIS Online, будут расходоваться кредиты.

Получение данных

Данные для этого учебного руководства доступны для скачивания.

  1. Перейдите на страницу скачивания данных.
  2. Щелкните Загрузить и сохраните файл на свой компьютер.
  3. Разархивируйте загруженный файл.

Создание карты

  1. Откройте ArcGIS Pro.
  2. Создайте новый проект на основе шаблона Map.aptx.

    Появится новый проект с картой.

Добавление в проект учебных данных

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

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

Для этого добавьте набор сетевых данных на карту.

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

    Появится диалоговое окно Добавить подключение к папке.

  2. Перейдите к папке, в которую вы разместили учебные данные, дважды щелкните Network Analyst и укажите Tutorial для выбора папки.
  3. Нажмите OK.

    Будет создано подключение к папке Tutorial

  4. После этого добавьте один из наборов сетевых данных из папки на карту.

  5. На панели Каталог разверните Папки > Руководство пользователя > SanFrancisco.gdb > Транспорт.
  6. Перетащите на карту Streets_ND со значком набора сетевых данных Набор сетевых данных.

    Набор сетевых данных добавляется на панель Содержание и на карту.

  7. Щелкните правой кнопкой Streets_ND на панели Содержание и выберите Приблизить к слою Приблизить к слою, чтобы увидеть область Сан-Франциско.

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

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

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

  8. На панели Содержание снимите отметку Streets_ND, чтобы отображать только базовую карту.
  9. Добавьте точки, которые представляют местоположения продуктового магазина на карте.
  10. На панели Каталог выберите Tutorial > SanFrancisco.gdb > Analysis.
  11. На панели Каталог щелкните правой кнопкой мыши слой Stores и выберите Добавить к текущей картеДобавить данные.

    Слой Stores добавляется на панель Содержание и на карту.

  12. Повторите шаг 9, чтобы добавить слой DistributionCenter на карту.
    Примечание:

    Также можно добавить слой, перетащив его с панели Каталог на карту.

Создание слоя Vehicle Routing Problem

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

  1. На вкладке Анализ в группе Рабочие процессы щелкните Анализ сети > Задача выбора маршрута транспорта Задача выбора маршрута транспорта.

    Слой VRP добавляется на панели Содержание. От включает подслои со входными и выходными данными анализа.

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

    Примечание:

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

  2. На панели Содержание щелкните Vehicle Routing Problem для выбора составного слоя.

    Вкладка Vehicle Routing Problem появляется в группе Сетевой анализ в верхней части ArcGIS Pro.

  3. Щелкните VRP, чтобы увидеть на вкладке элементы управления.
    Вкладка VRP

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

    Подсказка:

    Вкладка VRP появится только при выборе вами слоя VRP на панели Содержание. Кроме того, если у вас несколько слоев VRP, вы можете изменить настройки этих слоев по отдельности или выбрать несколько слоев, чтобы изменить настройки для всех выбранных слоев, если они используют один и тот же источник сетевых данных. Для каждой имеется своя вкладка.

Добавление заказов

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

Расположения магазинов уже добавлены в качестве слоя объектов Stores в документ карты. Атрибуты слоя Stores содержат сведения об общем весе товара (в фунтах), который требуется каждому магазину, времени, когда должна быть выполнена доставка, и времени разгрузки (в минутах) в каждом магазине. Время разгрузки — это время, необходимое для разгрузки товара.

Таблица атрибутов слоя объектов Stores, содержащая информацию об общем весе товаров, подлежащих доставке, времени обслуживания и временных окнах, когда магазин принимает поставки

В таблице приведены значения даты 12/30/1899. Это значение даты, используемое для указания того, что указывается только время. Когда у всех полей времени эта дата связана со своими значениями времени, инструмент решения задачи будет использовать дату по умолчанию, чтобы определить, какую дату использовать для решения. В этом случае мы выберем обычный понедельник, который будет использоваться в каждом поле времени.

Узнайте больше о временных окнах и как указать даты

  1. На вкладке VRP в группе Входные данные щелкните Импорт заказовИмпорт заказов.

    Откроется окно Добавить местоположения.

  2. Убедитесь, что в качестве Входного слоя сетевого анализа установлен слой Vehicle Routing Problem, а в качестве ПодслояЗаказы.
  3. Щелкните стрелку ниспадающего меню под Входными местоположениями и выберите Stores. Это класс точечных объектов, который вы ранее добавили на карту.
  4. Под опцией Сопоставление полей выберите Имя из Свойств и убедитесь, что NAME автоматически сопоставляется с параметром Имя поля.
  5. Сопоставьте следующие поля, если они не сопоставлены автоматически:

    • TimeWindowStart > TimeStart1
    • TimeWindowEnd > TimeEnd1
    • DeliveryQuantity_1 > Demand

  6. Под Сопоставлением полей выберите MaxViolationTime из Свойств и введите 0 в параметре Значение по умолчанию.

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

  7. Остальные параметры оставьте по умолчанию и щелкните OK.
  8. Всего в таблице атрибутов Orders перечислены 25 магазинов, которые отображаются на карте в виде заказов.

Добавление станций

Товары доставляются из одного распределительного центра, местоположение которого отображается в слое пространственных объектов DistributionCenter, который ранее был добавлен на карту. Центр распределения работает с 8:00 до 17:00. Этот точечный объект должен быть добавлен в класс сетевого анализа Станции.

  1. На вкладке VRP в группе Входные данные щелкните Импорт станцийИмпорт станций.

    Откроется окно Добавить местоположения.

  2. Убедитесь, что в качестве Входного слоя сетевого анализа установлен слой Vehicle Routing Problem, а в качестве ПодслояDepots.
  3. Щелкните стрелку ниспадающего меню под Входными местоположениями и выберите DistributionCenter.
  4. Под опцией Сопоставление полей выберите Имя из Свойств и убедитесь, что NAME автоматически сопоставляется с параметром Имя поля.
  5. Под опцией Сопоставление полей выберите TimeWindowStart из Свойств и введите 8AM для параметра Значение по умолчанию.
  6. Под опцией Сопоставление полей выберите TimeWindowEnd из Свойств и введите 5PM для параметра Значение по умолчанию.
  7. Остальные параметры оставьте по умолчанию и щелкните OK.
  8. Один распределительный центр указан в таблице атрибутов Depots и отображается как Depot на карте.

Добавление маршрутов

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

  1. На вкладке VRP в группе Входные данные щелкните ниспадающую стрелку для Импорт маршрутов и выберите Добавить маршруты.

    Откроется окно Добавить местоположения.

  2. Убедитесь, что Входной слой задачи выбора маршрута транспортного средства установлен на Vehicle Routing Problem.
  3. Для Числа маршрутов введите 3.
  4. Измените Префикс имени маршрута на Truck.
  5. В раскрывающихся меню Имя начальной станции и Имя конечной станции выберите Сан-Франциско.
  6. Маршруты начинаются и заканчиваются в распределительном центре Сан-Франциско.
  7. Измените Самое раннее время начала и Самое позднее время начала на 8:00:00.
  8. Водители должны начать свой день ровно в 8 часов утра, поэтому Самое раннее время начала и Самое позднее время начала установлены на 8:00:00 утра.
  9. Измените Максимальное число заказов на 10.
  10. Это максимальное количество магазинов, которое может обслуживать грузовик.
  11. Для Capacity_1 введите значение 15000.
  12. Грузовик может перевозить не более 15 тыс. фунтов товаров.
  13. Для Ограничения маршрута, введите следующие значения:

    Параметр

    Значение

    Описание

    Максимальное общее время

    360

    В силу ограничений рабочего дня водители не могут работать дольше шести часов (360 минут).

    Максимальное общее время в пути

    120

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

    Максимальное общее расстояние

    80

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

  14. Для Стоимости, введите следующие значения:

    Параметр

    Значение

    Описание

    Стоимость на единицу времени

    0.20

    Водитель грузовика получает 12 долларов в час, то есть его заработная плата составляет 12 долларов/60 минут = 0,20 центов в минуту.

    Стоимость на единицу расстояния

    1.5

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

  15. Остальные параметры оставьте по умолчанию и щелкните OK.
  16. Три маршрута добавляются в таблицу атрибутов подслоя Route.

Задайте свойства для анализа задачи выбора маршрута

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

  1. На вкладке VRP в группе Настройки передвижения откройте диалоговое окно свойств слоя, щелкнув кнопку Запустить свойства режима передвижения в правом углу раздела Настройки передвижения
    Кнопка Запустить свойства режима передвижения

    Появляется диалоговое окно Свойства слоя: Vehicle Routing Problem.

  2. Разверните раздел Развороты и выберите из ниспадающего списка None.
  3. Нажмите OK.

    В ниспадающем списке Режим отображается <Driving Time> указывающее, что режим движения настроен.

  4. В группе Настройки передвижения убедитесь, что Единицы поля времени установлены на Минуты и Единицы поля расстояния установлены на Мили.
    Примечание:

    Параметр Единицы поля времени и Единицы поля расстояния для полей подслоев VPR и не влияют на единицы направления. Единицы направления всегда отображаются в стандартах используемой локали.

  5. В группе Данные по умолчанию выберите День недели из ниспадающего списка Тип даты по умолчанию.
  6. Из ниспадающего списка с днями недели выберите Понедельник.
  7. В группе Выходная геометрия выберите Прямые линии из ниспадающего списка Тип линейной формы выходной геометрии.

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

    Примечание:

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

    Примечание:

    Эти установки недоступны при использовании ArcGIS Online.

Запуск анализа

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

  1. На вкладке VRP щелкните Запустить Запустить

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

    VRP решение с тремя маршрутами, обслуживающими набор заказов

Определение пошаговых путевых листов для маршрутов

Вы можете увидеть подробные инструкции по маневрированию на панели Путевой лист.

  1. На вкладке VRP в группе Путевой лист щелкните кнопку Показать Путевой лист Путевой лист.

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

    Примечание:

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

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

Внесите изменения в существующее решение для решения другого сценария: удалите существующий маршрут

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

  1. На панели Содержание щелкните правой кнопкой мыши Маршруты и выберите Таблицу атрибутов из контекстного меню.

    Появится таблица атрибутов с входными и выходными полями для каждого маршрута.

  2. Выберите строку для Truck2 и щелкните кнопку Удалить выборку в виде таблицы.

    Это удалит строку из таблицы, а также соответствующий маршрут с карты.

  3. Щелкните вкладку Редактирование и в группе Управление изменениями щелкните кнопку Сохранить Сохранение изменений.
  4. Щелкните Да в диалоговом окне Сохранить изменения.

Изменение маршрута для включения сверхурочного времени

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

  1. Пока таблица атрибутов Routes открыта, прокрутите таблицу до поля OvertimeStartTime и дважды щелкните его для редактирования.
  2. Отредактируйте Truck1 и Truck3, чтобы они соответствовали значениям в таблице ниже. Для атрибутов со значением <Null> удалите имеющееся значение.

    Имя поля

    Значение

    Описание

    OvertimeStartTime

    360

    Водитель получает сверхурочные, если он работает еще шесть часов (360 минут).

    CostPerUnitOvertime

    0.3

    Водитель получает 18 долларов в час за сверхурочную работу. Заработная плата в минуту составляет 18 долларов/60 минут = 0,30 центов в минуту.

    MaxOrderCount

    20

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

    MaxTotalTime

    <Null>

    Общее время рабочей смены водителя не имеет ограничений.

    MaxTotalTravelTime

    <Null>

    Время в пути по улицам не имеет ограничений.

    MaxTotalDistance

    <Null>

    Общее расстояние, пройденное грузовиком, не имеет ограничений.

    Таблица атрибутов маршрутов, отредактированная для включения сверхурочного времени

  3. Щелкните вкладку Редактирование и в группе Управление изменениями щелкните кнопку Сохранить Сохранение изменений.
  4. Щелкните Да в диалоговом окне Сохранить изменения.
  5. Закройте таблицу атрибутов Routes.

Добавление обновлений маршрута

Компания приобрела два вспомогательных распределительных центра на 800 Brush Street и 100 Old County Road, которые служат пунктами для дозагрузки грузовых автомобилей. Грузовые автомобили могут пополнить свой груз, посетив эти вспомогательные пункты и сэкономить время, не возвращаясь на основной склад. Новые центры распределения нужно добавить в класс анализа сети Станции через геокодирование их адресов. Маршруты, на которых можно пополнять загрузку в дополнительном центре распределения, и время загрузки в них указаны в классе сетевого анализа Обновления маршрутов.

Первый набор шагов состоит в том, чтобы поместить местоположения обновления в подслой Depots.

  1. Щелкните вкладку Карта и в группе Запрос щелкните кнопку Найти местоположение Найти местоположение.

    Появится панель Найти местоположение.

  2. Щелкните раскрывающуюся кнопку Опции рядом с окном поиска и выберите Настройки провайдера.
    Опция Настройки провайдера
  3. Щелкните кнопку Добавить Локатор к проекту.

    Появляется диалоговое окно Выбрать существующий локатор.

  4. Перейдите к местоположению данных учебника и выберите SanFranciscoLocator.loc.
  5. Щелкните OK в диалоговом окне Выбрать существующий локатор.

    SanFranciscoLocator.loc добавлен на панель Настройки провайдера.

  6. Щелкните кнопку Назад к панели Найти местоположение.
    Кнопка Назад к панели Найти местоположение
  7. В окне Поиск введите 800 Brush St. и нажмите Enter.
  8. Щелкните правой кнопкой мыши 800 Brush St, Окленд, Калифорния, 94607 под SanFranciscoLocator и выберите Добавить в класс объектов Добавить в класс объектов из контекстного меню.
    Добавить местоположение в класс пространственных объектов
    Примечание:

    Применение World Geocoding Service в качестве локатора использует кредиты.

  9. В диалоговом окне Добавить в класс объектов разверните Vehicle Routing Problem : Depots и выберите Depots.
    Диалоговое окно Добавить в класс объектов
  10. Нажмите OK.

    Станция добавляется в таблицу атрибутов Depots и добавляется на карту.

  11. Повторите шаги 7–10 с адресом 100 Old County Rd, Brisbane, California, 94005.
  12. Закройте панель Найти местоположение.
  13. На панели Содержание щелкните правой кнопкой мыши подслой Depots и выберите Таблицу атрибутов из контекстного меню.
  14. В таблице атрибутов Depots дважды щелкните поле Name, чтобы изменить имя вновь добавленных центров с 800 Brush St depot на Brush St и с 100 Old County Rd depot на Old County Rd соответственно.

    Эти имена должны точно соответствовать следующему набору шагов для добавления информации об обновлении маршрута.

  15. На вкладке Редактирование в группе Управление изменениями щелкните кнопку Сохранить Сохранение изменений.
  16. Щелкните Да в диалоговом окне Сохранить изменения.
  17. Закройте таблицу атрибутов Depots.
  18. Следующий набор шагов – добавить информацию об обновлении маршрута. Поскольку обоим грузовикам разрешено догружаться в местах Brush St и Old County Rd, каждый грузовик будет ассоциироваться с этими двумя местоположениями. Инструмент решения задачи VRP рассчитывает лучшее место для дозагрузки грузовых автомобилей, если и когда они должны дозагрузиться.
  19. На панели Содержание щелкните правой кнопкой подтаблицу Обновления маршрутов и выберите Открыть.

    Таблица пуста.

  20. Щелкните строку Щелкните, чтобы добавить новую строку.
  21. Добавьте следующую информацию в таблицу атрибутов:

    RouteName

    DepotName

    ServiceTime

    Truck1

    Brush St

    30

    Truck3

    Brush St

    30

    Truck1

    Old County Rd

    30

    Truck3

    Old County Rd

    30

    Убедитесь, что орфография соответствует тому, что использовалось в полях Name таблиц Depots и Routes. Таблица атрибутов должна напоминать изображение ниже:

    Таблица атрибутов обновления маршрутов

  22. На вкладке Редактирование в группе Управление изменениями щелкните кнопку Сохранить Сохранение изменений.
  23. Щелкните Да в диалоговом окне Сохранить изменения.
  24. Закройте таблицу атрибутов Route Renewals.

Добавление перерывов

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

  1. На вкладке VRP в группе Входные данные щелкните стрелку раскрывающегося списка Импорт перерывов и выберите Добавить перерывы.

    Откроется окно Добавить местоположения.

  2. Убедитесь, что для параметра Входной слой задачи выбора маршрута транспортного средства установлено Vehicle Routing Problem.
  3. Оставьте пустым Имя целевого маршрута.

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

  4. Убедитесь, что для Типа перерыва установлено значение Перерыв с временным окном.
  5. Отметьте Is Paid.

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

  6. Установите Длительности перерыва на 30.

    Водителям предоставляется 30-минутный перерыв на обед.

  7. Установите Начало временного окна на 12:30 PM.
  8. Установите Конец временного окна на 1:30 PM.
  9. Установите Максимальное время нарушения на 0

    Перерывы должны начинаться между 12:30 и 13:30 Нулевое значение означает, что перерыв не может начаться после 13:30.

  10. Остальные параметры оставьте по умолчанию и щелкните OK.
  11. В таблице атрибутов Breaks теперь отображаются две записи: оплачиваемый обеденный перерыв между 12:30 и 13:30 для каждого из маршрутов (Truck1 и Truck3).

Запуск анализа

Выполните следующие шаги для запуска анализа:

  1. На вкладке VRP щелкните кнопку Запустить Запустить.

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

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

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