
- •Теория графов. Введение
- •§1. Основные понятия и определения теории графов.
- •§2. Задачи, послужившие основой теории графов.
- •1. Задача о кенигсбергских мостах.
- •2. Задача о четырех красках.
- •§3. Алгоритмические задачи.
- •1. Задачи о кратчайших путях.
- •Алгоритм решения.
- •Обоснование алгоритма.
- •2. Алгоритм построения Эйлерова цикла.
- •Обоснование алгоритма.
- •3. Потоки на транспортных сетях.
- •Алгоритм Форда — Фалкерсона для нахождения потока наибольшей величины.
- •Обоснование алгоритма.
- •§4. Цикломатическое число графа. Деревья.
- •§5. Эйлерова характеристика. Плоские графы.
- •§6. Теорема о пяти красках.
- •Оценка хроматического числа плоского графа.
- •§7. Графы правильных многогранников.
Обоснование алгоритма.
Пусть мы находимся в некоторой вершине . В исходном графе степень вершины — четное число, поэтому после зачеркивания ребер, по которым мы приходили и уходили из вершины , ее степень — нечетна. Следовательно, существует, по крайней мере, одно незачеркнутое ребро, инцидентное вершине . Если это ребро — единственное, инцидентное вершине , то оно, в силу замечания в 5° алгоритма, не может быть «перешейком», и по нему можно покинуть вершину .
Пусть ребер, инцидентных вершине — нечетное число, большее единицы. Докажем, что среди них хотя бы одно ребро не является перешейком. Допустим противное: все ребра, инцидентные вершине — перешейки. Удалим одно из этих ребер, такое, чтобы вершина и оказались в разных компонентах связности. Такое ребро существует, так как в противном случае вершины и были бы связаны более чем одной простой цепью. Это означало бы, что существует простой цикл, содержащий вершины и . Но ребра, входящие в простой цикл, не могут быть перешейками.
Рассмотрим
компоненту связности
,
содержащую вершину
(и не содержащую вершину
).
В графе
степени всех вершин, в том числе и вершины
—
четные числа. Следовательно, в графе
существует эйлеров цикл. Ребра, входящие
в цикл, не могут быть перешейками.
Итак, наше допущение ведет к противоречию. Более того, мы убедились, что среди ребер, инцидентных вершине в графе, полученном из графа удалением пройденных ребер, лишь одно может быть перешейком.
Таким образом,
доказано, что невозможность выполнить
предписания алгоритма может возникнуть
только в вершине
,
если попасть в нее, по крайней мере, во
второй раз. В отличие от других вершин
степень вершины
при
-м
попадании в нее
— четна. Если эта степень равна нулю,
алгоритм перестает работать.
Докажем, что в этом случае эйлеров цикл уже построен. В самом деле, в силу правила 3° любое ребро может войти в цикл не более одного раза. В силу правил 4°, 5° — пройдены все ребра. Действительно, непройденные ребра определяют в графе компоненты связности. Если эти компоненты можно связать с вершиной цепью из более чем одного зачеркнутого ребра, то среди этих ребер наверняка одно — перешеек; если одним ребром, то была возможность выбора ребра, не ведущего в вершину .
3. Потоки на транспортных сетях.
1. Основная задача теории транспортных сетей.
Определение
1: Транспортная
сеть
есть совокупность двух объектов:
1. Связного графа , обладающего свойствами:
1°) в графе отсутствуют петли,
2°) в графе
существует одна и только одна вершина
такая, что множество
,
3°) в графе
существует одна и только одна вершина
,
такая, что множество
.
2.
Целочисленной неотрицательной функции
,
заданной на множестве
дуг графа
.
Вершина называется входом сети, вершина — выходом. Значение функции на дуге называется пропускной способностью дуги.
Определение
2: Пусть
— множество дуг, заходящих в вершину
,
a
— множество дуг, выходящих из вершины
.
Целочисленная неотрицательная функция
,
заданная на множестве
дуг графа
,
называется потоком,
если она удовлетворяет следующим
свойствам:
1)
,
2)
.
Термины, входящие в определения 1 и 2, наводят на мысль, что при рассуждениях относительно транспортных сетей очень удобно представлять, что по дугам транспортной сети движется некоторая несжимаемая «жидкость». Дуги могут пропускать «жидкость» только в одном направлении и в количестве, не превышающем их пропускной способности. Свойство 1) определения 2 можно понимать как закон сохранения количества жидкости. Вся жидкость, движущаяся по транспортной сети, вытекает из входа сети и стекает в выход. Сколько жидкости поступает из входа сети, столько же стекает в выход, так как из свойства 1) определения 2 следует равенство:
.
Определение
3: Величина
называется величиной
потока
и обозначается
.
Задача. На данной транспортной сети построить поток наибольшей величины.
Прежде чем изложить
алгоритм решения задачи, введем еще два
термина. Дуга
называется насыщенной,
если
.
Поток
называется полным,
если каждый путь из вершины
в вершину
содержит хотя бы одну насыщенную дугу.