Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Дискретная математика.pdf
Скачиваний:
1
Добавлен:
24.11.2025
Размер:
839.11 Кб
Скачать

Тема 4. Теорияграфов

Практическая работа 7

Способы задания графов. Операции над графами

Краткая теория

Граф может быть задан списком или матричными структурами.

Списки. При описании графа списками используют модели

G = <X; R> и G = <X; H>.

Первая форма – список отношений – применяется в тех случаях, когда необходимо хранить

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

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

При описании графа матрицами прежде всего используют матрицы инциденции и матрицы смежности

Матрица инциденции. Поскольку инциденция есть отношение принадлежности элемента одного множества другому, то для графа G = <X, R> матрица инциденции ||q|| фиксирует эту принадлежность элемента множества R элементу множества X на множестве {0, 1}. Строки матрицы есть элементы множества R, а столбцы – элементы множества X. Элементы матрицы инциденции неориентированного графа определяются по формуле

1, если ri = (xi , x j ) инцидентно x j ,

G(i, j) =

0, в противном случае.

В каждой строке матрицы количество единиц равно двум, а в каждом столбце – степени вершины – σi.

42

При задании ориентированного графа с петлями рекомендуется расщеплять вершину с петлей на две вершины: вершину-исток и вершину-сток,

В каждом столбце матрицы число +1 равно полустепени исхода вершины xi, т. е. σi +, а число –1 равно полустепени захода вершины

xi, т. е. σi .

Матрица смежности. Поскольку смежность есть отношение между элементами одного множества, то матрица смежности R есть квадратная матрица, число строк и столбцов которой равно мощности множества |X| = n.

Элементы матрицы смежности определяются соотношением

1, если xi смежна x j ,

R(i, j) =

0, в противном случае.

Матрица весов. Матрица весов вершинно-взвешенного графа есть матрица-столбец, число строк которой равно числу вершин n, а позициями являются значение веса вершины:

p1

P(G) = p...2 . pn

Матрица весов реберно-взвешенного графа есть квадратная матрица, число строк и столбцов которой равно числу вершин графа.

Позиции матрицы весов P(xi, xj) при i j определяются соотношением

0, если i =

j,

 

 

 

 

 

 

 

 

xi смежна вершине

x j и вес ребра li, j,

P(i,j) = li, j, если вершина

 

 

x

несмежна вершине

x

 

.

, если вершина

j

 

 

i

 

 

 

Матрица достижимости. Поскольку H(xi) есть множество вершин, которые смежны вершине xi, или «окрестность» вершины xi,

43

или достижимы из xi за «один шаг», то отображение h(h(xi)) = h2(xi) есть вершины графа, достижимые из xi за «два шага» через вершины, сформированные на «первом шаге». Отображение h(h(h(xi))) = h3(xi) есть вершины, достижимые из вершины xi за «три шага» через вершины, сформированные на втором шаге. Так как любая вершина

связного графа должна быть достижима за p n «шагов», то множество вершин, достижимых из вершины xi за это число «шагов», может быть представлено в виде

qp(xi) = I h(xi) h2(xi) … hp(xi),

где I –диагональ матрицы.

Для построения матрицы достижимости удобно использовать матрицу смежности, т. е.

||qp|| = I ||r|| ||r2|| ||r3|| … ||rp|||.

Для возведения в степень матрицы смежности используют правило умножения булевых матриц:

ri, j2 = k = 1 n (ri, k rk, j),

ri, j3 = k = 1 n (ri, k rk, j2) и т. д.

Матрица разрезов. Если можно построить множество разрезов в виде совместимых кортежей, то можно оформить матрицу разрезов B, строками которой являются индексированные разрезы bi, а столбцами – ребра графа rj, одни из концевых вершин которых принадлежат множеству X’, а другие – множеству (X\X’). Элементы матрицы разрезов вычисляют по формуле

1, если j-е ребро участвуетв i-м разрезе, B(i,j) = 0, в противном случае.

Матрица циклов. Если в графе существует несколько циклов, то их описание удобно сосредоточить в матрице циклов С, каждая строка которой есть индексированный цикл ci, а ка ждый столбец – ребро, включаемое в цикл.

44

Элементы матрицы циклов вычисляют по формуле

1, если j-е ребро участвуетв i-м цикле, С(i,j) = 0, в противном случае.

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

1. Дополнение графа (рис. 7.1)

Дополнение графа G(X, E) до полного графа

G = (X , E = {e X × X e E}).

Обратите внимание на стрелки !!!

Рис. 7.1. Дополнение графа

2. Объединение (рис. 7.2)

G1 G2 = G(X1 X2, E1 E2).

Рис. 7.2. Объединение графов

Обратите внимание – ребра е6 и е10 – это разные связи вершин 2 и 4 (разные дороги между пунктами 2 и 4).

45

3. Пересечение (рис. 7.3)

G1 G2 = G(X1 X2, E1 E2)

при условии

X1 X 2 , E1 E2 .

Рис. 7.3. Пересечение графов

4. Кольцевая сумма

G1 G2 = G(X = X1 X2,

E = E1 E2 = E1\E2 E2\E1).

Замечание. Операции 2–4 коммутативные бинарные операции, но могут быть расширены на большее число графов.

Рис. 7.4. Кольцевая сумма

5. Произведение (рис. 7.5)

G1 ×G2 = G(X , E),

где X = X1 × X2 ,

E={(a1b1, a2b2 ) E, (a1 = a2 ) (b1, b2 ) E2 (b1 =b2 ) (a1, a2 ) E1}.

Впроизведении графов вершины обозначаются парами ab, где символы a и b – обозначения вершин в G1 и G2 соответственно.

Пример.

Ребро (1x, 1y) E, так как первые символы совпадают (1 = 1), а в G2 есть ребро (x, y). Аналогично и для других ребер.

46

Рис. 7.5. Пример произведения графов

Замечание. Произведение G1 × G2 означает, что каждая вершина G1 заменяется на копию Ga = G2, а каждая вершина G2 заменяется на копию Gb = G1.

6. Композиция (рис. 7.6)

G1[G2 ]= G(X = X1 × X 2 , E ={(a1b1, a2b2 ) E, (a1 = a2 ) (b1, b2 )

E2 (a1, a2 ) E1}.

Вкомпозиции графов, как и в произведении графов, вершины обозначаются парами ab, где символы a и b – обозначения вершин в

G1 и G2 соответственно.

Пример.

Рис. 7.6. Композиция графов

47

Замечание. Композиция G1[G2] означает, что каждая вершина G1 заменяется на копию Ga = G2, а затем, если (a1, a2) E1, то между любыми вершинами b1 из Ga1 и b2 из Ga2 проводится ребро (дуга) (b1, b2).

7. Разность

G1\G2 = G(X1\X2, E),

где E = {[x1, x2]| x1, x2 X1\X2 [x1, x2] E1 [x1, x2] E2}.

8. Удаление вершины

G(X, E)\{xi}.

В результате получается подграф, содержащий все ребра, инцидентные множеству X\{xi}.

9. Удаление ребра (рис. 7.7)

G\{ei}.

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

Рис. 7.7. Удаление ребра графа

10. Добавление вершины

G(X1, E1) + {x} = G(X1 {x}, E = E1), {x} X1.

48

11. Добавление ребра

G(X1, E1) + {e} = G(X, E = E1 {e}), {e} E1.

Радиус и диаметр графа

Обозначим через d(a, b) длину кратчайшего маршрута между вершинами a и b.

Для d(a, b) справедливы следующие утверждения:

1)d (a, a) = 0;

2)d (a, b) 0;

3)d (a, b) = 0 a = b.

для неорграфа расстояния симметричны:

4)d (a, b) = d (b, a),

5)d (a, b) d (a, c) + d (c, b).

Пример (рис. 7.8).

Рассмотрим вершину х1:

d(x1, x2) = d(x1, x4) = d(x1, x5) = 1, d(x1, x3 ) = 2,

max d(x1, xi) = d(x1, x3) = 2.

xi X. Рис. 7.8. Пример графа

Для каждой вершины xi существует максимальный кратчайший маршрут до некоторой вершины xj, он называется эксцентриситетом вершины и обозначается e(xi).

Максимальный из всех эксцентриситетов графа – это диаметр графа

D(G) = max e(xi).

Пример для решения в группе

Рассчитать радиус и диаметр для графа, построенного на основе карты Республики Беларусь (рис. 7.9).

49

Рис. 7.9. Карта Республики Беларусь

По карте можно построить граф, а по графу можно построить матрицу смежности, а затем рассчитать нужные параметры.

 

 

 

(3)

 

 

 

 

Витебскебск(3)

 

 

340

275

163

 

 

 

 

Гро (2

 

 

1)

Могилев(4)4)

260

Минск(1)

Гродно(2)

 

203

 

 

 

 

 

 

 

177

269

 

291

342

 

 

 

 

536

ГГомель(5))

 

 

Брест(6))

Рис. 7.10. Граф, построенный по карте Республики Беларусь

50

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