3.3. Цикломатика графов
Цикломатика - это изучение циклов в графе. Чем больше в графе циклов, тем запутаннее он выглядит. Цель этого параграфа навести порядок в множестве циклов.

Задача об эйлеровом цикле

Одной из первых задач теории графов, возникшей в трудах выдающегося математика ХVIII в. Л.Эйлера, была задача о кенигсбергских мостах. Город Кенигсберг (Калининград) расположен на реке, через которую имеется семь мостов (рис. 3.11).


Рис. 3.11

Рис. 3.12

Популярной головоломкой среди жителей города была такая: как обойти все мосты, проходя по каждому не более одного раза ? На языке графов эта задача формулируется так: можно ли в мультиграфе, показанном на рис. 3.12, обойти все ребра, проходя по каждому ровно один раз ?

Эйлеровым циклом (цепью) в мультиграфе $\;G\;$ называется цикл (цепь), содержащий все ребра мультиграфа. (Напомним, что, согласно определению, каждое ребро может входить в цепь не более одного раза).

В одно время были распространены головоломки на тему: можно ли данный рисунок выполнить, не отрывая карандаша от бумаги и не проводя никакую линию дважды ? Это тоже задача об эйлеровом цикле; она имеет практическое приложение, как задача минимизации холостого хода пера графопостроителя.

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

Необходимость. Пусть мультиграф $\;G\;$ обладает эйлеровым циклом. Поскольку в этот цикл входят все ребра мультиграфа, то в нем встречаются и все его вершины. Следовательно, любые две вершины соединены цепью.

Рассмотрим произвольную вершину $\;x\;$ и выделим все ее вхождения в эйлеров цикл:

\begin{displaymath}\ldots u_1 x u_2 \ldots u_3 x u_4 \ldots u_{2k-1} x u_{2k}\ldots \end{displaymath}

Очевидно, что $\;u_1,u_2,\ldots u_{2k-1},u_{2k}\;$ -- это и есть все ребра мультиграфа $\;G,\;$ инцидентные вершине $\;x.\;$ Таким образом, $\;\sigma(x)=2k.$

Достаточность. Покажем, что если мультиграф связный и степени всех вершин четны, то он обладает эйлеровым циклом. Доказательство будем вести индукцией по числу $\;m\;$ ребер в мультиграфе.

Имеется всего один мультиграф с $\;m = 2,\;$ удовлетворяющий условиям теоремы (рис. 3.13), и он, очевидно, обладает эйлеровым циклом.


Рис. 3.13

Предположим, что теорема верна для всех мультиграфов с числом ребер, меньшим $\;m,\;$ и рассмотрим мультиграф $\;G\;$ с $\;m\;$ ребрами. Будем строить обход ребер мультиграфа $\;G\;$ в достаточной степени произвольно, следя лишь за тем, чтобы не проходить ребро дважды: начнем с произвольно выбранной вершины $\;a,\;$ возьмем какое-нибудь ребро, инцидентное вершине $\;a,\;$ отметим его как пройденное и перейдем в другой конец этого ребра. В дальнейшем действуем однотипно: попав в некоторую вершину, выбираем наудачу одно из инцидентных этой вершине непройденных ребер, отмечаем его и переходим в другой его конец. На некотором шаге такого построения обнаружится, что дальше двигаться нельзя: все ребра, инцидентные вершине, до которой дошло построение, отмечены как пройденные. Утверждается, что такой вершиной может быть только начальная вершина $\;a.\;$ Это очевидным образом вытекает иэ того, что степень каждой вершины четная.

Таким образом, пройденные ребра образуют некоторый цикл, обозначим его $\;\mu'.\;$ Если этот цикл содержит все ребра мультиграфа $\;G,\;$ то он и есть эйлеров. Рассмотрим, как действовать в случае, когда остались непройденные ребра. Удалив из $\;G\;$ все пройденные ребра, получим мультиграф $\;G',\;$ в котором по-прежнему все вершины имеют четную степень, но он будет несвязным. Пусть $\;G_1',\ldots G_p'\;$ -- компоненты связности $\;G',\;$ имеющие более одной вершины. Так как каждая из компонент представляет собой связный мультиграф с четными степенями вершин и с числом ребер, меньшим $\;m,\;$ то по предположению индукции она обладает эйлеровым циклом. Обозначим эйлеровы циклы компонент $\;\mu_1',\ldots \mu_p'.\;$ 3аметим также, что первоначально построенный цикл $\;\mu'\;$ заходит в каждую из компонент, т.е. в каждом мультиграфе $\;G_i'\;$ можно найти вершину $\;x_i,\;$ через которую проходит цикл $\;\mu'.\;$ Это вытекает из того, что после добавления к несвязному мультиграфу $\;G'\;$ ребер цикла $\;\mu'\;$ получается связный мультиграф $\;G.$

Эйлеров цикл мультиграфа $\;G\;$ строится теперь следующим образом: в цикле $\;\mu'\;$ находим первую вершину $\;x_1,\;$ входящую в одну из компонент $\;G_1',\ldots G_p'\;:\;x_1\in G_i'.\;$ Включаем в цикл $\;\mu'\;$ цикл $\;\mu_i'\;$ (то есть заменяем вершину $\;x_1\;$ последовательностью $\;\mu_i'=x_1\ldots x_1.\;$) В оставшейся части цикла $\;\mu'\;$ снова находим первую вершину $\;x_2,\;$ входящую в одну из компонент и включаем цикл для этой компоненты. Так действуем пока не будут включены все эйлеровы циклы компонент.

Пример. В графе, показанном на рис. 3.14, степени всех вершин четные.


Рис. 3.14

Допустим, что на первом этапе рассмотренного выше алгоритма построен цикл, показанный на рис. 3.15.


Рис. 3.15. Цикл $\;\mu'\;.$

Непройденные ребра образуют несвязный граф, показанный на pис. 3.16.


Рис. 3.16

Строим эйлеровы циклы компонент (рис. 3.17).


Рис. 3.17


Рис. 3.18

Дополнения к теореме

1. Если связный мультиграф имеет ровно две вершины с нечетной степенью, то он обладает эйлеровой цепью.

Действительно, временно добавим к мультиграфу новое ребро, соединяющее вершины с нечетной степенью; в результате степени всех вершин станут четными. Построим в новом графе эйлеров цикл, а затем удалим добавленное ребро: цикл разорвется и станет цепью. Этa цепь начинается и заканчивается в вершинах нечетной степени.

2. В общем случае число вершин мультиграфа, имеющих нечетную степень, равно $\;2s\;$ (оно всегда четно). Все ребра такого мультиграфа можно включить в $\;s\;$ цепей. Другими словами, мультиграф можно нарисовать, $\;s-1\;$ раз отрывая карандаш от бумаги. Обоснование этого факта такое же, как и выше: добавляем новые $\;s\;$ ребер, соединяющие пары вершин с нечетной степенью, строим эйлеров цикл, удаляем новые ребра.

Цикловые ребра и перешейки

Пусть задан граф $\;G = (X,U).\;$ Ребро графа, через которое проходит хотя бы один цикл, назовем цикловым ребром. Ребро, которое не входит ни в один цикл, будем называть перешейком.

Пример. В графе, изображенном на рис.3.19, ребра $\;u_1\;$ и $\;u_2\;$ -- перешейки, остальные ребра цикловые.


Рис. 3.19

Лемма. При удалении из связного графа циклового ребра он остается связным. При удалении из связного графа перешейка граф распадается на две компоненты.

Действительно, если удаляемое ребро $\;\{а,b\}\;$ цикловое, то после его удаления вершины $\;a\;$ и $\;b\;$ по-прежнему можно соединить цепью -- остатком цикла, в который входило ребро $\;\{а,b\}.\;$ Отсюда вытекает, что и любые две вершины графа после удаления ребра $\;\{а,b\}\;$ остаются связанными цепью. Напротив, если $\;\{а,b\}\;$ -- перешеек, то после его удаления вершины $\;a\;$ и $\;b\;$ нельзя связать цепью, иначе эта цепь вместе с ребром $\;\{а,b\}\;$ образует цикл в исходном графе. С другой стороны, каждая вершина остается связанной либо с вершиной $\;а,\;$ либо с вершиной $\;b.$

Следствие. При удалении из графа циклового ребра число связных компонент графа не изменяется. При удалении перешейка число связных компонент графа увеличивается на единицу.

Цикломатическое число

Пусть дан граф $\;G=(X,U)\;,\;\vert Х\vert =n\,,\,\vert U\vert =m\;$ и пусть $\;G\;$ имеет $\;p\;$ компонент связности.

Величина $\;\lambda=m-n+p\;$ называется цикломатическим числом графа.

Теорема. Для любого графа цикломатическое число неотрицательно:

$\;\lambda\ge 0\;$.

Доказательство. Будем удалять из графа по одному ребру и следить за изменением величины $\;\lambda.\;$ Параметры исходного графа обозначим $\;m,n,p,\;$ те же величины после удаления ребра обозначим $\;m',n',p'.$

В процессе удаления ребер могут представиться два случая:

а) удаляемое ребро цикловое. Тогда

\begin{displaymath}m' = m -1,\; n' = n,\; p' = p;\quad \lambda'=m'-n'+p'=\lambda-1.\end{displaymath}

б) удаляемое ребро -- перешеек. В этом случае

\begin{displaymath}m' = m -1,\; n' = n,\; p' = p+1;\quad \lambda'=m'-n'+p'=\lambda.\end{displaymath}

Итак, при удалении ребра величина $\;\lambda\;$ либо не изменяется, либо уменьшается на единицу. После удаления всех ребер получится пустой граф, в котором $\;m_0=0\;,\;n_0=n\;,\;p_0=n\;,$ т.е. $\;\lambda_0=0.\;$ Следовательно, в исходном графе $\;\lambda\ge 0.$

Доказательство теоремы указывает на связь цикломатического числа с наличием циклов в графе. Действительно, если $\;\lambda >0,\;$ то в графе есть, по крайней мере, один цикл. При удалении циклового ребра некоторые циклы разрываются, и это приводит к уменьшению $\;\lambda.\;$ Если продолжать удаление ребер, то в конце концов разрываются все циклы и $\;\lambda\;$ становится равным нулю. После этого $\;\lambda\;$ уже не изменяется, так как все ребра стали перешейками.

Пример. Пусть требуется связать несколько населенных пунктов сетью дорог или телефонной сетью, вообще как-то связать друг с другом. Предлагаемый проект показан на рис. 3.20,а.


Рис. 3.20

В дальнейшем потребовалось удешевить проект, в результате некоторые связи были исключены (рис.3.20,б и 3.20,в).

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

Деревья

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

Теорема.Следующие определения дерева эквивалентны:

а) дерево - это связный граф без циклов;

б ) дерево - это связный граф, в котором каждое ребро является перешейком;

в) дерево - это связный граф, цикломатическое число которого равно нулю;

г) дерево - это граф, в котором для любых двух вершин имеется ровно одна соединяющая их цепь.

Перечисленные утверждения несложным образом выводятся одно из другого по схеме $\hbox{а)}\;\Longrightarrow\;\hbox{б)}\;\Longrightarrow\;\hbox{в)}\;\Longrightarrow\;\hbox{г)}\;\Longrightarrow\;\hbox{а)}.$

В силу свойства в) имеем $\;m-n+1=0\;$ или $\;m = n -1,\;$ т.е. в любом дереве число ребер на единицу меньше числа вершин.

Рис. 3.21 некоторым образом объясняет название "дерево". Выделим в дереве некоторую вершину $\;a\;$ (корень). Поскольку примыкающие к ней ребра -- перешейки, то после удаления любого из них от дерева отделяется компонента. На рисунке они обозначены $\;T_1,\ldots T_k.\;$ Каждая из этих компонент также является деревом.


Рис. 3.21

Остовное дерево графа

Рассмотрим связный граф и будем удалять из него по одному цикловые ребра до тех пор, пока их не останется. В результате получится дерево $\;Т =(Х', U')\;$ такое, что:

1) $\;X' = X,\;$ т.е. множество вершин дерева $\;T\;$ совпадает с множеством вершин графа $\;G\;$;

2) $\;U'\subseteq U,\;$ т.е.каждое ребро дерева является в то же время ребром графа $\;G.$

Любое дерево $\;T,\;$ удовлетворяющее условиям 1) и 2), называется остовным деревом графа $\;G.$

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

Пример.


Рис. 3.22

На рис.3.22 показан граф $\;G\;$ и три его остовных дерева.

Пусть в графе $\;G\;$ выделено остовное дерево $\;T.\;$ Ребра графа, не вошедшие в $\;T,\;$ будем называть хордами дерева $\;T.$

Лемма.Каковы бы ни были остовное дерево $\;T\;$ и хорда $\;h\;$ этого дерева, в графе $\;G\;$ существует единственный цикл, содержащий хорду $\;h\;$ и не содержащий других хорд.

Доказательство. Пусть $\;h=\{а,b\}.\;$ В дереве $\;T\;$ имеется единственная цепь, соединяющая вершины $\;a\;$ и $\;b.\;$ Присоединяя к этой цепи ребро $\;h,\;$ получаем требуемый цикл.

3адача о кратчайшей связывающей сети

Пусть $\;G = (Х,U,l)\;$ -- нагруженный граф. Требуется построить остовное дерево $\;T\;$ графа $\;G,\;$ сумма длин ребер которого минимальна.

Этой задаче можно дать такую интерпретацию: $\;n\;$ пунктов на местности нужно связать сетью дорог, трубопроводов или линий телефонной связи. Для каждой пары пунктов $\;i\;$ и $\;j\;$ задана стоимость их соединения -- это и есть "длина" $\;l(i,j)\;$ ребра $\;\{i,j\}\;$ в данном случае. Требуется построить связывающую сеть минимальной стоимости, ее называют кратчайшей связывающей сетью.

Очевидно, что кратчайшая связывающая сеть будет остовным деревом графа $\;G,\;$ при этом среди всех остовных деревьев она будет иметь минимальную сумму длин входящих в нее ребер.

Алгоритм построения кратчайшей связывающей сети состоит из $\;n-1\;$ шагов, на каждом шаге присоединяется одно ребро. Правило для выбора этого ребра следующее: среди еще не выбранных ребер берется самое короткое, не образующее цикла с уже выбранными ребрами.

Пример. В матрице $\;C\;$ элемент, стоящий в $\;i$-й строке и $\;j$-м столбце, указывает в условных единицах затраты, необходимие для того, чтобы связать пункт $\;i\;$ с пунктом $\;j\;$ :

\begin{displaymath}C=\pmatrix{-&5&6&2&1&7&5&4&6\cr
5&-&7&7&5&1&4&6&5\cr
6&7&-&...
...&6&6&4&-&6&2\cr
4&6&5&4&3&5&6&-&7\cr
6&5&4&5&7&5&2&7&-\cr}\;.\end{displaymath}

3адача заключается в том, чтобы с наименьшими затратами связать все пункты друг с другом.

Применение сформулированного выше алгоритма выглядит так. В матрице $\;C\;$ отыскивается минимальный элемент. Он вычеркивается из матрицы, а соответствующее ему ребро зачисляется в сеть, если при этом не образуется циклов. Эти действия повторяются. Таким образом, на первых пяти шагах работы алгоритма будут выбраны ребра $\;\{1,5\}, \{2,6\}, \{4,5\}, \{3,7\}, \{7,9\}.$

Из оставшихся ребер минимальную длину имеет ребро $\;\{1,4\},\;$ но в сеть оно не включается, так как образует цикл с уже выбранными ребрами. На последующих этапах алгоритма в сеть будут включены ребра $\;\{5,8\}, \{2,7\}\;$ и $\;\{1,2\}.$

Для обоснования алгоритма предположим, что дерево $\;T,\;$ которое он строит, состоит из ребер

\begin{displaymath}\eqalign{&u_1\;,\quad u_2\;,\quad \ldots \;,\quad u_{n-1}\cr
&l(u_1)\le l(u_2)\le\ldots \le l(u_{n-1})\cr}\;.\end{displaymath}

Рассмотрим любое другое дерево $\;T',\;$ и упорядочим его ребра по возрастанию длин. Пусть первые $\;k-1\;$ ребер дерева $\;T'\;$ такие же, как в дереве $\;T,\;$ а $\;k$-е ребро отличается от $\;u_k\;,\;(1\le k\le n-1).\;$ Присоединим к дереву $\;T'\;$ ребро $\;u_k,\;$ тогда возникнет цикл, в который входят ребро $\;u_k\;$ и какие-то ребра из дерева $\;T'.\;$ Среди этих последних обязательно найдется ребро $\;u,\;$ длина которого не меньше, чем длина ребра $\;u_k:\;$ иначе ребро $\;u_k\;$ образовало бы цикл с ребрами меньшей длины, что исключается правилом выбора очередного ребра в рассмотренном алгоритме. Удалим из дерева $\;T'\;$ ребро $\;u,\;$ заменив его ребром $\;u_k.\;$ В результате получим дерево, длина которого не больше, чем длина дерева $\;T'.\;$ Аналогичным путем вводим в дерево $\;T'\;$ ребра $\;u_{k+1},\ldots ,u_{n-1},\;$ при этом всякий раз длина дерева не увеличивается. Это означает, что дерево $\;T,\;$ построенное по алгоритму, действительно, кратчайшее.

Пространство циклов. Система базисных циклов

Пусть дан граф $\;G=(X,U)\;,\;\vert U\vert=m.\;$ 3анумеруем в произвольном порядке ребра графа: $\;u_1,\ldots ,u_m.\;$ Напомним, что остовным подграфом графа $\;G\;$ называется граф $\;G' = (X,U')\;$ с тем же множеством вершин и множеством ребер, которое является частью $\;U: U'\subseteq U.\;$ Другими словами, остовный подграф можно получить, если из графа $\;G\;$ удалить некоторые ребра. Удобно поэтому, задавать остовный подграф при помощи двоичного слова $\;\tilde\alpha=\alpha_1\alpha_2\ldots\alpha_m,\;$ в котором нули указывают, какие ребра удалены, а единицы -- какие оставлены:

\begin{displaymath}G'\mapsto \alpha(G')=\alpha_1\alpha_2\ldots\alpha_m\;,\;
\alp...
... 0,& если $ u_i\notin U'$\cr}\;,\; i=1,\ldots ,m\;.\eqno{(3.4)}\end{displaymath}

Очевидно, что соответствие (3.4) является биекцией.

Пример. Слово $\;11\ldots 1\;$ задает исходный граф $\;G,\;$ слово $\;00\ldots 0\;$ -- его пустой остовный подграф.

Двоичные слова длины $\;m\;$ образуют векторное пространство над полем из двух элементов $\;\{0,1\;;+,\cdot\},\;$ в котором операции определены так

\begin{displaymath}\eqalign{&0+0=0\quad 0+1=1+0=1\quad 1+1=0\cr
&0\cdot 0=0\cdot 1=1\cdot 0=0\quad 1\cdot 1=1\;.\cr}\end{displaymath}

Суммой слов $\;\alpha_1\alpha_2\ldots\alpha_m\;$ и $\;\beta_1\beta_2\ldots\beta_m\;$ в этом пространстве является слово $\;\alpha_1+\beta_1,\alpha_2+\beta_2\ldots \alpha_m+\beta_m\;.$ Сумму двух слов можно также определить как слово, имеющее нули в тех разрядах, где разряды слагаемых совпадают, и единицы там, где разряды слагаемых различаются.

В силу биекции (3.4) мы можем не различать остовные подграфы и соответствующие двоичные слова и говорить о пространстве остовных подграфов графа $\;G\;$ -- это векторное пространство размерности $\;m\;$ над полем из двух элементов. Сумму двух остовных подграфов $\;G_1\;$ и $\;G_2\;$ будем обозначать $\;G_1\oplus G_2.\;$ В силу указанной биекции это остовный подграф, задаваемый словом $\;\alpha(G_1)+\alpha(G_2),\;$ он состоит из всех тех ребер, которые входят ровно в один из подграфов-слагаемых. Что касается операции умножения на скаляр, то она в рассматриваемом пространстве тривиальна: умножение на 1 не меняет подграф, умножение на 0 дает пустой подграф.

В качестве базиса в пространстве остовных подграфов можно взять совокупность из $\;m\;$ однореберных подграфов. Им соответствуют двоичные слова с одной единицей.

В пространстве остовных подграфов выделим подпространство, содержащее все циклы графа.

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

Всякий цикл является квазициклом. Приставка "квази" означает "как бы", "похожий на". Из теоремы об эйлеровом цикле следует, что кроме циклов, в число квазициклов входят подграфы, состоящие из нескольких компонент, каждая из которых является циклом (необязательно простым). Отметим также, что пустой подграф является квазициклом.

Лемма. Сумма двух квазициклов является квазициклом.

Доказательство. Пусть $\;C_1\;$ и $\;C_2\;$ -- квазициклы, покажем, что $\;C_1\oplus C_2\;$ тоже квазицикл. Рассмотрим произвольную вершину графа $\;G.\;$ Допустим, что в квазицикле $\;C_1\;$ к этой вершине примыкает $\;2k_1\;$ ребер, в квазицикле $\;C_2\;-\;2k_2\;$ ребер и пусть $\;k\;$ ребер из них общие для $\;C_1\;$ и $\;C_2.\;$ В сумму $\;C_1\oplus C_2\;$ войдут $\;2k_1-k\;$ ребер, входящих только в $\;C_1,\;$ и $\;2k_2-k\;$ ребер, входящих только в $\;C_2,\;$ всего -- $\;2(k_1+k_2-k)\;$ ребер. Следовательно, степень рассматриваемой вершины будет четной, т.е. $\;C_1\oplus C_2\;$ -- квазицикл.

Лемма показывает, что совокупность квазициклов так же является векторным пространством над полем $\;\{0,1\}.\;$ Оно называется пространством циклов графа $\;G.\;$ Ясно, что пространство циклов является подпространством в векторном пространстве остовных подграфов.

В следующей теореме находится размерность и базис этого подпространства.

Основная теорема.В графе $\;G\;$с цикломатическим числом $\;\lambda\;$ можно найти $\;\lambda\;$ простых циклов $\;C_1,\ldots ,C_{\lambda},\;$ со следующими свойствами:

1) любой квазицикл ( в частности, любой цикл ) можно представить в виде суммы некоторых циклов $\;C_1,\ldots ,C_{\lambda}\;$;

2) циклы $\;C_1,\ldots ,C_{\lambda}\;$ независимы, т.е. никакой из них нельзя выразить в виде суммы через остальные.

Система векторов, удовлетворяющая условиям 1) и 2), называется базисом, количество векторов в базисе называют размерностью соответствующего пространства. Поэтому совокупность циклов $\;C_1,\ldots ,C_{\lambda}\;$ носит название системы базисных циклов графа $\;G,\;$ а основную теорему можно сформулировать так:

размерность пространства циклов графа
равна его цикломатическому числу.

Доказательство будем вести для связного графа $\;G\;$ (система базисных циклов произвольного графа получается объединением систем базисных циклов компонент). Так как $\;G\;$ связный, то $\;\lambda=m-n+1.$

Выделим в графе $\;G\;$ какое-либо остовное дерево $\;T.\;$ В него входит $\;n-1\;$ ребро графа, остальные $\;m-(n-1)=\lambda\;$ ребер графа являются хордами этого дерева. 3анумеруем ребра графа так, чтобы первые $\;\lambda\;$ номеров получили хорды, а остальные -- ребра дерева. Для каждой хорды $\;u_i\;$ выполним следующее построение: присоединим хорду к дереву $\;T\;$ и построим цикл $\;C_i,\;$ состоящий из хорды $\;u_i\;$ и цепи в дереве, соединяющей концы хорды. Построенные таким образом циклы $\;C_1,\ldots ,C_{\lambda}\;$ и образуют систему базисных циклов.

Чтобы в этом убедиться, выпишем для каждого из базисных циклов соответствующее двоичное слово:


\begin{align}
\alpha(C_1)&=1\;0\;0\;\ldots\;0\;\alpha_{1,\lambda +1}\ldots \alph...
...
\noalign{\vskip-2pt}
&\hbox{\kern20pt хорды\kern15pt ребра дерева}
\end{align}

Никакой цикл $\;C_i\;$ нельзя выразить через остальные: соответствующее слово $\;\alpha(C_i)\;$ имеет единицу в $\;i$-м разряде, а у остальных слов в этом разряде стоит нуль.

Рассмотрим далее произвольный квазицикл $\;C\;$ и покажем, как его представить в виде суммы базисных циклов. Пусть $\;\alpha(C)\;$ слово, соответствующее $\;C.\;$ Среди первых $\;\lambda\;$ разрядов этого слова найдем все те, которые равны единице. Пусть $\;i_1,i_2,\ldots ,i_k\;$ -- номера этих разрядов. Рассмотрим квазицикл $\;C'=C_{i_1}\oplus C_{i_2}\oplus\ldots\oplus C_{i_k}.\;$ Он имеет единицы в тех же разрядах среди первых $\;\lambda,\;$ что и рассматриваемый квазицикл $\;C.\;$ Двоичные слова $\;\alpha(C)\;$ и $\;\alpha(C')\;$ совпадают в первых $\;\lambda\;$ разрядах, следовательно, слово $\;\alpha(C\oplus C')\;$ в первых $\;\lambda\;$ разрядах имеет нули, то есть квазицикл $\;C\oplus C'\;$ составлен только из ребер дерева. Учитывая, что любой квазицикл либо пустой, либо имеет компоненту, являющуюся циклом, и тот факт, что в дереве нет циклов, заключаем, что квазицикл $\;C\oplus C'\;$ пустой или $\;C\oplus C'=0.\;$ Отсюда $\;C=C',\;$ т.е. $\;C=C_{i_1}\oplus C_{i_2}\oplus\ldots\oplus C_{i_k}.$

Теорема доказана.

Пример. Построим систему базисных циклов для графа $\;G,\;$ показанного на рис. 3.22.

Выделим остовное дерево $\;T_1\;$ (рис. 3.23,а).


Рис. 3.23

Присоединяя к дереву по очереди хорды $\;u_1,u_2,u_3,u_4,\;$ получаем 4 базисных цикла, показанные на рис.3.24.


Рис. 3.24

Для того же графа можно построить систему базисных циклов, основываясь на дереве $\;T_2\;$ (рис.3.23,б). Действуя аналогично предыдущему, получаем базисные циклы, показанные на рис.3.25.


Рис. 3.25

Циклы одной из систем можно выразить как линейные комбинации циклов из другой системы. Для этого надо действовать как указано в доказательстве основной теоремы. Например, цикл $\;\widetilde C_4\;$ содержит хорды $\;u_2\;$ и $\;u_4\;$ дерева $\;T_1,\;$ поэтому $\;\widetilde C_4=C_2\oplus C_4.\;$ В итоге получим

\begin{displaymath}\matrix{\widetilde C_1&=&C_1&\oplus&C_2&\oplus&C_3&\oplus&C_4...
..._3&\oplus&C_4\cr
\widetilde C_4&=& & &C_2& & &\oplus&C_4\cr}\;.\end{displaymath}

Это знакомые по курсу линейной алгебры формулы перехода к новому базису в векторном пространстве (в данном примере 4-мерном). Матрица перехода

\begin{displaymath}\pmatrix{1&1&1&1\cr0&1&1&1\cr0&0&1&1\cr0&1&0&1\cr}\end{displaymath}

невырожденная и имеет обратную

\begin{displaymath}\pmatrix{1&1&0&0\cr0&1&1&0\cr0&1&0&1\cr0&1&1&1\cr}\;,\end{displaymath}

которая является матрицей обратного перехода: от $\;\widetilde C_1,\widetilde C_2,\widetilde C_3,\widetilde C_4\;$ к $\;C_1,C_2,C_3,C_4\;.$
Hosted by uCoz