Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
full_v2.doc
Скачиваний:
12
Добавлен:
01.07.2025
Размер:
13 Мб
Скачать
☆

17.4.2. Решение стандартных графовых задач с использованием орграфов

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

Маршрутом графа D считается чередующаяся последовательность вершин и дуг (x0, u1, x1, un, хn), в которой каждая дуга ui есть кортеж ui = <xi-1, xi>. Маршрут, в котором все вершины различны, называется путем. Замкнутый маршрут, у которого все вершины различны, за исключением первой и последней, называется контуром. Если существует путь из xi в xj, то говорят, что xj достижима из xi.

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

Неорграф G называется ориентируемым, если каждое его ребро можно ориентировать так, что полученный граф D будет сильно связным. Такой процесс обычно называют заданием ориентации графа G. Очевидно, что произвольный эйлеров граф может быть ориентируем, так как достаточно пройти по любой эйлеровой цепи, ориентируя ребра графа в направлении движения.

Граф D называется эйлеровым, если в нем существует замкнутая цепь, содержащая каждую его дугу.

Необходимым условием существования эйлерова орграфа является его сильная связность.

Связный граф D = (X, U) является эйлеровым, когда xi  X (+(xj) = –(xj)).

Орграф называется гамильтоновым, если в нем существует контур, содержащий каждую вершину орграфа.

Теорема 17.8. Пусть D — сильно связный граф. Если xi  X (+(xj)  n / 2 и –(xj)  n / 2)  D, то D – гамильтонов граф.

Рассмотрим алгоритм построения дерева на ориентированном графе D = (X, U).

1. Выбираем произвольную вершину xi и по матрице смежности определяем все смежные ей вершины (т. е. определяем вершины, соответствующие стрелкам, исходящим из xi). В результате образуется подмножество вершин X’ = {xi, xj, ..., x}, смежных с хi. В случае, если X’ = X, то переходим к пункту 4, в противном случае переходим к пункту 2.

2. Выбираем произвольную вершину xj  X’, такую, что xjxi. Снова определяем все смежные с xj вершины, за исключением вершин, уже вошедших в X’.

3 Проверка условия X’ = X, если условие выполняется  то переход к пункту 4, в противном случае  переход к пункту 2.

4 Конец работы алгоритма, построено дерево Т.

17.4.3. Выделение сильносвязных компонент

Пусть задан ориентированный граф D = (X, U), где X, U - соответственно множество вершин и множество ребер графа. Граф D называется сильносвязным, если любые две его вершины взаимно достижимы. Подграфом D’ графа D называется граф, все вершины которого и инцидентные им ребра принадлежат D, т.е. D’ = (X’, U’), X’  X и U’  U, и ребра D’ инцидентны только вершинам из X’.

Граф G, полученный из графа D заменой каждой дуги ui = <xk, xl> на соответствующее ребро ui = (xk, xl), т.е. устранением стрелок, называется основанием D.

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

Множество вершин R(xi) графа D, достижимых из некоторой вершины xi, состоит из таких элементов xj, для которых (i, j) элемент в матрице достижимости R = ||rij|| равен 1. Матрица контрдостижимости определяется как Q = Rt, где Rt - матрица, транспонированная к матрице достижимости R.

Если вершина xi одновременно является начальной и конечной вершиной пути, то множество вершин некоторого цикла, содержащего xi, совпадает с пересечением [R(xi)  Q(xi)] и все они взаимно достижимы.

В случае удаления этих вершин из исходного графа, в оставшемся порожденном графе D’ = <x - R(xi)  Q(xi)> таким же способом выделяется новая сильная компонента, содержащая xj  <x - R(xi)  Q(xi)>. Этот процесс продолжается до тех пор, пока весь исходный граф не будет разбит на сильные компоненты.

Граф D = (X, U) называется конденсацией графа D и определяется следующим образом: каждая его вершина представляет множество вершин некоторой сильной компоненты графа D, дуга <xi, xj> существует в D тогда и только тогда, когда в графе D существует дуга <xi, xj>, такая, что xi принадлежит компоненте, соответствующей вершине xi, а xj - компоненте, соответствующей вершине xj. Очевидно, что конденсация графа D не содержит циклов, поскольку наличие цикла означает, что любые вершины этого цикла взаимно достижимы.

Определим прямое и обратное транзитивные замыкания. Прямым транзитивным замыканием Г+(xi) называют подмножество вершин Х'  Х, в которые можно попасть из вершины xi по некоторому пути. Обратным транзитивным замыканием называют подмножество вершин, из которых можно попасть в xi по некоторому пути, и обозначают Г–(xi).

Прямое и обратное транзитивное замыкания можно найти из соотношений:

Г+(xi) = {хi}  Г+(xi)  Г+2(xi)  Г+3(xi)  ...,

Г–(xi) = {xi}  Г-1(xi)  Г-2(xi)  Г-3(xi)  ...,

Г+2(xi) = Г+{Г(xi)};

Г+3(xi) = Г+{Г+2(xi)} = Г+{Г+{Г+(xi)}}.

Аналогично определяем для Г–2(xi), Г–3(xi) и т.д.

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

Идея алгоритма заключается в следующем. Выбирается произвольная вершина xi  Х в графе D, для которой определяются прямое и обратное транзитивные замыкания Г+(xi), Г–(xi). Их пересечение C(xi) = Г+хi  Г–хi является сильной компонентой графа D, т.е. максимально связным подграфом. Далее выбирается следующая вершина xj  C(xi) и процесс продолжается.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]