Графов теория - раздел конечной математики, особенностью которого является геометрический подход к изучению объектов. Основное понятие теории -
граф. Понятие графа опирается на основные понятия
теории множеств, так как граф можно рассматривать как объект, состоящий из двух множеств - множества точек (вершин) X и множества линий (рёбер) U, которые соединяют некоторые вершины. При этом совершенно несущественно, соединены ли вершины графа отрезками прямых линий или криволинейными дугами, какова длина линий, как расположены вершины графа на плоскости и другие геометрические характеристики графа. Каждое ребро представляет собой неупорядоченную пару вершин из множества X.
Математическая запись графа включает обозначения множеств вершин и рёбер, например,
где X - множество вершин;
U - множество рёбер.
Пример изображения графа G, состоящего из множества вершин X = {x
1, x
2, x
3, x
4, x
5} и множества рёбер U = {u
12, u
13, u
14, u
15, u
24, u
25, u
35} представлен на рис. 1.

Рис. 1
Элементы множеств X и U могут содержать индексы. Индексы вершин обозначают их номера. Индексы рёбер обозначают номера соединяемых ими вершин. Запись u
ij означает, что ребро графа образовано парой вершин x
i и x
j: u
ij = (x
i, x
j), x
i 
X, x
j 
X.
Виды графов. Основные понятия и определения
Конечный граф - это граф G = (X, U), у которого количество его вершин |X| конечно. Конечный граф представлен на рис. 1.
Нуль-граф - это граф G = (X, U), состоящий только из изолированных вершин, т.е. граф, не содержащий ни одного ребра (|U| = 0). Такой граф обозначается G
0. Нуль-граф, у которого |X| = 5 и |U| = 0 представлен на рис. 2.

Рис. 2
Пустой граф - это граф G = (X, U), не содержащий ни вершин, ни рёбер (|X| =0, |U| = 0). Такой граф обозначается G
ø.
Неориентированный граф (неограф) - это граф G = (X, U), для каждого рёбра которого несуществен порядок двух его концевых вершин. Неограф представлен на рис. 1. Рёбра неографа иногда называют
звеньями.
Ориентированный граф (орграф) - это граф, для каждого ребра которого существен порядок двух его концевых вершин. Орграф представлен на рис. 3 и обозначается

. Рёбра орграфа иногда называют
дугами.
 |
 |
Рис. 3 |
Рис. 4 |
Смешанный граф (рис. 4) - это граф, который содержит как ориентированные, так и неориентированные рёбра. Смешанный граф обозначается

.
Любой из перечисленных видов графа может содержать одно или несколько рёбер, у которых оба конца сходятся в одной вершине, т.е. u
ij 
U, u
ij = (x
i, x
j), i = j. Такие рёбра называются
петлями. На рис. 5 представлен смешанный граф с петлями.
 |
 |
Рис. 5 |
Рис. 6 |
В общем случае множество рёбер U может состоять из трёх непересекающихся подмножеств: подмножества звеньев, подмножества дуг и подмножества петель.
Ребро u
ij, соединяющее вершины xi и xj,
инцидентно данным вершинам и наоборот, вершины x
i и x
j инцидентны ребру u
ij. Ребро u
12 (рис. 6) инцидентно вершинам x
1 и x
2, а вершины x
1 и x
2, в свою очередь, инцидентны ребру u
12.
Мультиграф (рис. 6) - это граф, у которого любые две вершины соединены более чем одним ребром. Рёбра, соединяющие одну и ту же пару вершин, называются
кратными. Наибольшее число кратных рёбер, соединяющих какую-либо пару вершин, называется
мультичислом. Мультичисло графа, представленного на рис. 6, m = 5.
Скелет мультиграфа - это граф, полученный из исходного мультиграфа путём удаления петель и сведения кратных рёбер в одно ребро. На рис. 7 показан скелет мультиграфа, представленного на рис. 6.
Полный граф (рис. 8) - это граф, у которого любые две вершины соединены ребром. Полный граф обозначается G
п.
Плотный граф (рис. 9) - это полный граф, у которого при каждой вершине имеется петля. Плотный граф обозначается G′
п.
Изоморфные графы - это два графа G = (X, U) и G′ = (X′, U′), у которых можно установить взаимно однозначное соответствие X ↔ X′, U ↔ U′, такое, что, если x
i, x
j 
X соответствует x′
i, x′
j 
X′ то ребро u
ij 
U соответствует ребру ребро u′
ij 
U′. На рис. 10 и 11 показаны изоморфные графы G
1 и G
2, у которых вершинам x
1, x
2, x
3, x
4, x
5, x
6 поставлены во взаимно однозначное соответствие вершины x′
1, x′
2, x′
3, x′
4, x′
5, x′
6.
 |
 |
Рис. 10 |
Рис. 11 |
Плоский граф - это граф G = (X, U), у которого рёбра расположены на плоскости таким образом, что пересекаются только в вершинах.
Планарный граф - это граф G = (X, U), изоморфный плоскому графу.
Смежными вершинами называются любые две вершины x
i, x
j 
X графа G = (X, U), инцидентные одному и тому же ребру. Так, например, вершины x
i и x
j (рис. 1) являются смежными, а вершины x
4 и x
4 смежными не являются, так как не соединены между собой, т.е. ребро u
45 отсутствует.
Локальной степенью (или просто
степенью) вершины x
i графа G = (X, U) называется количество рёбер ρ(x
i), инцидентных данной вершине. Сумма локальных степеней

всех вершин графа G = (X, U) есть удвоенное количество всех его рёбер:
Поскольку для полного графа ρ(x
1) = ρ(x
2) = ... = ρ(xn) = n - 1, то в этом случае
.
Заметим, что

и, следовательно, в графе G = (X, U) количество вершин нечётной степени чётно.
Граф называется
однородным степени t, если локальные степени всех его вершин равны между собой, т.е.
ρ(x1) = ρ(x2) = ... = ρ(xn) = t.
Количество рёбер однородного графа степени t равно
.
Элементы графов
Подграф G′ = (X′, U′) - это часть графа G = (X, U), если X′

X, а множество U? ? U образовано всеми рёбрами, соединяющими между собой только вершины их множества X′.
Cуграф G′ = (X′, U′) - это часть графа G = (X, U), если X′ = X, U′

U.
Кусок G
i = (X
i, U
i) - это часть графа G = (X, U), если Xi

X, U
i 
U, причём U
i=U
ii
U
ij, где Uii - множество рёбер, соединяющих вершины из множества X
i между собой;
U
ij - множество рёбер, соединяющих вершины из множества X
i с вершинами из множества XX
i.
На рис. 12 показан граф G = (X, U), а на рис. 13-15 - подграф, суграф и кусок этого графа соответственно.
 |
 |
Рис. 12 |
Рис. 13 |
 |
 |
Рис. 14 |
Рис. 15 |
Если G
i = (X
i, U
i), i

I = {1, 2, ..., l} - части графа G = (X, U), причём,

,

, то граф G можно определить как объединение всех его частей G
i, т.е.

.
Связность графов
Пусть задан неограф G = (X, U) без петель и кратных рёбер.
Маршрут - это последовательность рёбер u
i 
U, заданных парами вершин вида (x
1, x
2) (x
2, x
3) ... (x
i-1, x
i), в которой любые два соседних ребра смежные. Количество рёбер в маршруте определяет его длину.
Если все рёбра в маршруте различны, то такой маршрут является
цепью.
Если в цепи нет повторяющихся вершин, кроме соседних, то такая цепь называется
простой.
Цепь, в которой совпадают начальная и конечная вершины, называется
циклом.
Простая цепь, в которой совпадают начальная и конечная вершины, образует
простой цикл.
Граф, представленный на рис. 1, содержит, например,
маршрут: (x
1, x
3) (x
3, x
5) (x
5, x
2) (x
2, x
4) (x
4, x
1);
простую цепь (x
1, x
3) (x
3, x
5) (x
5, x
2) (x
2, x
4);
простой цикл (x
1, x
3) (x
3, x
5) (x
5, x
2) (x
2, x
1).
Две вершины x
i, x
j 
X, x
i ≠ x
j графа G = (X, U) называются
связанными, если их можно соединить маршрутом.
Граф G = (X, U) называется
связным, если любые две его вершины связаны маршрутом.
Если взять какую-либо вершину x
i 
X графа G = (X, U) и построить подмножество X′

X, состоящее из всех вершин, которые можно соединить с вершиной x
i произвольным маршрутом, причём x
i включается в множество X′, то подграф G′ = (X′, U′), образованный на множестве вершин X′, называется
компонентой связности графа G.
Связный граф состоит из единственной компоненты связности. Если граф имеет несколько компонент связности, то он несвязен, так как вершины из разных компонент связности нельзя соединить маршрутом. На рис. 16 показан граф G = (X, U), состоящий из трёх компонент связности G
1, G
2 и G
3, представленных на рис. 17-19.
 |
 |
 |
 |
Рис. 16 |
Рис. 17 |
Рис. 18 |
Рис. 19 |
Связный граф без циклов называется деревом. В дереве любые две вершины связаны единственной цепью. Пример дерева показан на рис. 20.

Рис. 20
Общее количество деревьев d, которое можно построить на n вершинах, определяется по формуле (теорема Кэли)
d = nn-2
Цикл C
э, в котором содержатся все рёбра графа, причём каждое ребро встречается только один раз, называется
эйлеровым. Граф содержит Эйлеров цикл, если он связен и все локальные степени его вершин чётны.
Цикл C
г, проходящий через каждую вершину графа по одному разу, называется гамильтоновым. Для гамильтонова цикла, в отличие от эйлерова цикла, неизвестен общий критерий существования. В литературе можно встретить только частные критерии, например, согласно одному из критериев в графе существует гамильтонов цикл, если для любой пары вершин x
i, x
j 
X графа G сумма локальных степеней ρ(x
i) + ρ(x
j) ≥ n.
Характеристические числа графов
Характеристические числа графов рассмотрим на примере графа G = (X, U) без петель и кратных рёбер.
Раскраска вершин графа - это такое разбиение множества его вершин на p непересекающихся подмножеств
X1, X2, ..., Xp, X =
Xi, Xi ∩ Xj = Ø, i, j
{1, 2, ..., p},
при котором каждое подмножество X
i не содержит смежных вершин.
Если каждому подмножеству X
i поставить в соответствие определённую "краску", то вершины этого подмножества будут окрашены одинаковым цветом, вершины другого подмножества X
j - другим и т.д., т.е. вершины любой смежной пары окрашиваются в разные цвета.
Хроматическое число ξ(G) - это наименьшее количество подмножеств, на которое можно разбить граф при раскраске.
Пример: множество вершин X = { x
1, x
2, x
3, x
4, x
5, x
6) графа G (рис. 21) можно разбить не менее чем на три непересекающихся подмножества: X1 = {x
1,x
3, x
6}; X
2 = {x
2, x
4}; X
3 = {x
5}.

Рис. 21
Хроматическое число рассматриваемого графа ξ(G) = 3, т.е. вершины графа можно раскрасить красками тремя цветов.
Предположим, что граф G = (X, U) имеет n вершин, r рёбер и p компонент связности. Наименьшее количество рёбер, после удаления которых в графе не содержится ни одного цикла, называется
цикломатическим числом γ(G). Цикломатическое число определяется по формуле
γ(G) = r - n + p
Для графа G (рис. 21), у которого n = 6, r = 7, p = 1 цикломатическое число γ(G) = 7 - 6 + 1 = 2.
Цикломатическое число не может принимать отрицательные значения.
Связный граф, у которого γ(G) = 0, является деревом, так как не содержит ни одного цикла.
Подмножество ψ
i 
X графа G называется внутренне устойчивым, если любые две вершины из этого подмножества
не смежные.
В каждом графе без петель и кратных рёбер можно выделить семейство
Ψ = {ψ1, ψ2, ..., ψi}
всех внутренне устойчивых подмножеств. Эти подмножества различаются количеством входящих в них элементов.
Число внутренней устойчивости η(G) определяется
мощностью внутренне устойчивого подмножества, содержащего наибольшее число элементов, т.е. характеризует максимальное число несмежных вершин графа:
η(G) = max | ψi |
Пример: граф, представленный на рис. 22, имеет:
Ψ
i = { Ψ
1, Ψ
2, Ψ
3, Ψ
4, Ψ
5}, Ψ
1 = {x
1, x
4, x
6}, Ψ
2 = {x
2, x
5}, Ψ
3 = {x
2, x
6}, Ψ
4 = {x
3, x
4, x
5}, Ψ
5 = {x
4, x
5}.
Число внутренней устойчивости η(G) = 3.

Рис. 22
Иногда по аналогии с числом внутренней устойчивости рассматривают
число внутренней полноты χ(G), которое определяет максимальное число вершин графа G, образующих полный подграф. Для графа G, представленного на рис. 22, семейство внутренне полных подмножеств имеет вид:
Φ = {φ1, φ2, φ3, φ4,}, φ1 = {x1, x2, x3}, φ2 = {x1, x3, x5}, φ3 = {x2, x4}, φ4 = {x5, x6},
а число внутренней полноты χ(G) = max |φ
i| = 3,φ

Φ.
Способы задания графа
1-й способ -
рисунок. Это самый наглядный способ, хорошо раскрывает содержательный смысл интерпретируемого объекта, но он не формален. Следует заметить, что современный уровень развития машинной графики уже позволяет задавать граф в виде рисунка на экране дисплея и последующее его числовое представление в виде различного рода матриц, над которыми можно производить различные математические преобразования, предписываемые алгоритмами решения конкретных задач. Для преобразования рисунка в формальное математическое описание на языке программирования несложно разработать прикладную пользовательскую программу.
2-й способ -
метод соответствий. Если задано множество вершин X и соответствие T, сопоставляющее каждой вершине x

X графа множество вершин T
x, связанных с ней рёбрами, то определён граф G = (X, T). Для графа, представленного на рис. 1: X = {x
1, x
2, x
3, x
4, x
5}.
Tx1 = {x2, x3, x4, x5}; Tx2 = {x1, x4, x5}; Tx3 = {x1, x5}; Tx4 = {x1, x2}; Tx5 = {x7, x2, x3}.
3-й способ -
матричный. Граф может описываться матрицей смежности, матрицей инцидентности или списком рёбер. Для описания метрических свойств графа используются матрица расстояний и матрица геометрии. В процессе решения конкретных задач действия на матрицами могут порождать производные матрицы, содержащие промежуточные результаты и окончательные решения. Рассмотрим матрицы, описывающие исходное состояние графа.
Матрица смежности - это квадратная матрица R = ||r
ij||
n×n, у которой строки и столбцы соответствуют вершинам графа, r
ij - элемент матрицы, расположенный на пересечении i-й строки и j-го столбца. Значение r
ij определяет количество рёбер, соединяющих вершины x
i и x
j. Порядок матрицы n определяется количеством вершин графа. Граф, представленный на рис. 22, описывается матрицей смежности:
|
|
x1 |
x2 |
x3 |
x4 |
x5 |
x6 |
|
|
x1 |
0 |
1 |
1 |
0 |
1 |
0 |
|
|
x2 |
1 |
0 |
1 |
1 |
0 |
0 |
|
R= |
x3 |
1 |
1 |
0 |
0 |
1 |
0 |
|
|
x4 |
0 |
1 |
0 |
0 |
0 |
0 |
|
|
x5 |
1 |
0 |
1 |
0 |
0 |
1 |
|
|
x6 |
0 |
0 |
0 |
0 |
1 |
0 |
|
Матрица смежности симметрична относительно главной диагонали. Матрицы смежности в большинстве случаев на 80 85% заполнены нулевыми элементами, поэтому иногда используют
список рёбер (кодовую реализацию Rk) матрицы смежности R. Матрица R
k - это таблица, состоящая из строк вида i, z
k, x
j>, каждая из которых определяет количество рёбер z
k, соединяющих вершины x
i и x
j. Для графа, представленного на рис. 22, список рёбер имеет вид
xi |
zk |
xj |
x1 |
1 |
x2 |
x1 |
1 |
x3 |
x1 |
1 |
x5 |
x2 |
1 |
x1 |
x2 |
1 |
x3 |
x2 |
1 |
x4 |
x3 |
1 |
x1 |
x3 |
1 |
x2 |
x3 |
1 |
x5 |
x4 |
1 |
x1 |
x5 |
1 |
x1 |
x5 |
1 |
x3 |
x5 |
1 |
x6 |
x6 |
1 |
x5 |
Матрица инцидентности - это прямоугольная матрица I = ||i
mn||
n×u, у которой строки соответствуют вершинам x
1, x
2, ..., x
m графа, а столбцы - ребрам графа u
1, u
2, ..., u
n. Граф, представленный на рис. 22, описывается матрицей инцидентности
|
|
u1 |
u2 |
u3 |
u4 |
u5 |
u6 |
u7 |
|
|
x1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
|
|
x2 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
|
I= |
x3 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
|
|
x4 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
|
|
x5 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
|
|
x6 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
|
Метрические свойства графа
Расстояние d(xi, xj) между вершинами x
i, x
j 
X графа G = (X, U) называется длина кратчайшей цепи, соединяющей эти вершины. Длина цепи - это количество входящих в неё рёбер. Функцию расстояний удобно задавать
матрицей расстояний D = ||d
ij||
n×n. Для графа, представленного на рис. 22, матрица расстояний имеет вид
|
|
x1 |
x2 |
x3 |
x4 |
x5 |
x6 |
|
|
x1 |
0 |
1 |
1 |
2 |
1 |
2 |
|
|
x2 |
1 |
0 |
1 |
1 |
2 |
3 |
|
I= |
x3 |
1 |
1 |
0 |
2 |
1 |
2 |
|
|
x4 |
2 |
1 |
2 |
0 |
3 |
4 |
|
|
x5 |
1 |
2 |
1 |
3 |
0 |
1 |
|
|
x6 |
2 |
3 |
2 |
4 |
1 |
0 |
|
Матрица расстояний, как и матрица смежности, симметрична относительно главной диагонали.
Функция расстояний часто определяется для графов G
r, называемых
координатной решёткой (рис. 23). Расстояние между двумя соседними узлами решётки называется
шагом решётки и принимается равным единице. Расстояние между любыми двумя вершинами графа, отображённого в решётку, определяется по формуле
dij = | si - sj | + | ti - tj |,
где s
i, s
j, t
i, t
j - координаты узлов решётки, в которых расположены вершины x
i и x
j.
Отображение произвольного графа в решётку часто осуществляется для решения практических задач, например, размещения радиоэлектронных компонентов на коммутационном поле печатной платы. На рис. 24 представлен произвольный граф, а на рис. 25 - отображение этого графа в решётку с размерами 4×2.
 |
 |
Рис. 24 |
Рис. 25 |
Для определения суммарной длины рёбер графа используется матрица геометрии Dγ - часть матрицы расстояний, в которой исключены элементы d
ij, если вершины графа x
i и x
j не смежны. Для получения матрицы геометрии необходимо перемножить соответственные элементы матрицы смежности и матрицы расстояний, т.е.
Dγ = || rij • dij ||
Сумма элементов матрицы геометрии равна удвоенной суммарной длине рёбер графа при данном отображении его в решётку.
Если известны расстояния между каждой парой вершин графа, то можно определить его
диаметр d(G) как максимальное расстояние между двумя вершинами:
d(G) = max d(xi, xj),
где x
i, x
j 
X.
Центр графа - это вершина x
0, для которой выполняется следующее условие
x
X [max d(xi, xj) ≥ max d(x0, xj)],
а величина d(x
0, x
j) определяет радиус графа.
Источники информации:
- Кузнецов О.П. Дискретная математика для инженеров. / О.П. Кузнецов, Г.М. Адельсон-Вельский - 2-е изд., перераб. и доп. - М.: Энергоатомиздат, 1988 - 400 с.: ил.
- Мелихов А.Н. применение графов для проектирования дискретных устройств. / А.Н. Мелихов, Л.С. Бернштейн, В.М. Курейчик - М.: Наука, 1974. 304 с.: ил.