С. В. Погожее, Г. М. Хитров
О ПРОБЛЕМЕ ИЗОМОРФИЗМА ГРАФОВ И ОБ ОДНОМ МАТРИЧНОМ АЛГОРИТМЕ ЕЕ РЕШЕНИЯ
В настоящей статье, отталкиваясь от матричного определения графа, как класса перестановочно подобных квадратных (0,1)-матриц, решается задача (проблема) изоморфизма двух графов, которая рассматривается в статье как частный случай задачи об изоморфизме графа некоторому остовному подграфу другого графа. Такой подход позволил не только оттенить особенности проблемы изоморфизма графов и показать, почему эта проблема проще полного перебора, но и предложить программно реализованный алгоритм решения этой проблемы.
Данная статья является дальнейшим развитием работы [1].
Начнем статью с цитирования отрывка из книги В. Ф. Горькового [2, с. 30], посвященного проблеме изоморфизма графов.
«Очевидный способ установления изоморфности двух n-вершинных графов следует из определения этого понятия и заключается в просмотре всех п! подстановок и установлении совмещаемости ребер графов хотя бы при одной подстановке. На практике такое решение неприемлемо, так как даже при сравнительно небольших п решение проблемы изоморфизма таким образом затруднительно из-за ограниченных возможностей современных вычислительных машин. С. Ангер [...] подсчитал, что при п = 20 может понадобиться около 40 лет машинного счета.
С другой стороны С. В. Яблонским [... ] было показано, что для класса всех графов и для некоторых наиболее интересных ее подклассов не может существовать такого алгоритма решения, который был бы значительно проще полного перебора всех мыслимых случаев.
Это обстоятельство стало причиной возникновения такого подхода к решению проблемы изоморфизма, при котором предпринимаются попытки найти легко вычислимый инвариант, обладающий свойством полноты, т. е. определяющий граф с точностью до изоморфизма. В [...] проанализированы все такие попытки и указано, что надежды, связанные с ними, пока не оправдываются».
Упоминаемое в последнем абзаце цитаты понятие «инвариант» применяется В. Ф. Горьковым в качестве характеристики класса изоморфных между собой графов. Мы же исходим из того, что класс изоморфных графов, по сути, и есть граф. Используя взаимно однозначное соответствие между графом как таковым и его матрицей смежности, привязанной к конкретной нумерации вершин графа, определим граф как класс матриц смежностей графа при всевозможных различных наборах нумераций
Погожев Сергей Владимирович — кандидат физико-математических наук, доцент кафедры компьютерных технологий и систем факультета прикладной математики-процессов управления Санкт-Петербургского государственного университета. По теме статьи имеет 2 публикации и является разработчиком пакета программ «ZerOne» для исследования графов и (0,1)-матриц (http://www.apmath.spbu.ru/grafomann/download.html). Научные направления: программирование, дискретная математика и теория графов. E-mail: [email protected].
Хитров Геннадий Михайлович — кандидат физико-математических наук, доцент кафедры компьютерных технологий и систем факультета прикладной математики-процессов управления Санкт-Петербургского государственного университета. По теме статьи имеет 4 публикации и является инициатором создания странички «Графоmann» (http://www.apmath.spbu.ru/grafomann/). Научные направления: дискретная математика и теория графов. E-mail: [email protected].
© С. В. Погожев, Г. М. Хитров, 2008
вершин графа. Поскольку матрица смежности есть квадратная (0,1)-матрица (матрица из нулей и единиц), то фактически граф определен как класс перестановочно подобных между собой квадратных (0,1)-матриц. Перестановочным преобразованием подобия будем называть переход от одной (0,1)-матрицы (в дальнейшем слово «квадратной» будем опускать, поскольку другие матрицы не будут рассматриваться) к другой с помощью перестановки строк и такой же перестановки столбцов. Именно такое преобразование матрицы смежности и происходит при переходе от одного набора номеров вершин графа к другому набору. Так, если обозначить через A матрицу смежности некоторого графа при некоторой данной нумерации вершин, и через P матрицу перестановки (кстати, тоже (0,1)-матрицу), задающую изменение нумерации, то матрица смежности B исходного графа при новой нумерации будет определяться равенством B = PAP' (штрих при обозначении матрицы означает операцию транспонирования). Как видим, матрицы B и A подобны, откуда и название преобразования - преобразование перестановочного подобия. Перестановочное подобие есть частный случай подобия матриц.
После столь длинного вступления становится более ясным употребление понятия инвариант, ибо оно связано с понятием преобразования. Теперь, когда речь идет об инвариантах графа, понятно, что речь идет об инвариантах относительно преобразования перестановочного подобия.
Рассмотрим далее любую (0,1)-матрицу в качестве представителя графа. Тогда, если имеем две (0,1)-матрицы B и A одного порядка, возникает вопрос - являются ли эти матрицы представителями одного графа (принадлежат одному классу перестановочно подобных между собой матриц) или разных (принадлежат различным классам)? Таким образом, проблема изоморфизма графов сведена к задаче перестановочного подобия двух (0,1)-матриц B и A одного порядка, скажем п, т. е. к проверке условия
B - PAP' = 0. (1)
Если при некоторой матрице перестановки P условие (1) выполняется, то матрицы B и A перестановочно подобны и являются представителями одного и того же графа; если ни при каких из п! матриц перестановок P порядка п условие (1) не выполняется, то B и A не подобны перестановочно и задают разные графы.
Чтобы лучше оценить степень трудности проблемы изоморфизма графов, сформулируем заведомо более трудную задачу. Для этого напомним определение остовного подграфа графа. Если в графе убрать некоторое число связей (дуг) между вершинами, то получится граф, который называют остовным подграфом исходного графа. Если исходный граф был задан матрицей B, то после удаления в нем некоторого числа дуг (единиц в матрице B) получится подграф с матрицей смежности, которую обозначим, например, A. Очевидно, что в этом случае
B - A > 0. (2)
Пусть теперь A - матрица смежности некоторого графа и имеет тот же порядок п, что и матрица B, задающая некоторый другой граф. Спрашивается, изоморфен ли граф, заданный матрицей A, некоторому остовному подграфу графа, заданного матрицей B? Учитывая условие (2) и матричное определение графа, получим следующий ответ: граф, заданный матрицей A, будет изоморфен некоторому остовному подграфу графа, заданного матрицей B, когда существует такая матрица перестановки P, что выполняется условие
В - РЛР' > 0.
(3)
К этой же задаче сводится и более общая задача. Пусть т-вершинный граф задан матрицей Л, а п-вершинный граф задан матрицей В, и пусть т ^ п. Спрашивается, когда граф, заданный матрицей Л, будет изоморфен подграфу графа, заданного матрицей В? Чтобы ответить на этот вопрос, дополним т-вершинный граф до п-вершинного изолированными вершинами. Матрицу смежности полученного графа вновь обозначим через Л. Таким образом, новая задача сводится к предыдущей.
Сравнивая условия (1) и (3), видим, что условие (1) является частным случаем условия (3) и, следовательно, проблема изоморфизма - это частный случай последней задачи. Обе задачи в общем случае сводятся к перебору п! матриц перестановок Р и проверке условий (1) и (3). Однако имеется и важное различие.
В случае задачи об изоморфизме графов можно исходить из того, что у изоморфных графов их матрицы смежности перестановочно подобны, т. е., по существу, имеем дело с одним графом. Таким образом, все известные инварианты графов должны совпадать. Несовпадение инвариантов означает, что имеем дело с разными графами, т. е. получаем отрицательный ответ при решении проблемы изоморфизма.
Другое дело задача об изоморфизме графа подграфу. В этой задаче изначально сталкиваемся в общем случае с различными графами. Это означает, что нет возможности воспользоваться понятием инварианта, и как следствие пока не остается ничего другого, как решать эту задачу перебором матриц Р при проверке условия (3).
Вернемся вновь к проблеме изоморфизма и последнему абзацу приведенной цитаты. В нем говорилось, что пока попытка решения проблемы с помощью инвариантов не увенчалась успехом. Обратим внимание, что под инвариантом графа понималась некая числовая характеристика, неизменная для всего класса изоморфных графов. Используя матричное определение графа, для решения проблемы изоморфизма можно строить матричные инварианты графа [1, 3], а не числовые. Матричные инварианты сохранили достоинства своих скалярных коллег - несовпадение матричных инвариантов, вычисленных для проверяемых на перестановочное подобие матриц, ведет к отрицательному ответу относительно подобия матриц. Совпадение же матричных инвариантов с точностью до перестановки строк позволяет либо сразу сократить класс перебираемых матриц перестановок, либо использовать стандартную процедуру (преобразование исходных матриц), гарантирующую указанное сокращение. По сути это было уже сделано в [1]. Но в [1] вопрос решался о принципиальной возможности сокращения мощности класса перебираемых матриц перестановок. В данной же статье вопрос ставится о практическом сокращении числа перебора и о сокращении числа используемых в алгоритме вычислений.
Теория вопроса достаточно подробно изложена в статье [1]. Также можно обратиться к статье [3], где даны определения матричных инвариантов, используемых нами для построения вспомогательных матриц, через которые ищется разнообразие графа. Поэтому ниже в статье приводится лишь алгоритм проверки Р-подобия матриц.
Для испытуемых квадратных (0,1)-матриц Л и В одинаковой размерности п строятся матричные инварианты Ел и Ев:
Кл = (яа, Ял, Ла , я а2 , Ял2 , ¿л2 , йа3 , Ял3 , ¿а3 ), кв = (йв, Яв ,Лв, йв2 ,Яв2 ,Лв2, йв3 ,Яв3 ,лв3 ).
Здесь Ra - матрица размерности n х 9 со столбцами SAm = Ame, qAm = A'm e и dam, где SAm - столбец строчных сумм матрицы Am; qAm - столбец столбцовых сумм матрицы Am; dAm - диагональ матрицы Am, записанная в виде столбца; m = 1, 2, 3; e - столбец размерности n из единиц.
Матричный инвариант Rb строится аналогично.
Замечание!.. Поскольку в статье речь идет только о перестановочном подобии, то слово «перестановочное» будем опускать. Точнее, в дальнейшем под подобием будем понимать перестановочное подобие.
Замечание2. Поскольку проверка изоморфизма для графов с числом вершин 3 и меньше не представляет труда, то будем считать, что n > 3.
ЗамечаниеЗ. Если матрицы A и В симметричны, то столбцы qAm и qBm (m = 1, 2, 3) не строятся. В этом случае матрицы R\a и Rib имеют размерность n х 6. Отметим, что матрицы A и B должны быть вместе симметричными или несимметричными, в противном случае они не могут быть подобными.
Построим матрицу перестановки Q, собирающую одинаковые строки матрицы Rb в группы и располагающую группы по убыванию числа одинаковых строк, т. е. переходим от матрицы Rb к матрице Rb = QRb . Выписываем разнообразие [!]: p(Rb ) = к
= (k,ni,... ,nk; Пі = n), где к - число групп одинаковых строк, щ - число строк в
i=1
i-й группе. В силу предположения об упорядочивании строк, щ ^ щ при i < j.
Затем ищем матрицу перестановки P такую, что Rb = PRa = Ra. Если такой матрицы не существует, то матрицы A и B не подобны.
Если такая матрица существует, то задача о подобии матриц A и B сведена к эквивалентной задаче о подобии матриц A = PAP' и B = QBQ'. Очевидно, что Rb = R¿,
Ra — RA и R в — RA.
Если остановиться на этом месте, то проверка подобия матриц A и В сведена к задаче перебора матриц перестановок P вида P = P1 ® P2 ® ... ® Pk, где ® - знак «прямого» сложения (прямой суммы [4, с. 38]), Pj - матрица перестановки размерности nj. Обозначим через Пі класс матриц указанного выше вида. Тогда если существует матрица P Є Пі такая, что В = PAP', то матрицы A и В подобны, если не существует -то не подобны. Размерность класса П1 (она же - верхний предел числа переборов) равна Ni = (ni\){u2\) • • • (nk! ). Это число строго меньше числа n! (числа «полного перебора») в случае, если к ^ 2.
Дальнейшее исследование подобия матриц A и В распадается на два различных случая в зависимости от использованного выше числа k, фигурирующего в определении первых матричных инвариантов.
Случай к ^ 2. Разбиваем матрицы A и В на блоки горизонтальными и вертикальными полосами ширины ni,n2, ...,nk соответственно.
Выписываем блочные диагонали уже блочных матриц A и В: = Ai ® A2 ®... ® Aik
и Bd = В1 ® В2 ® ...® Bk, где квадратные блоки Aj и Bj имеют размерность nj.
Поскольку необходимым условием подобия (над классом П1) блочных матриц A и В является подобие матриц A¿ и B¿, то на следующем шаге для каждого j Є {1,..., к} проверяется подобие матриц Aj и Bj. Если для какого-то j Є {1,..., к}, матрицы Aj и Bj не подобны, то не подобны и матрицы A и В, а следовательно, не подобны и исходные матрицы A и B. То есть получаем окончательный ответ.
Если для всех матриц Aj и Bj выполняется равенство R ^. = Ra ., то проверка на
подобие матриц A и В сводится к перебору матриц PAP', где матрицы P имеют вид P = P11 ® ... ® P1kl ® P21 ® ... ® Pkkk. Число таких переборов ограничивается числом
N2 = (N1)k1 ■ (Ni)k2 ■ ... ■ (Ni)kk, где {Ni)kj = (nji!) ■ ... ■ (njkj!). Очевидно, что если
хотя бы одно kj ^ 2, то N2 < N\.
Случай k = 1. Воспользуемся алгоритмом из [1], позволяющим перейти от исходных испытуемых матриц к эквивалентным относительно решения вопроса об их подобии.
Переход к эквивалентным матрицам. В случае, когда k = 1, каждая из матриц Ra и Rb состоит из одинаковых строк. Если Ra = Rв, то матрицы A и B не подобны.
Если Ra = Rb , то у матриц A и B одинаковые диагонали, которые состоят или из одних единиц, или из одних нулей. Поскольку матрицы A и B подобны тогда и только тогда, когда подобны матрицы A — E и B — E, то можно считать, что матрицы A и B имеют нулевые диагонали. Для этого случая строим матрицы A(1) и Bj из матриц A и B следующим образом. В матрице A элемент ац полагаем равным единице и обозначаем полученную матрицу как A(1). В матрице B элемент bjj полагаем равным единице и обозначаем полученную матрицу как B(j) (j = 1, 2, ...,n).
Далее проверяем на подобие полученные матрицы A(1) и B(j. Как отмечено в [1], для них разнообразие k > 2, и, следовательно, проверка на подобие данных матриц проводится описанным выше способом.
Если для данного j установили, что матрицы A(1) и B(j) подобны, то подобны и матрицы A и B. Если для всех j, для которых Ra(i) = Rb (j), матрицы A(1) и Bj не подобны, то не подобны и матрицы A и B.
Замечание4. Данный алгоритм реализован в программе psimilar из пакета ZerOne [5].
Summary
Pogozhev S. V., Hitrov G. M. On Graph isomorphism problem and matrix algorithm of its solution.
The solution of the isomorphism problem of graphs, set by the A and B adjacency matrices is suggested. The initial task is reduced to the problem of the permutational similarity of two square (0,l)-matrices of the same dimension, that is to the problem of finding such a permutation matrix P, in which B = PAP'. The apparent decision of the latter problem is to complete enumeration of matrices, which for the initial size of the matrix within 25 could not yet be realized. Reduction of full search, as well as cutting off of most cases of non similar matrices is based on the concept of a matrix invariant. If matrix invariants constructed in the same way are different in composition, the original matrix is not permutable similar. If matrix invariants coincide in composition, so-called diversity of the invariant is considered. Using invariant diversity allows to search not the whole group of the permutation matrix of the given size, but only a subgroup of the block-diagonal permutation matrix dependent on matrix invariant diversity. Procedures of the future block fragmentation allowing the reduction of a sought set or in general specifying the required P matrix are presented. The reference to the source in the Internet where the program written by the authors practically realizing the algorithm of the problem solution is exposed is given.
Key words: graph isomorphism problem, permutational similarity, matrix invariant, (0,l)-matrix, matrix invariant diversity.
Литература
1. Хитров Г. М. О разнообразии графа и применении этого понятия к проблеме изоморфизма графов // Вестн. С.-Петерб. ун-та. — Сер. 10: Прикладная математика, информатика, процессы управления. - 2006. - Вып. 2. - С. 91-100.
2. Горьковой В. Ф. Графы Бержа: изоморфизм, декомпозиция, раскраски. - СПб.: Изд-во С.-Петерб. ун-та, 1994. - 183 с.
3. Виташевская И. С., Олемской И. В., Хитров Г. М. О некоторых инвариантах квадратных (0,1)-матриц // Вестн. С.-Петерб. ун-та. - Сер. 10: Прикладная математика, информатика, процессы управления. - 2007. - Вып. 1. - С. 38-45.
4. Хорн Р., Джонсон Ч. Матричный анализ / Пер. с англ. Х. Д. Икрамова и др.; Под ред. Х. Д. Икрамова. - М.: Мир, 1989. - 656 с.
5. Пакет программ ZerOne // http://www.apmath.spbu.ru/grafomann/.
Статья рекомендована к печати проф. Л. А. Петросяном.
Статья принята к печати 29 апреля 2008 г.