Математические структуры и моделирование 2002, вып. 9, с. 1-8
УДК
ЭВРИСТИЧЕСКИЙ АЛГОРИТМ ДЕШИФРОВКИ ШИФРА ДВОЙНОЙ ПЕРЕСТАНОВКИ
А.В. Пролубников, Р.Т. Файзуллин
In the paper we consider heuristic algorithm for solving graph isomorphism problem. The algorithm based on a successive splitting of the eigenvalues of the matrices which are modifications (to positive defined) of graphs’ adjacency matrices. Modification of the algorithm allows to find a solution for Frobenius problem. Formulation of the Frobenius problem is following one. Given a pair of two matrices with the same number of rows and columns. We must find out whether one of the matrix can be acquired from another by permutation of it’s rows and strings or not. Solution of Frobenius problem can give to us efficient way for decrypting of double permutation cyphers problem for high dimension matrices.
1. Изоморфизм графов
В работе представлен эвристический алгоритм решения задачи определения изоморфноети графов, основанный на последовательном расщеплении собственных чисел, видоизмененных (до положительно определенных) матриц смежности, и решении систем линейных уравнений, определяющих обратные матрицы. Сравнение норм столбцов обратных матриц позволяет получить решающую перестановку.
Задача проверки изоморфноети графов принадлежит к задачам, относительно которых нет ясности: являются ли они полиномиально разрешимыми или нет [1]. В то же время известно, что задача определения изоморфноети графа является полиномиально разрешимой для некоторых классов графов, в частности для планарных, регулярных графов и некоторых других построены эффективные алгоритмы, для решения этой задачи [2], [3], [4]. Предлагаемый нами алгоритм является эвристическим алгоритмом для проверки изоморфноети графов.
В задаче даны два неориентированных графа GA = (Va,Ea) ъ GB = (Vb, Eb), где VA, Vb - множества вершин графов, Ea, Eb - множества ребер. Предполагается, что |VA| = \VB|, |Ea| = |Eb|. Задача изоморфизма графов формулируется следующим образом: существует ли биективное отображение у : VA ^ VB, такое, что если (i,j) Є Ea, то (p(i),p(j)) Є Eb?
Предлагаемый алгоритм для решения задачи определения изоморфноети графов работает с видоизмененными матрицами смежности графов.
© 2002 А.В. Пролубников, Р.Т. Файзуллин
E-mail: e-mail: [email protected], [email protected] Омский государственный университет
Пусть А0 - матрица смежности Ga, то есть А0 = (а0з-), где
ij
1 , єсли(i,j) Є Ea, 0, иначе.
B0 - матрица смежности графа Gb,
По матрице А0 строим матрицу Da0:
/ di 0 . . 0\
0 d2 . . 0
l0 0 . • dnj
Da0 ~ диагональная матрица со следующими элементами:
П
di = aij + 1.
j=i
Аналогично строится матрица DBo то матрице смежности графа Gb, Рассматриваемые далее матрицы
А = А0 + Da0 , B = Bo + DB0 (1)
- матрицы, с которыми будет работать алгоритм, являются симметричными положительно определенными матрицами.
Если графы Ga = (VA, Ea) и Gb = (VB,Eb) изоморфны, то соответствующие им матрицы описанного типа могут быть получены одна из другой перестановкой строк с одновременной перестановкой столбцов с теми же номерами. Таким образом, задача проверки изоморфности двух графов может быть сформулирована как частный случай задачи Фробениуеа: может ли быть получена матрица B из матрицы А последовательной перестановкой строк с одновременной перестановкой столбцов?
Для произвольной матрицы перестановка строк с номерами i и j эквивалентна ее умножению на матрицу перестановки Pj, Перестановка столбцов матрицы эквивалентна ее умножению справа на ту же матрицу. При умножении вектора на матрицу Pj как справа, так и слева происходит перестановка компонент вектора с номерами in j.
Рассмотрим две системы уравнений следующего вида:
Ах = ej, By = ek, (2)
где векторы ег = (0,..., 0,1,0,..., 0) - базисные векторы в проетранетве Rn, матрицы А и B - описанного выше вида. Обе системы уравнений имеют решение, и решение единственно, так как HiB - матрицы с диагональным преобладанием, и, следовательно, их определители не равны нулю. Пусть далее xj -решение системы линейных уравнений Ах = е j yk - решение системы линейных уравнений By = ek.
2
Отметим, что, решив системы уравнений (1), получим обратные матрицы для A и B, Так, для г-й компоненты вектора xj верно: xj = (—1)i+jAij/ det(A), где Aij - алгебраическое дополнение элемента aij матрицы A, То есть векторы решений xj, j = l,..., n являются столбцами обратной к A матрицы.
Если B = PjkAPjk, то для решения систем уравнений (2) должны выполняться равенства:
xi = Уі, г = j, г = к; xj yk, xk yj *
Действительно: (Ax = ej) ~ (PjkAx = Pjkej) ~ (PjkAxPjk = PjkejPjk) ~
(PjkAPjkx ej) ^ (PjkAPjkxPjk ejPjk) ^ (BxPjk ek)* ЄСТЬ xPj'k y■
Если матрица B получена из матрицы A многократной одновременной перестановкой строк и столбцов, то:
B = Pjiki * * * Pjiki APjiki * * * Pjiki,
И, соответственно, xPjlkl * * * Pjlkl = y.
Таким образом, если мы будем менять вектор ek в системе уравнений (2) при фиксированном j, то есть индекс к будет пробегать значения l, * * *, n, то векторы xj и yk - соответствующие друг другу решения полученных систем (2) будут совпадать с точностью до перестановки компонент только в том случае, если строке j матрицы A соответствует строка к матрицы B, То есть элементы строки к матрицы B есть переставленные элементы строки г матрицы A, То же верно и для столбцов матриц.
При нахождении в матрице B строки и столбца, соответствующих строке и столбцу с номером г матрицы A, на каждой г-й итерации алгоритма будем последовательно производить возмущения ее диагональных элементов. Алгоритм работает с симметричными матрицами, которые могут быть приведены к диагональной форме е помощью ортогональных преобразований. То есть
A = UaAUA ,
B = Ub buA ,
где A, B - диагональные матрицы с собственными значениями на диагонали, a Ua, Ub - матрицы ортогональных преобразований. Диагональные элементы A, B - собственные числа матриц An B,
Спектры матриц смежности изоморфных графов совпадают [5]. То же можно сказать и о спектрах матриц, с которыми работает алгоритм, так как описанная выше процедура замены нулевых диагональных элементов матрицы смежности приводит лишь к сдвигу спектра матрицы. Причем, если матрицы соответствуют изоморфным графам, то спектры матриц будут совпадать и после сдвига.
Очевидно, если спектр каждой матрицы является простым, то есть среди собственных значений матрицы нет кратных, то задача определения изоморф-ноети графов разрешима однозначно путем сопоставления матриц A, B, Ua и Ub-
3
Основные трудности возникают при рассмотрении графов, спектры которых содержат кратные собственные значения. Возмущая матрицы в ходе итераций алгоритма, мы будем получать возмущение спектра матриц, при котором происходит расщепление кратных собственных значений, что позволяет установить однозначное соответствие между строками и столбцами матриц,
В итоге, если среди собственных значений матриц A и B есть кратные, то в ходе работы алгоритма они будут расщеплены, и будет возможно получение перестановки, задающей искомое отображение <^, устанавливающее изоморфизм графов Ga = (VA, EA) и Gb = (Vb, EB). Численные эксперименты показывают, что расщепление спектра матриц, необходимое для определения соответствующих друг другу строк и столбцов матриц, происходит значительно раньше заключительной итерации,
В ходе работы алгоритма на каждой итерации будем работать не с исходными, но с уже возмущенными в ходе предыдущих итераций алгоритма матрицами, Так, получив соответствие между строкой j матрицы Aj и строк ой к матрицы Bj на итерации j, а также столбцами с теми же номерами, рассматриваем далее возмущенные матрицы Aj+1 и Bj+1:
Возмущения производим с помощью диагональных матриц Cк с диагональными элементами
В результате, если матрица B может быть получена из матрицы A последовательными одновременными перестановками строк и столбцов, то пока j пробегает значения от 1 до и, будет получена, вообще говоря, одна из возможных перестановок строк и столбцов матрицы A:
где kj - номер строки матрицы B, полученный на j-й итерации работы алгоритма.
Перестановка задает такую перенумерацию вершин графа Ga, то есть отображение <р : Va ^ VB, при которой матрицы Ah B, представляющие графы, совпали бы, что возможно только в случае изоморфности графов.
Алгоритм спектрального расщепления проверки изоморфности графов Шаг О, A0 := A, j := 1,
Шаг 1, Если j < и, то Aj := Aj-1 + eCj, иначе работу алгоритма завершить. Шаг 2, Решение системы уравнений Ax = ej. xj — полученное решение.
Шаг 3, к := 1. Если к < и, то - Шаг 3,1, иначе перейти на Шаг 4,
Шаг 3,1, Bк := Bк-1 + єСк.
Шаг 3,2, Решение системы уравнений Bку = ек. ук — полученное решение.
Aj+1 = Aj + єСj, Bj+1 = Bj + єСк.
1, если i = j = к 0, иначе.
1 2 ... n
k1 k2 ... к
4
Шаг 3,3, k := k + 1, Перейти на Шаг З,
Шаг 4, Сравнение норм х' и yk, k = 1,... ,n.
Если Vk \\x'|| = ||yk\\, то графы GA и GB неизоморфны. Работу алгоритма завершить.
Если 3k : ||x'\\ = \\yk\\ и x' = yk, то вершине j графа Ga ставим в соответствие вершину k графа GB, Иначе графы Ga *i GB неизоморфны. Работу алгоритма завершить.
Шаг 5, j := j + 1, Перейти на Шаг 1,
Трудоемкость представленной схемы алгоритма равна O(n4), где n — число строк в квадратных матрицах A и В, подающихся на вход алгоритма. Следует отметить, что с добавлением процедуры проверки спектра матриц A и B на расщепленность схема алгоритма может быть модифицирована до схемы с трудоемкостью O(n3'5).
2. Решение задачи Фробениуса для произвольных квадратных матриц полного ранга
Алгоритм спектрального расщепления проверки изоморфности неориентированных графов может быть применен без каких-либо модификаций для проверки изоморфности взвешенных неориентированных графов. Схема алгоритма остается в точности той же, модифицируются только представляющие графы матрицы, с которыми работает алгоритм,
В задаче даны два неориентированных графа GA = (VA, EA) и GB = (Vb, EB), где Va, Vb — множества вершин графов, Ea , EB — множества ребер. Предполагается, что \VA\ = \VB\, \Ea\ = \EB\, На множествах ребер графов GA и GB
определены функции HA : EA ^ R и HB : EB ^ R, задающие веса ребер. Задача определения изоморфизма взвешенных графов формулируется следующим образом: существует ли биективное отображение <р : VA ^ VB, такое, что если
(i,j) Є EA, ТО (^(i),^(j)) Є EB И HA(i,j) = HB(^(i),^(j))?
Матрицы смежности взвешенных неориентированных графов также преобразуются до положительно определенных матриц с диагональным преобладанием, но при этом диагональные элементы подбираются так, чтобы числа обусловленности матриц, с которыми работает алгоритм, были ограничены.
Пусть Ao = (a0) — матрица смежности взвешенного ориентированного графа Ga Da0 — диагональная матрица с элементами dp
П
di = d + ^ ^ a',
'=і
n
где d = max a'. Таким ж образом строится матрица DBo для взвешенного
1<І<П'=і '
неориентированного графа GB то его матрице емежности В0,
5
Для числа обусловленности ^(A) симметричной матрицы A справедлива следующая оценка [6]:
MA) <
П(Л) Х(Л) ’
где п(Л) = max (а,, + Е \aij|) , X(A) = min {аи - Е \aij|)-
1<г<п j=i 1<г<п j=i
При нашем выборе d
п п п п
n(A) = max(ац + Е \<\) = aiiii + Е Ki\ = dii + Е К j\ = d + 2 Е Кі\
1<і<п
j=1
j=1
j=1
j=1
3 E \< j\,
j=1
x(a) = _min (an - E \a°n\) = ai2i2 - E Ki\ = di2 - E K,\ = E K,\ + d-
1<і<п
j=1
j=1
i2j I i2j I
j=1 j=1
п п п
- E \ a02 j \ = E \ a02 j \ + E \a0i j \
j=1 j=1 j=1
Следовательно,
MA)
-El
j=1
i2i I
E \a
0
'i 1 j
n(A) <
X(A) “
3 E \a°1 j
j=1
E \< j
j=1
3.
В задаче Фробениуеа даны две матрицы Fa и Fb с одинаковым числом строк и столбцов. Требуется определить, может ли одна из матриц быть получена из другой при помощи некоторой перестановки ее строк и столбцов.
Будем считать, что матрицы Fa и Fb — квадратные матрицы полного ранга с числом строк, равным и, Матрица A0 вида
0
FA
Fa
0
может рассматриваться как матрица смежности некоторого взвешенного неориентированного графа. Построив для матрицы A0 матрицу Da0 описанного выше вида, ставим в соответствие исходной матрице Fa матри цу A:
То есть
и
где
D
1
Ao
A = Ao + Da o *
A = (Da- Fa N DA •)
DAo = ■(Da • «A •)■
0 ... 0 \ ^^п+1 0
d2 ... 0 d2 , DAo = 0 dn+2
0 ... dn/ 10 0
1
0 \
0
^2п J
6
Итак, A — симметричная положительно определенная матрица с диагональным преобладанием, соответствующая некоторому двудольному взвешенному неориентированному графу. Матрица FB — квадратная матрица с тем же числом строк, что и матрица Fa Аналогично ставим в еоответетвие матрице FB матрицу B. Применяя к матрицам A и B описанный выше алгоритм, формируем решающую перестановку строк и столбцов матриц A и B,
По перестановкам строк и столбцов матриц A и B формируем перестановки строк и столбцов исходных матриц Fa и FB следующим образом. Пусть алгоритмом получено соответствие строки и столбца номер г матрицы A столбцу и строке номер j матрицы B, Очевидно, что если 1 < г < и, 1 < j < и, то перестановка пары строк {г, j} и столбцов {г, j} матрицы A соответствует перестановке строк г и j исходной матрицы Fa Если и +1 < г < 2и, и + 1 < j < 2п, то перестановка пары строк {г, j} и столбцов {г, j} матрицы A соответствует перестановке столбцов г и j исходной матрицы Fa Так как матрицы A и B, с которыми работает алгоритм, имеют вид:
(* 0 ... 0 * * ... *\
0 * ... 0 * * ... *
0 0 ... * * * ... *
* * ... * * 0 ... 0
* * ... * 0 * ... 0
*
* ... * 0 0 ...
где * обозначены позиции, допустимые для ненулевых элементов, то ситуация, когда алгоритм поставил бы в соответствие друг другу пару строк и столбцов матриц A и B с номерами {г, j} и 1 < г < п, и +1 < j < 2и невозможна, так как после такой перестановки строк и столбцов, если исходные матрицы Fa и FB не являются диагональными, в левой верхней части матрицы A (в матрице D\o) и правой нижней части (в матри це D\o) появились бы кроме диагональных дополнительные ненулевые элементы, чего не может быть по построению матриц A и B, Следовательно, получение такого соответствия в ходе работы алгоритма невозможно.
3. Дешифрование шифра двойной перестановки
при помощи алгоритма спектрального расщепления
Пусть исходный текст представлен некоторой квадратной матрицей символов. Формируем матрицу шифра, где каждому символу текста поставлен в соответствие его некоторый числовой код. Вторая матрица представляет собой также некоторый кодированный таким же образом текст. Требуется определить, является ли текст, представленный второй матрицей, шифром двойной перестановки текста, представленного первой матрицей. То есть требуется определить,
7
является ли он текстом, полученным из первой текстовой матрицы при помощи перестановок ее строк и столбцов. Такая задача может быть интерпретирована как задача Фробениуеа для пар числовых матриц, и, следовательно, для ее решения может быть применен алгоритм спектрального расщепления проверки изоморфности графов,
В ходе вычислительного эксперимента установлено, что для успешного решения задач проверки изоморфности неориентированных невзвешенных и взвешенных графов при решении систем линейных уравнений достаточно 60-ти итераций метода Зейделя для достижения необходимой точности при том, что расщепление спектра происходит за число итераций, не превышающее числа групп кратных собственных значений матриц А и B, подаваемых на вход алгоритма. Для задач проверки изоморфности графов проведены вычислительные эксперименты, в частности, для регулярных графов с числом вершин до 2500, Для задач дешифрования шифра двойной перестановки проведены вычислительные эксперименты с текстами с числом символов до 5000,
Литература
1. Гэри \!.. Джонсон Д.Вычислительные машины и труднорешаемые задачи. М.: Мир, 1982.
2. Hopcroft, Wong A linear time algorithm for isomorphism, of planar graphs. Proceedings of the Sixth Annual ACM Symposium on Theory of Computing. 1974. P.172-184.
3. Luks Isomorphism of graphs of bounded valence can be tested in polynomial time. Proc. 21st IEEE FOCS Svmp., 42, 49, 1980.
4. Hoffmann Group-Theoretic Algorithms and Graph Isomorphism. Lecture Notes in Computer Science (Chapter V). 1982. P.127-138.
5. Цветкович Д. и др. Спектры графов. Теория и применение. Киев: Наукова думка, 1984.
6. Годунов С.К. и др. Гарантированная точность решения систем, линейных уравнений в евклидовых пространствах. Новосибирск: Наука, 1988.
8