Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
UchebnoePosobie.doc
Скачиваний:
73
Добавлен:
11.11.2019
Размер:
6.36 Mб
Скачать

3.4. Операции над графами

Выделяют два класса операций: унарные операции над одним графом и бинарные операции над двумя графами.

3.4.1. Унарные операции

Унарные операции позволяют находить дополнительный граф, вводить и удалять вершины и ребра, объединять и расщеплять вершины, определять основные числа (связность, плотность, устойчивость, цикломатику и раскраску вершин и ребер и т.п.).

3.4.1.1 Поиск дополнительного графа

Для формирования дополнительного графа G=<X,r> необходимо найти дополнение отношения r по матрице смежности графа G=<X, r>:

1, если r(i, j)=0,

r(i, j)=

0, если r(i, j)=1

и построить граф, опираясь на исходное множество вершин.

На рис. 3.4 дан граф и его дополнение. Ниже приведены матрица смежности графа G и матрица смежности графаG.

r

x1

x2

x3

x4

x5

r

x1

x2

x3

x4

x5

x1

0

1

1

0

0

x1

1

0

0

1

1

x2

1

0

0

1

1

x2

0

1

1

0

0

x3

1

0

0

0

0

x3

0

1

1

1

1

x4

0

1

0

0

1

x4

1

0

1

1

0

x5

0

1

0

1

0

x5

1

0

1

0

1

3.4.1.2. Введение и удаление вершин графа

Если добавить вершину xi в граф G=<X, r>, то для каждой новой вершины следует найти все инцидентные ей ребра (xi, x), где xX. Для этого удобно использовать матрицу инциденции, каждая строка которой для контроля содержит ровно две “1”. В результате получен новый граф G’=<X’, r’>, где X'=Xxi, r’=r{(xi, x)}.

Если необходимо удалить хотя бы одну вершину xi графа G=<X, r>, то следует удалить все ребра, инцидентные данной вершине. Для этого также удобно использовать матрицу инциденции, каждая строка которой для контроля содержит ровно две “1”. В результате будет получен новый граф G’=<X’, r’>, где X'=X\xi, r’=r\{(xi, x), xX }.

3.4.1.3. Стягивание вершин графа

Если G=<X, r> содержит клику G1=<X1, r1>, где X1X, r1r, то можно заместить G1 вершиной x и получить граф G'=<X’, r’>, где X’=xX\X1 и r’={r(xs, x), где xsX\X1}

r\{r1r(xt, xs), где xtX1 и xsX\X1}.

Если в графе G'=<X’, r’> необходимо вершину x размножить {x}X’, то будет сформирован граф G=<X, r>, где

X=X’{x} и r=r’{(x’, x), где x’X’\x}{(xi, xj), где xi, xj{x}}.

Пример: на рис. 3.15а) дан граф G, а на рис. 3.15b) граф G’. Выполнить стягивание клики G1 в вершину x и замену вершины x кликой G1.

r

x1

x2

x3

x4

x5

x6

r’

x1

x2

x3

x

x1

0

1

0

1

0

0

x1

0

1

0

1

x2

1

0

1

0

0

0

x2

1

0

1

0

x3

0

1

0

0

0

1

x3

0

1

0

1

x4

1

0

0

0

1

1

x

1

0

1

0

x5

0

0

0

1

0

1

x6

0

0

1

1

1

0

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]