
6. Графы
6.1. Исходные понятия
Изучая системы, мы выделяем их части (узлы) и осмысливаем связи, отношения между узлами. Таких дискретных систем, различных по своей природе, великое множество. Например, можно рассматривать сеть компьютеров или железнодорожные узлы и связующие их участки железных дорог. Граф — это абстрактное представление дискретной системы, состоящее из узлов (вершин) и ребер, выражающих отношения узлов. Ребро изображают линией, не обязательно прямой, узел — небольшим кружком. Отношение выражает наличие или отсутствие непосредственной связи узлов.
Поскольку нашей главной целью является знакомство со структурами данных определенного класса с последующей реализацией алгоритмов на этих структурах, то все определения, связанные с теорией графов (как разделом математики), будут даны лишь в той мере, в какой это необходимо для изложения. Дополнительные сведения по теории графов можно найти в монографиях [Хаарари, 1973; Харари, Палмер, 1977; Оре, 1965; Зыков, 1987; Лекции, 1990; Уилсон, 1977; Берж, ]
Графы - обобщение структуры деревьев. Графом называется пара (V,E), где V - конечное множество вершин, а E - набор неупорядоченных и упорядоченных пар вершин. Обозначим граф G=(V,E). Неупорядоченная пара вершин называется ребром, упорядоченная - дугой. Граф содержащий только ребра называется неориентированным (рис. .), только дуги - ориентированным, или орграфом(рис. .).
Если
вершиныv
и u
соединены
ребром
e,
то говорят, что они смежны
между собой, а ребро
e инцидентно
каждой из них. Количество ребер графа,
инцидентных вершине v
называется степенью
данной вершины.
Для ориентированного графа выделяют
входящую степень, равную количеству
входящих дуг и исходящую степень, равную
количеству исходящих дуг, а степенью
вершины в таком случае называют сумму
ее входящей и исходящей степени. Вершины
имеющие степень 0 называют изолированными.
Ребро,
соединяющее вершину саму с собой
называетсяпетлей.
Если одну пару вершин соединяют два или
более ребер, то такие ребра называют
кратными.
Граф называется простым,
если он не
содержит ни петель, ни кратных ребер,
иначе граф называется мультиграфом.
(В некоторых
источниках граф с кратными ребрами
называют мультиграфом,
с петлями -
псевдографом.)
Простой
граф, любая пара вершин которого соединена
ребром, называется полным.
В полном графе n*(n-1)/2
ребер.
Подграфом графа G=(V,E) называется граф G'=(V',E') такой, что V'⊆V, E'⊆E.
Путем из вершины u в вершину x называется последовательность вершин (v0,v1,...,vk), в которой v0=u, vk=x и (vi-1,vi) ∈ E. Длина этого пути равна k. Такой путь проходит через вершины v0,v1,...,vk, а также ребра (v0,v1), (v1,v2),...,(vk-1,vk). Вершина v0 - начало пути, vk - конец пути. Говорят, что путь ведет из v0 в vk. Если существует путь из вершины u в вершину x, говорят, что x достижима из u.
Путь называется простым, если он содержит каждую из вершин не более одного раза.
Неориентированный граф называется связным, если существует хотя бы один путь между каждой парой вершин, и несвязным в противоположном случае.
Ориентированный граф связен, если связен неориентированный граф, получаемый из этого орграфа снятием ориентации с дуг. Ориентированный граф сильно связен, если для любой пары вершин v и u существут путь из v в u и из u в v.
Связной компонентой графа называется максимальный связный подграф этого графа.
Циклом называется путь из некоторой вершины в эту же вершину, содержащий хотя бы одно ребро. Цикл простой, если в нем нет повторяющихся вершин (за исключением начальной (конечной), которая является первой и последней вершиной пути). Граф, в котором нет циклов называется ациклическим.
Связный граф без циклов называется деревом.
Граф называется двудольным, если множество его вершин V можно разбить на непересекающиеся подмножества V1 и V2 так, что никакие две вершины одного подмножества не смежны.
Графы G1=(V1,E1) и G2=(V2,E2) изоморфны, если существует такое взаимно однозначное отображение ƒ:V1→V2, что для произвольных v и u∈V1 имеем (v,u)∈E1⇔(ƒ(v),ƒ(u))∈E2. Отображение ƒ называется изоморфизмом (или изоморфным отображением) графов G1 и G2. При изоморфизме каждая вершина переходит в вершину с той же степенью.
Любой граф можно представить множеством точек на плоскости, соответствующих вершинам, соединенных линиями, соответствующими ребрам. В трехмерном пространстве граф всегда можно представить таким образом, что эти линии не будут пересекаться.