Лабораторные работы / Лабораторная работа 4 / Поиск автоморфизмов графа (Бочаров)
.docxНациональный исследовательский институт
Московский Энергетический Институт (Технический Университет)
Институт автоматики и вычислительной техники
Кафедра Прикладной математики
Лабораторная работа №4
по дисциплине:
Параллельные системы
тема: «Задачи на графах»
вариант №5 – «Поиск автоморфизмов графа»
Выполнил:
Бочаров Иван Андреевич
Проверил:
Панков Николай Александрович
Москва
2012 г.
Введение
Дадим определение основному понятию, используемому в данной работе – понятию автоморфизма графа. Сперва рассмотрим неориентированный граф без петель.
Автоморфизм графа – произвольная подстановка на множестве вершин графа, сохраняющая отношение смежности, т.е. такова, что образы и вершин и смежны тогда и только тогда, когда смежны сами вершины u и v. Следует заметить, что очевидным образом это определение можно распространить на случай взвешенного ориентированного графа без петель – перестановка помимо отношения смежности должна сохранять веса рёбер между смежными вершинами.
Известно, что множество автоморфизмов графа образует группу с операцией композиции в качестве операции умножения.
Очевидно, что каждый граф имеет хотя бы один автоморфизм – тривиальную подстановку . По этой причине для нас интерес представляют только нетривиальные автоморфизмы. Граф, для которого единственный возможный автоморфизм – это тождественное отображение, называется асимметрическим.
Метод решения
На данный момент не существует эффективного алгоритма поиска автоморфизмов графа. Все имеющиеся на сегодняшний день алгоритмы являются модификациями полного перебора (метод ветвей и границ и т.п.).
В данной работе используется полный перебор. Граф представляется матрицей смежности (– вес ребра из вершины в вершину). Для каждой нити параметром служит структура, несущая в себе информацию о числе подстановок, которое необходимо проверить, и об индексе перестановки, с которой нить должна начинать проверку на принадлежность к группе автоморфизмов графа. Также в поля этой структуры записывается результат – количество автоморфизмов, принадлежащих подмножеству множества подстановок, проверенных нитью, и их индексы.
При запуске нити по индексу определяется начальная перестановка, а затем в цикле проверяются все перестановки. Следует заметить, что перестановки упорядочены в лексикографическом порядке.
Результаты
Основные результаты были получены при тестировании разработанной программы на так называемых полных графах. Очевидно, что в полных графах группа автоморфизмов графа совпадает с множеством всех подстановок графа и имеет мощность , где – количество вершин графа. В связи с так называемым комбинаторным взрывом решение задачи поиска автоморфизмов графа может занимать значительное время.
Для каждого графа и количества нитей время было измерено 5 раз и в качестве конечного значения была выбрана медиана полученного множества.
Испытания проводились на стенде со следующей конфигурацией:
CPU: Intel Core i5 2500 МГц Ivy Bridge (3210M)
Количество ядер: 2 физических, 4 виртуальных
Кэш: 3 Mb L2 (L3) Cache
RAM: 4096 Мб DDR3-1600МГц
ОС: MS Windows 7 Home Basic x64
Таблица результатов (время в секундах):
Число нитей/Размер графа |
7 |
8 |
9 |
10 |
11 |
12 |
ТГ,n=11 |
1 |
0,016 |
0,234 |
2,496 |
31,278 |
458,781 |
6889,355 |
3,898 |
2 |
0,015 |
0,124 |
1,357 |
17,862 |
288,803 |
4175,366 |
2,19 |
3 |
0,015 |
0,124 |
1,185 |
14,415 |
236,15 |
3414,605 |
1,946 |
4 |
0,015 |
0,093 |
1,061 |
12,916 |
220,647 |
3191,22 |
1,804 |
5 |
0,016 |
0,11 |
1,123 |
13,915 |
228,653 |
|
1,877 |
6 |
0,015 |
0,094 |
1,06 |
12,854 |
224,826 |
|
1,925 |
Число автоморфизмов |
5040 |
40320 |
362880 |
3628800 |
39916800 |
479001600 |
1152 |
Ускорение
Число нитей/Размер графа |
7 |
8 |
9 |
10 |
11 |
12 |
ТГ,n=11 |
2 |
1,067 |
1,887 |
1,839 |
1,751 |
1,589 |
1,650 |
1,780 |
3 |
1,067 |
1,887 |
2,106 |
2,170 |
1,943 |
2,018 |
2,003 |
4 |
1,067 |
2,516 |
2,352 |
2,422 |
2,079 |
2,159 |
2,161 |
5 |
1,000 |
2,127 |
2,223 |
2,248 |
2,006 |
|
2,077 |
6 |
1,067 |
2,489 |
2,355 |
2,433 |
2,041 |
|
2,025 |