Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Волновой алгоритм построения кратчайшего пути для невзвешенного графа



0. Вершина Xн помечается 0, остальные вершины считаются непомеченными.

1. i=i+1. Помечаются индексом i все непомеченные ранее вершины, в которых есть дуги от помеченных вершин. Если помечена вершина Хк, то выполняется п.2. Иначе, если в текущем значении индекса i оказались помеченными какие-либо вершины, то выполняется п.1. Иначе делается вывод, что пути из вершины Хн в Хк нет.

2. Обратным проходом по дугам начиная от вершины Хк выделяются те дуги, которые инцидентны выделенным вершинам и разность между весами которых равна 1.

3. При движении от вершины Хн по выделенным дугам оказывается построены все кратчайшие пути к вершине Хк.

Волновой алгоритм построения кратчайшего пути для взвешенного графа

1. Вершина Хн получает вес V = 0, ее номер вводится в массив М номеров
вершин, изменивших вес. Остальные вершины Xi получают вес Vi = ∞, их номера не
попадают в массив М.

2. Если массив M пуст, то выполняется п. 3, иначе выбирается с исключением
из него очередная вершина Xi, и пересчитываются веса вершин, принадлежащих исходу G(Xi) вершины Xi: " Xi Î G (Xi)(Vj = min (Vj Vi + lij)). Если вес Vj уменьшается, то номер j включается в М. Снова выполняется п. 2.

3. Если вес Vi = ∞, то делается вывод, что пути из вершины Хн к вершине Xk
нет, иначе выполняется процедура выделения дуг, такая же, как в волновом алгоритме
для невзвешенного графа, за исключением того, что разность весов вершин Xi и Xj должна быть равна lij.

4. После выделения дуг строятся кратчайшие пути, длины которых равны Vk.
Пример

 

 

1. Vi = V1 = 0, V2 = V3 = V4 = V3 = V6 = ∞, M = {1}

2. M ≠ 0, i = 1, M = 0, G(X1) = {X2, X3}; V2 = min (∞, 0 + 1)=1; M ={2}

Vi = min (∞, 0 + 4) = 4; M ={2, 3};

2. M ≠ 0, i = 2, M = {3}, G(X2) = {X3, X4}; V3 = min (4, 1 + 2)=3; M = {3}; V4 = min (∞, 1 + 5) = 6; M={3, 4};

2. M ≠ 0, i = 3, M = {4}, G(X3) = {X4, X5}; V4 = min (6, 3 + 2)=5; M = {4}; V5 = min (∞, 3 + 4) = 7; M={4, 5};

2. M ≠ 0, i = 4, M = {5}, G(X4) = {X5, X6}; V5 = min (7, 5 + 1)=6; M = {5}; V6 = min (∞, 5 + 4) = 9; M={5, 6};

2. M ≠ 0, i = 5, M = {6}, G(X6) = {X6}; V6 = min (9, 6 + 2)=8; M = {6};

2. M ≠ 0, i = 6, M = {0}, G(6) = {0};

3. G-1(X6) = {X4, X5}; Vx6 - Vx5 = 2; l6 = 2, * Vx6 - Vx4 = 3, l4, 6 = 4.

G-1(X5) = {X3, X4}; Vx5 - Vx4 = 1; l4, 5 = 1, * Vx5 - Vx3 = 3, l5, 3 = 4.

G-1(X4) = {X2, X3}; Vx4 - Vx3 = 2; l3, 4 = 2, * Vx4 - Vx2 = 4, l2, 4 = 5.

G-1(X3) = {X1, X2}; Vx3 - Vx2 = 2; l2, 3 = 2, * Vx3 - Vx1 = 3, l1, 3 = 4.

G-1(X2) = {X1}; Vx2 - Vx1 = 1; l1 = 1, *

Построен кратчайший путь (Xн, Xк) длиной 8:

(Xн = Х1, Х2)( Х2, Х3)( Х3, Х4)( Х4, Х5)( Х5, Х6 = Хк).

Процесс решения можно оформить в виде таблицы:

Х1 Х2 Х3 Х4 Х5 Х6 М
0 1
0 1 4 2, 3
0 1 3 6 3, 4
0 1 3 5 7 4, 5
0 1 3 5 6 9 5, 6
0 1 3 5 6 8 6
0 1 3 5 6 8 0

 
 

Волновой алгоритм построения длиннейшего пути во взвешенном графе

 

Используется волновой алгоритм построения кратчайшего пути для взвешенного графа со следующим отличием:

1. В первом пункте волнового алгоритма нужно присвоить всем вершинам вес 0,
тогда автоматически будут строиться длиннейшие пути.

2. Во втором пункте алгоритма Vj = max (Vj, Vi + lij)

Х1 Х2 Х3 Х4 Х5 Х6 М
0 0 0 0 0 0 1
0 1 4 0 0 0 2, 3
0 1 4 6 0 0 3, 4
0 1 4 6 8 0 4, 5
0 1 4 6 8 10 5, 6
0 1 4 6 8 10 6
0 1 4 6 8 10 0

 

Обратный ход:

 

 

Построены три длиннейшие пути:

1. (Х1, Х2)( Х2, Х4)( Х4, Х6)

2. (Х1, Х3)( Х3, Х4)( Х4, Х6)

3. (Х1, Х3)( Х3, Х5)( Х5, Х6)

Алгоритм нахождения компонент связанности

Вершины Хi и Xj слабо связны, если существует путь (Хi и Xj) в графе (G, X).

Вершины Xi и Xj сильно связаны, если существуют пути (Хi и Xj)и (Xj и Хi) в графе (G, X).

Если в графе нет путей Хi и Xjи нет обратного пути из Хj в Xi, то вершины Хi и Xj не связаны.

Для неориентированною графа имеет смысл только понятие сильной связности. Отношение связности рефлексивно, симметрично, транзитивно - является отношением эквивалентности и однозначно разбивает множество вершим графа на компоненты связности: максимальные подмножества сильно связанных между собой вершин.

Пример 3.2.1

 
 

 

 


Компоненты связности: 1) {x1, x2, x3, x4}; 2) {x5, x6, x7}; 3) {x8}.

Между компонентами - только слабая связность: есть пути из вершин компоненты 1) в вершины компоненты 2) и 3) и из вершин компоненты 2) в 3).

Алгоритм построения компонент связности в неориентированном графе

1. i=0. Все вершины графа не отмечены.

2. i=i+1. Выбираем очередную неотмеченною вершину, отмечаем ее и все
связанные с нею вершины значением индекса i с помощью распространения волны
отметок по ребрам, идущим от уже отмеченных индексом i вершин. Таким образом,
выделяется i компонента связности. Если есть еще неотмеченные вершины, то
выполняется п. 2, иначе выделение компонент связности закончено.

 
 

Пример 3.2.2

1.i = 0

2. i = 1. Отмечаем индексом i =1 вершину Х1, и связанные с ней вершины

Х3, Х7, Х9. Получена первая компонента связности: 1{ Х1, Х3, Х7, Х9}.

3. i =2. Отметим индексом i = 2 вершину Х4 и вершины Х6, Х10. Построена

вторая компонента связности: 2{ Х2, Х6, Х10)

4. i=3 Отмечаются индексом i = 3 вершины X4 и Х8. Построена третья

компонента связности: 3{X4, X8}.

5. i=4. Отметим индексом i = 4 вершину Х5, которая формирует четвертую компоненту связности -{X5}.

Дерево. Остов.


Деревом называется конечный связный граф без циклов. Из свойств связности и отсутствия циклов следует, что у дерева количество компонент связности р =1 и цикломатическое число g = 0 = m – n + 1, отсюда следует что m = n -1; т.е. число ребер в дереве на единицу меньше числа вершин. Ниже приведены примеры деревьев.


Рис.3

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

 
 

В общем случае для графа можно построить несколько остовов. Для приведенного ниже графа построен один из возможных вариантов остова.

 

 
 

Для несвязного графа рассматриваются отдельные его компоненты. Остов такого графа – совокупность его компонент.


Поделиться:



Популярное:

  1. Cодержательные и организационные особенности построения курса «Основы технологии интеллектуальной адаптации коренных народов северных регионов»
  2. Dermal mask, Коллагеновая тканевая маска для лица, 23гр -
  3. I. Его руки подняты для благословения.
  4. I. Путивль.-Торжественная встреча патриарха.-Подношения.-Греческие монахи.
  5. I. Смотрите на Него, приготовляющего для Себя престол.
  6. I. ТИТУЛ «ИНТЕРНАЦИОНАЛЬНЫЙ ЧЕМПИОН ПО КРАСОТЕ» (C.I.B.) ДЛЯ ПОРОД С ОБЯЗАТЕЛЬНЫМИ И НЕОБЯЗАТЕЛЬНЫМИ РАБОЧИМИ ИСПЫТАНИЯМИ СОГЛАСНО НОМЕНКЛАТУРЕ FCI.
  7. II. Извлеки урок для совести.
  8. II. Путивль. – Иностранцы в России. – Отношение к ним русских. – Сербский митрополит. – Посещение патриарха воеводой. – Описание города Путивля, крепости и церкви.
  9. II. ТЕКСТЫ ДЛЯ РАБОТЫ НАД ГОЛОСОМ.
  10. III. БАЗИСНЫЕ РАЗДЕЛЫ ДЛЯ ПОВТОРЕНИЯ
  11. III. Реакции, характерные только для альдегидов
  12. IV. Выезд из Путивля. – Состояние дорог. – Севск. – Воевода. – Угощение им патриарха. – Дальнейший путь. – Земледельческие орудия. – Посевы.


Последнее изменение этой страницы: 2016-07-14; Просмотров: 2629; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.028 с.)
Главная | Случайная страница | Обратная связь