Участник:Full/Поиск автоморфизмов графов: различия между версиями

Материал из Алговики
Перейти к навигации Перейти к поиску
Строка 70: Строка 70:
  
 
== Вычислительное ядро алгоритма ==
 
== Вычислительное ядро алгоритма ==
 +
Вычислительным ядром алгоритма является последовательность множеств  <math>M'_1 \ldots M'_n</math>. Вычисляется на основе соответствующих <math>M_1 \ldots M_n</math>. Построение <math>M_1 \ldots M_n</math> занимает не существенную часть времени.
 +
 
== Макроструктура алгоритма ==
 
== Макроструктура алгоритма ==
 
== Схема реализации последовательного алгоритма ==
 
== Схема реализации последовательного алгоритма ==

Версия 15:10, 30 ноября 2017

Алгоритм: Поиск автоморфизмов графов
Автор статьи: Ефремов С.С. (группа 419)

Содержание

1 Свойства и структура алгоритмов

Данный алгоритм, описанный в статье Егорова В.Н.[1], предназначен для поиска автоморфизмов графов, которые можно представить в виде матриц смежности, а также для исследования изоморфности графов. Так как алгоритм работает с матрицами, можно решать эти же задачи и на других комбинаторных объектах, представимых матрицами смежности[2].

1.1 Общее описание алгоритма

На вход подается матрица смежности графа. При отображение вершины v1 в вершину v2 в соответсвующей графу матрице меняются местами строка и столбец v1 со строкой и столбцом v2. Автоморфизмом является отображение множества вершин графа на себя, сохраняющее смежность. Это есть такая перестановка строк и столбцов матрицы, после применения которой, матрица останется той же.

1.2 Математическое описание алгоритма

1.2.1 Определения и обозначения

A = A^{n\times n} - матрица смежности графа G(V,E) размера n\times n; a_{ij} - элементы матрицы ,\ i,j = 1,\ldots,n=|V|.

Частичным отображением g^s_k (s - обозначает индекс элемента в множестве M_k) называется подстановка вида

\begin{pmatrix} 1 & 2 & \ldots & k & k+1 &\ldots & n\cr r_1 & r_2 & \ldots & r_k & q_{k+1} & \ldots & q_n \end{pmatrix}

, где r_1,\ldots,r_k - фиксированные (заданные) элементы, q_{k+1},\ldots,q_n - произвольные, причем последовательность r_1,\ldots,r_k, q_{k+1},\ldots,q_n является перестановкой вершин заданного графа.

M_k - множество, состоящее из элементов g^s_k, \ s = 1,\ldots,n_k=|M_k|.

|M_k| - количество элементов g^s_k в множестве.

M'_k - множество элементов, которые содержатся в M_k и удовлетворяют критерию h.

h - критерий (описанный далее).

\{M'_k\} - последовательность множеств M'_k, k = 1,\ldots,n.


1.2.2 Проверка по критерию

Критерием h является проверка подматриц на равенство. Предположим, требуется определить, удовлетворяет ли элемент g^s_k критерию h. Для этого необходимо, чтобы элементы a_{ij}, для всех i,j \leq k, были равны соответствующим элементам a_{r_ir_j}. Подматрица g^s_k выглядит так:

\begin{matrix} & r_1 & r_2 & \dots & r_k \cr r_1 & a_{r_1r_1} & a_{r_1r_2} & \dots & a_{r_1r_k} \cr r_2 & a_{r_2r_1} & a'_{r_2r_2} & \dots & a_{r_2r_k} \cr \vdots & \vdots & \vdots & \ddots & \vdots \cr r_k & a_{r_kr_1} & a_{r_kr_2} & \dots & a_{r_kr_k} \cr \end{matrix}

Если хотя бы одно из равенств не выполнено, это означает, что по данной частичной подстановке хотя бы одна вершина отобразилась в другую так, что структура графа изменилась. А так как частичная перестановка g^s_k фиксирует r_1, \ldots r_k, то структура останется измененой, что означает отображение не будет являться автоморфизмом.


1.2.3 Построение множеств частичных отображений

Описание построения M'_n.

На первом этапе рассматриваются все g^s_1, образующие множество M_1. Каждый элемент g^s_1 проверяется по критерию h. Элементы, удовлетворяющие h, образуют M'_1. В каждый элемент из M'_1 добавляется еще одно отображение (2 \to r_2), т.е. происходит переход от g^s_1 к g^s_2. Из каждого g^s_1 получается разных (n-1) элементов g^s_2. Всевозможные элементы g^s_2 образуют M_2. Далее строится M'_2, добавляя в него только те элементы из M_2, которые удовлетворяют критерию. Аналогично получаются множества M_3,\ M'_3,\ M_4,\ldots, M_n,\ M'_n.


Таким образом, получается последовательнось множеств частичных отображенией:

\{M'_k\}: M'_1 \subseteq M'_2 \subseteq \ldots \subseteq M'_n.

Множество M'_n является множеством всех возможных автоморфизмов (или пустое, если их нет).

1.3 Вычислительное ядро алгоритма

Вычислительным ядром алгоритма является последовательность множеств M'_1 \ldots M'_n. Вычисляется на основе соответствующих M_1 \ldots M_n. Построение M_1 \ldots M_n занимает не существенную часть времени.

1.4 Макроструктура алгоритма

1.5 Схема реализации последовательного алгоритма

1.6 Последовательная сложность алгоритма

1.7 Информационный граф

1.8 Ресурс параллелизма алгоритма

1.9 Входные и выходные данные алгоритма

1.10 Свойства алгоритма

2 Программная реализация алгоритма

2.1 Особенности реализации последовательного алгоритма

2.2 Локальность данных и вычислений

2.3 Возможные способы и особенности параллельной реализации алгоритма

2.4 Масштабируемость алгоритма и его реализации

2.5 Динамические характеристики и эффективность реализации алгоритма

2.6 Выводы для классов архитектур

2.7 Существующие реализации алгоритма

3 Литература

  1. Группы автоморфизмов и изоморфизм комбинаторных объектов и алгебраических структур. Егоров В.Н., Егоров А.В. (Ломоносовские чтения, Научная конференция, Москва, факультет ВМК МГУ имени М.В.Ломоносова).
  2. О группах автоморфизмов матриц. Егоров В.Н. (журнал "Прикладная дискретная математика").