- •Введение
- •Практическая работа 1
- •Краткая теория
- •Пример решения задачи
- •Задания для решения в группе
- •Варианты индивидуальных заданий
- •Практическая работа 2
- •Краткая теория
- •Примеры
- •Задания для решения в группе
- •Варианты индивидуальных заданий
- •Практическая работа 3
- •Кванторы всеобщности и существования
- •Краткая теория
- •Пример
- •Задания для решения в группе
- •Варианты индивидуальных заданий
- •Операции над множествами
- •Краткая теория
- •Примеры
- •Задания для решения в группе
- •Варианты индивидуальных заданий
- •Краткая теория
- •Примеры для решения в группе
- •Тема 3. Комбинаторика
- •Комбинаторные формулы
- •Краткая теория
- •Примеры для решения в группе
- •Варианты индивидуальных заданий
- •Способы задания графов. Операции над графами
- •Краткая теория
- •Числа графа
- •Варианты индивидуальных заданий
- •Литература
Тема 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
