Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций по дискретной математике (полны...doc
Скачиваний:
23
Добавлен:
21.11.2019
Размер:
2.37 Mб
Скачать

Множество путей в графе

По матрице смежности можно определить, сколько различных путей существует между i-той и j- той вершинами длиной в к единиц. Для этого необходимо определить матрицу , где - матрица смежности.

Если элемент матрицы :

- между i-той и j- той вершины не существует пути длиной в к единиц;

- между i-той и j- той вершины существуют различных путей длиной в к единиц;

Если - нулевая матрица, это означает, что графе нет путей в к единиц, а максимальный путь – это путь длиной в (к -1) единиц.

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

Одной из самых распространенных задач в теории графов является задача поиска минимального пути в графе.

Рассмотрим некоторые свойства минимальных путей

  1. Любой минимальный путь является простым путем.

  2. Если путь - минимальный, то любые пути внутри минимального пути также будут минимальны.

Пусть Г-1хпрообраз вершины xi – это множество вершин, из которых исходят дуги в вершину xi.

Одним из алгоритмов поиска минимального пути в графе является алгоритм фронта волны (FWFront Wave)

Алгоритм фронта волны.

Пусть необходимо найти минимальный путь из вершины в вершину .

  1. Выписываются все вершины с 1 по n. Вершина помечается индексом 0.

  2. Находится первый фронт волны как множество вершин образа вершины .

(3.17)

  1. Все вершины, принадлежащие первому фронту волны, помечаются индексом 1.

  2. Вводится счетчик шагов (фронтов волны) .

  3. Если или , то вершина недостижима из вершины, и работа алгоритма на этом заканчивается. В противном смысле переходим к пункту 6.

  4. Если , то переходим к пункту 8. В противном случае существует путь из вершины в вершину длиной в единиц, и этот путь минимальный:

  1. Находятся промежуточные вершины z по правилу:

, (3.18)

где - прообраз вершины - множество вершин, из которых заходят дуги в вершину

  1. Определяется фронт волны как все непомеченные вершины, принадлежащие образу вершин - го фронта волны. Помечаются индексом вершины фронта волны. Далее осуществляется переход к пункту 5.

ПРИМЕР

Пусть задан граф матрицей смежности:

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

Необходимо найти минимальный путь из вершины в вершину (по алгоритму «фронта волны»).

  1. Выпишем все вершины. Вершина помечается индексом «0»

0

  1. Находится первый фронт волны:

  1. Все вершины, принадлежащие первому фронту волны, помечаются индексом «1».

0 1 1

  1. Так как , и , то определяем второй фронт волны:

  1. Все вершины, принадлежащие второму фронту волны, помечаются индексом «2».

0 2 2 1 1

  1. Так как , и , то определяем третий фронт волны:

  1. Так как , то существует путь из вершины в вершину длиной 3 единицы:

  1. Находятся промежуточные вершины :

Выберем

Выберем

Таким образом, минимальный путь из вершины в вершину имеет вид: