Вятский государственный университет
Опубликован: 07.04.2008 | Доступ: свободный | Студентов: 2635 / 494 | Оценка: 4.31 / 3.94 | Длительность: 06:04:00
Специальности: Программист, Математик
Лекция 4:

Достижимость в графах

< Лекция 3 || Лекция 4: 12 || Лекция 5 >

Нахождение множества вершин, входящих в путь

Если необходимо узнать о вершинах графа, входящих в эти пути, то следует вспомнить определения прямого и обратного транзитивных замыканий. Так как T+(xi) – это множество вершин, в которые есть пути из вершины xi, а Tj) множество вершин, из которых есть пути в xj, то T^{+}(x_{i}) \cap  T^{–}(x_{j})множество вершин, каждая из которых принадлежит, по крайней мере, одному пути, идущему от xi к xj. Эти вершины называются существенными или неотъемлемыми относительно двух концевых вершин xi и xj. Все остальные вершины графа называются несущественными или избыточными, поскольку их удаление не влияет на пути от xi к xj.

Орграф

Рис. 4.2. Орграф

Так для графа на рис. 4.2 нахождение вершин, входящих в путь, например из вершины х2 в вершину х4, сводится к нахождению Т^{+}( х_{2}) =\{ х_{2}, x_{3}, х_{4}, х_{5}, х_{6}\} ,   Т^{-}( х_{4}) =\{  х_{1}, х_{2}, x_{3}, х_{4}, х_{5}\} , \ и \ их \ пересечения \ T^{+}(х_{2}) \cap  T^{–}(х_{4}) =\{   х_{2}, x_{3}, х_{4}, х_{5}\}.

Матричный метод нахождения путей в графах

Матрица смежности полностью определяет структуру графа. Возведем матрицу смежности в квадрат по правилам математики. Каждый элемент матрицы А2 определяется по формуле

a^{(2)}_{ik}=  \sum ^{n}_{j=1}a_{ij}a_{jk}

Слагаемое в формуле равно 1 тогда и только тогда, когда оба числа aij и ajk равны 1, в противном случае оно равно 0. Поскольку из равенства aij = ajk = 1 следует существование пути длины 2 из вершины xi в вершину хk , проходящего через вершину xj , то ( i -й, k -й) элемент матрицы А2 равен числу путей длины 2, идущих из xi в хk .

На таблице 4.1a представлена матрица смежности графа, изображенного на рис. 4.2. Результат возведения матрицы смежности в квадрат А2 показан на таблице 4.1б.

Таблица 4.1а.
X1 X2 X3 X4 X5 X6
X1 0 1 0 0 0 1
X2 0 0 0 0 1 1
A= X3 0 1 0 0 1 1
X4 0 0 1 0 0 0
X5 0 0 0 1 0 1
X6 0 0 0 0 0 0
Таблица 4.1б.
X1 X2 X3 X4 X5 X6
X1 0 0 0 0 1 1
X2 0 0 0 1 0 1
A2= X3 0 0 0 1 1 2
X4 0 1 0 0 1 1
X5 0 0 1 0 0 0
X6 0 0 0 0 0 0
Таблица 4.1в.
X1 X2 X3 X4 X5 X6
X1 0 0 0 1 0 1
X2 0 0 1 0 0 0
A3= X3 0 0 1 1 0 1
X4 0 0 0 1 1 2
X5 0 1 0 0 1 1
X6 0 0 0 0 0 0
Таблица 4.1г.
X1 X2 X3 X4 X5 X6
X1 0 0 1 0 0 0
X2 0 1 0 0 1 1
A4= X3 0 1 1 0 1 1
X4 0 0 1 1 0 1
X5 0 0 0 1 1 2
X6 0 0 0 0 0 0

Так "1", стоящая на пересечении второй строки и четвертого столбца, говорит о существовании одного пути длиной 2 из вершины х2 к вершине х4 . Действительно, как видим в графе на рис. 4.2, существует такой путь: a6, a5 . "2" в матрице A2 говорит о существовании двух путей длиной 2 от вершины х3 к вершине х6 : a8, a4 и a10, a3 .

Аналогично для матрицы смежности, возведенной в третью степень A3 ( таблица 4.1в), a (3) ik равно числу путей длиной 3, идущих от xi к хk . Из четвертой строки матрицы A3 видно, что пути длиной 3 существуют: один из х4 в х4(a9, a8, a5), один из х4 в х5(a9, a10, a6) и два пути из х4 в х6(a9, a10, a3 и a9, a8, a4). Матрица A4 показывает существование путей длиной 4 ( таблица 4.1г).

Таким образом, если a р ik является элементом матрицы Aр ,то a р ik равно числу путей (не обязательно орцепей или простых орцепей) длины р, идущих от xi к хk .

< Лекция 3 || Лекция 4: 12 || Лекция 5 >
Дмитрий Щелков
Дмитрий Щелков

В лекции 3 часть номер 2 приведён пример нахождения транзитивного замыкания по матрице смежности. Из примера для обратного транзитивного замыкания видно, что путь для достижения вершины х6 в вершину х3 равен 3, а не 2, как показано в табличном примере. Мне кажется, что в лекции ошибка.

Вячеслав Коваленко
Вячеслав Коваленко

В курсе "Введение в теорию графов" в лекции 4 "Достижимость в графарх" дано выражение для нахождения множетсва вершин, входящих в путь из одной вершины графа в другую и по рис.4.2. показан пример нахождения такого множества для пути из вершины х2 в вершину х4 - это множетсво (х2, х3, х4, х5). По рисунку видно что путь не оптимален и для того, чтобы он проходил через все вершины этого множества, через х4 нужно пройти два раза. Правильно ли я понимаю, что данное определение пути дает не всегда оптимальный путь и что определение оптимально (кратчайшего) пути - отдельная задача? Или в примере ошибка?