Дискретная математика:
логика, группы, графы, фракталы

Акимов О.Е.

3.2. Морфология графа

Разложение графа на базисные составляющие

Разложение графа на его базисные составляющие проведем на конкретном примере. Пусть будет задан простой связанный планарный граф Г, в котором пронумерованы все его ребра (рис. 3.23). Сплошными линиями выделен остов графа. Остовом (или покрывающим деревом) называется любое дерево графа Г, покрывающее все его вершины. Ребра, не вошедшие в остов, называются хордами. Символическим представлением остова является следующая последовательность весовых характеристик: Т(9, 1, 2, 1, 5, 1, 3, 1, 1).

Рис. 3.23

Прежде всего, найдем ранг (k) и цикломатическое число (l) нашего графа Г. Ранг определяется числом ребер покрывающего дерева, а цикломатическое число — не вошедшими в дерево ребрами; следовательно: m = k + l = 8 + 7 = 15 — общее число ребер в графе Г.

Выделим в графе Г базисные циклы и разрезы. Во всякий базисный цикл должна входить только одна хорда. Так, цикл c = (1, 3, 7) является базисным, а другой цикл c' = (1, 3, 5, 10, 9) уже не будет таковым. Разрезом (или сечением) графа Г в общем случае называется минимальное множество ребер, удаление которых делает граф несвязанным. Множество разрезов, отвечающих остову графа Т(Г), называется базисной системой разрезов. Каждый базисный разрез содержит одно ребро остова Т(Г); остальные ребра будут хордами. Для нашего случая базисным является, например, разрез s = (2, 5, 10), но не s' = (2, 4, 6, 8). Базисные разрезы и циклы удобно представлять матрицами. Число строк в матрице разрезов (S) равно числу базисных разрезов (k), а число столбцов — общему числу ребер (m); если ребро участвует в разрезе, то в соответствующей позиции выставляется 1, в противном случае — 0.

S = .

Размерность матрицы циклов (C) равна l · m; нули и единицы в ней выставляются так же, как и в матрице S.

C = .

Путем перегруппировки столбцов матрицы S и C можно привести к систематическому виду S' = , C' = :

S' = ,

C' = .

При перемножении матриц убеждаемся, что

S' · C'* = 0,   Glk = H*kl ,    Hkl = G*lk .

здесь звездочка означает транспонирование, а умножение производится по mod (2). Матрицы разрезов (S') и циклов (C') взаимно ортогональны. Матрица инцидентности В(Г) путем линейной комбинации только строк может быть сведена к матрице разрезов S, при этом высвобождается одна нулевая строка. Строки матрицы В(Г) пронумерованы в соответствии с вершинами графа Г (рис. 3.23). Справа от матрицы S показана линейная комбинация строк (суммирование производится по mod (2)).

В(Г) =

S =

Графу Г отвечает 15-компонентный вектор:

a = (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1).

Всякий вектор может быть представлен линейной комбинацией базисных векторов. Следовательно, и наш вектор a может быть представлен базисными разрезами и циклами. Чтобы определить, через какие именно разрезы и циклы выражается наш вектор a, необходимо вычислить некоторую совокупность определителей Грама. Сначала запишем исходные определители Грама для разрезов (g) и циклов (h) в общем виде:

g = , h = .

Элементы определителей Грама g и h симметричны ( sij = sji , cij = cji ) и представляют собой скалярные произведения по mod (2) базисных векторов соответствующих индексов. Базисные векторы разрезов берутся как строки матрицы S, а базисными векторами циклов являются строки матрицы C. Для нашего примера имеем:

g = ,     h = ,

где скалярные произведения принимают следующие значения:

s11 = s1s1 = (0 1 0 0 1 0 0 0 0 1 0 0 0 0 0) · (0 1 0 0 1 0 0 0 0 1 0 0 0 0 0) =

= 0 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 = 1,

s12 = s1s2 = (0 1 0 0 1 0 0 0 0 1 0 0 0 0 0) · (0 0 1 0 1 1 1 0 0 0 0 0 0 0 0) =

= 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 = 1, ...

c45 = c4c5 = (1 0 0 1 0 0 0 1 0 0 0 0 0 0 0) · (1 1 0 1 0 0 0 0 1 1 0 0 0 0 0) =

= 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 = 0, ...

Далее алгоритм вычислений строится следующим образом. Диагональ определителя g поочередно ставят на место первой его строки, получая таким образом производный определитель g1, затем на место второй, получая g2, и т.д. до тех пор, пока не получат g8. Аналогично находят все семь производных определителей для циклов:

g1 = 1, g2 = 1, g3 = 0, g4 = 0, g5 = 1, g6 = 1, g7 = 1, g8 = 0;

h1 = 0, h2 = 1, h3 = 1, h4 = 1, h5 = 0, h6 = 0, h7 = 1.

В частности:

g1 = = 1,     g2 = = 1,

h1 = = 0,    ... ,    h7 = = 1.

Значения производных определителей играют роль коэффициентов разложения вектора a по базисным векторам разрезов и циклов:

as = g1s1 + g2s2 + ... + g8s8

ac = h1c1 + h2c2 + ... + h7c7

a = as + ac.

Базисные компоненты с отличным от нуля коэффициентом участвуют в образовании вектора a.


		s1 = 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0
		s2 = 0 0 1 0 1 1 1 0 0 0 0 0 0 0 0
		s5 = 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0
		s6 = 1 0 0 0 0 0 1 1 0 1 0 0 0 0 0
		s7 = 0 0 0 1 1 1 0 1 0 1 0 0 0 0 0
		c2 = 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0
		c3 = 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0
		c4 = 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0
		c7 = 0 0 0 0 0 0 0 0 1 0 1 0 0 1 1
		a =  1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Ниже приведены результаты разложения по базисным разрезам и циклам (a1 и a2) графов (Г1 и Г2), показанных на рис. 3.24.


s1 = 1 0 0 0 0 0 1 0 0 0 1 0 0 1 1	s1 = 1 0 1 0 1 0 0 0 0 0 0 0 1 1 0
s2 = 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0	s2 = 0 1 1 0 1 0 0 1 0 0 1 0 0 1 0
s3 = 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0	s3 = 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0
s4 = 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0	s4 = 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0
s5 = 0 0 0 0 1 0 1 0 0 0 0 1 0 0 1	s5 = 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0
s6 = 0 0 0 0 0 1 1 0 0 0 0 1 0 0 1	s6 = 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0
s7 = 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0	s7 = 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0
s8 = 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1	s8 = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
c1 = 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0	c1 = 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0
c2 = 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0	c2 = 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0
c3 = 0 0 0 1 1 1 0 0 0 1 0 1 0 0 0	c3 = 1 0 0 0 0 0 1 0 0 0 0 1 1 0 0
c4 = 1 1 0 0 0 0 0 0 0 1 0 0 1 1 0	a2 = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
c5 = 1 0 0 0 1 1 0 0 0 0 0 0 1 0 1	
a1 = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1	

Рис. 3.24

Рис. 3.25

На рис. 3.25 изображены еще два простых связанных планарных графа Г3 и Г4 на 15 ребрах, внешне ничем не отличающихся от своих предшественников, но которые, однако, уже не могут быть разложены в поле чисел по mod (2) по своим базисным разрезам и циклам. Все их определители Грама, вычисленные по изложенной выше методике, оказываются равными нулю. С точки зрения традиционной линейной алгебры, это свидетельствует о наличии линейной зависимости между векторами.

Еще один вопрос, который здесь возникает: каково общее число возможных остовов? Количество деревьев рассчитывается с помощью определителя размерности (n – 1) · (n – 1), на диагонали которого выставляются степени n – 1 вершин (отсутствовать может любая из n вершин), а недиагональные элементы ij могут быть вида: 0 (если вершины i и j между собой не связаны), –1 (если i и j связаны одной связью), –2 (если i и j связаны двумя связями) и т.д.


 
  


Hosted by uCoz