
- •2. Основные определения теории графов
- •2.1.1. Задание графа множествами вершин и линий
- •2.1.2. Задание графа с помощью отображения
- •2.1.3. Задание графа с помощью обратного отображения
- •2.1.4. Матричное представление графа
- •2.2. Достижимость и обратная достижимость вершин графа
- •2.2.1. Матрица достижимостей и матрица обратных достижимостей
- •2.2.2. Определение матриц достижимостей и обратных достижимостей с помощью прямых и обратных отображений
- •2.2.3. Определение матриц ограниченных достижимостей
- •2.2.4. Определение матриц достижимостей и обратных
- •2.3. Разбиение графа на подграфы
- •2.3.1. Определение существенных вершин
- •2.3.2. Определение сильных компонент графа
- •2.3.3. Определение сильных компонент графа
- •2.3.4. Определение оптимальной базы графа
- •2.3.5. Определение оптимальной антибазы графа
- •3. Алгоритмы оптимизации на графовых моделях
- •3.1. Решение задачи о максимальном потоке методом расстановки пометок на графе (алгоритм Форда-Фалкерсона)
- •Несколько источников и стоков
- •3.2. Решение задачи о максимальном потоке в табличной форме
- •3.3. Решение задачи о максимальном потоке в графе
- •3.4. Решение задачи о кратчайшем пути в транспортной сети непосредственно по графу
- •3.5. Решение задач о кратчайших путях в табличной форме
- •3.5.1. Определение кратчайшего пути между двумя
- •3.5.2. Определение длин кратчайших путей между
- •3.5.3. Решение задачи о кратчайшем пути в графе
- •3.6. Кратчайший остов графа
- •3.6.1. Понятие дерева
- •3.6.2. Определение числа остовных деревьев графа
- •3.6.3. Алгоритм построения всех остовных деревьев графа
- •3.6.4. Определение кратчайшего остова неориентированного
- •3.6.5. Решение задачи о кратчайшем пути в графе
- •3.7. Задача о назначениях
- •3.7.1. Матричная формулировка задачи
- •3.7.3. Решение задачи о назначениях
- •3.7.4. Модификации задачи о назначениях
- •3.8. Задача о наименьшем покрытии
- •3.8.1. Постановка задачи
- •3.8.2. Алгоритм решения задачи
- •3.8.3 Решение задачи о наименьшем покрытии
- •Библиографический список
- •Оглавление
- •Редактор м.Е. Цветкова Корректор н.А. Орлова
- •390005, Рязань, ул. Гагарина, 59/1.
2. Основные определения теории графов
2.1. Понятие о графе. Способы задания графа [4,5].
2.1.1. Задание графа множествами вершин и линий
Граф геометрически представляет собой множество точек, соединенных линиями. Для более полного математического определения графа введем ряд обозначений. Множество точек или вершин х1,х2,…хnграфаGобозначим черезХ, а множество линийd1,d2,…dm, соединяющих между собой эти вершины – символомА. Тогда графGможно полностью задать парой(Х,А).
Если соединяющиеся линии из множества Аориентированы, что обычно показывается стрелкой, то они называются дугами и граф с такими линиями называется ориентированным графом. Если соединяющие линии не ориентированы, то они называются ребрами, а граф называется неориентированным. В смешанном графе могут быть дуги (ориентированные линии) и ребра (неориентированные линии). На рис. 2.1 изображен ориентированный граф.
Дуга
такого графа задается упорядоченной
парой, состоящей из начальной и конечной
вершин, ее направление предполагается
заданным от первой вершины ко второй.
Для подчеркивания ориентации ребра
упорядоченная пара обозначается сверху
Рис. 2.1 символом вектора,
например знаком®.
Граф на рис. 2.1. можно представить в виде
G1={
x1,
x2,
x3;
(x1,x2),
(x2,x3),
(x3,x1)}
На рис. 2.2 изображен смешанный граф, и его представление имеет вид
G2={
x1,
x2,
x3;
2(x1,x2),
(x2,x3),
(x3,x1)}
,
где цифра 2 означает две дуги из вершины х1в вершину х2.
Рис. 2.2
2.1.2. Задание графа с помощью отображения
Иногда бывает удобно дать графу другое определение. Можно считать, что множество направленных дуг А, соединяющих элементы множества Х, отображает это множество само в себя. Граф Gможно считать заданным, если даны множество его вершин Х и способ отображения Г множества Х в Х, т.е.G=(X,Г).
Для графа (рис. 2.1) отображение Г определяется следующим образом:
Г(х1) = {x2}; Г(х2) = {x3}; Г(х3) = {x1}.
В случае неориентированного графа или смешанного графа, содержащего и дуги, и неориентированные ребра (например, граф, изображенный на рис. 2.2), предполагается, что отображение задает такой эквивалентный ориентированный граф, который получается из исходного графа заменой неориентированного ребра двумя противоположно направленными дугами, содержащими те же самые вершины. Так, например, для графа (рис. 2.2) имеем
Г(х1) = {2x2,x3}; Г(х2) = {x3}; Г(х3) = {x1,x2}. (2.1)
2.1.3. Задание графа с помощью обратного отображения
Поскольку Г(хi)представляет собой множество таких вершинxjÎ X, для которых в графеGсуществует дуга(xi,xj), то черезГ-1(xi)естественно обозначить обратное отображение, т.е. множество вершинxk, для которых вGсуществует дуга(xк,xi). Граф можно задавать с помощью обратного отображения вершин. Тогда, например, для графа (рис. 2.2) можно записать
Г-1(х1) = {x3}; Г-1(х2) = {2x1,x3}; Г-1(х3) = {x1,x2}. (2.2)
Вполне очевидно, что для неориентированного графа Г -1(хi) = Г(хi) для всех хÎ Х.
2.1.4. Матричное представление графа
Для алгебраического задания графа удобно использовать матрицу смежности. Матрицей смежности графа, содержащего nвершин, называется квадратная матрица А размером (nxn), в которой элементыaij, стоящие на пересеченииi-й строки иj-го столбца, численно равны количеству дугграфа, идущих из i-й вершины в j-ю. Для графа (рис. 2.2) матрица смежности имеет вид
A(1,1)={a}=
-
J=1
J=2
J=3
i=1
0
2
1
i=2
0
0
1
i=3
1
1
0
Матрица смежности полностью определяет структуру графа. Множество столбцов, имеющих в строке xiзначенияaij¹0, есть множествоГ(хi)с соответствующими коэффициентами (2.1), а множество строкi, имеющих в столбцеxjзначенияaij¹0, совпадает с множествомГ-1(хj)с соответствующими коэффициентами (2.2). Согласно определению матрицы смежности неориентированным графам соответствуют симметричные матрицы смежности. Матрица смежности для многоуровневого графа строится аналогично.
В графе (рис. 2.3) каждая вершина xijимеет два индекса:i– номер уровня;j– номер вершины данного уровня.
Рис. 2.3
Матрица смежности для графа (рис. 2.3)
имеет вид A(2,2)={a}=
|
|
K=1 |
K=1 |
K=1 |
K=2 |
K=2 |
k=2 |
|
|
L=1 |
L=2 |
L=3 |
L=1 |
L=2 |
L=3 |
I=1 |
J=1 |
0 |
0 |
1 |
0 |
0 |
0 |
I=1 |
J=2 |
1 |
0 |
1 |
0 |
0 |
0 |
I=1 |
J=3 |
0 |
0 |
0 |
0 |
0 |
0 |
I=2 |
J=1 |
0 |
0 |
0 |
0 |
0 |
1 |
I=2 |
J=2 |
0 |
1 |
0 |
1 |
0 |
1 |
I=3 |
J=3 |
0 |
0 |
0 |
0 |
0 |
0 |
,
где индексы i, jхарактеризуют начальную вершинуxij,а индексыk,l– конечную вершинуxkl.