Научная статья на тему 'The research on graph isomorphism algorithms in distributed and shared memory systems'

The research on graph isomorphism algorithms in distributed and shared memory systems Текст научной статьи по специальности «Математика»

CC BY
85
61
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ИНВАРИАНТЫ ГРАФА / ИЗОМОРФНОСТЬ / РАСПРЕДЕЛЕННЫЕ ВЫЧИСЛЕНИЯ / INVARIANTS OF THE GRAPH / ISOMORPHISM

Аннотация научной статьи по математике, автор научной работы — Vilkhovskiy D. E., Efimov S. S.

The determination of the graph isomorphism appears to be a subject of research in chemistry, economics, statistics, theoretical physics, mathematical linguistics and other scientific fields. The purpose of the research is a comparative analysis of the effectiveness of invariants and parallel realization of algorithm on graph isomorphism.

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

Текст научной работы на тему «The research on graph isomorphism algorithms in distributed and shared memory systems»

Математические структуры и моделирование 2012, вып. 26, с. 89-93

УДК 519.16:004.372.2

ИССЛЕДОВАНИЕ АЛГОРИТМОВ ОПРЕДЕЛЕНИЯ ИЗОМОРФНОСТИ ГРАФОВ В СИСТЕМАХ С РАСПРЕДЕЛЁННОЙ И ОБЩЕЙ ПАМЯТЬЮ

Д.Э. Вильховский, С.С. Ефимов

Задача проверки изоморфности графов часто возникает в химии, экономике, статистике, теоретической физике, математической лингвистике и других областях. Целью проведённого исследования являлся сравнительный анализ эффективности использования инвариантов и параллельных реализаций алгоритмов проверки изоморфности графов.

1. Методы определения изоморфности графов

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

1.1. Список основных инвариантов

Среди наиболее распространённых инвариантов решения задачи определения изоморфизма графов можно назвать следующие:

• индекс Винера,

• определитель матрицы смежности,

• число вершин и число дуг/рёбер,

• индекс Рандича,

Copyright © 2012 Д.Э. Вильховский, С.С. Ефимов

Омский государственный университет им. Ф.М. Достоевского E-mail: vilkhovskiy0gmail.com, s_efimov0mail.ru

• диаметр графа,

• индекс Хосойи,

• минимальное число вершин, необходимое для покрытия рёбер,

• упорядоченный по возрастанию или убыванию вектор собственных чисел матрицы смежности графа (спектр графа),

• характеристический многочлен матрицы смежности,

• упорядоченный по возрастанию или убыванию вектор собственных чисел матрицы смежности графа (спектр графа),

• характеристический многочлен матрицы смежности.

1.2. Описание инвариантов

В данной работе были рассмотрены следующие инварианты:

Число вершин и число дуг/рёбер. Для вычисления необходимо сверить число вершин с различными степенями

Индекс Винера — величина w=J2d(vi,Vj), где d(vi,vj•) минимальное

'Ид

расстояние между вершинами Vi )Vj.

Индекс Рандича — величина г = ^ 1 , где d(vi),d(vj•) сте-

^ )€У V ^)

пени вершин vi,vj соответственно.

1.3. Описание прямого алгоритма проверки изоморфности графов

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

Проверка эффективности параллельной реализации прямого алгоритма исследовалась на следующих классах графов:

• планарный граф,

• дерево,

• двудольный граф.

Математические структуры и моделирование. 2012. Вып. 26.

91

2. Реализация алгоритмов

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

При реализации алгоритмов использовались следующие технические и программные средства.

• Java SE 6 update 31

• MPJ Expess v0.38

• 9 персональных компьютеров (кластер невыделенных рабочих станций)

о Процессор — Dual-Core Е5200 2,5 Ghz; о Память — 3,24 Гб; о о

3. Результаты экспериментов

Число вершин и число дуг/рёбер

Рис. 1. Процент изоморфных графов, найденных с помощью инварианта «число вершин и

число дуг/рёбер»

Из результатов видно, что данный инвариант не даёт достаточности для графов с числом вершин равным трём.

Рис. 2. Процент изоморфных графов, найденных с помощью инварианта Индекс Винера

Индекс Винера

Данный инвариант даёт достаточность для графов с числом вершин, не превосходящим трёх. Однако стоит заметить, что для его вычисления нам необходимо воспользоваться алгоритмом Флойда-Уоршелла, сложность которого составляет о(п3).

Индекс Рандича

Рис. 3. Процент изоморфных графов, найденных с помощью инварианта Индекс Рандича

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

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

Время, сек

а) 6)

Ядер

Рис. 4. Зависимость времени от числа ядер: а) распределённая память, б) общая

4. Заключение

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

Литература

1. Новиков Ф.А. Дискретная математика для программистов. СПБ : Питер, 2000.

304 с.

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