Пошук подібних шляхів до карти


9

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

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

Я спробував шукати, але більшість моїх запитів мають або проблеми зі збігом карт, або подібність маршруту для GPS точок по тому самому шляху. Я, можливо, не знаю правильної термінології! Чи є назва цієї проблеми? Який алгоритм я можу використовувати для вирішення цього питання?


1
Чи обмежені "маршрути" мережею (дорога / шлях / тощо)? Як ви заважаєте алгоритму вирішувати, що найближчий маршрут - це вихідний маршрут, але лише трохи коротший / довший?
Спайсмен

1
"Подібне з точки зору атрибутів" має сенс, але воно настільки розпливчасте, що дозволяє отримати широкий спектр можливих рішень. Чи можете ви бути більш конкретними?
whuber

@Spacedman Так, маршрути обмежені дорожньою мережею. Намір полягає в тому, щоб пройти автомобільний шлях з, скажімо, Китаю, і знайти дуже схожий шлях, який є, скажімо, моїм будинком. Я не впевнений, що найкращий спосіб реалізувати це обмеження.
Кріс Фостер

@whuber Вибачте. Для уточнення найважливішими є наявність схожих нахилів (на схожих ділянках маршруту) та однакової загальної відстані.
Кріс Фостер

Відповіді:


6

Збіг карт відрізняється від того, що ви шукаєте. Mapmatching - це правильний спосіб співставлення спостереження GPS щодо помилок з лінійною вуличною мережею. Ваше запитання також не має нічого спільного з GPS-точками. Тому що ви хочете порівняти закономірність статичних маршрутів (не тимчасових) і знайти подібні. Те , що ви шукаєте лінійний об'єкт (в сенсі ГІС не те машинне навчання) відповідність . Література, що стосується GPS-доріжки, - це просторово-часова відповідність візерунка, що підпадає під рубрику "Траєкторія (просторово-часова) картина".

Для отримання додаткової інформації ознайомтеся з розділом (Розробка шаблону траєкторії) з книги " Обчислення з просторовою траєкторією ". Ви отримаєте багато ідей щодо порівняння та протиставлення (наприклад, за азимутом, довжиною відрізків, синусоїдністю, білайн тощо) різних маршрутів або траєкторії.


4

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

Алгоритм вирішення вашого питання був би таким:

  1. Розподіліть оригінальний маршрут і зробіть для кожної комірки параметри перенесення відповідно до ваших характеристик (нахил / відстань / форма / тощо). Те, що існує дорога, також є параметром. Це стає одновимірним списком з n об'єктів -> routelist (n)

введіть тут опис зображення

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

введіть тут опис зображення

  1. Почніть з клітинки 1,1 в растрі a і переміщуйте по всьому растру впорядковано.
  2. Для кожної комірки викликається функція. Ця функція перевіряє, чи відповідає комірка routelist (0), якщо це так само перевіряється на оточуючих клітинках. З успіхом функція продовжує перевіряти клітинку на routelist (1) тощо. Якщо успішно пройти до маршрутизатора (n), координати зберігаються як альтернативний маршрут у routelistcopy (n)
  3. Повторюйте, поки не досягнете останнього пікселя в растрі.

введіть тут опис зображення

Вище ви побачите три варіанти маршрутів відповідно до параметрів у рулеті.

Далі:

  • Вибіркові растри вище вимірюються відповідно до лише одного параметра. У вашому реальному світі виклик одним пікселем буде поєднання кількох параметрів.
  • Якщо я маю це завдання, я б спробував записати вказану вище функцію рекурсивно. Це було б більш ефективно та вирішило б питання про "розбіжні треки" - де у вас є кілька альтернативних доріжок з однаковою початковою точкою.
  • Повороти вашого маршруту не вважаються проблемою. Це означає, що відповіді - це список пікселів, з'єднаних у тому ж порядку, що і ваш вихідний маршрут. Повороти - це не проблема. Можливо, вам доведеться написати алгоритм, щоб маршрути, що перетинаються, не були частиною рішення.
  • Створіть алгоритм так, щоб ви могли встановлювати різні рівні допуску для критеріїв, що відтворюються. Це дасть вам більше гнучкості.
  • В умовах експлуатації весь процес можна зробити більш ефективним, перевіряючи область появи пікселів відповідно до ваших характеристик. Якщо їх там немає, область обстеження є негативною, тому немає причин використовувати час для аналізу місцевості.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.