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

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

< Лекция 6 || Лекция 7: 1234 || Лекция 8 >
Аннотация: Пространство подграфов. Квазициклы. Фундаментальные циклы. Построение базы циклов. Рационализация.

Пространство подграфов

Зафиксируем некоторое множество V и рассмотрим множество \Gamma_{V} всех графов с множеством вершин V. Буквой O будем обозначать пустой граф из этого множества: O=(V,\varnothing).

Для графов G_{1} =(V,E_{1}) и G_{2} =(V,E_{2} ) из \Gamma_{V} определим их сумму по модулю 2 (в дальнейшем в этом разделе будем называть ее просто суммой) как граф G_{1} \oplus G_{2} =(V,E_{1}
\oplus E_{2} ), где E_{1} \oplus E_{2} обозначает симметрическую разность множеств E_{1} и E_{2}. Иначе говоря, ребро принадлежит графу G_{1} \oplus G_{2} тогда и только тогда, когда оно принадлежит в точности одному из графов G_{1} и G_{2}. Пример показан на рис. 7.1.


Рис. 7.1.

Следующие свойства введенной операции очевидны или легко проверяются.

  1. Коммутативность: G_{1} \oplus G_{2} =G_{2} \oplus G_{1} для любых G_{1} и G_{2}.
  2. Ассоциативность: G_{1} \oplus (G_{2} \oplus G_{3} )=(G_{1} \oplus
G_{2} )\oplus G_{3} для любых G_{1},G_{2},G_{3}.
  3. G\oplus O=G \text{ для любого } G.
  4. G\oplus G=O \text{ для любого } G.

Отсюда следует, что множество \Gamma _{V} относительно операции \oplus образует абелеву группу. Нейтральным элементом ("нулем") этой группы служит граф O, а противоположным к каждому графу является сам этот граф. Уравнение G\oplus X=H с неизвестным X и заданными графами G и H имеет единственное решение X=G\oplus H. Благодаря свойству ассоциативности мы можем образовывать выражения вида G_{1} \oplus G_{2} \oplus \ldots \oplus G_{k}, не используя скобок для указания порядка действий. Легко понять, что ребро принадлежит графу G_{1} \oplus G_{2} \oplus \ldots \oplus G_{k} тогда и только тогда, когда оно принадлежит нечетному количеству из графов G_{1},G_{2},\ldots,G_{k}.

Рассмотрим множество из двух элементов \{0, 1\}. Оно является полем относительно операций умножения и сложения по модулю 2. Определим операцию умножения элементов этого поля на графы: 0\cdot G=O, 1\cdot
G=G для любого графа G. Множество \Gamma_{V} с введенными операциями сложения графов и умножения на элементы поля является линейным векторным пространством.

Зафиксируем некоторый граф G\in \Gamma_{V} и рассмотрим множество всех его остовных подграфов, которое будем обозначать S[G]. Это множество состоит из 2^{m(G)} элементов, среди них сам граф G и граф O. Оно замкнуто относительно сложения графов и умножения на элементы поля, следовательно, является подпространством пространства \Gamma_{V}. Его называют пространством подграфов графа G.

Любой граф из S[G] может быть выражен как сумма однореберных подграфов. Всего у графа G имеется m(G) однореберных подграфов и они, очевидно, линейно независимы. Следовательно, однореберные подграфы образуют базис пространства S[G], а размерность этого пространства равна m(G).

В пространстве S[G] можно очень естественным способом ввести координаты. Занумеруем ребра графа G: EG=\{e_{1},e_{2},\ldots ,e_{m} \}. Теперь остовному подграфу H можно поставить в соответствие характеристический вектор \alpha (H)=(\alpha _{1} ,\alpha_{2},\ldots,\alpha_{m}) его множества ребер:

\alpha _{i} =\left\{\begin{aligned} & 1, && \text{если ребро }e_{i}\
\text{принадлежит } H, \\ & 0, && \text{если } e_{i}\ \text{не принадлежит } H.
\end{aligned}\right}

Получаем взаимно однозначное соответствие между множеством S[G] и множеством всех двоичных векторов с m координатами. Сумме графов соответствует векторная (покоординатная) сумма по модулю 2 их характеристических векторов.

< Лекция 6 || Лекция 7: 1234 || Лекция 8 >
Петр Петров
Петр Петров

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

Александр Лаврентьев
Александр Лаврентьев

много инструкций вида if - then - else

Например Procedure DFS(a) опишите каким образом следует понимать вложенность инструкций. Как в языке С ? 

т.е. следующее 

if (...) then (...)

if (...) then (...)

else(...)

 

раскрывается как 

if (...) then (...)

if (...) then (...)

         else(...)

или так :

if (...) then

 {  (...)

     if (...) then (...)

              else(...)

}

обьясните пожалуйста.

 

 

Дмитрий Крюков
Дмитрий Крюков
Россия, Москва
Андрей Посохов
Андрей Посохов
Россия, Санкт-Петербург