На этом шаге мы рассмотрим деревья.
Деревом называется произвольный связный граф без циклов.
При добавлении ребра возможны две ситуации:
Следовательно, при добавлении q ребер число компонент уменьшится не более чем на q, и, следовательно, количество компонент в графе будет больше либо равно p-q. Это доказывает утверждение (1).
В соответствии с леммой 1, при добавлении ребра в связный граф в нем появляется цикл. Если в графе нет циклов, это означает, что при добавлении ребер всегда происходил вариант (а) - иначе появились бы циклы. Следовательно, число компонент при каждом добавлении ребра уменьшалось на единицу, и после добавления q ребер в графе будет ровно p-q компонент. Это доказывает утверждение (2).
(1)=>(2): допустим, что некоторые две вершины v1 и v2 графа G соединены, по крайней мере, двумя различными простым цепями L1=u1...uk, где u1=v1 и uk=v2, и L2=w1....wm, где w1=v1 и wm=v2. Из того, что цепи являются простыми и различными, следует, что существует число j, 1<j<min(k,m), такое, что uj-1=wj-1, ujw'j, ... , uj+a-1w'j+b-1, uj+a=wj+b, где a=1, b=1. Следовательно, в G существует цикл С=uj-1(uj-1,uj)uj...uj+a(wj+b,wj+b-1)wj+b-1... wj(wj,wj-1)wj-1 (см. рисунок) - получили противоречие с (1).
Рис.1. Иллюстрация к (1)=>(2)
(2)=>(1):
(а) граф G является связным по определению связности (любые две вершины графа соединены цепью);
(б) допустим, что в графе G существует цикл, проходящий через некоторую вершину v: C=v(v,u1)u1....uk(uk,v)v. Но это означает, что между v и любой из вершин ui существуют, по крайней мере, два различных пути L1=v(v,u1)u1...ui-1(ui-1,ui)ui и L2=v(v,uk)uk...ui+1(ui+1,ui)ui (пути различны, т.к. по определению в цикле отсутствуют повторяющиеся ребра). В силу утверждения 1 из этих путей можно "выделить" простые цепи, которые также будут различны (в L1и L2 нет совпадающих ребер), - получили противоречие с (2).
Из (а), (б) и определения дерева следует, что G является деревом.
(2)=>(3): по теореме 2;
(3)=>(4): по лемме 3;
(4)=>(5): т.к. |E|=|V|-1, то после удаления ребра в новом графе будет |V|-2 ребер, и по следствию 1 леммы 3 этот граф будет несвязным;
(5)=>(6):
(a) докажем первую часть утверждения (G - граф без циклов): допустим, в G есть циклы; но тогда при удалении любого кольцевого ребра он останется связным, что противоречит (4);
(b) докажем вторую часть утверждения (при добавлении любого ребра в G появляется ровно один простой цикл): из связности графа и леммы 1 следует, что при добавлении любого ребра в G появляется, как минимум, один простой цикл; в силу (2) этот простой цикл единственен (обратное означало бы, что в G существуют вершины, соединенные более чем одной простой цепью);
(6)=>(1): допустим, G - не дерево, т.е. граф не связен или содержит циклы. Циклов не может быть в силу (5а), поэтому остается вариант: G - несвязен и состоит минимум из двух компонент. Но тогда при добавлении ребра между вершинами, принадлежащими разным компонентам, циклы не образуются, а это противоречит (5б).
Остовным деревом (остовом) связного графа называется любой его остовный подграф, являющийся деревом.
Существование остовного подграфа для любого связного графа доказывается теоремой 1.
Общее число остовных деревьев связного графа может быть весьма велико. Так, для полного графа с n вершинами оно равно nn-2 (без доказательства).
Рис.2. Граф и два его остовных дерева (удаленные ребра показаны пунктиром)
Для произвольного (возможно, несвязного) графа G остовное дерево определяется как любой его остовный подграф, не содержащий циклов и имеющий столько же компонент связности, что и G.
На следующем шаге мы рассмотрим цикломатическое число и фундаментальные циклы.