Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

pz_grafy_

.pdf
Скачиваний:
12
Добавлен:
18.04.2015
Размер:
965.32 Кб
Скачать

 

 

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

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