Нижегородский государственный университет им. Н.И.Лобачевского
Опубликован: 27.09.2006 | Доступ: свободный | Студентов: 3853 / 211 | Оценка: 4.44 / 4.11 | Длительность: 13:45:00
Специальности: Программист, Математик
Лекция 7:

Пространство циклов графа

< Лекция 6 || Лекция 7: 1234 || Лекция 8 >

Рационализация

Приведенный алгоритм нетрудно модифицировать так, что он будет строить базу циклов с суммарной длиной, ограниченной сверху величиной порядка n^{2} (и такой же будет оценка трудоемкости алгоритма). Рассмотрим в графе произвольную вершину x и пусть y_{1},y_{2}\ldots y_{k} - все ее предки в DFS-дереве, соединенные с x обратными ребрами. Положим также y_{k+1} =x. Обозначим через P_{i} для i=1,\ldots,k путь в DFS-дереве, соединяющий y_{i} и y_{i+1}. Описанный выше алгоритм выдает циклы вида C_{i} =xP_{i} P_{i+1} \ldots P_{k} x, i=1,\ldots,k. Рассмотрим циклы C'_{i} =xP_{i}x, i=1,\ldots,k. Так как C_{i}
=C'_{i} \oplus C'_{i+1} \oplus \ldots \oplus C'_{k}, то совокупность всех таких циклов также образует базу циклов графа. Назовем эту систему циклов сокращенной. Алгоритм легко модифицировать так, чтобы вместо циклов C_{i} выдавались циклы C'_{i} - нужно только после обнаружения обратного ребра, ведущего от предка x к потомку y (строка 11), выписать вершины, содержащиеся в стеке, начиная с y и заканчивая следующей вершиной, смежной с x. Для эффективной проверки этой смежности удобно использовать матрицу смежности.

Оценим суммарную длину S циклов сокращенной системы. Предположим, что граф имеет n вершин и m ребер. Каждое обратное ребро принадлежит не более чем двум циклам сокращенной системы. Значит, суммарный вклад обратных ребер в S не превосходит 2m.

Для каждого цикла из сокращенной системы назовем верхушкой этого цикла вершину цикла с наибольшим глубинным номером (это та вершина x, при исследовании окрестности которой был найден данный цикл). Очевидно, для каждого прямого ребра в сокращенной системе имеется не более одного цикла с данной верхушкой. Значит, число циклов, в которые входит данное прямое ребро, не превосходит числа вершин, лежащих в дереве выше него (т.е. являющихся потомками вершин этого ребра). Тем более это число не превосходит числа всех вершин графа. Так как имеется не более чем n-1 прямое ребро, то для суммарного вклада всех прямых ребер в S получаем верхнюю оценку n^{2}. Таким образом, S < 2m+n^{2}
=O(n^{2}), т.е. на порядок меньше максимальной суммарной длины системы фундаментальных циклов.

< Лекция 6 || Лекция 7: 1234 || Лекция 8 >
Татьяна Наумович
Татьяна Наумович

Скажите, пожалуйста, можно ли еще получить документ о прохождении курса ("Графы и алгоритмы", декабрь 2020) после предоставления всех дополнительных необходимых документов?
Или нужно проходить заново?

Петр Петров
Петр Петров

произведение графов К(2)*О(4) фактически 4 отдельных графа К(2)?