Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции ДМ1.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
5.02 Mб
Скачать
  1. Цикловой ранг графа. Цикломатическое число

Если G(V, X) не является ациклическим графом, то в нем можно выделить цикл.

Независимыми называются циклы графа G, если они отличаются хотя бы одним ребром.

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

Количество простых циклов в базисе называется цикломатическим числом или циклическим рангом графа G.

Обзначим цикломатическое число через (G).

Справедливо утверждение:

Если G(V, X) – связный граф, то (G) = m(G) – n(G) + p(G), где m(G) – количество ребер в графе, n(G) – количество вершин в графе, p(G) – количество компонент связности в графе.

Так, например, для дерева не существует цикловой базис, т.к. в дереве m = n – 1, р = 1(дерево – связный граф). Тогда цикломатическое число равно (G) = n – 1 – n +1 = 0. Следовательно в базисе нет ни одного цикла.

Рассмотрим алгоритм нахождения циклового базиса связного мультиграфа.

Если (G) = 0, то граф ациклический, циклового базиса не существует.

Пусть (G) > 0. Выделим в G любое остовное дерево Т. Пусть число вершин в графе G равно n, а число ребер – m. x1, x2,…, xn-1 – ребра в Т (остовное дерево содержит все вершины графа, а по свойству дерева число ребер на 1 меньше числа вершин), xn, xn+1,…, xm – остальные ребра графа G (заметим, что n  2, m  n). Число последних ребер m – (n – 1) = m – n + 1, и совпадает с цикломатическим числом связного графа. Добавляя любое из ребер xi ( i = n, …, m) , к дереву Т, получаем некоторый подграф графа G, из которого выделяем простой цикл i-(n-1) , проходящий через ребро xi . Действуя таким образом, находим совокупность простых циклов {1, m-n+1}. Т.к. в каждом из циклов этой системы имеется ребро, не содержащееся в других циклах, то полученная система независимая, следовательно, является цикловым базисом графа G.

Используя данный алгоритм, определим цикловой базис мультиграфа, представленного на рисунке:

Вычислим цикломатическое число: n =4, m = 8, p =1, следовательно, (G) = 8 - 4 + 1 = 5. Значит, цикловой базис содержит 5 независимых циклов. Построим остовное дерево:

Добавим по одному удаленные из графа ребра и будем, таким образом, получать простые циклы:

Добавим ребро х3, получим цикл v1 x2 x3 x5 v1.

Добавим ребро x6 , выделим простой цикл: v1 x2 x3 x6 v1.

Добавим ребро x7 , выделим простой цикл: v1 x2 x7 x1 v1.

Добавим ребро x8 , выделим простой цикл: v1 x2 x8 x1 v1.

Добавим ребро x4 , выделим простой цикл: v1 x2 x3 x4 х1 v1.

Получили пять циклов, составляющих цикловой базис графа.

Контрольные вопросы

  1. Какой маршрут называется минимальным?

  2. Алгоритм выделения минимального маршрута в ненагруженном неорграфе.

  3. Алгоритм выделения минимального маршрута в нагруженном графе.

  4. Какой граф называется ациклическим? Какой подграф называется остовом? Алгоритм его построения.

  5. Что называется цикловым рангом графа? Что такое цикломатическое число, цикловой базис графа? Алгоритм построения циклового базиса графа.