Математические структуры и моделирование 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 с.