Графы. Поиск путей (маршрутов) с минимальным числом дуг (ребер). Алгоритм фронта волны.
Поиск путей (маршрутов) с минимальным числом дуг (ребер)
При решении некоторых прикладных задач нередко возникает необходимость найти маршрут, соединяющий заданные вершины в графе G. Данная задача решается при использовании алгоритма Тэрри.
Рассмотрим более сложную задачу: нахождение пути (маршрута) с минимальным числом дуг (ребер).
Определение.Путь в орграфе D из вершины v в вершину w, где v № w, называется кратчайшим, если он имеет минимальную длину среди всех путей орграфа D из v и w. Аналогично определяется и кратчайший маршрут в графеG.
Утверждение. Любой кратчайший путь (маршрут) является простой цепью.
Рассмотрим задачу поиска минимального пути (маршрута). Введем некоторые обозначения. Пусть D=(V, X) – орграф,vОV, V1МV. Обозначим D(v)={wОV| (v, w)ОX} – образ вершины v; D-1(v)={wОV| (w,v)ОX} – прообраз вершины v; - образ множества вершин V1; - прообраз множества вершин V1. Пусть G=(V, X) – граф, vОV, V1МV. Обозначим G(v)={wОV|{v, w}ОX} – образ вершины v; - образ множества вершин V1.
Пусть D=(V, X) – орграф с n і 2 вершинами и v, w – заданные вершины из V, где v № w. Опишем алгоритм поиска кратчайшего пути из v в w в орграфе D.
Алгоритм фронта волны.
Шаг 1. Помечаем вершину v индексом 0. Затем помечаем вершины, принадлежащие образу вершины v, индексом 1. Множество вершин с индексом 1 обозначаем FW1(v). Полагаем k=1.
Шаг 2. Если FWk(v)=Ж или выполняется k=n-1, wПFWk(v), то вершина w не достижима из v, и работа алгоритма на этом заканчивается. В противном случае переходим к шагу 3.
Шаг 3. Если wПFWk(v), то переходим к шагу 4. В противном случае существует путь из v в w длины k, и этот путь является кратчайшим. Последовательность вершин
vw1w2…wk-1w, где
и есть искомый кратчайший путь из v и w. На этом работа алгоритма заканчивается.
Шаг 4. Помечаем индексом k+1 все непомеченные вершины, которые принадлежат образу множества вершин с индексом k. Множество вершин с индексом k+1 обозначаем FWk+1(v). Присваиваем k:=k+1 и переходим к шагу 2.
Замечание.Множество FWk(v) обычно называют фронтом волны k-го уровня.
Замечание. Вершины w1w2…wk-1 , вообще говоря, могут быть выделены неоднозначно. Эта неоднозначность соответствует случаям, когда существует несколько различных кратчайших путей из v и w.
Пример 81.
Определить кратчайший путь из v1 и v6 в орграфе D, заданном матрицей смежности (табл. 67).
Таблица 67
| v1 | v2 | v3 | v4 | v5 | v6 |
v1 | 0 | 0 | 0 | 1 | 1 | 0 |
v2 | 1 | 0 | 0 | 1 | 1 | 1 |
v3 | 1 | 1 | 0 | 1 | 1 | 1 |
v4 | 0 | 1 | 1 | 0 | 1 | 0 |
v5 | 1 | 1 | 1 | 1 | 0 | 0 |
v6 | 1 | 1 | 1 | 1 | 1 | 0 |
Решение.
Согласно алгоритму Фронта волны, последовательно определяем
FW1(v1) = {v4, v5};
FW2(v1) = D(FW1(v1))\{v1, v4, v5} = {v2, v3};
FW3(v1) = D(FW2(v1))\{v1, v2, v3, v4, v5} = {v6}.
Таким образом, v6 О FW3(v1), а значит, существует путь из v1 в v6 длины 3, и этот путь является кратчайшим. Найдем теперь кратчайший путь из v1 в v6. Определим множество
Выберем любую вершину из найденного множества, например вершину v3. Определим далее множество
Выберем любую вершину из найденного множества, например вершину v5. Тогда v1v5v3v6 – искомый кратчайший путь изv1 в v6 (длины 3) в орграфе D.
Yandex.RTB R-A-252273-3
- Универсальное множество: Универсальное множество (универсум) — множество, содержащее все мыслимые объекты. Упорядоченное множество — множество, на котором задано отношение порядка.
- Множество. Способы задания множеств (перечислением или списком, порождающей процедурой, описанием характеристического свойства). Привести примеры.
- Объединение более чем двух множеств. Пусть дано семейство множеств Тогда его объединением называется множество, состоящее из всех элементов всех множеств семейства:
- Алгебра множеств. Законы алгебры множеств. Доказать один из законов алгебры множеств.
- Множество. Мощность множества. Нахождение мощности объединения множеств (для двух множеств, для трех множеств, для n-множеств). Привести пример.
- Векторы. Прямое произведение множеств. Мощности прямого произведения множеств.
- Отношения. Основные понятия отношений (отношения; унарные, бинарные, n-местные отношения)
- Отношения. Бинарные отношения. Основные понятия (определение, обозначения, область определения, область значений, способы задания бинарных отношений). Привести примеры.
- Способы задания бинарных отношений
- Отношения. Свойства бинарных отношений (рефлексивность, антирефлексивность, симметричность, антисимметричность, транзитивность). Привести примеры.
- Переключательные (булевы) функции. Происхождение булевых функций.
- Булевы функции от одного аргумента. (Определение. Все булевы функции от одного аргумента).
- Булевы функции от двух аргументов (Определение булевой функции двух аргументов, тождественный ноль, тождественная единица, конъюнкция, штрих Шеффера, дизъюнкция, стрелка Пирса (функция Вебба)).
- Свойства дизъюнкции, конъюнкции и отрицания (теорема 4.3).
- Свойства эквиваленции, импликации и отрицания (теорема 4.4).
- Выражение одних булевых функций через другие (теорема 4.5).
- Булевы функции от n аргументов (определение, равенство булевых функций, суперпозиция булевых функций). Булевы функции от n переменных
- Булевы функции и формулы алгебры высказываний.
- Нормальные формы булевых функций.
- Применение булевых функций к релейно-контактной схеме. Две основные задачи теории релейно-контактных схем.
- Релейно-контактные схемы в эвм. Двоичный полусумматор. Одноразрядный двоичный сумматор.
- Графы. Основные понятия и определения (вершины, ребра, петли, кратность ребра, псевдограф, мультиграф, граф, орграф, неориентированный граф). Привести примеры.
- Графы. Матричное задание графов. Матрица смежности, матрица инцидентности. Привести примеры.
- Графы. Свойства матрицы смежности и инцидентности. Утверждение о числе всех путей (маршрутов) длины k из одной вершины в другую. Утверждение о наличие хотя бы одного контура.
- Графы. Связность. Компоненты связности. (Достижимость вершины, связный (сильно связный орграф) граф, слабо связанный, несвязанный, компонента связности (сильной связности)). Привести примеры.
- Графы. Матрицы связности. Утверждение о матрицах связности, матрицы достижимости, матрицы сильной связности.
- Графы. Поиск путей (маршрутов) с минимальным числом дуг (ребер). Алгоритм фронта волны.
- Графы. Минимальные пути (маршруты) в нагруженных орграфах (графах). Алгоритм Форда-Беллмана.