Задача поиска маршрутов в графе (путей в орграфе)


Задача поиска маршрутов в графе (путей в орграфе)

Алгоритм Тэрри поиска маршрута в связном графе, соединяющем вершины и.

Правила.

    1) Идя по произвольному ребру всегда отмечать направление его прохождения. 2) Исходя из некоторой вершины всегда следовать по тому ребру, которое не было пройдено или было пройдено в противоположном направлении. 3) Для всякой вершины отмечать ребро, по которому в вершину попали в первый раз 4) Исходя из некоторой вершины идти по первому заходящему в ребру лишь тогда, когда нет других возможностей.

Найти маршрут соед. и. +, значит прошли

Замечание: из полученного пути можно выделить простую цепь.

Поиск оптимального пути (маршрута) (т. е пути с наименьшим числом дуг или ребер)

Утверждения:

1) каждый минимальный путь (маршрут) является простой цепью

Доказательство.

Пусть минимальный путь в орграфе D, не являющийся простой цепью. Тогда i и j такие, что и vI=vJ. Рассмотрим путь. Его длина меньше, чем, что противоречит предположению.

2) (о минимальности подпути минимального пути). Пусть - минимальный путь (маршрут) в орграфе D (в графе G). Тогда для i и j таких, что путь (маршрут) тоже является минимальным.

Доказательство. Предположим, что не является оптимальным, тогда т. ч. он короче чем. Тогда заменив на в можно найти более короткий, чем путь не является минимальным. Пришли к противоречию.

Пусть орграф - некоторая вершина.

Обозначим - образ вершины ;

    - прообраз вершины ; - образ множества вершин V1;

прообраз множества вершин V1.

Для неориентированного графа образ и прообраз совпадают.

Пусть граф.

Обозначим - образ вершины ;

- образ множества вершин V1.

Пусть орграф с n2 вершинами и v, w (vw) - заданные вершины из V

Алгоритм поиска минимального пути из в в орграфе D (алгоритм фронта волны).

    1) Помечаем вершину индексом 0, затем помечаем вершины образу вершины индексом 1. Обозначаем их FW1 (v). Полагаем k=1. 2) Если или k=n-1, и одновременно то вершина не достижима из. Работа алгоритма заканчивается.

В противном случае продолжаем:

3) Если, то переходим к шагу 4.

В противном случае мы нашли минимальный путь из в и его длина =k. Последовательность вершин

Есть этот минимальный путь. Работа завершается.

4) Помечаем индексом k+1 все непомеченные вершины, которые принадлежат образу множества вершин c индексом k. Множество вершин с индексом k+1 обозначаем. Присваиваем k:=k+1 и переходим к 2).

Замечания

Множество называется фронтом волны kГо уровня.

Вершины могут быть выделены неоднозначно, что соответствует случаю, если несколько 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. Дан орграф.

Задание. Найти минимальный путь из v1 в v6.

Матрица смежности

Исхвход

0

0

0

1

1

0

1

0

0

0

1

1

1

1

0

1

1

1

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

2

1

1

3

Расстояния в графе

Пусть - граф (или псевдограф).

Расстоянием между вершинами наз. min длина пути между ними. .

Расстояние в графе удовл. аксиомам метрики

    1) , 2) (не орграф) 3) 4) в связном графе ( в орграфе, если не пути).

Пример

1

2

3

4

5

6

1

1

1

0

0

21

0

2

0

0

1

0

0

0

3

0

0

0

0

0

1

4

1

1

0

0

0

0

5

0

0

1

1

0

0

6

0

1

0

0

0

0

Из 1

0

1

2

2

1

3

Из 2

0

1

2

Из 3

2

0

1

Из 4

1

1

2

0

2

3

Из 5

2

3

1

1

0

2

Из 6

1

2

0

Опр || Пусть связный граф (или псевдограф).

Величина - называется диаметром графа 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

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

2

1

1

4

2

1

2

0

1

2

5

1

2

1

1

0

2

6

2

1

1

2

2

0

, центр - все вершины

Маршрут граф дуга смежность

Похожие статьи




Задача поиска маршрутов в графе (путей в орграфе)

Предыдущая | Следующая