Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 3000478.doc
Скачиваний:
42
Добавлен:
30.04.2022
Размер:
6.21 Mб
Скачать

1.8. Определение экстремальных путей на графах.

Операции Шимбелла

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

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

(1)

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

, (2)

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

Метод Шимбелла.

С помощью операций Шимбелла длины кратчайших или максимальных путей между всеми вершинами определяются возведением в степень весовой матрицы Ω, содержащей веса рёбер. Например, элемент матрицы Ω2 вычисляют следующим образом:

Аналогично находят элементы k–ой степени матрицы Ω.

Рис. 23

Пример. Составим для данного графа матрицу весов. Она определяет все маршруты, состоящие из одного ребра.

Найдём все кратчайшие пути из двух рёбер, для этого возведём эту матрицу в квадрат с учётом операций Шимбелла (min – кратчайшие пути).

Например,

Аналогично, длинами кратчайших путей из трёх рёбер будут элементы матрицы

и т.д. Например, длина кратчайшего пути из трёх рёбер из вершины D в вершину С равна 7. Это путь DBAC.

1.9. Порядковая функция орграфа без контуров.

Функция Гранди.

Рассмотрим орграф D = (V,X), не содержащий контуров, и определим множества V0, V1, , Vr:

(1)

           

где r – наименьшее число, такое, что

Множества V0, V1, , Vr называются уровнями орграфа D.

Функция O(v), определённая на множестве вершин V орграфа без контуров D = (V,X) и ставящая в соответствие каждой вершине номер уровня, которому она принадлежит, называется порядковой функцией орграфа D.

Пример 1. Разобьём орграф D, изображённый на рис. 24, на уровни и определим порядковую функцию O(v).

Решение. Согласно (1) имеем

Определив множества V0, V1, V2, V3, найдём значения порядковой функции O(v), (на рис. 24 они указаны при вершинах).

Группа 107

Рис. 24

Алгоритм нахождения уровней орграфа D = (V,X) без контуров

Шаг 1. Выпишем матрицу смежности A(D). Образуем под матрицей A(D) строку в i-ом месте которой укажем число единиц в i-ой строке матрицы A(D). Уровень V0 образуют вершины, которым в строке соответствует число 0. Если V = =V0, то задача решена и V0 – единственный уровень графа D. В противном случае переходим к шагу 2.

Шаг 2. Образуем под строкой строку ставя под каждым нулём строки символ , а на любом другом i-ом месте – число единиц в i-ой строке матрицы A(D), не учитывая единицы в столбцах, находящихся над символами в строке . Уровень V1 образуют вершины, которым в строке соответствует число 0. Полагаем j = 1.

Шаг 3. Пусть при некотором уже построены строки , , , по которым получены множества V0, , Vj. Если строка состоит из нулей и символов , то задача решена и при r = j V0, , Vr – уровни орграфа D. В противном случае переходим к шагу 4.

Шаг 4. Образуем под строкой строку , ставя под каждым нулём и символом строки символ , а на любом другом i-ом месте – число единиц в i-ой строке матрицы A(D), не учитывая единицы в столбцах, находящихся над символами в строке . Уровень Vj+1 образуют вершины, которым в строке соответствует число 0. Присваиваем j := j+1 и переходим к шагу 3.

Пример 2. Применив этот алгоритм, разобьём орграф D, описанный в примере 1 (см. рис. 24), на уровни.

Решение. Матрица смежности орграфа D, а также строки , , , , являющиеся результатом работы данного алгоритма, приведены в табл. 3. Из таблицы следует, что .

Таблица 3

v1

v2

v3

v4

v5

v6

v1

0

0

0

0

0

1

v2

0

0

1

1

0

1

v3

1

0

0

1

1

0

v4

0

0

0

0

0

0

v5

0

0

0

0

0

1

v6

0

0

0

0

0

0

1

3

3

0

1

0

0

1

2

0

1

0

Рассмотрим орграф D = (V,X). Функция g(v), ставящая в соответствие каждой вершине целое число , называется функцией Гранди для орграфа D, если в каждой вершине число g(v) является минимальным из всех целых неотрицательных чисел, не принадлежащих множеству , и g(v) = 0 при . .

Алгоритм определения функции Гранди для орграфов без контуров.

Разобьём множество вершин V орграфа D на уровни V0, , Vr. По определению функции Гранди

(2)

Значения функции Гранди на каждом уровне Vi, где , однозначно находятся по её значениям на предыдущих уровнях V0, , Vi-1 (поскольку а, следовательно, исходя из (2), её можно однозначно определить на всех последующих уровнях.

ПГруппа 80 ример 3. Найдём функцию Гранди для орграфа, описанного в примере 1. Разобьём множество вершин орграфа D на уровни: . С учётом (2) получаем g(v4) = g(v6) = 0, g(v1) = g(v5) = 1. Далее, для вершины имеем D(v3) ={ v1, v4, v5}, где g(v4) = 0, g(v1) = g(v5) = 1, а, следовательно, g(v3) = 2. Соответственно для вершины получаем D(v2) ={ v3, v4, v6}, где g(v4) = g(v6)= 0, g(v3) = 2, а, следовательно, g(v2) = 1. На рис. 25 приведено изображение орграфа D, около каждой вершины которого указано значение функции Гранди.

Рис. 25