Розрахунок оптимальних маршрутів, торкаючись усіх доступних доріг у мережі ArcGIS?


13

Для підготовки до зимового сезону ми хочемо обчислити найбільш оптимальні маршрути посипання солі на дорогах. Аналіз знає такі критерії:

  • транспортні засоби стартують і зупиняються в єдиній точці завантаження
  • всі наявні дороги потрібно посипати сіллю
  • один маршрут може зайняти не довше, ніж певний час (припустимо 2 години)
  • через обмежене завантаження солі на транспортний засіб відстань маршруту обмежена наявною кількістю солі. (припустимо, 10 км)

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

Тепер ми думаємо про підрахунок середніх точок для кожної ділянки дороги і використовуємо їх як пункти призначення для обчислення маршруту.


2
Це дуже схоже на маршрутизацію сміттєвоза, лише коли вантажівки повертаються в депо, щоб спорожнити, поки сіль перезавантажується. Обом потрібно відвідати всі частини мережі.
PolyGeo

Дуже правильно. Чи є у вас поради щодо вирішення подібних питань маршрутизації?
Марк Верщур

У нашій юрисдикції у нас є додаткова змінна - Пісок. оскільки дороги з меншим об'ємом отримують пісок, а більші за обсягом - сіль. Якщо ви хочете створити зі мною чат, і ми можемо повністю обговорити проблему. Я також можу дати вам деяке розуміння того, що ми зробили, і чи можна порівняти наші рішення
dassouki

Це може бути зведено до декількох проблем з підйомом та доставкою транспортних засобів, і про це існує маса документів.
Якуб Канія

Відповіді:


5

Я думаю, що частина відповіді залежить від плану дорожньої мережі, і це питання, можливо, варто опублікувати на Math Stack Exchange ( /math// ), оскільки це здається проблемою теорії графіків. Я не думаю, що це буде оптимальним рішенням, але це може допомогти вам наблизитися.

Ви можете розділити дорожню мережу на природні регіони, де сума довжини відрізків буде приблизно дорівнює кількості, яку вантажівка могла б покрити заданим вантажем. Потім для кожного регіону можна здійснити еуларський тур, щоб отримати маршрут, який би торкнувся всіх сегментів. Зразок коду пітона

def eulerian_tour(network_graph):
    graph = network_graph[:]
    route = []
    def find_route(start):
        for (i, j) in graph:
            if i == start:
                graph.remove((i, j))
                find_route(j)
            elif j == start:
                graph.remove((i, j))
                find_route(i)
        route.append(start)

    find_route(graph[0][0])
    route.reverse()
    return route

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


1

Я би підійшов до цього завдання таким чином. Мережевий аналітик ArcGIS має розв'язчик під назвою VRP , який може допомогти вам замовити та керувати своїми маршрутами. Я перетворив би кожне дорожнє посилання у вашому наборі даних мережі в точкові функції ( наприклад, інструмент GP- функції Feature To Point (управління даними) , або, можливо, спочатку розділити лінії на прості двовершинні сегменти, а потім отримати середину, щоб стати центральною точкою ).

Якщо говорити з точки зору VRP, вони стануть вашими замовленнями. Тоді ви призначаєте свої маршрути, обмежуючи їх певним часом (2 години), і ваше депо буде одночасно і початковою, і зупинкою. Якщо припустити, що у вас є кілька транспортних засобів, ви зможете отримати або кілька маршрутів для одного транспортного засобу, або кілька маршрутів для одного транспортного засобу.

Настійно рекомендую пройти навчальний посібник, який допоможе вам зрозуміти, як розпочати роботу з VRP в Network Analyst. Я використовував цей вирішувач для декількох проектів і виявив, що він надзвичайно потужний і настроюється в дуже значній мірі, щоб відповідати моєму робочому процесу.

Пам'ятайте, що Network Analyst добре працюватиме з обмеженою кількістю замовлень на введення (у вашому випадку - центроїд доріг). Я мав успіх у кількох тисячах замовлень (до 9000). Тож якщо ви хочете обслуговувати дійсно велике місто, ви можете обмежити свої маршрути діяти лише в певних частинах міста (з точки зору VRP - Зони маршруту).

Якщо ви шукаєте більш нестандартне і потужне рішення, яке було розроблено спеціально для маршрутизації з високою щільністю, будь ласка, подумайте про використання RouteSmart . Він побудований на вершині ArcGIS і був розроблений для вирішення подібних проблем.


Дякуємо за пропозиції. Я напевно перевіряю RouteSmart
Mark Verschuur
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.