 
        
        LECT10
.DOCЛекция №10
Задача поиска маршрутов в графе (путей в орграфе)
Алгоритм Тэрри поиска маршрута в
связном графе, соединяющего вершины 
 и
и 
 
 .
.
Правила.
1) Идя по произвольному ребру всегда отмечать направление его прохождения.
2) Исходя из некоторой вершины 
 всегда следовать по тому ребру, которое
не было пройдено или было пройдено в
противоположном направлении.
всегда следовать по тому ребру, которое
не было пройдено или было пройдено в
противоположном направлении.
3) Для всякой вершины 
 отмечать ребро по которому в вершину
отмечать ребро по которому в вершину
 попали
в первый раз
попали
в первый раз
4) Исходя из некоторой вершины 
 идти по первому заходящему в
идти по первому заходящему в 
 ребру лишь тогда, когда нет других
возможностей.
ребру лишь тогда, когда нет других
возможностей.
	 
	Найти маршрут 
	соед. 
	 
	+ 
	 
	 
	 
	 и
	и 
	




	+, значит 
	прошли 
	+ 
	+ 
	 
	 
	 
	 
	 
	 
	 
	 
	







Замечание: из полученного пути можно выделить простую цепь.
Поиск оптимального пути (маршрута) (т.е пути с наименьшим числом дуг или ребер)
Утверждения:
1) каждый минимальный путь (маршрут) является простой цепью
Доказательство.
Пусть 
 минимальный путь в орграфе D,
не являющийся простой цепью. Тогда 
i и j такие,
что
минимальный путь в орграфе D,
не являющийся простой цепью. Тогда 
i и j такие,
что 
 и vi=vj.
Рассмотрим путь
и vi=vj.
Рассмотрим путь 
 .
Его длина меньше, чем ,
что противоречит предположению.
.
Его длина меньше, чем ,
что противоречит предположению.
2) (о минимальности подпути минимального
пути). Пусть 
 - минимальный путь (маршрут) в орграфе
D (в графе G).
Тогда для  i
и j таких, что
- минимальный путь (маршрут) в орграфе
D (в графе G).
Тогда для  i
и j таких, что 
 путь (маршрут)
путь (маршрут) 
 тоже является минимальным.
тоже является минимальным.
Доказательство. Предположим, что 
 не является оптимальным, тогда
не является оптимальным, тогда 
 т.ч. он короче чем
т.ч. он короче чем 
 .
Если в
.
Если в 
 вошли вершины из
вошли вершины из 
 ,
то этот путь не является простой цепью.
Тогда исключив из него циклы, можно
найти еще более короткий путь
,
то этот путь не является простой цепью.
Тогда исключив из него циклы, можно
найти еще более короткий путь 
 не является минимальным. Пришли к
противоречию.
не является минимальным. Пришли к
противоречию.
Пусть 
 орграф
орграф 
 -
некоторая вершина
-
некоторая вершина 
 .
.
Обозначим 
 -
образ вершины
-
образ вершины 
 ;
;
 -
прообраз вершины
-
прообраз вершины 
 ;
;
 -
образ множества вершин V1
;
-
образ множества вершин V1
;
 прообраз множества вершин V1.
прообраз множества вершин V1.
Для неориентированного графа образ и прообраз совпадают.
Пусть 
 граф
граф 
 .
.
Обозначим 
 -
образ вершины
-
образ вершины 
 ;
;
 -
образ множества вершин V1.
-
образ множества вершин V1.
Пусть 
 орграф с n2
вершинами и v,w
(vw)
– заданные вершины из V
орграф с n2
вершинами и v,w
(vw)
– заданные вершины из V 
Алгоритм поиска минимального пути из
 в
в 
 в орграфе D
в орграфе D
(алгоритм фронта волны).
1) Помечаем вершину 
 индексом 0, затем помечаем вершины 
образу вершины
индексом 0, затем помечаем вершины 
образу вершины 
 индексом 1. Обозначаем их FW1
(v). Полагаем k=1.
индексом 1. Обозначаем их FW1
(v). Полагаем k=1.
2) Если 
 или k=n-1, и
одновременно
или k=n-1, и
одновременно то вершина
то вершина 
 не достижима из
не достижима из 
 .
Работа алгоритма заканчивается.
.
Работа алгоритма заканчивается.
В противном случае продолжаем:
3) Если 
 ,
то переходим к шагу 4.
,
то переходим к шагу 4.
В противном случае мы нашли минимальный
путь из 
 в
в 
 и его длина =k. Последовательность
вершин
и его длина =k. Последовательность
вершин

есть этот минимальный путь. Работа завершается.
4) Помечаем индексом k+1
все непомеченные вершины, которые
принадлежат образу множества вершин c
индексом k. Множество
вершин с индексом k+1
обозначаем 
 .
Присваиваем k:=k+1
и переходим к 2).
.
Присваиваем k:=k+1
и переходим к 2). 
Замечания
Множество 
 называется фронтом волны kго
уровня.
называется фронтом волны kго
уровня.
Вершины 
 могут быть выделены неоднозначно, что
соответствует случаю, если
могут быть выделены неоднозначно, что
соответствует случаю, если 
 несколько min путей из
несколько min путей из 
 в
в 
 .
.
Пример 1. Дана матрица смежности. Найти минимальный путь из v1 в v6.
| Исх\вход | 
			 | 
			 | 
			 | 
			 | 
			 | 
			 | 
| 
			 | 0 | 0 | 0 | 1 | 1 | 0 | 
| 
			 | 1 | 0 | 0 | 1 | 1 | 1 | 
| 
			 | 1 | 1 | 0 | 1 | 1 | 1 | 
| 
			 | 0 | 1 | 1 | 0 | 1 | 0 | 
| 
			 | 1 | 1 | 1 | 1 | 0 | 0 | 
| 
			 | 1 | 1 | 1 | 1 | 1 | 0 | 
| 
 | 0 | 2 | 2 | 1 | 1 | 3 | 
Пример 2. Дан орграф.
	 
	1
 
	2 
	3 
	4 
	5 
	6 
	
Задание. Найти минимальный путь из v1 в v6.
Расстояния в графе
Пусть 
 -
граф (или псевдограф).
-
граф (или псевдограф). 
Расстоянием между вершинами 
 наз. min длина пути между
ними.
наз. min длина пути между
ними. 
 .
.
 в орграфе, если не
в орграфе, если не 
 пути
пути
Расстояние в графе удовл. аксиомам метрики
1) 
 ,
,
2) 
 (не орграф)
(не орграф)
3) 

4) 
 в связном графе (не орграфе).
в связном графе (не орграфе).
Пример ???
| 
 | 1 | 2 | 3 | 4 | 5 | 6 | 
| 1 | 0 | 2 | 2 | 1 | 1 | 3 | 
| 2 | 1 | 0 | 1 | 1 | 1 | 1 | 
| 3 | 1 | 1 | 0 | 1 | 1 | 1 | 
| 4 | 2 | 1 | 1 | 0 | 1 | 2 | 
| 5 | 1 | 1 | 1 | 1 | 0 | 2 | 
| 6 | 1 | 1 | 1 | 1 | 1 | 0 | 
Из 1 в 6.

Из 4 в 5

опр || Пусть 
 связный граф (или псевдограф).
связный граф (или псевдограф). 
Величина 
 - называется диаметром графа G.
- называется диаметром графа G.
Пусть 
 .
.
Величина 
 - называется максимальным удалением
(эксцентриситетом) в графе G
от вершины
- называется максимальным удалением
(эксцентриситетом) в графе G
от вершины 
 .
.
Радиусом графа G наз.
величина 

Любая верш. 
 такая, что
такая, что 
 наз. центром графа G.
наз. центром графа G.
                           

 
	 
	 
	 
	 
	 
	 
	 
	 
	







Матрица смежности
| 
 | 
			 | 
			 | 
			 | 
			 | 
			 | 
| 
			 | 0 | 1 | 0 | 0 | 0 | 
| 
			 | 1 | 0 | 1 | 1 | 0 | 
| 
			 | 0 | 1 | 0 | 1 | 0 | 
| 
			 | 0 | 1 | 1 | 0 | 1 | 
| 
			 | 0 | 0 | 0 | 1 | 0 | 
Матрица расстояний
| 
 | 
			 | 
			 | 
			 | 
			 | 
			 | 
| 
			 | 0 | 1 | 2 | 2 | 3 | 
| 
			 | 1 | 0 | 1 | 1 | 2 | 
| 
			 | 2 | 1 | 0 | 1 | 2 | 
| 
			 | 2 | 1 | 1 | 0 | 1 | 
| 
			 | 3 | 2 | 2 | 1 | 0 | 

Центры в вершинах 2,3,4
Примеры.
	 
	1 
	2 
	3
 
	4 
	5 
	6 
	
Матрица смежности
| 
 | 1 | 2 | 3 | 4 | 5 | 6 | 
| 1 | 0 | 1 | 0 | 0 | 1 | 0 | 
| 2 | 1 | 0 | 0 | 1 | 0 | 1 | 
| 3 | 0 | 0 | 0 | 0 | 1 | 1 | 
| 4 | 0 | 1 | 0 | 0 | 1 | 0 | 
| 5 | 1 | 0 | 1 | 1 | 0 | 0 | 
| 6 | 0 | 1 | 1 | 0 | 0 | 0 | 
Матрица расстояний
| 
 | 1 | 2 | 3 | 4 | 5 | 6 | 
| 1 | 0 | 1 | 2 | 2 | 1 | 2 | 
| 2 | 1 | 0 | 2 | 1 | 2 | 1 | 
| 3 | 2 | 2 | 0 | 1 | 1 | 1 | 
| 4 | 2 | 1 | 1 | 0 | 1 | 2 | 
| 5 | 1 | 2 | 1 | 1 | 0 | 2 | 
| 6 | 2 | 1 | 1 | 2 | 2 | 0 | 
 ,
центр - все вершины
,
центр - все вершины
































