stringtranslate.com

SPQR-дерево

Граф и его дерево SPQR. Пунктирные черные линии соединяют пары виртуальных ребер, показанных черным цветом; остальные ребра окрашены в соответствии с трехсвязным компонентом, к которому они принадлежат.

В теории графов , разделе математики, трисвязные компоненты двусвязного графа представляют собой систему меньших графов, которые описывают все 2-вершинные разрезы в графе. Дерево SPQR представляет собой древовидную структуру данных, используемую в информатике , а точнее в алгоритмах графов , для представления трисвязных компонентов графа. Дерево SPQR графа может быть построено за линейное время [1] и имеет несколько применений в динамических алгоритмах графов и рисовании графов .

Базовые структуры, лежащие в основе дерева SPQR, трехсвязные компоненты графа и связь между этим разложением и планарными вложениями планарного графа , были впервые исследованы Сондерсом Маклейном  (1937); эти структуры использовались в эффективных алгоритмах несколькими другими исследователями [2] до их формализации в качестве дерева SPQR Ди Баттистой и Тамассией (1989, 1990, 1996).

Структура

Дерево SPQR принимает форму некорневого дерева , в котором для каждого узла x связан неориентированный граф или мультиграф G x . Узел и связанный с ним граф могут иметь один из четырех типов, учитывая инициалы SPQR:

Каждое ребро xy между двумя узлами дерева SPQR связано с двумя направленными виртуальными ребрами , одно из которых является ребром в G x , а другое — ребром в G y . Каждое ребро в графе G x может быть виртуальным ребром максимум для одного ребра дерева SPQR.

Дерево SPQR T представляет собой 2-связный граф G T , сформированный следующим образом. Всякий раз, когда ребро xy дерева SPQR связывает виртуальное ребро ab графа G x с виртуальным ребром cd графа G y , сформируйте один больший граф, объединив a и c в одну супервершину, объединив b и d в другую супервершину и удалив два виртуальных ребра. То есть, больший граф является суммой 2-клики графов G x и G y . Выполнение этого шага склеивания на каждом ребре дерева SPQR создает граф G T ; порядок выполнения шагов склеивания не влияет на результат. Каждая вершина в одном из графов G x может быть связана таким образом с уникальной вершиной в G T , супервершиной, в которую она была объединена.

Обычно в дереве SPQR не допускается, чтобы два узла S были смежными, а также чтобы два узла P были смежными, поскольку если бы возникла такая смежность, два узла могли бы быть объединены в один более крупный узел. При таком предположении дерево SPQR однозначно определяется из его графа. Когда граф G представлен деревом SPQR без смежных узлов P и без смежных узлов S, то графы G x , связанные с узлами дерева SPQR, известны как трисвязные компоненты G .

Строительство

Дерево SPQR данного 2-вершинно-связного графа может быть построено за линейное время . [1]

Задача построения трехсвязных компонентов графа была впервые решена за линейное время Хопкрофтом и Тарьяном (1973). Основываясь на этом алгоритме, Ди Баттиста и Тамассиа (1996) предположили, что полная структура дерева SPQR, а не только список компонентов, должна быть построена за линейное время. После того, как реализация более медленного алгоритма для деревьев SPQR была предоставлена ​​как часть библиотеки GDToolkit, Гутвенгер и Мутцель (2001) предоставили первую реализацию за линейное время. В рамках этого процесса реализации этого алгоритма они также исправили некоторые ошибки в более ранней работе Хопкрофта и Тарьяна (1973).

Алгоритм Гутвенгера и Мутцеля (2001) включает следующие общие шаги.

  1. Отсортируйте ребра графа по парам числовых индексов их конечных точек, используя вариант сортировки по радиусу , который делает два прохода сортировки ведром , по одному для каждой конечной точки. После этого шага сортировки параллельные ребра между теми же двумя вершинами будут соседствовать друг с другом в отсортированном списке и могут быть разделены на P-узел конечного дерева SPQR, оставляя оставшийся граф простым.
  2. Разделить граф на разделенные компоненты; это графы, которые можно сформировать, найдя пару разделяющих вершин, разделив граф в этих двух вершинах на два меньших графа (со связанной парой виртуальных ребер, имеющих разделяющие вершины в качестве конечных точек), и повторяя этот процесс разделения до тех пор, пока не останется больше разделяющих пар. Разделение, найденное таким образом, не является однозначно определенным, поскольку части графа, которые должны стать S-узлами дерева SPQR, будут подразделены на несколько треугольников.
  3. Пометьте каждый разделенный компонент буквой P (разделенный компонент с двумя вершинами и несколькими ребрами), S (разделенный компонент в форме треугольника) или R (любой другой разделенный компонент). Пока существуют два разделенных компонента, которые разделяют связанную пару виртуальных ребер, и оба компонента имеют тип S или оба имеют тип P, объедините их в один более крупный компонент того же типа.

Чтобы найти разделенные компоненты, Гутвенгер и Мутцель (2001) используют поиск в глубину , чтобы найти структуру, которую они называют пальмовым деревом; это дерево поиска в глубину, ребра которого ориентированы от корня дерева, для ребер, принадлежащих дереву, и по направлению к корню для всех остальных ребер. Затем они находят специальную предпорядковую нумерацию узлов в дереве и используют определенные шаблоны в этой нумерации для определения пар вершин, которые могут разделить граф на более мелкие компоненты. Когда компонент находится таким образом, структура данных стека используется для определения ребер, которые должны быть частью нового компонента.

Использование

Нахождение разрезов по 2 вершинам

С помощью SPQR-дерева графа G (без Q узлов) легко найти каждую пару вершин u и v в G, такую, что удаление u и v из G оставляет несвязный граф, а также связные компоненты оставшихся графов:

Представление всех вложений планарных графов

Если планарный граф 3-связен, он имеет единственное планарное вложение с точностью до выбора того, какая грань является внешней гранью, и ориентации вложения: грани вложения являются в точности неразделяющими циклами графа. Однако для планарного графа (с помеченными вершинами и ребрами), который является 2-связным, но не 3-связным, может быть большая свобода в поиске планарного вложения. В частности, всякий раз, когда два узла в дереве SPQR графа соединены парой виртуальных ребер, можно перевернуть ориентацию одного из узлов (заменив его его зеркальным изображением) относительно другого. Кроме того, в узле P дерева SPQR различные части графа, соединенные с виртуальными ребрами узла P, могут быть произвольно переставлены . Все планарные представления могут быть описаны таким образом. [4]

Смотрите также

Примечания

  1. ^ аб Хопкрофт и Тарьян (1973); Гутвенгер и Мутцель (2001).
  2. ^ Например, Hopcroft & Tarjan (1973) и Bienstock & Monma (1988), оба из которых упоминаются Ди Баттистой и Тамассией как прецеденты.
  3. ^ abc Ди Баттиста и Тамассия (1989).
  4. Мак Лейн (1937).

Ссылки

Внешние ссылки