Глава II Графы и сети
Многие задачи дискретной оптимизации могут быть интерпретированы как задачи на сетях и графах. В этой главе мы введем основные понятия теории графов и рассмотрим способы представления сетей и графов в ЭВМ.
§1. Графы, сети
Под неориентированным графом (или короче графим) будем понимать произвольную пару G = (V,E) конечных множеств V и Е таких, что Е
Элементы множества V будем называть вершинами графа G. а элементы Е — ребрами графа G. Если е = — ребро графа, то вершины v и w будем называть концами ребра е, а ребро е — инцидентным вершинам v и w. Две вершины графа v и w называются смежными, если есть ребро в графе, их соединяющее, т.е. Е.
О
Рис. 2.1. Изображение графов и орграфов, а) Неориентированный граф, б) Ориентированный гриф
Графы и орграфы обычно изображаются на плоскости и им и множества точек, соответствующих вершинам или узлам, и множества линий, соединяющих эти точки, которые соответствуют ребрам или дугам. Линия, изображающая ребро или дугу (v,w), соединяет точки, изображающие вершины v и w, причем в случае ориентированного графа эта линия снабжается стрелкой, обозначающей направление от v к w. Удобно вершины графа считать пронумерованными натуральными числами, и на рисунках сразу вместо точки ставить соответствующий номер
Число ребер, инцидентных данной вершине, называется степенью вершины. Вершины степени 1 называют висячими вершинами, а степени 0 — изолированными. Например, в графе, изображенном на рис. 2.1.а, вершины 2, 5, 6 являются висячими и вершина 7 — изолированной.
Степенью захода узла в некотором орграфе называется число дуг, в нее входящих, степенью исхода — из нее исходящих. Под степенью узла будем понимать сумму степеней исхода и захода данного узла. Например, в орграфе, изображенном на рис. 2.1.б, степень исхода узла 1 равна 2, а степень захода — 1.
Цепью (соответственно путем) в графе (орграфе) G = (V,E) назовем чередующуюся последовательность вершин и ребер (узлов и дуг) v0,e0,V1, . ,ek-1, vk такую, что каждое ребро ek соединяет вершины vk и vk+1 (соответственно исходит из vk и входит в vk+1). Вершины (узлы) v0 и vk будем называть соответственно началом и концом цепи (пути). Если все вершины (узлы) цепи (пути) различны, то такую цепь (путь) будем называть простои цепью (простым путем).
Иногда нам будет удобно цепь (путь) v0,e0,v1, . , ek-1,vk отождествлять с множеством ребер (дуг) е0, . , ek-1 или вершин (узлов) v0,v1, . ,vk, ее (его) образующих. Длиной цепи (пути) будем называть число входящих в нее ребер (дуг).
Подграфом графа (орграфа) G = (V,E) будем называть произвольный граф (орграф) G’ = (V’,E’) такой, что V’
Пусть G=(V,E) — произвольный неориентированный граф и пусть v
Легко доказать, что множества вершин различных компонент связности произвольного графа попарно не пересекаются. Например, для графа, изображенного на рис. 2.1.а, это множества V1, = , V2 = , V3,= .
Граф, имеющий ровно одну компоненту связности, будем называть связным. Непосредственно из определения вытекает
Предложение 2.1. Неориентированный граф G=(V,E) связен тогда и только тогда, когда для любых вершин v,wV существует цепь в графе G, их соединяющая.
Для орграфа G (V.E) через G*=(V*,E*) обозначим неориентированный граф, для которого V*=V и
Всюду в дальнейшем через |А| будем обозначать количество элементов конечного множества А. Говоря о некотором графе или орграфе G=(V,E), через n будем обозначать количество вершин (или узлов), а через m — количество ребер (или дуг), то есть будем полагать n=|V|, m=|E|.
Поскольку мы условились считать, что в графах и орграфах нет ребер вида и дуг вида (v,v) (так называемых петель), и, что для любых v,wV существует не более одного ребра или не более двух дуг им инцидентных, то справедливы неравенства:
- m ≤ n∙(n-1 )/2 — для неориентированных графов,
- m ≤ n∙(n-l) — для орграфов.
Одним из важнейших понятий в теории графов является понятие дерева. Деревом называется связный неориентированный граф без циклов. Следующая теорема будет часто использоваться Теорема 2.1. Пусть G = (V,E) — граф, n=|V|, m=|E|. Тогда следующие условия эквивалентны:
- G — дерево.
- Для любых двух вершин u,v е V существует и притом единственная цепь, их соединяющая.
- Граф G связен, и m=n-l.
- Граф G не содержит циклов, и m=n-l.
- Граф G не содержит циклов, и при соединении любых двух несмежных вершин ребром образуется ровно один цикл.
□ 1.
3. Пусть v0,v1, . ,vk — максимальная по включению цепь в графе G. Отсюда следует, что вершины v0 и vk — висячие вершины в графе G. Тем самым доказано, что всякий граф, удовлетворяющий условию 2. содержит хотя бы две висячие вершины.
Докажем теперь пункт 3 индукцией по n. Равенство m = n-1 для n=2 очевидно верно. Пусть равенство m = n-1 верно для графов, у которых n = r. Докажем это равенство в случае n = r+1. Пусть v — висячая вершина графа G, и e= — единственное ребро, инцидентное v. Удалим вершину v и ребро e из графа, т.е. рассмотрим граф G’ = (V\
- имеется в точности один узел, называемый корнем, в который не входит ни одна дуга (т.е. степень захода равна нулю);
- в каждый узел, кроме корня, входит ровно одна дуга;
- для каждого узла существует путь, начинающийся в корне и заканчивающийся в этом узле.
К