3.. . . . . . . . . .
1 2 3 4 5 4. 1 2 3 4 5
. . . . . . . .
9 8 7 6 9 8 7 6
T=[4,5,6,6,6] T=[5,6,6,6]
W={3,7,8,9} W={4,7,8,9}





. . . . . . . . . .
5. 1 2 3 4 5 6. 1 2 3 4 5
. . . . . . . .
9 8 7 6 9 8 7 6
T=[6,6,6] T=[6,6]
W={5,7,8,9} W={7,8,9}






. . . . . . . . . .
7. 1 2 3 4 5 8. 1 2 3 4 5
.
. . . . . . .
9 8 7 6 9 8 7 6
T=[6] T=[ ]
W={8,9} W={6,9}
Найдём вершины, не вошедшие в код. Это вершины 1,2,7,8,9. Из условия построения кода это висячие вершины. Создадим множество W={1,2,7,8,9}, содержащее эти вершины. Из вершин множества W выберем вершину 1 с первым элементом кода, т. е. с вершиной 3. Удалим вершину 1 из W и вершину 3 из T.
Вершина 3 больше не встречается в коде, поэтому запишем вершину 3 во множество W: W={2,3,7,8,9}, T=[4,4,5,6,6,6] (рис. 2).
Следующая вершина с минимальным номером из W-2. Соединяем её с вершиной 4 - первым элементом кода (рис. 3). После этого вершина 2 удаляется из W, а вершина 4 из T: W={3,7,8,9}, T=[4,5,6,6,6].
Таким образом при добавлении ребра в дерево выполняются следующие действия:
i - вершина с min номером в W;
j - первый по порядку кода T;
соединить вершины i и j (дописать ребро (i,j) в дерево);
удалить вершину i из W и j из T, если j более не встречается в коде, то дописать j в W;
после того, как код стал пустым, в W останется два элемента W={k,l}, добавим в дерево ребро (k,l). Удалим эти элементы из W.
построение дерева закончено.
Дальнейшее построение дерева показано на рис. 9.
На рис. 10 построенное дерево представлено в плоском виде.
3





. . . . .
4
9. 1 2 3 4 5 10. 1 2
.
. . .
5
9 8 7 6

T=[
], W=
6
9 8
Обход дерева “в ширину”.
Визуально дерево можно разбить на несколько “уровней”(рис. 1)
X3
уровень 0
X4 уровень 1
X1
X5 X2 уровень2

X6
уровень 3

X7 уровень 4
X9 X8
рис. 1
Смысл обхода “в ширину” - отмечать все множество вершин одного “уровня”.
В
ыберем
произвольно начальную вершину обхода.
Пусть это будет вершинаX8.
Пусть k=0.
Поставим текущей вершине X8
метку, равную . Вершину X8
занесем во множество Uk
= U0
= { X8}(рис.
2). Всем остальным вершинам поставим
метки .
Н
айдём
вершины, смежные вершинам из множестваUk=
U0.
Это вершины X1
и X4.
Запишем их во множество Uk+1=
U1={
X1,
X3}.
Поставим вершине X1
метку , вершине X4
- метку (рис. 3).
У

величим
значениеk
на единицу - k:=k+1.
Найдём вершины, смежные вершинам из
множества Uk
= U1.
Это вершины X2
и X5.
Запишем их во множество Uk+1=
U2={
X2,
X5}.
Поставим вершине X2
метку , вершине X5
- метку (рис. 4). Увеличим значение k
на единицу - k:=k+1.
Найдём вершины, смежны вершинам из
множества Uk
= U2.
Это вершина X6.
Запишем её во множество Uk+1=
U3={
X6}.
Поставим вершине X6
метку (рис. 5).


Увеличим
значение k
на единицу - k:=k+1.
Найдем вершины, смежные вершинам из
множества Uk
= U3.
Это вершины X7
, X8
, X9
. Запишем
их во множество Uk+1=
U4={
X7
, X8
, X9
}. Поставим
вершине X7
метку
, вершине X8
метку , вершине X9
- (рис .
6).
А
лгортим
заканчивает свою работу после того, как
были отмечены все вершины дерева.
X3
X3



X4
X4


X1
X1


X5
X2
X5
X2

X6
X6



X9
X8
X9
X8

X7
X7
k=0, Uk ={ X3} k=1, U0 ={ X3}
рис. 2 U1= { X1, X4} рис. 3

X3
X3



X4
X4
X1 X1




X5
X2
X5
X2


X6
X6



X9
X8
X9
X8

X7
X7
k=2, U0 ={ X3} k=3, U0 ={ X3}
U1= { X1, X4} U1= { X1, X4} U2= { X2, X5} U2= { X2, X5}
рис. 4 U3={ X6}. рис. 5
X3

X4
X1


X5
X2
X6

X9
X8
X7
k=4, U0 ={ X3}
U1= { X1, X4}
U2= { X2, X5}
U3={ X6}.
U4={ X7 , X8 , X9 }. рис. 6
задание №10.
Найдите цикломатическое число графа G2. Постройте остовное дерево графа G2. Постройте базис из независимых циклов графа G2. Проставьте произвольную ориентацию рёбер графа и постройте вектор - цикла для циклов из базиса. Постройте цикломатическую матрицу графа G2.


X1
X4


X2 X5


X1 X6
G2
Пронумеруем вершины графа в произвольном порядке.
Цикломатическое число графа ( G2)= m-n+k(G2).
В графе G2 число вершин - |x|=6, число рёбер - |V|=8, граф связный, следовательно число компонент связности - k(G2)=1. Тогда цикломатическое число графа ( G2)=8-6+1=3.
П

остроим
остовное дерево графа. Из исходного
графа для получения остоновного дерева
необходимо удалить ровно(
G2)=3
ребра. Строим остовное дерево, используя
алгоритм обхода графа “в ширину”.
Начнём обход с вершины X1.
Поставим вершине метку . всем остальным
вершинам метки . Вершине X1
смежны вершины X2,
X3,
X4.
Меткам вершин X2,
X3,
X4
присвоим значение .
З
апишем
в дерево рёбра (X1,
X2),
(X1,
X3),
(X1,
X4).
Нфйдём вершины смежные вершинам X2,
X3,
X4,
метки которых равны . Это вершины
X5,
X6,
смежные вершинам X3,
X4.
Меткам вершин X5,
X6
присвоим значение . Рёбра (X3,
X5),
(X4,
X6)
запишем в дерево. На этом построение
остовного дерева заканчивается, т. к.
были отмечены все вершины.
Построенное остовное дерево указано на рис 1.
X3 X4
X2 X5


X1 X6
рис 1.
Используем построенное дерево для построения базиса из независимых циклов.
По теореме 5.8. базис графа G2 состоит из трёх циклов.
Построим их. Добавим в отовное дерево графа G2 ребро (X2, X4) не входит: 2= X3 X6 X4 X1 X9. Добавим последнее удалённое ребро (X5, X6). Построим цикл, в который ребро (X5, X6) входит, а рёбра (X2, X4), (X3, X6) не входят: 2= X1 X3 X5 X6 X4X1. Циклы 1, 2, 3 составляют базис их независимых циклов.
Проставим произвольную ориентацию рёбер графа G2 (рис. 2)
X3 X4






VI
II

X2
III
V
X5
