Нормальная форма (0,1)-матрицы и алгоритмы ее построения

УДК 519.17:512.643.8

Вестник СПбГУ. Сер. 10, 2008, вып. 4

Д. В. Савицкая

НОРМАЛЬНАЯ ФОРМА (0,1)-МАТРИЦЫ И АЛГОРИТМЫ ЕЕ ПОСТРОЕНИЯ

В статье обсуждаются уже имеющиеся предпосылки для введения понятия нормальной формы квадратной (0,1)-матрицы, доказываются новые теоретические результаты, которые легли в основу введения нормальной формы, и приводится алгоритм построения этой формы.

В силу тесной связи (0,1)-матриц и графов, все сказанное относительно нормальной формы квадратных (0,1)-матриц может быть отнесено к нормальным формам представителя графа.

При построении нормальной формы попутно решается классическая задача теории графов - выделение компонент связности графа.

Предпосылки определения и построения нормальной формы (0,1)-матри-

цы. Поскольку граф задается с точностью до изоморфизма, то возникает задача выделить в классе изоморфных представителей графа такого представителя, который был бы в чем-то наиболее простым, т. е. представителя, которого можно было бы назвать «нормальной формой графа». Однако граф имеет несколько определений - геометрическое, теоретико-множественное и матричное, и это затрудняет определение «нормальной формы графа». Если остановиться на матричном определении графа, как класса квадратных перестановочно подобных (0,1)-матриц, то задача в понятийном смысле существенно упрощается, поскольку для разных классов матриц и различных видов преобразований давно существуют понятия нормальной или канонической формы матрицы. При таком подходе к задаче нормальную форму квадратной (0,1)-матрицы относительно преобразования перестановочного подобия (Р-подобия) и можно назвать нормальной формой графа.

Напомним, какие «нормальные формы» матриц относительно преобразования Р-подобия, т. е. преобразования, связанного с перестановкой строк и такой же перестановкой столбцов в квадратных матрицах, нам уже встречались. Наиболее известными являются нормальная форма или вид разложимой матрицы и импримитивной матрицы. По сути, через канонический вид этих матриц и дается их определение (точнее, одно из определений).

Определение 1. Квадратная матрица А порядка п называется разложимой, если с помощью перестановки рядов, т. е. перестановки строк и такой же перестановки столбцов, она может быть приведена к виду

здесь An и A22 - квадратные матрицы порядков к и n — к соответственно, нулевая матрица, стоящая в левом нижнем углу, имеет размерность (n — к) х к; P - соответствующая матрица перестановки; штрих вверху после обозначения матрицы означает

Савицкая Диана Владимировна — аспирант кафедры высшей математики факультета прикладной математики—процессов управления Санкт-Петербургского государственного университета. По теме статьи имеет 5 публикаций. Научный руководитель канд. физ.-мат. наук, доцент Г. М. Хитров. Научные направления: дискретная математика и теория графов. E-mail: Diana.sav@gmail.com.

© Д. В. Савицкая, 2008

ее транспонирование. Другими словами, матрица называется разложимой, если с помощью перестановки рядов можно получить, например, в левом нижнем углу нулевую матрицу размерности (п — к) х к хотя бы для одного к, где к € 1, 2,...,п — 1.

Определение 2. Квадратная неразложимая (т. е. не являющаяся разложимой) матрица А порядка п называется импримитивной, если с помощью перестановки рядов она может быть приведена к виду

где вдоль диагонали стоят квадратные нулевые блоки.

Если в является максимальным числом (при в ^ 2), удовлетворяющим форме (2), то в называется индексом импримитивности матрицы А. В общем случае в в форме (2) является целым положительным большим единицы делителем индекса импримитивности. Вид (2) импримитивной матрицы можно назвать нормальной формой им-примитивной матрицы, если в равно индексу импримитивности.

Вид (1) разложимой матрицы в общем случае нельзя назвать нормальной формой разложимой матрицы, поскольку в общем случае форма (1) определяется неоднозначно. Так, если мы рассмотрим верхнюю треугольную матрицу А порядка п (все элементы которой, расположенные ниже главной диагонали, равны нулю), то она имеет форму

(1) с любым к € 1, 2,...,п — 1. Попытка определения нормальной формы разложимой матрицы рассмотрена в [1]. Детальный разбор этой попытки приведен в работе

[2]. В частности, в [2] показано, что для определения нормальной формы разложимой матрицы следует разделить понятие разложимой матрицы на определение сильно разложимой матрицы и определение слабо разложимой матрицы.

В [3] показано, что при исследовании свойств разложимости и неразложимости, а для неразложимых матриц - свойств импримитивности и примитивности, можно от изучаемых матриц перейти к их индикаторным матрицам. Напомним, что индикаторной матрицей заданной матрицы будет матрица, полученная из исходной, если в последней все ненулевые элементы заменить единицами. Переход от матриц к их индикаторным матрицам успешен по двум причинам.

Во-первых, обычные операции сложения и умножения матриц в интересующих нас случаях можно заменить булевскими операциями. Так, известный критерий (необходимое и достаточное условие) [1,3] неразложимости квадратной неотрицательной матрицы А порядка п, сводящийся к требованию (Е + А)п-1 > 0, при замене матрицы А ее индикаторной матрицей (которую тоже обозначим через А) заменяется требованием (Е+А)хп-1 = и, где и - матрица из единиц, а все операции - булевские.

Во-вторых, индикаторную матрицу можно отождествить с некоторым графом. (Далее квадратные (0,1)-матрицы будем просто называть матрицами графа.) Таким образом, матричным понятиям сильной и слабой разложимости, неразложимости, примитивности и импримитивности должны соответствовать некоторые графовые понятия.

В данной статье при построении нормальной формы квадратной (0,1)-матрицы было решено отказаться от пути, начертанного для этой цели работами [1, 2], в частности определяющего нормальную форму как матрицу линейного оператора в некотором удачном базисе. За основу построения нормальной формы было решено взять

/ 0 А12 0 0 0 А23

0 0

А = РАР'

0 0 0 ... Аа-1,а \АЯ1 0 0 ... 0 /

именно связь (0,1)-матриц и графов. Поэтому наряду с указанным выше разбиением (0,1)-матриц на классы было решено рассмотреть их разбиение в соответствии с разделением графов по типам связности [4].

Перед тем как переходить к формулировкам типов связности графа, поговорим просто о связности графа, отталкиваясь вначале от геометрического, т. е. обычного определения графа. При этом будем считать, что такие понятия как вершина, дуга, ребро и петля при вершине в графе известны.

Существование в графе дуги, идущей из г-й вершины в ]-тую вершину, означает наличие ориентированной связи между этими вершинами. Отталкиваясь от понятия ориентированной связи, можем ввести следующие операции в графе: изменение ориентации и снятие ориентации. Изменение ориентации означает изменение направления дуги. Снятие ориентации означает добавление к любой дуге дуги противоположного направления, если таковой не было в графе. При этом если в графе имеется петля, то с ней ничего не происходит ни при операции изменения ориентации, ни при операции снятия ориентации - петля остается неизменной по определению. Граф, полученный из исходного после применения к нему операции изменения ориентации, будем называть обратным графом. Граф, полученный после операции снятия ориентации, будем называть соответствующим исходному симметричным графом. У него все связи между вершинами задаются ребрами и (или) петлями. Симметричный граф без петель обычно называют обыкновенным графом.

Будем также говорить, что вершина ] достижима из вершины г, если существует какой-либо путь (последовательность связанных одинаково направленных дуг), ведущий из вершины г в вершину ].

Мы описали указанные операции, отталкиваясь от геометрического определения графа. Нетрудно описать их исходя из теоретико-множественного определения графа. Опишем эти же операции, отталкиваясь от матричного определения графа. Заметим, что если граф задан матрицей А, то единицам, расположенным в г-й строке и не попадающим на диагональ матрицы, соответствуют исходящие из г-й вершины дуги. Число единиц в г-й строке (г-тую строчную сумму) будем называть степенью исхода г-й вершины (степень исхода равна числу выходящих из г-й вершины дуг, включая в это число и петлю при г-й вершине, если таковая есть). Аналогично, единицам, расположенным в г-м столбце и не попадающим на диагональ матрицы, соответствуют входящие в г-тую вершины дуги. Число единиц в г-м столбце (г-тую столбцовую сумму) будем называть степенью захода г-й вершины. Операции изменения ориентации будет соответствовать превращение г-й строки матрицы графа в г-й столбец матрицы обратного графа. Операция замены в матрице строк столбцами и, наоборот, столбцов строками, как известно, называется транспонированием матрицы. Таким образом, если граф задан матрицей А, то обратный граф будет задан матрицей А', транспонированной к исходной. Матрицей соответствующего симметричного графа, т. е. графа, полученного после снятия ориентации, очевидно, будет булева сумма матриц исходного и обратного графов. Будем обозначать ее как А (А = А+А').

Определение 3. Граф называется несвязным, если множество его вершин можно разбить на непересекающиеся подмножества таким образом, что вершины, входящие в различные подмножества, никак между собой не связаны.

Каждое подмножество вершин, непересекающееся с другим подмножеством, из упомянутого выше разбиения задает нам подграф исходного графа. Если этот подграф не является несвязным, то его называют компонентой связности графа, или просто компонентой.

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

Матрицу несвязного графа будем называть несвязной матрицей. Следовательно, термин несвязная матрица эквивалентен термину сильно разложимая матрица.

Определение 4. Граф называется связным, если он не является несвязным. Матрицу связного графа будем называть связной матрицей. Она может быть неразложимой или слабо разложимой.

Связные графы различаются между собой по типу связности.

Определение 5. Граф называется сильно связным, если любая его вершина достижима из любой другой.

Сильно связному графу соответствует неразложимая матрица.

Определение 6. Граф называется односторонне связным, если для любой пары различных вершин г и ' либо вершина ' достижима из г, либо вершина г из ', либо обе вершины достижимы друг из друга. При этом граф не является сильно связным.

Определение 6 предполагает, что матрица односторонне связного графа есть слабо разложимая матрица.

Определение 7. Граф называется слабо связным, если он связен, и существует, по крайней мере, одна такая пара различных вершин г и что вершина ' недостижима из г и вершина г из '.

Матрица слабо связного графа является слабо разложимой.

Исходя из определений 6 и 7, видим, что, ориентируясь только на матрицы графа, нельзя сказать, с каким случаем имеем дело - односторонне связным или слабо связным графом. Переход от матрицы графа к соответствующей симметричной матрице в указанных случаях также не ведет к успеху, поскольку связность симметричного графа означает его сильную связность, и, следовательно, матрица симметричного связного графа будет неразложимой.

Если мы хотим не только дать определение нормальной формы матрицы графа, но и строить ее, то должны признать неудовлетворительными для этой цели определения 5-7. Чтобы дать подходящие эквивалентные алгоритмически реализуемые определения или критерии, должны хотя бы бегло рассмотреть транзитивные графы и их матрицы.

Определение 8. Будем называть граф транзитивным, если любые две его вершины, связанные путем длины 2, смежные. Другими словами, граф транзитивный, если в графе вместе с любым путем длины 2, идущим из г-й вершину в '-тую, имеется и дуга (г,') (в частности, г может совпадать с ').

Рассмотрим следствия из этого определения.

Следствие 1. Если в транзитивном графе г-я и я вершины связаны ребром, то при г-й и '-й вершинах графа имеются петли.

Следствие 2. Если в транзитивном графе г-я вершина соединена с й путем длины к, то г-я вершина соединена с й путями длины к — 1, к —2,..., 1. (Доказывается индукцией по к, база индукции к = 2.) В частности, если в транзитивном графе имеется какой-либо путь, идущий из г-й вершины в '-тую, то имеется и дуга, идущая из г-й вершины в '-тую.

Следствие 3. Любой граф можно дополнить до транзитивного.

Действительно, если для любых двух вершин графа, соединенных путем длины 2, добавим соответствующую (если такой не было) дугу, затем в полученном графе снова проделаем ту же операцию и так до тех пор, пока указанная операция не будет изменять очередной полученный граф, то в итоге получим, в соответствии с определением 8, транзитивный граф. Операция, сопоставляющая любому графу минимальный транзитивный граф, его содержащий, называется транзитивным замыканием графа. В результате этой операции снова получается граф, который тоже называют транзитивным замыканием.

Очевидно, что полный (матрица графа состоит из одних единиц), единичный (матрица графа единичная) и вполне несвязный (матрица графа нулевая) графы являются транзитивными.

Перейдем теперь к матричному представлению графа, и все перечисленные свойства транзитивного графа сформулируем на матричном языке. Пусть граф задан некоторой (0,1)-матрицей А.

Определение 9. Квадратную (0,1)-матрицу А будем называть транзитивной матрицей, если Ах2 ^ А (все элементы булева квадрата матрицы А меньше либо равны соответствующим элементам матрицы А).

Покажем, что определение 9 эквивалентно определению 8. Пусть А = (а^), а А2 = (а(2)). В соответствии с определением произведения матриц а(2) = ^а^ка^, т. е. а(2) дает нам число различных путей длины 2 из вершины г в вершину '. Если это число больше или равно 1, то в Ах2 (в булевом квадрате матрицы А) на месте (г,') стоит единица. Тогда неравенство Ах2 ^ А означает, что граф, заданный матрицей А вместе с любым путем длины 2, соединяющим две вершины, содержит и соответствующую дугу, соединяющую эти вершины. То есть определение 9 эквивалентно определению 8. Из неравенств определения 9 следует, что в транзитивной матрице имеет место соотношение

агк аиз = а^,

верное для одновременно ненулевых а^к и а^.

В частности, если а^ = 1 и а^ = 1 (вершины г и ' соединены ребром), то а^а^ = а,ц = 1 (петля при вершине г) и а^^а^ = а^ = 1 (петля при вершине '). Следовательно, следствие 1 выполняется и для определения 9.

Если транзитивная матрица А такова, что аУ > 0, т. е. имеется путь а^г ... ^ из г-й вершины в '-тую длины к, то, заменяя последовательно любую пару соседних сомножителей в соответствии с правилом (соотношением (3)), получим следствие 2.

Назовем транзитивным замыканием квадратной (0,1) -матрицы А порядка п (0,1)-матрицу Та = П=1 Ах к (равную булевой сумме булевых степеней матрицы

А).

Верхний предел суммирования выбран из следующих соображений. Если из вершины г в вершину ' ведет какой-либо путь, то г-я и '-я вершины связаны также простым и более того элементарным путем, т. е. проходящим через каждую вершину, входящую в состав пути, ровно один раз. Максимальный элементарный замкнутый путь в п-вершинном графе содержит п дуг. Именно поэтому в качестве верхнего предела суммирования выбрано число п. Если же ввести понятие диаметра графа ¿, как максимального расстояния между любыми двумя вершинами графа (напомним, что расстоянием

между двумя вершинами называется длина кратчайшего элементарного пути между ними), то в качестве верхнего предела суммирования вместо числа n можно взять число d, которое ^ n.

Сформулируем теперь несколько простых утверждений относительно транзитивных матриц, первое из которых в силу его важности для алгоритма построения нормальной формы назовем теоремой.

Теорема 1. Если в транзитивном графе есть дуга из i-й вершины в j-тую, а степень исхода j-й вершины равна к, то степень исхода i-й вершины ^ к.

Доказательство. Пусть из вершины j выходят дуги (j,j1), (j,j2),    , (j,jk) [ji,j2,    ,jk - различные вершины]. Из условия теоремы и транзитивности графа следует, что в графе также существуют дуги (i,j1), (i,j2),    ,(i,jk). Откуда тотчас же вытекает утверждение теоремы.

Чтобы детальнее исследовать соотношения равенства и неравенства степеней исхода i-й и j-й вершин введем обозначение. Обозначим через J множество J = {ji,j2,    ,jk}. Разберем возможные варианты отношений элементов i и j к множеству J:

1. i,j € J. В этом случае степень i-й вершины, по крайней мере, на единицу больше степени j-й вершины, поскольку из i-й вершины, кроме перечисленных выше дуг, выходит еще дуга (i,j).

2. j € J, i € J .В этом случае степень исхода i-й вершины ^ к. Она может быть равна степени исхода j-й вершины, если из i-й вершины не выходит других дуг, кроме перечисленных выше.

3. i € J,j € J. Этот случай не реализуется. Действительно, из условия, что i € J, и определения множества J следует, что в графе существует дуга (j,i). Кроме того, по условию теоремы в графе существует дуга (i, j). Это означает, что вершины i и j соединены ребром. Тогда на основании следствия 1 при вершине j должна существовать петля, и, следовательно, на основании определения множества J получаем, что j € J. Противоречие.

4. i,j € J .В этом случае степень исхода i-й вершины совпадает со степенью исхода j-й вершины, поскольку вершины i и j в рассуждениях можно поменять местами. Предложение 1. Главная подматрица транзитивной матрицы будет транзитивной

матрицей.

Доказательство. Пусть A - транзитивная матрица. Обозначим через A главную подматрицу матрицы A. Обозначим через В булев квадрат матрицы A, т. е. положим B = A х 2. Обозначим через В главную подматрицу матрицы B, расположенную в строках и столбцах с теми же номерами, что и подматрица A в матрице A. Из определения транзитивности матрицы A (В ^ A) следует, что В ^ A (напомним, что матричное неравенство определяется через соответствующие поэлементные неравенства). Обозначим через В булев квадрат матрицы A, т. е. положим В = Aх2. Нам нужно доказать, что В ^ А. Очевидно, что В ^ В, поскольку любой элемент матрицы В составляет лишь часть булевой суммы, определяющей соответствующий элемент матрицы В. Теперь можем записать цепочку неравенств В ^ В ^ А, откуда и следует, что В < A.

Предложение 2. Если A = PAP' (матрица A P-подобна матрице A), то Тд = PTaP' (транзитивное замыкание Тд матрицы A P-подобно транзитивному замыканию Тa матрицы A).

Доказательство. Непосредственно следует из определений P-подобия и транзитивного замыкания матриц.

Предложение 3. Транзитивное замыкание матрицы сильно связного графа (неразложимой матрицы) будет полной матрицей (матрицей из одних единиц).

Доказательство. Вытекает из определений сильно связного графа и транзитивного замыкания.

Предложение 4. (0,1)-матрица А будет разложимой матрицей тогда и только тогда, когда ее транзитивное замыкание содержит нули.

Доказательство. Необходимость. Пусть матрица А разложима. Тогда она приводится к виду (1), т. е. к блочно треугольному виду. Любая степень блочно треугольной матрицы будет блочно треугольной матрицей той же структуры. Следовательно, транзитивное замыкание матрицы А содержит нули.

Достаточность. Пусть транзитивное замыкание матрицы содержит нули. Предположим противное, что матрица А неразложимая. Но тогда ее транзитивное замыкание должно быть полной матрицей (предложение 3). Противоречие, тогда А разложима.

Предложение 5. Транзитивное замыкание матрицы односторонне связного графа содержит нули, но не содержит симметрично расположенные относительно главной диагонали нули.

Доказательство. Действительно, матрица одностороннего связного графа является слабо разложимой матрицей. На основании предложения 4 ее транзитивное замыкание содержит нули. Если бы транзитивное замыкание содержало симметрично относительно главной диагонали расположенные нули, например, на местах (г,') и (', г), то это бы означало, что вершина ' недостижима из г и вершина г из '. То есть мы бы имели матрицу слабо связного графа.

Предложение 6. Транзитивное замыкание матрицы слабо связного графа не является сильно разложимой матрицей и содержит симметрично относительно главной диагонали расположенные нули.

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

Сформулируем еще одну теорему, которая понадобится для построения нормальной формы симметричной (0,1)-матрицы.

Теорема 2. Если булев квадрат симметричной неразложимой матрицы А является разложимой матрицей, то матрица А - импримитивна, в противном случае - примитивна.

Доказательство. Достаточность. Пусть неразложимая симметричная (0,1)-матрица А импримитивна, тогда по определению ее можно представить в виде

А = ( 0 А12 А = А21 0

Найдем булев квадрат импримитивной симметричной матрицы А Ах2 = ( 0 А12У.. ( 0 А^ _ (А12ХА21 0

ЧА21 0 ) \А21 0 ) V 0 А21 х А^,

Как видим, Ах2 соответствует виду (1), а значит, она является разложимой матрицей.

Необходимость. От противного. Пусть матрица Ах2 разложима, а матрица А не является импримитивной. Так как матрица А по условию теоремы неразложимая

матрица и по предположению не импримитивная, значит, она является примитивной матрицей. По лемме (см. [3, с. 610]) любая степень примитивной матрицы примитивна, однако Aх2—разложимая матрица, соответственно она не является примитивной - противоречие. Теорема доказана.

Замечание. При проверке на разложимость булева квадрата неразложимой матрицы A прибавление единичной матрицы при использовании приведенного выше критерия неразложимости не обязательно, поскольку диагональ этого квадрата единичная.

Приведенных выше сведений достаточно, чтобы ввести понятие нормальной формы транзитивной матрицы. Под нормальной формой (0,1)-матрицы будем понимать такую форму матрицы, транзитивное замыкание которой совпадает с одной из нормальных форм транзитивной матрицы. При этом если транзитивное замыкание ничего не дает, как происходит в случае неразложимой матрицы (транзитивное замыкание такой матрицы всегда полная матрица), используем уже существующие нормальные формы: нормальную форму импримитивной матрицы или форму, полученную после вершинной раскраски соответствующего матрице симметричного графа в случае примитивной матрицы. Заметим, что при создании алгоритмов построения уже существующих нормальных форм в статье также приводятся новые результаты, поскольку эти алгоритмы строятся в основном на булевых операциях.

Алгоритм построения канонического вида (0,1)-матрицы. Пусть дана матрица графа A - квадратная (0,1)-матрица размерности п. Поскольку для неориентированных графов не актуальны односторонняя связность и слабая связность, имеет смысл рассмотреть этот класс графов отдельно. Неориентированным графам соответствует симметричная матрица графа, потому первым шагом в алгоритме будет проверка матрицы графа на симметричность.

1. Проверяем, является ли матрица A симметричной, т. е. выполняется ли равенство A = A!. Если да, то переходим к шагу 2, если нет - к шагу 8.

2. Проверяем, является ли матрица A разложимой. Для этого строим матрицу Ta = (E+A) хn-1, где E - квадратная единичная матрица размерности dim(A), причем Ta будет матрицей транзитивного замыкания. Если Ta = U, то матрица A не разложимая. Такую матрицу A будем называть однокомпонентной матрицей (переходим к шагу 4). Если Ta = U, то матрица A разложимая (переходим к шагу 3).

3. Находим матрицу P и разбиваем с ее помощью разложимую матрицу A на компоненты. Строим вектор Tag = sta (e - столбец из единиц), затем строим матрицу P такую, что Psta = Sta , где sta - вектор-столбец строчных сумм, упорядоченный по убыванию элементов. При этом внутри групп с одинаковыми строчными суммами происходит упорядочивание таким образом, чтобы одинаковые строки следовали друг за другом. Строим матрицу Tak = PTaP'. Это блочно диагональная матрица с квадратными диагональными блоками Unj размерности nj, состоящими из одних единиц, где £k=1 nj = dim(A), а dim(A) - порядок квадратной матрицы A:

Tak

/Uni 0 ... 0 \ 0 Un2 ... 0

V 0 0 ... UnkJ

Матрицу AK1 = PAP' будем называть первой грубой канонической формой матрицы A:

A

/Ai 0 ... 0 \

0 A2 ... 0

K1 = . .

\0 0  AkJ

Квадратные блоки Aj размерности nj > 1 являются неразложимыми.

Если матрица A задает граф G, то матрица AK1 показывает, что граф G может быть разложен на компоненты Gi,G2,...,Gk, задаваемые матрицами Ai,A2,...,Ak соответственно. При этом подграфы Gj будут сильно связными подграфами при nj > 1, а блоки с размерностью nj = 1 соответствуют изолированным вершинам (с петлей или без нее).

4. Проверка неразложимой матрицы A или компонента Aj (nj > 1) матрицы Aki на примитивность. Для шагов 4-7 будем вести речь о матрице A, подразумевая либо саму матрицу A, либо компоненту Aj матрицы Aki , где j = {1, 2,...,к} и nj > 1. Очевидно, что если на главной диагонали матрицы A есть хоть один ненулевой элемент, значит, матрица A - примитивна [5]. Целесообразно сначала проверить след матрицы A. Если Sp(A) = 0, то переходим к шагу 5, если Sp(A) = 0 - к шагу 6.

5. Проверим на разложимость булев квадрат исходной матрицы, т. е. найдем транзитивное замыкание Та*2 = (Aх2) хn-i. Если Та¿2 = U, то Aх2 является неразложимой матрицей, а исходная матрица A - примитивной (по теореме 2), переходим к шагу 6. Если же Тал2 = U, то Aх2 - разложимая, а матрица A - импримитивная (по теореме 2), в этом случае переходим к шагу 7.

6. В построении нормальной формы примитивной матрицы будем использовать вершинную раскраску графа, поэтому разделим матрицу A на матрицу с нулевой главной диагональю A и диагональную матрицу Diag(A), т. е. A = A + Diag(A). Раскрашивать будем граф, соответствующий матрице A. Поскольку раскраска выделяет наименее связные вершины, а мы стараемся сгруппировать максимально связные вершины, то применим алгоритм раскраски к дополнительному графу. Для этого перейдем от матрицы A к ее дополнению, т. е. к матрице A = K — A, где K = U — E есть матрица из единиц с нулевой диагональю. Раскрасив дополнительный граф G с матрицей графа A по алгоритму А. Ю. Красновой [6], найдем некоторую матрицу перестановки P, которая выделяет подмножества несмежных между собой вершин. Применив ее к исходной матрице A, получим матрицу A = PAP', у которой вдоль диагонали стоят блоки из смежных вершин. Доказательство данного факта следует из утверждения [7], в котором говорится о том, что матрицы подобны тогда и только тогда, когда подобны их дополнения. Матрицу Ai будем называть нормальной формой примитивной матрицы.

7. Строим нормальную форму импримитивной матрицы. На этом шаге исходим из того, что Aх2 - разложимая матрица. В соответствии с исследованием разложимых матриц строим матрицу P, которая приводит ее к виду (1) при Ai2 = 0. С помощью найденной матрицы перестановки P находим канонический вид импримитивной матрицы A, т. е. A = PAP'. Отметим, что индекс импримитивности симметричной матрицы равен 2, а соответствующий граф является двудольным.

8. Матрица A несимметричная. Проверяем, является ли матрица A сильно разложимой. Для этого строим матрицу A = A+A' и ищем ее транзитивное замыкание Т д, как на шаге 2. Если Тд = U, то матрица A - однокомпонентная матрица, переходим к ее исследованию на слабую разложимость или неразложимость (шаг 10). Если Тд = U, то переходим к шагу 9.

9. Находим матрицу преобразования Р и разбиваем с ее помощью сильно разложимую матрицу А на несвязные между собой компоненты (аналогично шагу 3). Строим вектор Тде = втА, затем матрицу Р такую, что РятА = $тА, где $Та - вектор-столбец строчных сумм, упорядоченный по убыванию элементов, а одинаковые строки следуют друг за другом. Строим блочно диагональную матрицу ТдК = РТ^Р' с квадратными диагональными блоками ип) размерности и^, состоящими из одних единиц, где Е?=1 Щ = ¿гш(А). Таким образом, находим некоторую матрицу преобразования Р, с помощью которой получим первую грубую каноническую форму матрицы А - матрицу

АК1 = РАР': /А1 0 ... 0 \

0 А2 ... 0

A

Kl

\0 0 ... AkJ

Квадратные блоки Aj размерности nj > 1 являются неразложимыми или слабо разложимыми матрицами. Матрица Akl показывает, что граф G, задаваемый матрицей A, может быть разложен на компоненты Gi,G2,...,Gk, задаваемые матрицами Ai, A2,..., Ak соответственно. При этом подграфы Gj (nj > 1) будут связными (сильно, односторонне или слабо) подграфами, а блоки с размерностью nj = 1 соответствуют изолированным вершинам (с петлей или без нее). Переходим к исследованию на слабую разложимость или неразложимость каждой компоненты Aj (шаг 10), т. е. в дальнейшем A = Aj для j = 1,...,k и nj > 1.

10. Исследуем однокомпонентную матрицу на слабую разложимость. Строим матрицу Ta = (E++ A) х (n-1). Если Ta = U, то матрица A неразложима. Переходим к исследованию матрицы A на примитивность и импримитивность (шаг 15). Если Ta = U, то матрица A является слабо разложимой, переходим к шагу 11.

11. Строим вектор-столбец строчных сумм Tag = sta . Далее строим матрицу P такую, что Psta = Sta , где sta - столбец, упорядоченный по убыванию своих элементов. Упорядочивание элементов столбца sta приводит к тому, что все элементы столбца разбиваются на группы одинаковых между собой элементов. Обозначим мощности этих групп через nj (j = 1, 2,...,k), Xj=i nj = dim(A). Строим матрицу Tak = PTaP '. Матрица Tak разбивается на горизонтальные и вертикальные полосы размерностей nj (j = 1, 2,...,k), ^k=i nj = dim(A). Полученная блочная матрица будет блочной верхней (нули снизу) треугольной матрицей, т. е. будет иметь вид

/Т1 * ... * \

0 T2 ... *

Tak =

\0 0 ... Tk)

При этом диагональный блок Tj будет иметь размерность nj (j = 1,2,...,k), ^j=i nj = dim(A). Переходим к шагу 12.

12. Проверка наличия симметричных относительно главной диагонали нулей в матрице Tak . Для этого строим матрицу W = (U — Tak) ◦ (U — Tak)' ( о - адамарово (поэлементное) умножение). Если W = 0, то в матрице Tak нет симметричных относительно главной диагонали нулей, значит, матрица A соответствует односторонне связному графу, а матрица Ak2 = PAP', имеющая одинаковую блочную структуру с матрицей Tak, будет второй грубой канонической формой матрицы A. Пусть

A

( Ai 0

K2

*

A2

* \

*

\0 0 ... А^

Далее, если блок А у для иу > 1, стоящий на главной диагонали, является неразложимой матрицей, т. е. соответствующий ему блок Ту в матрице Так состоит из одних единиц, то проверяем его на примитивность и импримитивность (шаг 15). Если Ш = 0, то в матрице Так есть симметричные относительно главной диагонали нули, тогда матрица А соответствует слабо связному графу. Напомним, что

Tak

iTi 0

*

T2

* *

Vo 0 ... TkJ

Перейдем к построению канонического вида слабо связного графа, т. е. к шагу 13.

13. Цикл по г от 0 до к— 1. Рассмотрим части столбцов матрицы Так, расположенные в вертикальных полосах с номерами от к до к — г и выше горизонтальной полосы с номером к — г. В случае г = 0 рассматриваем столбцы выше блока Тк. Если все указанные части столбцов не содержат нулей, то переходим к шагу 14. Если упомянутые столбцы содержат нули, то г = г + 1.

14. Разбиваем матрицу Так на четыре блока, т. е. придаем ей вид Так = Тц Т12

0 T2

22

где

Tu =

/Ti 0

*

T2

\

\0 0

Ti2 - матрица из одних единиц, a

Tk-i+i/ (Tk-

T22 —

0

0

Tk-i- 1

0

* *

Tk

Далее исследуем матрицы Tii и T22 на разложимость (переходим к шагу 1, полагая A — Tu, где г — 1, 2).

Замечание!.. Может случиться так, что мы не выйдем на шаг 14, т. е. все рассматриваемые части столбцов содержат нули. В этом случае строим матрицу AK2 — PAP' (P из шага 11), которую будем называть грубой нормальной формой упорядоченной матрицы слабо связного графа.

Замечание 2. Если мы на некотором шаге все же выходим на шаг 14, то в конце строим матрицу перестановки Q, с помощью которой строим сначала матрицу Takq — QTaQ', а затем матрицу Akq — QAQ'.

15. Проверка неразложимой матрицы A на примитивность. Аналогично шагу 4 сначала проверяем след матрицы A. Если Sp(A) — 0, то переходим к шагу 16, если Sp(A) — 0 - к шагу 17.

16. Вычисляем V — Ax2 до k, при котором впервые 2k ^ (dim(A))2 — 2dim(A) + 2

' о к

[3, с. 612]. Если при этом k получим, что A — U, то матрица A является примитивной матрицей, переходим к шагу 17. В противном случае матрица A импримитивна, переходим к шагу 18.

17. Несимметричная матрица A примитивна, следовательно, будет примитивной и матрица A — A+A', к которой можно применить алгоритм нахождения канонического вида примитивной матрицы, описанного на шаге 6 данного алгоритма. С помощью матрицы преобразования P, найденной на шаге 6 для матрицы A, построим нормальную форму несимметричной примитивной матрицы A, т. е. A — PAP'.

18. Строим нормальную форму импримитивной матрицы по алгоритму, приведенному ниже.

Алгоритм построения канонического вида импримитивной (0,1)-матрицы.

На входе имеем квадратную (0,1)-матрицу, про которую известно, что она импримитивна. Обозначим через V матрицу, определяемую соотношением V — Aх2 , где k -минимальное целое число, при котором 2k ^ (dim(A))2 — 2dim(A) + 2.

1. Если элемент vii матрицы V не равен нулю, то V — W, далее переход к шагу 3, в противном случае - к шагу 2.

2. Если элемент vii матрицы V равен нулю, то последовательно умножаем матрицу V на степени матрицы Axm (m — 1, 2,...) до тех пор, пока элемент произведения, расположенный на месте (1,1), не станет равным единице. Пусть это достигается впервые при m — h. Очевидно, что h < n. В этом случае полагаем W — VxAхh. Переходим к шагу 3.

3. Упорядочиваем столбец строчных сумм sw — We по убыванию значений элементов, т. е. ищем матрицу P такую, что Psw — sW. Вектор sW характеризуется тем, что у него элементы с равными значениями собраны в группы. Элементы с большими значениями расположены выше элементов с меньшими значениями. Более того, у матрицы W — PWP' одинаковые строки следуют друг за другом, т. е. собраны в группы. Пусть число этих групп равно q. Тогда q есть индекс импримитивности матрицы A.

4. Имеем W — Ui ф ... ф Uq (т. е. на главной диагонали матрицы W расположены блоки, состоящие из единиц, остальные элементы матрицы равны нулю). Матрица из единиц Uj имеет размерность nj, причем ni ^ nj при i < j, и Xj=i nj — dim(A).

5. Разбиваем матрицу B — PAP' на горизонтальные и вертикальные полосы шириной nj (j — 1, ...,q). У блочной матрицы B на диагонали будут расположены нулевые квадратные блоки Oj размерности nj (j — 1,...,q).

6. У матрицы B нет чисто нулевых строк, поскольку матрица A неразложима. Поэтому существует элемент bikl — 1 такой, что все bij — 0 при j < ki. Очевидно, что ki > ni. Будем предполагать, что упорядоченное множество номеров I — 1, 2,..., dim(A) разбито на непересекающиеся упорядоченные подмножества Ji мощностей ni (i — 1,...,q), т. е. номера в Ji идут подряд. Тогда, очевидно, что ki будет принадлежать какому-то Jil, где ii — 1.

Возьмем в матрице B строку с номером ki, т. е. рассмотрим элементы bkli. В этой строке найдется элемент bklk2 — 1 такой, что все bk1 i равны нулю при i < k2 либо k2 — 1. Ясно, что k2 будет принадлежать какому-то Ji2, причем это множество отлично от множества Jil. Затем в матрице B берем строку с номером k2 и ищем соответствующий элемент bk2k3 — 1 и соответствующее множество Ji3. Напомним, что q - индекс импримитивности, следовательно, продолжая этот процесс далее, переберем все множества Jir в такой последовательности: ir — 1 ,ii,..., iq-i. Кроме того, мы должны получить, что iq — 1.

7. Построим матрицу перестановки Q, отображающую упорядоченный столбец

в столбец

1

ii

\iq-ij

1 2

W

. Очевидно, что единицы матрицы С$ будут расположены в столбцах

с номерами гг = 1, г1,...,гд-1. «Заменим» в матрице каждую единицу единичной матрицей Е^г размерности щг (гг = 1,г1,...,гч-1). Обозначим полученную матрицу размерности ¿гш(А) через С Матрица АК = СЕС = СРАР'С и будет искомой канонической формой импримитивной (0,1)-матрицы А.

Если в матрицах Ак2 и AкQ, полученных из первого алгоритма, заменить каждую диагональную неразложимую матрицу (диагональный блок) ее нормальной формой (шаг 15), т. е. проделать с матрицами Ак2 и AкQ соответствующие перестановочные преобразования подобия, то получим матрицу Ак, которую и будем называть нормальной формой матрицы А, а граф, соответствующий ей, - нормальной формой графа.

Упрощенный вариант алгоритма построения нормальной формы (0,1)-матрицы реализован в МА^АВ и приведен в пакете программ ZerOne (см. [8]).

Summary

Savitskaya D. V. Normal form of (0,1)-matrixes and algorithms of its construction.

Existing preconditions for defining of normal form of square (0,1)-matrix are discussed, new theoretical results, which were the basis for defining a normal form of (0,1)-matrix are proved. There exists a particular definition of the matrix canonical form for different classes and different kinds of conversions. The most well known are the canonical appearance of a decomposable matrix and an imprimitive matrix. The definition of a normal form of a square (0,1)-matrix is given by means of the canonical appearance of those matrix. Due to the strict connection of a square (0,1)-matrix with a graph matrix and the fact that a graph is given accurate within isomorphism, the problem appears to pick out a representative, the simplest one, from the class of isomorphic graphs. Such representative is defined as the graph normal form. It is noted that all the results which are valid for a normal form of a square (0,1)-matrix can be applied to a normal form of a graph matrix. The algorithm of construction of a normal form of (0,1)-matrix based on determinations of the types of graph connectivity is given. A classical problem of graph theory — separation of graph connectivity components — is simultaneously solved in constructing a normal form of a graph matrix.

Key words: (0,1)-matrix, normal form, decomposable matrix, imprimitive matrix, transitive closure, permutational similarity, graph, types of graphs connectivity.

Литература

1. Гантмахер Ф. Р. Теория матриц. — М.: Наука, 1967. — 575 с.

2. Хитров Г. М. Об определении разложимой матрицы и ее нормальной формы // Вестн. С.-Петерб. ун-та. — Сер. 10: Прикладная математика, информатика, процессы управления. — 2006. - Вып. 3. - С. 85-91.

3. Хорн Р., Джонсон Ч. Матричный анализ / Пер. с англ. Х. Д. Икрамова и др.; Под ред. Х. Д. Ик-рамова. - М.: Мир, 1989. - 656 с.

4. Кристофидес Н. Теория графов: Алгоритмический подход / Пер. с англ. Э. В. Вершкова, И. В. Коновальцева; Под ред. Г. П. Гаврилова. — М.: Мир, 1978. — 432 с.

5. Никайдо Х. Выпуклые структуры и математическая экономика / Пер. с англ. А. В. Малишев-ского; Под ред. Э. М. Бравермана. — М.: Мир, 1972. — 520 с.

6. Краснова А. Ю. Об одном алгоритме раскрасок графа // Проектирование научных и инженерных приложений в среде MATLAB: Труды III Всерос. науч. конференции. СПб., 23—26 октября 2007 г. — СПб.: Изд-во С.-Петерб. ун-та, 2007. — С. 230—237.

7. Виташевская И. С., Олемской И. В., Хитров Г. М. О некоторых инвариантах квадратных (0,1)-матриц // Вестн. С.-Петерб. ун-та. — Сер. 10: Прикладная математика, информатика, процессы управления. — 2007. — Вып. 1. — С. 38—45.

8. Пакет программ ZerOne для MATLAB — URL // http://www.apmath.spbu.ru /grafomann/ download.html.

Статья рекомендована к печати проф. А. М. Камачкиным.

Статья принята к печати 29 апреля 2008 г.