Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Основы дискретной математики. Теория графов. Практикум
.pdf
Строим матрицу смежности (
1 2 3 4 5 6
1 a b
2 m p
()=
Вычисляем матрицу
()
=
3 k
4 f
5 t g
6 c
()
=()× ():
1 2 3 4 5 6
1 am ap bf
2 pf mk
3 kc
4 ft fg
5 ta gc tb
6 ck
)
:
Вычисляем матрицу
1 2 3 4 5
1 bft apf amk, bfg
2 pft mkc bfg
()
3 kck
=
4 fta fgc ftb
5 tam tap tbf gck
6 ckc
()
= ()×
()
или
6
()
× ():
Видно, что в матрице достижимости присутствуют нулевые элементы.
Произведем анализ матрицы и переставим строки и столбцы, чтобы привести матрицу к клеточному виду. В результате получим следующую матрицу:
41

1 2 3 4 5 6
1 bft a b, ap bd, apf am amk, bfg
2 pft p pf m, mkc mk, pfg
()=
3 ft fta ftb f Fgc fg
4 t ta tb, tap tbf gc, tam g, gck
5 kc k, kck
6 c, ckc ck
Компоненте сильной связности в матрице достижимости соответствует подматрица максимального размера, каждый элемент которой
не равен нулю, за исключением, быть может, диагональных элементов. Элементы, показывающие связь между этими подматрицами,
могут быть не равны 0.
В матрице (
)
имеем две такие подматрицы, которым соответ-
ствуют две компоненты сильной связности: {1,2,4,5} и {3, 6}.
Задачи
Определить связность графа, заданного матрицей смежности.
Найти количество компонент связности.
Задание № 1 Задание № 2 Задание № 3
1 2 3 4 5 6 7 8 9 10
1 1 1 1 1 1
2 1 1 1 1 1
3 1 1 1 1
4 1 1 1 1
5 1 11
6 1 1 1 1 1
7 1 1
8 1 1 1 1 1 1 1
9 1 1 1 1 1
10 1 1 1 1
42
1234567 8 910
1 1 1 1 1 1 1
2 1 11 1 1
311 11 1
41 11 1
51 11
6 1 11 1 1
71111 1 11
81
911 1111 1
10 1 1 1 1 1
1111
2 111111
3111
411 11
5111 11
61 1
7111
81111
12345678

Задание № 4 Задание № 5
1 2 3 4 5 6 7 8
1 1 1 1
2 1 1 1 1
3 1 1 1
4 1 1
5 1 1 1 1 1
6 1 1 1
7 1 1 1 1 1
8 1 1 1
12345678
1 1 1
2 1 1 11
3 1 1 1
41 1 11
5 111 1
6 1 11
7 111 1
811 1 1
Найти компоненты сильной связности графов, заданных матрицами связности.
Задание № 6 Задание № 7 Задание № 8
1 2 3 4 5 6 7
1
2 1
3 1 1
4
5
6 1 1 1
7 1
123456 7
11 11
21
31 1
4
5
61
7
1234567
1
21
31
41 1
51
6
7111
Задание № 9 Задание № 10 Задание № 11
1 2 3 4 5 6 7
1 1
2
3 1 1 1 1
4 1 1
5 1 1
6 1
7
1234567
1
2
3 1
4 1 1
5 1
6
71 1
1234567
1 1
21 1
3 1
4 1
5 1
6 1
71
43

Цикломатика
Пример 1
В заданном графе найти все циклы.
:
Вычислим цикломатическое число:
=9−6+1=4.
Определим остов графа :
:
Ребра графа, не вошедшие в остов, – хорды ,,,.
Их число равно 4, как и .
Построим базисную цикломатическую матрицу. Число строк равно числу базисных циклов:
=4.
f t u z a b c k p
44
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
хорды ребра

«Левую» часть матрицы заполняем единицами на главной диагонали, остальные элементы – нулями.
«Правую» часть заполняем построчно. Добавляем одну хорду
к остову , получаем точно один цикл. Помечаем единицами те реб-
ра, которые участвуют в образовании этого цикла.
Рассмотрим строку
. В этом цикле будет присутствовать хорда
. Добавляем ее в остов .
Определяем цикл (,,,,,) и помечаем в базисной циклома-
тической матрице единицами в строке
f t u z a b c k p
1 0 0 0 1 1 1 1 1
0 1 0 0
0 0 1 0
0 0 0 1
ребра ,,,,.
Повторяем для строки . Добавляем в остов хорду :
45

Получаем точно один цикл (,,,). Отмечаем его во второй
строке:
f t u z a b c k p
1 0 0 0 1 1 1 1 1
0 1 0 0 0 1 1 1 0
0 0 1 0
0 0 0 1
Продолжаем далее и получаем базисную цикломатическую матрицу:
f t u z a b c k p
1 0 0 0 1 1 1 1 1
0 1 0 0 0 1 1 1 0
0 0 1 0 0 1 1 0 0
0 0 0 1 0 0 1 1 1
Далее, используя операцию ⊕, вычисляем оставшиеся циклы
графа. При этом помним, что складывать можно только те циклы,
пересечение которых не равно пустому множеству
f t u z a b c k p
⊕=
⊕=
⊕=
⊕=
⊕=
⊕=
⊕(⊕
=
⊕=
)
(⊕)⊕=
=
⊕=
(⊕)⊕=
=⊕=
(⊕)⊕=
=
⊕=
(⊕)⊕(⊕
=
⊕=
=
1 1 0 0 1 0 0 0 1
1 0 1 0 1 0 0 1 1
1 0 0 1 1 1 0 0 0
0 1 1 0 0 0 0 1 0
0 1 0 1 0 1 0 0 1
0 0 1 1 0 1 0 1 1
1 1 1 0 1 1 1 0 1
1 1 0 1 1 0 1 1 0
1 0 1 1 1 0 1 0 0
0 1 1 1 0 0 1 0 1
)
=
1 1 1 1 1 1 0 1 0
⊕= ∅.
∩≠∅
∩≠∅
∩≠∅
∩≠∅
∩≠∅
∩≠∅
∩
∩
∩
∩
∩
≠∅
≠∅
≠∅
≠∅
≠∅
46

Пример 2
В заданном графе найти все циклы.
:
Вычислим цикломатическое число:
=10−3+1=4.
Определим остов графа и хорды:
:
Ребра графа, не вошедшие в остов, – хорды ,,,. Их число
равно 4, как и .
Построим базисную цикломатическую матрицу. Число строк рав-
но числу базисных циклов:
=4.
c k m s a b t g p z
1 0 0 0 0 1 1 0 0
0 1 0 0 1 0 1 1 1
0 0 1 0 0 0 0 0 1
0 0 0 1 1 1 0 1 1
0
0
1
0
47

Находим оставшиеся циклы графа:
f t u z a b c k p
⊕=
⊕
⊕=
⊕=
⊕=
⊕=
(⊕)⊕=⊕=
(⊕)⊕=⊕=
⊕(⊕)=⊕=
(⊕)⊕=⊕
)
⊕(⊕⊕
=
⊕
1 1 0 0 1 0 0 0 1
Складывать нельзя, так как
1 0 0 1 1 1 0 0 0
0 1 1 0 0 0 0 1 0
0 1 0 1 0 1 0 0 1
0 0 1 1 0 1 0 1 1
1 1 1 0 1 1 1 0 1
1 1 0 1 1 0 1 1 0
1 0 1 1 1 0 1 0 0
Складывать нельзя, так как
Складывать нельзя, так как
∩≠∅
∩=∅
∩≠∅
∩≠∅
∩≠∅
∩≠∅
∩≠∅
∩≠∅
∩≠∅
∩=∅
∩=∅
Задачи
Найти все циклы в графах, заданных с помощью матриц смежности.
Задание № 1 Задание № 2 Задание №
1 2 3 4 5 6 7 8
1 1 1 1
2 1 1 1 1
3 1 1 1 1
4 1 1 1 1
5 1 1 1
6 1 1 1 1
7 1 1
8 1 1
12345678
1 111 11
2 1 1
31 1
411 11
51 1 11
6 1 1 1
71 11
81 1 1
12345678
1 1 1
2 1111 1
311 1 1
4 11 111
5 1 1 1
6 1 1
7 1
8111 1
3
Задание № 4 Задание № 5 Задание № 6
1 2 3 4 5 6 7 8
1 1 1 1 1
2 1 1
3 1 1 1 1
4 1 1 1 1 1 1
5 1 1 1 1
6 1
7 1 1 1
8 1 1
12345678
11111
21 1 1
3111
41 1 1 11
51111
61 1 1
71 1
811
12345678
1111
21111
31 111
411 1
51 1
6111 1
71 1 1
8111
48

Задание № 7 Задание № 8
1 2 3 4 5 6 7 8
1 1 1 1 1
2 1 1
3 1 1 1
4 1 1 1
5 1 1 1 1 1
6 1 1 1 1 1
7 1
8 1 1 1
12345678
1 1 1 11
2 11 1
31 1
4 11 11
511 1 111
6 11
711 1
81 1
Поиск пустых подграфов
Пример 1
Задан граф . Найти все пустые подграфы и определить
:
.
Сопоставляем корню порождающего дерева исходный граф .
Фиксируем вершину с минимальной степенью. В данном графе их
две: 3 и 5. Выбираем любую, например 3. Порождаем дугу, конец
которой идентифицируем вершиной 3.
49

Также из корня испускаем 2 дуги и конец каждой идентифици-
руем вершиной из окрестности вершины 3 в графе . Это верши-
ны 2 и 4.
Каждую вершину нового яруса взвешиваем графом, который яв-
ляется неокрестностью соответствующей вершины в графе .
=
(3)
,
:
:
=
(2)
,
:
=(4).
Рассматриваем каждую вершину нового яруса как корень нового
дерева и повторяем шаги алгоритма с начала.
В графе
фиксируем вершину с минимальной степенью: 1 или 5.
Выбираем, для определенности, вершину 1. Сопоставляем ее концу
исходящей дуге из вершины 3. Также из вершины дерева 3 испуска-
ем одну дугу по числу смежных с вершиной 1 в графе
и сопостав-
ляем номер вершины из окрестности с концом этой дуги.
50
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
