Алгоритм проверки изоморфизма полурешеток с использованием инвариантов теории графов

ФИЗИКА. МАТЕМАТИКА

УДК 519.178:512.53 DOI: 10.17238/issn2541-8416.2017.17.4.368

Поступила 11.07.2017

АЛГОРИТМ ПРОВЕРКИ ИЗОМОРФИЗМА ПОЛУРЕШЕТОК С ИСПОЛЬЗОВАНИЕМ ИНВАРИАНТОВ ТЕОРИИ ГРАФОВ

Л.В. Зяблицева*, С.А. Пестов*

*Северный

Изоморфизм двух коммутативных идемпотентных полугрупп (полурешеток) можно устанавливать с помощью алгоритмов теории графов. Для этого полурешеткам сопоставляется граф, и в том случае, когда полученный граф является деревом, для проверки изоморфизма таких полурешеток применяются известные алгоритмы проверки изоморфизма деревьев. Еще один из видов графов, для которых существует алгоритм проверки изоморфизма (отличающийся от алгоритмов полного перебора), - планарные графы. В статье решен вопрос о том, является ли граф произвольной полурешетки деревом, планарным графом. Реализован алгоритм, с помощью которого можно выяснить, изоморфны ли полурешетки, графы которых являются деревьями. Данный алгоритм может быть применен и для произвольных полурешеток, но в этом случае для изоморфных полурешеток ответ будет верным, а для неизоморфных может быть ошибочным. В статье показано, какое кодовое слово выдается произвольной полурешетке; и то, что это кодовое слово может служить инвариантом для проверки изоморфизма такой полурешетки. Далее рассмотрены другие инварианты теории графов, которые можно успешно применить для полурешеток, а также решен вопрос о полноте представленной системы инвариантов. Созданная в итоге программа для двух произвольных полурешеток, заданных таблицами Кэли, дает информацию о графах (их инварианты), определяет, изоморфны ли они; в случае изоморфизма выдается биективное отображение элементов этих полурешеток. С помощью программы были проанализированы все полугруппы от первого до восьмого порядков, для каждого порядка найдено число полурешеток, графы которых являются деревьями; показано, что для полурешеток не выше восьмого порядка совокупность предложенных инвариантов является полной системой инвариантов.

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

Контактное лицо: Зяблицева Лариса Владимировна, адрес: 163002, г. Архангельск, ул. Урицкого, д. 68, корп. 3; e-mail: zlarlsav@yandex.ru

Для цитирования: Зяблицева Л.В., Пестов С.А. Алгоритм проверки изоморфизма полурешеток с использованием инвариантов теории графов // Arctic Environmental Research. 2017. Т. 17, № 4. С. 368-375. DOI: 10.17238/ issn2541-8416.2017.17.4.368

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

Предложение. Представление коммутативной полугруппы идемпотентов (S, •) в виде графа GS является деревом тогда и только тогда, когда частичный порядок, заданный формулой e < f О e • f=f • e = e, является полулинейным снизу.

Далее был обоснован выбор алгоритма проверки изоморфизма деревьев, описан этот алгоритм, представлена программа, написанная на языке Haskell, реализующая его. Чтобы применить выбранный алгоритм для проверки изоморфизма полурешеток, необходимо сначала полурешетке сопоставить дерево. Для этого нами разработан и реализован также на языке Haskell необходимый алгоритм.

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

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

Рассмотрены вопросы о том, всегда ли граф полурешетки планарный, можно ли применить алгоритм проверки изоморфизма полурешеток, предложенный в статье [1], для произвольных полурешеток. Описана система инвариантов для полурешеток, и решен вопрос о полноте этой системы инвариантов. Итогом работы яв-

ляется описание и реализация алгоритма проверки изоморфизма произвольных полурешеток.

Алгоритм кодирования деревьев строками. Нами был подробно изучен вопрос о различных методах проверки изоморфизма деревьев. Рассмотрены и проанализированы алгоритмы, представленные в работах [4, с. 64; 5; 6]. В итоге был выбран алгоритм, описанный в [6], т. к., в отличие от остальных алгоритмов, в нем дополнительно производится лексикографическое упорядочение полученных канонических имен, за счет чего изоморфным деревьям сопоставляются одинаковые строки. Таким образом, задача проверки деревьев на изоморфизм сводится к задаче сравнения двух строк. входными данными алгоритма являются дерево Т и вершина г, являющаяся корнем дерева Т. Результат работы алгоритма - строка, которую называют каноническим именем дерева.

Данный алгоритм и его программная реализация описаны в [1]. Он предназначается для деревьев, но реализован таким образом, что программа применима также и для полурешеток, графы которых деревьями не являются. На таких графах программа ищет все пути, ведущие от корня до концевых вершин дерева, при этом одна и та же вершина может появиться в структуре графа несколько раз. Если программа применяется к графам изоморфных полурешеток, то канонические имена будут совпадать, если же полурешетки не изоморфны, то канонические имена могут совпадать. На рис. 1, см. с. 370, приведен пример таких полурешеток. Кодовыми словами этих графов является последовательность 000011001110001111, но очевидно, что графы не изоморфны (к примеру, в первом есть цикл длины 4, а во втором его нет).

Решение вопроса планарности графа полурешетки. Кроме деревьев, еще одним интересным классом графов, для которых решена проблема изоморфизма, являются планарные графы (к примеру, соответствующий алгоритм описан в статье [7]), поэтому стоит выяснить, планарен ли граф произвольной полурешетки.

(A)©

12

О 1

Рис. 1. Неизоморфные полурешетки, для которых совпадают канонические имена

Известен критерий планарности графа: граф планарен тогда и только тогда, когда в нем отсутствуют подграфы, гомеоморфные одному из графов К5 или К33. Но граф произвольной полурешетки, в отличие от графа полурешетки, для которой частичный порядок, заданный формулой е ^О е • f=f • е = е, является полулинейным снизу, не всегда планарный. Пример полурешетки, граф которой не является пла-нарным, приведен на рис. 2.

В соответствующей такому графу полурешетке элемент 0 является точной нижней гранью, элемент 17 - точной верхней гранью. Изображенный на рис. 2 граф планарным не является, т. к. есть подграф этого графа, гомео-морфный двудольному графу К3 3. В одной доле этого графа расположим вершины 13, 11, 10, в другой - вершины 12, 16, 7.

Заметим, что при удалении всего одного ребра (7, 10) указанный граф становится планарным.

Инварианты для графа, изображающего полурешетку. Предварительно рассмотрим для графа следующую систему инвариантов. Будем называть графы, изображающие полурешетки, я-графами.

Сопоставим ориентированному графу неориентированный граф:

1. Число вершин графа (инвариант 1).

2. Число ребер графа (инвариант 2).

3. Следующий инвариант является упорядоченной последовательностью, составленной следующим образом.

Пусть V является вершиной я-графа. Пусть этой вершине в полурешетке соответствует элемент а. Вершине V сопоставим три числа и одну последовательность. Опишем их:

а) первое число - длина кратчайшей цепи от вершины до корня;

б) второе число - число вершин графа, удовлетворяющих следующему условию: им соответствует в полурешетке элемент Ь, такой,

Рис. 2. Полурешетка, граф которой не является планарным

что Ь = ¡п/ (а, Ь), и нет такого элемента с, отличного от а и Ь, что с = П (а, с) и Ь = тА (с, Ь) (в соответствующем ориентированном графе это полустепень захода вершины);

в) третье число - число вершин графа, удовлетворяющих следующему условию: им соответствует в полурешетке элемент Ь, такой, что а = ¡п/ (а, Ь), и нет такого элемента с, отличного от а и Ь, что a = тА (а, с) и c = тА (с, Ь) (в соответствующем ориентированном графе это полустепень исхода вершины);

г) сопоставим вершине упорядоченную по возрастанию последовательность длин цепей от вершины V до всех концевых вершин. Такая последовательность всегда будет состоять из £ элементов, где £ - это число концевых вершин. Если вершина концевая, то один из элементов последовательности будет равен 0.

В результате каждой вершине V графа сопоставляется последовательность следующего вида: к, р, г, (/р ..., А).Упорядочим последовательности, сопоставленные вершинам графа лексикографически, по возрастанию, начиная с первого числа.

В итоге получим последовательность: к

Рр гр ^ А); К р» ^ ^ Л); .••; ^ pй!, Гт, Ат1, ..., Ат) (здесь т - число вершин графа).

Эта последовательность будет инвариантом графа. Назовем его инвариант 3.

Данная система инвариантов полной не является. На рис. 3 приведен пример неизоморфных полурешеток, для которых инварианты 1, 2, 3 совпадают, кроме того, проверка для них алгоритмом, созданным для деревьев, также дает одинаковый результат.

У графов на рис. 3 одинаковое количество вершин и ребер, совпадают описанные ранее последовательности, но при этом графы не являются изоморфными. Так, к примеру, во втором графе вершины степени 3 соединены цепью 0 -1 - 4 - 7 - 10 , при этом три из вершин этой цепи имеют степень 2, а в первом графе такой цепи нет.

Алгоритм проверки изоморфизма $-графов. Далее описан алгоритм, с помощью которого для любых двух коммутативных полу-

3 0

Ь 0 0

Рис. 3. Графы неизоморфных полурешеток, которым соответствуют одинаковые инварианты 1, 2, 3 и у которых совпадают канонические имена

групп идемпотентов (полурешеток) можно определить, изоморфны ли они.

Входные данные: две полурешетки £ и S'. Результатом выполнения алгоритма будет ответ "полурешетки не изоморфны" или "полурешетки изоморфны". Также в случае изоморфизма задается биективное отображение элементов одной полурешетки в другую.

Шаги алгоритма:

1. Находим для полурешеток £ и S' соответствующие им графы так, как это было описано в [1].

2. Сравниваем число вершин и ребер в графах. Если они не совпадают для двух графов, то ответ: полурешетки не изоморфны. Если они совпадают, то переходим к шагу 3.

3. Если графы О и G' являются деревьями, то применяем ранее описанный алгоритм проверки изоморфизма деревьев.

4. Если графы не являются деревьями, то преобразуем каждый из них в два графа: О1 и

О2, G'1 и G'2. Опишем, как строятся графы О1 и О2. Рассмотрим максимальные подграфы графа О, имеющие корнем вершину, являющуюся корнем графа О, и лишь одну вершину, смежную с корнем. Будем называть такие подграфы ветвями я-графа. Смотрим, нет ли в пересечений каких-нибудь из ветвей вершины, кроме корня. Если есть, то добавляем к одному из подграфов ребра и вершины другого, которых нет в первом. Полученный в результате подграф также будем называть ветвью графа. Граф О преобразуем в два графа - О1 и О2, корень графа О становится единственной общей вершиной и корнем этих подграфов. Граф О1 является связным подграфом графа О, который содержит ветви графа, не имеющие циклов; граф О2 - связным подграфом графа О, который состоит из ветвей, содержащих циклы.

Аналогичным образом получаем графы G'1 и G'2 для графа G'.

5. Проверяем на изоморфизм графы G'1 и G'2, которые являются деревьями. Если графы не являются изоморфными, то ответ: полурешетки не изоморфны. Если графы изоморфны, то переходим к шагу 6.

6. Рассматриваем графы О2 и G'2. Сначала проверяем их алгоритмом для деревьев. Если канонические имена графов совпадают, то пе-

реходим к шагу 7. Если нет, то ответ: полурешетки не изоморфны.

7. Находим для графов О2 и G'2 инварианты 3. Сравниваем полученные последовательности. Если последовательности не совпадают для двух графов, то ответ: полурешетки не изоморфны. Если они совпадают, то переходим к шагу 8.

8. Ищем изоморфизм графов. При этом сопоставляем вершинам одного графа вершины другого, если у них совпадает инвариант 3. Если изоморфизм найден, то ответ: полурешетки изоморфны, если нет, то ответ: полурешетки не изоморфны.

Созданная в итоге программа очень эффективна. Ее эффективность связана с тем, что подобраны инварианты, которые если и могут совпадать у некоторых вершин графа, то только у их небольшого числа, а значит, пункт 8 проверяется быстро.

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

результаты проверки полурешеток малого порядка НА ИЗОМОРФИЗМ

Порядок полугруппы Количество Максимальное количество полурешеток

полугрупп полурешеток деревьев с совпадающим инвариантом 3 с совпадающим каноническим кодом

1 1 1 1 1 1

2 4 1 1 1 1

3 18 2 2 1 1

4 126 5 4 1 1

5 1160 15 9 1 1

6 15 973 53 20 1 2

7 836 021 222 48 1 3

8 1 843 120 128 1078 115 2 6

Из таблицы видно, каким эффективным оказался инвариант 3. При этом одновременно инвариант 3 и канонический код не совпадают ни у одной полурешетки порядков от 1 до 8.

Заключение. С графами традиционно тесно связан ряд математических объектов, таких как бинарные отношения, упорядоченные множества, некоторые виды полугрупп, алфавитные коды и др. Эти взаимосвязи рассматриваются, например, в работах [8, 9]. В настоящей статье описан алгоритм, позволяющий установить или опровергнуть изоморфизм двух конечных полурешеток, используя взаимосвязь этого специального вида полугрупп и графов. Алгоритм в течение нескольких секунд проверяет изомор-

физм полурешеток вплоть до порядка n = 81. Программа вместе с результатами доступна под открытой лицензией GNU GPLv3 по адресу: https://github.com/psqq/semi.

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

Список литературы

1. Зяблицева Л.В., Пестов С.А. Применение алгоритмов проверки изоморфизма графов в теории полугрупп // Вестн. Сев. (Арктич.) федер. ун-та. Сер.: Естеств. науки. 2016. № 4. С. 69-74.

2. Клиффорд А., Престон Г. Алгебраическая теория полугрупп. Т. 1. М.: Мир, 1972. 285 с.

3. Оре О. Теория графов. М.: Наука, 1968. 352 с.

4. Ахо А.В., Хопкрофт Д.Э., Ульман Д.Д. Построение и анализ вычислительных алгоритмов. М.: Мир, 1979. 536 с.

5. ПономаренкоИ.Н. Проблема изоморфизма графов: Алгоритмические аспекты. СПб., 2010. 57 с. URL: http:// logic.pdmi.ras.ru/csclub/sites/default/files/graph_isomorphism_ponomarenko_lecture_notes.pdf (дата обращения: 18.09.2015).

6. SmalА. Explanation for "Tree isomorphism" talk. Saint-Petersburg, 2008. 10 p. URL: http://www14. informatik. tumuenchen.de/konferenzen/Jass08/courses/1/smal/Smal_Paper.pdf (дата обращения: 10.09.2015).

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

8. Таран И.А., Корабельщикова С.Ю. Построение диаграммы подполей конечного поля // Современные исследования в области естественных и технических наук: Междисциплинарный поиск и интеграция: материалы II науч.-практ. всерос. конф. (школы-семинара) молодых ученых (Тольятти, 1-3 декабря 2015 г.). Тольятти, 2015. С. 122-125.

9. Корабельщикова С.Ю., Мельников Б.Ф. Максимальные префиксные коды и подклассы класса контекстно-свободных языков // Вестн. Сев. (Арктич.) федер. ун-та. Сер.: Естеств. науки. 2015. № 1. С. 121-129.

References

1. Zyablitseva L.V., Pestov S.A. Primenenie algoritmov proverki izomorfizma grafov v teorii polugrupp [Test Algorithms of the Graph Isomorphism in the Theory of Semigroups]. VestnikSevernogo (Arkticheskogo) federal'nogo universiteta. Ser.: Estestvennye nauki, 2016, no. 4, pp. 69-74.

2. Clifford A., Preston G. The Algebraic Theory of Semigroups. Vol. 1. Mathematical Surveys and Monographs, No. 7, Pt. 1. Providence, USA, 1961. 224 p.

3. Ore O. Theory of Graphs. American Mathematical Society Colloquium Publications, 1962, vol. 38. 270 p.

4. Aho A.V, Hopcroft J.E., Ullman J.D. The Design and Analysis of Computer Algorithms. London; Amsterdam; Don Mills; Sydney, Addison-Wesley Publ., 1974. 470 p.

5. Ponomarenko I.N. Problema izomorfizma grafov: Algoritmicheskie aspekty [The Problem of Graphs Isomorphism: Algorithmic Aspects]. Saint Petersburg, 2010. 57 p. Available at: logic.pdmi.ras.ru/csclub/sites/default/files/graph_ isomorphism_ponomarenko_lecture_notes.pdf (accessed 18.09.2015).

6. Smal A. Explanation for "Tree Isomorphism" Talk. Saint Petersburg, 2008. 10 p. Available at: http://www14. informatik.tumuenchen.de/konferenzen/Jass08/courses/1/smal/Smal_Paper.pdf (accessed 10.09.2015).

7. Hopcroft J., Tarjan R. Isomorphism of Planar Graphs. Proc. 4th Ann. Symp. on the Theory of Computing. Shaker Heights, Ohio, USA, 1972, pp. 131-152.

8. Taran I.A., Korabel'shchikova S.Yu. Postroenie diagrammy podpoley konechnogo polya [Construction of a Diagram of Subfields of a Finite Field]. Sovremennye issledovaniya v oblasti estestvennykh i tekhnicheskikh nauk: Mezhdistsiplinarnyy poisk i integratsiya: materialy II nauch.-prakt. vseros. konf.

9. Korabel'shchikova S.Yu., Mel'nikov B.F. Maksimal'nye prefiksnye kody i podklassy klassa kontekstno-svobodnykh yazykov [Maximal Prefix Codes and Subclasses of the Context-Free Languages Class]. Vestnik Severnogo (Arkticheskogo) federal'nogo universiteta. Ser.: Estestvennye nauki, 2015, no. 1, pp. 121-129.

DOI: 10.17238/issn2541-8416.2017.17.4.368 Received on July 11, 2017

Larisa V. Zyablitseva*, Sergey A. Pestov*

*Northern (Arctic) Federal University named after M.V. Lomonosov

CHECKING ALGORITHM OF SEMILATTICE ISOMORPHISM WITH THE USE OF INVARIANTS OF GRAPH THEORY

Isomorphism of two commutative idempotent semigroups (semilattices) can be laid down by the algorithms of graph theory. For this, the graph is associated with the semilattices, and in the case when the resulting graph is a tree, known algorithms for checking tree isomorphism are used to verify the isomorphism of such semilattices. Another kind of graphs, which has a checking algorithm of isomorphism (differing from an exhaustive algorithm) are planar graphs. The article solves the question whether the graph of an arbitrary semilattice is a tree, a planar graph. We implement an algorithm to find out isomorphism of semilattices whose graphs are trees. This algorithm can be applied to arbitrary semilattices. In this case, for isomorphic semilattices the answer is true, and for nonisomorphic semilattices it can be erroneous. The paper demonstrates, which code word is given to an arbitrary semilattice, and the fact that this code word can serve as an invariant for checking

the isomorphism of such a semilattice. We consider other invariants of graph theory that can be successfully applied to semilattices, and solve the question of completeness of the presented system of invariants. The resulting program for two arbitrary semilattices, given by Cayley tables, gives the information about the graphs (their invariants), determines their isomorphism. In the case of isomorphism, a bijective mapping of the elements of these semilattices is given. Using the program, the authors analyze all semigroups from the first to the eighth orders and find for each order the number of semilattices whose graphs are trees. The set of the proposed invariants for semilattices of no higher than eighth order is a complete system of invariants.

Keywords: semigroup, graph, graph isomorphism, semigroup isomorphism, semilattice, tree, planar graph.

Corresponding author: Larisa Zyablitseva, address: ul. Uritskogo, 68, korp. 3, Arkhangelsk, 163002, Russian Federation; e-mail: zlarisav@yandex.ru

For citation: Zyablitseva L.V., Pestov S.A. Checking Algorithm of Semilattice Isomorphism with the Use of Invariants of Graph Theory. Arctic Environmental Research, 2017, vol. 17, no. 4, pp. 368-375. DOI: 10.17238/issn2541-8416.2017.17.4.368