Контурный рангВ теории графов контурный ранг[1] неориентированного графа — это минимальное число рёбер, удаление которых разрушает все циклы графа, превращая его в дерево или лес. Контурный ранг можно понимать также как число независимых циклов в графе. В отличие от соответствующей задачи нахождения разрезающего циклы набора дуг[англ.] для ориентированных графов, контурный ранг r легко вычисляется по формуле
где m — число рёбер заданного графа, n — число вершин, а c — число компонент связности [2]. Можно также эффективно построить множество рёбер минимального размера, разбивающих циклы, используя либо жадный алгоритм, либо дополнение остовного дерева. Контурный ранг известен также как цикломатическое число графа. Его можно объяснить в терминах алгебраической теории графов как размерность циклического пространства графа, в терминах матроидов с использованием понятия коранга графовых матроидов[англ.] [3] и в терминах топологии как одно из чисел Бетти топологического пространства, производного от графа. Контурный ранг подсчитывает число ушей в ушной декомпозиции графа, что даёт базис для понятия параметризованной сложности[англ.] на почти деревьях и применяется в метриках программного обеспечения как часть определения цикломатической сложности фрагмента кода. Под названием цикломатическая сложность понятие было введено Густавом Кирхгофом[4][5]. Ранг матроида и построение минимального разрезающего циклы множестваКонтурный ранг графа G можно описать с помощью теории матроидов как коранг графового матроида[англ.] для G [6]. Если учесть свойство жадности матроидов, это означает, что можно найти минимальный набор рёбер, разрушающий все циклы, используя жадный алгоритм, выбирающий на каждом шаге ребро, принадлежащее по меньшей мере одному циклу оставшегося графа. С другой стороны, минимальный набор множеств, разрушающий все циклы, можно найти путём построения остовного леса графа G и выбора дополняющего множества рёбер, не принадлежащих остовному лесу. Число независимых цикловВ алгебраической теории графов, контурный ранг — это размерность пространства циклов графа . Интуитивно можно объяснить контурный ранг как подсчитывающий число независимых циклов графа, где набор циклов считается независимым, если невозможно образовать один цикл как симметрическую разность некоторого поднабора других циклов[2]. Этот подсчёт независимых циклов может быть объяснён с помощью теории гомологий, ветви топологии. Любой граф G можно рассматривать как пример 1-мерного симплициального комплекса, одного из видов топологического пространства, образованного представлением каждого ребра графа отрезком и склеиванием этих отрезков на концах. Цикломатическое число является рангом первой (целой) группы гомологий этого комплекса [7], В связи с такой топологической связью цикломатическое число графа G называется также первым числом Бетти графа G [8]. В более общем случае первое число Бетти любого топологического пространства подсчитывает число независимых циклов в пространстве. Контурный ранг графа связан с рангом его матрицы инцидентности через соотношение . ПриложенияКоэффициент сетчатостиВариант контурного ранга планарного графа, нормализованный путём деления на максимально возможный контурный ранг любого планарного графа с тем же набором вершин, называется коэффициентом сетчатости. Для связных планарных графов с m рёбрами и n вершинами коэффициент сетчатости можно вычислить по формуле[9] В этой формуле числитель в формуле является контурным рангом данного графа, а знаменатель является наибольшим возможным контурным рангом планарного графа с n вершинами. Коэффициент сетчатости лежит между 0 для деревьев и 1 для максимальных планарных графов[англ.]. Ушная декомпозицияКонтурный ранг отражает число ушей в ушной декомпозиции графа, разложении рёбер графа на пути и циклы, что часто оказывается полезным в алгоритмах на графах. В частности, граф вершинно 2-связен тогда и только тогда, когда он имеет открытую ушную декомпозицию, последовательность подграфов, в котором первый подграф является простым циклом, а оставшиеся подграфы являются простыми путями и каждый путь начинается и кончается в вершинах, принадлежащих предыдущим подграфам, и каждая внутренняя вершина пути появляется первый раз в этом пути. В любом двусвязном графе с контурным рангом любая открытая ушная декомпозиция имеет в точности ушей[10]. Почти деревьяГраф с цикломатическим числом называется также почти r-деревом, поскольку нужно удалить из графа лишь r рёбер, чтобы превратить его в дерево или лес. Почти 1-дерево является почти деревом — связное почти дерево является псевдолесом, циклом с (возможно тривиальными) деревьями с корнями в каждой вершине[11]. Некоторые авторы изучали параметризованную сложность[англ.] алгоритмов на почти r-деревьях с параметризацией по [12][13]. Обобщение для ориентированных графовЦиклический ранг — это инвариант ориентированных графов, измеряющий уровень вложенности циклов в графе. Этот инвариант имеет более сложное определение, чем цикломатический ранг (тесно связанный с определением глубины дерева для неориентированных графов) и вычисление его существенно сложнее. Другая задача для ориентированных графов, связанная с цикломатическим рангом — определение минимального разрезающего циклы набора дуг, то есть минимального набора дуг, удаление которых разрушает все ориентированные циклы. Обе задачи, вычисление циклического ранга и определение минимального разрезающего циклы набора дуг, являются NP-трудными. Также можно вычислить более простой инвариант ориентированных графов, если игнорировать направления рёбер и вычислить циклический ранг неориентированного графа. Этот принцип образует базис для определения цикломатической сложности, меры сложности компьютерной программы для оценки сложности фрагмента компьютерного кода. Связанные понятияДругие числа, определяемые в терминах удаления рёбер из неориентированного графа, включают число рёберной связности, минимальное число рёбер, удаление которых приводит к потере связности, и число предотвращения паросочетаний[англ.], минимальное число рёбер, удаление которых приводит к потере существования совершенного паросочетания. Примечания
Литература
|