
3.1. Исходный ориентированный граф G приведен на рис.3.1.
Рис. 3.1
3.2. Нижний граф (приложение 1) приведен на рис. 3.2.
Рис. 3.2
3.3.1. Матрица инцидентности
Запишем множества всех вершин и всех ребер, соединяющих вершины графа.
Множество вершин:
V ={1,2,3,4,5,6,7,8,9,10}
Множество ребер:
Е={{1,5},{5,6},{6,7},{7,4},{4,10},{10,9},{9,8},{8,1},{1,2},{2,3},{3,4},{2,6},
{6,3},{2,9},{3,9},{3,10},{2,8}}.
Построим матрицу
инцидентности А,
считая, что в строках находятся номера
вершин, а в столбцах – ребра графа /1/.
Будем ставить’1’, если вершина vi
инцидентна
ребру е
,
ставить ’0’, если вершина vi
не инцидентна
ребру еj
(табл. 3.1).
Таблица 3.1
|
a |
b |
c |
d |
e |
f |
g |
h |
i |
j |
k |
l |
m |
n |
o |
p |
q |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
2 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
3 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
4 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
5 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
6 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
7 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
8 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
9 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
10 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
3.3.2. Матрица смежности
Построение матрицы смежности S проведем для не взвешенного графа G таким образом: если две вершины vi и vj соединены между собой, тогда элементу матрицы смежности sij присвоим ’1’, иначе элементу матрицы смежности sij присвоим ’0’ (табл.3.2).
Таблица 3.2
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
2 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
3 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
4 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
5 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
6 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
7 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
8 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
9 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
10 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
3.3.3. Цикломатическое число
Цикломатическое число ν (G) равно числу хорд любого остова в графе G, если связный граф имеет n вершин и m ребер /1/:
n (G) = m-n+1
Если граф G содержит k компонент связности, то его цикломатическое число
ν (G) = m-n+k
Наш граф содержит одну компоненту связности, поэтому будем искать цикломатическое число по формуле ν(G) = m-n+1.
n=10 (количество вершин)
m=17 (количество ребер)
ν(G) = m - n +1=17-10 +1=8
т.е. в графе содержится 8 базисных циклов.
3.3.4. Базисная цикломатическая матрица
В предыдущем пункте мы выяснили, что число базисных циклов равно цикломатическому числу и равно 8.
Для построения базисной цикломатической матрицы БЦМ нам необходимо выделить остов D графа G (рис. 3.3).
Остов D
Рис. 3.3
Теперь можно составить БЦМ (табл. 3.3). В качестве хорды будут выступать те ребра графа G, которые мы удалили для получения остова D. Все остальные ребра будут составлять остов.
Таблица 3.3
|
Хорды |
Остов D |
|||||||||||||||
l |
m |
d |
e |
q |
p |
o |
n |
a |
b |
c |
i |
j |
k |
h |
g |
f |
|
R1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
R2 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
R3 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
R4 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
R5 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
R6 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
R7 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
R8 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
3.3.5. Цикломатическая матрица
Для построения цикломатической матрицы C(G) условимся, что каждому элементу матрицы cij взаимно однозначно сопоставляется вектор-строка:
1, если j-ое
ребро входит в
i-й
цикл
cij =
0, в противном случае
Графу G отвечает 17- компонентный вектор = (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1).
Всякий вектор может быть представлен линейной комбинацией базисных векторов. Следовательно, вектор может быть разложен в поле чисел по mod (2) по своим базисным циклам /2/.
Для построения всего множества циклов графа G необходимо будет выполнить (2ν – ν-1) раз операцию сложения по модулю 2 над базисными циклами, где ν – это цикломатическое число графа. Поэтому для нашего графа эту операцию необходимо провести (28-8-1) раз, т.е. 247 раз.
В общем случае не все графы поддаются бинарному разложению, поэтому для разложения графов по их выделенным базисным компонентам можно использовать операции по mod (3), mod (4) или вообще без модуля / 2 /.
В табл. 3.4 приведена часть цикломатической матрицы C(G).
Таблица 3.4
|
a |
b |
c |
d |
e |
f |
g |
h |
i |
j |
k |
l |
m |
n |
o |
p |
q |
R1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
R2 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
R3 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
R4 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
R5 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
R6 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
R7 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
R8 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
R9 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
R10 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
R11 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
В матрице показаны базисные циклы R1 – R8, которые в совокупности включают в себя все ребра графа G. Циклы R9, R10, R11 получены как линейная комбинация базисных векторов по модулю 2
R9
= R1
R2
R10 = R8 R7
R11 = R4 R6