nbbzibd0Bw
.pdfГ3: (I, III), (III, II), (II, IV) (IV, I)
со стоимостью 9.
Возникает соблазн «решать» эту задачу следующим образом: формировать цикл, поочерёдно забирая в него самые дешёвые дуги. В общем случае такая тактика не приводит к успеху: например, ответом только что рассмотренной задачи является цикл Г3, содержащий только одну дугу с нулевой стоимостью, а не цикл Г4, содержащий две таких дуги.
Задания для самостоятельной работы
1. Какой из графов является эйлеровым или гамильтоновым?
а |
б |
в |
г |
2. Составить маршрут для автотуристов так, чтобы каждый населенный пункт посещался бы в точности один раз.
71
3. |
Какой из графов обязательно содержат гамильтонов цикл: |
|
|
|
|||||||||||||||
|
|
|
а) эйлеров, |
|
б) полный, |
|
в) связный? |
|
|
|
|
||||||||
4. |
|
Подсчитать количество различных гамильтоновых цепей и различных |
|||||||||||||||||
|
гамильтоновых циклов в полном графе на n = 7 помеченных вершинах, |
||||||||||||||||||
|
если граф |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
а) ориентированный; |
б) неориентированный. |
|
|
|
|
|||||||||||
5. |
|
По заданном матрице стоимостей С решить несимметричную задачу |
|||||||||||||||||
|
коммивояжера методом полного перебора: |
|
|
|
|
|
|
||||||||||||
а |
|
|
|
|
|
|
б |
|
|
|
|
|
|
в |
|
|
|
|
|
С |
|
|
I |
II |
III |
IV |
|
С |
I |
II |
III |
|
IV |
|
С |
I |
II |
III |
IV |
I |
|
|
‒ |
20 |
74 |
4 |
|
I |
‒ |
5 |
16 |
|
23 |
|
I |
‒ |
10 |
21 |
29 |
II |
|
|
3 |
‒ |
70 |
38 |
|
II |
5 |
‒ |
30 |
|
19 |
|
II |
15 |
‒ |
50 |
6 |
III |
|
22 |
70 |
‒ |
43 |
|
III |
18 |
25 |
‒ |
|
21 |
|
III |
21 |
32 |
‒ |
9 |
|
IV |
|
4 |
25 |
30 |
‒ |
|
IV |
33 |
12 |
21 |
|
‒ |
|
IV |
14 |
6 |
9 |
‒ |
|
6. |
Доказать, что гамильтонов граф не содержит мостов. |
|
|
|
|
72
7.Доказать, что если в неориентированном графе F с n ³ 3 вершинами для любой пары несмежных вершин v и w выполняется соотношение:
r(v) + r(w) ³ n,
то F гамильтонов.
8.Доказать, что если в неориентированном графе F с n > 3 вершинами для любой вершины v степень r(v) ³ n/2, то F гамильтонов.
9.Привести пример не гамильтонова графа с n = 10 вершинами, у которого r(v) + r(w) ³ n - 1 для любой пары несмежных вершин v и w.
Контрольные вопросы
1.Какой цикл называется гамильтоновым?
2.Какой граф называется гамильтоновым?
3.Запишите формулу, определяющую количество гамильтоновых цепей в полном графе на n помеченных вершинах, если граф
а) ориентированный; б) неориентированный.
3.Запишите формулу, определяющую количество гамильтоновых циклов в полном графе на n помеченных вершинах, если граф
а) ориентированный; б) неориентированный.
4.Сформулируйте простейшие необходимые условия существования гамильтонова цикла.
5.В чём заключается задача коммивояжёра?
§ 12. Деревья и их свойства. Цикломатическое число
Пусть T = (V, E) - неориентированный граф, не содержащий циклов, а значит, петель и кратных рёбер. Если при этом T - связный граф, то он называется неориентированным деревом, если T - граф несвязный, то он называется лесом. Связные компоненты леса являются деревьями.
Так как дерево не содержит циклов, то любая цепь в нём является простой.
Теорема 12.1 (свойство 1). Любые две вершины дерева v’ и v’’ связаны единственной цепью.
ÿ
Если бы были две цепи, связывающие вершины v’ и v’’, то был бы и цикл, что противоречит определению дерева.
ÿ
Из первого свойства следует, что удаление из дерева любого ребра приводит к несвязному графу; поэтому дерево представляет собой связный граф с минимальным количеством рёбер.
73
Длина простой цепи, соединяющей вершины v’ и v’’, называется расстоянием между этими вершинами.
Наглядное представление для дерева Т можно получить при помощи следующей конструкции (рисунок 12.1). Выберем произвольную вершину v0 и проведём все рёбра к вершинам, находящимся на расстоянии 1 от v0.
Рисунок 12.1 ‒ Дерево Т.
От этих вершин проведём рёбра к вершинам, находящимся на расстоянии 2 от v0, и т.д. Из вершины vpi, расположенной на расстоянии p от
v0, выходит ровно одно ребро к предшествующей вершине vp‒1,j , находя-
щейся от v0 на расстоянии p‒1, а также некоторое семейство рёбер к последующим вершинам vp+1,k , находящимся на расстоянии p+1 от v0.
Ни для какой из этих вершин vpi не может быть рёбер, соединяющих её с вершинами vpt с тем же расстоянием p от v0, т.е. расположенных на том же горизонтальном уровне.
Вершина v0 называется корнем дерева Т, а само дерево ‒ деревом с корнем.
Вершина v графа F называется листом (концевой, висячей), если её степень равна единице, т.е.
ρ (v) = 1.
Инцидентное концевой вершине ребро также называют концевым.
Пример. У дерева Т, представленного на рисунке 12.1, концевыми являются вершины:
v2,4, v3,2, v3,3, v3,5, v3,6, v3,8, v4,1, v4,2, v4,3, v4,4, v4,5.
74
Теорема 12.2 (свойство 2). Если конечное дерево состоит более чем из одной вершины, то оно имеет хотя бы две концевые вершины и хотя бы одно концевое ребро.
ÿ
I случай. Пусть v0 ‒ концевая вершина. Тогда от неё отходит одно ребро в вершину v1. В этом случае кроме v0 концевыми являются последнее ребро в цепи, выходящей из v1, и одна из инцидентных ему вершин.
II случай. Пусть вершина v0 не является концевой. Значит, от неё отходят хотя бы два ребра в вершины v1,1 и v1,2. Последнее ребро в цепи, выходящей из v1,1, и одна из инцидентных ему вершин являются концевыми. Аналогично концевыми являются и последнее ребро с инцидентной ему вершиной в цепи, выходящей из v1,2.
ÿ
В дереве с корнем v0 можно естественным образом ориентировать рёбра в направлении «от корня». В каждую вершину ориентированного «от корня» дерева (за исключением самого корня) входит только одно ребро, следовательно, число всех входящих рёбер, т.е. всех рёбер дерева, равно числу его вершин. Исключение составляет корень: в него не входит ни одно ребро. Поэтому в конечном дереве число рёбер m на единицу меньше числа вершин n (свойство 3):
m = n ‒ 1. |
(12.1) |
Каждое дерево можно ориентировать, выбрав в качестве корня любую его вершину.
Цикломатическим числом (ЦЧ) конечного неориентированного графа F = (V, E) называется величина
γ(F) = κ + m − n, |
(12.2) |
где κ − число связных компонент графа, m − количество рёбер, n − количество вершин.
Пример. Определить цикломатические числа графов, изображенных на рисунке 11.1.
Решение.
а) γ(F) = 1 + 7 − 5 = 3;
б) γ(F) = 1 + 15 − 6 = 10.
В силу соотношения (12.1) цикломатическое число любого дерева равно нулю:
75
γ(F) = κ + m − n = 1 + (n ‒ 1) − n = 0. |
(12.3) |
Цикломатическое число леса равно сумме цикломатических чисел
своих связных компонент ‒ деревьев, т.е. также равно нулю.
Выше было показано, что дерево − это связный граф с минимальным количеством рёбер. Следовательно, для связного графа, который содержит цикл и поэтому не является деревом, выполняется соотношение:
m > n − 1 |
(12.4) |
и, значит, его цикломатическое число положительно:
γ( F) > 0. |
(12.5) |
Задания для самостоятельной работы
1.Нарисовав диаграммы неизоморфных деревьев, показать, что а) на 6 вершинах их шесть; б) на 7 вершинах их одиннадцать.
2.Какое максимальное и какое минимальное число концевых вершин может иметь дерево, обладающее 9-ю вершинами?
3.Пусть F1 − неориентированное дерево с 4 вершинами, а F2 − полный неориентированный граф с 3 вершинами. Подсчитать количество вершин и рёбер в графах
F1 F2, F1+F2, F1×F2, F1 [F2] и F2 [F1].
4.Определите цикломатические числа графов, изображённых на рисунке 11.3.
5.Из дерева Т удалено не концевое ребро. В результате образовался новый граф Т*. Доказать, что Т* − лес.
6.Доказать, что лес, состоящий из k деревьев и содержащий n вершин,
имеет n−k рёбер.
7.В дереве с n концевыми вершинами нет вершин степени 2 (исключение может составлять только корень). Доказать, что общее число вершин такого дерева не превосходит 2n−1.
Контрольные вопросы
1.Какой граф называется деревом?
2.Какой граф называется лесом?
3.Какая вершина дерева называется концевой?
4.Сформулируйте свойства деревьев.
76
5.Запишите формулу, связывающую количество вершин и количество рёбер дерева.
6.Какая величина называется цикломатическим числом графа?
7.Чему равно цикломатическое число дерева?
8.Чему равно цикломатическое число леса?
§ 13. Формула Кэли
Рассмотренная ниже теорема была доказана Кэли (A.Cayley), который исследовал деревья в связи с химическими структурными формулами.
Теорема 13.1 (Кэли). Число tn различных деревьев, которые можно построить на n помеченных вершинах, равно:
tn = nn−2. |
(13.1) |
ÿ
Чтобы вывести эту формулу, воспользуемся методом, который предложил немецкий математик Хайнц Прюфер (Ernst Paul Heinz Prüfer).
Обозначим элементы данного множества вершин V, расположенные в некотором фиксированном порядке, числами
1, 2, 3, ..., n. |
(*) |
Кодом Прюфера называется кортеж длиной (n−2) со значениями компонент от 1 до n.
Установим взаимно однозначное соответствие между множеством всех деревьев с n помеченными вершинами и множеством всех кодов Прюфера.
Согласно второму свойству деревьев, в дереве Т найдутся хотя бы две концевые вершины. Просматривая последовательность (*) слева направо, найдём первую встретившуюся концевую вершину. Обозначим её через b1 , а соответствующее ей концевое ребро через e1 = (a1, b1). Удалив из дерева Т ребро e1 и вершину b1, мы получим новое дерево T1. Для T1 найдём первую встретившуюся в последовательности (*) концевую вершину b2 с ребром e2 = (a2, b2), удалив которое, получим дерево T2 и т.д.
Наконец, после удаления ребра en−2 = (an−2, bn−2) останется единственное ребро en−1 = (an−1, bn−1), соединяющее две оставшиеся вершины. Тогда
код Прюфера (a1,a2,..., an−2) однозначно определяется деревом Т, и двум различным деревьям соответствуют разные коды Прюфера.
Пример. Составить код Прюфера для дерева, изображённого на рисунке 13.1, а.
77
а |
б |
Рисунок 13.1.
Решение. Концевая вершина с самым маленьким номером ‒ 3, а соот-
ветствующее ей концевое ребро ‒ (2, 3); поэтому принимаем a1 = 2 и отсекаем это ребро.
Концевая вершина с самым маленьким номером из оставшихся − 4, а
соответствующее ей концевое ребро ‒ (2, 4). Принимаем a2 = 2 и отсекаем ребро. Дальше действуем аналогично.
Требуемый код Прюфера имеет вид: (2, 2, 2, 1, 6, 6).
Покажем теперь, что, наоборот, каждое дерево |
Т однозначно опре- |
деляется кодом Прюфера |
|
(a1, a2,..., an‒2) |
(**) |
Выполним обратное построение.
Пусть дан код Прюфера (**). Просматривая последовательность (*) слева направо, найдём первую встретившуюся вершину b1, которая не содержится в (**). Первый элемент a1 кортежа (**) и эта вершина b1 определяют ребро дерева: e1 = (a1, b1).
Далее, удаляем элемент a1 из (**) и элемент b1 из (*), после чего продолжаем построение аналогичным образом до тех пор, пока (**) не «опустеет». При этом в последовательности (*) останутся два неиспользованных элемента, которые единственным образом определяют последнее ребро дерева.
Пример. Восстановить дерево Т, если соответствующий ему код Прюфера имеет вид:
(1, 2, 2, 1, 4, 4, 4). |
(##) |
Решение. Данный кортеж содержит 7 компонент, значит, дерево Т должно иметь 7 + 2 = 9 вершин. Выпишем последовательность номеров этих вершин:
78
1, 2, 3, 4, 5, 6, 7, 8, |
9. |
(#) |
1. Просматривая последовательность (#) слева направо, найдём пер-
вое число, которое не содержится в (##), ‒ это 3. Получаем ребро
e1 = (1, 3). Зачёркиваем 1 в (##), 3 в (#); остаётся:
|
(2, 2, 1, 4, 4, 4) |
|
(##) |
|||||
1, |
2, |
4, |
5, |
6, |
7, |
8, |
9. |
(#) |
2. Первое число в (#), которое не содержится в (##), ‒ это 5. Получаем следующее ребро e2 = (2, 5). Зачёркиваем 2 в (##), 5 в (#); остаётся:
|
(2, 1, 4, 4, 4), |
|
(##) |
||||
1, |
2, |
4, |
6, |
7, |
8, |
9. |
(#) |
Повторяя эту процедуру ещё 3 раза, получим рёбра
e3 = (2, 6), e4 = (1, 2), e5 = (4, 1), e6 = (4, 7), e7 = (4, 8).
После этого (##) опустеет, а в последовательности (#) останутся два
числа ‒ 4 и 9. Они определяют последнее ребро e8 = (4, 9).
Так как все рёбра известны, восстанавливаем дерево Т (в качестве корня можно выбрать любую из вершин, например, вершину с максимальной степенью или, ещё проще – вершину 1). Диаграмма дерева Т приведена на рисунке 13.1, б.
Итак, нам удалось установить взаимно однозначное соответствие
между множеством всех деревьев с n помеченными вершинами и множеством всех кодов Прюфера. Из взаимно однозначного соответствия этих множеств следует их равномощность, т.е. количество элементов у них
одинаковое.
В кортеже (a1, a2, ..., an−2) каждая компонента может принимать лю-
бое из n значений (от 1 до n), а всего таких компонент n−2. Воспользовавшись комбинаторным правилом произведения (см. § 2), найдём общее количество кортежей:
n ∙ n ∙ ... ∙ n = nn−2. └───◊───┘ n−2 сомножителя
79
Значит, и различных деревьев с n помеченными вершинами будет столько же.
ÿ
Пример. Подсчитать количество различных деревьев, которые можно построить на n = 5 помеченных вершинах.
Решение. Подставив n = 5 в формулу (13.1) найдём требуемое число: t5 = 53 = 125.
Некоторые из этих деревьев изоморфны друг другу. Подсчёт количества неизоморфных деревьев на n вершинах – задача более сложная, и в рамках данного пособия рассматриваться не будет.
Задания для самостоятельной работы
1.Подсчитать количество различных деревьев, которые можно построить на n = 6 помеченных вершинах.
2.С помощью алгоритма Прюфера восстановите по кортежу дерево. Сделайте проверку, т.е. для построенного дерева составьте соответствующий этому дереву код Прюфера и сравните получившийся код с исходным.
а) (3, 3, 7, 1, 1, 1); б) (1, 2, 2, 4, 9, 5, 5, 5);
в) (7, 11, 11, 6, 6, 6, 2, 2, 10, 1); г) (2, 3, 1, 4, 4, 4, 1, 2, 6, 6).
Контрольные вопросы
1.Сформулируйте теорему Кэли.
2.Запишите формулу для подсчёта количества различных деревьев, которые можно построить на n помеченных вершинах.
3.Что такое код Прюфера?
4.Опишите метод Прюфера, позволяющий по заданному дереву на n поме-
ченных вершинах построить кортеж с n−2 компонентами (со значениями компонент от 1 до n) и, наоборот, по заданному кортежу – дерево.
§14. Минимальное остовное дерево
Остовным деревом связного неориентированного графа F = (V, E) называется дерево T = (V, ET), которое является частью (см. § 3) графа F, содержащей все его вершины.
Если связный неориентированный граф F = (V, E) не является деревом, т.е. содержит хотя бы один цикл, то F имеет не единственное остовное дерево.
Пример. На рисунках 14.1, б и 14.1, в представлены два разных остовных дерева графа F, изображённого на рисунке 14.1, а.
80