Разновидности орграфов
Разделение орграфа на его части (суграф, подграф, частичный подграф) аналогично разделению неориентированного графа (см. задание №2), при том, что ребра заменены дугами. На рис. 3.2,а представлен подграф орграфа (рис. 3.1) без вершины v5.
Симметрическим называется орграф G=(V,U), в котором ( viV, vjV) (vi, vj) U (vj, vi) U, т.е. любые две смежные вершины vi и vj соединены двумя встречными дугами, при этом возможны петли при некоторых вершинах (рис. 3.2,б).
Антисимметрическим называется орграф G=(V,U), в котором ( viV, vjV) (vi, vj) U (vj, vi) U, т.е. пара смежных вершин может иметь только одну дугу, а петли отсутствуют (рис. 3.2,в).
Полным называется орграф G=(V,U), в котором ( viV, vjV) (vi, vj) U (vj, vi) U, т.е. любые две вершины соединены по крайней мере одной дугой, петли могут присутствовать (рис. 3.2,г).
Полным графом с петлями называется орграф G=(V,U), если (viV) Гvi=V, т.е. полный симметрический орграф с петлями при всех вершинах.
- 9 -
Обыкновенным называется орграф G=(V,U), если он не имеет параллельных дуг и петель (рис. 3.2,д).
а) u1 б) в)
v 1 v2 v1 v2 v1 v2
u2
u7 u4 u3
u6 v3
v 4 v3 v4 v4 v3
u5
г) v1 v2 д) v1 v2
v4 v3 v4 v3
Рис. 3.2. Орграф и его разновидности:
а) подграф ; б) симметрический; в) антисимметрический; г) полный; д) обыкновенный
Перемещения в орграфе
Перемещения по дугам графа обусловлено их ориентацией.
Путем длины n является последовательность дуг (u1,u2,...,un) через вершины (v0,v1,...,vn) таких, что ui=(vi-1, vi) для i=1,2,...,n , т.е. конец предыдущей дуги является началом следующей, при чем дуги могут повторяться . Например, для графа на рис. 3.2,а путь (u7,u1,u2,u1) проходит через вершины (v4,v1,v2,v1,v2).
Простой путь – это путь без повторяющихся дуг, например, простой путь (u7,u1,u2) через вершины (v4,v1,v2,v1) (рис. 3.2,а).
Элементарный путь – это путь, если все его вершины различны, например, элементарный путь (u7,u1,u3) через вершины (v4,v1,v2,v3) (рис. 3.2,а).
Контуром называется замкнутый путь, когда v0=vn , например, контур через (u2,u1,u3,u6, u7,u1) через вершины (v2,v1,v2,v3, v4,v1,v2) (рис. 3.2,а).
Простой контур – это контур с различными дугами, например, (u1,u3,u5,u6, u7) через вершины (v1,v2,v3,v3, v4,v1) (рис. 3.2а).
Элементарный контур – это контур с различными вершинами (кроме начальной и конечной), например, (u1,u3,u6,u7) через вершины (v1,v2,v3,v4,v1) (рис. 3.2,а).
Длиной пути =(u1,u2,...,un) называют число его дуг l(), например, на рис. 3.2,а 1=(u1,u2,u1,u3), l(1)=4; 2=(u1,u3,u5), l(2)=3. Для изолированной вершины длина пути равна нулю.
-10 -
Орграф называется циклическим (контурным), если он содержит, по крайней мере, один контур, и ациклическим (бесконтурным) в противном случае. Петля является специальным видом контура.
Ориентированные деревья
Ориентированным деревом (прадеревом), растущим из корня v0 , называется граф G=(V,Г), если:
1) ( !v0 V) Г-1{v0}= , т.е. существует единственная вершина v0 (корень дерева), в которую не заходит ни одна дуга (нет предшествующих вершин);
2) (vi V) | Г-1{vi} | =1 (vi v0), т.е. в каждую вершину (кроме v0 ) заходит только одна дуга (только одна вершина предшествует данной vi);
граф не содержит контуров.
Вершина vi называется висячей, если Гvi=, т.е. из vi не исходит дуга (нет следующей вершины).
Двоичным деревом называется прадерево, если (vi V) | Г{vi} | =0 или 2, т.е. из каждой вершины исходят только две дуги, если это не висячая вершина.
V2
v1 v3
v4
Рис. 3.3. Прадерево
Можно сказать, что прадеревом является орграф без контуров и петель, в котором из корня дерева в любую другую вершину можно придти только по одному элементарному пути. На рис. 3.3 представлен суграф в виде прадерева для графа рис. 3.2,а от вершины v2 в качестве корня.
ОБЩИЕ МЕТОДИЧЕСКИЕ УКАЗАНИЯ ПО ВЫПОЛНЕНИЮ
ЗАДАНИЙ 4 – 8
Цель работы: а) освоение математических описаний и методов решения поставленной задачи; б) освоение способов алгоритмизации и использования ЭВМ для решения подобных задач.
Содержание работы: а) представить математическое описание задачи; б) составить блок-схему машинного алгоритма задачи; в) написать и отладить программу на языке высокого уровня; г) представить отчет по решению задачи с результатами решения для тестового примера и исходного графа.
- 11 -
Задание 4. ОПРЕДЕЛЕНИЕ СУЩЕСТВОВАНИЯ ПУТЕЙ В ГРАФЕ
Методические указания к выполнению задания
Постановка задачи
Пусть N0={1,2,...} – множество натуральных чисел без нуля. Для графа G=(V,Г) путь положительной длины из вершины vi в vj существует, если
( p N0) vj Г p vi. (4.1)
Если рассматривать пути длины ноль, то (4.1) можно записать так: vj vi , т.е. vj входит в множество транзитивного замыкания вершины vi .
Метод решения задачи
Булева матрица смежности || S || орграфа G без параллельных дуг показывает, какие существуют пути длины 1 (рис. 4.1), при этом |V|=n.
||S||: |
|
|
|
|
|
|
|
A |
B |
C |
D |
E |
F |
A |
0 |
1 |
1 |
0 |
0 |
1 |
B |
1 |
1 |
1 |
1 |
0 |
1 |
C |
0 |
0 |
0 |
1 |
0 |
1 |
D |
0 |
0 |
0 |
0 |
1 |
0 |
E |
0 |
0 |
0 |
1 |
1 |
1 |
F |
0 |
0 |
0 |
0 |
0 |
0 |
A
F
B
E C
D
Рис. 4.1. Орграф и булева матрица смежности
Применим к матрице смежности ||S|| операции булева умножения и сложения. Пусть ||S||2 = ||S|| ||S|| , ||S||4 = ||S||2 ||S||2 , ... , , тогда
где i,j=1(1)n (изменение от 1 с шагом 1 до n); – булево умножение; – булево сложение.
Если , то ненулевые элементы матрицы показывают, какие вершины в графе связаны путями.
Пример.
На рис. 4.1 приведена матрица ||S|| , а на рис. 4.2 показаны матрицы ||S||2, ||S||4, ||S||8. Матрица ||S||2 показывает, какие существуют пути длиной не более 2 дуг. Поскольку ||S||4 = ||S||8 , постольку ||S||4 показывает, какие вершины в графе связаны путями.
- 12 -
||S||2: ||S||4: ||S||8:
|
A |
B |
C |
D |
E |
F |
|
|
A |
B |
C |
D |
E |
F |
|
|
A |
B |
C |
D |
E |
F |
A |
1 |
1 |
1 |
1 |
0 |
1 |
|
A |
1 |
1 |
1 |
1 |
1 |
1 |
|
A |
1 |
1 |
1 |
1 |
1 |
1 |
B |
1 |
1 |
1 |
1 |
1 |
1 |
|
B |
1 |
1 |
1 |
1 |
1 |
1 |
|
B |
1 |
1 |
1 |
1 |
1 |
1 |
C |
0 |
0 |
0 |
0 |
1 |
0 |
|
C |
0 |
0 |
0 |
1 |
1 |
1 |
|
C |
0 |
0 |
0 |
1 |
1 |
1 |
D |
0 |
0 |
0 |
1 |
1 |
1 |
|
D |
0 |
0 |
0 |
1 |
1 |
1 |
|
D |
0 |
0 |
0 |
1 |
1 |
1 |
E |
0 |
0 |
0 |
1 |
1 |
1 |
|
E |
0 |
0 |
0 |
1 |
1 |
1 |
|
E |
0 |
0 |
0 |
1 |
1 |
1 |
F |
0 |
0 |
0 |
0 |
0 |
0 |
|
F |
0 |
0 |
0 |
0 |
0 |
0 |
|
F |
0 |
0 |
0 |
0 |
0 |
0 |
Рис. 4.2. Булевы матрицы существования путей между вершинами графа
Описание машинного алгоритма задачи
Возможный вариант алгоритма задачи определения существования путей в графе может включать следующие шаги:
Ввести булеву матрицу смежности (S) и ее размер (n).
2.Скопировать матрицу S в рабочую матрицу R (R=S), сбросить счетчик длин путей (L=0).
3. С помощью процедуры булевого умножения матриц вычислить матрицу R1=R R.
4. В циклах по строкам (i) и столбцам (j) матрицы поэлементно сравнивать R1ij и Rij. Если R1ij Rij , то скопировать R=R1, увеличить L и перейти к шагу 3, иначе вывести R и L как результат решения задачи.
Задание № 5. ПЕРЕСЧЕТ ДЛИН ПУТЕЙ
Методические указания к выполнению работы
Постановка задачи
В отличие от предыдущего задания, где лишь констатировалось существование путей между вершинами графа, в данном задании вычисляются конкретные длины путей (как число дуг) между каждой парой вершин графа.
Метод решения задачи
Пересчет различных путей длины r осуществляется получением степеней исходной матрицы смежности с помощью операции алгебраического умножения двух матриц.
||S|| – дает число путей длины 1 между каждой парой вершин (vi,vj);
||S||2 = ||S||||S|| – дает число путей длины 2 между каждой парой вершин (vi,vj);
||S||r = ||S||r-1||S|| – дает число путей длины r между каждой парой вершин (vi,vj), где
- 13 -
Пример.
Для графа на рис. 4.1 матрицы на рис. 5.1 дают число путей длины соответственно 1,2,3,4.
||S||: ||S||2:
|
|
|
A |
B |
C |
D |
E |
F |
|
|
|
A |
B |
C |
D |
E |
F |
|
|
A |
0 |
1 |
1 |
0 |
0 |
1 |
|
|
A |
1 |
1 |
1 |
2 |
0 |
2 |
|
|
B |
1 |
1 |
1 |
1 |
0 |
1 |
|
|
B |
1 |
2 |
2 |
2 |
1 |
3 |
|
|
C |
0 |
0 |
0 |
1 |
0 |
1 |
|
|
C |
0 |
0 |
0 |
0 |
1 |
0 |
|
|
D |
0 |
0 |
0 |
0 |
1 |
0 |
|
|
D |
0 |
0 |
0 |
1 |
1 |
1 |
|
|
E |
0 |
0 |
0 |
1 |
1 |
1 |
|
|
E |
0 |
0 |
0 |
1 |
2 |
1 |
|
|
F |
0 |
0 |
0 |
0 |
0 |
0 |
|
|
F |
0 |
0 |
0 |
0 |
0 |
0 |
||S||3: ||S||4:
|
|
|
A |
B |
C |
D |
E |
F |
|
|
|
A |
B |
C |
D |
E |
F |
|
|
A |
1 |
2 |
2 |
2 |
2 |
3 |
|
|
A |
2 |
3 |
3 |
6 |
4 |
7 |
|
|
B |
2 |
3 |
3 |
5 |
3 |
6 |
|
|
B |
3 |
5 |
5 |
9 |
8 |
11 |
|
|
C |
0 |
0 |
0 |
1 |
1 |
1 |
|
|
C |
0 |
0 |
0 |
1 |
2 |
1 |
|
|
D |
0 |
0 |
0 |
1 |
2 |
1 |
|
|
D |
0 |
0 |
0 |
2 |
3 |
2 |
|
|
E |
0 |
0 |
0 |
2 |
3 |
2 |
|
|
E |
0 |
0 |
0 |
3 |
5 |
3 |
|
|
F |
0 |
0 |
0 |
0 |
0 |
0 |
|
|
F |
0 |
0 |
0 |
0 |
0 |
0 |
Рис. 5.1. Матрицы пересчета длин путей между вершинами графа
Описание машинного алгоритма
Алгоритм пересчета длин путей можно описать следующим образом:
1. Ввести матрицу смежности (S), ее размер (n) и счетчик длин путей (L), полученный в задании 4.
2. В цикле k=2(1)L копировать S в рабочую матрицу R, использовать процедуру умножения двух матриц и выводить матрицы Sk путей длины k.
Задание № 6. ПОИСК ТРАНЗИТИВНОГО ЗАМЫКАНИЯ
Методические указания к выполнению задания
Постановка задачи
Пусть задан произвольный граф G=(V,U). Требуется построить такой путь, соединяющий две заданные вершины v и w, который содержит наименьшее число дуг (это путь минимальной длины, если считать длины путей одинаковыми, т.е. элементарный путь в графе).
Метод решения задачи
Рассмотрим шаги алгоритма решения этой задачи, который проиллюстрирован на рис. 6.1.
- 14 -
Прямой ход.
1. Присвоить вершине v метку 0.
2. Если x v и x Гv, то присвоить каждой такой вершине метку 1 (это вершины-концы дуг, исходящих от вершины v, при этом исключаются петли).
3. Пусть X(m) (m=0,1,2,...) – множество вершин, имеющих метку m. Вершинам X(m+1)={ x ГX(m), x X(k) при k m } присвоить метки m+1 (это вершины-концы дуг, исходящих из вершин множества X(m), при этом исключаются контуры).
4. Процесс присвоения вершинам меток прекратить, как только вершина w получит некоторую метку n (w X(n)).
Обратный ход.
5. Рассмотреть вершины , , ... , такие, что
X(n-1) , w Г ,
X(n-2) , Г ,
...
X(0) , Г .
Путь = ( v= , , ... , , , w ) дает решение задачи.
X(0) X(1) X(m) X(m+1) X(n-2) X(n-1) X(n)
x2(1)
... ...
v(0) x1(1) w(n)
Рис. 6.1. Процесс поиска пути между вершинами v и w
Замечание. Если на некотором шаге невозможно присвоение метки m+1 вершинам, поскольку множество ГX(m) пусто и вершина w не получила метки, то это означает, что в графе G не существует никакого пути, соединяющего вершину v с вершиной w.
Рассмотренный алгоритм описывает процесс нахождения транзитивного замыкания , отображающего дерево поиска кратчайших простых (т.е. элементарных) путей, исходящих от любой вершины v как от корня дерева.
Аналогично, может быть описан процесс нахождения обратного транзитивного замыкания , т.е. множества вершин, из которых можно попасть в вершину v по кратчайшему пути.
Пример.
Для графа G на рис. 6.2,а показаны метки вершин, начиная с вершины B,
- 15 -
– положительные для транзитивного замыкания и отрицательные для обратного транзитивного замыкания .
||
S ||:
0
0
0
1
0
A
3
0
0
0
1
0
B
0
1
1
0
0
1
C
2
0
1
1
1
1
D
1
0
0
0
0
1
E
2
A
B
C
D
E
2
0
1
1
B(0) D(1,-1)
A(3,-2) E(2)
Рис. 6.2. Пути в графе с наименьшим числом дуг для вершины В:
а) граф с метками и ; б) матрица смежности графа замыкания и
Принципы построения машинного алгоритма поиска транзитивного и обратного транзитивного замыканий рассмотрим на примере получения и на основе анализа матрицы смежности графа (рис. 6.2,б).
Справа от матрицы смежности ||S|| находится вектор-столбец для , а внизу – вектор-строка для . Рассмотрим порядок заполнения столбца .
1. В позицию В вектора-столбца помещаем 0 (начальная вершина).
2. В строке В матрицы S единица находится в позициях, соответствующих вершинам, в которые есть путь длины 1, поэтому в позицию D вектора-столбца записываем 1.
3. Строка D матрицы содержит 1 в позициях вершин, которые отстоят от D на одну дугу, а значит удалены от вершины В на 2 дуги.
Если в позициях столбца , соответствующих единичным позициям в строке D матрицы, уже есть числа, то они не изменяются (например, в позициях B и D), а в пустые позиции C и Е помещаем число 2. Тем самым исключаются петли (например, в вершине D) и контуры (например, встречная дуга (D,B)).
4. Повторяем пункт 3 для вершин С, Е и других, увеличивая длину пути на 1, до тех пор пока это возможно.
Аналогично действуем при заполнении вектора , но при этом необходимо транспонировать матрицу смежности. Числа, получаемые в векторе , дают минимальные длины путей (числа дуг) для тех вершин, из которых можно попасть в вершину В. Например, из вершины Е нельзя попасть в вершину В никаким путем.
Описание машинного алгоритма
Машинный алгоритм должен обеспечивать поиск транзитивного замыкания (вектор Z) для любой начальной вершины (К) графа. Возможный вариант
- 16 -
алгоритма может включать следующие основные шаги:
1. Ввод матрицы смежности (S), ее размера (n) и номера начальной вер-
шины (К).
Установка начального значения вектора Z (i=1(1)n, Zi = –1).
Установка ZK=0 (начальная вершина), L=0 (счетчик длины пути).
Начало цикла анализа необработанных вершин:
Установка C=n-1 (счетчик необработанных вершин).
Цикл i=0(1)n-1 (заполнение вектора Z):
{ если Zi L (вершина не удалена на длину L), то учет такой вершины (С=С-1) и продолжение цикла i,
иначе:
7. Цикл j=0(1)n-1 (по позициям строки i матрицы S ):
{если Sij = 1 и Zj 0 (вершина j входит в замыкание и еще не включена) , то Zj =L+1 (занесение длины пути до вершины j в Zj ).
8. } (конец цикла j )
9. } (конец цикла i )
10. Изменение счетчика длины пути (L=L+1).
11. Пока С 0 (не все вершины обработаны), перейти на пункт 5.
12. Вывод результата: Z.
Задание № 7. ПОИСК КРАТЧАЙШИХ ПУТЕЙ В ГРАФЕ
Методические указания к выполнению задания
В задании № 6 мы считали, что длины всех дуг графа были равны, например, L(u)=1. Рассмотрим теперь случай, когда каждой дуге u поставлено в соответствие число L(u) 0, называемое длиной дуги. В зависимости от конкретного приложения это число может быть мерой физического расстояния, времени, стоимости или другого важного параметра. Длиной пути называется сумма длин дуг, входящих в :
.
Отметим две важнейшие характеристики длины, существенные для дальнейшего рассмотрения.
1. Длина должна быть аддитивна (длина совокупности дуг равна сумме длин отдельных дуг).
2. Длина должна использоваться в качестве целевой функции, которую необходимо оптимизировать (минимизировать или максимизировать) при ограничениях на допустимые множества дуг.
- 17 -
Для графов с контурами можно говорить только о задаче отыскания минимальных путей графа, а в ациклическом графе можно искать как минимальный, так и максимальный путь между вершинами графа.
Постановка задачи поиска минимальных путей в орграфе
Для произвольного орграфа G(V,U), где для u U сопоставлено число L(u) 0 (длина дуги), необходимо найти путь минимальной длины, соединяющий вершину v0 с вершиной vn.
Метод решения задачи
Существует несколько методов решения этой задачи, среди которых рассмотрим алгоритм Форда, описываемый следующими правилами.
Прямой ход.
1.Переименовать, если это необходимо, вершины графа G так, чтобы исходная вершина получила номер 0.
2. Присвоить каждой вершине vi метку i так, чтобы 0=0 , i = при i0 (под символом здесь следует понимать достаточно большое положительное число).
3. Найти такую дугу (vi , vj), для которой j – i L(vi , vj). У вершины vj заменить метку j на новую метку
j = i + L(vi , vj) , если j j .
4. Применять правило 3 до тех пор, пока для каждой дуги (vi , vj) не станет справедливым неравенство j – i L(vi , vj).
Обратный ход.
В множестве Г-1vn найти такую вершину , что
n = + L( , vn) или n – = L( , vn) .
Аналогично, в множестве Г-1 найти такую вершину , чтобы было
справедливо равенство
= + L( , ) или - = L( , ) и т.д.
После некоторого числа шагов вершина совпадет с вершиной v0.
По условию задачи L(vi , vj) 0 , поэтому метки , , , ... образуют строго убывающую последовательность неотрицательных чисел, отличающихся друг от друга на величину, большую или равную длине кратчайшей дуги графа. Следовательно, при некотором k получим = 0, = v0 . Вершина v0 выделена тем, что ей в силу правила 2 с самого начала присвоена метка = 0 и в формировании этой метки не участвуют дуги графа.
Путь = ( v0= , ,..., , , vn ) – минимальный и его длина L() = n .
Пример.
На рис.7.1 представлен орграф с разными длинами дуг и проиллюстрирован (в квадратных скобках) процесс изменения меток при вершинах графа. Вы-
- 18 -
делены 3 кратчайших пути между вершинами v0 и v6 : 1 = (v0 , v1 , v4 , v6) , 2 = (v0 , v3 , v4 , v6) , 3 = (v0 , v3 , v5 , v6) . Минимальная длина пути Lmin= 19, что равно последней метке 6 .
v1[ , 7] 4 v4[ , 15,11]
7 15 2 8
v0[0] 9 v3[ , 9] 16 v6[ , 25,19]
7 8 5 3 4 2 6 4
v2[ , 8] 6 v5[ , 14,13]
Рис. 7.1. Орграф с длинами дуг и метками вершин
На рис. 7.2 представлены матрицы смежности и длин дуг этого орграфа.
|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
|
|
|
|
|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
|
|
|
|
0 |
0 |
7 |
8 |
9 |
15 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
|
|
|
|
1 |
0 |
0 |
0 |
0 |
4 |
0 |
0 |
2 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
|
|
|
|
2 |
7 |
0 |
0 |
3 |
0 |
6 |
0 |
3 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
|
|
|
|
3 |
5 |
0 |
0 |
0 |
2 |
4 |
16 |
4 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
|
|
|
|
4 |
0 |
0 |
0 |
0 |
0 |
0 |
8 |
5 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
|
|
|
|
5 |
0 |
0 |
0 |
2 |
0 |
0 |
6 |
6 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
|
|
|
|
6 |
0 |
0 |
0 |
0 |
0 |
4 |
0 |
Рис. 7.2. Матрицы смежности и длин дуг графа
Матрица длин дуг графа по сути включает всю информацию о графе, делая матрицу смежности излишней для данной задачи.
Описание машинного алгоритма
Построение машинного алгоритма основано на анализе матрицы длин дуг графа ( Lnn , n – число вершин графа), постепенном заполнении вектора меток вершин (М) новыми метками и получении матрицы кратчайших путей (K nn).
В результате вектор меток (М) отражает минимальные расстояния между начальной вершиной v0 и остальными вершинами. Матрица кратчайших путей (K) отражает информацию о подграфе минимальных путей исходного графа между начальной вершиной v0 и конечной вершиной vn. Поскольку задача может иметь несколько вариантов решения, то возможный алгоритм может включать следующие основные шаги.
- 19 -
Прямой ход.
1. Ввод матрицы L и ее размера n.
2. Установка начальных значений: 1) вектора меток: M0=0; i=1(1)n–1, Mi=max, где max – максимально допустимое число данного типа; 2) вспомогательного вектора вершин, входящих в критические пути: V0=Vn-1=1; i=1(1)n–2, Vi=0.
3. Реализация правил 3 и 4 алгоритма Форда:
циклы i=0(1)n–1, j=0(1)n–1 (поиск смежных вершин графа по строкам i и столбцам j и обновление меток вершин): если Li j 0 и Mj – Mi Li j , то вычисление новой метки (MN) вершины j и, если необходимо, замена старой метки (Mj = MN).
Вывод вектора меток М.
Обратный ход.
5. Реализация правила 5 алгоритма Форда: цикл j=n–1(–1)1 (по столбцам матрицы L – по вершинам, начиная с последней), цикл i=0(1)n–1 (по строкам – для поиска предшествующих вершин i , смежных с вершиной j ): если Li j 0 и Mj – Mi = Li j , то заполнение Ki j = Li j и включение вершины i в вектор Vi = 1, иначе Ki j = 0.
6. Исключение из матрицы K (подграфа кратчайших путей) "висячих" вершин, не вошедших в вектор V: цикл по вершинам j=1(1)n–2: если Vj = 0 , то в цикле i=0(1)n–1 установить Ki j = 0 ( т.е. подавить связи вершины j с предшествующими вершинами). 7. Вывод матрицы K.
По матрице K необходимо построить для исходного орграфа подграф кратчайших путей от вершины v0 к vn .
Задание № 8. ПОИСК КОНТУРОВ В ГРАФЕ
Методические указания к выполнению задания
Постановка задачи
В предыдущих задачах контуры в графе исключались из рассмотрения. В то же время существует большой класс задач, когда именно контуры, как подмножества эквивалентных объектов, являются целью поиска.
Орграфы и бинарные отношения
Пусть V – множество объектов, подлежащих исследованию путем их по парного (бинарного) сравнения. Множество всех упорядоченных пар v, v V есть декартово произведение VV. Подмножество B VV называется бинарным отношением, т.е. (v, v ) B.
- 20 -
Существует соответствие между бинарным отношением и орграфом, при этом вершины графа соответствуют объектам сравнения vi V , а дуги отображают бинарное отношение между объектами.
Бинарное отношение называется : рефлексивным, если (v, v ) B (граф с петлями); симметричным, если (v, v ) B (v, v ) B (встречные дуги между вершинами); транзитивным, если (v, v ) B и (v, v ) B (v, v ) B (если три вершины последовательно связаны дугами, то имеется дуга между 1 и 3-й вершинами).
Транзитивное, рефлексивное и симметричное отношение, называемое эквивалентностью, отражается на графе G контурами и порождает классы (подмножества) эквивалентных объектов Ki V.