ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ
Вестн. Ом. ун-та. 2012. № 4. С. 141-143.
УДК 004.421.2, 519.175.1
Д.Э. Вильховский, С.С. Ефимов
ОПРЕДЕЛЕНИЕ ИЗОМОРФНОСТИ ГРАФОВ
Задача проверки изоморфности графов часто возникает в химии, экономике, статистике, теоретической физике, математической лингвистике и других областях. Представлен сравнительный анализ эффективности использования инвариантов и параллельных реализаций алгоритмов проверки изоморфности графов.
Ключевые слова: инварианты графа, изоморфность.
Методы определения изоморфности графов
Задача проверки изоморфизма графов относится к задачам, относительно которых нет ясности: являются ли они полиномиально разрешимыми или нет [1].
Для определения изоморфности графов используется два основных подхода. В первом выполняется попытка перебора всех возможных перестановок. При наличии у разных графов совпадающих перестановок считается, что графы изоморфны. Недостатки этого подхода очевидны: из-за необходимости перебора всех п! перестановок, при некотором значении п необходимое для вычисления время делает эту задачу нерешаемой в реальном масштабе времени.
При втором подходе пытаются найти такой инвариант, из совпадения которого следовало бы, что графы изоморфны. К недостаткам этого подхода стоит отнести тот факт [2], что не существует полного инварианта, вычислимого за полиномиальное время.
Список основнъх инвариантов
Среди наиболее распространенных инвариантов решения задачи определения изоморфизма графов можно назвать следующие:
• Индекс Винера;
• Определитель матрицы смежности;
• Число вершин и число дуг/ребер;
• Индекс Рандича;
• Диаметр графа;
• Индекс Хосойи;
• Минимальное число вершин, необходимое для покрытия ребер;
• Упорядоченный по возрастанию или убыванию вектор собственных чисел матрицы смежности графа (спектр графа);
• Характеристический многочлен матрицы смежности;
• Упорядоченный по возрастанию или убыванию вектор собственных чисел матрицы смежности графа (спектр графа);
• Характеристический многочлен матрицы смежности.
Описание инвариантов
В данной работе рассмотрены следующие инварианты:
• Число вершин и число дуг/ребер. Для вычисления необходимо сверить число вершин с различными степенями.
• Индекс Винера - величина ^ = 2^. ё(у(, ) , где ё(у1, ) - мини-
V/, J ■> ■>
мальное расстояние между вершинами у1 , V1.
• Индекс Рандича - величина г = 2
ё(vj) - степени вершин vi и Vj соответственно.
© Д.Э. Вильховский, С.С. Ефимов, 2012
142
Д.Э. Вильховский, С.С. Ефимов
Описание прямого алгоритма проверки изоморфности графов
Для распараллеливания задачи был написан метод, который позволяет определить итоговую перестановку по её номеру. В результате каждая вычислительная машина в кластере получала для обработки свой диапазон значений. Далее результаты проверки отправлялись корневому процессу, который собирал результаты и анализировал их.
Проверка эффективности параллельной реализации прямого алгоритма исследовалась на следующих классах графов:
• планарный граф,
• дерево,
• двудольный граф.
Реализация алгоритмов
Для проверки эффективности инвариантов генерировались всевозможные неориентированные графы с заданным числом вершин т. По числу найденных изоморфных графов с помощью инварианта можно судить об его эффективности. Если это число совпадает с количеством изоморфных графов, найденных прямым методом, то выполняется достаточность инварианта для всех графов с числом вершин т.
При реализации алгоритмов использовались следующие технические и программные средства.
• Java SE 6 update 31;
• MPJ Expess v0.38;
• 9 персональных компьютеров (кластер невыделенных рабочих станций);
• Процессор - Dual-Core E5200 2,5 Ghz;
• Память - 3,24 Гб;
• Mandriva Linux;
• Сеть - 100 Мбит/сек.
Результаты экспериментов
Число вершин и число дуг/ребер
40
Индекс Винера
1 ■
■ инвариант □ всего
30 20 10 0
3 4 5
Рис. 1. Процент изоморфных графов, найденных с помощью инварианта «Число вершин и число дуг/ребер»
Из результатов видно, что данный инвариант не дает достаточности для графов с числом вершин, равным трём.
35
з0
25
20
l5
l0
5
0
т
■ инвариант И всего
5
Рис. 2. Процент изоморфных графов, найденных с помощью инварианта «Индекс Винера»
Данный инвариант дает достаточность для графов с числом вершин, не превосходящим трем. Однако стоит заметить, что для его вычисления нам необходимо воспользоваться алгоритмом Флойда-Уоршелла, сложность которого составляет 0(п3).
Индекс Рандича
I инвариант I всего
3 4 5 6
Рис. 3. Процент изоморфных графов, найденных с помощью инварианта «Индекс Рандича»
Данный инвариант является самым эффективным из всех рассмотренных в этой работе инвариантов. Он дает достаточное условие для графов с числом вершин, не превосходящих 5.
По результатам анализа данных инвариантов можно сделать вывод, что при рассмотрении графов с числом вершин, превосходящих 5, придется использовать прямой алгоритм проверки изоморфности графов.
Заключение
В результате проведенных исследований оказалось, что в общем случае самым эффективным инвариантом является индекс Рандича, но его использование имеет смысл только тогда, когда число вершин у графов меньше 5, так как при большем количестве вершин условие достаточности не выполняется. Для более сложных графов применялся прямой алгоритм проверки. В результате использования его параллельной реализации в модели с общей памятью было получено небольшое ускорение, что связано с необходимостью частого выделения и освобождения памяти. Параллельная реализация в модели с распределенной памятью показала хорошее линейное ускорение.
Определение изоморфности графов
143
Время, сек
а) яДеР 6)
Рис. 4. Зависимость времени от числа ядер: а) распределенная память, б) общая
ЛИТЕРАТУРА
[1] Гэри М., Джонсон Д. Вычислительные машины [2] Новиков Ф. А. Дискретная математика для
и труднорешаемые задачи. М. : Мир, 1982. программистов. СПБ. : Питер, 2000. 304 с.