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

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

< Лекция 3 || Лекция 4: 12 || Лекция 5 >
Аннотация: Рассматриваются вопросы достижимости для орграфов и способы нахождения матриц достижимости и контрдостижимости. Рассматривается матричный способ нахождения количества путей между любыми вершинами графа, а также нахождение множества вершин, входящих в путь между парой вершин. Цель лекции: Дать представление о достижимости и контрдостижимости и способах их нахождения

Достижимость и контрдостижимость

Задач, в которых используется понятие достижимости, довольно много. Вот одна из них. Граф может быть моделью какой-то организации, в которой люди представлены вершинами, а дуги интерпретируют каналы связи. При рассмотрении такой модели можно поставить вопрос, может ли информация от одного лица хi быть передана другому лицу хj, т. е. существует ли путь, идущий от вершины хi к вершине хj. Если такой путь существует, то говорят, что вершина хj достижима из вершины хi. Можно интересоваться достижимостью вершины хj из вершины хi только на таких путях, длины которых не превосходят заданной величины или длина которых меньше наибольшего числа вершин в графе и т. п. задачи.

Достижимость в графе описывается матрицей достижимости R=[rij], i, j=1, 2, ... n, где n – число вершин графа, а каждый элемент определяется следующим образом:

rij=1, если вершина хj достижима из хi,

rij=0, в противном случае.

Множество вершин R(xi) графа G, достижимых из заданной вершины xi, состоит из таких элементов xj, для которых (i, j)-й элемент в матрице достижимостей равен 1. Очевидно, что все диагональные элементы в матрице R равны 1, поскольку каждая вершина достижима из себя самой путeм длины 0. Поскольку прямое отображение 1-го порядка Г+1(xi) является множеством таких вершин xj, которые достижимы из xi с использованием путей длины 1, то множество Г++1(xi)) = Г+2(xi) состоит из вершин, достижимых из xi с использованием путей длины 2. Аналогично Г+p(xi) является множеством вершин, которые достижимы из xi с помощью путей длины p.

Так как любая вершина графа, которая достижима из xi, должна быть достижима с использованием пути (или путей) длины 0 или 1, или 2, ..., или p, то множество вершин, достижимых для вершины xi, можно представить в виде

R (x_{i}) = \{  x_{i} \}  \cup  Г^{+1}(x_{i}) \cup  Г^{+2}(x_{i}) \cup  \dots  \cup  Г^{+p}(x_{i}).

Как видим, множество достижимых вершин R(xi) представляет собой прямое транзитивное замыкание вершины xi, т. е. R (xi) = T+(xi). Следовательно, для построения матрицы достижимости находим достижимые множества R (xi) для всех вершин x_{i}\in X. Полагая, rij=1, если x_{j} \in  R (x_{i}) и rij=0 в противном случае.

Достижимость в графе:  а –граф; б – матрица смежности; в – матрица достижимости; г-  матрица контрдостижимости.

Рис. 4.1. Достижимость в графе: а –граф; б – матрица смежности; в – матрица достижимости; г- матрица контрдостижимости.

Для графа, приведенного на рис. 4.1,а, множества достижимостей находятся следующим образом:

R (х_{1}) = \{  х_{1} \}  \cup \{  х_{2}, х_{5} \}  \cup  \{  х_{2}, х_{4}, х_{5} \}  \cup  \{  х_{2}, х_{4}, х_{5} \}  = = \{  х_{1}, х_{2}, х_{4}, х_{5} \},

R (х_{2}) = \{  х_{2} \}  \cup  \{  х_{2}, х_{4} \}  \cup  \{  х_{2}, х_{4}, х_{5} \}  \cup  \{  х_{2}, х_{4}, х_{5} \}  = = \{  х_{2}, х_{4}, х_{5} \},

R (х_{3}) = \{  х_{3} \}  \cup  \{  х_{4} \}  \cup  \{  х_{5} \}  \cup  \{  х_{5} \}  = \{  х_{3}, х_{4}, х_{5} \},

R (х_{4}) = \{  х_{4} \}  \cup  \{  х_{5} \}  \cup  \{  х_{5} \}  = \{  х_{4}, х_{5} \},

R (х_{5}) = \{  х_{5} \}  \cup  \{  х_{5} \}  = \{  х_{5} \},

R (х_{6}) = \{  х_{6} \}  \cup  \{  х_{3}, х_{7} \}  \cup  \{  х_{4}, х_{6} \}  \cup  \{  х_{3}, х_{5}, х_{7} \}  \cup  \cup  \{  х_{4}, х_{5}, х_{6} \}  = \{  х_{3}, х_{4}, х_{5}, х_{6}, х_{7}\},

R (х_{7}) = \{  х_{7} \}  \cup  \{  х_{4}, х_{6} \}  \cup  \{  х_{3}, х_{5}, х_{7} \}  \cup  \{  х_{4}, х_{5}, х_{6} \}  = = \{  х_{3}, х_{4}, х_{5}, х_{6}, х_{7} \}.

Матрица достижимости имеет вид, как показано на рис. 4.1,в. Матрицу достижимости можно построить по матрице смежности ( рис. 4.1,б), формируя множества T+(xi) для каждой вершины xi .

Матрица контрдостижимости Q = [ qij], i, j =1, 2, ... n, где n – число вершин графа, определяется следующим образом:

qij=1, если из вершины xj можно достичь вершину xi ,

qij=0, в противном случае.

Контрдостижимым множеством Q (xi) является множество таких вершин, что из любой вершины этого множества можно достичь вершину xi . Аналогично построению достижимого мно-жества R (xi) можно записать выражение для Q (xi):

Q (x_{i}) = \{  x_{i} \}  \cup  Г^{-1}(x_{i}) \cup  Г^{-2}(x_{i}) \cup  \dots  \cup  Г^{-p}(x_{i}).

Таким образом, видно, что Q (xi) – это есть не что иное как обратное транзитивное замыкание вершины xi , т. е. Q (xi) = Т-xi). Из определений очевидно, что столбец xi матрицы Q (в котором qij=1, если x_{j} \in  Q (x_{i}), и qij=0 в противном случае) совпадает со строкой xi матрицы R, т. е. Q = RT,где RT матрица, транспонированная к матрице достижимости R.

Матрица контрдостижимости показана на рис. 4.1,г.

Следует отметить, что поскольку все элементы матриц R и Q равны 1 или 0, то каждую строку можно хранить в двоичной форме, экономя затраты памяти ЭВМ. Матрицы R и Q удобны для обработки на ЭВМ, так как с вычислительной точки зрения основными операциями являются быстродействующие логические операции.

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

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

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

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