Як описати особливу залежність між з'єднаними ребрами?


11

Розглянемо цю просту ситуацію, коли три вузла з'єднуються у вузлі:

крайові стосунки

Я хотів би написати короткий і чіткий опис відносин між A і B таким чином, що відрізняє його від відносин між A і C. Щось на кшталт "при переході вузла за годинниковою стрілкою, A суміжний? до В, але А не суміжний? до C. " Але це насправді не сусідство.

Сказано по-іншому: уявіть, що ви стоїте на вузлі і ви стикаєтесь до А. Ви починаєте крутитися за годинниковою стрілкою. Наступний край, до якого ви прийдете, - це B, а не C.

Чи є спосіб описати цей взаємозв'язок між A і B більш лаконічним, формальним чи правильним способом, ніж я писав вище?

Він повинен бути спрямованим (одне співвідношення цього типу існує за годинниковою стрілкою від А, а інше - у напрямку проти годинникової стрілки). І він повинен масштабуватися до тих випадків, коли у вузлі з'єднано більше трьох ребер. Може, це має щось спільне з маршрутизацією? (Я думаю про це в контексті дорожніх мереж.)

Я вже спробував два підходи, але далеко не досягли:

  1. 9IM-подібні посилання на топологію : я переглянув DE-9IM , і хоча я не математик, я думаю, що все ще можу сказати з діаграм і термінів, що він не охоплює цей тип відносин. Ні я ще не знаходжу його в описах топології на допомогу ESRI чи довідці Oracle . (Можливо, є щось там, але я просто ще не знаходжу це!)

  2. Обличчя : Я розігрувався з тим, що обличчя на "північній" стороні А також може бути обмежене В, але не С. Однак, як ви бачите на діаграмі тут, це не завжди так. Уявіть, що моя діаграма - це витяг із дорожньої мережі, де А і С - артеріальні дороги, а В - коротка тупикова дорога.

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


Чому ви не додаєте до кожного вузла список підключених до нього ребер, упорядкованих за напрямом?
липень

1
Це здається, що ви шукаєте DCEL . Зауважте, що при дуалізації плоского графа грані стають вузлами. На ілюстрації представлені фрагменти з трьох граней альфа , бета та гами , з краєм А, що розділяє бета від гами , краєм Б, що розділяє гамму від альфа , і краєм С, що розділяє альфа від бета . Це дає циклічний графік, який містить всю інформацію, яку ви шукаєте - і справді це суміжність у подвійному графіку.
whuber

@julien, дякую - це гідна ідея реалізації; Я спробую це. Але спочатку ... Я шукаю слово чи фразу, щоб описати цей тип стосунків.
andytilia

@whuber, дякую за пораду. Я раніше не стикався з DCEL. Схоже, що "B" - "наступний" половина краю північного краю, південний захід від A. Hm: тоді, якщо я хочу піти проти годинникової стрілки, то я вважаю південну половину краю A. І "західну" мається на увазі загальний вузол. Цікаво, чи спрацює це, коли B не є межею (тобто. Тупикова дорога). Я розгляну це далі.
Andytilia

@julien, я знову читаю твій коментар. Я можу бачити, що ти і мені пропонуєш фразувати. :-) Можливо, я міг би використати "упорядкований напрямком" для опису відносин. Треба трохи пограти з цим.
andytilia

Відповіді:


1

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

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

Якісне відношення, яке займає два входи, називається бінарним відношенням. Для цього є два загальних позначення: - isLeftOf (A, B) Це позначення префікса. - A isLeftOf B Це позначення інфіксації.

У наведених вище прикладах було також одинарне відношення: isConcave. Це відношення стосується регіону до себе і поверне бульне значення.

Всі просторові предикати Egenhofer у моделі 9 перетину (на яку посилається 9EIM) є бінарними відносинами між двома регіонами. Можливо, вас також зацікавлять Ренделл, Куй та Кон. RCC (http://en.wikipedia.org/wiki/Region_connection_calculus). Якісні (топологічні) відносини, наведені в цій галузі дослідження, відносять регіони до регіонів, а пізніші роботи стосуються рядків до регіонів, а лінії - до ліній. Однак це не зовсім те, що ви шукаєте.

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

@whuber пішов правильно, запропонувавши подвійний список ребер (DCEL). Це близький родич комбінаторних карт, які часто використовуються під кришками в системах САПР та крилатими краями. Концепція крилатого краю (http://en.wikipedia.org/wiki/Winged_edge) - це те, як відомий текстовий стандарт визначає отвір у багатокутнику (http://en.wikipedia.org/wiki/Well-known_text #Geometric_objects). Зауважте на полігоні, що порядок зовнішніх точок проти годинникової стрілки, а внутрішніх - за годинниковою стрілкою. Маленька казкова людина, що йде по кордону в цьому порядку, завжди побачила б внутрішню частину регіону зліва.

У комбінаторних картах та DCEL ключовим моментом є те, що ці об'єкти визначаються на поверхні, яка орієнтується. Нам не потрібно вникати в математичні формальності - ідея досить проста: якщо ви можете визначити напрямок на поверхні, як це можна зробити з будь-якою просторовою системою відліку в ГІС, то у вас є орієнтована поверхня. Отже, якщо ви можете визначити напрямок, то ви можете визначити спрямовану впорядкованість навколо будь-якої точки на поверхні. За допомогою спрямованого впорядкування ви можете визначити цеLeftOf (A, B), isRotationallyAdjacentTo (A, B) тощо.

Визначення впорядкування навколо вершини в графі, вбудованому на поверхню, вимагає двох призначень: 1) присвоєння міток кінцевим точкам краю та 2) призначення конвенції для порядку навколо вершини. Якщо порядок елементів у масиві (наприклад, [A, B, C] на вашому малюнку) знаходиться за годинниковою стрілкою, то ми можемо сказати, який край знаходиться зліва від B.

У вашому прикладі кожен елемент примикає до інших. Цей факт також видно в масиві, оскільки масив насправді являє собою перестановку, тобто порядок має значення, але який елемент спочатку не має. Отже [A, B, C] еквівалентно [C, A, B]. Іншими словами, масив обертається навколо того, щоб останній елемент примикав до першого.


Дякую! Мені подобається термін "ротаційно суміжний". Це, як ви кажете, просто потрібно розширити, щоб домовитись про вершину. У моєму випадку мені потрібно визначити цю конвенцію залежно від випадку. Тому я буду працювати над кодуванням чогось типу isRotationallyAdjacentTo (A, B, Direction), використовуючи перестановку, як ви пропонуєте. Або з точки зору випадку вище: "A обертається за обертанням годинникової стрілки до B, а A не обертається за С годинниковою стрілкою".
andytilia

До речі, я ще не вивчав обчислення з підключенням до регіону. Хоча це не зовсім вирішує цю проблему (як ви вже згадуєте), проте це цікаво. Чи можете ви вказати мені на «пізніші твори», які ви маєте на увазі Ренделл, Куй та Кон? (хм: персонажі RC&C створили рамку під назвою RCC)
Андітілія

4

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

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

Я намагаюся зробити розрізнення в голові.

  • Коли я кажу "Геопросторова топологія" (1), я маю на увазі структуру графа для представлення геометричних співвідношень ознак (наприклад, що залишилося від краю А, яка грань утворена ребрами [A, B, C], що міститься в обличчі Б тощо).
  • Коли я кажу "Графік маршрутизації" (2), я маю на увазі структуру графа для вирішення задач маршрутизації (наприклад, найкоротший шлях для отримання з A-> B з [X] обмеженнями / умовами)

Вони просто графіки, і вони належать до широти науки , але є явна перевага - не узагальнювати як одне і те ж. Вони виконують різні цілі, і оптимізувати та застосовувати операції набагато простіше, коли вони спеціалізуються саме на цій цілі.

ESRI робить це. Вони мають структуру графіків для геопросторової топології (TopologyGraph) та іншу структуру графіків для задач маршрутизації (мережевий набір даних). Чорт забирає, що вони навіть мають стару структуру графіків - Геометричні мережі - що добре допомагає для проблем з потоком у комунальних мережах.

Можливо, у світі PostgreSQL / PostGIS ми також стикаємося з цим. Існує структура даних для маршрутизації та ще одна для геопросторової топології .

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

Що стосується "геопросторової топології", я вважаю, що приємним способом представлення цього виду топології є спосіб, яким займається Управління гідрографії Великобританії у своєму описі повної топології S57 .

UKHO Повна топологія

Дуже схоже на те, що роблять усі основні реалізації.

Тепер, якщо ви шукаєте маршрутизацію, то графік стає іншим залежно від того, чи потрібна вам односмугова або двонаправлена ​​зв'язок. Наприкінці він зводиться до:

  • Маючи від вузлів, підключених до вузлів TO, які створюють краї
  • В Рубі має атрибути для лівого і правого боку (наприклад , діапазони адрес).
  • У Junctions (тобто вузли , де ребра з'єднують) може мати безліч обмежень. Таким чином, ви в основному матимете основний запис з'єднання для представлення самого вузла та окремі записи із записами FROM та TO для представлення обмежень потоку.

Удачі, і повідомте нам, як виходить ваш проект.


Велике спасибі за чітке розмежування двох типів графіків. Чи вважаєте ви, що справедливим відмінністю є те, що графіки маршрутизації зазвичай містять певну інформацію по краях та / або вузлах, тоді як геопросторова топологія ніколи не потребує атрибуції на краях і вузлах (вона базується лише на просторових відносинах між об'єктами)? Я здогадуюсь, що моя проблема цілком вкладається в область геопросторової топології: зв’язок між краями А і В існує незалежно від будь-якої атрибуції на ребрах. Але я все ще пропускаю лаконічний спосіб назвати ці стосунки ...
andytilia

Я думаю, що це занадто сильне твердження, щоб сказати, що "Геопросторова топологія ніколи не потребує атрибуції на краях і вузлах", це дійсно для кожного конкретного випадку. Я бачив графіки топології, які містять атрибуцію, яка поділяється між функціями, які мають цей вузол. Прикладами є значення Z або температури. Я б сказав, просто скажіть, називайте його вузлом і робіть розрізнення підключеного вузла, коли це необхідно, але, звичайно, у мене недостатньо контексту загальної проблеми, яку ви намагаєтеся вирішити.
Ragi Yaser Burhum

Ага, правильно, дякую: площинне зображення двох доріг, що перетинають міст. Може бути один вузол з чотирма ребрами, але не всі краї з'єднуються між собою. Отже, вузол повинен містити інформацію про рівні перетину, щоб відрізняти цю ситуацію від перехресної оцінки.
andytilia

1
Рівно :). Ось чому я згадую Junctions. Я думав про той випадок. Один із способів зробити це - представити з'єднання як "головний вузол" із записами FROM-TO. Ситуації з перекриттям / переходом відбуваються постійно. Навіть найгіршими є такі випадки, як Бейдж-Міст або в Чикаго, де у вас є краї, які відповідають двовимірному простору (вони фактично розташовуються один над одним) із набором ребер, що протікають в одну сторону, а інший набір тече іншим шляхом.
Рагі Ясер Бурхум
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.