Материал: Дискретная математика. учебное пособие. Собенина О.В

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

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

Q(xi) = {xi} È Г-1 (xi) È Г-2 (xi) È … È Г (xi), (4.4) где Г-2 (xi) = Г-1-1 (xi)) и т. д.

Операции, выполняются слева направо до тех пор, пока очередная операция объединения не перестанет изменять «текущее» множе­ство Q(xi).

Из определений очевидно, что столбец xi матрицы Q (в котором qij=1, если xiÎQ(xi), и qij=0 в противном случае) совпадает со строкой xi матрицы R, т. е. Q=RT, где RT – матрица, транспонированная к матрице достижимостей R.

Пример. Найти матрицы достижимостей и обратных достижимостей для графа G, приведенного на рис. 4.24.

Рис.4.24

Матрица смежности графа G имеет вид

Множества достижимостей находятся с помощью соотношений

R(x1)={x1} È {x2,x5} È {x2,x4,x5} È {x2,x4,x5} = {x1,x2,x4,x5},

R(x2)= {x2} È {x2,x4} È {x2,x4,x5} È {x2,x4,x5} = {x2,x4,x5},

R(х3)= {x3} È {x4} È {x5} È {x5} = {x3,x4,x5},

R(х4)= {x4} È {x5} È {x5} = {x4,x5},

R(х5)= {x5} È {x5} = {x5},

R(х6)= {x6} È {x3,x7} È {x4Èx6} È {x3,x5,x7} È {x4,x5,x6}=

= {x3,x4,x5,x6,x7},

R(х7)= {x7} È {x4,x6} È {x3,x5,x7} È {x4,x5,x6}=

= {x3,x4,x5,x6,x7}.

Следовательно, матрица достижимостей имеет вид

м атрица обратных достижимостей такова:

Так как R(xi) является множеством вершин, достижимых из xi, а Q(xj) – множеством вершин, из которых можно достиг­нуть xj, то – множество таких вершин, каждая из которых принадлежит по крайней мере одному пути, идущему от xi к xj. Эти вершины называются существенными или неотъем­лемыми относительно двух концевых вершин xi и xj. Все остальные вершины называются несуществен­ными или избыточными, поскольку их удаление не влияет на пути от xi к xj .

Матрицы достижимостей и обратных достижимостей являются полными в том смысле, что на длины путей от xi к xj не накладывались никакие ограничения. С другой стороны, можно определить матрицы ограниченных достижимостей и контрдостижимостей – надо потребовать, чтобы длины путей не превышали некоторого заданного числа. Эти ограниченные матрицы тоже могут быть построены с помощью соотношений (4.3) и (4.4) – надо действовать точно так, как раньше, при нахожде­нии «неограниченных» матриц, но только теперь р будет верхней границей длины допустимых путей.

Для неориентированного графа множество достижимости позволяет проверить граф на связность. Опишем алгоритм проверки связности неорграфа.

Шаг 1. G =(X,V) – данный неорграф. Для произвольной вершины хiХ найти множество R(xi). Перейти к шагу 2.

Шаг 2. Если R(xi)=X, то граф является связным, иначе граф не является связным. Выдать соответствующее сообщение. Останов.

4.8.3. Нахождение сильных компонент

Сильная компонента (СК) графа G определяется как максимальный сильно связный подграф графа G. Поскольку в сильно связном графе произвольная вершина xj достижима из любой другой вершины xi, то в ориентированном графе существует одна и только одна СК, содержащая данную вершину xi. В самом деле, если бы вершина xi, принадлежала двум или большему числу сильных компонент, то существовал бы путь из любой вершины одной СК в произвольную вершину другой СК и, следовательно, объединение этих сильных компо­нент было бы сильно связным графом, что противоречит опре­делению СК.

Если вершина xi, одновременно является начальной и конечной вершиной пути, то множество вершин, существенных относительно этих двух идентичных концов (т.е. множество вершин некоторого цикла, содержащего xi), совпадает с пересечением . Поскольку все эти существенные вершины достижимы из xi и, кроме того, из каждой такой вершины достижима вершина xi, то все они взаимно достижимы. Более того, если нет другой вершины, существенной относительно концов xi и xi, то множество , которое может быть построено с использованием соотношений (4.3) и (4.4), однозначно определяет СК графа G, содержащую вершину xi.

Если эти вершины удалить из графа G=(X,V), то в оставшемся порожденном подграфе можно таким же способом выделить новую СК, содержащую xjÎ . Эту процедуру можно повторять до тех пор, пока все вершины графа G не будут сгруппированы в соответствующие СК. После завершения этой процедуры граф G будет разбит на свои сильные компоненты.

Алгоритм нахождения сильных компонент графа можно описать следующей последовательностью шагов

Шаг 1. G = (X, V) – данный граф. Определение сильных компонент графа (СК) начать с произвольной вершины хiХ. Найти R(xi) и Q(xi). Положить СК(хi) = - сильная компонента графа, содержащая вершину хi.

Шаг 2. Определить множество . Если , то и перейти к шагу 1, иначе останов, так как все сильные компоненты определены.

Граф G*=(X*,V*) определяется так: каждая его вершина представляет множество вершин некоторой сильной компоненты графа G, дуга (xi*, xj*) существует в G* тогда и только тогда, когда в G существует дуга (xi, xj), такая, что xi принадлежит ком­поненте, соответствующей вершине xi*, а xj компоненте, соответствующей вершине xj*. Граф G* называют конденсацией графа G.

Совершенно очевидно, что конденсация G* не содержит контуров, поскольку наличие контура означает, что любые вершины этого контура взаимно достижимы. Поэтому совокупность всех вершин контура принадлежит некоторой СК в G* и, следовательно, содержится в СК графа G, что противоречит определению конденсации, в силу которого вершины из G* соответствуют СК в G.

Пример. Для графа G, приведенного на рис. 4.25, найти сильные ком­поненты и построить конденсацию G*.

Найдем СК в G, содержащую вершину x1.

Из соотношений (4.3) и (4.4) получаем

R(x1) = { x1 , x2 , x4 , x5 , x6 , x7 , x8 , x9 , x10 }

Q(x1) = { x1 , x2 , x3 , x5 , x6 }

Следовательно, СК, содержащая вершину x1, является порожденным подграфом

R(x1) Q(x1) = ({ x1 , x2 , x5 , x6 })

Аналогично, СК, содержащая вершину x8, есть порожденный подграф ({x8, x10}), СК содержащая x7 – подграф ({x4, x7, x9}), СК, содержащая x11, подграф ({x11, x12, x13 }) и СК, содержащая x3, – подграф ({x3}). Следует отметить, что последняя СК со­стоит из единственной вершины графа G. Конденсация G* приведена на рис. 4.26.

Рис. 4.26. G* - конденсация графа G

Процедуру, описанную выше и связанную с нахождением СК графа, можно сделать более удобной, если непосредственно исполь­зовать матрицы R и Q. Пусть запись RÄQ означает поэлементное умножение этих матриц. Тогда сразу видно, что строка xi, матрицы RÄQ содержит единицы только в тех столбцах xj, для которых выполняется усло­вие: вершины xi и xj взаимно достижимы; в других местах строки xi стоят нули. Таким образом, две вершины находятся в одной и той же СК тогда и только тогда, когда соответствующие им стро­ки (или столбцы) в матрице RÄQ идентичны. Вершины, кото­рым соответствуют строки, содержащие 1 в столбце xj, образуют множество вершин СК, содержащей xj. Отсюда мгновенно сле­дует, что матрицу RÄQ можно преобразовать путем транспони­рования строк и столбцов в блочно-диагональную. Каждая из диа­гональных подматриц этой матрицы соответствует СК графа G и содержит только единичные элементы, все остальные элементы блочно-диагональной матрицы равны нулю. Для приведенного ранее примера матрица RÄQ, преобразованная соответствую­щим образом, имеет вид

x1 x2 x5 x6

x8 x10

x4 x7 x9

x11 x12 x13

x3

x1

x2

x5

x6

1 1 1 1

1 1 1 1

1 1 1 1

1 1 1 1

0

0

0

0

x8

R Ä Q =

x10

  1. 1

1 1

0

0

0

x4

x7

x9

0

0

1 1 1

1 1 1

1 1 1

0

0

x11

x12

x13

0

0

0

1 1 1

1 1 1

1 1 1

0

x3

0

0

0

0

1

Таким образом, сильные компоненты графа можно находить по следующему алгоритму.

Шаг 1. G – данный граф. Для G построить матрицу достижимости R и найти матрицу контрдостижимости, транспонировав матрицу R, Q=RT.

Шаг 2. Получить матрицу C, осуществив поэлементное умножение матриц R и Q, т.е. С=RQ, где  – поэлементное умножение матриц.

Шаг 3. Преобразовать матрицу С к блочно-диагональ-ному виду путем перестановки строк и столбцов. Каждая из диагональных подматриц соответствует сильной компоненте графа G. Останов.

4.8.4. Базы и антибазы

База или вершинная база В есть множество вершин графа G, из которого достижима любая вершина графа и которое является минимальным в том смысле, что не существует собственного подмножества в В, обладающего таким свойством достижимости.

Базой является такое множество вершин графа G, которое удовлетворяет следующим двум условиям:

  1. каждая вершина графа G достижима хотя бы из одной вершины множества В;

  2. в В нет вершины, которая достижима из другой вершины множества В.

Из этих условий получаются следующие утверждения.

1. В множестве В нет двух вершин, которые принадлежат одной и той же СК графа G.

2. В любом графе без контуров существует единственная база. Она состоит из всех таких вершин, полустепени захода которых равны 0.

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

Шаг 1. G – данный граф. Для G найти все сильные компоненты.

Шаг 2. Построить конденсацию G* графа G.

Шаг 3. Определить базу В* конденсации G*, включив в В* те вершины G*, полустепени захода которых равны 0.

Шаг 4. Построить базу В графа G из В*, взяв по одной вершине из сильных компонент, входящих в В*. Останов.

Пример. Для графа G, приведенного на рис. 4.25, конденсация показана на рис. 4.26. Базой графа G* является множества , поскольку и  единственные вершины в графе G* с полустепенями захода, равными 0. Базами графа G являются , и .

Понятие, двойственное понятию базы есть антибаза. Антибаза графа G есть такое минимально возможное множестве вершин, что какова бы ни была вершина графа G, из нее достижима некоторая вершина в . Свойства антибаз аналогичны свойствам баз, надо только «прямые» понятия заменить на двойственные. Опишем алгоритм нахождения антибаз графа.

Источник: https://studfile.net/preview/16566820/