stringtranslate.com

Тестирование планарности

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

Критерии планарности

Алгоритмы проверки планарности обычно используют теоремы теории графов, которые характеризуют набор плоских графов в терминах, независимых от рисунков графов. К ним относятся

Критерий планарности Фрайссейха-Розенштиля может использоваться непосредственно как часть алгоритмов проверки планарности, тогда как теоремы Куратовского и Вагнера имеют косвенное применение: если алгоритм может найти копию K 5 или K 3,3 внутри данного графа, его можно убедитесь, что входной граф не является плоским и вернитесь без дополнительных вычислений.

Другие критерии планарности, которые математически характеризуют планарные графы, но менее важны для алгоритмов тестирования планарности, включают:

Алгоритмы

Метод добавления пути

Классический метод сложения путей Хопкрофта и Тарьяна [1] был первым опубликованным алгоритмом тестирования планарности с линейным временем в 1974 году. Реализация алгоритма Хопкрофта и Тарьяна представлена ​​в Библиотеке эффективных типов данных и алгоритмов Мельхорна , Мутцеля и Нэхер. [2] [3] [4] В 2012 году Тейлор [5] расширил этот алгоритм, чтобы генерировать все перестановки циклического реберного порядка для плоских вложений двусвязных компонентов.

Метод сложения вершин

Методы добавления вершин работают путем поддержания структуры данных, представляющей возможные вложения индуцированного подграфа данного графа, и добавления вершин по одной в эту структуру данных. Эти методы начались с неэффективного метода O( n2 ) , предложенного Лемпелем , Эвеном и Седербаумом в 1967 году. [6] Он был улучшен Эвеном и Тарджаном, которые нашли решение с линейным временем для шага s , t -нумерации, [ 7] и Бутом и Люкером, которые разработали древовидную структуру данных PQ . Благодаря этим улучшениям он работает линейно по времени и на практике превосходит метод сложения путей. [8] Этот метод также был расширен, чтобы обеспечить эффективное вычисление плоского вложения (рисования) для плоского графа. [9] В 1999 году Ши и Сюй упростили эти методы, используя дерево PC (некорневой вариант дерева PQ) и обратный обход дерева поиска вершин в глубину . [10]

Метод добавления ребер

В 2004 году Джон Бойер и Венди Мирволд [11] разработали упрощенный алгоритм O( n ), первоначально вдохновленный методом дерева PQ, который избавляется от дерева PQ и использует добавление ребер для вычисления плоского вложения, если это возможно. В противном случае вычисляется подразделение Куратовского (либо K 5 , либо K 3,3 ). Это один из двух современных алгоритмов на сегодняшний день (второй — алгоритм проверки планарности де Фрессе, Оссона де Мендеса и Розенштиля [12] [13] ). См. [14] экспериментальное сравнение с предварительной версией теста планарности Бойера и Мирволда. Кроме того, тест Бойера-Мирвольда был расширен для извлечения нескольких подразделений Куратовского непланарного входного графа за время работы, линейно зависящее от размера выходного сигнала. [15] Исходный код теста планарности [16] [17] и извлечения нескольких подразделений Куратовского [16] общедоступен. Алгоритмы, позволяющие найти подграф Куратовского в вершинах за линейное время, были разработаны Уильямсоном в 1980-х годах. [18]

Метод последовательности строительства

Другой метод использует индуктивную конструкцию 3-связных графов для постепенного построения плоских вложений каждого 3-связного компонента G (и, следовательно, плоского вложения самого G ). [19] Конструкция начинается с K 4 и определяется таким образом, что каждый промежуточный граф на пути к полной компоненте снова является 3-связным. Поскольку такие графы имеют уникальное вложение (вплоть до переворачивания и выбора внешней грани), следующий больший граф, если он все еще планарный, должен быть уточнением предыдущего графа. Это позволяет свести проверку планарности к простой проверке для каждого шага того, имеет ли следующее добавленное ребро оба конца на внешней грани текущего вложения. Хотя концептуально это очень просто (и дает линейное время работы), сам метод страдает сложностью поиска последовательности построения.

Динамические алгоритмы

Тестирование планарности изучалось в модели динамических алгоритмов , в которой сохраняется ответ на проблему (в данном случае планарность), поскольку граф подвергается локальным обновлениям, обычно в форме вставки/удаления ребер. В случае поступления ребра существует асимпотически точный алгоритм времени обновления обратной функции Аккермана , предложенный Ла Путре [20] и усовершенствовавший алгоритмы Ди Баттисты, Тамассиа и Уэстбрука. [21] [22] [23] В полностью динамическом случае, когда ребра одновременно вставляются и удаляются, существует логарифмическая нижняя граница времени обновления Патрашку и Демэна , [24] и полилогарифмический алгоритм времени обновления Холма и Ротенберг [25] усовершенствовал сублинейные алгоритмы времени обновления Эппштейна , Галила , Итальяно , Сарнака и Спенсера. [26] [27]

Рекомендации

  1. ^ Хопкрофт, Джон ; Тарьян, Роберт Э. (1974), «Эффективное тестирование планарности», Журнал Ассоциации вычислительной техники , 21 (4): 549–568, doi : 10.1145/321850.321852, hdl : 1813/6011 , S2CID  6279825.
  2. ^ Мельхорн, Курт ; Мутцель, Петра (1996), «На этапе внедрения алгоритма проверки планарности Хопкрофта и Тарьяна» (PDF) , Algorithmica , 16 (2): 233–242, doi : 10.1007/bf01940648, hdl : 11858/00-001M- 0000-0014-B51D-B , S2CID  10014462
  3. ^ Мельхорн, Курт ; Мюцель, Петра ; Нэхер, Стефан (1993), Реализация теста планарности Хопкрофта и Тарьяна и алгоритма встраивания
  4. ^ Мельхорн, Курт ; Нэхер, Стефан (1995), «LEDA: библиотека эффективных типов данных и алгоритмов», Communications of the ACM , 38 (1): 96–102, CiteSeerX 10.1.1.54.9556 , doi : 10.1145/204865.204889, S2CID  2560175 
  5. ^ Тейлор, Мартин Г. (2012). Тестирование планарности путем сложения путей (доктор философии). Кентский университет. Архивировано из оригинала 05 марта 2016 г.Альтернативный URL
  6. ^ Лемпель, А .; Эвен, С .; Седербаум, И. (1967), «Алгоритм проверки планарности графов», Розенстиль, П. (редактор), Теория графов , Нью-Йорк: Гордон и Брич, стр. 215–232..
  7. ^ Эвен, Шимон ; Тарьян, Роберт Э. (1976), «Вычисление нумерации st », Theoretical Computer Science , 2 (3): 339–344, doi : 10.1016/0304-3975(76)90086-4.
  8. ^ Бойер и Мирвольд (2004), с. 243: «Его реализация в LEDA медленнее, чем реализации LEDA многих других алгоритмов планарности за O( n )-время».
  9. ^ Чиба, Н.; Нишизеки, Т. ; Абэ, А.; Озава, Т. (1985), «Линейный алгоритм внедрения плоских графов с использованием PQ-деревьев», Journal of Computer and System Sciences , 30 (1): 54–76, doi : 10.1016/0022-0000(85)90004- 2.
  10. ^ Ши, ВК; Сюй, WL (1999), «Новый тест планарности», Theoretical Computer Science , 223 (1–2): 179–191, doi : 10.1016/S0304-3975(98)00120-0.
  11. ^ Бойер, Джон М.; Мирволд, Венди Дж. (2004), «На острие: упрощенная планарность O(n) путем сложения ребер» (PDF) , Журнал графовых алгоритмов и приложений , 8 (3): 241–273, doi : 10.7155/jgaa .00091.
  12. ^ де Фрессе, Х.; Оссона де Мендес, П. ; Розенштиль, П. (2006), «Деревья Тремо и плоскостность», Международный журнал основ компьютерных наук , 17 (5): 1017–1030, arXiv : math/0610935 , Bibcode : 2006math.....10935D, doi : 10.1142/S0129054106004248, S2CID  40107560.
  13. ^ Брандес, Ульрик (2009), Тест на плоскость слева направо (PDF).
  14. ^ Бойер, Джон М.; Кортезе, ПФ; Патриньяни, М.; Баттиста, Г.Д. (2003), «Хватит думать о своих P и Q: реализация быстрого и простого алгоритма тестирования планарности и внедрения на основе DFS», Proc. 11-й Международный. Симп. Рисование графиков (GD '03) , Конспекты лекций по информатике , вып. 2912, Springer-Verlag, стр. 25–36.
  15. ^ Чимани, М.; Мутцель, П. ; Шмидт, Дж. М. (2008). «Эффективное извлечение нескольких подразделений Куратовского». Учеб. 15-й Международный. Симп. Рисование графика (GD'07) . Конспекты лекций по информатике. Том. 4875. Сидней, Австралия: Springer-Verlag. стр. 159–170. дои : 10.1007/978-3-540-77537-9_17. ISBN 978-3-540-77536-2..
  16. ^ ab «OGDF — Открытая среда рисования графов: Начало» .
  17. ^ «Библиотека графов повышения: тестирование/встраивание планарности Бойера-Мирвольда - 1.40.0» .
  18. ^ Уильямсон, С.Г. (1984), «Поиск в глубину и подграфы Куратовского», Журнал ACM , 31 (4): 681–693, doi : 10.1145/1634.322451 , S2CID  8348222
  19. ^ Шмидт, Йенс М. (2014), «Последовательность Мондшейна», Автоматы, языки и программирование; Материалы 41-го Международного коллоквиума по автоматам, языкам и программированию (ICALP'14) , Конспекты лекций по информатике, том. 8572, стр. 967–978, номер домена : 10.1007/978-3-662-43948-7_80, ISBN. 978-3-662-43947-0
  20. ^ Ла Путре, Йоханнес А. (1994), «Альфа-алгоритмы для пошагового тестирования планарности», Труды двадцать шестого ежегодного симпозиума ACM по теории вычислений (STOC) , стр. 706–715, doi : 10.1145/195058.195439, S2CID  16799743
  21. ^ Ди Баттиста, Джузеппе; Тамассиа, Роберто (1996), «Онлайн-обслуживание трехсвязных компонентов с помощью SPQR-деревьев», Algorithmica , 15 (4): 302–318, doi : 10.1007/BF01961541, S2CID  7838334
  22. ^ Тамассиа, Роберто (1996), «Вложение планарных графов в режиме онлайн», Journal of Algorithms , 21 (2): 201–239, doi : 10.1006/jagm.1996.0044
  23. ^ Уэстбрук, Джеффри (1992), «Быстрое инкрементальное тестирование планарности», Автоматы, языки и программирование, 19-й Международный коллоквиум, ICALP92 , doi : 10.1007/3-540-55719-9_86
  24. ^ Патрашку, Михай ; Демейн, Эрик (2004), «Нижние границы динамической связности», Труды четырнадцатого ежегодного симпозиума ACM-SIAM по дискретным алгоритмам , стр. 546–553, doi : 10.1145/1007352.1007435, ISBN 1581138520, S2CID  2121130
  25. ^ Холм, Джейкоб; Ротенберг, Ева (2020). «Полностью динамическое тестирование планарности за полилогарифмическое время». У Макарычева Константина; Макарычев Юрий; Тулсиани, Мадхур; Камат, Гаутама; Чужой, Юлия (ред.). Материалы 52-го ежегодного симпозиума ACM SIGACT по теории вычислений, STOC 2020, Чикаго, Иллинойс, США, 22-26 июня 2020 г. Ассоциация вычислительной техники. стр. 167–180. arXiv : 1911.03449 . дои : 10.1145/3357713.3384249.
  26. ^ Эппштейн, Дэвид; Галил, Цви; Итальяно, Джузеппе; Спенсер, Томас (1996), «Разреженность на основе сепаратора: I. проверка планарности и минимальные остовные деревья», Журнал компьютерных и системных наук , doi : 10.1006/jcss.1996.0002
  27. ^ Галил, Цви; Итальяно, Джузеппе; Сарнак, Нил (1999), «Полностью динамическое тестирование планарности с помощью приложений», Журнал ACM , 46 : 28–91, doi : 10.1145/300515.300517 , S2CID  7009330