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

4.4. Маршруты

Маршрутом в графе называется чередующаяся последовательность вершин и рёбер, начинающаяся и кончающаяся вершиной, в которой любые два соседних элемента инцидентны, причём однородные элементы (вершины, рёбра) через один смежны или совпадают. Очевидно, маршрут может быть задан только последовательностью вершин (или рёбер). Произвольная последовательность вершин является маршрутом только тогда, когда каждая пара соседних вершин представляет собой пару смежных вершин.

Длина маршрута определяется количеством рёбер в нём. Маршрут длины l может быть задан последовательностью из l+1 вершины.

Получить все маршруты W длины l в графе G, начинающиеся вершиной v можно, используя метод поиска с возвращением. Сначала на первое место маршрута W поставим вершину v. Затем, начиная со второго элемента, последовательно формируем элементы маршрута. Формирование i-го элемента маршрута опишем рекурсивным алгоритмом 4.1, блок-схема которого представлена на рис.4.11. В цикле перебираются вершины, смежные вершине, стоящей на i-1-м месте в маршруте W, т.е. элементы множества Г(Wi-1), которые можно поставить на i-е место. Если заполнено последнее, l+1-е место, то маршрут получен и выводим его, иначе заполняем следующее i+1-е место по алгоритму 4.1.

Алгоритм 4.1 получения всех маршрутов W длины l в графе G, начинающихся вершиной v.

Вход: i – заполняемое место в маршруте W.

Выход: последовательность всех маршрутов W длины l в графе G, начинающиеся вершиной v.

Глобальные параметры: W – формируемый маршрут;

l – длина маршрута.

Маршруты(i)

Wi := x

i=l+1

xГ(Wi-1)

+

Конец

W

Маршруты(i+1)

Рис.4.11. Рекурсивный алгоритм получения всех маршрутов W длины l в графе G, начинающихся вершиной v

Для определения количества маршрутов длины l между каждой парой вершин графа можно использовать алгоритм 4.1:

1. Обнулить все элементы матрицы R порядка nn, где n– количество вершин в графе.

2. v:=1.

3. Пока vn выполнять п.4 и п.5.

4. Получить все маршруты W длины l в графе G, начинающиеся вершиной v, используя алгоритм 4.1. После получения очередного маршрута W увеличить на единицу элемент матрицы Rv,u , где u=Wl+1.

5. v:=v+1.

6. Элемент Ri,j содержит количество маршрутов длины l между вершинами i и j.

Если граф G задан матрицей смежности A, то R=Al, т.е. для определения количества маршрутов длины l между каждой парой вершин графа G достаточно матрицу смежности A возвести в l-ю степень.