pz_grafy_
.pdf
|
|
1 |
|
e1 |
e2 |
e3 |
e4 |
e5 |
e6 |
e7 |
e8 |
e9 |
e10 |
|
||
|
|
1 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
|||||
|
|
2 |
|
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
|
0 |
0 |
|
|
|
|
3 |
|
|
|
|||||||||||
IG |
|
|
0 |
1 |
0 |
0 |
1 0 0 0 0 |
0 |
|
|||||||
4 |
|
|
||||||||||||||
|
|
|
0 |
0 |
0 |
1 |
1 0 0 0 |
|
||||||||
|
|
|
0 |
0 |
||||||||||||
|
|
5 |
|
0 |
0 |
0 |
1 |
0 |
1 |
1 1 |
|
0 |
0 |
|
||
|
|
6 |
|
|
|
|||||||||||
|
|
|
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
|
1 |
0 |
|
||
|
|
|
|
|
|
|||||||||||
2.3. Маршруты, цепи, циклы. Связные графы. Матрицы достижимости, контрдостижимости, сильных компонент графа
Неорграф называется связным, если любые две его несовпадающие вершины соединены маршрутом (или цепью или простой цепью).
Орграф G называется связным, если соответствующий ему неорграф тоже является связным.
Граф G называется сильно связным, если для каждой пары различных вершин u и v существуют (u, v) – маршрут и (v,u) – маршрут.
Любой связный неорграф является сильно связным.
Аналогично определяются понятия связности и сильной связности для мультиграфов.. Граф связен тогда и только тогда, когда в нем существует вершина, которую можно соединить маршрутом с любой другой вершиной.
Связной компонентой (или компонентой) графа G называется максимальный связный подграф графа. Слово «максимальный» означает, что подграф не содержится в связном подграфе с большим числом элементов.
Матрицей связности С (сij ) для ( n,m )–неорграфа G или матрицей достижимости для орграфа G называется квадратная матрица порядка n с матричными элементами cij , равными единице в том случае, когда суще-
ствует (vi , v j ) маршрут (при i j ), и равными нулю, если этот маршрут
не существует. Если G связный неорграф, то все элементы матрицы связности C равны единице.
Матрицей контрдостижимости называется квадратная матрица Q (qij ) с
матричными элементами
11
|
1, если вершина vi |
достижима из вершины v j , |
|
qij |
|
0 |
в противном случае. |
|
|
||
Матрица связности C и матрица контрдостижимости Q связаны соотношением Q CT . С помощью матриц С и Q определяется матрица сильных компонент S (sij ) с матричными элементами sij cij qij . Равенство
sij 1 верно тогда и только тогда, когда i j или вершины vi и v j взаим-
но достижимы, т.е. вершина vi достижима из вершины v j и вершина v j
достижима из вершины vi . Сильная компонента графа, содержащая верши-
ну vi , состоит из элементов v j , для которых sij 1.
Задача 2.7. Для графа, изображенного на рис. 2.13 , установить:
1)имеет ли он контур;
2)из каких вершин достижима вершина 4? Указать соответствующие пути.
2 |
3 |
|
1 |
5 |
4 |
|
||
|
|
Рис. 2.13
Граф, представленный на рис. 2.13, имеет контуры {1,2,3,5}, {2,3,5}. Вершина 4 достижима из любой другой вершины, но из вершины 4 не достижима ни одна из вершин. В вершину 4 можно попасть из вершины 1 по пути(1,2,3,4), из вершины 2 по пути (2,3,4), ), из вершины 3 по пути (3,4), из вершины 5 по пути(5,1,2,3,4).
Задача 2.8. Для графа, изображенного на рис. 2.14 , найти матрицы дотижимости, контрдостижимости, сильных компонент
12
1 2
6 |
3 |
7 |
5 |
4 |
Ри
с. 2.14
Решение. Построим матрицу смежности AG , матрицу достижимости С ,
матрицу контрдостижимости Q CT |
и матрицу сильных компонент. |
|
||||||||||||||||||||||
|
|
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
|
|
|
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
|
|
|
|
1 |
0 1 0 0 |
1 |
0 |
0 |
|
|
1 |
1 1 |
0 |
1 |
1 |
0 |
0 |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
|
|
|
2 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
|
|||
|
|
3 |
|
0 |
0 |
0 |
1 |
0 |
0 |
0 |
|
|
|
3 |
|
0 |
0 |
1 |
1 |
1 |
0 |
0 |
|
|
AG |
|
|
|
|
|
|
|
|
|
|
|
СG |
|
|
|
|
|
|
|
|
|
|
|
|
4 |
0 0 0 0 |
1 |
0 |
0 |
4 |
0 0 |
0 |
1 |
1 |
0 |
0 |
|||||||||||||
|
|
|
|
|||||||||||||||||||||
|
|
5 |
|
0 |
0 |
0 |
0 |
1 |
0 |
0 |
|
|
|
5 |
|
0 |
0 |
0 |
0 |
1 |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||
|
|
6 |
|
0 |
0 |
1 |
0 |
0 |
0 |
1 |
|
|
|
6 |
|
0 |
0 |
1 |
1 |
1 |
1 |
1 |
|
|
|
|
|
|
0 |
0 |
0 |
1 |
0 |
1 |
0 |
|
|
|
|
|
0 |
0 |
1 |
1 |
1 |
1 |
1 |
|
|
|
|
7 |
|
|
|
7 |
|
|||||||||||||||||
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
|
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
|
1 |
1 0 0 0 |
0 |
0 |
0 |
1 |
1 0 0 0 |
0 |
0 |
0 |
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
|
2 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
|
||
3 |
|
0 |
0 |
1 |
0 |
0 |
1 |
1 |
|
3 |
|
0 |
0 |
1 |
0 |
0 |
0 |
0 |
|
Q 4 |
|
|
|
|
|
|
|
|
|
S 4 |
|
|
|
|
|
|
|
|
|
1 1 1 1 |
0 |
1 |
1 |
0 0 0 1 |
0 |
0 |
0 |
||||||||||||
5 |
|
1 |
1 |
1 |
1 |
1 |
1 |
1 |
|
5 |
|
0 |
0 |
0 |
0 |
1 |
0 |
0 |
|
|
|
|
|
||||||||||||||||
6 |
|
0 |
0 |
0 |
0 |
0 |
1 |
1 |
|
6 |
|
0 |
0 |
0 |
0 |
0 |
1 |
1 |
|
|
|
0 |
0 |
0 |
0 |
0 |
1 |
1 |
|
|
|
0 |
0 |
0 |
0 |
0 |
1 |
1 |
|
7 |
|
7 |
|
||||||||||||||||
13
Этот граф имеет сильную компоненту, которая задается множеством вершин {v6 , v7 }.
Строка с номером i матрицы S содержит единицы только в тех столбцах с номерами j , для которых вершины vi и v j взаимно достижимы. Две
вершины находятся в одной сильной компоненте, когда соответствующие им строки (столбцы) одинаковы. Матрицу S путем перестановки строк и столбцов можно преобразовать в блочно-диагональную матрицу, каждая из диагональных подматриц которой содержит только единицы (и соответствует сильной компоненте графа), а остальные элементы равны нулю
Задача 2.9. Перевозчику (П) нужно переправить через реку волка (В), козу (К) и мешок (М) с капустой. Лодка так мала, что кроме перевозчика может взять только один из этих объектов. Как осуществить переправу, если капусту нельзя оставлять вместе с козой, а козу с волком?
Опишем различные позиции разделенным пополам прямоугольником, в левой и правой частях которого расположены объекты, находящиеся на первом и втором берегу соответственно. Ребра описывают те объекты, которые перевозятся. Решение представим в виде графа, изображенного на рис 2.15.
ВКМП
К
ВМ К
ВМ
М |
|
ВКП |
|
В |
КМП |
||
|
|
|
|
|
|
|
|
|
К |
|
К |
|
|||
|
|
|
|
|
|
|
|
КМП |
|
В |
|
ВКП |
|
М |
|
|
|
|
|
|
|
|
|
|
|
М |
В |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
К |
ВМ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
К |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ВКМ |
|
|
|
|
|
|
|
|
|
|
Рис. 2.15.
14
Первоначально на первом берегу находятся объекты ВКМП. Очевидно, что первый возможный ход – перевозка козы. Тогда на первом берегу останутся волк и капуста, а на втором берегу коза. Далее существуют два варианта: 1) перевозчик забирает волка перевозит его на второй берег, с которого он увозит козу на первый берег и оставляет так козу, забирая при этом мешок с капустой, так что на втором берегу оказываются волк и капуста, затем перевозчик возвращается, забирает козу и перевозит ее на второй берег; 2) перевозчик забирает капусту, перевозит ее на второй берег, с которого он забирает козу и перевозит ее на первый берег, затем перевозит волка на второй берег, возвращается и перевозит козу на второй берег.
Доказать, что данный граф имеет две компоненты связности
2.4. Метрические характеристики графа. Взвешенные графы
Пусть G (V , E) – связный граф, u и v – две его несовпадающие вершины. Расстоянием (u, v) между вершинами u и v называется длина кратчайшего ( u, v )– маршрута. Эксцентриситетом вершины u называется
(u) max (u, v) , т.е. максимальное из расстояний от данной вершины до
v V
всех других вершин графа. Диаметром d (G) графа G называется макси-
мальный среди всех эксцентриситетов вершин d (G) max (u) . Радиусом u V
r(G) связного графа называется минимальный из эксцентриситетов вер-
шин r(G) min (u) . Очевидно, что радиус графа не больше его диамет- u V
ра. Периферийной называется вершина v , для которой (v) d(G) . Центральной называется вершина v , для которой (v) r(G) . Центром графа является множество всех центральных вершин графа.
Задача 2.10. Для графа, изображенного на рис.2.16, найти расстояния от вершины 1 до всех остальных вершин, эксцентриситеты вершин, , радиус графа, диаметр графа, периферийные вершины, центральные вершины.
15
2 |
3 |
6 |
7 |
1 |
4 |
|
5 |
8 |
Рис.2.16
Решение. Расстояния от вершины 1 до всех остальных вершин равны соот-
ветственно (1,2) |
1, (1,3) |
1, (1,4) 1, (1,5) 2 , (1,6) 1, |
(1,2) 1, (1,7) |
2 , (1,8) |
2 . Эксцентриситеты вершин равны (1) 2 , |
(2) 3 , (3) 3 , (4) 3 , (5) 3 , (6) 2 , (7) 3 , (8) 3 . Сле-
довательно, радиус графа равен r(G) 2 , диаметр графа равен d(G) 3.
Центральными вершинами являются вершины 1 и 6, остальные вершины являются периферийными.
2.5. Нахождение кратчайших маршрутов
Пусть (n, m) граф G (V , E) имеет матрицу весов W (wij ) , где wij R . Будем считать, что в графе отсутствуют контуры с отрицательным
весом, поскольку двигаясь по этим контурам достаточное число раз, можно получить маршрут, имеющий вес, меньший любого наперед заданного числа.
2.5.1. Построение кратчайших взвешенных маршрутов с помощью алгоритма Форда–Беллмана
Алгоритм Форда–Беллмана используется для графов с n вершинами, дуги которых могут иметь вес любого знака. Для реализации этого алгорит-
ма нужно использовать n3 операций.
Задача 2.11. Для взвешенного графа G (V , E) , изображенного на рис. 2.17
16
Рис. 2.17 найти наименьшие взвешенные расстояния от вершины 1 до всех остальных
вершин с помощью алгоритма Форда–Беллмана. Указать минимальный взвешенный маршрут из вершины 1 в вершину 9.
Решение. Построим матрицу весов заданного графа
|
0 3 2 |
|
2 |
|
|
|
|
||||
|
|
0 |
1 |
|
|
3 |
|
|
|
||
|
|
|
|||||||||
|
|
|
0 |
|
|
4 |
|
|
|
|
|
|
|
|
|||||||||
|
0 |
|
|
|
|
|
|||||
|
|
5 |
|
||||||||
W |
|
0 |
2 |
|
|
|
|
||||
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
0 |
3 |
|
|
|||
|
|
|
|
|
|
0 3 2 |
|
||||
|
|
|
|||||||||
|
|
|
|
|
|
0 |
2 |
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
||
|
|
|
|||||||||
Для решения этой задачи вначале построим первый столбец D(1) , элементы которого равны элементам первой строки матрицы W
D(1) (0,3, 2, , 2, , , , )T
Затем найдем элементы второго столбца D(2) . Вычислим
17
d (2) |
min{d (1) ; d (1) |
w , d (1) |
w |
|
, d (1) |
w |
, d (1) |
w , d (1) |
w , |
|||||
1 |
|
1 |
1 |
11 |
2 |
21 |
3 |
31 |
4 |
41 |
5 |
51 |
||
d (1) |
w |
, d (1) |
w |
, d (1) |
w |
, d (1) |
w |
} min{d |
(1) , D(1) |
W (1) } |
||||
6 |
61 |
7 |
71 |
8 |
|
81 |
9 |
|
91 |
|
1 |
|
|
|
min{0; |
0 0, 3 , 2 , , 2 , , , , } 0 |
|||||||||||||
Здесь все элементы в фигурной скобке, начиная со второго, получаются,
если к элементам |
D(1) |
прибавить элементы первого столбца W (1) матрицы |
||||||||||||||
W . Аналогично получим элемент |
|
|
|
|
|
|
|
|
||||||||
d (2) |
min{d (1) ; d (1) |
w |
|
, d (1) |
w |
|
, d (1) |
w |
, d (1) w |
42 |
, d (1) |
w , |
||||
2 |
|
2 |
1 |
|
12 |
2 |
22 |
3 |
32 |
4 |
|
5 |
52 |
|||
d (1) |
w |
, d (1) w |
, d |
(1) |
w |
, d (1) |
w |
} min{d (1) ; D(1) |
W (2) } |
|||||||
6 |
62 |
7 |
72 |
|
8 |
|
82 |
9 |
|
92 |
|
2 |
|
|
|
|
min{3;3,3, , , , , , , , } 3
Здесь все элементы в фигурной скобке, начиная со второго, представляют собой сумму соответствующих элементов D(1) и элементов второго столбца W (2) матрицы W . Подобным образом найдем
d (2) |
min{d (1) |
; D(1) |
W (3) } 2 ; |
d |
(2) |
min{d (1) ; D(1) |
W (4) } 2 |
|
3 |
3 |
|
|
|
4 |
4 |
|
|
d (2) |
min{d (1) |
; D(1) |
W (5) } 2 ; |
|
d (2) min{d (1) ; D(1) W (6) } 4 , |
|||
5 |
5 |
|
|
|
|
6 |
6 |
|
d (2) |
min{d (1) |
; D(1) |
W (7) } 0 , d (2) |
min{d (1) |
; D(1) |
W (8) } , |
||
7 |
7 |
|
|
8 |
|
8 |
|
|
d (2) |
min{d (1) |
; D(1) |
W (9) } . |
|
|
|
|
|
9 |
9 |
|
|
|
|
|
|
|
Следовательно, D(2) |
(0,3,2,2, 2, 4,0, , )T . |
|
|
|||||
Результаты вычислений удобно представить таблицей 2.1.Эта таблица содержит номера строк и столбцов матрицы весов W , элементы матрицы
весов и столбцы D(1) , D(2) , D(3) , D(4) , D(5) , D(6) , D(7) , D(8) , которые
заполняются в результате произведенных вычислений.
Вычислим элементы столбцов D(3) , D(4) , D(5) , D(6) , D(7) , D(8) и внесем их в таблицу
18
Таблица 2.1
|
1 2 3 4 5 6 7 8 9 |
D |
(1) |
D |
(2) |
D |
(3) |
D |
(4) |
D |
(5) |
|
|
|
|
|
|
|
|
|
|
||||||
1 |
0 3 2 –2 |
0 |
0 |
0 |
0 |
0 |
|
||||||
2 |
0 –1 -3 |
3 |
3 |
3 |
3 |
3 |
|
||||||
3 |
0 –4 |
2 |
2 |
2 |
2 |
2 |
|
||||||
4 |
0 5 |
|
|
2 |
2 |
2 |
2 |
|
|||||
5 |
0 –2 |
–2 |
-2 |
-2 |
-2 |
-2 |
|
||||||
6 |
0 3 |
|
|
-4 |
-4 |
-4 |
-4 |
|
|||||
7 |
0 3 2 |
|
|
0 |
0 |
0 |
0 |
|
|||||
8 |
0 2 |
|
|
|
-1 |
-1 |
-1 |
|
|||||
9 |
0 |
|
|
|
2 |
1 |
1 |
|
|||||
|
|
|
|
|
|
|
|
|
|||||
Поскольку элементы столбцов D(4) |
D(5) , то работу алгоритма можно за- |
||||||||||||
вершить. В результате получены минимальные взвешенные расстояния от источника– вершины 1 до всех остальных вершин:
w (1,1) |
0 , |
w (1,2) |
3, |
w (1,3) 2 , |
w (1,4) 2 , w (1,5) 2 . , |
w (1,6) |
4 , w (1,7) |
0 w (1,8) 1, |
w (1,9) 1. |
||
Найдем теперь кратчайший маршрут, связывающий вершины 1 и 9. |
|||||
В соответствии с формулой |
w (vi , v j ) w (vi , vk r ) wk r, j , где |
||||
i 1, j 9 , найдем, какая из вершин, связанных с вершиной 9, удовлетво-
ряет этому соотношению. В вершину 9 можно попасть из вершин 7 и 8. Проверим, какое из соотношений
w (1,9) w (1,8) w89 , w (1,9) w (1,7) w79 выполняется.
Подставим в эти соотношения численные значения
w (1,9) 1, w (1,8) 1, w89 2 ;w (1,9) 1, w (1,7) 0 , w79 2 .
В результате получим, что выполняется соотноше-
ние w (1,9) w (1,8) w89 , т.е. при построении кратчайшего маршрута в
вершину 9 попадают из вершины 8.
В вершину 8 можно попасть из вершин 6 и 7. Подобным образом найдем, что в вершину 8 попадают из вершины 6, так как выполняется соот-
19
ношение w (1,8) w (1,6) w68 , что видно после подстановки в это ра-
венство w (1,8) 1, w (1,6) 4 , w68 3.
Следовательно, при построении кратчайшего взвешенного (1,9) – марш-
рута в вершину 8 попадают из вершины 6.
В вершину 6 можно попасть из вершин 3 и 5. Проверим, что
w (1,6) w (1,5) w56 . Это равенство выполняется, так как w (1,6) 4 ,w (1,5) 2 и w56 2 . Следовательно, при построении кратчайшего взвешенного (1,9) – маршрута в вершину 6 попадают из вершины 5.
Ввершину 5 можно попасть из вершины 1. Проверим, что
w (1,5) w (1,1) w15 . Это равенство выполняется, так как w (1,2) 1,
w (1,5) 2 и w15 2 .
Следовательно, кратчайшим взвешенным (1,9) – маршрутом является маршрут (1,5,6,8,9).
Построение кратчайших взвешенных маршрутов с помощью алгоритма Дейкстры
Алгоритм Дейкстры используется для взвешенных графов, у которых веса дуг неотрицательны. Он является более экономичным, чем алгоритм Форда–Беллмана, так как для реализации этого алгоритма нужно использо-
вать n2 операций. Рассмотрим две модификации алгоритма Дейкстры. Пусть задан взвешенный (n, m) граф G (V , E) , который имеет матрицу
весов W (wij ) , где wij R , R – множество неотрицательных веще-
ственных чисел.
В основе алгоритма Дейкстры лежат операции присвоения вершинам меток и правила пересчета меток, в результате которых получаются окончательные метки, равные длинам кратчайших путей..
Выделим вершину vi – источник и найдем наименьшие взвешенные рас-
стояния от этой вершины до всех остальных вершин v j графа.
1) Вершине vi присвоим метку m(vi ) 0 , а всем остальным вершинам –
метку m(v j ) , ( j i, j 1,2,..., n ).
20
