Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторные работы / Лабораторная работа 4 / Поиск автоморфизмов графа (Бочаров)

.docx
Скачиваний:
43
Добавлен:
28.06.2014
Размер:
32.83 Кб
Скачать

Национальный исследовательский институт

Московский Энергетический Институт (Технический Университет)

Институт автоматики и вычислительной техники

Кафедра Прикладной математики

Лабораторная работа №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