- •3.1.2. Задание диграфов с помощью множеств
- •Определения
- •3 .1.3. Полустепени диграфа
- •Определение
- •Определение
- •Обратный диграф d-1(V,e-1) – это диграф, у которого множества вершин совпадает с множеством вершин исходного диграфа, а дуги имеют обратную ориентацию.
- •Определение
- •Определение
- •Определение
- •2 Определения .2.3. Бинарные операции
- •3 Определение .3. Некоторые виды диграфов
- •Определение
- •3 .4. Изоморфизм диграфа
- •Замечание
- •Формулировки и определения класса сложности, алгоритмов нахождения изоморфизм, инвариантов с очевидными изменениями совпадают с формулировками и определениями для графов.
- •3.5. Дипрогулка, дитропа, дипуть, дицикл
- •Теорема
- •Класс сложности
- •2.6. Типы связности диграфа.
- •3.7. Достижимость
- •Матрица достижимости r(u,V) задается следующим образом:
- •Замечание
- •3 .8. Направленные деревья
- •3.10. Топологическое упорядочение
- •2.11. Подструктуры диграфа
- •2 .11.1. Конденсация
- •Класс сложности
- •2 .11.2. База и антибаза диграфа
- •2 .13. Гамильтоновы диграфы
Матрица достижимости r(u,V) задается следующим образом:
Р
ешение
проблемы достижимости диграфа требует
полиномиального времени, т.е. относится
к Р-классу.
Построить матрицу достижимости можно с помощью алгоритма BFS, выполнив его из каждой вершины диграфа D(V,E).
Сложность – О(n(n+m).
Начало BFS – вершина 1.
Исследуются все вершины {1,y} A. Из вершины 1 доступны вершины 2 и 4. Эти вершины заносятся в специальную запись
String={2,4}.
Затем исследуются все вершины {2,y} A. Из вершины 2 доступны вершины 3 и 5, которые заносятся в специальную запись:
String= {2,3,4,5}.
Исследуются все вершины {4,y} A. Из вершины 4 доступна только вершина 5. Т.к. такая вершина уже есть в специальном списке, то запись остается неизменной.
Следующими вершинами будут {3,y} A. Из вершины 3 доступна вершина 6. Эта вершина заносится в специальный список:
String={2,3,4,5,6}.
Рассматриваются вершины {5,y} A. Доступными будут вершины 2 и 6, которые есть в специальном списке.
Следующие вершины будут {6,y} A. Доступная вершина – вершина 5, которая имеется в специальном списке.
BFS из вершины 1 завершен. В результате выполнения BFS сформирована специальная запись
String={2,3,4,5,6},
которая показывает вершины, доступные из вершины 1.
Данная запись позволяет записать первую строку матрицы достижимости:
(0 1 1 1 1 1).
Если повторить BSF из всех оставшихся вершин диграфа, то результатом будет следующая матрица достижимости:
Матрицу смежности A(D) диграфа можно рассматривать как булевскую матрицу, т.к. элементы A(D) равны нулю или единице.
Матрица достижимости вычисляется следующим образом:
R(D) = A(D) A2(D) … An-1, |V|=n,
где - операция поэлементного булевского сложения строк матриц A(D),
A2(D), … , An-1;
Для облегчения вычисления степеней матриц A2(D), … , An-1 осуществляется с использованием булевских операций (умножение заменяется на , а сложение – на ).
Сложность алгоритма – О(n4).
Замечание
Правомочность использование булевских операций в данном алгоритме доказывается в целом ряде книг по диграфам.
Пусть [A(D)] – матрица смежности диграфа D=(V,E), n=|V|.
Пусть [Q0]=[A(D)].
Сложить (булевская операция
)
строку 1 матрицы [Q0]
к каждой строке [Q0],
которая имеет 1 в первом столбце. В
результате получится матрица [Q1].
Если первый столбец имеет только 0,
тогда [Q1]= [Q0].Сложить строку матрицы [Q1] к каждой строке этой матрицы, которая имеет 1 во втором столбце. В результате получится матрица [Q2]. Если втором столбце имеет только 0, тогда [Q2]= [Q3].
Для каждого j=3,…,n рассматривается матрица [Qj-1]. Сложить строку j к каждой строке матрицы [Qj-1], у которой j-ый столбец имеет 1. В результате получится матрица [Qj]. Если j-ый столбец имеет только 0, тогда [Qj]= [Qj-1].
Записать [R(D)]=[Qn].
С
ложность
алгоритма – O(n3).
[Q0]=[A(D)].
Первая строка [Q0] не имеет 1 в первом столбце. Поэтому [Q1]=[Q0].
Строка 2 суммируется со строками 1 и 5 (имеют 1 во втором столбце):
Строка 3 суммируется со строками 1,2 и 5:
Сложить строку 4 со строкой 1. Результат – [Q3]=[Q4].
Сложить строку 5 со строками 1,2,4,5 и 6:
Сложить строку 6 со всеми строками:
