Элементы-теории

advertisement
2. Основные положения теории графов
2.1 Определение графа
Рассмотрим множество V, состоящее из соединенных некоторым
образом точек. Элементы v i  V - вершины графа. Граф G=G(V) с
множеством вершин V есть некоторое семейство сочетаний или пар вида
E  (vi ,v j ), vi , v j V
указывающие, какие вершины считаются соединенными.
В соответствии с геометрическим представлением графа каждая
конкретная пара называется ребром (дугой) графа, vi , и v j - концевые
точки.
Можно определить понятие графа иначе, если представить себе
некоторое множество точек плоскости V, называемых вершинами, и
множество направленных отрезков E, соединяющих все или некоторые из
вершин и называемых дугами. Т.е. математически граф G можно определить
как пару множеств G=(V, E), где E  V  V . Примерами графа может
являться карта автомобильных или железных дорог, схемы соединения
электрических цепей и т.п.
Можно считать, что множество направленных дуг E, соединяющих
элементы множества V, отображают это множество само в себя. Поэтому
можно считать граф заданным, если дано множество его вершин V и способ
отображения Г множества V в V (Г:VV). Таким образом, граф G есть пара
(V, Г), состоящая из множества V и отображения Г, заданного на этом
множестве.
G=(V, Г).
2.1
Так, рис. 2.1 изображен граф, вершинами которого являются точки a, b,
c, d, e, g, h, а дугами – отрезки (a, a), (c, b), (c,d), (c, e), (d, c), (d, d), (e, d),
(g, h). Отображение приведенного графа будет определяться следующим
образом: Га={а}; Гb=; Гс={b, d, e}; Гd={d,c}; Ге={d}; Гg={h}; Гh=.
Рис. 2.1
Нетрудно видеть, что данное определение графа полностью совпадает
с определением отношения на множестве.
Из сказанного можно определить, что графом G (V, E) называется
совокупность двух множеств – непустого множества V (множества вершин) и
множества Е его двухэлементных подмножеств множества V (Е – множество
ребер или дуг).
В определении ребра можно принимать или не принимать во внимание
порядок расположения двух его концов. Если этот порядок несуществен, т.е.
если E  ( vi ,v j )  ( v j ,vi ) , то E есть неориентированное ребро, если же
порядок существен, то D называют ориентированным ребром, и при этом vi –
начальная вершина, v j – конечная вершина.
Граф называется ориентированным, если ориентированы все его
ребра.
неориентированный граф
ориентированный граф
Рис. 2.2
В ряде случаев имеет место смешанные графы.
Как в случае ориентированного, так и неориентированного ребра
говорят, что ребро (дуга) E=(vi, vj) инцидентно вершинам vi и vj, а также, что
вершины vi и vj инцидентны ребру (дуге) E. Две вершины, инцидентные
одному ребру (дуге) называются смежными. Вершина, не инцидентная
никакому ребру (дуге), называется изолированной. Часто имеет смысл
учитывать только неизолированные вершины.
Число инцидентных вершине u ребер называется степенью вершины
и обозначается deg(u).
Граф, состоящий только из изолированных вершин, называется нульграфом.
Наиболее важным случаем является полный граф G=(V, E), ребрами
которого являются всевозможные пары ( vi , v j ) для двух различных вершин vi
и vj из V. Полный граф с n вершинами обозначается K n . На рис. 2.3
приведены полные графы K 4 и K 5 соответственно.
Рис. 2.3
В ориентированном полном графе имеются пары ребер, по одному в
каждом направлении, соединяющие любые две различные вершины vi и vj.
Ребра, у которых обе концевые точки совпадают L=(a, a) называются
петлей. (См. рис. 2.1 вершины “а”, “d”). Петля обычно считается
неориентированной. Можно расширить полный граф до полного графа с
петлями, добавляя петлю в каждой вершине.
Допускается, чтобы пара вершин соединялась несколькими
различными ребрами.
Для каждого ориентированного графа существует обратный граф G*,
получаемый изменением ориентации каждого из ребер графа G на
противоположное.
Для каждого ориентированного графа существует также соотнесенный
неориентированный граф Gu, ребрами которого являются ребра графа G,
но уже без ориентации. Иногда удобно превратить неориентированный граф
G в ориентированный граф Gd при помощи процесса удвоения, состоящего в
замене каждого ребра G парой ребер с теми же вершинами и приписыванием
им (ребрам) противоположных ориентаций.
Граф называется плоским если он может быть изображен на плоскости
так, что все пересечения ребер являются вершинами G.
Регулярные графы. Граф называется регулярным, или однородным,
если все его вершины имеют одну и туже степень. Если степень каждой
вершины равна k, то граф называют регулярным графом степени k.
Например, полный граф n-го порядка есть регулярный граф степени k=n-1.
Например, регулярные графы степени 3 называют кубическими, или 3-х
валентными графами. В качестве примера на рис. 2.4 приведен кубический
граф Петерсена.
Рис. 2.4
Платоновы графы.
Платоновыми графами называются графы,
образованные вершинами и ребрами пяти правильных многогранников –
Платоновых тел: тетраэдра, куба, октаэдра, додекаэдра, икосаэдра.
Двудольные графы. Граф называется двудольным, если существует
такое разбиение его вершин на два класса, при котором концы каждого ребра
лежат в разных классах.
Подграфом GA графа G=(V, Г) называется граф, в который входит лишь
часть вершин графа G, образующих множество А, вместе с дугами,
соединяющими эти вершины. Например, очерченная пунктиром область на
рис. 2.1. Математически это записывается следующим образом:
GA=(A, ГА),
2.2
где A  V , Г A v  ( Гv )  A
2.3
Частичным графом G по отношению к графу G=(V, Г) называется
граф, содержащий только часть дуг графа G, т.е. определяемый условием
G=(V, ),
2.4
Δv  Гv .
где
Например, если G=(V, Г) – карта автомобильных дорог России, тогда
карта дорог Нижегородской области представляет собой подграф, а карта
главных автомагистралей России – частичный граф.
Путем в графе G называют такую последовательность дуг d=(u1, u2,
…uk), в которой конец каждой предыдущей дуги совпадает с началом
следующей. Путь d, последовательными вершинами которого являются
вершины a, b, c, … m обозначается через d=(a, b, c, … m).
Длиной пути d=(u1, u2, … uk) называют число l(d)=k, равное числу дуг,
составляющих путь d. Иногда каждой дуге ui приписывают некоторое число
l(ui), называемое длиной дуги. Тогда длина пути определяется как сумма
длин дуг, составляющих путь
l( d )   l( u ) .
2.5
ud
Путь, в котором никакая дуга не встречается дважды, называется
простым. Путь, в котором никакая вершина не встречается дважды,
называется элементарным.
Контур – это конечный путь d=(v1, v2, … vk), у которого начальная
вершина х1 совпадает с конечной vk. При этом контур называется
элементарным, если все его вершины различны (за исключением начальной
и конечной, которые совпадают). Контур единичной длины, образованный
дугой вида (а, а), называется петлей. Так, на рис. 2.1 (e, d, c, b) – путь, (с, e, d,
c) – контур, (d, d) –петля.
Для неориентированного графа соответственно вводятся понятия цепи
и цикла. Цепь (цикл) называется эйлеровой, если она проходит через все
ребра по одному разу. Цепь (цикл) называется гамильтоновой, если она
проходит через все вершины графа по одному разу.
2.2 Операции над графами
2.2.1 Операция удаления ребра
Пусть G=(V,E) – граф, и e E - некоторое его ребро. Граф G1 =
G-e получен из графа G в результате удаления ребра е, т.е. G1  ( V , E \ { e }) .
Следовательно, концы ребра е не удаляются из множества V. Также вполне
очевидно, что ( G  e )  ei  ( G  ei )  e . Действительно, поскольку имеет
место тождество ( A \ B ) \ C  A \ ( B \ C ) , то имеем G1  G  e  ( V , E \ { e }) .
( G  e )  ei  G1  ei  ( V ,( E \ { e }) \ { ei })  ( V , E \ ({ e }  { ei }) 
( V , E \ ({ ei }  { e }))  ( V ,( E \ { ei } \ { e })  ( G  ei )  e.
Следовательно, если выполняется операция удаления сразу нескольких
ребер (дуг), то это можно делать в произвольной очередности, т.к. результат,
как мы определили, не зависит от очередности удаления ребер (дуг) в графе.
Рис. 2.5
На рис. 2.5 приведен пример последовательного удаления 2-х ребер:
(1,2) и (4,5).
2.2.2 Операция удаления вершины
Пусть G=(V,E) – граф, и v V - некоторая его вершина. Граф G1 = G-v
получен из графа G в результате удаления вершины v, т.е. G1  ( V \ { v }, E' ) ,
где E' - множество ребер (дуг) без ребер (дуг), инцидентных удаленной
вершине v, т.е. при удалении вершины v удаляются все инцидентные ей
ребра (дуги). На рис. 2.6. приведен пример удаления вершины 4 из графа.
Рис. 2.6
Нетрудно убедиться, что операция удаления вершины не зависит от
порядка, в котором удаляются вершигы из графа.
2.2.3 Операция введения ребра
Если u , v V и ( u ,v )  E в графе G  ( V , E ) , то
граф
G1  G  e  ( V , E  { e }) , где e  ( u ,v ) , получен из графа G введением ребра
e  ( u ,v ) .
В силу коммутативности операции объединения множеств
последовательность операции добавления ребер в граф G не зависти от
порядка, в котором эти ребра добавляются в граф, т.е.
e ,ei  E | (( G  e )  ei )  ( G  ei )  e ) .
2.2.4 Операция введения вершины в ребро
Пусть ( u ,v ) некоторое ребро графа G . Добавлением вершины w в
ребро ( u ,v ) называется операция, в результате которой получается два
ребра: ( u ,w ) и ( w,v ) , а ребро ( u ,v ) удаляется из графа G .
2.2.5 Операция объединения графов
Граф G  G1  G2 получен объединением графов G1  ( V1 , E1 ) и
G2  ( V2 , E 2 ) , если G  ( V1  V2 , E1  E2 ) .
Объединение графов называется дизъюнктивным, если V1  V2   .
Граф называется связным, если его нельзя представить в виде
дизъюнктивного объединения двух подграфов, и несвязным – в противном
случае. Всякий несвязный граф можно представить в виде конечного числа
связных подграфов, каждый из которых называется компонентом связности.
Например, связный регулярный граф степени 2 с n вершинами называется
циклическим графом и обозначается C n
2.2.6 Операция пересечения графов
Пересечением графов G1  ( V1 , E1 ) и G2  ( V2 , E2 ) называется граф
G  ( V1  V2 , E1  E2 ) .
2.2.7 Операция произведения графов
Произведением графов G1  ( V1 , E1 ) и G2  ( V2 , E2 ) называется граф
G  G1  G2 , для которого V  V1  V2 , а множество ребер определяется
следующим образом: вершины ( u1 ,u 2 ) и ( v1 ,v2 ) смежные в G тогда и
только тогда, когда u1  v1 , а u 2 и v 2 смежные в G2 , или u 2  v2 , а u1 и v1
смежные в G1 (Рис. 2.7)
G1
G2
G  G1  G2
Рис.2.7
2.2.8 Оперция слияния вершин
Пусть G  ( V , E ) граф, u , v - две его вершины и S ( u )  { u1 ,u 2 ,u k } множество вершин, смежных с вершиной u , а S ( v )  { v1 ,v2 vm } множество вершин, смежных с вершиной v . Граф H  G  u  v , полученный
присоединением новой вершины w к множеству вершин графа H и
множества ребер вида ( w ,u i ) ( i  1,2 , k ), ( w,v j ) ( j  1,2,m ) называется
графом, полученным из G слиянием вершин u и v . На рис. 2.8. приведен
пример слияния вершин 2 и 4.
Рис. 2.8
2.2.9 Операция стягивания ребра
Граф H называется графом, стягивающимся к графу G , если граф H
можно получить некоторой последовательностью операция слияния вершин
(стягивание ребра). Например, граф Петерсена стягивается к графу K 5 , далее
к K 4 , затем к K 3 , K 2 . Очевидно, что любой непустой граф, отличный от K1 ,
стягивается к графу K 2 . Но не всякий связный граф стягивается к K 3 .
Например, простая цепь Pn не стягивается к K 3
Максимум порядков полных графов, к которым стягивается граф G ,
называется числом Хадвигера и обозначается χ( G ) .
2.2.10 Операция раздвоения (расщепления) вершины
Пусть v - некоторая из вершин графа G . Множество смежных ей
вершин произвольным образом разобьем на два класса A и B . Далее,
удалим вершину v вместе с инцидентными ей ребрами и добавим две новые
вершины u и w соединенные ребром ( u ,w ) . Вершину u соединим ребром с
каждой вершиной множества A , а вершину w - с каждой вершиной из
множества B . Таким образом, из графа G получен новый граф G*
результате операции расщепления вершины v . На рис. 2.9. приведен
пример расщепления вершины
Рис. 2.9
2.2.11 Операция соединения графов
Пусть G1  ( V1 , E1 ) и G2  ( V2 , E2 ) - два графа и V1  V2   . Операция
соединения графов G1 и G2 заключается в том, что множества вершин V1 и
V2 объединяются, и затем каждая вершина графа G1 соединяется ребрами с
каждой вершиной графа G2 . На рис. 2.10 приведен пример получения графа
W7 , называемого колесом, соединением графов N1 и C 6 .
Рис. 2.10
2.2.12 Операция дополнения графа
Пусть дан граф G  ( V , E ) и |V | n . Дополнением графа G называется
граф G* с множеством верши V , в котором две вершины смежные тогда и
только тогда, когда они несмежные в графе G . Из этого определения
получается правило построения графа G* , для чего необходимо построить
полный граф K n и удалить из него все ребра, принадлежащие графу G .
Очевидно, что, например, дополнением полного графа является пустой граф,
и наоборот – дополнением пустого графа является полный граф. На рис. 2.11
Приведен граф G* , являющейся дополнением графа G .
Рис. 2.11
2.2 Матричные представления графа
Одной из форм математического представления графа является его
представление в виде матриц смежности и инциденций.
Вершины vi и v j являются смежными, если они различны и если
существует дуга, идущая из vi в v j .
Дугу u называют инцидентной вершине vi , если она заходит в эту
вершину или исходит из нее.
Матрицей смежности R= [ri , j ]nn графа G  ( V , E ) называется
квадратная матрица порядка n (n – число вершин графа), элементы которой
ri,j (i=1, 2, …n; j=1,2, …n) определяются следующим образом:
1, если существует дуга из vi в v j ;
ri , j  
2.6
0
,
в
противном
случае
.

Матрица смежности полностью определяет структуру графа. Возведем
матрицу смежности в квадрат. Элемент ri2, j матрицы R2 определяется по
формуле:
ri2, j
n
  ri ,k  rk , j .
k 1
2.7
Слагаемое ri ,k  rk , j  1 тогда и только тогда, когда ri ,k  1 и rk , j  1 , в
противном случае слагаемое ri ,k  rk , j  0 . Так как из равенства ri ,k  rk , j  1
следует существование пути длины два (пути, проходящего через две дуги)
из вершины vi в вершину v j , проходящего через вершину v k , то ri2, j равно
числу путей длины два, идущих из vi в v j через v k .
Если ri ,pj является элементом матрицы R p , то rip, j 0 равно числу путей
длины p, идущих из vi в v j .
Пример. На рис. 2.4 задан граф G. построить матрицу смежности и
выяснить, сколько путей длины три существует в графе G.
Рис. 2.4
Решение.
0 1

0 0
R
0 0

0 0
0

0
R3  
0

0
0
0
0
0
0
1
0
0
0
0
0
0
0

0
1

0
1

0
0

0 
0

0
R2  
0

0
0
0
0
0
0

0
R4  
0

0
0 0 0

0 0 0
0 0 0

0 0 0 
1
0
0
0
0

1
0

0
Элемент r13, 4  1 , следовательно в данном графе существует
единственный путь длиной три – это путь из вершины х1 в вершину х4: (х1 ,
x2), ( x2, x3 ), (x3, x4)
Все элементы матрицы R 4 равны нулю. Следовательно, в графе
отсутствуют пути длиной четыре.
Матрицей инциденций S  [ si , j ] nm называется прямоугольная
матрица размерности nm (n-число вершин, m – число дуг), элементы
которой si , j ( i  1,n; j  1,m ) определяются следующим образом:
si , j
 1, если äóãà d j исходит из âåðøèíû vi ;

  1, если äóãà d j заходит в vi ;

 0, если äóãà d j не инцидентна vi .
2.8
Если граф G не содержит петель, то каждый столбец матрицы S
содержит единственный элемент, равный 1 (дуга имеет начало) и
единственный элемент, равный –1 (дуга имеет конец), а остальные элементы
равны нулю.
Пример. Построить матрицу смежности и матрицу инциденций для
графа, приведенного на рис. 2.5.
Решение.
Матрица смежности будет иметь вид:
Рис. 2.5
xi
x1
x2
x3
x4
x5
x1
0
0
0
0
1
Матрица инциденций будет иметь вид:
xi /uj
u1
u2
u3
u4
u5
u6
x1
-1
1
1
0
0
0
x2
0
0
-1
1
-1
1
x3
0
0
0
0
0
-1
x4
0
-1
0
-1
1
0
x5
1
0
0
0
0
0
x2
1
0
0
1
0
x3
0
1
0
1
1
u7
0
0
-1
1
0
x4
1
1
0
0
0
u8
0
0
0
1
-1
x5
0
0
0
1
0
u9
0
0
1
0
1
Или в более компактной форме матрица смежности R и инциденций S
будут иметь вид:
0 1 0 1 0 
1 1 1 0 0 0 0 0 0 




0 0 1 1 0 
 0 0 1 11 1 0 0 0 
R   0 0 0 0 0 ;
S   0 0 0 0 0 11 0 1  .




0
1
1
0
1
0

1
0

1
1
0
1
1
0




1 0 1 0 0 
 1 0 0 0 0 0 0 1 1 




2.3. Матрица достижимостей
Вершина графа vi называется достижимой из вершины v j того же
графа, если существует по крайней мере один путь из vi в v j .
Множество вершин R(vi), достижимых из некоторой вершины vi  V ,
определяется следующим выражением:
R( vi )  { vi }  Г ( vi )  Г 2 ( vi )    Г p ( vi )
2.9
Действительно, первым элементом множества R( vi ) является вершина
vi , которая достижима из себя самой с помощью пути длины нуль; Г(vi) –
множество вершин vj, достижимых из vi с использованием путей длины
единица; Г2(vi) – множество вершин, достижимых из vi с использованием
Г p ( vi ) - множество вершин, достижимых из vi с
путей длины два;
использованием путей длины p. Таким образом, множество R(vi) получается
путем последовательного выполнения слева направо операции объединения
в выражении (2.9) до тех пор, пока мощность текущего множества не
перестанет увеличиваться при очередной операции объединения. С этого
момента последующие операции объединения не будут давать новых
элементов множеству R(vi). Число объединений, которые необходимо
выполнить, зависит от графа G. Но если граф конечен, то p<n, где n – число
вершин графа.
Матрицей достижимостей
D  [ d i , j ] nn называется квадратная
матрица порядка n, элемент которой
1, если x j  R( xi ),
di , j  
0  в противном случае.
Пример. Построить матрицу достижимостей графа G, представленного
на рис. 2.6.
Рис. 2.6
Решение. X={x1, x2, x3, x4}; Г(х1)={x2}; Г(х2)={x3}; Г(х3)={x4}; Г(х4)={x3}.
D( x1 )  { x1 }  { x2 }  { x3 }  { x4 }  x3 }  { x1 , x2 , x3 , x4 } ;
D( x2 )  { x2 }  { x3 )  { x4 }  { x3 }  { x2 , x3 , x4 } ;
D( x3 )  { x3 }  { x4 }  { x3 }  { x3 , x4 } ;
D( x4 )  { x4 }  { x3 }  { x4 }  { x3 , x4 } .
Следовательно, матрица достижимостей имеет вид:
1 1 1 1 


0 1 1 1 
.
D
0 0 1 1


0
0
1
1


Очевидно, что элементы di,i=1, i=1, 2, …, n, так как каждая вершина
достижима из себя самой.
Матрица
контрдостижимостей
(обратных
n
Q  [ d i , j ] n определяется следующим образом:
1, если x j  Q( vi ),
qi , j  
0  в противном случае
достижимостей)
2.10
где Q(vi) – множество таких вершин viV, что из любой вершины этого
множества можно достигнуть вершину vi:
Q( vi )  { vi }  Г 1( vi )  Г 2 ( vi )    Г  р ( vi ),
2.11
где Г 1( vi ) - множество вершин, из которых достижима вершина vi с
использованием пути длины единица; Г 2 ( vi ) – множество вершин, из
которых достижима вершина vi с использованием пути длины два и т.д.
Операция объединения в выражении (2.10) выполняется слева направо до тех
пор, пока очередное объединение не перестанет изменять “текущее
множество”.
Пример. Построить матрицу контрдостижимостей Q для графа G
рис. 2.6.
Решение. Q( x1 )  { x1 }; Q( x2 )  { x2 }  { x1 }  { x1 , x2 };
Q( x3 )  { x3 }  { x2 , x4 }  { x1 , x3 }  { x1 , x2 , x3 , x4 };
Q( x4 )  { x4 }  { x3 }  { x2 , x4 }  { x1 , x3 }  { x1 , x2 , x3 , x4 }.
Матрица контрдостижимостей будет иметь вид:
1 0 0 0 


1 1 0 0 
.
Q
1 1 1 1 


1
1
1
1


Из определения матриц D и Q следует, что Q=DT. Так как D(vi)
является множеством вершин, достижимых из vi V , а Q(vj) – множество
вершин, из которых достижима вершина vj, то D(vi)  Q( v j ) - множество
таких вершин, каждая из которых принадлежит по крайней мере одному
пути, идущему от vi к vj. Эти вершины называются существенными
(неотъемлемыми) относительно двух концевых вершин vi и vj. Вершины
vk  D( vi )  Q( v j ) называются несущественными (избыточными), так как их
удаление не влияет на пути от vi к vj.
2.4 Матрица Кирхгофа
Еще одной формой матричного представления неориентированных
графов является матрица Кирхгофа.
Пусть G  ( V , E ) - граф порядка n и V  { v1 ,v2 ,v3 ,vn } . Матрицу
B( G ) для графа G определим следующим образом:
 1, åñëè (vi ,v j )  E

bijj  0 , åñëè i  j è (vi ,v j )  E
2.12

deg( vi ) åñëè i  j
Матрица B( G ) называется матрицей Кирхофа графа G . Сумма
элементов каждой строки и каждого столбца этой матрицы равна нулю. На
рис 2.7 приведен граф и соответствующая ему матрица Кирхгофа.
2 -1-1 0 0 


-1 3 0 -1-1 
B  -1 0 3 -1-1 


 0 -1-1 3 -1 
 0 -1-1-1 3 


Рис. 2.7
2.5. Изоморфизм графов
Пусть G  ( V , E ) и H  ( V1 , E1 ) - графы и h : V  V1 - взаимнооднозначное соответствие. (Заметим, что | V || V1 | ). Отображение называется
изоморфизмом графов G и H , если для любых вершин u и v графа G их
образы h( u ) и h( v ) смежные в графе H тогда и только тогда, когда u и v
смежные в G . Если такое отображение существует, то графы G и H
называются изоморфными.
Очевидно, что отношение изоморфизма графов является отношением
эквивалентности.
Другими словами: графы G и H изоморфны, если существует такое
взаимно-однозначное соответствие между множеством вершин V и V1 , что
любые две вершины одного графа смежные тогда и только тогда, когда
соответствующие им вершины другого графа также смежны. На рис. 2.8.
приведены изоморфные графы: G и H ; A и B ; G1, G2 и G3.
Рис. 2.8
Теорема. Графы изоморфны тогда и только тогда, когда их матрицы
смежностей можно получить одну из другой одинаковыми перестановками
строк и столбцов.
Доказательство.
Пусть заданы два изоморфных графа. G  ( V , E ) и H  ( V1 , E1 ) .
Перенумеруем вершины графов G и H целыми числами от 0 до n .
| V || V1 | . A( G ) и B( H ) - матрицы смежностей графов G и H
соответственно. Если A( G )  B( H ) , то все доказано. В противном случае
графы G и H отличаются лишь нумерацией вершин. Значит, существует
такая подстановка S на множестве вершин
V , которая сохраняет
смежность, т.е. если u ,v )  E , то S ( u ), S ( v )  E1 . Тогда получаем
bs( i )S ( j )  aij , где i , j  1,2,3,n . Теорема доказана.
Следует заметить, что теорема об изоморфизме графов остается
справедливой, если рассматривать не матрицы смежностей, а матрицы
Кирхгофа.
2.4. Неориентированные графы
Как было уже сказано выше, иногда графы рассматривают без учета
ориентации
дуг.
В
этом
случае
такие
графы
называют
неориентированными графами. Для неориентированного графа понятие
«дуга», «путь», «контур» заменяются соответственно понятиями «ребро»,
«цепь», «цикл». Ребро – отрезок, соединяющий две вершины. Цепь –
последовательность ребер. Цикл – цепь, у которой начальная и конечная
вершины совпадают.
Описать неориентированный граф G можно и путем задания пары
множеств (V, E), где V – множество вершин; E-множество ребер. Однако
более удобным является описание неориентированного графа матрицей
смежности или матрицей инциденций, которые строятся аналогично
соответствующим матрицам для ориентированных графов с той разницей,
что не делается различия между заходящей и исходящей из нее дугами. При
этом вершины х и y называются смежными, если существует ребро их
соединяющее, а само это ребро называется инцидентным вершинам х и у.
Пример. Построить матрицу смежности и матрицу инциденций для
неориентированного графа, приведенного на рис. 2.7.
Рис. 2.9.
Вершины у графа рис. 2.9 обозначены цифрами, а ребра – латинскими
буквами. Матрица смежности R и матрица инциденций S будут иметь вид:
0 1 1 0

1 0 1 0
R  1 1 0 1

0 0 1 0
0 0 0 0

0

0
0;

0
0 
1

1
S  0

0
0

0
1
1
0
0
1
0
1
0
0
0 

0 
1 .

1
0 
Степенью вершины хi, обозначаемой deg(xi) или d xi , называют число
ребер, инцидентных вершине xi. Так, для графа рис. 2.9 имеем: d1  2, d 2  2,
d 3  3, d 4  1, d 5  0 . Если d xi =1, то вершину называют тупиковой (вершина
4 рис.2.7). Если d xi =0, то вершину называют изолированной (вершина 5 рис.
2.7).
Теорема. (О сумме степеней вершин графа).
Пусть G –
неориентированный граф с n вершинами и m ребрами и dV j - степень j –ой
вершины. Тогда
n
 dV
j 1
j
 2m .
2.13
Доказательство. Каждое ребро добавляет единицу к степени каждой из
двух вершин, которое оно соединяет. Поэтому сумма степеней графа будет в
два раза больше количества его ребер. Теорема доказана.
Следствие. В каждом графе число вершин нечетной степени четно.
Для неориентированного графа понятия «подграф», «частичный граф»
аналогичны соответствующим понятиям для ориентированного графа.
С понятием неориентированного графа связана важная характеристика, называемая связностью графа. Граф связен, если любые две его
вершины можно соединить цепью. Если граф G не связен, то его можно
разбить на такие подграфы Gi, что все вершины в каждом подграфе связны, а
вершины из различных подграфов не связны. Такие подграфы Gi называют
компонентами связности графа G.
Итак, если в произвольном графе G вершина а связана с вершиной b, а
вершина b связана с вершиной c, то очевидно, что а связана с с. Отношение
связанности вершин является отношением эквивалентности. Следовательно,
существует такое разложение множества вершин V  Vi на попарно
i
непересекающиеся подмножества, что все вершины в каждом Vi связаны, а
вершины из различных Vi не связаны. В соответствии с этим и имеем прямое
разложение графа G   G( Vi ) на непересекающиеся связанные подграфы
i
G( Vi ) - компоненты связности графа G. Т.о. получили следующее
утверждение (Теорема): Каждый неориентированный граф распадается
единственным образом в прямую сумму своих связанных компонент.
Если из графа рис.2.7 исключить изолированную вершину 5, то
полученный граф будет связным.
Для того, чтобы определить связность ориентированного графа, не
нужно обращать внимание на ориентацию дуг. Граф, изображенный на рис.
2.1, несвязный, однако его подграф, состоящий из вершин b, c, d, e, является
связным. Для ориентированного графа существует понятие сильной
связности. Граф сильно связен, если для любых двух вершин (x и у, ху)
существует путь, идущий из х в у.
1.5.
Ориентированный граф
2.5.1 Определения:


 Степенью выхода вершины v (часто обозначается как β( v ) , deg( v ) ,
или out(v)) ориентированного графа называют число дуг, выходящими из
этой вершигы. Если out(v)=0, то вершина называется стоком.
 Степенью входа вершины v ориентированного графа называют число


дуг входящих в эту вершину, и обозначают как β ( v ) , deg( v ) , in(v) Если
in(v)=0, то вершина v называется источником.
 Ориентированный граф с одним источником и одним стоком называют
сетью (граф-сетью), т.е. граф-сеть – это ориентированный граф, в
котором нет циклов (Рис. 2.10).





Рис. 2.10
Путем орграфа называется последовательность дуг, в которой конечная
вершина всякой дуги, отличной от последней, является начальной
вершиной следующей дуги.
Число дуг пути называеся длиной пути.
Путь называется контуром, если его начальная вершина совпадает с
конечной вершиной.
Путь (контур), в котором все дуги различны, называется простым.
Путь (контур), в котором все вершины, кроме первой и последней,
различны, называется элементарным
2.5.2 Взвешенный ориентированный граф
Граф называется взвешенным (нагруженным), если дугам этого графа
поставлены в соответствие веса, так что дуге ( vi ,v j ) сопоставлено некоторое
число l( vi ,v j )  cij , называемое весом дуги.
Весом (или длиной, стоимостью) пути S , состоящего из некоторой
последовательности дуг ( vi ,v j ) , называется число l( S ) , равное сумме весов
дуг, входящих в этот путь, т.е. l( S )   cij .
 
Матрица C  cij называется матрицей весов, где cij - вес дуги
( vi ,v j ) , если дуга ( vi ,v j ) существует. Если дуга ( vi ,v j ) не существует, то ее
вес обозначается знаком  .
На рис. 2.11 приведен взвешенный граф и соответствующая ему
матрица весов.


C


Рис. 2.11
1




2




4

3

6

5



Например, для графа рис. 2.11 длина пути ( v1 , v2 , v5 , v4 ) = 1+5+6=12.
Пусть M V - множество меток вершин и M E - множество весов (меток)
дуг графа G  ( V , E ) . И задано f : V  M V - распределение меток вершин и
g : E  M E - весов дуг. Для вершины vi V элемент f ( vi ) называется
весом вершины vi , а для дуги ek  E элемент g ( ek ) - весом дуги ek . Граф
вида G  ( V , E , f , g ) называется помеченным графом.
Пример. Пусть задан граф: V  { v1 , v2 , v3 , v4 } - множество его вершин
и E  {( v1 ,v2 ), ( v2 ,v3 ), ( v1 ,v4 ), ( v2 ,v4 ), ( v3 ,v4 )} - множество его дуг. Заданы
распределения меток вершин f : V  N и дуг g : E  l , где N={Н.Новгород,
Арзамас, Павлово, Саров} и l={113, 75, 79, 138, 138} и f={(v1, Н.Новгород),
(v2, Арзамас), (v3, Саров), (v4, Павлово)}; g={<(v1,v2), 113>, <(v2,v3), 76>,
<(v1,v4), 79>, <(v2,v4), 138>, <(v3,v4) 134>}. Полученный помеченный граф
G  ( V , E , f , g ) и его матрица весов L приведены на рис. 2.12
0 113
113 0
L
 75
79 138
 79
75 138
0 138
138 0
Рис. 2.12
2.5.4 Расстояния в графах
Пусть задан связный неорграф G  ( V , E ) и две несовпадающие
вершины a и b.
Определения.
 Длина кратчайшего пути маршрута называется расстоянием между
вершинами a, b и обозначается ρ ( a ,b ) .
 Если V={v1, v2, … vn}, то матрица P  ( pij ) , в которой pij  ρ ( vi ,v j ) ,
называется матрицей расстояний.
 Для фиксированной вершины a величина e( a )  max{ p( a ,b ) |b V }
называется
эксцентриситетом
вершины
а.
Таким
образом
эксцентриситет вершины равен расстоянию от данной вершины до
наиболее удаленной от нее. Если Р – матрица расстояний, то
эксцентриситет e( ai ) равен наибольшему из чисел, стоящих в i-той
строке.
 Максимальный среди эксцентриситетов вершин называется диаметром
графа и обозначается d ( G ) .
d ( G )  max{ e( a ) | a V }
2.14
 Вершина называется периферийной, если e( a )  d ( G ) .
Пример. На рис. 2.13 изображен граф с вершинами V={a, b, c, d, h} и
его матрица расстояний P.
Для него имеем: e(a)=6; e(b)=4; e(c)=6; e(d)=4; e(h)=4.
Следовательно, d(G)=6. Вершины a и c являются периферийными.
0
2
P 6
2
4
2
0
4
2
2
6
4
0
4
2
2
2
4
0
2
4
2
2
2
0
Рис. 2.13
Определения.
 Минимальный из эксцентриситетов графа G называется его радиусом и
обозначается r( G ) .
r( G )  min{ e( a ) | a V }
2.15
 .Вершина а называется центральной, если e( a )  r( G ) .
 Множество всех центральных вершин графа называется его центром.
Пример. Радиус приведенного на рис. 2.13 графа равен 4, а его
центром является множество {b, d, h}.
Для ненагруженного графа вводится понятие кратчайшего пути,
который определяется как минимальное количество дуг между заданными
вершинами. Наиболее часто встречается задача нахождения экстремальных
путей в нагруженном, ориентированном графе без контуров, которая
решается с помощью алгоритмов Флойда, Форда, Беллмана и др.
2.5.3 Алгоритм Форда Беллмана нахождения минимального пути
Имеется ориентированный взвешенный граф не содержащий контуров.
Основными вычисляемыми значениями являются величины λ i ( k ) , где i=1,
2…, n (n – число вершин графа); к=1, 2, … , n-1. Для фиксированных i и k
величина λ i ( k ) равна длине минимального пути, ведущего из заданной
начальной вершины v1 в вершину vi и содержащего не более k дуг.
Шаг 1. Установка начальных условий. Ввести число вершин графа и
матрицу весов C  cij заданного графа.
Шаг 2. Положить k=0; λ i ( 0 )   для всех вершин, кроме v1; λ1( 0 )  0 .
Шаг 3. В цикле по k, к=1, 2, … , n-1, каждой вершине vi на k-ом шаге
приписывать индекс λ i ( k ) по правилу:
2.16
λ i ( k )  min{ λ j ( k  1 )  c ji }
 
1 j n
для всех вершин, кроме v1, и положить λ1( k )  0 .
Шаг 4. В результате работы алгоритма сформируется таблица индексов
λ i ( k ) , i=1, 2…, n; к=0, 1, 2, … , n-1.
При этом λ i ( k ) определяет длину минимального пути из первой
вершины в i-ую, содержащего не более k дуг.
Шаг 5. Восстановление минимального пути. Для любой вершины v m
предшествующая ей вершина v r определяется из соотношения:
λ r ( n  2 )  crm  λ m ( n  1 ),
vr  G 1( xm ),
2.17
где G 1( vm ) - прообраз вершины v m .
Для найденной вершины v r предшествующая ей вершина
определяется из соотношения:
λ q ( n  3 )  cqr  λ r ( n  2 ),
vq  G 1( vr ),
vq
где G 1 ( vr ) - прообраз вершины v r , и т.д.
Последовательно применяя это соотношение, начиная от последней
вершины vi , находим минимальный путь.
Пример. Найти кратчайший путь между вершинами V1 и V6 для графа
рис. 2.14.
Рис. 2.14
Решение.
Для наглядности работы алгоритма Форда-Беллмана
расчетные значения индексов λ i ( k ) будем заносить в таблицу 2.1
Шаг 1. Введем число вершин графа n = 6 и его матрицу весов С.
 2 4 5  
   4 3 
     7
C
  4  6 4
     2
     
λ1 ( 0 )  0
Шаг
2.
Положив
k=0,
определяем
и
λ 2 ( 0 )  λ 3 ( 0 )  λ 4 ( 0 )  λ 5 ( 0 )  λ 6 ( 0 )   . Эти значения занесем в первый
столбец таблицы 2.1
λ1 ( 1 )  0 ,
Шаг 3.
Определив k=1 и
вычисляем
λ i ( 1 )  min{ λ j ( 0 )  c ji } . Полученные значения заносим второй столбец
1 j  6
таблицы 2.1.
Далее, определив k=2 и λ1( 2 )  0 , вычисляем λ i ( 2 )  min{ λ j ( 1 )  c ji }
1 j 6
занеся полученные значения в третий столбец таблицы и т.д. (Шаг 4; k=2 ….
Шаг 7; k=6, заполняя полученными результатами столбцы 4 – 7
соответственно).
Таблица 2.1
Номер
λi ( 0 )
λi (1 )
λi ( 2 )
λi ( 3 )
λi ( 4 ) λi ( 5 )
вершины i
1
2
3
4
5
6
0





0
2
4
5


0
2
4
5
5
9
0
2
4
5
5
11
0
2
4
5
5
7
0
2
4
5
5
7
Полученные величины λ i ( 5 ) равны длине минимального пути из
первой вершины V1 в Vi -тую, содержащего не более 5 дуг.
Шаг 8. Восстановление минимального пути. Для последней вершины
v6 предшествующая ей вершина v r определяется из соотношения 2.17
полученного при m  6 :
λ r ( 4 )  cr 6  λ 6 ( 5 ), vr  G 1( v6 ) ,
2.18
где G 1( v6 )  { v3 ,v4 ,v5 } - прообраз вершины v 6 .
Подставим в 2.18 последовательно индексы r=3, r=4, r=5 чтобы
определить r , для какого r это равенство выполняется:
λ 3 ( 4 )  c3,6  4  7  11  λ 6 ( 5 )  7;
λ 4 ( 4 )  c4 ,6  5  4  9  λ 6 ( 5 )  7;
λ 5 ( 4 )  c5 ,6  5  2  7  λ 6 ( 5 )  7.
Видно, что равенство выполняется при r=5 и, следовательно,
предшествующей вершине v 6 является вершина v 5 .
Аналогично, для вершины v 5 предшествующая ей вершина
определяется из соотношения 2.17 при m  5 :
λ r ( 3 )  cr 5  λ 5 ( 4 ), vr  G 1( v5 ) ,
2.19
где G 1( v5 )  { v2 ,v4 } - прообраз вершины v 5 .
Подставляя в 2.19 значения r=2 и r=4, получаем:
λ 2 ( 3 )  c2 ,5  2  3  5  λ 5 ( 4 )  5;
λ 4 ( 3 )  c4 ,5  5  6  11  λ 5 ( 4 ).
Следовательно, предшествующей вершине v 5 является вершина v 2 .
Определяем предшествующую вершину для вершины v 2 .
Имеем:
λ r ( 2 )  cr 2  λ 2 ( 3 ), vr  G 1( v2 )  { v1 } .
2.20
Подставляя в 2.20 значение r=1 получаем:
λ1( 2 )  c1,2  0  2  2  λ 2 ( 3 )  2.
Т.е., предшествующей вершиной для v 2 является вершина v1 .
Итак, найден минимальный путь из вершины v1 в вершину v6 :
v1  v2  v5  v6 , и длина которого равна 7.
2.6 Характеристики графов
Решение многих технических задач методами теории графов сводится
к определению соответствующих характеристик графов. Из множества
характеристик отметим следующие.
Цикломатическое число. Пусть G – неориентированный граф,
имеющий n вершин, m ребер и k компонент связности. Цикломатическим
числом графа G называют число
 (G )  m  n  k
2.15
Физический смысл цикломатического числа заключается в том, что его
значение определяет наибольшее число независимых циклов в графе. При
расчете электрических цепей цикломатическим числом можно пользоваться
для определения числа независимых контуров.
Хроматическое число. Граф G называют n-хроматическим (nнатуральное число), если его вершины можно раскрасить n различными
цветами так, чтобы никакие две смежные вершины не были раскрашены
одинаково. Наименьшее число n, при котором граф является nхроматическим, называют хроматическим числом графа и обозначают (G) .
Если (G) =2, то граф называют бихроматическим. Необходимым и
достаточным условием того, чтобы граф был бихроматическим, является
отсутствие в нем циклов нечетной длины. Хроматическое число играет
важную роль при решении задачи наиболее экономичного использования
ячеек памяти при программировании. Однако его определение, за
исключением случая бихроматического графа, представляет собой довольно
трудную задачу, требующую нередко вычислительных средств.
Множество внутренней устойчивости. Множество S  X графа
G  (X, Г) (здесь Г – отображение, т.е. Г:ХХ) называют внутренне
устойчивым, если никакие две вершины из S не смежны, т.е. для любого
x  S имеет место S  Г(S)   .
Внутренне устойчивое множество Si называется максимальным, если в
графе G не существует такого другого внутренне устойчивого множества Sk,
так что Si  Sk .
Пример. Для графа, приведенного на рис. 2.15, множества S1={x1, x3},
S2={x2, x4}, S3={x2, x6}, S4={x2, x4, x6} являются внутренне устойчивыми. Из
них множества S1 и S4 – максимальные, а множества S2 и S3 не являются
таковыми, так как S2  S4 и S3  S4 .
Рис. 2.15
Очевидно, что число элементов в разных максимальных внутренне
устойчивых множеств не обязательно одинаковое.
Если D – семейство всех внутренне устойчивых множеств графа G, то
число
2.16
(D)  max S
S D
называется числом внутренней устойчивости графа G, а множество S*, на
котором достигается этот максимум, называется наибольшим независимым
множеством.
Множество внешней устойчивости. Множество T  X графа
G=(X, Г) называют внешне устойчивым, если любая вершина, не
принадлежащая T, соединена дугами с вершинами из T, т.е. для любого
x  T имеет место Г ( x )  T   .
Внешне устойчивое множество Ti называют минимальным, если в G
не существует другого внешне устойчивого множества Tk, так что Tk  Ti .
Пример. Для графа, изображенного на рис. 2.16, множества Т1={X1,
X4, X6}, T2={X1, X4}, T3={X3, X5, X6} являются внешне устойчивыми.
Множества T2 и T3 минимальные, а Т1 не является минимальным, так как
внешне устойчивое множество T2  T1 .
Рис.2.16.
В графе может быть несколько минимальных внешне устойчивых
множеств и в общем случае они не содержат одинаковое число вершин.
Если R – семейство внешне устойчивых множеств графа, то число
(G )  min R
2.17
T R
называется числом внешней устойчивости графа, а множество Т*, на котором
достигается минимум, называется наименьшим внешне устойчивым
множеством.
2.8 Операции над графами
Объединением графов G1=(A, Г1(А)) и G2=(В, Г2(В)) называется граф
G=G1G2= (A  B; Г1 (А)  Г 2 (В)) .
Пересечением графов G1=(A, Г1(А)) и G2=(В, Г2(В)) называется граф
G=G1G2= (A  B; Г1 (А)  Г 2 (В)) .
Пример. Для графов G1 и G 2, изображенных на рис. 2.13, найти графы
G1G2 и G1G2.
Решение. A={x1, x2, x3, x4}; Г1(x1)={x2}; Г1(х2)={x3, x4}; Г1(х3)={x4};
Г1(х4)={x1}. B={x1, x2, x3, x4}; Г2(х1)={x3}; Г2(х2)={x1, x3}; Г2(х3)=;
Г2(х4)={x1, x3}.
Находим объединение графов G1 и G2 (рис. 2.14): AB={x1, x2, x3, x4};
Г1(х1)Г2(х1)={x2, x3};
Г1(х2)Г2(х2)={x1, x3, x4};
Г1(х3)Г2(х3)={x4};
Г1(х4)Г2(х4)={x1, x3}.
Рис. 2.13
Находим пересечение графов G1 и G2 (рис. 2.14): AB={x1, x2, x3, x4};
Г1(х1)Г2(х1)=; Г1(х2)Г2(х2)={x3}; Г1(х3)Г2(х3)=; Г1(х4)Г2(х4)={x1}.
Рис.2.14
Декартовым произведением графов G1=(A, Г1(А)) и G2=(В, Г2(В))
называется граф G=G1G2= (A  B; Г1 (А)  Г 2 (В)) .
Пример. Для графов G1 и G 2, изображенных на рис. 2.15, найти граф
G1G2 .
Рис. 2.15
Решение. A={X1, X2}, Г(Х1)={X2}, Г(X2)={X1};
B={Y1, Y2, Y3}, Г(Y1)={Y2}, Г(Y2)={Y3}, Г(Y3)={Y1, Y2}.
AB={(X1, Y1), (X1, Y2), (X1, Y3), (X2, Y1), (X2, Y2), (X2, Y3)};
Г[(X1, Y1)]=Г(Х1)Г(Y1)={(X2, Y2)}; Г[(X1, Y2)]=Г(Х1)Г(Y2)={(X2, Y3)};
Г[(X1, Y3)] = Г(Х1)Г(Y3)={(X2, Y1), (X2, Y2)}; Г[(X2, Y1)]=Г(Х2)Г(Y1)=
{(X1, Y2)}; Г[(X2, Y2)] = Г(X2)Г(Y2)={(X1, Y3)}; Г[(X2, Y3)]=Г(X2)Г(Y3)=
{(X1, Y1), (X1, Y2)}.
В результате получаем граф, вид которого представлен на рис. 2.16.
Рис. 2.16.
Литература
1. С.Д. Шапорев. Дискретная математика. С-кт Петербург, БХВ-Петербург,
2007 г.
2. Ю.П. Шевелев. Дискретная математика, СПб, «Лань», 2008 г.
3. Ф.А. Новиков. Дискретная математика для программистов. СанктПетербург, Питер, 2001 г.
4. О.Е. Акимов. Дискретная математика. Логика, группы, графы. Москва,
Лаборатория базовых знаний, 2001 г.
5. Зыков А.А. Основы теории графов. М., Наука, 1987 г.
6. Горбатов В.А. Основы дискретной математики. М., В.ш., 1986 г.
7.
Download