Научная статья на тему 'Проверка планарности и построение топологического рисунка плоского графа (поиском в глубину)'

Проверка планарности и построение топологического рисунка плоского графа (поиском в глубину) Текст научной статьи по специальности «Математика»

CC BY
1630
93
i Надоели баннеры? Вы всегда можете отключить рекламу.
Область наук
Ключевые слова
ГРАФ / ПЛАНАРНОСТЬ / ВИЗУАЛИЗАЦИЯ ГРАФА / ТОПОЛОГИЧЕСКИЙ РИСУНОК ГРАФА / АЛГОРИТМЫ НА ГРАФАХ / ВРАЩЕНИЕ ВЕРШИН / ИЗОМЕТРИЧЕСКИЕ ЦИКЛЫ / GRAPH / PLANARITY / GRAPH VISUALIZATION / TOPOLOGICAL GRAPH DRAWING / GRAPH ALGORITHMS / VERTICES ROTATION / ISOMETRIC CYCLES

Аннотация научной статьи по математике, автор научной работы — Курапов Сергей Всеволодович, Давидовский Максим Владимирович

Рассматривается алгоритм проверки графа на планарность с одновременным построением математических структур для описания топологического рисунка плоского графа. Такими математическими структурами являются изометрические циклы и вращение вершин графа. Показано, что система изометрических циклов графа индуцирует вращение вершин для описания топологического рисунка плоского графа. В отличие от классических алгоритмов проверки планарности, например алгоритма Хопкрофта Тарьяна, полученный в результате работы алгоритма топологический рисунок используется для визуализации плоского графа. Вычислительная сложность алгоритма определяется как O(m2), где m количество рёбер графа.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Planarity testing and constructing the topological drawing of a plane graph (DFS)

In this article we present a new graph planarity testing algorithm along with the construction of mathematical framework used for representing topological drawings of plane graphs. This mathematical framework is based on the notions of graph isometric cycles and rotation of graph vertices. It is shown that the system of isometric cycles of a graph induces the rotation of its vertices for representing topological drawing of the plane graph. In contrast to the classical planarity testing algorithms, e. g. the Hopcroft Tarjan algorithm, the topological drawing obtained as a result of the proposed algorithm execution is used subsequently for the visualization of the planar graph. Computational complexity of the proposed algorithm is estimated by O(m2), where m is the number of edges in the graph.

Текст научной работы на тему «Проверка планарности и построение топологического рисунка плоского графа (поиском в глубину)»

2016 Прикладная теория графов №2(32)

ПРИКЛАДНАЯ ТЕОРИЯ ГРАФОВ

УДК 519.172

ПРОВЕРКА ПЛАНАРНОСТИ И ПОСТРОЕНИЕ ТОПОЛОГИЧЕСКОГО РИСУНКА ПЛОСКОГО ГРАФА (ПОИСКОМ В ГЛУБИНУ)

С. В. Курапов, М. В. Давидовский

Запорожский национальный университет, г. Запорожье, Украина

Рассматривается алгоритм проверки графа на планарность с одновременным построением математических структур для описания топологического рисунка плоского графа. Такими математическими структурами являются изометрические циклы и вращение вершин графа. Показано, что система изометрических циклов графа индуцирует вращение вершин для описания топологического рисунка плоского графа. В отличие от классических алгоритмов проверки планарности, например алгоритма Хопкрофта — Тарьяна, полученный в результате работы алгоритма топологический рисунок используется для визуализации плоского графа. Вычислительная сложность алгоритма определяется как O(m2), где m — количество рёбер графа.

Ключевые слова: граф, планарность, визуализация графа, топологический рисунок графа, алгоритмы на графах, вращение вершин, изометрические циклы.

DOI 10.17223/20710410/32/7

PLANARITY TESTING AND CONSTRUCTING THE TOPOLOGICAL DRAWING OF A PLANE GRAPH (DFS)

S. V. Kurapov, M. V. Davidovsky

Zaporizhzhya National University, Zaporizhzhya, Ukraine

E-mail: [email protected], [email protected]

In this article we present a new graph planarity testing algorithm along with the construction of mathematical framework used for representing topological drawings of plane graphs. This mathematical framework is based on the notions of graph isometric cycles and rotation of graph vertices. It is shown that the system of isometric cycles of a graph induces the rotation of its vertices for representing topological drawing of the plane graph. In contrast to the classical planarity testing algorithms, e. g. the Hopcroft — Tarjan algorithm, the topological drawing obtained as a result of the proposed algorithm execution is used subsequently for the visualization of the planar graph. Computational complexity of the proposed algorithm is estimated by O(m2), where m is the number of edges in the graph.

Keywords: graph, planarity, graph visualization, topological graph drawing, graph algorithms, vertices rotation, isometric cycles.

Введение

Для решения прикладных задач, например при создании систем автоматизации проектирования плоских конструктивов [1, 2], необходимо иметь математический аппарат, описывающий рисунок плоского графа для визуализации его изображения [3 -6]. Покажем, что такими математическими структурами являются изометрические циклы графа [7, 8] и вращение вершин графа [9]. Будем рассматривать простые несе-парабельные неориентированные графы.

Определение 1. Несепарабельным графом будем называть связный неориентированный граф без петель и кратных рёбер, без мостов и точек сочленения, без вершин с локальной степенью меньшей или равной двум.

Пусть О = (X, и) — несеперабельный граф с пронумерованным множеством рёбер и = (п1,п2,... , «т} и вершин X = [х\,х2,... , хп}. Обычно граф О представляется матрицей инциденций или матрицей смежностей. Графически граф может быть представлен диаграммой, в которой вершина изображена точкой или кружком, а ребро — отрезком линии, соединяющим вершины [10-12]. В случае планарного графа всегда имеется возможность проведения соединений (рёбер графа) без пересечений, причём такое представление не зависит от расположения вершин и характера проведения соединений. Это представление планарного графа называется плоским изображением графа (рис. 1).

Рис. 1. Различные диаграммы графа С

1. Топологический рисунок графа

Существуют структуры, которые являются общими для любого плоского изображения графа. Рассмотрим множество простых циклов, являющихся границами граней плоского изображения. Как пример рассмотрим граф О на рис. 1. Запишем множество

граничных циклов в виде элементов пространства суграфов:

С1 = {«2, «5,«1о} С2 = {«з,«5,«12} Сз = {«8, «10, «12}; С4 = {«8, «9,«11} с5 = {«6,«7 ,«9}; С6 = {«з,«4,«и}; с7 = {м1,м4,«7}; с8 = {«1 ,«2,«6}.

Цикломатическое число определяет количество независимых циклов графа V(С) = т — п +1. Кольцевая сумма независимых циклов определяет обод.

Если задать направление обхода рёбер в циклах с соблюдением условия планарно-сти Маклейна [13], то можно записать циклы как кортежи вершин (рис. 2):

С1 = {«2, «5, «1о} ^ (Х ,Жз,Жб); С2 = {«з, «5, «12} ^ (хЬ Хб, Х4); Сз = {«8, «10, «12} ^ (Х4,Хб,Хз); С4 = {«8, «9, «11} ^ (^4,^3,^5); С5 = {«6, «7, «9} ^ (Хз,Х2,Х5); Сб = {«з,«4,«и} ^ (Х,^5,^1);

с7 = {«1,«4,«7} ^ (х1 ,х5,х2); с8 = {«1,«2,«6} ^ (х1,х2,хз).

Рис. 2. Задание направления обхода рёбер в циклах

С другой стороны, заданное подмножество циклов с направлением обхода рёбер порождает (индуцирует) определённый циклический порядок расположения смежных вершин для каждой вершины (рис. 3).

Рис. 3. Вращение вершины Х1

Определение 2. Для данного графа О вращение вершины А графа О — это ориентированный циклический порядок (или циклическая перестановка) всех рёбер, инцидентных вершине А.

Вращение графа можно описывать и представлять следующим образом. Выпишем циклическую перестановку соседей для каждой вершины х^. Эта перестановка порождается вращением вершины х^, которое является циклической перестановкой рёбер, инцидентных вершине х^.

Вращение вершины х^ обозначим Н^. Вращение всех вершин описывается диаграммой вращения вершин Н. В нашем случае диаграмма имеет следующий вид:

h1 Х2 x5 x4 xe x3

h2 Х3 x5 x1

h3 x1 xe x4 x5 x2

h4 xe x1 x5 x3

h5 x4 x1 x2 x3

he Х1 x4 x3

Пусть x1 —вершина, инцидентная ребру u в графе G с вращением h. Построим в графе G замкнутый маршрут

x1, M1, x2, И2, Хз, И3, . . . ,

где вершина x2 — второй конец ребра u1, а ребро и2 следует за ребром u1 во вращении вершины x2, определяемом вращением h. Затем определяется x3 как вершина, инцидентная ребру и2 и не равная x2. После этого в качестве и3 выбирается ребро, следующее за ребром и2 во вращении вершины x3, и т. д. Закончим процесс в точности перед тем моментом, когда должна повториться пара x1, u1. Она должна повториться, ибо граф G конечный, а процесс однозначно определён и в обратном направлении, а именно: если часть xt-1, xt,... известна, то ребро ut-1 определяется вращением вокруг вершины xt-1. Назовём такой замкнутый маршрут циклом, порождённым вершиной x1 и ребром u1 и индуцированным вращением h.

Тем самым вращение вершин h индуцирует (порождает) простые циклы. В свою очередь, система независимых циклов и обод индуцируют вращение вершин h.

Введём следующие понятия, связанные с метрикой графа.

Определение 3 [8]. Изометрический подграф — подграф G' графа G, у которого все расстояния внутри G' те же самые, что ив G.

Определение 4. Изометрическим циклом в графе называется простой цикл, для которого кратчайший путь между любыми двумя его вершинами состоит из рёбер этого цикла. Изометрический цикл — частный случай изометрического подграфа.

В таком цикле между любыми двумя его несмежными вершинами в графе G не существует маршрутов меньшей длины, чем маршруты, принадлежащие данному циклу.

Предположим, что планарный граф G вложен в евклидову плоскость, причем выполняется такое свойство: граница любой внутренней грани — изометрический цикл графа G. Теперь можно дать определение топологического рисунка графа.

Определение 5. Топологическим рисунком планарного графа назовём одинаково направленное вращение всех его вершин h, индуцирующее множество изометрических циклов графа, которое удовлетворяет критерию планарности Маклейна [6].

Один из алгоритмов проверки графа на планарность разработан в 1970 г. Дж. Хоп-крофтом и Р. Тарьяном [14]. Авторы предложили алгоритм, требующий O(n log n) единиц времени, который они, в конечном счёте, улучшили до O(n), где n — количество вершин графа. Алгоритм устанавливает планарность графа, но его применение вызывает определённые затруднения при дальнейшем решении задачи визуализации рисунка графа.

В данной работе представлен алгоритм проверки графа на планарность с одновременным получением топологического рисунка графа. Определим необходимый понятийный аппарат и опишем алгоритм проверки графа на планарность, не вдаваясь в детальное описание вспомогательных алгоритмов.

2. Выделение DFS-дерева графа

Описание будем проводить на примере графа G, представленного на рис. 4. Алгоритмом поиска в глубину выбираем дерево графа (рис. 5) и пронумеровываем вершины (рис. 6).

Рис. 4. Граф G Рис. 5. DFS-дерево графа G

Рис. 6. Нумерация вершин графа G

Ориентированное остовное дерево, которое получается в результате поиска в глубину на простом неориентированном графе, будем называть ВЕБ-деревом [15]. В результате построения такого ВЕБ-дерева образуются обратные рёбра, которые на рис. 6 изображены пунктирными линиями. Они характерны тем, что номер вершины истока всегда больше номера вершины стока.

3. Построение опорного цикла и путей

Предлагаемый метод проверки графа на планарность основан на простом свойстве проверки пересечения обратных хорд для выделенного дерева графа. Используя

фундаментальную матрицу циклов, выберем самый длинный цикл, образованный ветвями дерева и одной хордой. Пусть это будет цикл (а, Ь, с, е, /, д, Л, а). Данный цикл будем называть опорным. Опорный цикл состоит из ориентированных ветвей дерева (а, Ь), (Ь, с), (с, е), (е, /), (/, д), (д, Л) и ориентированного обратного ребра (Л, а). Формируем Х1 —подмножество вершин, включённых в опорный цикл.

Определение 6. Обратным ребром называется ориентированный маршрут, состоящий из одной хорды.

Определение 7. Обратным путём называется ориентированный маршрут, состоящий из последовательно расположенных ветвей дерева и одной и только одной хорды; концевые вершины такого маршрута принадлежат опорному циклу.

Очевидно, что обратные рёбра являются частным случаем обратных путей. Множество обратных путей и обратных рёбер будем называть множеством обратных маршрутов.

Формируем маршруты, состоящие из обратных рёбер, вершины которых принадлежат опорному циклу. Это следующие обратные рёбра: (д, а), (/, Ь), (Л, с), (Л, Остались обратные рёбра (г,^), (г,е) и ребро дерева (д,г). Формируем обратные пути следующим образом. Для каждого пути выбираем рёбра дерева, соединяющие вершины, которые не принадлежат опорному циклу, и одно обратное ребро так, чтобы концевые вершины обратного маршрута принадлежали опорному циклу. В нашем случае это будет обратный путь (д, е) = (д, г) + (г, е) (либо можно сформировать другой обратный путь (д, = (д, г) + (г,^)). Располагаем все выбранные маршруты, кроме обратного ребра (г,^), не имеющего смежной вершины с вершинами опорного цикла, внутри опорного цикла (а, Ь, с, е, /, д, Л, а) (рис.7). Формируем множество Х2 С X вершин графа, не принадлежащих опорному циклу. Вершина г не принадлежит опорному циклу, поэтому включается в множество Х2.

Рис. 7. Расположение обратных путей внутри опорного цикла

Определение 8 [16]. Координатно-базисная система —это замкнутая последовательность ориентированных дуг графа.

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

координатно-базисную систему имеет вид (см. рис. 7)

Рг(#, а) = + а) = ^ ^ а);

рг(/ Ь) = (/, д) + ^ + а) + (а Ь) = (/ ^ а);

рг(й, с) = (й, а) + (а, Ь) + (Ь, с) = (й, а, Ь, с); рг(й, е) = (й, а) + (а, Ь) + (Ь, с) + (с, е) = (й, а, Ь, с, е); рг(д, е) = (д, й) + (й, а) + (а, Ь) + (Ь, с) + (с, + е) = (д, й, а, Ь, с, е).

4. Определение пересечения обратных маршрутов

Будем рассматривать попарное пересечений маршрутов как множественное пересечение их проекций. Если пересечение двух подмножеств пусто или одно подмножество включается в другое, то обратные маршруты не пересекаются; иначе пара обратных маршрутов пересекается. Для нашего примера:

рг(д, а) П рг(/, Ь) = (д, Л,, а) С (/, д, Л,, а, Ь) — пересечения нет; рг(д, а) П рг(й, с) = (д, й, а) П (й, а, Ь, с) = {й, а} — пересечение есть; рг(д, а) П рг(й, = (д, й, а) П (й, а, Ь, с, = {й, а} — пересечение есть; рг(д, а) П рг(д, е) = (д, й, а) С (д, Л,, а, Ь, с, е) — пересечения нет; рг(/, Ь) П рг(й, с) = (/, д, й, а, Ь) П (й, а, Ь, с) = {й, а, Ь} — пересечение есть; рг(/, Ь) П рг(й, = (/, д, й, а, Ь) П (й, а, Ь, с, = {й, а, Ь} — пересечение есть; рг(/, Ь) П рг(д, е) = (/, д, й, а, Ь) П (д, й, а, Ь, с, е) = {й, а, Ь} — пересечение есть;

рг(й, с) П рг(й, = (й, а, Ь, с) С (й, а, Ь, с, — пересечения нет; рг(й, с) П рг(д, е) = (й, а, Ь, с) С (д, Л,, а, Ь, с, е) — пересечения нет; рг(й, П рг(д, е) = (й, а, Ь, с, С (д, Л,, а, Ь, с, е) — пересечения нет.

Составим таблицу пересечения маршрутов:

Путь Пересекаются Не пересекаются

(д,а) (Л, с), (Л, (/,6), (д, е)

(/,6) (Л,с) (д е) (д,а)

(Л, с) (д,а), (/, 6) ^ (д е)

(М) М, (/, 6) ^ (д е)

(д,е) (/,6) (д, а), (Л, с), (Л,

Используя методы алгебры логики, образуем два множества обратных маршрутов, не пересекающихся между собой: = {(д,а), (/, Ь)}, М2 = {(й,с), (Л.,^), (д,е)}. Расположим множества маршрутов М2 внутри опорного цикла, а множество обратных маршрутов Ы\ — вне опорного цикла (рис.8). Таким образом, поверхность разделилась на две части: внутреннюю и внешнюю.

Определение 9. Обруч — это простой цикл, образованный кольцевой суммой изометрических циклов, каждый из которых имеет по крайней мере одно общее ребро с другим изометрическим циклом.

Заметим, что изометрический цикл можно рассматривать как частный случай обруча. В свою очередь, обратные рёбра и обратные пути разбивают поверхности на грани, где границами граней служат обручи [12].

Рис. 8. Размещение обратных маршрутов внутри и вне опорного цикла

5. Нахождение обручей

Для определения обручей поступим следующим образом. Так как исходный граф неориентированный, для внутренних граней обручи будут характеризоваться расположением ориентированных рёбер по часовой стрелке (рис. 9), а для внешних граней — против часовой стрелки (рис. 10). Обратное ребро заменим неориентированным ребром или двумя разнонаправленными ориентированными дугами. Будем искать обручи.

Рис. 9. Размещение обратных маршрутов внутри опорного цикла

Рис. 10. Размещение обратных маршрутов вне опорного цикла

Для графа, представленного на рис. 9, запишем матрицу смежностей, сохраняя порядок следования вершин в опорном цикле:

aЪcdefgh

а

Ъ

с

а

е

I д

h

Диагональ матрицы, состоящей из помеченных элементов, назовём верхней. Она состоит из ориентированных рёбер, принадлежащих опорному циклу.

В матрице выбираем первый встречный элемент, принадлежащий обратному ребру. Рассматривая соответствующую строку матрицы, отмечаем вершину, принадлежащую данному элементу. Переходим на верхнюю диагональ и, проходя по диагонали, последовательно находим строку, содержащую в столбце отмеченную вершину. Например, в строке с вершиной с выбираем столбец Л, переходим на верхнюю диагональ и, последовательно проходя по диагонали, в строке вершины Ь находим столбец, содержащий вершину с. Тем самым мы сформировали обруч (с, Л, а,Ь, с). После выделения цикла (е, Н, а, Ь, с) удаляем из матрицы отмеченные элементы. В новой матрице выбираем противоположное ребро (Л, с) и строим обруч (Л, с, Л):

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

а Ъ

с

а

е

I д

h

После выделения обруча (Л, с, й, Н) с участием обратного ребра Л) матрица приобретает вид, в котором отсутствуют отмеченные элементы. Выбираем противоположное ребро (Л, и строим обруч (Л, е, /, д, Л):

а

Ъ

с

а

е

I д

h

После выделения граничного обруча (Л, е, /, д, Л) в матрице смежностей остается только одно неориентированное ребро ((е,д), (д,е)). Находим обруч, содержащий вершины е и д — (Л, е, /, д, Л). Представляем этот обруч в виде суммы ориентированных рёбер и добавляем ориентированные рёбра ((е,д) + (д,е)):

(Л, + (¿, е) + (е, /) + (/, д) + (д, Л) + ((е, д) + (д, е)).

Переориентируем последовательность ориентированных рёбер и получаем два новых обруча: (М) + (¿, е) + (е, д) + (д, Л) и (е, /) + (/,д) + (д, е).

Для графа, представленного на рис. 10, строим матрицу смежностей с верхней диагональю:

1

1

1 1

1 1

1 1

1

1 1

1 1 1

а Ъ с а е I д п.,

1

1 1

1 1

1

1 1

1 1

а Ъ с а е I д п.,

1

1 1

1

1 1

1

ahgfedcЪ

а

h д

I

е

а

с

Ъ

В матрице выбираем первый встречный элемент, принадлежащий обратному ребру. Рассматривая соответствующую строку матрицы, отмечаем вершину, принадлежащую данному элементу. Переходим на верхнюю диагональ и, проходя по диагонали, последовательно находим строку, содержащую отмеченную вершину. Например, в строке, содержащей вершину а, выбираем столбец д, переходим на верхнюю диагональ, последовательно проходя по верхней диагонали, в строке Н находим столбец, содержащий вершину а. Формируем обруч (а, д, /,е^,е,Ь,а). Строим новую матрицу. Выбираем противоположное ребро (д,а) и строим обруч (д,а,Н,д):

а

h д

I

е

а

с Ъ

После выделения обруча (д,а,Н,д) в матрице смежностей остаётся только одно неориентированное ребро ((¡,Ь), (Ь, /)). Находим обруч, содержащий вершины f и Ь. Это цикл (а, д, f,e,d,c,Ь,a). Представляем его в виде суммы ориентированных рёбер и добавляем ориентированные дуги (^,Ь) + (Ь^)):

(а, д) + (д, f) + и, е) + (е, d) + (д, с) + (с, Ь) + (Ь, а) + ((У, Ь) + (Ь, У)).

Переориентируем последовательность ориентированных рёбер и получаем два новых обруча: (а,д) + (д,1') + (У, Ь) + (Ь,а) и (¡',е) + (е,д) + (д,с) + (с,Ь) + (Ь,У).

Таким образом, получена система обручей, описывающая процесс разбиения пространства К2 на грани, причём сумма всех обручей, согласно теореме Маклейна, есть пустое множество:

т—п+2

Е с = 0.

3=1

Система обручей имеет следующий вид:

с\ = (с, Н) + (Н, а) + (а, Ь) + (Ь, с) = (с, Н, а, Ь, с);

с2 = (Н, с) + (с, д) + (д, Н) = (Н, с, d, Н); сз = (Н, д) + (д, е) + (е, д) + (д, Н) = (Н, д, е, д, Н); с4 = (e, и) + (Л д) + (g, е) = (e, f, g, е); с5 = (д, а) + (a, Н) + (Н, д) = (g, a, Н, д); сб = (а,д) + (д^) + (f,Ь) + (Ь,а) = (a,g,f,Ь,a); с7 = (Л е) + (е, д) + (д, с) + (с, Ь) + (Ь, f) = (¡', е, д, с, Ь, f).

1 1

1

1 1

1 1

1

1

1

1 1

а п., д I е а с Ъ

1

1

1

1

1

6. Ввод вершин, не принадлежащих опорному циклу

Введём вершину г, ранее не участвовавшую в процессе построения топологического рисунка графа. Вершина г расположена между вершинами д и е в маршруте (д, е) и в маршруте (е,д). Расположим вершину г в новых обручах С3 и С4:

Сз = (Л, + е) + (е, г) + (г, д) + (д, Л,) = (Л, е, г, д, Л);

С4 = (е /) + (/, д) + (g, г) + е) = (e, /, g, г, е).

Введём ребро ((г, + г)), ранее не участвовавшее в процессе построения топологического рисунка, в обруч с3, охватывающий вершины г и

Сз = (М) + (й,е) + (е, г) + (г,д) + (д,Л) + ((г, й) + (й, г)).

Переориентируем последовательность ориентированных рёбер и получим два новых обруча:

Сз = (Л, ¿) + (й, г) + (г, д) + (д, Л) = (Л, г, д, Л); Сз = (е,г) + (г, й) + е) = (е,гДе).

Все обратные пути и обратные рёбра построены. Добавляем обод, рассчитанный по

т—п+1

формуле Со = — Сг. Полученная система изометрических циклов формирует

г=1

диаграмму вращения вершин и описывает топологический рисунок плоского графа (рис. 11)

Диаграмма вращения вершин

Н(а)

т т

цс)

К(е)

Ш) %) Н(Н)

т

н ь

а с Н ] Н г

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

I ]

9 Ь

а I

9]

9 е

9

I ь

с ]

Рис. 11. Топологический рисунок графа

7. Алгоритм проверки планарности и построения топологического рисунка планарного графа (поиском в глубину)

Опишем алгоритм проверки планарности и построения топологического рисунка планарного графа. Вычислительную сложность алгоритма представим как сумму элементарных процессов в зависимости от количества рёбер графа. Сложность построения подмножества хорд графа можно определить функцией /1(т) = т—п+1; процесса парного пересечения хорд — функцией /2(т) = (т — п + 1)(т — п)/2; вычислительную сложность выделения изометрических циклов можно определить как удвоенное количество хорд и описать функцией /3(т) = 2(т — п +1). В результате получим вычислительную сложность алгоритма 0(т2).

е

с

е

Н

а

Алгоритм 1. Проверка планарности и построение топологического рисунка планар-ного графа

1: Инициализация. Задан пронумерованный несепарабельный граф С.

2: Построение БЕБ-дерева. Поиском в глубину выделяем БЕБ-дерево графа.

3: Выделение опорного цикла. Строим матрицу фундаментальных циклов графа и выделяем цикл максимальной длины — опорный цикл.

4: Формирование обратных путей. Разбиваем множество вершин на подмножества Х1 и Х2 — включённых и не включённых в опорный цикл. Формируем обратные пути из матрицы фундаментальных циклов путём соединения хорды и элементов соответствующей строки, состоящей только из вершин подмножества Х2.

5: Обратный путь — петля? Если имеется обратный путь, состоящий только из вершин подмножества Х1, то этот обратный путь — петля, идём на шаг 3.

6: Определение проекций обратных путей. Проекции обратных путей состоят из элементов соответствующей строки хорды в матрице фундаментальных циклов, принадлежащих вершинам подмножества Х1 .

7: Определение минимальной длины проекции обратного пути. Если нет проекции обратного пути длины, меньшей самого обратного пути, то идём на шаг 9.

8: Перестройка БЕБ-дерева. Включаем вершины выбранного обратного пути в опорный цикл и перестраиваем БЕБ-дерево. Если необходимо — удаляем вершины из опорного цикла. Параллельно перестраивается матрица фундаментальных циклов и подмножества вершин Х1 и Х2; идём на шаг 5.

9: Определение пересечения обратных путей. Распределяем обратные пути по группам. Определяем проекцию обратных путей и обратных рёбер на опорный цикл. Попарно просматривая множественное пересечение проекций обратных маршрутов, определяем их пересечение. 10: Формирование непересекающихся подмножеств обратных маршрутов М1 и М2.

Если сформировать такие множества нельзя, граф не планарен, идём на шаг 15. 11: Выделение обручей. Методом, основанным на выделении ориентированных циклов

в упорядоченной матрице смежностей, формируем систему обручей. 12: Введение вершин из подмножества Х2. Располагаем в соответствующих обручах в определённом порядке вершины из подмножества Х2, ранее не участвовавшие в процессе построения топологического рисунка графа. 13: Проведение оставшихся обратных рёбер. Строим изометрические циклы, помещая вновь введённые обратные рёбра внутрь соответствующих обручей с проверкой на пересечение. Если имеется пересечение, то граф непланарный, идём на шаг 15. 14: Построение рисунка планарного графа. Для выделенного базиса подпространства циклов, состоящего из изометрических циклов и обода, формируем диаграмму вращений вершин графа и получаем топологический рисунок плоского графа. 15: Конец работы алгоритма.

Заключение

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

Отличительной особенностью представленного метода является введение операции определения пересечения рёбер как пересечения их проекций на координатно-базис-ную систему, в качестве которой выступает опорный цикл ВЕБ-дерева графа. Введение опорного цикла разбивает оставшуюся часть графа на множество обратных маршрутов, а применение операции проверки рёбер на пересечение позволяет распределить обратные маршруты на те, которые находятся внутри опорного цикла, и вне его. С целью получения минимального количества обратных путей производится перестройка ВЕБ-дерева графа для выделения опорного цикла большей длины. Обратные пути совместно с рёбрами опорного цикла образуют обручи графа. В свою очередь, обручи позволяют выделить изометрические циклы графа. Выделенные изометрические циклы, удовлетворяющие условию теоремы Маклейна, индуцируют вращение вершин графа, тем самым порождая топологический рисунок плоской части графа. Топологический рисунок позволяет описывать процесс планаризации алгебраическими методами, не производя никаких геометрических построений на плоскости. Получение вращения вершин графа сразу решает две важнейшие задачи теории графов: проверки на планарность и построения топологического рисунка плоского графа. Построение топологического рисунка плоского графа является основой для дальнейшего построения топологического рисунка непланарного графа с заданными характеристиками, а также служит основой для геометрического построения рисунка графа (визуализации).

К недостаткам алгоритма можно отнести его сложность. Сегодня существуют эффективные алгоритмы, позволяющие определить, является ли граф планарным, с линейной от количества вершин графа сложностью. Предложенный в работе алгоритм обладает сложностью 0(т2). В то же время, в отличие от алгоритмов с линейной сложностью, предложенный алгоритм позволяет получить топологический рисунок графа, который может затем использоваться для визуализации графа. В свою очередь, визуализация планарных графов является важнейшей подзадачей при проектировании сложных изделий и систем, плоских конструктивов, анализе социальных сетей, а также при решении других актуальных прикладных задач. Важно отметить, что использование топологического подхода позволяет создавать многовариантные системы автоматизированного проектирования плоских конструктивов и других сложных систем, так как многовариантность построения множества плоских частей непланарного графа позволяет получить множество решений. Так, на основе понятия топологического рисунка графа и предложенного в данной работе алгоритма авторами разработан топологический подход к проведению соединений в плоских конструктивах [2]. В дальнейшем планируется развивать предложенный подход для полного решения задачи построения общего рисунка всех соединений в плоском конструктиве и нахождения оптимального решения с учётом конструкторских и технологических требований.

Визуализация планарных графов играет важную роль в различных сферах научных исследований и актуальна для многих прикладных областей. Глубокие теоретические результаты, полученные в дискретной математике и в теории графов, привели к созданию быстрых алгоритмов для решения некоторых частных задач, связанных с визуализацией планарных графов. Однако развитие различных прикладных задач, таких, например, как анализ больших сетей и больших объёмов данных, а также проектирование сложных инженерных систем (плоские конструктивы в радиоэлектронике, комплексы транспортно-инженерных коммуникаций крупных предприятий, логистические системы) требуют новых эффективных подходов к их решению. По мнению авторов, среди наиболее важных направлений исследований, связанных с визуализа-

цией графов, следует отметить выделение плоской части в непланарных графах и размещение непланарных графов на плоскости, многовариантность и оптимизацию размещений по заданным критериям, создание эффективных алгоритмов визуализации при наличии ограничений. Состояние исследований и нерешённые задачи в области визуализации планарных графов проанализированы подробнее в работе [6].

ЛИТЕРАТУРА

1. Курапов С. В., Давидовский М. В. Два подхода к проведению соединений в плоских конструктивах // Компоненты и технологии. 2015. №7. С. 142-147.

2. Курапов С. В., Давидовский М. В. Топологический подход к проведению соединений в плоских конструктивах // Компоненты и технологии. 2015. №11. С. 127-130.

3. Апанович З. В. От рисования графов к визуализации информации // Препринт № 148. Новосибирск: ИСИ СО РАН, 2007. 16 c.

4. Di Battista G., Eades P., Tamassia R., and Tollis I. G. Algorithms for drawing graphs: an annotated bibliography // Comp. Geom. 1994. V.4. No. 5. P. 235-282.

5. Tamassia R. Handbook of Graph Drawing and Visualization. Boca Raton: Chapman and Hall/CRC, 2013. 844 p.

6. Курапов С. В., Толок А. В. Методы построения топологического рисунка графа // Автоматика и телемеханика. 2013. №9. C. 78-97.

7. Kavitha T., Liebchen C., Mehlhorn K., et al. Cycle bases in graphs — characterization, algorithms, complexity, and applications // Comput. Sci. Rev. 2009. No. 3. P. 199-243.

8. Деза М., Гришухин В. П., Штогрин М. И. Изометрические полиэдральные подграфы в гиперкубах и кубических решетках. М.: МЦНМО, 2007. 192 с.

9. Рингель Г. Теорема о раскраске карт. М.: Мир, 1977. 126с.

10. Зыков А. А. Теория конечных графов. Новосибирск: Наука, 1969. 554с.

11. Свами М., Тхуласираман К. Графы, сети и алгоритмы. М.: Мир, 1984. 455 с.

12. Харари Ф. Теория графов. М.: Мир, 1973. 300с.

13. Мак-Лейн С. Комбинаторное условие для плоских графов // Кибернетический сборник. Новая серия. 1970. №7. С. 68-77.

14. Хопкрофт Дж. Е., ТарьянР.Е. Изоморфизм планарных графов // Кибернетический сборник. Новая серия. 1975. №12. С. 39-61.

15. Рейнгольд Э., Нивергельт Ю., Део Н. Комбинаторные алгоритмы. Теория и практика. М.: Мир, 1980. 480 с.

16. Раппопорт Л. И., Мороговский Б. Н., Поливцев С. А. Векторная алгебра пересечений // Многопроцессорные вычислительные структуры. 1982. №2(11). С. 53-56.

REFERENCES

1. Kurapov S. V. and Davidovskiy M. V. Dva podkhoda k provedeniyu soedineniy v ploskikh konstruktivakh [Two approaches to connections conducting in flat form factor]. Komponenty i Tekhnologii, 2015, no. 7, pp. 142—147. (in Russian)

2. Kurapov S. V. and Davidovskiy M. V. Topologicheskiy podkhod k provedeniyu soedineniy v ploskikh konstruktivakh [Topological approach to connections conducting in flat form factor]. Komponenty i Tekhnologii, 2015, no. 11, pp. 127-130. (in Russian)

3. Apanovich Z. V. Ot risovaniya grafov k vizualizatsii informatsii [From Graphs Drawing to Information Visualization]. Preprint no. 148. Novosibirsk, IIS RAS SB Publ., 2007. 16p. (in Russian)

4. Di Battista G., Eades P., Tamassia R., and Tollis I. G. Algorithms for drawing graphs: an annotated bibliography. Comp. Geom., 1994, vol.4, no. 5, pp.235-282.

5. Tamassia R. Handbook of Graph Drawing and Visualization. Boca Raton: Chapman and Hall/CRC, 2013. 844 p.

6. Kurapov S. V. and Tolok A. V. The topological drawing of a graph: Construction methods. Automation and Remote Control, 2013, vol.74, iss.9, pp. 1494-1509.

7. Kavitha T., Liebchen C., Mehlhorn K., et al. Cycle bases in graphs — characterization, algorithms, complexity, and applications. Comput. Sci. Rev., 2009, no.3, pp. 199-243.

8. Deza M., Grishukhin V. P., and Shtogrin M. I. Izometricheskie poliedral'nye podgrafy v giperkubakh i kubicheskikh reshetkakh [Isometric Polyhedral Subgraphs in Hypercubes and Cubic Lattices]. Moscow, MCCME Publ., 2007. 192p. (in Russian)

9. Ringel' G. Teorema o raskraske kart [Theorem of Maps Coloring]. Moscow, Mir Publ., 1977. 126 p. (in Russian)

10. Zykov A. A. Teoriya konechnykh grafov [Finite Graphs Theory]. Novosibirsk, Nauka Publ., 1969. 554 p. (in Russian)

11. Swamy M. N. S. and Thulasiraman K. Graphs, Networks and Algorithms. Wiley, 1980. 612 p.

12. Harary F. Graph Theory. Addison-Wesley, 1969.

13. Mak-Leyn S. Kombinatornoe uslovie dlya ploskikh grafov [A combinatorial condition for planar graphs.] Kiberneticheskiy Sbornik. Novaya Seriya, 1970, no. 7, pp. 68-77. (in Russian)

14. Khopkroft Dzh. E. and Tar'yan R. E. Izomorfizm planarnykh grafov [The isomorphism of planar graphs]. Kiberneticheskiy Sbornik. Novaya seriya, 1975, no. 12, pp. 39-61. (in Russian)

15. Reingold E. M., Nievergelt J., and Deo N. Combinatorial Algorithms: Theory and Practice. Prentice Hall College Div, 1977.

16. Rappoport L. I., Morogovskiy B. N., and Polivtsev S. A. Vektornaya algebra peresecheniy [Vector algebra of intersections.] Mnogoprotsessornye vychislitel'nye struktury. Taganrog, TREI Publ., 1980, iss. 2(11), pp. 53-56. (in Russian)

i Надоели баннеры? Вы всегда можете отключить рекламу.