- •Конспект лекций по дисциплине «дискретная математика»
- •Харьков 2013
- •2. Коммутативные свойства кванторов:
- •3. Дистрибутивные свойства кванторов:
- •4. Закон де Моргана для кванторов:
- •Алгоритм Форда-Фалкерсона:
- •1. Основы теории множеств Алгебра множеств.
- •2. Отношения и их свойства
- •3. Основы математической логики
- •3.1 Двоичная логика. Булевы функции и преобразования
- •3.2 Логика высказываний и логика предикатов
- •4. Элементы комбинаторного анализа
- •5. Основы теории графов
- •По дисциплине
2. Коммутативные свойства кванторов:
;
.
Менять местами можно только одноименные кванторы.
.
3. Дистрибутивные свойства кванторов:
;
;
;
,
где
− формула логики предикатов, которая
не содержит
;
;
.
Сформулированный
дистрибутивный закон справедлив только
для квантора всеобщности
при конъюнкции
и квантора существования
при дизъюнкции
,
т.к. другие комбинации приводят к
неравенствам:
;
.
Для преодоления данного ограничения дистрибутивного закона, следует использовать замену связанной переменной:
;
.
Таким образом, в общем случае дистрибутивные свойства кванторов можно записать следующей схемой:
;
,
где
− любой из кванторов
или
.
4. Закон де Моргана для кванторов:
;
.
12.5 Предваренные нормальные формы
Определение.
Формула
в логике первого порядка находится впредваренной
нормальной форме (ПНФ)
тогда и только тогда, когда она может
быть представлена в виде
,
где каждое
,
,
есть или
,
или
,
а
− формула, не содержащая кванторов.
Причем
называетсяпрефиксом,
а
−матрицей
формулы
.
Для преобразования выражений произвольной формы в ПНФ необходимо поочередно выполнить следующие этапы преобразования:
1.
Исключить логические связки эквиваленции
и импликации, выразив их через операции
дизъюнкции, конъюнкции и отрицания с
помощью следующих законов:
;
.
2.
Опустить знаки операций отрицания
непосредственно на предикаты, используя
закон двойного отрицания
и законы де Моргана
,
,
в том числе для кванторов:
;
.
3. Если необходимо, переименовать связанные переменные.
4. Вынести кванторы в начало формулы, используя соответствующие законы, для получения предваренной нормальной формы
Пример.
Приведем
формулу
к предваренной нормальной форме.
Сначала исключим импликацию, затем опустим знак операции отрицания непосредственно на предикат и вынесем квантор в начало:
![]()
.
12.6 Выводимость в логике предикатов
Для дедуктивного вывода в логике предикатов можно использовать правила, которые применяются для подобных выводов в логике высказываний. Однако в логике предикатов для проведения дедуктивных умозаключений используются также и специфические правила, учитывающие наличие кванторных операций. К таким правилом относятся следующие правила:
а)
Правило
удаления квантора всеобщности
используется для доказательства
истинности
,
где
− произвольно выбранный элемент
предметной области
,
в которой справедливо
.
Пример.
Из посылки «Все студенты любят получать хорошие оценки» делаем вывод: «Студент Петров любит получать хорошие оценки».
б)
Правило
введения квантора всеобщности
утверждает истинность
,
если доказана истинность
для любого
,
то есть для всех элементов
из рассматриваемой предметной области
.
в)
Правило
удаления квантора существования
в истинной формуле
заключается в указании имени элемента
(конкретного или гипотетического), для
которого
истинно.
г)
Правило
введения квантора существования
позволяет заключить, что
является истинным, когда известен
некоторый элемент
,
для которого истинно
.
12.7 Контрольные вопросы и задания
1. Дайте определение понятия предикат.
2. Что называется порядком предиката?
3.
Приведите примеры
-местных
предикатов.
4. Какие типы символов разрешается использовать для построения атомов логики предикатов?
5. Приведите примеры функциональных символов.
6. Дайте определение терма.
7. Что понимают под предметной областью?
8. Что понимают под квантором всеобщности?
9. Дайте определение понятию «квантор существования».
10. Какие переменные называются связанными, а какие – свободными?
11. Из чего состоит интерпретация формулы логики первого порядка?
12. Объясните суть замены связанной переменной.
13. Сформулируйте коммутативные свойства кванторов.
14. Запишите формулы закона де Моргана для кванторов.
15. Дайте определение предваренной нормальной формы.
16. С помощью каких законов можно опустить знаки операций отрицания непосредственно на предикаты?
17. Каким образом можно преобразовать выражения произвольной формы в ПНФ?
Лекция 13. Исчисление предикатов
13.1 Основные понятия исчисления предикатов
В логике предикатов, в отличие от логики высказываний, нет эффективного способа для распознавания общезначимости формул. Поэтому аксиоматический метод становится существенным при изучении формул, содержащих кванторы.
В логике предикатов существует формальная система, которая носит название исчисление предикатов. Выделение общезначимых формул в ней так же, как и в исчислении высказываний, осуществляется путем указания некоторой совокупности формул, которые называются аксиомами, и указания правил вывода, позволяющих из общезначимых формул получить общезначимые.
Определение.
Исчисление предикатов − это аксиоматическая теория, символами которой являются:
символы предметных переменных:
;символы предикатов:
,
где
;логические символы:
;символы кванторов:
;скобки и запятую: ),( .
13.2 Аксиомы исчисления предикатов
Аксиомами исчисления предикатов являются следующие аксиомы:
а)
;
б)
;
в)
;
г)
;
д)
.
13.3 Правила вывода в исчислении предикатов
В исчислении предикатов используются следующие правила вывода:
1.
Правило
отделения,
которое формулируется так же, как и в
исчислении высказываний:
;
2.
Правило
связывания квантором общности
(правило
обобщения,
правило
-введения)
,
где
содержит свободные вхождения
,
а
их не содержит.
3.
Правило
связывания квантором существования
(правило
-введения)
,
где
содержит свободные вхождения
,
а
их не содержит.
4.
Правило
переименования связанной переменной.
Связанную переменную формулы
можно заменить (в кванторе и во всех
вхождениях в области действия квантора)
другой переменной, не являющейся
свободной в
.
Пример. Докажем правило переименования связанных переменных для квантора общности:
1.
(по условию).
2.
(аксиома а) ).
3.
(правило обобщения).
4.
.
Понятия вывода, теоремы, вывода из системы гипотез определяется в исчислении предикатов, как и в любой аксиоматической теории.
Теорема 13.1 (ослабленная теорема о дедукции)
Пусть
− множество формул,
− формулы и
,
и существует вывод в исчислении
предикатов, построенный с применением
только правила отделения, то
.
Утверждение 1. Аксиомы исчисления предикатов − общезначимые формулы.
Утверждение 2. формула, получающаяся из общезначимой формулы по любому из правил 1 − 4, является общезначимой.
13.4 Контрольные вопросы и задания
1. Поясните понятие формальной системы, которая имеет название исчисление предикатов.
2. Сформулируйте назначение исчисления предикатов.
3. Запишите формулы аксиом исчисления предикатов.
4. Перечислите правила вывода, которые можно использовать для проведения дедуктивных умозаключений с высказываниями логики предикатов.
Лекция 14. Общие определения комбинаторики. Основные правила комбинаторики. Модели типовых комбинаторных конфигураций.
14.1 Общие определения комбинаторики.
Понятие
-выборки.
Общие задачи комбинаторики
На практике часто приходится выбирать из некоторого множества объектов подмножества элементов, обладающих теми или иными свойствами, располагать элементы одного или нескольких множеств в определенном порядке и т.д. Поскольку в таких задачах речь идет о тех или иных комбинациях объектов, их называют "комбинаторные задачи".
Комбинаторика занимается различного рода соединениями, которые можно образовать из элементов некоторого конечного множества. Термин "комбинаторика" происходит от латинского combina - сочетать, соединять.
Комбинаторикой называется раздел математики, изучающей вопрос о том, сколько комбинаций определенного типа можно составить из данных предметов (элементов).
Наиболее широкое применение комбинаторные задачи находят при решении задач теории вероятностей, также комбинаторика широко используется в теории графов и теории чисел. Как при решении задач с использованием комбинаторных конфигураций, так и в других ситуациях нам понадобятся некоторые формулы комбинаторики.
Определение.
Пусть задано r
множеств:
,
при этом
,
тогда
r-выборкой
называется упорядоченная совокупность
элементов вида
.
Определение.
Множество всех выборок
называется
теоретико-множественным
произведением
или произведением r множеств
.
Обозначается![]()
-выборка
не является множеством, а является
элементом теоретико-множественного
произведения.
В
-выборке
каждый элемент (компонента) может
повторяться, но их порядок фиксирован.
Определение.
Две упорядоченные выборки равны
или эквивалентны
тогда и только тогда, когда соответствующие
элементы равны
.
Определение.
r-выборка
с произвольным порядком размещения
компонент называется неупорядоченной
r-выборкой.
Обозначается
.
Основными и типичными операциями и связанными с ними задачами комбинаторики являются:
1) образование упорядоченных множеств, состоящее в установлении определенного порядка следования элементов множества друг за другом, –
составление перестановок;
2) образование подмножеств, состоящее в выделении из данного множества некоторой части его элементов, – составление сочетаний;
3) образование упорядоченных подмножеств – составление размещений.
14.2 Основные правила комбинаторики
Большинство комбинаторных задач решается с помощью двух основных правил – правила суммы и правила произведения.
Правила суммы и произведения используются при вычислении количества различных комбинаций.
Правило
суммы.
Если
и
– несвязанные события, и существует
возможных исходов события
,
и
возможных исходов события
,
то возможное число исходов события «
или
»
равно сумме
.
Интерпретация.
Если элемент
можно выбрать
способами, а элемент
–
способами, то выбор элемента
можно осуществить
способами. Пусть
– попарно
непересекающиеся множества,
,
где
.
Тогда, очевидно, выполняется равенство
.
Правило
произведения.
Если дана
последовательность
событий с
возможными исходами первого,
– второго, и т.д., вплоть до
возможных исходов последнего, то общее
число исходов последовательности k
событий равно произведению
.
Правило
произведения тоже можно сформулировать
на языке теории множеств. Пусть
обозначает множество
исходов первого события,
– множество
исходов второго, и т. д. Тогда любую
последовательность
событий можно рассматривать как элемент
декартова произведения
,
чья мощность равна
.
Пример. Из 28 костей домино берутся 2 кости. В каком числе комбинаций вторая кость будет приложима к первой?
На первом шаге имеется два варианта: выбрать дубль (7 комбинаций) или не дубль (21 комбинация). В первом случае имеется 6 вариантов продолжения, во втором – 12.
Общее
число благоприятных комбинаций равно:
.
А всего вариантов выбора 2 костей из 28 равно 378; т. е. при большом числе экспериментов в 7 случаях из 9 (294/378 = 7/9) при выборе 2 костей одна кость окажется приложимой к другой.
14.3 Модели комбинаторных конфигураций
Для формулировки и решения комбинаторных задач используют различные модели комбинаторных конфигураций. Примерами комбинаторных конфигураций являются: размещение, сочетание, композиция, разбиение.
Определение.
Размещением
из
элементов по
называетсяупорядоченный
набор из
различных элементов некоторого
-элементного
множества.
Определение.
Перестановкой
из
элементов (например, чисел
)
называется всякий упорядоченный набор
из этих элементов. Перестановка также
является размещением из
элементов
по
.
Определение.
Сочетанием
из
по
называется набор
элементов, выбранных из данных
элементов. Наборы, отличающиеся только
порядком следования элементов (но не
составом), считаютсяодинаковыми,
этим сочетания отличаются от размещений.
Определение.
Композицией
числа
называется всякое представление
в виде упорядоченной суммы целых
положительных чисел.
Определение.
Разбиением
числа
называется всякое представление
в виде неупорядоченной суммы целых
положительных чисел.
14.3.1 Размещения без повторений
Рассмотрим задачу: Сколько разных 5-разрядных чисел можно записать с помощью десяти цифр при условии, что в числах не используются одинаковые цифры?
Перенумеруем разряды:
-
1
2
3
4
5
В
первый разряд можно поставить одну из
10 цифр (0, 1, 2, 3, 4, 5, 6, 7, 8, 9). Независимо от
того, какая цифра помещена в первый
разряд, во втором можно поставить только
одну из 9 цифр, в третий – одну из 8 цифр
и т. д. Всего существует
различных пятиразрядных чисел, в каждом
из которых нет двух одинаковых цифр.
В
общем случае, если имеется
позиций и n разных предметов, причем
каждый представлен в единственном
экземпляре, то количество разных
расстановок равно
.
Пример.
Из группы в 25
человек требуется выбрать старосту,
сенатора и профорга. Сколько вариантов
выбора руководящего состава группы?
Старосту выбрать можно одним из 25
способов. Поскольку выбранный староста
не может быть сенатором, то для выбора
сенатора остается 24 варианта. Профорга
выбирают одним из 23 способов. Всего
вариантов:
.
Пример.
На дискотеку
пришло 12 девушек и 15 юношей. Объявлен
“белый” танец. Все девушки выбрали для
танцев юношей (и никто из них не отказался).
Сколько могло образоваться танцующих
пар?
![]()
14.3.2 Размещения с повторениями
Рассмотрим задачу: сколько разных 5-разрядных чисел можно составить из 10 цифр?
Перенумеруем разряды:
-
1
2
3
4
5
В первый разряд можно поставить одну из 10 цифр. Независимо от того, какая цифра поставлена, во второй разряд можно также поставить одну из 10 цифр и т. д. Всего получается 105 различных чисел.
Для двоичной системы счисления (используются только две цифры: 0 или 1) получаем 25 различных чисел.
Для
системы с основанием
и числом разрядов
соответственно получаем:
,
где
– число позиций (разрядов);
– число элементов в каждой позиции
(цифр).
В
общем виде
задача ставится следующим образом:
имеется
типов предметов (количество предметов
каждого типа неограниченно) и
позиций (ящиков, кучек, разрядов).
Требуется определить, сколько разных
комбинаций можно составить, если в
позициях предметы могут повторяться?
Следовательно, размещения с повторениями
можно определить как
.
Пример.
Сколько разных чисел может содержать
10-разрядное слово в троичной системе
счисления? В первый разряд можно поставить
один из трех символов (0, 1 или 2), во второй
разряд – также один из трех символов и
т. д. Всего получаем
чисел.
14.3.3 Перестановки без повторений
В предыдущих параграфах комбинации отличались как составом предметов, так и их порядком. Однако если в последней задаче юношей было бы тоже 12, то все комбинации отличались бы только порядком.
Рассмотрим,
сколько различных комбинаций можно
получить, переставляя n предметов.
Положим
в формуле
,
тогда получим
.
Пример. К кассе кинотеатра подходит 6 человек. Сколько существует различных вариантов установки их в очередь друг за другом?
Расставим 6 человек произвольным образом и начнем их переставлять всеми возможными способами. Число полученных перестановок в соответствии с формулой (5.3) будет равно 6! = 720.
14.3.4 Перестановки с повторениями
Иногда требуется переставлять предметы, некоторые из которых неотличимы друг от друга. Рассмотрим такой вариант перестановок, который называется перестановками с повторениями.
Пусть
имеется
предметов 1-го типа,
предмета 2-го,
предметов
-го
типа и при этом
.
Количество разных перестановок предметов
равно
.
Для
обоснования данной формулы сначала
будем переставлять n предметов в
предположении, что они все различны.
Число таких перестановок равно
.
Затем заметим, что в любой выбранной
расстановке перестановка
одинаковых предметов не меняет комбинации,
аналогично перестановка
одинаковых предметов также не меняет
комбинации и т. д. Поэтому получаем
выражение
.
Пример. Найдем количество перестановок букв слова КОМБИНАТОРИКА. В этом слове 2 буквы к, 2 буквы о, 1 буква м, 1 буква б, 2 буквы и, 1 буква н, 2 буквы а, 1 буква т и 1 буква р.
Таким образом, число перестановок букв этого слова равно:
P(2, 2, 1, 1, 2, 1, 2, 1, 1) = 13!/(2! 2! 2! 2!)= 13!/16.
14.3.5 Сочетания без повторений
Если
требуется выбрать
предметов
из
,
и при этом порядок выбираемых предметов
безразличен, то имеем
.
Эта
формула может быть получена следующим
образом. Выберем по очереди k предметов
из n. Число вариантов будет равно
.
В этих расстановках
выбранных
предмета имеют свои определенные
позиции. Однако нас не интересуют в
данном случае позиции выбранных
предметов. От перестановки этих предметов
интересующий нас выбор не меняется.
Поэтому полученное выражение нужно
разделить на![]()
Пример.
Из группы в 25 человек нужно выбрать
троих для уборки помещения. Если выбирать
их последовательно, сначала первого,
потом второго, потом третьего, то получим
варианта. Но так как нас не интересует
порядок выбора, а только состав выбранной
бригады, поэтому полученный результат
нужно разделить еще на 3!
Пример. В середине 60-х годов в России появились две лотереи, которые по недоразумению были названы “Спортлото”: лотерея 5/36 и 6/49. Рассмотрим 6/49. Играющий покупает билет, на котором имеется 49 клеточек. Каждая клеточка соответствует какому-либо виду спорта. Нужно выделить (зачеркнуть) 6 из этих клеточек и отправить организаторам лотереи. После розыгрыша лотереи объявляются шесть выигравших номеров. Награждается угадавший все шесть номеров, пять номеров, четыре номера и даже угадавший три номера. Соответственно, чем меньше угадано номеров (видов спорта), тем меньше выигрыш.
Подсчитаем,
сколько существует разных способов
заполнения карточек “Спортлото” при
условии, что используется лотерея 6/49.
Казалось бы, заполняя последовательно
номер за номером, получим:
49
48
47
46
45
44.
Но ведь порядок заполнения не имеет значения, тогда получаем:
.
Эту
же задачу можно решить и другим способом.
Выпишем все номера подряд и под выбираемыми
номерами поставим 1, а под остальными –
0. Тогда различные варианты заполнения
карточек будут отличаться перестановками.
При этом переставляются 6 предметов
одного вида (единицы) и 49 – 6 = 43 предмета
другого вида (нули), т. е. опять
.
Если все участники заполняют карточки по-разному, то в среднем один из примерно 14 миллионов угадает все 6 номеров. А сколько человек в среднем угадают 5 номеров?
Выберем
один из угаданных номеров
и заменим его на один из не угаданных
.
Итого: 6
43
= 258 человек из 14 миллионов угадают 5
номеров. А сколько угадают 4 номера?
Выберем из 6 угаданных два и затем из 43
не угаданных тоже два и перемножим число
вариантов выбора. Тогда получим:
человек.
Аналогично найдем, что 3 номера угадают 246820 человек, т. е. примерно 1,77% от всех играющих.
14.3.6 Сочетания с повторениями
Пример. Требуется купить 7 пирожных. В магазине имеются пирожные следующих видов: эклеры, песочные, слоеные и наполеоны. Сколько вариантов выбора? Решение: выбранные пирожные заменяем единицами, и добавляем три нуля (разделителя). Каждой перестановке однозначно соответствует некоторый выбор. Например, одному из вариантов покупки будет соответствовать такой код: 1101110101. Пирожные покупаются следующим образом. Количество единиц слева до первого нуля соответствует покупке эклеров, между первым и вторым нулем – покупке песочных, между вторым и третьим – покупке слоеных, единицы после третьего нуля соответствуют числу покупаемых наполеонов. В случае приведенного кода покупается 2 эклера, 3 песочных, 1 слоеное и 1 наполеон. Количество вариантов покупки пирожных равно числу перестановок из 7 объектов одного типа (единиц) и 3 объектов второго типа (нулей).
Если
имеются предметы
разных типов (без ограничения числа
предметов каждого типа) и требуется
определить, сколько комбинаций можно
сделать из них, чтобы в каждую комбинацию
входило
предметов? Каждую комбинацию шифруем
с помощью 0 и 1, причем 1 соответствуют
предметам, а 0 выполняют функцию
разделителей. Тогда записав
единиц и добавив
нуль, получим комбинацию, при которой
выбираются
предметов первого типа и ни одного
предмета остальных типов. Переставляя
всеми способами эти
единиц и
нуль, мы будем каждый раз получать
некоторую расстановку, состоящую из
предметов. Тогда
.
14.4 Контрольные вопросы и задания
1. Дайте определение r-выборки.
2. Перечислите основные задачи комбинаторного анализа.
3. Перечислите основные комбинаторные конфигурации (модели комбинаторных конфигураций).
4. Приведите примеры комбинаторных конфигураций.
5. Поясните основные правила, используемы при решении комбинаторных задач.
6. Поясните правило суммы и приведите пример задачи, для решения которой используется данное правило.
7. Поясните правило произведения и приведите пример задачи, для решения которой используется данное правило.
8. Дайте определение понятия «перестановка». Приведите формулу расчета количества перестановок без повторения элементов в них.
9. Дайте определение понятия «перестановка». Приведите формулу расчета количества перестановок с повторением элементов в них.
10. Дайте определение понятия «размещение». Приведите формулу расчета количества размещений без повторения элементов в них.
11. Дайте определение понятия «сочетание». Приведите формулу расчета количества сочетаний без повторения элементов в них.
12 Дайте определение понятия «размещение». Приведите формулу расчета количества размещений с повторением элементов в них.
13. Дайте определение понятия «сочетание». Приведите формулу расчета количества сочетаний с повторением элементов в них.
Лекция 15. Принцип включения и исключения
15.1 Теорема и формула включений и исключений
Главная
теорема комбинаторики (Теорема о
включениях и исключениях). Пусть
имеется множество из
объектов произвольной природы. На этом
множестве пусть задано
свойств. Каждый объект может обладать
либо не обладать некоторыми из этих
свойств. Сами свойства обозначим:
.
Будем обозначать
– количество объектов точно обладающих
свойством
и может быть какими-то другими, а
– число объектов, не обладающих ни
свойством
,
ни свойством
.
Тогда число объектов, не обладающих ни
одним из перечисленных свойств:

Пример. На предприятии работает 67 человек. Из них 48 знают английский, 35 – немецкий и 27 – оба языка. Сколько человек не знают ни английского, ни немецкого?
Результат
можно получить следующим образом.
Построим диаграмму, на которой изобразим
прямоугольник, соответствующий общему
числу работающих (67) и две пересекающиеся
области
и
по 48 и 35 человек (знающих английский и
немецкий языки). На диаграмме общая
часть этих двух областей соответствует
27 – количеству работающих, которые
знают оба языка. Требуется найти область
прямоугольника, не входящую ни в область
,
ни в область
.

Очевидно, что N = 67 – 48 – 35 + 27 = 11.
Пусть теперь 20 человек знают французский, 12 – английский и французский, 11 – английский и немецкий и 5 – все три языка.
Тогда
в соответствии с теоремой количество
человек, не знающих ни одного из трех
перечисленных языков (но может быть
знающих китайский язык), равно
= 67 – 48 – 35 – 20 + 27 + 12 + 11 – 5 = 9.
15.2 Решето Эратосфена
Выпишем
все числа от 1 до
.
Сколько чисел делится на
?
Очевидно,
,
где
обозначает целую часть числаx.
Тогда, легко подсчитать количество
чисел, не делящихся в данном диапазоне
на
![]()
Пример. Сколько чисел от 1до 100 не делятся на 5 и 7?
Воспользуемся теоремой о включениях и исключениях. Под первым свойством чисел будем понимать делимость на 5, под вторым – делимость на 7. На 5 делятся 20 чисел. На 7 делятся 14 чисел. На 35 делятся 2 числа. Следовательно, не делятся на 5 и 7: 100 – 20 – 14 + 2 = 68 чисел.
15.3 Частный случай теоремы о включениях и исключениях
В некоторых случаях количество объектов, обладающих определенным набором свойств, зависит только от числа этих свойств. Тогда формула для подсчета числа объектов, не обладающих ни одним из выделенных свойств, упрощается.
При
произвольном
имеем:
В
общем случае при перестановке
предметов количество расстановок, при
которых ни один предмет не находится
на своем месте:
![]()
![]()
![]()
.
Полученное
значение
иногда называютформулой
полного беспорядка
или субфакториалом.
Субфакториал
можно
представить и так:
,
где
выражение в [...] стремится к
при
неограниченном возрастании
.
Субфакториал
имеет свойства, похожие на свойства
обычного факториала. Например,
– для обычного факториала,
–
для субфакториала. Субфакториалы легко
вычисляются по формуле
.
Некоторые начальные значения субфакториалов:
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
|
|
0 |
1 |
2 |
9 |
44 |
255 |
1784 |
14273 |
128456 |
15.3 Контрольные вопросы и задания
1. Дайте определение главной теоремы комбинаторики (Теорема о включениях и исключениях).
2. Приведите общую постановку задачи включений и исключений
3. Приведите общую формулу включений и исключений.
4. В каких задачах применяется теорема о включениях и исключениях.
5. Что представляет собой решето Эратосфена?
6. Обоснуйте частный случай теоремы о включениях и исключениях.
Лекция 16. Задачи о распределении предметов по урнам (урновые схемы решения комбинаторных задач)
16.1 Задачи о размещении предметов
Решая задачи размещения (распределения предметов по урнам) необходимо определить, являются ли предметы одинаковыми или различными, учитывать порядок или нет, различаются ли урны между собой.
Если невозможно однозначно что-либо определить, то необходимо сделать предположение.
16.2 Распределение n разных предметов по k урнам
Количество
размещений по k урнам n разных предметов
при условии, что в первую урну попало
предметов, во вторую –
в последнюю –
предметов, равно
,
.
16.3 Распределение n одинаковых предметов по k урнам
Установим,
что n одинаковых предметов между k урнами
можно разделить
способами.
Количество
искомых распределений n одинаковых
предметов между
урнами равняется количеству перестановок
из
предметов с повторениями
предметов первого типа и
предметов второго типа, т.е. равно
.
Если
делить справедливо, с уровнем справедливости
,
то каждый участок распределения должен
получать минимум
предметов. Тогда сначала раздадим
каждому по
предметов. После чего остается
предметов, которые и распределим по
усмотрению. Это можно сделать![]()
способами.
16.4 Распределение разных предметов без учета порядка предметов по урнам
Нужно
разделить n разных предметов по
урнам, емкость которых не ограничена.
Первый предмет можно положить в любую
из
урн, второй(независимо от первого), тоже
в
урн и т.д. По правилу произведения
предметы можно разделить
способами.
16.5 Распределение разных предметов с учетом их порядка в урнах
Если
не ограничивать количество предметов
в урнах и если предметы не разнятся
между собой, то количество таких
распределений равно
![]()
Каждому
способу разделения одинаковых предметов
между урнами соответствует
способов распределения разных предметов
с учетом их порядка, которые получаются
с помощью перестановок предметов между
собой без изменения количества предметов
в урнах. По правилу умножения получаем
искомое количество распределений
.
16.6 Распределение разных предметов между одинаковыми урнами при условии, что урны не пусты
Обозначим
количество способов разделения n разных
предметов между
одинаковыми урнами так, чтобы каждая
урна была не пустой. Из каждого такого
распределения можно получить
аналоговых распределений по разным
урнам. Таким образом, количество
распределений
разных предметов между
разными урнами с использованием каждой
урны в каждом распределении (не пустых
урн) равно
(5.15).
16.6.1 Числа Моргана
Число
носят название чисел Моргана.
Формула
выплывает из формулы включений и
исключений.
16.6.2 Числа Стирлинга
Числа
Стирлинга – комбинаторные понятия,
введенные Джеймсом Стирлингом в
середине XVIII века. Числа
называются числами Стирлинга второго
рода. Числам Стирлинга
удовлетворяет рекурсивное соотношение
.
Число
Стирлинга первого рода
равно количеству способов представления
объектов в виде
циклов и обозначается
(читается “
циклов из
”).
Например,
циклы из 4 элементов
и
являются одинаковыми. Цикл можно
прокручивать, так как его конец соединен
с началом.
Пример. Например, существует 11 различных способов составить два цикла из четырех элементов:
![]()
![]()
![]()
Поэтому
.
Единичный
цикл (цикл, состоящий из одного элемента)
– это то же самое, что и единичное
множество. 2-цикл подобен 2-множеству,
поскольку
как и
.
Однако уже существует два различных
3-цикла:
и
.
Из любого
-элементного
множества могут быть составлены
циклов, если
(всего имеется
перестановок, а каждый цикл соответствует
сразу
из них, так как отсчет цикла может быть
начат с любого из его элементов). Поэтому![]()
Если
все циклы являются единичными или
двойными, то
Например,![]()
Выведем
рекуррентную формулу для вычисления
чисел Стирлинга первого рода. Каждое
представление
объектов в виде
циклов либо помещает последний объект
в отдельный цикл
способами, либо вставляет этот объект
в одно из
циклических представлений первых
объектов. В последнем случае существует
различных способов подобной вставки.
Например, при вставке элемента
в цикл
можно получить только 3 разных цикла:
.
Таким образом, рекуррентность имеет
вид![]()
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
1 |
|
|
|
|
|
|
|
|
|
|
1 |
0 |
1 |
|
|
|
|
|
|
|
|
|
2 |
0 |
1 |
1 |
|
|
|
|
|
|
|
|
3 |
0 |
2 |
3 |
1 |
|
|
|
|
|
|
|
4 |
0 |
6 |
11 |
6 |
1 |
|
|
|
|
|
|
5 |
0 |
24 |
50 |
35 |
10 |
1 |
|
|
|
|
|
6 |
0 |
120 |
274 |
225 |
85 |
15 |
1 |
|
|
|
|
7 |
0 |
720 |
1764 |
1624 |
735 |
175 |
21 |
1 |
|
|
|
8 |
0 |
5040 |
13068 |
13132 |
6769 |
1960 |
322 |
28 |
1 |
|
|
9 |
0 |
40320 |
109584 |
118124 |
67284 |
22449 |
4536 |
546 |
36 |
1 |
Треугольник Стирлинга для числа циклов
Теорема.
Имеет место соотношение

Доказательство.
обозначает число перестановок
объектов, которое содержит ровно
циклов. Если просуммировать по всем
,
то должно получиться общее число
перестановок, равное
.
Число
Стирлинга второго рода
равно количеству способов разбиения
множества из
элементов на
непустых подмножеств и обозначается
(читается “
подмножеств из
”).
Пример. Например, существует 7 способов разбиения четырехэлементного множества на две части:

Поэтому
.
Рассмотрим
значения чисел Стирлинга для малых
значений
:
1.
.
Существует только один способ разбиения
пустого множества на нулевое число
непустых частей, поэтому
.
Для непустого множества нужна по крайней
мере хотя бы одна часть, так что
при
.
2.
.
Существует только один способ помещенияn
элементов в одно-единственное непустое
множество, поэтому
при
.
Однако
,
так как 0-элементное множество пусто.
3.
.
Очевидно, что
.
Если множество из
объектов разделено на две непустые
части, то одна из этих частей содержит
последний объект и некоторое подмножество
из
объектов. Имеется
подмножеств из
объектов. Поскольку все объекты нельзя
поместить в одну часть, то
.
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
1 |
|
|
|
|
|
|
|
|
|
|
1 |
0 |
1 |
|
|
|
|
|
|
|
|
|
2 |
0 |
1 |
1 |
|
|
|
|
|
|
|
|
3 |
0 |
1 |
3 |
1 |
|
|
|
|
|
|
|
4 |
0 |
1 |
7 |
6 |
1 |
|
|
|
|
|
|
5 |
0 |
1 |
15 |
25 |
10 |
1 |
|
|
|
|
|
6 |
0 |
1 |
31 |
90 |
65 |
15 |
1 |
|
|
|
|
7 |
0 |
1 |
63 |
301 |
350 |
140 |
21 |
1 |
|
|
|
8 |
0 |
1 |
127 |
966 |
1701 |
1050 |
266 |
28 |
1 |
|
|
9 |
0 |
1 |
255 |
3025 |
7770 |
6951 |
2646 |
462 |
36 |
1 |
Треугольник Стирлинга для числа подмножеств.
Выведем
рекуррентное соотношение, при помощи
которого можно будет вычислить значения
.
Если задано множество из
объектов, которое должно быть разбито
наk
непустых частей, то мы либо помещаем
последний объект в отдельный класс, а
оставшиеся
объект разбиваем на
часть
способами, либо помещаем его в любую из
частей, на которые разбиты
объект. В последнем случае имеется
возможных вариантов, поскольку каждый
из
способов распределения первых
объектов по
непустым частям даетk
подмножеств, с которыми можно объединить
объект. Имеем рекуррентную формулу:
![]()
16.6.3 Числа Белла
Число
Белла
равно количеству разбиений множества
из
элементов на произвольное количество
непустых подмножеств, которые не
пересекаются. Очевидно, что
,
так как существует только одно разбиение
пустого множества. Например,
,
так как существует 5 возможных разбиений
множества
из трех элементов:
.
Заметим,
что
элементов можно разбить на
множеств
.
При этом количество разбиений
– элементного множества на
подмножеств равно числу Стирлинга 2
рода
.
Откуда получаем формулу
.
|
|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
|
|
1 |
1 |
2 |
5 |
15 |
52 |
203 |
877 |
4140 |
21147 |
115975 |
Рассмотрим
следующие конструкции, в которых точки
обозначают одноэлементные множества,
а сегменты объединяют элементы,
принадлежащие одному множеству. Из
элементов можно построить
разных таких конструкций.

Теорема.
Числа Белла удовлетворяют следующему
рекуррентному соотношению

Доказательство.
Рассмотрим разбиение
элемента в зависимости от величины
блока, в котором находится
–
ый элемнент. Пусть размер этого блока
равен![]()
.
Тогда существует
способов выбрать в него кроме
–
ого еше
элемент. Остальные
элементов можно разбить
способами.Таким образом:

Пример.Например,
.
Числа Белла удовлетворяют следующему
свойству:

Для
значений
получим следующие значения детерминанта:
1, 1, 2, 12, 288, 34560, 24883200, 125411328000, 5056584744960000, 1834933472251084800000, 6658606584104736522240000000, …
При
разложении функции
в ряд Маклорена коэффициенты ряда
образуют числа Белла:
Числа
могут быть построены при помощитреугольника
Белла.
Первая строка содержит 1. Каждая следующая
строка начинается числом, стоящим в
конце предыдущей строки. Каждое следующее
число в строке равно сумме чиел, стоящих
слева и сверху от него. Числа Белла
образуют последние числа в строках.

16.7 Композиции
16.7.1 Понятие композиции чисел
При
решении задач про распределение
одинаковых предметов между
непустыми урнами можно говорить о
разложении числа
в сумму натуральных слагаемых
:
,
где![]()
Два
таких разложения числа
считаются
разными, если они отличаются хотя бы
одним слагаемым. В таком случае говорят
о композиции числа
.
В ином случае,композиция
числа
–это его
разложение в виде
,
где учитываются как величины слагаемых
(частей) , так и порядок их расположения
в сумме.
Пример. Выписать все композиции числа 3.
Композиции имеют вид3=3, 3=2+1, 3=1+2, 3=1+1+1.
16.7.2 Композиции с ограничениями на количество слагаемых
Число
композиций
числа
из
слагаемых равно числу распределений
одинаковых предметов по
разным урнам при условии отсутствия
пустых урн. Число предметов, которые
попали в урну с номером
,
дает слагаемое . Отсюда выплывает, что
.
Число
всех композиций числа
равно
.
16.8 Комбинаторика разбиений
При анализе стратегий различных игр требуется подсчитывать количество комбинаций при раскладе определенных предметов. Наиболее распространенная карточная игра – преферанс. В классическом варианте этой игры карты раскладываются на 3 кучки (по числу играющих) и 2 карты кладутся в “прикуп“. Играют 32 картами, т.е. каждый игрок получает по 10 карт.
Определим
количество вариантов расклада при игре
в преферанс:
.
Для обоснования полученной формулы
расставим все карты подряд и переставим
их 32! способами. При каждой перестановке
будем выделять первые 10 карт первому
игроку, вторую десятку – второму, третью
– третьему, а последние 2 карты будем
откладывать в “прикуп”. После этого
заметим, что перестановка 10 карт в руках
каждого игрока не меняет варианта
расклада, каки
положения 2 карт в прикупе. Поэтому 32!
разделим три раза на 10! и еще на 2!. В
общем случае, если раскладываются
разных предметов по
ящикам так, чтобы в 1-й ящик (кучку, игроку
в руки) попало
предметов, во второй предмета, в
-й
–
предметов, при этом
,
то число вариантов расклада
.
16.9 Контрольные вопросы и задания
1. Какой предварительный анализ содержания задачи необходимо осуществить, чтобы можно было применить урновые схемы решения?
2.
Какую формулу необходимо использовать,
чтобы решить задачу о распределении
разных предметов по
урнам?
3.
Какую формулу необходимо использовать,
чтобы решить задачу о распределении
одинаковых предметов по
урнам?
4. Какую формулу необходимо использовать, чтобы решить задачу о распределении разных предметов без учета порядка предметов в урнах?
5. Какие формулы необходимо использовать, чтобы решить задачу о распределении разных предметов между одинаковыми урнами при условии, что урны не пустые?
6. В каких комбинаторных задачах используются числа Моргана, Стирлинга, Белла?
7. Какую формулу необходимо использовать, чтобы решить задачу о распределении разных предметов с учетом их порядка в урнах?
8. Охарактеризуйте понятие композиции чисел.
9. Дайте характеристику разбиений в комбинаторном анализе.
Лекция 17. Подходы к изучению комбинаторных объектов и чисел
17.1 Понятие продуктивной функции
Пусть
задана некоторая последовательность
чисел
![]()
Определение. Если степенной ряд
(17.1)
совпадает
при некоторых
с функцией
,
то
называетсяпродуктивной
функцией
для
последовательности
.
С
последовательностью
можно связать еще один степенной ряд:
(17.2)
Определение.
Если этот ряд совпадает с функцией
,
то
называетсяэкспоненциальной
продуктивной функцией
для последовательности
Это название объясняется тем, что для
последовательности
экспоненциальной продуктивной функцией
(17.2) есть экспонента
:
(17.3)
Для
той же последовательности обычная
функция есть
:
(17.4)
Действительно,
если
,
то есть
,
тогда по формуле суммы бесконечно
спадающей геометрической прогрессии
(17.4) получаем
.
В
частности, если
,
то
(17.5)
Дифференцирование (17.5) приводит к равенству
(17.6)
Умножение (17.6) на дает
(17.7)
Таким
образом,
есть продуктивная функция для
последовательности чисел натурального
ряда
(17.6),
– продуктивная функция для последовательности
(17.7).
Функцию
,
у которой есть производные произвольно
высокого порядка при
,
можно считать экспоненциальной
продуктивной функцией для последовательности
своих производных![]()
Действительно получается разложение в рад Тейлора:
.
17.2 Рекуррентные соотношения в комбинаторике
17.2.1 Задача о наклейке марок
Имеются марки достоинством в 4, 6, 10 копеек. На конверт нужно наклеить марки так, чтобы сумма составляла 18 копеек. Будем считать, что порядок наклеиваемых марок важен, т. е. способы наклейки марок достоинством в 4, 10, 4 копейки и 10, 4, 4 разные способы.
Тогда
можно написать следующее рекуррентное
соотношение:
,
где под
понимается количество вариантов наклейки
марок общей стоимостью
.
Подсчитаем
значения
для некоторых начальных
.
при
.
.
.
.
.
.
.
.
.
.
Тогда
для
получаем:
.
17.2.2 Задача об уплате долга
В кошельке имеются монеты достоинством в 1, 2, 3, 5, 10, 15, 20, 50 копеек (по одной штуке). Требуется уплатить долг в 73 копейки.
Запишем
рекуррентное соотношение в общем случае,
когда монеты имеют достоинства в
копеек и
требуется набрать сумму в
копеек:
.
Первый член правой части учитывает количество комбинаций, в которых монета старшего достоинства использована, второй член – в которых монета старшего достоинства не использована. Для рассматриваемого примера
(1,
2, 3, 5, 10, 15, 20, 50;
73)=
(1,2,3,5,10,15,20;73)+
(1,2,3,5,10,15,20;
23).
Первый член равен 0, так как сумма оставшихся монет меньше набираемой суммы.
Применим ту же рекуррентную формулу к оставшемуся члену. В результате получим:
(1,
2, 3, 5, 10, 15, 20; 23) =
(1, 2, 3, 5, 10, 15; 3) +
(1, 2, 3, 5, 10, 15; 23)
В первом члене правой части монеты достоинством в 5, 10 и 15 копеек можно не учитывать, так как достоинство каждой из этих монет больше набираемой суммы, т. е. можно правую часть переписать так:
(1,
2, 3; 3) +
(1,
2, 3, 5, 10, 15; 23) =
=
(1, 2; 0) +
(1,
2;3 ) +
(1,
2, 3, 5, 10; 8) +
(1,
2, 3, 5, 10; 23) =
=
1+
(1; 1) +
(1;
3) +
(1,
2, 3, 5; 8) +
(1,
2, 3, 5, 10; 23).
Очевидно,
что
(1,
2; 0) = 1;
(1,
2; 3) =
(1;1)
= 1;
(1;
3) = 0;
(1,
2, 3, 5, 10; 23) = 0. Поэтому правая часть
перепишется в виде:
1
+ 1 + 0 +
(1,
2, 3, 5; 8) + 0 = 2 +
(1,
2, 3; 3) +
(1,
2, 3; 8) = 2 + 2 + 0 = 4.
Таким образом, задача имеет 4 различных решения.
Подчеркнем еще раз, что в этой задаче порядок монет не важен.
17.2.3 Задача о размене гривенника (10 копеек)
Рассмотрим задачу, в которой сняты ограничения, как на порядок предметов, так и на их количество: размен гривенника монетами достоинством в 1, 2, 3, 5 копеек.
Для этого случая рекуррентное соотношение имеет вид
(1,
2, 3, 5; 10) =
(1,
2, 3; 10) +
(1,
2, 3; 5) +
(1,
2, 3; 0).
Таким образом, все множество решений разбивается на подмножества в зависимости от числа монет старшего достоинства, использованных для размена.
Находим все 20 способов размена:
5*2; 5+1*5; 3+2*3+1; 2*4+1*2;
5+3+2; 3*3+1; 3+2*2+1*3; 2*3+1*4;
5+3+1*2; 3*2+2*2; 3+2+1*5; 2*2+1*6;
5+2*2+1; 3*2+2+1*2; 3+1*7; 2+1*8;
5+2+1*3; 3*2+1*4; 2*5; 1*10.
17.3 Контрольные вопросы и задания
1. Дайте определение продуктивной функции
2. Дайте определение экспоненциальной продуктивной функции.
3. Приведите примеры задач, которые решаются с использованием рекуррентных соотношений в комбинаторике.
4. Дайте характеристику задачи о наклейке марок.
5. Каким образом может быть решена задача об уплате долга?
6. Дайте характеристику задачи о размене гривенника (10 копеек).
Лекция 18. Происхождение графов. Определение графов
18.1 Разновидности графов. Неориентированный граф. Определения
Определение.
Граф
или неориентированный
граф
(рис. 18.1) – этоупорядоченная
пара
,
для которой выполнены следующие условия:
–это
непустое множествовершин или узлов,
–это
множество пар (в случае неориентированного
графа – неупорядоченных) вершин,
называемых рёбрами.

Рисунок 18.1 – Неориентированный граф
(а
значит и
,
иначе оно было бы мультимножеством)
обычно считаются конечными множествами.
Многие хорошие результаты, полученные
для конечных графов, неверны (или
каким-либо образом отличаются) для
бесконечных графов. Это происходит
потому, что ряд соображений становится
ложным в случае бесконечных множеств.
Определение.
Вершины и рёбра графа называются также
элементами
графа, число вершин в графе
– порядком,
число рёбер
– размером
графа.
Определение.
Вершины
и
называются концевыми
вершинами (или просто концами)
ребра
.
Ребро, в свою очередь, соединяет
эти вершины. Две концевые вершины одного
и того же ребра называются соседними
(смежными).
Определение. Два ребра называются смежными, если они имеют общую концевую вершину.
Таким
образом, на множествах вершин
и ребер
неориентированного графа могут быть
заданы отношения смежности.
Определение. Вершина называется инцидентной ребру, если она является его концевой вершиной.
Таким
образом, на множествах вершин
и ребер
графа может быть задано отображение
инцидентности.
Определение. Два ребра называются кратными, если множества их концевых вершин совпадают.
Определение.
Ребро называется петлёй,
если его концы совпадают, то есть
.
Определение.
Степенью
(или
)
вершины
называют количество рёбер, для которых
она является концевой (при этом петли
считают дважды).
Определение. Вершина называется изолированной, если она не является концом ни для одного ребра; висячей (или листом), если она является концом ровно одного ребра.
Пример.
На рисунке
18.1 порядок графа
(количество вершин), размер графа
(количество ребер); 1 и 2 – смежные вершины
(их соединяет ребро
);
ребра
– смежные (имеют общую вершину 2); ребра
и
– кратные (соединяют вершины 1 и 4);
– петля; 5 – висячая вершина; 6 –
изолированная вершина. Степень вершины
2 –
,
степень вершины 4 –
,
степень вершины 1 –
(петля считается 2 раза).
18.2 Ориентированный граф. Определения
Определение.
Ориентированный
граф
(сокращённо орграф)
– этоупорядоченная
пара
,
для которой выполнены следующие условия:
это
непустое множествовершин или узлов,
это
множество (упорядоченных) пар различных
вершин, называемых дугами или
ориентированными рёбрами.
Определение.
Дуга
– это
упорядоченная пара вершин
,
где вершину
называют началом, а
– концом дуги.
В
отличие от неориентированных графов,
в ориентированных степень вершины
определяется полустепенью
захода и
полустепенью
исхода:
соответственно,
и
(рис. 18.2). Полустепень захода определяется
количеством ребер, концом которых
является данная вершина, полустепень
исхода – количеством ребер, началом
которых является вершина.

Рисунок 18.2 – Ориентированный граф
Пример.
На рис. 18.2
полустепени исхода и захода вершин:
;
;
;
.
18.3 Основные термины для ориентированных и неориентированных графов
Определение.
Смешанный
граф
– это граф, в котором некоторые рёбра
могут быть ориентированными, а некоторые
– неориентированными (рис. 18.3) Записывается
упорядоченной тройкой
,
где
определены так же, как выше.
Ориентированный и неориентированный графы являются частными случаями смешанного.

Рисунок 18.3 – Смешанный граф
На
рисунке 18.3 – ребра
и
– неориентированные, дуги
и
– ориентированные.
Определение.
Подграфом
графа
называется граф
,
все вершины и дуги которого содержатся
среди вершин и дуг графа
,
т.е.
.
Сам граф является своим подграфом.
Определение. Сам граф по отношению к своим подграфам называется надграфом (или суперграфом).
Определение. Подграф называется собственным, если он отличен от самого графа.
Определение.
Для любого подмножества
вершин графа
порождённым
подграфом
называется максимальный подграф графа
,
множеством вершин которого является
.
Определение.
Часть графа, которая наряду с некоторым
подмножеством ребер (дуг) графа содержит
и все вершины исходного графа
называется суграфом.
Определение.
Подграф
неориентированного графа
называется каркасом,
или остовным
деревом (остовом)
графа
,
если
– дерево и
.
Пример.
На рис. 18.4
изображен граф
и его подграфы. Подграф
– остовный, подграф
– порожденный.

Рисунок 18.4 – Подграфы
Изоморфные
графы. Граф
называется изоморфным графу
(рис. 18.5), если существуетбиекцияf
из множества вершин графа
в множество вершин графа
,
обладающая следующим свойством: если
в графе
есть ребро из вершиныA
в вершину B,
то в графе
должно быть ребро из вершины
в вершину
и наоборот – если в графе
есть ребро из вершиныA
в вершину B,
то в графе
должно быть ребро из вершины
в вершину
.
В случае ориентированного
графаэта биекция также должна
сохранять ориентацию ребра. В случаевзвешенного
графабиекция также должна сохранять
вес ребра.

Рисунок 18.5 – Изоморфные графы
Определение. Путём (или цепью) в графе называют конечную последовательность вершин, в которой каждая вершина (кроме последней) соединена со следующей в последовательности вершин ребром.
Определение.
Ориентированным
путём в
орграфе называют конечную последовательность
вершин
,
для которой все пары
являются (ориентированными) рёбрами.
Определение. Циклом называют путь, в котором первая и последняя вершины совпадают. При этом длиной пути (или цикла) называют число составляющих его рёбер.
Заметим,
что если вершины
и
являются концами некоторого ребра, то
согласно данному определению,
последовательность
является циклом. Чтобы избежать таких
«вырожденных» случаев, вводят следующие
понятия.
Определение. Путь (или цикл) называют простым, если ребра в нём не повторяются; элементарным (или контуром), если он простой, и вершины в нём не повторяются.
Несложно видеть, что:
всякий путь, соединяющий две вершины, содержит элементарный путь, соединяющий те же две вершины;
всякий простой неэлементарный путь содержит элементарный цикл;
всякий простой цикл, проходящий через некоторую вершину (или ребро), содержит элементарный (под-) цикл, проходящий через ту же вершину (или ребро);
петля – элементарный цикл.
Пример. Рассмотрим граф на рис. 18.6. Он содержит пути: (5, 1, 2), (5, 6, 3, 2), (4, 5, 1, 4, 2) и т.д. Все эти пути простые, элементарным же является только последний. Цикл в графе только один – (1, 4, 5).

Рисунок 18.6 – Пути на графе
Бинарное
отношениена множестве вершин графа,
заданное как «существует путь из
в
»,
являетсяотношением
эквивалентности, и, следовательно,
разбивает это множество на классы
эквивалентности, называемыекомпонентами
связности
графа. Если у графа ровно одна компонента
связности, то граф связный.
Определение. На компоненте связности можно ввести понятие расстояния между вершинами как минимальную длину пути, соединяющего эти вершины.
Определение.
Всякий максимальный связный подграф
графа
называетсясвязной
компонентой
(или просто компонентой) графа
.
Слово «максимальный» означает максимальный относительно включения, то есть не содержащийся в связном подграфе с большим числом элементов
Определение. Ребро графа называется мостом, если его удаление увеличивает число компонент.
Определение. Вершина, удаление которой приводит к увеличению компонент связности, называется точкой сочленения.
Определение. Множество вершин, удаление которых (всех вместе), приводит к увеличению компонент связности, называется разделяющим множеством.
Пример.
На рис. 18.7:
в графе
– ребро
– мост; в графе
– вершина
– точка сочленения; в графе
– множество вершин
– разделяющее множество.

Рисунок 18.7
Определение. Граф называется:
связным, если для любых вершин u, v есть путь из u в v.
сильно связным или ориентировано связным, если он ориентированный, и из любой вершины в любую другую имеется ориентированный путь.
деревом, если он связный и не содержит простых циклов (рис 18.8).

Рисунок 18.8 – Граф – дерево
полным, если любые его две (различные, если не допускаются петли) вершины соединены ребром. Полный граф с n вершинами обозначается
.
На рис. 18.9 изображены полные графы
.

Рисунок 18.9 – Полные графы
двудольным, если его вершины можно разбить на два непересекающихся подмножества
и
так, что всякое ребро соединяет вершину
из
с вершиной из
.Двудольный
граф называется полным
двудольным
графом
,
если
содержит
вершин,
содержит
вершин и
для каждого
,
имеем
.
Таким образом, для каждого
и
имеется
связывающее их ребро. На рис. 18.10
изображены полные двудольные графы
.

Рисунок 18.10 – Полные двудольные графы
k-дольным, если его вершины можно разбить на
непересекающихся подмножества
так, что не будет рёбер, соединяющих
вершины одного и того же подмножества.планарным, если граф можно изобразить диаграммой на плоскости без пересечений рёбер (рис. 18.11).

Рисунок
18.11 – Планарный граф
и его плоское изображение
взвешенным или нагруженным, если каждому ребру графа поставлено в соответствие некоторое число, называемое весом ребра (рис. 18.12).

Рисунок 18.12 – Нагруженный граф
однородным (регулярным) графом степени
,
если степени
всех вершин которого одинаковы и равны
.
Граф третьей степени называюткубическим;
этот граф обладает рядом интересных
свойств и, в частности, он всегда имеет
четное число вершин (рис. 18.13).

Рисунок 18.13 – Граф Петерсена – регулярный граф 3-й степени
18.4 Способы задания графов
18.4.1 Геометрическая реализация графа
Человеку удобно работать с графом-рисунком, так как он может легко установить связь между вершинами в наглядном виде с помощью ребер, изображаемых непрерывными линиями. Такое геометрическое представление плоского графа называется его реализацией (рис. 18.14).

Рисунок 18.14 – Геометрический способ задания графа
При переходе от алгебраического способа к геометрическому одному и тому же графу могут соответствовать различные изображения – изоморфные графы, при этом от правильного изображения зависит, например, свойство плоской реализуемости. Для этого нужно правильно задать сам граф. Основным способом задания графа является перечисление всех его вершин и ребер. Но такое представление, во-первых, несимметрично (с ним трудно работать, особенно ЭВМ), во-вторых, для указания каждого ребра нужно еще раз выписывать соответствующие вершины, что плохо с точки зрения сжатия и хранения информации.
18.4.2 Матрица инциденций (инцидентности)
При
задании графа таблицей
составляется
таблица,
состоящей
из
строк
(вершины) и
столбцов
(ребра). На пересечении строк и столбцов
пишутся соответствующие знаки, которые
показывают отношение (инцидентность)
вершины и ребра. Это может быть знаки
“+” и “ – ”, числа 0,1, – 1 и др.
Главным
во всех способах задания графа (диаграммой,
матрицей, таблицей) является указание
соответствия между множествами
вершин
к
ребер
.
Пусть дан
граф
,
где
– вершины,
а
– ребра,
среди которых могут и кратные ребра
(есть вершины, которые соединяет несколько
ребер).
Определение.
Матрицей инциденций
В
данного
графа будет таблица,
состоящая
из
строк (вершины) и
столбцов
(ребра). При рассмотрении неориентированного
графа на пересечении строк и столбцов
ставится число 1, если соответствующие
вершина и ребро инцидентны (
)
и ставится число 0, если они не
инцидентны. Элементы матрицы инциденций
неориентированного графа определяются
следующим образом:

При рассмотрении ориентированного графа на пересечении строк и столбцов ставится число 1, если из вершины выходит соответствующее ее ребро. Если в вершину входит ребро, то ставят число (– 1). Если вершина не инцидентна ребру, то ставится число 0. Элементы матрицы инциденций неориентированного графа определяются следующим образом:

Очевидно, что в каждом столбце матрицы инцидентности должно быть только два ненулевых числа, так как ребро инцидентно двум вершинам. Число ненулевых элементов каждой строки – степень соответствующей вершины.
Матрицы инцидентности прямоугольные, если число строк и столбцов различно. Если число вершин и ребер в графе одинаковое, то получается квадратная матрица.
Пример. Построим матрицы инциденций для графов на рис. 18.15.

Рисунок 18.15 – Ориентированный и соответствующий ему неориентированный графы
Таблица 18.1 – Матрица инциденций ориентированного графа (рис. 18.15а)
|
|
a |
b |
c |
d |
e |
f |
g |
h |
|
1 |
1 |
0 |
0 |
1 |
-1 |
0 |
0 |
0 |
|
2 |
-1 |
-1 |
-1 |
0 |
0 |
0 |
0 |
0 |
|
3 |
0 |
1 |
0 |
0 |
0 |
0 |
-1 |
0 |
|
4 |
0 |
0 |
1 |
-1 |
0 |
1 |
0 |
0 |
|
5 |
0 |
0 |
0 |
0 |
1 |
-1 |
0 |
1 |
|
6 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
-1 |
Таблица 18.2 – Матрица инциденций неориентированного графа (рис. 18.15б)
|
|
a |
b |
c |
d |
e |
f |
g |
h |
|
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
|
2 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
|
3 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
|
4 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
|
5 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
|
6 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
Несложно заметить, что количество единиц в строке, соответствующей вершине, для ориентированных графов определяет полустепень исхода, количество (-1) – полустепень захода. Для неориентированных графов – просто степень вершины.
18.4.3 Матрица смежности
Матрицу можно сделать квадратной для любого графа. В таких случаях строки и столбцы изображают вершины. На пересечении строк и столбцов ставится число, если соответствующие вершины соединены ребром (ребрами) и ставится число 0, если вершины не соединены.
Определение.
Матрица смежности
графа
с конечным числом вершин
(пронумерованных числами от 1 до
)
– это квадратная матрица
размера
,
в которой значение элемента
равно числу ребёр из
–й
вершины графа в
–ю
вершину.
Матрица смежности неориентированного графа является симметричной и не меняется при транспонировании. Хотя формально каждая вершина всегда смежная сама с собой, в матрице смежности мы будем ставить 0, если у нее нет петли, и 1, если есть одна петля. Если граф имеет матрицу смежности и не имеет петель, на главной диагонали у него всегда стоят нули. Элементы матрицы смежности определяются следующим образом:

Матрица смежности ориентированного графа не симметрична. Элементы ее определяются следующим образом:

Пример. Построим матрицы смежности для графов на рисунке 18.15.
Таблица 18.3 – Матрица смежности ориентированного графа (рис. 18.15а)
|
|
1 |
2 |
3 |
4 |
5 |
6 |
|
1 |
0 |
1 |
0 |
1 |
0 |
0 |
|
2 |
0 |
0 |
0 |
0 |
0 |
0 |
|
3 |
0 |
1 |
0 |
0 |
0 |
0 |
|
4 |
0 |
1 |
0 |
0 |
1 |
0 |
|
5 |
1 |
0 |
0 |
0 |
0 |
1 |
|
6 |
0 |
0 |
1 |
0 |
0 |
0 |
Сумма элементов по строке равна степени полуисхода вершины, сумма элементов по столбцу – степени полузахода вершины.
Таблица 18.4 – Матрица смежности неориентированного графа (рис. 18.15б)
|
|
1 |
2 |
3 |
4 |
5 |
6 |
|
1 |
0 |
1 |
0 |
1 |
1 |
0 |
|
2 |
1 |
0 |
1 |
1 |
0 |
0 |
|
3 |
0 |
1 |
0 |
0 |
0 |
1 |
|
4 |
1 |
1 |
0 |
0 |
1 |
0 |
|
5 |
1 |
0 |
0 |
1 |
0 |
1 |
|
6 |
0 |
0 |
1 |
0 |
1 |
0 |
Сумма элементов по строке (и по столбцу) равна степени вершины.
18.4.4 Список ребер
Определение. Список рёбер – это тип представления графа в памяти компьютерной программы, подразумевающий, что каждое ребро представляется двумя числами – номерами вершин этого ребра. Список рёбер более удобен для реализации различных алгоритмов на графах по сравнению с матрицей смежности.
Более
абстрактно, граф можно задать как тройку
,
где
и
– некоторые множества (вершин и рёбер,
соответственно), а
– функция инцидентности, сопоставляющая
каждому ребру
(упорядоченную
или неупорядоченную) пару вершин u
и v
из V
(его концов).
На основе рассмотренных понятий можно дать окончательные определения неориентированного и ориентированного графов.
Определение.
Назовем абстрактным
неориентированным графом
совокупность непустого множества
,
произвольного множества
,
причем
,
и произвольного отображения
.
Элементы множеств
и
– соответственно вершины и ребра графа,
а
– отображение инцидентности (отношение
смежности).
Определение.
Абстрактный
ориентированный граф
(орграф)
представляет собой совокупность
непустого множества
,
произвольного множества
,
причем такого, что
,
и произвольного отображения
;
элементы множеств
и
являются соответственно вершинами и
дугами графа
,
а
– отображение инцидентности (отношение
смежности).
18.4.5 Число вершин и ребер графа
Теорема
18.1.
Сумма степеней вершин неориентированного
графа
равна удвоенному числу его ребер, т.е.
если
,
то
.
Это утверждение почти очевидно и следует из того, что каждое ребро графа инцидентно ровно двум вершинами, и поэтому вклад каждого ребра в сумму степеней вершин равен двум.
Теорема
18.2.
В неориентированном графе
число вершин нечетной степени четно.
Для
доказательства этого утверждения
разобьем множество вершин
графа на два подмножества
и
,
,
причем
и
– соответственно множества вершин
графа, имеющих четные и нечетные степени.
С учетом теоремы 18.1 можно записать:
.
В
правой части этого выражения – разность
двух целых четных чисел, поэтому и
должна
быть величиной четной. Но это может быть
только в том случае, если и
четно.
Для ориентированного графа сумма полустепеней исхода равна сумме полустепеней захода и равна количеству ребер графа:
.
18.5 Контрольные вопросы и задания
1. Дайте определения графа.
2. Какой граф называется неориентированным? Приведите примеры.
3. Какой граф называется ориентированным? Приведите примеры.
4. Какой граф называется пустым?
5. Дайте определение полного графа. Приведите примеры.
6. Какие вершины являются смежными в графе?
7. Какие вершины и ребра инцидентны в графе. Приведите примеры.
8. Дайте определение абстрактного ориентированного графа.
9. Перечислите способы задания графов.
10. Как составляется матрица смежности? Приведите пример.
11. Что такое матрица инциденций? Приведите пример.
12. Поясните геометрический способ задания графа.
13. Чему для ориентированного графа равна сумма полустепеней исхода?
14. Какой граф называется взвешенным или нагруженным?
15. Дайте определение пути в графе.
16. Дайте определения цикла в графе.
17. Поясните понятие маршрута в графе.
18. Приведите пример изоморфных графов.
19. Какой граф называется связным?
20. Дайте определение компоненты связности.
21. Как определить степень вершины графа?
22. Какой граф называется деревом?
Лекция 19. Операции над графами. Изоморфизм графов. Плоские и планарные графы
19.1 Операции над графами
19.1.1 Операции удаления ребер и вершин
Удаление
ребра.
Пусть
–
ребро графа
.
Граф
получается
из графа
в результате удаления ребра
,
т.е.
.


Рисунок 19.1 –Удаление ребра
Удаление
вершины.
Пусть
– вершина графа
.
Граф
получается из графа G в результате
удаления вершины
и всех инцидентных ей ребер, т.е.
.

Рисунок
19.2 –Удаление вершины
.
19.1.2 Операция введения вершины в ребро и операция введения ребра в граф
Операция
введения вершины в ребро.
Пусть
и
Операция введения вершины
в ребро
преобразует это ребро в два ребра
и
.

Рисунок 19.3 – Введение вершины
Операция
введения ребра
в связный граф
состоит в том, что в граф
вводится ребро между двумя несмежными
вершинами
и
.
Эта операция выражается через операцию
объединения графа
и дерева
Формально это записывается так:
.
Корректность такого представления следует из того, что объединение двух связных графов, имеющих общие вершины, будет связным графом. Ясно также, что справедливо тождество вида
.

Рисунок 19.4 – Введение ребра
19.1.3 Дополнение графа
Определение.
Дополнением
графа
с
вершинами называется граф
,
который содержит все вершины графа
и те ребра, которые принадлежат полному
графу
,
но не принадлежат графу
,
т.е.
.
Пример. На рис. 19.5 изображен граф и его дополнение.

Рисунок 19.5 – Граф и его дополнение
19.1.4 Объединение графов
Определение.
Объединением
графов
и
называют
граф такой, что
![]()
Объединение
графов
и
называется
дизъюнктным,
если
.
Операция объединения обладает следующими свойствами, которые следуют из определения операции и свойств операций на множествах:
1.
– свойство коммутативности;
2.
– свойство ассоциативности.
Операция объединения графов может быть выполнена в матричной форме. Для графов с одним и тем же множеством вершин справедлива следующая теорема.
Теорема
19.1.
Пусть
и
– два графа (ориентированные или не
ориентированные одновременно) с одним
и тем же множеством вершин
,
и пусть
и
– матрицы смежности вершин этих графов.
Тогда матрицей смежности вершин графа
является матрица
,
образованная поэлементным логическим
сложением матриц
и
.

Рисунок 19.6 – Объединение графов


Рисунок 19.7 – Дизъюнктное объединение графов
19.1.5 Пересечение графов
Определение.
Пусть
и
– произвольные графы. Пересечением
графов
и
называется граф с множеством вершин
с множеством ребер (дуг)
.
Операция пересечения обладает следующими свойствами, которые следуют из определения операции и свойств операций на множествах:
1.
–
свойство коммутативности;
2.
– свойство ассоциативности.
Для того чтобы операция пересечения была всеобъемлющей, необходимо ввести понятие пустого графа.
Определение.
Граф
называется пустым,
если множество
вершин графа является пустым (
).
Заметим, что в этом случае и множество
ребер (дуг) графа также пустое множество
(
).
Пустой граф обозначается символом
.
Такой граф может быть получен в результате
выполнения операции пересечения графов,
у которых
.
В этом случае говорят о непересекающихся
графах.
Теорема
19.2.
и
– два графа (ориентированные или
неориентированные одновременно) с одним
и тем же множеством вершин
,
и пусть
и
– матрицы смежности вершин этих графов.
Тогда матрицей смежности вершин графа
является матрица
,
образованная поэлементным логическим
умножением матриц
и
.

Рисунок 19.8 – Пересечение графов
19.1.6 Соединение графов
Определение.
Соединением
(сильным произведением) графов
и
(
)
называют граф такой, что
![]()

Рисунок 19.9 – Соединение графов
19.1.7 Композиция графов
Определение.
Пусть
и
– два графа с одним и тем же множеством
вершин
.Композицией
графов
и
называется граф с множеством вершин
,
в котором существует дуга
тогда и только тогда, когда существует
дуга
,
принадлежащая множеству
,
и дуга
,
принадлежащая множеству
.
Пример.
Рассмотрим
выполнение операции композиции
на графах, изображенных на рис. 6.25.

Рисунок 19.10 – Композиция графов
Для
рассмотрения операции составим таблицу
19.1, в первом столбце которой указываются
ребра
,
принадлежащие графу
,
во втором — ребра
,
принадлежащие графу
,
а в третьем — результирующее ребро
для графа
.
Таблица
19.1 – Построение композиции графов
![]()
Заметим,
что дуга
результирующего графа в таблице
встречается дважды. Однако, поскольку
рассматриваются графы без параллельных
ребер (дуг), то в множестве E результирующего
графа дуга
учитывается только один раз, т.е.
.
На
рис. 19.10 изображены графы
и
и их композиция
.
На этом же рисунке изображен граф
.
Рекомендуется самостоятельно построить
граф
,
и убедиться, что графы
и
не изоморфны.
19.1.8 Произведение графов
Определение.
Декартовым произведением
называется граф
,
для которого
– декартово произведение множеств
вершин исходных графов, а
определяется следующим образом: вершины
и
смежны в графе
тогда и только тогда, когда или
,
а
и
смежны в
,
или
,
а
и
смежны в
.

Рисунок 19.11 – Декартово произведение графов
19.2 Гомеоморфные графы
Два графа называются гомеоморфными или тождественными с точностью до вершины степени 2, если они могут быть получены из одного и того же графа с помощью операции ведения вершины степени 2 в ребро. На рисунке 19.12 показаны гомеоморфные графы.

Рисунок 19.21 – Гомеоморфные графы
19.3 Плоские и планарные графы
Все изображения графа являются изоморфными и несут одну и ту же информацию. Однако встречаются ситуации, когда крайне важно, чтобы изображение графа на плоскости удовлетворяло определенным требованиям.
Например, в радиоэлектронике при изготовлении микросхем печатным способом электрические цепи наносятся на поверхность изоляционного материала. А так как проводники не изолированы, то они не должны пересекаться. Аналогичная задача возникает при проектировании железнодорожных и иных путей, где нежелательны переезды.
Определение. Геометрический граф назовем плоским графом, если он нарисован на плоскости так, что все линии, изображающие его ребра, пересекаются только в точках, соответствующих вершинам графа, т.е. любая точка пересечения таких линий, есть вершина, инцидентная ребрам, которые эти линии изображают. Любой граф, изоморфный плоскому графу, называют планарным.
О планарных графах говорят, что они укладываются на плоскости (имеют плоскую укладку) (рис. 19.22). Планарный граф можно уложить на плоскости, а плоский граф – это граф, уже уложенный на плоскости. Плоский граф есть изображение планарного графа, однако не каждое изображение планарного графа является плоским графом.

Рисунок 19.22 – Плоский граф

Рисунок 19.23 – Планарный граф
Пример
плоского графа приведен на рис. 19.22.
Изоморфный ему полный граф
(рис. 19.23), укладываемый на плоскости,
имеет два пересекающихся ребра, поэтому
граф
не является плоским – он только планарный.
19.3.1 Теорема Понтрягина – Куратовского
Теорема
Понтрягина – Куратовского гласит: граф
планарен тогда и только тогда, когда он
не содержит подграфов, гомеоморфных
и
,
где
– полный 5-вершинный граф, а
– полный двудольный граф, каждая доля
которого состоит из 3 вершин.Граф
представляет
собой полный граф наименьшего порядка,
который, не являясь планарным графом
(полные графы
–
планарные), становится планарным после
удаления хотя бы одного его ребра. Второй
(двудольный граф
)
является моделью известной задачи о
трех домах и трех колодцах.

Рисунок
19.24 –
– полный 5-вершинный граф

Рисунок
19.25 –
– полный двудольный граф
Определение. Жордановой кривой на плоскости называется непрерывная кривая линия без самопересечений. Замкнутая жорданова кривая – это жорданова кривая, начало и конец которой совпадают.



Рисунок 19.26 – Примеры жордановых кривых
Теорема
Жордана:
Если
замкнутая жорданова кривая, то всякая
жорданова кривая, соединяющая точки 1
и 2, лежащие на
,
либо полностью лежит внутри
(рис. 19.26
граф
),
либо вне
(рис. 19.26
граф
),
либопересекает
в одной единственной точке отличной от
1 и 2 (рис. 19.26
граф
).
19.3.2 Построение плоского изображения графа. Гамма-алгоритм
Для плоской укладки графа и попутной проверки, планарный ли он, удобно пользоваться гамма-алгоритмом.
На вход подаются графы, обладающие следующими свойствами:
Граф связный.
Граф имеет хотя бы один цикл.
Граф не имеет мостов, т. е. ребер, после удаления которых граф распадается на две компоненты связности.
Если нарушено свойство (1), то граф нужно укладывать отдельно по компонентам связности.
Если нарушено свойство (2), то граф – дерево и нарисовать его плоскую укладку тривиально.
Случай нарушения свойства (3) рассмотрим более подробно. Если в графе есть мосты, то их нужно разрезать, провести отдельно плоскую укладку каждой компоненты связности, а затем соединить их мостами. Здесь может возникнуть трудность: в процессе укладки концевые вершины моста могут спрятаться внутри плоского графа. Нарисуем одну компоненту связности и будем присоединять к ней другие последовательно. Каждую новую компоненту связности будем рисовать в той грани, в которой лежит концевая вершина соответствующего моста. Так как граф связности мостами компонент связности является деревом, мы сумеем получить плоскую укладку.
Сначала
рассмотрим алгоритм на конкретном
примере. Пусть дан граф
(рис. 19.27).

Рисунок 19.27
Инициализация
алгоритма производится так: выбираем
любой простой цикл; в нашем примере
{1, 2, 3, 4, 5, 6, 7, 8} и
получаем две грани:
–
внешнюю и
–
внутреннюю
(см. рис. 19.28).

Рисунок 19.28
Обозначим
выбранный цикл как
.
На каждом шаге будем строить множествосегментов.
Каждый сегмент S
относительно уже построенного графа
представляет собой одно из двух:
ребро, оба конца которого принадлежат
,
но само оно не принадлежит
;связную компоненту графа
,
дополненную всеми ребрами графа
,
один из концов которых принадлежит
связной компоненте, а второй из графа
.
Те
вершины, которые одновременно принадлежат
и какому-то сегменту, назовемконтактными.
Для нашего примера сегменты и вершины
изображены на рис. 19.29. Контактные вершины
обведены в квадрат.

Рисунок 19.29
Если бы в каком-нибудь сегменте не было ни одной контактной вершины, то граф до разрезания был бы несвязный; если бы была только одна, то граф имел бы мост. Эти возможности заранее исключены, так что каждый сегмент имеет не менее двух контактных вершин. Поэтому в каждом сегменте имеется цепь между любой парой таких вершин.
Если
все контактные вершины сегмента
имеют номера вершин какой-то грани
,
то мы будем говорить, что грань
вмещает
этот сегмент и обозначать
.
Может быть имеется не одна такая грань,
вмещающая сегмент
,
множество таких граней обозначим
,
а их число
.
Общий
шаг алгоритма следующий: обозреваются
все сегменты
и определяются числа
.
Если хоть одно из них равно 0, то граф не
планарен, конец. Иначе, выбираем сегмент,
для которого число
минимально, или один из множества, если
таких сегментов несколько. В этом
сегменте найдем цепь между двумя
контактными вершинами и уложим ее в
любую из граней множества а(S),
совместив контактные вершины сегмента
с соответствующими вершинами грани.
При этом данная грань разобьется на
две. Уже уложенная часть графа
по количеству ребер и вершин увеличится,
а сегмент, из которого вынута цепь,
исчезнет или развалится на меньшие с
новыми контактными вершинами, ведущими
к вершинам
.
В результате повторения общего шага либо будет получена плоская укладка, когда множество сегментов станет пустым, либо будет получено, что граф G не является планарным. Вернемся к нашему примеру.
Пока
.
Поэтому возьмем первый по номеру сегмент
и в нем первую попавшеюся цепь {4, 8};
вставим эту цепь в грань
Получим увеличенную часть
и уменьшенную систему сегментов
(см. рис. 19.30 А), В)).

Рисунок 19.30
Определим,
какие грани вмещают новые сегменты.
Теперь сегменты
и
вмещаются только в одну грань
,
в то время, как сегмент
вмещается в две грани а1
и а3.
Поэтому берем
.
Возьмем в нем цепь между контактными
вершинами, например, {2, 7}, и уложим ее
в
.
Получим увеличенную часть
и уменьшенную систему сегментов (рис.
19.31 А), В)).

Рисунок 19.31
Продолжая таким образом, в итоге получим плоскую укладку G (рис. 19.32).

Рисунок 19.32
19.3.3 Гамма-алгоритм (в общем виде)
(Инициализация). Выберем любой простой цикл
исходного графа
;
изобразим его на плоскости в виде грани,
которую примем за уже уложенную часть
;
сформируем сегменты
;
если множество сегментов пусто, то
перейти к п. 3.(Общий шаг). Пока множество сегментов непустое:
Для каждого сегмента
найти множество
.
Если существует сегмент
,
для которого
,
то граф не планарный, конец.Выбираем один из сегментов с минимальным числом, вмещающих его граней.
Выбираем одну из подходящих граней для выбранного сегмента.
В данном сегменте выбираем цепь между двумя контактными вершинами и укладываем ее в выбранной грани. Учтем изменения в структуре сегментов и перейдем к п. a).
(Завершение). Построена плоская укладка
исходного графа
,
конец.
9.4 Контрольные вопросы и задания
1. Перечислите операции, которые можно производить над графами.
2. Охарактеризуйте операции удаления ребер и вершин.
3.
Какой граф называется дополнением
графа
?
4.
Как определить композицию
графов
и
.
Приведите пример.
5. Дайте характеристику операции соединения (сильного произведения) графов.
6. Какие графы называются гомеоморфными графами.
7. Какие графы называются изоморфными графами.
8. Дайте определения плоского графа, планарного графа.
9. Для решения каких задач можно использовать теорему Понтрягина – Куратовского?
10. Для решения каких задач можно использовать теорему Жордана?
11. Для плоской укладки графа и попутной проверки, планарный ли он, можно использовать гамма-алгоритм?
12. Приведите гамма-алгоритм в общем виде.
Лекция 20. Связность графов. Эйлеровы и гамильтоновы графы
20.1 Связность графов, компонента связности. n-связный граф
Определение.
Две вершины
и
в графесвязны,
если существует соединяющая их (простая)
цепь. Если же в графе нет ни одной цепи,
соединяющей вершины
и
,
то вершины
и
являютсянесвязными.
Пример. Вершины 1 и 5 (рис. 20.1) связны, так как их соединяет цепь 1,7,6,5 (а также 1,7,2,5; 1,7,6,2,5 и 1,7,2,6,5), а вершины 2 и 3 связными не являются, так как ни одна цепь их не соединяет.

Рисунок 20.1
Определение. Граф называется связным, если любая пара его вершин связана. Если же в графе имеется хотя бы одна пара вершин, не соединенных цепью, то граф называется несвязным.
Пример. Согласно этим определениям граф, изображенный на рис. 20.1, является несвязным, а граф, приведенный на рис. 20.2, – связным.

Рисунок 20.2
Отношение
связности вершин
и
является рефлексивным (всякая вершина,
имеющая петлю, связна сама с собой),
симметричным (если вершины
и
связны, то связны и вершины
и
),
транзитивным (если вершины
и
связны и связны вершины
и
,
то связны и вершины
и
),
следовательно, множество связных вершин
образуеткласс
эквивалентности.
Определение. Классы эквивалентности, из которых состоит несвязный граф, называются его компонентами. Между разными компонентами связности ребер нет.
Любой связный граф состоит из одной компоненты связности – всего графа.
Определение.
Число
компонент, из которых состоит граф,
называется степенью
связности.
Число компонентов связности графа
обозначается
.
Пример. Граф, изображенный на рисунке 20.2, имеет степень связности, равную 2. Степень связности графа, приведенного на рис. 20.3, равна 5.

Рисунок 20.3
Определение.
Граф называется
n-связным,
если между любыми его двумя вершинами
найдется
цепей, попарно не имеющих общих неконцевых
вершин.
Определение.
Числом
вершинной связности
(или просто числом связности)
графа
называется наименьшее число вершин,
удаление которых приводит к несвязному
или одновершинному графу.
Определение.
Пусть
– граф порядка
.Числом
реберной связности
графа
называется наименьшее число ребер,
удаление которых приводит к несвязному
графу.
Определение.
Вершина
графа
называетсяточкой
сочленения
(или разделяющей
вершиной),
если граф
имеет больше компонент, чем
.
В частности, если
связен и
– точка сочленения, то
несвязен. Аналогично ребро графа
называетсямостом,
если его удаление увеличивает число
компонент. Концевая вершина моста
является точкой сочленения, если в графе
есть другие ребра, инцидентные этой
вершине.
20.2 Свойства связных графов
1. Связный граф остается связным после удаления ребра тогда и только тогда, когда это ребро содержится в цикле.
2.
Связный граф, имеющий
вершин, содержит по крайней мере
ребро.
3. В связном графе любые две простые цепи максимальной длины имеют по крайней мере одну общую вершину.
4.
Пусть у графа
есть
вершин. Пусть
– минимальная из степеней вершин этого
графа. Тогда
.
20.3 Компоненты сильной связности ориентированного графа
Определение.Орграф называетсясильно связным(strongly connected), если любые две его вершины сильно связаны. Две вершины s и t любого графасильно связаны, если существует ориентированный путь из s в t и ориентированный путь из t в s.Сильно связными компонентамиорграфа называются его максимальные по включению сильно связные подграфы.
Для
нахождения компонент сольной связности
в орграфе cоставляем
матрицу смежностиA(D)
размерности
(n − количество
вершин) для данного ориентированного
графа: она состоит из нулей и единиц,
номера строк – индексы вершин, из которых
исходят дуги, номера столбцов – индексы
вершин, в которые дуги входят (если есть
дуга, исходящая из вершиныviи входящая вvj,
то элемент матрицы смежности, стоящий
на пересеченииi-той
строки иj-того столбца
равен 1, иначе – 0).
Для того, чтобы выделить компоненты сильной связности, необходимо сначала найти матрицу достижимости T(D) ориентированного графа, затем находим матрицу сильной связностиS(D) ориентированного графа (она должна быть симметрической).
20.4 Алгоритм выделения компонент сильной связности
1. Присваиваем p=1 (p
− количество компонент связности),
.
2. Включаем в множество вершин Vp компоненты сильной связности Dp вершины, соответствующие единицам первой строки матрицы Sp. В качестве матрицы A(Dp) возьмем подматрицу матрицы A(D), состоящую из элементов матрицы A, находящихся на пересечении строк и столбцов, соответствующих вершинам из Vp.
3. Вычеркиваем из Sp строки и столбцы, соответствующие вершинам из Vp. Если не остается ни одной строки (и столбца), то p- количество компонент сильной связности. В противном случае обозначим оставшуюся после вычеркивания срок и столбцов матрицу как Sp+1, присваиваем p=p+1 и переходим к п. 2.
Пример.
Выделим компоненты связности ориентированного графа, изображенного на рис. 20.4. В данной задаче количество вершин n=5.

Рисунок 20.4
Значит, для данного ориентированного графа матрица смежности будет иметь размерность 5×5 и будет выглядеть следующим образом
.
Найдем матрицу достижимости для данного ориентированного графа:
,
,
,
Следовательно,

.
Таким образом, матрица сильной связности будет следующей:
.
Присваиваем
p=1
и составляем множество вершин первой
компоненты сильной связностиD1:
это те вершины, которым соответствуют
единицы в первой строке матрицыS(D).
Таким образом, первая компонента сильной
связности состоит из одной вершины
.
Вычеркиваем из матрицы S1(D) строку и столбец, соответствующие вершине v1, чтобы получить матрицу S2(D):
.
Присваиваем
p=2.
Множество вершин второй компоненты
связности составят те вершины, которым
соответствуют единицы в первой строке
матрицы S2(D),
то есть
.
Составляем матрицу смежности для
компоненты сильной связности
исходного графаD
− в ее
качестве возьмем подматрицу матрицы
A(D),
состоящую из элементов матрицы A,
находящихся на пересечении строк и
столбцов, соответствующих вершинам из
V2:
.
Вычеркиваем
из матрицы S2(D)
строки и столбцы, соответствующие
вершинам из V2
,чтобы получить матрицу S3(D),
которая состоит из одного элемента:
и присваиваемp=3.
Таким образом, третья компонента сильной
связности исходного графа, как и первая,
состоит из одной вершины
.
Таким образом, выделены три компоненты сильной связности ориентированного графа D (рис. 20.5):
|
D1:
|
D2:
|
D3:
|
20.5 Метрические характеристики связных графов
Определение.
Расстояние
между вершинами
и
графа
– это длина кратчайшей цепи между
и
.
Если от вершины
до вершины
не ведет ни одна цепь, то
.
В связном графе определенное таким способом расстояние удовлетворяет всем аксиомам метрики, а именно:
1.
,
причем
только при
.
2.
.
3.
.
Определение.
Диаметром
графа
называется максимальное расстояние
в графе
.
Пример. В графе на рис. 20.6 различные вершины соединены минимальными цепями со следующими длинами:
;
откуда
следует, что диаметр графа
.

Рисунок 20.6
Определение. Грань (ячейка) плоского графа (в котором ребра пересекаются только в вершинах) – это такая непустая замкнутая подобласть плоскости, что всякие две точки области можно соединить простой (Жордановой) кривой, внутренние (не концевые) точки которой лежат внутри области, не пересекаясь с ребрами графа. Другими словами, если плоскость разрезать по ребрам плоского графа, она распадется на связные части, которые называют гранями.
Определение. Границей грани считается множество ребер и вершин графа, принадлежащих грани. Всякий конечный плоский граф имеет в точности одну неограниченную грань, которая называется внешней гранью. Все остальные (ограниченные) грани называются внутренними.
Если в плоском графе нет циклов, то у него имеется только одна грань. Если же циклы есть, то граница каждой грани содержит цикл, но не обязательно является циклом.
Пример. На рис. 20.7 показан плоский граф с пятью занумерованными гранями. Граница грани с номером 3 состоит из двух циклов, а граница грани с номером 2 кроме цикла длины 5 включает еще дерево из трех ребер.

Рисунок 20.7
Множества ребер, образующие границы граней, могут быть разными для разных плоских укладок одного и того же графа.
Пример. На рис. 20.8 показаны две плоские укладки одного графа. В левой укладке (рис. 20.8 а)) есть две грани, границы которых являются простыми циклами длины 5. В правой укладке (рис. 20.8 б)) таких граней нет, но есть грани, ограниченные циклами длины 4 и 6.

а) б)
Рисунок 20.8
Теорема
(формула Эйлера).
Количество граней в любой плоской
укладке планарного графа, имеющего
вершин,
ребер и
компонент
связности, равно
.
Определение.
Эксцентриситет
вершины
в связном графе
– это расстояние от
до наиболее удаленной от нее вершины.
Пример.
Эксцентриситет
вершины 8 графа на рис. 20.9
равен
.

Рисунок 20.9
Определение.
Наименьший
из эксцентриситетов называется радиусом
графа
.
Пример.
Найдем все
эксцентриситеты графа на рис. 20.10:
.

Рисунок 20.10
Наименьший
эксцентриситет равен 2, следовательно,
радиус графа
.
Наибольший эксцентриситет равен диаметру
графа.
Определение.
Вершина
называетсяцентральной
вершиной
графа
,
если на ней достигается минимум
эксцентриситетов, то есть
.
Вершина
называетсяпериферийной,
если
.
Определение.
Простая
цепь, расстояние между концами которой
равно
,
называетсядиаметральной
цепью.
Пример. На рис. 20.11 все вершины, кроме вершины 2, являются периферийными, (1,2,3) – диаметральная цепь.

Рисунок 20.11
Определение.
Центром
графа
называется множество всех его центральных
вершин; центр может состоять из
единственной вершины, может – из двух
и более вершин.
Пример. В графе на рис. 20.10 два центра – вершины 3 и 5.
Центр
графа может совпадать с множеством всех
вершин. Например, центр простой цепи
при четном числе вершин
состоит ровно из двух вершин, а при
нечетном – из одной; для цикла же все
вершины являются центральными.
Задача нахождения центральных вершин графа постоянно возникает в практической деятельности людей. Пусть, например, граф представляет сеть дорог, т.е. вершины его соответствуют отдельным населенным пунктам, а ребра – дорогам между ними. Требуется оптимально разместить больницы, магазины.
В подобных ситуациях критерий оптимальности часто заключается в оптимизации «наихудшего» случая, т.е. в минимизации расстояния от места обслуживания до наиболее удаленного пункта. Следовательно, местами размещения должны быть центральные вершины графа.
Реальные задачи (их называют минимаксными задачами размещения) отличаются от идеальной тем, что приходится ещё учитывать другие обстоятельства – фактические расстояния между отдельными пунктами, стоимость, время проезда и прочее. Для того чтобы учесть это, используют взвешенные графы.
20.6 Эйлеровы графы
Определение. Эйлеров цикл (эйлерова линия, замкнутая эйлерова цепь, эйлерова цепь) – это цикл, содержащий все ребра графа.
Определение. Граф, содержащий эйлеров цикл, называется эйлеровым графом (рис 20.12).

Рисунок 20.12
Определение. Если граф содержит разомкнутую цепь, содержащую все ребра этого графа, то такой граф называется полуэйлеровым (рис. 20.13).

Рисунок 20.13
Теорема 20.1. Если в связном графе все вершины четны, то этот граф содержит эйлеров цикл.
Верно и обратное утверждение: если граф содержит эйлеров цикл, то все его вершины четны.
Теорема 20.2. Если в связном графе две вершины нечетны, а все остальные – четны, то этот граф содержит эйлерову разомкнутую цепь.
Определение. Всякую линию, которую можно провести, проходя по заданным участкам точно по одному разу, называют уникурсальной.
Применительно к эйлеровым графам провести уникурсальную линию – это значит пройти по всем ребрам графа по одному разу, не отрывая карандаш от бумаги. Заметим, что разомкнутая уникурсальная линия всегда начинается с нечетной вершины и заканчивается в другой нечетной вершине. Если же начать обход полуэйлерового графа с четной вершины, то уникурсальную линию, ни замкнутую, ни разомкнутую, построить не удастся.
Эйлеровы графы иногда называют уникурсальными.
Теорема
20.3.
Если в связном графе
содержится
нечетных вершин, то в нем имеется
разомкнутых эйлеровых цепей, в совокупности
содержащих все ребра графа
точно по одному разу.
Используя
понятие уникурсальной линии, эту теорему
можно сформулировать следующим образом:
если в связном графе содержится
нечетных вершин, то в нем имеется
разомкнутых уникурсальных линий. Чтобы
изобразить такой граф, карандаш придется
оторвать от бумаги не менее
раз.
Пример.
Граф на рис.
20.14 содержит четыре нечетные вершины,
следовательно,
.
При его изображении карандаш от бумаги
придется оторвать один раз. Если начать
с вершины 1, то получим две уникурсальные
линии: 1,3,4,2,1,2,4 и 2,3.

Рисунок 20.14
Теорема 20.4. В любом связном графе можно построить замкнутый маршрут, проходящий через каждое ребро точно два раза.
Чтобы убедиться в справедливости этой теоремы, достаточно каждое ребро графа заменить двумя параллельными ребрами и считать, что маршрут проходит по каждому ребру точно один раз. Тогда все вершины станут четными, и такой граф будет содержать эйлеров цикл.
Из этой теоремы следует, что любой граф можно изобразить, не отрывая карандаш от бумаги и проходя по каждому ребру не более двух раз.
Пример. Граф, приведенный на рисунке 6.50, можно изобразить в виде последовательности вершин так: 1,2,4,2,1,3,2,3,4, откуда следует, что два раза карандаш прошел только по ребру {2,3}.
Теорема Эйлера. Граф содержит эйлеров цикл тогда и только тогда, когда он связен и степени всех его вершин – четные.
20.7 Алгоритм нахождения эйлерова цикла (алгоритм Флери)
Шаг
1. Начиная с произвольной вершины
,
присвоить произвольному ребру
номер 1. Затем вычеркнуть ребро
и перейти в
вершину
.
Шаг
2. Пусть
– вершина, в которую перешли в результате
выполнения предыдущего шага, и
– номер, присвоенный некоторому ребру
на этом шаге. Выбрать любое ребро,
инцидентное вершине
,
причём мост выбирать только в том случае,
когда нет других возможностей; присвоить
выбранному ребру номер
и вычеркнуть
его.
Шаг 3. Повторять шаг 2 пока не все ребра вычеркнуты.
20.8 Гамильтоновы графы
Определение. Гамильтонов путь (или гамильтонова цепь) – путь (цепь), содержащий каждую вершину графа ровно один раз.
Определение. Гамильтонов путь, начальная и конечная вершины которого совпадают, называется гамильтоновым циклом.
Понятие гамильтонова цикла впервые появилось в связи с задачей о кругосветном путешествии, которую рассматривал сэр Уильям Гамильтон: обойти все вершины графа – названия столиц различных стран – по одному разу и вернуться в исходный пункт.

исунок 20.15 – Додекаэдр
Задача нахождения гамильтонова цикла с наименьшим весом хорошо известна как задача коммивояжера.
Определение. Гамильтонов граф – это граф, содержащий гамильтонов цикл (рис. 20.16).

Рисунок 20.16 – Гамильтонов граф
Граф, который содержит простую цепь, проходящую через каждую его вершину, называется полугамильтоновым (рис. 20.17).

Рисунок 20.17 – Полугамильтонов граф
20.9 Алгоритм Робертса-Флореса (метод перебора Робертса-Флореса) нахождения гамильтоновых циклов в графе
Алгоритм
начинается с построения матрицы
![]()
,
где элемент
есть
-я
вершина (допустим,
),
для которой в графе
существует дуга
.
Вершины
можно упорядочить произвольно, образовав
элементы
-го
столбца матрицы
.
Число строк
матрицы
будет равно наибольшей полустепени
исхода вершины.

Рисунок
20.18 –
Граф
![]()
Матрица М:
|
|
a |
b |
c |
d |
e |
f |
|
1 |
b |
c |
a |
c |
c |
a |
|
2 |
– |
e |
d |
f |
d |
b |
|
3 |
– |
– |
– |
– |
– |
c |
Все
вершины по очереди записываем во
множество
.
Поиск
всех гамильтоновых циклов производится
так (вершина
берется в качестве отправной вершины):
|
№ |
Множество
|
Комментарии |
|
1 |
|
Добавляем
первую возможную вершину в столбце
|
|
2 |
|
Добавляем
первую возможную вершину в столбце
|
|
3 |
|
Первая
возможная вершина в столбце
|
|
4 |
|
Добавляем
вершину
|
|
5 |
|
В
столбце
|
|
6 |
|
В
столбце
|
|
7 |
|
В
столбце
|
|
8 |
|
Добавляем
вершину
|
|
9 |
|
Добавляем
вершину
|
|
10 |
|
Добавляем
вершину
|
|
11 |
|
Добавляем
вершину
|
|
12 |
|
Гамильтонова
цепь. Дуга
|
|
13 |
|
Возвращение. |
|
14 |
|
Возвращение. |
|
15 |
|
Добавляем
вершину
|
|
16 |
|
Добавляем
вершину
|
|
17 |
|
Добавляем
вершину
|
|
18 |
|
Гамильтонова
цепь. Дуга
|
|
19 |
|
Возвращение. |
|
20 |
|
Возвращение. |
|
21 |
|
Возвращение. |
|
22 |
|
Возвращение. |
|
23 |
|
Возвращение. |
|
24 |
|
Конец поиска. |
В результате получаем два гамильтоновых цикла (рис. 20.19).

Рисунок 20.19– Гамильтоновы циклы в графе
Определение.
Реберным
графом
графа
называется граф, имеющий столько же
вершин, сколько ребер у графа
.
Ребро между двумя вершинами графа
существует тогда и только тогда, когда
ребра графа
,
соответствующие этим двум вершинам,
смежные (т. е. инцидентные одной и той
же вершине графа
).
Пример. На рис. 20.20 изображен исходный граф, а на рис. 20.21 – соответствующий ему реберный.

Рисунок 20.20

Рисунок 20.21
Гамильтонов граф является двусвязным, так как между каждой парой вершин существует не менее чем две различные простые цепи.
20.10 Признаки существования гамильтоновых циклов, путей и контуров
Общий признак, при помощи которого для любого графа можно было бы определить, имеет он гамильтонов цикл или нет, не найден до сих пор. Существуют некоторые достаточные условия гамильтоновости графа (все графы предполагаются связными и простыми).
Если в графе есть висячая вершина (со степенью, равной единице), то гамильтонов цикл в нем отсутствует (рис. 20.22).

Рисунок 20.22
Теорема
(условие Дирака).
Если число
вершин графа
не менее трех и степень
любой вершины
не менее
,
то граф
является гамильтоновым.
Теорема
(условие Оре).
Если в графе
с
вершинами (
)
сумма степеней любых двух вершин
и
является не меньшей, чем
(
),
то граф
является гамильтоновым.
Теорема
Бонди-Хватала.
Пусть для упорядоченной по возрастанию
последовательности степеней вершин
,
,
графа
выполнены импликации
,
,
тогда
– гамильтонов граф.
Теорема
(условие Харари).
Реберный граф
гамильтонов тогда и только тогда, когда
в
существует цикл, содержащий хотя бы по
одной вершине из каждого ребра графа
.
Следствие.
Если граф
либо эйлеров, либо гамильтонов, то
реберный граф
гамильтонов.
Теорема
(признак Кенига).
В полном орграфе
(любая пара вершин которого соединяется
хотя бы в одном направлении) всегда
существует гамильтонов путь.
20. 11 Контрольные вопросы и задания
1. Дайте определение связного и несвязного графов.
2. Что называется степенью связности графа?
3. Перечислите свойства связных графов.
4. Приведите примеры метрических характеристик связных графов.
5. Дайте определения эйлерова цикла (эйлеровой линии, замкнутой эйлеровой цепи, эйлеровой цепи).
6. Какой граф называется эйлеровым?
7. Для решения каких практических задач используется теорема Эйлера?
8. Дайте определение гамильтонова пути (гамильтоновой цепи), гамильтонова цикла.
9. Какой граф называется гамильтоновым?
10. Охарактеризуйте применение задачи коммивояжера.
11. Приведите алгоритм Робертса-Флореса. Для каких целей он используется?
12 Назовите основные признаки существования гамильтоновых циклов, путей и контуров.
13. Охарактеризуйте теорему (условие Дирака) для определения гамильтонова графа.
Лекция 21 Деревья
21.1 Определение и свойства деревьев
Определение. Связный граф, не содержащий циклов, называется деревом (рис. 21.1).

Рисунок 21.1 – Дерево
Несвязный граф, не содержащий циклов, называется лесом.
Пример. На рис. 21.2 приведен трехкомпонентный лес. Первую компоненту образует дерево с вершинами 1,2,3,4, вторую – 5,6,7,8,9, третью – 10,11.

Рисунок 21.2 – Лес
21.2 Свойства деревьев
Теорема
21.1. Всякое
дерево содержит
ребер, где
– число вершин.
Теорема
21.2. Всякий
лес содержит
ребер, где
– число компонент связности.
Теорема 21.3. Любые две вершины дерева соединены точно одной простой цепью.
Теорема 21.4. Если в дереве любые две вершины соединить ребром, то в графе появится один цикл.
21.3 Перечисление графов
Определение.
Граф
называетсяпомеченным,
если его вершинам присвоены фиксированные
метки, например, номера
.
Два помеченных графа одинаковы (не различаются), если их вершины помечены одной системой меток и существует изоморфизм одного графа на другой, при котором сохраняются метки всех вершин.
Пример.
На рис. 21.3
изображены все помеченные графы с числом
вершин
;
их количество равно 8.

Рисунок 21.3
Количество
(неориентированных) помеченных
графов (простых с
вершинами и
ребрами) равно числу сочетаний из
множества различных неориентированных
пар вершин
по числу ребер
.
,
![]()
Суммируя
числа
по всем возможным количествам ребер
от случая безреберного графа до случая
полного графа с
вершинами,
получаем число
всех помеченных графов с
вершинами:
![]()
Число
неизоморфных графов без пометок (простых,
неориентированных) найти значительно
труднее. Среди восьми графов на рисунке
3 без учета пометок можно указать только
четыре попарно неизоморфных друг другу,
например, в квадратах 1, 2, 7, 8. Следовательно,
,
что вдвое меньше числа
помеченных графов. Число
помеченных четырехвершинных графов
равно 64, в то время как различных
неизоморфных четырехвершинных графов
без пометок существует всего
.
Если
через
обозначить число неизоморфных
-вершинных
графов с
ребрами, то
![]()
![]()
В
общем случае количество неизоморфных
графов
,
находятся с помощью теории перечисления
конфигураций, созданной Д. Пойа.
21.4 Перечисление деревьев
Введем
обозначения:
– число помеченных деревьев с
вершинами.
–число
обычных (неизоморфных) деревьев с
вершинами.
Пример. На рис. 21.4 изображены все помеченные четырехвершинные деревья. Их 16.

Рисунок 21.4
Формула
А. Кэли.
Число
помеченных деревьев с
вершинами
равно
,
т.е.
.
Числа
обычных (неизоморфных) деревьев являются
значительно меньшими, однако вычислить
их существенно труднее. Современные
алгоритмы нахождения значений
и получения конфигураций неизоморфных
деревьев с
вершинами
основаны на теории перечисления Д. Пойа.
Важный
класс графов образуют деревья с одной
помеченной вершиной, которая называется
корнем.
Само дерево с одной помеченной
(«выделенной») вершиной называется
корневым
деревом.
Число корневых деревьев с
вершинами
обозначается через
.
Все
корневые деревья с числом вершин
изображены
на рисунке 21.5.

Рисунок 21.5
Все
корневые деревья с числом вершин
изображены
на рис. 21.6.

Рисунок 21.6
21.5 Остовы графа
Если связный граф содержит цикл, то после удаления любого ребра, входящего в цикл, этот цикл разрушается, но связность графа сохраняется. Применим операцию разрушения циклов к каждому циклу графа. Тогда в графе не останется циклов и получится связный частичный граф, являющийся деревом.
Определение.
Полученное дерево называется остовом,
т. е. остовом
называется связный частичный граф
данного связного графа
,
содержащий все вершины графа
,
но не содержащий циклов.
Пример.
Рассмотрим,
например, граф, изображенный на рис.
21.7. Удалим из него ребра
и
и получим остов. Если удалить ребра
и
,
то получим другой остов.

Рисунок 21.7
Два
остова в
считаются различными, если они отличаются
хотя бы одним ребром.
Для
того чтобы
имел более одного остова, необходимо и
достаточно существование хотя бы одного
цикла в
.
Для
полного (простого) графа
перечисление остовов есть перечисление
всех помеченных деревьев с вершинами
графа
,
так что число остовов равно
.
В общем случае число остовов получил Кирхгоф.
Определение.
Матрицей
Кирхгофа
простого графа
называется
-матрица
с элементами, которые определяются так:

Сумма
элементов в каждой строке и каждом
столбце матрицы
равна нулю.
Теорема
Кирхгофа.
Число остовных деревьев в простом
связном графе
с
вершинами равно алгебраическому
дополнению любого элемента матрицы
Кирхгофа
.
21.6 Алгоритмы построения остовов графа
Задача отыскания кратчайшего остова графа является классической задачей теории графов. Методы решения этой задачи послужили основой для многих других важных результатов. Задача о нахождении кратчайшего остова принадлежит к числу немногих задач теории графов, которые можно считать полностью решенными. Между тем, если изменить условия задачи, на первый взгляд даже незначительно, то она оказывается значительно более трудной.
Алгоритм строит остов:
Вход:
граф
,
заданный матрицей длин рёбер
.
Выход:
остов
.
![]()
while
в
больше одного элементаdo
взять
любое поддерево из
![]()
найти к нему ближайшее
соединить
эти деревья в
![]()
end while
В частности, исследования алгоритма Краскала привели в конечном счете к теории жадных алгоритмов. Следующий жадный алгоритм, известный как алгоритм Краскала, находит кратчайший остов в связном графе.
Алгоритм Краскала
Вход:
список
рёбер графа
с длинами.
.
Выход:
множество
рёбер кратчайшего остова.
![]()
Упорядочить
в порядке возрастания длин
{ номер рассматриваемого ребра }
for
from
1 to
do
while
добавление ребра
образует цикл в
do
{пропустить ребро }
end
while
{добавить это ребро вSST
}
end for
(SST-Shortest Sceleton Tree - стандартное обозначение для кратчайшего остова).
Пример.
Дан нагруженный граф
.
Необходимо построить минимальное
остовное дерево
.
Алгоритм: Строим таблицу, в которую заносим все ребра с их стоимостями в порядке возрастания. На каждом шаге алгоритма включаем в остовное дерево ребро графа минимальной стоимости, проверяя, не образуется ли цикл с уже включенными в дерево ребрами.

Рисунок 21.8
Рисунки 21.9 – 21.11 иллюстрируют работу алгоритма Краскала.
|
Шаг |
Ребро |
Стоимость |
+/- |
|
1 |
(1, 7) |
1 |
включаем |
|
2 |
(3, 4) |
3 |
включаем |
|
3 |
(2, 7) |
4 |
включаем |
|
4 |
(3, 7) |
9 |
включаем |
|
|
(2, 3) |
15 |
образует цикл, не включаем |
|
|
(4, 7) |
16 |
образует цикл, не включаем |
|
5 |
(1, 5) |
17 |
включаем |
|
|
(1, 2) |
20 |
образует цикл, не включаем |
|
6 |
(1, 6) |
23 |
Включаем. Все вершины включены в остов. Конец. |
|
|
(5, 7) |
25 |
|
|
|
(5, 6) |
28 |
|
|
|
(6, 7) |
36 |
|

Рисунок 21.9

Рисунок 21.10

Рисунок 21.11
В
результате работы алгоритма получаем
остов минимальной стоимости:
=57.
21.7 Ориентированные и бинарные деревья. Определения
Ориентированное дерево (корневое ориентированное дерево) (рис. 21.12) – это ориентированный граф без циклов со свойствами:
Существует в точности одна вершина
,
называемая корнем, в которую не заходит
ни одна дуга.В каждую вершину, кроме корня, заходит в точности одна дуга.
Существует путь из корня в любую другую вершину.

Рисунок 21.12
Потомок
вершины
– это вершина
,
в которую ведет путь из вершины
;
при этом
называется предком для
.
Если длина этого пути равна 1, то есть
из
в
ведет дуга, то
– «отец» для
,
а
– «сын» для
.
Вершины, у которых общий отец, называются братьями или сестрами.
Вершина, не имеющая потомков, называется листом.
Глубина
вершины
в дереве – это длина пути из корня в
.
Высота
вершины
в дереве – это длина самого длинного
пути из
в какой-нибудь лист.
Высота дерева – это число дуг самого длинного пути, то есть высота корня.
Уровень
вершины
– это разность между высотой всего
дерева и глубиной вершины
.
Высота дерева на рис. 21.13 равна 3, вершина 8 имеет глубину 2, высоту 1, уровень 1.

Рисунок 21.13
Лемма.
Если в любом неориентированном дереве
выбрать произвольную вершину
в качестве корня и сориентировать все
ребра в направлении «от корня», т.е.
сделать
началом всех инцидентных ей ребер,
вершины, смежные с
– началами всех инцидентных им еще не
сориентированных ребер и т.д., то
полученный в результате ориентированный
граф
будет ориентированным деревом.
Упорядоченное
ориентированное дерево
– это дерево, у которого множество
сыновей каждой вершины упорядочено,
обычно слева направо, как на рисунке
62:
.
Бинарное
(двоичное) дерево
– это упорядоченное дерево, из каждой
вершины которого может исходить не
более двух дуг. Ориентированное дерево
называютбинарным,
если полустепень исхода любой его
вершины не больше 2.
Бинарное ориентированное дерево называют полным, если из любой его вершины, не являющейся листом, исходят ровно две дуги, а уровни всех листьев совпадают.
Каждая вершина бинарного дерева может иметь либо двух сыновей – левого и правого (вершина 2 имеет левого сына 3 и правого сына 4), либо иметь только левого сына (левый сын 9 вершины 8), либо только правого сына (вершина 5 – единственный правый сын вершины 4), либо не иметь ни одного сына (листья 3, 5, 7, 9).
Бинарное дерево называется полным, если у каждой его внутренней вершины имеется два сына и все его ветви имеют одинаковую длину.
Полное
бинарное дерево уровня
– это дерево, в котором каждый узел
уровня
является листом и каждый узел уровня
меньше
имеет непустые левое и правое поддеревья.
На рис. 21.14 приведен пример полного бинарного дерева уровня 3.

Рисунок 21.14
Левое
поддерево вершины
– это максимальное поддерево, корнем
которого является левый сын
вершины
.
Правое
поддерево вершины
– это максимальное поддерево, корнем
которого является правый сын
вершины
.
На рисунке 6.77 левое поддерево вершины 6 состоит из одной вершины 7, правое поддерево – из вершин 8, 9 и дуги (8,9).
Теорема
21.5 (теорема
о высоте бинарного ориентированного
дерева с заданным числом листьев).
Бинарное ориентированное дерево с
листьями имеет высоту, не меньшую
.
21.8 Правила прохождения бинарных деревьев
Над бинарным деревом есть операция – его прохождение, т.е. нужно обойти все дерево, отметив каждый узел один раз.
Существует 3 способа обхода бинарного дерева:
1. В прямом порядке.
2. В симметричном порядке.
3. В обратном порядке.
В прямом порядке (обход в прямом порядке, прямой обход, упорядоченный обход, обход сверху, обход в ширину, preorder):
1. Попасть в корень.
2. Пройти в прямом порядке левое поддерево.
3. Пройти в прямом порядке правое поддерево.
В симметричном порядке (обход симметричным способом, симметричный обход, inorder):
1. Пройти в симметричном порядке левое поддерево.
2. Попасть в корень.
3. Пройти в симметричном порядке правое поддерево.
В обратном порядке (обход в обратном порядке, обход в глубину, обратный обход, обход снизу, postorder):
1. Пройти в обратном порядке левое поддерево.
2. Пройти в обратном порядке правое поддерево.
3. Попасть в корень.
21.9 Эквивалентные бинарные деревья
Дерево и лес любого вида можно преобразовать единственным образом в эквивалентное бинарное дерево.
Правило построения бинарного дерева из любого дерева:
1. В каждом узле оставить только ветвь к старшему сыну (вертикальное соединение).
2. Соединить горизонтальными ребрами всех братьев одного отца.
3. Таким образом перестроить дерево по правилу:
– левый сын – вершина, расположенная под данной вершиной;
– правый сын – вершина, расположенная справа от данной вершины(т.е. на одном ярусе с ней).
4. Развернуть дерево таким образом, чтобы все вертикальные ветви отображали левых сыновей, а горизонтальные – правых.
В результате преобразования любого дерева в бинарное получается дерево в виде левого поддерева, подвешенного к корневой вершине.
Описанный выше метод представления произвольных упорядоченных деревьев посредством бинарных деревьев можно обобщить на представление произвольного упорядоченного леса.
Правило построения бинарного дерева из леса: корни всех поддеревьев леса соединить горизонтальными связями. В полученном дереве узлы в данном примере будут располагаться на трех уровнях. Далее перестраивать по ранее рассмотренному плану. В результате преобразования упорядоченного леса в бинарное дерево получается полное бинарное дерево с левым и правым поддеревом.
21.10 Контрольные вопросы и задания
1. Какой граф называется деревом. Приведите примеры деревьев.
2. Что называется лесом в теории графов?
3. Перечислите основные свойства деревьев.
4. Какой формулой можно воспользоваться для определения количества неориентированных помеченных графов?
5. Какой формулой можно воспользоваться для определения количества неориентированных помеченных деревьев?
6. Как определить число неизоморфных графов без пометок?
7. В каких случаях используется формула А. Кэли? Приведите эту формулу.
8. Дайте определения основа (каркаса) графа.
9. Приведите пример составления матрицы Кирхгофа простого графа.
10. Для решения каких задач используется теорема Кирхгофа.
11. Перечислите основные алгоритмы построения остовов графа.
12. Приведите алгоритм Краскала для построения остова графа.
13. Дайте определение ориентированных и бинарных деревьев.
14. Охарактеризуйте способы обхода бинарного дерева.
Лекция 22. Цикломатика графов. Раскраска графов
22.1 Цикломатика графов
22.1.1 Определения цикломатики графов
Маршрут
(соединяющий вершины
и
)
– это конечная последовательность
ребер и инцидентных им вершин, составляющих
непрерывную кривую с концами
и
.
Число ребер в маршруте называется егодлиной.
Маршрут
замкнут,
если концы его совпадают (
).
Маршрут, в котором все рёбра попарно различны, называется цепью.
Маршрут, в котором все вершины попарно различны, называется простой цепью.
Цикл – это замкнутая цепь.
Цикл, в котором все вершины, кроме первой и последней, попарно различны, называется простым циклом.
Для ориентированных графов цепь называется путем, а цикл – контуром.
Пример. В графе на рис. 22.1: 1. 1, 3, 1, 4 – маршрут, но не цепь; 2. 1, 3, 5, 2, 3, 4 – цепь, но не простая цепь; 3. 1, 4, 3, 2, 5 – простая цепь; 4. 1, 3, 5, 2, 3, 4, 1 – цикл, но не простой цикл; 5. 1, 3, 4, 1 – простой цикл.

Рисунок 22.1
Граф называется ациклическим, если он не содержит циклов (рис. 22.2).

Рисунок 22.2– Ациклический граф (дерево)
Следующие три определения равнозначны:
Каркас (остов) – это максимальный подграф без циклов.
Остов графа – ациклический подграф исходного графа, полученный путем удаления из исходного графа ребер так, чтобы не изменилось количество компонент связанности.
Остовный подграф графа – это подграф, содержащий все вершины графа.
Пример. На рис. 22.3 жирными линиями выделены ребра остова.

Рисунок 22.3– Остов и кодерево
Деревом называется связный граф, не содержащий ни одного цикла.
Хордой
остова
в связном
графе
называется
всякое ребро графа, не принадлежащее
.
Любой подграф, который состоит из хорды
и остова, имеет точно один цикл.
Кодерево графа – такой подграф графа, который содержит все его вершины и те ребра, которые не вошли в остов.
Пример. На рис. 22.3 полужирными линиями выделены ребра остова, тонкими линиями – ребра кодерева.
22.1.2 Цикломатическое число и его свойства
Определение.
Наименьшее
число
,
показывающее, сколько ребер необходимо
удалить из графа, чтобы получить его
остов, называется цикломатическим
числом.
,
то есть, чтобы найти цикломатическое
число графа, необходимо из числа ребер
вычесть число вершин и к результату
прибавить число компонент.
В
случае связного графа
,
следовательно,
.
Пример.
Для графа, приведенного на рис. 22.4,
;
.

Рисунок 22.4
Цикломатическое число всегда неотрицательно.
Цикломатическое число остова графа равно нулю.
Основное свойство цикломатического числа формулируется в виде теоремы: цикломатическое число мультиграфа равно максимальному числу независимых циклов.
Цикломатическое
число несвязного графа
с
компонентами
связности
может быть
определено как сумма цикломатических
чисел его компонент связности:
![]()
Определение. Совокупность циклов графа называется линейно-независимой по модулю 2, если ни один цикл из данной совокупности нельзя получить с помощью линейной комбинации по модулю 2 остальных циклов.
Цикломатическое число графа постоянно и равно числу линейно-независимых циклов графа.
22.1.3 Цикломатическая матрица
Определение.
–цикломатическая
матрица графа
– это матрица, столбцам которой
соответствуют ребра графа, а строки
соответствуют циклам.
.
Каждый элемент этой строки определяется
следующим образом:

Каждому
циклу графа взаимно однозначно
сопоставляется вектор-строка матрицы
.
Цикломатическая матрица не задает граф с точностью до изоморфизма.
22.1.4 Базис циклов
Определение.
Множество
всех векторов,
каждый из которых соответствует одному
циклу графа
,
образует векторное пространство,
называемое пространством
циклов графа
.
При этом для любых двух циклов
существует некоторый третий цикл
,
где символ
обозначает
поразрядное сложение по модулю два.
Определение.
Базисом пространства циклов
называется
всякая система линейно независимых
векторов, порождающая данное пространство.
Всякий элемент пространства циклов
единственным образом представим в виде
линейной комбинации векторов базиса
пространства циклов. Если пространство
имеет базис из
векторов,
то оно называется
-мерным
пространством.
Система циклов графа называется полной, если любой цикл данного графа представляется в виде линейной комбинации циклов из этой системы.
Базисом
циклов графа
называется любая полная линейно
независимая система циклов данного
графа. Базис
циклов графа
– это базис
пространства циклов графа
,
состоящий из простых циклов. Любой
вектор пространства циклов графа
можно
представить в виде линейной комбинации
векторов базиса циклов.
Пример. Рассмотрим граф, изображенный на рис. 22.5.

Рисунок 22.5
Цикломатическая
матрица
этого графа
имеет вид:

В
качестве базиса циклов можно взять
множество циклов
.
Можно убедиться в том, что все остальные
циклы выражаются их линейными комбинациями:
.
Определение. Сечение графа – это множество рёбер, удаление которых делит граф на два изолированных подграфа,
Сечение
называетсяфундаментальным
(по дереву
),
если оно содержит в точности одну дугу
дерева
,
а ориентация сечения
согласована с ориентацией дуги
.
Пример.
На рис. 22.6
пунктирами показаны фундаментальные
сечения
по дереву
«большая медведица».

Рисунок 22.6
Определение.
Фундаментальной
матрицей сечений
(по дереву
)
называется матрица, строками которой
являются вектор-сечения, фундаментальные
по дереву
.
Выделенному дереву
на рисунке 4 отвечает фундаментальная
матрица сечений, столбцы которой помечены
номерами дуг всего графа, строки –
номерами дуг дерева, точнее, номерами
соответствующих фундаментальных
сечений:

Определение.
Фундаментальным
циклом графа
(по дереву
)
называется всякий цикл, содержащий в
точности одну дугу
кодерева
и ориентированный согласно с направлением
дуги
.
Каждая дуга
кодерева однозначно задает фундаментальный
цикл
,
который дуга
замыкает на дереве
.
Определение.
Фундаментальной
матрицей циклов
(по дереву
)
называется матрица, строки которой есть
все фундаментальные вектор-циклы по
дереву
.
Если для графа на рисунке фундаментальные
вектор-циклы пометить номерами задающих
дуг кодерева
,
то фундаментальная матрица циклов
такова:

Для
произвольных матрицы сечений
и циклов
данного графа
справедливо соотношение ортогональности:
.
22.1.5 Алгоритм построения фундаментальной системы циклов
1.
Построить любое остовное дерево
исходного графа
.
2.
Добавить к
некоторое ребро
,
которое является ребром графа, но не
принадлежит остову.
3.
После такого добавления образуется
цикл
.
4.
Все циклы
(соответствующие всем ребрам, взятым
не из остова) образуют фундаментальную
систему циклов.
22.2 Раскраска графов
22.2.1 Раскраска вершин
Определение.
Раскраской
вершин графа называется назначение
цветов его вершинам. Обычно цвета – это
числа
.
Тогда раскраска является функцией,
определенной на множестве вершин графа
и принимающей значения в множестве
.
Раскраску можно также рассматривать
как разбиение множества вершин
,
где
– множество вершин цвета
.
Множества называют цветными классами.
Раскраска называетсяправильной,
если каждый цветной класс является
независимым множеством. Иначе говоря,
в правильной раскраске любые две смежные
вершины должны иметь разные цвета.
Задача о раскраске состоит в нахождении
правильной раскраски данного графа в
наименьшее число цветов. Это число
называется хроматическим
числом графа
и обозначается
.
22.2.2 Хроматическое число
Рассмотрим задачу: при каких условиях вершины графа можно раскрасить так, чтобы каждое ребро было инцидентно вершинам разного цвета? Нас больше всего интересует вопрос, какие графы можно раскрасить с соблюдением определенных условий, чем вопрос, сколькими способами можно выполнить это раскрашивание.
Пусть
граф
не имеет петель; тогда
называется
-раскрашиваемым,
если каждой его вершине можно приписать
один из
цветов таким образом, чтобы никакие две
смежные вершины не оказались одного
цвета. Если граф
является
-раскрашиваемым,
но не является
-раскрашиваемым,
назовем его
-хроматическим,
а число назовем хроматическим
числом. На
рис. 22.722изображен 4-хроматический (и,
следовательно,
-раскрашиваемый
граф при
)
граф; цвета обозначены греческими
буквами.

Рисунок 22.7 – 4-х хроматический граф
Для удобства будем предполагать, что все графы не содержат петель. Однако будем допускать существование кратных ребер, так как они не влияют на наши рассуждения.
Ясно,
что
,
и, следовательно, легко построить графы
со сколь угодно большим хроматическим
числом. С другой стороны, нетрудно
видеть, что
тогда и
только тогда, если
– вполне несвязный граф, и что
тогда и
только тогда, если
– двудольный (биохроматический) граф,
отличный от вполне несвязного графа.
Теорема
22.1. Если
наибольшая из степеней вершин графа
равна
,
то этот граф
-раскрашиваем.
При этом хроматическое число графа
равно
только в двух случаях: во-первых, если
граф является полным и, во-вторых, если
и при этом данный граф содержитконтур
нечетной
длины. Во всех остальных случаях
хроматическое число графа не превосходит
максимальной степени вершин.
Доказательство.
Проведем индукцию по числу вершин в
.
Пусть
– граф с
вершинами; если из него удалить
произвольную вершину
вместе с инцидентными ей ребрами, то в
оставшемся графе будет
вершин, причем степени вершин по-прежнему
не превосходят
.
По предположению индукции этот граф
-раскрашиваем,
отсюда получится
-раскраска
для
,
если окрасить вершину
цветом, отличным от тех, которыми окрашены
смежные с ней вершины, а их не более чем
p.
Теорема
(Брукса).
Пусть
– простой связный граф, не являющийся
полным; если наибольшая из степеней его
вершин равна
,
то он
-раскрашиваем.
Доказательство.
Проведем индукцию по числу вершин графа
.
Предположим, что
имеет
вершин. Если при этом степень какой-нибудь
его вершины меньше
,
дальше можно рассуждать, как в
доказательстве теоремы 1, и все будет
закончено. Поэтому без потери общности
можно считать граф
регулярным степени
.
Выберем
произвольную вершину
и удалим ее, вместе с инцидентными ей
ребрами. Останется граф с
вершинами, в котором наибольшая из
степеней вершин не превосходит
.
По предположению индукции этот граф
-раскрашиваем.
Теперь окрасим вершину
в один из имеющихся
цветов. Как и раньше, считаем, что смежные
с
вершины
расположены вокруг
по часовой стрелке и окрашены в различные
цвета
,
.
Определяя
подграфы
,
когда
лежат в разных компонентах графа
.
Таким образом, можно считать, что при
любых данных
вершины
связаны простой цепью, целиком лежащей
в
.
Обозначим компоненту графа
,
содержащую вершины
,
через
.
Ясно,
что если вершина
– смежная более чем с одной вершиной
цвета
,
то существует цвет, отличный от
,
не приписанный никакой из вершин, смежных
с
.
Тогда вершину
можно окрасить в этот цвет, что, в свою
очередь, позволит окрасить вершину
в цвет
и закончить на этом доказательство
теоремы. Если этот случай не имеет места,
то используем аналогичное рассуждение,
чтобы показать, что каждая вершина из
(отличная от
и от
)
должна иметь степень 2. Предположим, что
—
первая вершина простой цепи из
в
,
которая имеет степень больше 2; тогда
можно перекрасить в цвет, отличный от
или
,
нарушая тем самым свойство, что
и
связаны простой цепью, целиком лежащей
в
.
Поэтому мы можем считать, что для любых
и
компонента
состоит только из простой цепи, соединяющей
вершину
c
.
Заметим
теперь, что две простые цепи вида
и
,
где
,
можно считать пересекающимися только
в вершине
,
так как если
– другая точка пересечения, то ее можно
перекрасить в цвет, отличный от
или
,
или
,
а это противоречит факту, что
,
связаны простой цепью.
Для
завершения доказательства выберем
(если это возможно) две несмежные вершины
,
и допустим, что
– вершина цвета
,
смежная с
.
Поскольку
– простая
цепь (для любого
),
можно поменять между собой цвета вершин
в этой цепи, не затрагивая раскраску
остальной части графа. Но это приводит
к противоречию, потому что тогда
будет общей вершиной простых цепей
и
.
Отсюда следует, что нельзя выбрать две
вершины
и
несмежными, и поэтому
должен быть полным графом
.
А так как это не допускается условием
теоремы, то все возможные случаи
рассмотрены.
Некоторые
практические задачи связанные с
раскраской ребер графа
,
что считается правильным, если каждые
2 смежных ребра (инцидентных одной
вершине) раскрашиваются в разные цвета.
Определение.
Наименьшее число цветов для правильной
раскраски называется хроматическим
классом
графа или индексом.
Так как раскрашивание графа
сводится к некоторому графу
,
который называетсядуальным
по отношению
к
,
потому, что
– хроматический класс
равен хроматическому числу дуального
графа. Это свойство дуального графа
соответствующим образом его определяет:
вершины дуального графа
находятся в соответствии с ребрами
,
и 2 вершины у графа
соединенные ребром, тогда и только тогда
2 ребра у
смежные.
Определение.
Если граф
имеет хроматическое число
,
то его называютбихроматическим
графом.
Любое раскрашивание
2 красками разбивает вершины на 2 множества
,
посередине каждого множества вершины
попарно несмежные (или независимы).

Рисунок 22.8 – Две плоскости бихроматического графа
Теорема
Кенига. Граф
называетсябихроматическим
тогда и только тогда, когда все его циклы
имеют четную длину.
Доказательство.
Следующие доказательства графа
эквивалентные:
Все замкнутые маршруты имеют четную длину.
Все циклы имеют четную длину.
Все простые циклы имеют четную длину.
Пусть
граф
бихроматический. Раскрашиваем его 2
цветами. Концы каждого цепи четной длины
имеют одинаковый цвет, нечетной –
разные, поэтому замкнутые маршруты
(циклы) нечетной длины отсутствуют.
Пусть все замкнутые маршруты графа
имеют четную длину. Разукрасим в цвет
1 а одну вершину
,
потом в
цвет 2 – ее окружение (множество смежных
вершин), в цвет 1 – окружение вершин
цвета 2 и т.д. За конечное число граф
будет раскрашен в цвет 1 и 2.
22.2.3 Гипотеза о четырех красках
Уже сто с лишним лет математики пытаются доказать гипотезу четырех красок. В этом направлении был достигнут значительный прогресс. В печати появилось сообщение (K.Appel, W.Haken, Every planar map is four colorable, Bull. of Amer. Math. Soc., 82, \No\,5 (sept. 1976)), что гипотезу четырех красок удалось обосновать с использованием ЭВМ.
Сформулируем без доказательства несколько относящихся к этой проблеме результатов.
1. Если гипотеза четырех красок не верна, то любой опровергающий ее пример будет очень сложным. Известно, например, что всякий планарный граф, имеющий менее 52 вершин, 4-раскрашиваем.
2. Любой не содержащий треугольников планарный граф 3-раскрашиваем (теорема Греча).
3. Если попытаться доказать гипотезу четырех красок, то достаточно доказать ее для гамильтоновых планарных графов (довольно неожиданный результат Уитни).
Возникновение гипотезы четырех красок исторически связано с раскрашиванием географических карт. Если имеется карта с изображением нескольких стран, то интересно узнать, сколько понадобится цветов для такой раскраски этих стран, чтобы никакие две соседние страны не были окрашены в один и тот же цвет. Возможно, самая привычная форма гипотезы четырех красок такова: любую карту можно раскрасить с помощью четырех красок.
Определение.
Назовем
карту
-раскрашиваемой,
если ее грани можно раскрасить
красками так, чтобы никакие две смежные
грани, то есть грани, границы которых
имеют общее ребро, не были одного цвета.
Там, где можно запутаться, будем
использовать термин вершинно
-раскрашиваемой,
имея в виду
-раскрашиваемость
в описанном выше смысле. Например,
изображенный ниже граф является
3-раскрашиваемым и вершинно 4-раскрашиваемым.

Рисунок 22.9 – Граф 3-раскрашиваемый и вершинно 4-раскрашиваемый.
Теперь сформулируем гипотезу четырех красок для карт: всякая карта 4-раскрашиваема.
Теорема
22.2. Карта
является 2-раскрашиваемой тогда и только
тогда, если G представляет собой эйлеров
граф.
Доказательство.
Любую вершину
из
должно окружать четное число граней,
так как их можно раскрасить в два цвета.
Отсюда следует, что степень каждой
вершины четна, и поэтому
– эйлеров граф.
22.2.4
Двудольные и
-дольные
графы
Определение.
Неориентированный
граф
называютдвудольным,
если множество его вершин
может быть разбито на такие два
подмножества
и
,
что каждое ребро имеет один конец в
,
а другой в
(рис. 22.10,а).
Ориентированный
граф
называетсядвудольным,
если его неориентированный двойник –
двудольный граф (рис. 22.10,б,в).
Двудольный
граф
называютполным,
если для любых двух вершин
и
существует ребро
в
(рис. 22.10,г).

Рисунок 22.10 – Двудольные графы: а, б, в – двудольные графы; г – полный двудольный граф
Теорема
о двудольности. Граф
является двудольным тогда и только
тогда, когда он не содержит циклов
нечетной длины.
Доказательство: смотри теорему Кенига о бихроматических графах.
22.3 Контрольные вопросы и задания
1. Дайте определение маршрута, пути, цепи, цикла в графе. Приведите практические примеры этих определений.
2. Дайте определение цикломатического числа. Охарактеризуйте его свойства.
3. Как задается цикломатическая матрица графа?
4. Что называется раскраской вершин графа.
5. Что называется хроматическим числом.
6. Какой граф является бихроматическим графом?
7. Приведите теорема Кенига о бихроматическом графе.
8.
Что называется хроматическим классом
графа или индексом?
9. Сформулируйте гипотезу четырех красок для карт.
10.
Какие графы являются двудольными и
-дольными?
Лекция 23. Транспортные сети и потоки. Их свойства
23.1 Кратчайшие расстояния и пути в графах
Пусть
– неориентированнный граф.
Определение.
Маршрутом
в
называется такая конечная или бесконечная
последовательность ребер, что каждые
два соседних ребра имеют концевую точку.
Причем, одно и то же ребро
может встречаться в маршруте несколько
раз.
Определение. Циклическим маршрутом называется такой маршрут, начальная и конечная точки которого совпадают.
Определение. Цепью называется маршрут, в котором каждое его ребро встречается не более одного раза; вершины в цепи могут повторяться и более одного раза. Любой участок цепи является цепью. Нециклическая цепь является простой цепью, если в ней никакая вершина не повторяется.
Для ориентированного графа можно вводить как неориентированные маршруты, цепи и простые цепи, не принимая во внимание ориентации ребер, так и ориентированные маршруты (цепи, простые цепи), в которых все ребра находятся в направлении их ориентации. Ориентированные цепи также называют путями.
23.2 Алгоритм Дейкстры поиска кратчайших путей
Алгоритм
Дейкстры решает задачу о кратчайших
путях из одной вершины для взвешенного
ориентированного графа
с исходной
вершиной
,
в котором веса всех рёбер неотрицательны
(
для всех
).
Формальное объяснение
В
процессе работы алгоритма Дейкстры
поддерживается множество
,
состоящее из вершин
,
для которых
уже найдено. Алгоритм выбирает вершину
с наименьшим
,
добавляет
к множеству
и производит релаксацию всех рёбер,
выходящих из
,
после чего цикл повторяется. Вершины,
не лежащие в
,
хранятся в очереди
с приоритетами, определяемыми значениями
функции
.
Предполагается, что граф задан с помощью
списков смежных вершин.
Неформальное объяснение
Каждой
вершине из
сопоставим метку — минимальное известное
расстояние от этой вершины до
.
Алгоритм работает пошагово — на каждом
шаге он «посещает» одну вершину и
пытается уменьшать метки. Работа
алгоритма завершается, когда все вершины
посещены.
Инициализация.
Метка самой вершины
полагается равной0,
метки остальных вершин — бесконечности.
Это отражает то, что расстояния от
до других вершин пока неизвестны. Все
вершины графа помечаются как непосещенные.
Шаг
алгоритма.
Если все вершины посещены, алгоритм
завершается. В противном случае из еще
не посещенных вершин выбирается вершина
,
имеющая минимальную метку. Рассматриваем
всевозможные маршруты, в которых
является предпоследним пунктом. Вершины,
соединенные с вершиной
ребрами, назовем соседями этой вершины.
Для каждого соседа рассмотрим новую
длину пути, равную сумме текущей метки
и длины ребра, соединяющего
с этим соседом. Если полученная длина
меньше метки соседа, заменим метку этой
длиной. Рассмотрев всех соседей, пометим
вершину
как посещенную и повторим шаг.
Пример. Рассмотрим работу алгоритма на примере графа, показанного на рисунке. Пусть требуется найти расстояния от 1-й вершины до всех остальных.

Рисунок 23.1
Кружками обозначены вершины, линиями — пути между ними (ребра графа). В кружках обозначены номера вершин, над ребрами обозначена их «цена» — длина пути. Рядом с каждой вершиной красным обозначена метка — длина кратчайшего пути в эту вершину из вершины 1.
Первый шаг. Рассмотрим шаг алгоритма Дейкстры для нашего примера. Минимальную метку имеет вершина 1. Ее соседями являются вершины 2, 3 и 6.

Рисунок 23.2
Первый по очереди сосед вершины 1 — вершина 2, потому что длина пути до нее минимальна. Длина пути в нее через вершину 1 равна кратчайшему расстоянию до вершины 1 + длина ребра, идущего из 1 в 2, то есть 0 + 7 = 7. Это меньше текущей метки вершины 2, поэтому новая метка 2-й вершины равна 7.

Рисунок 23.3
Аналогичную операцию проделываем с двумя другими соседями 1-й вершины — 3-й и 6-й.

Рисунок 23.4

Рисунок 23.5
Все соседи вершины 1 проверены. Текущее минимальное расстояние до вершины 1 считается окончательным и пересмотру не подлежит (то, что это действительно так, впервые доказал Дейкстра). Вычеркнем её из графа, чтобы отметить, что эта вершина посещена.

Рисунок 23.6
Второй шаг. Шаг алгоритма повторяется. Снова находим «ближайшую» из непосещенных вершин. Это вершина 2 с меткой 7.

Рисунок 23.7
Снова пытаемся уменьшить метки соседей выбранной вершины, пытаясь пройти в них через 2-ю. Соседями вершины 2 являются 1, 3, 4.
Первый (по порядку) сосед вершины 2 — вершина 1. Но она уже посещена, поэтому с 1-й вершиной ничего не делаем.
Следующий сосед вершины 2 — вершины 4 и 3. Если идти в неё через 2-ю, то длина такого пути будет = кратчайшее расстояние до 2 + расстояние между вершинами 2 и 4 = 7 + 15 = 22. Поскольку 22<∞, устанавливаем метку вершины 4 равной 22.

Рисунок 23.8
Ещё один сосед вершины 2 — вершина 3. Если идти в неё через 2, то длина такого пути будет = 7 + 10 = 17. Но текущая метка третьей вершины равна 9<17, поэтому метка не меняется.

Рисунок 23.9
Все соседи вершины 2 просмотрены, замораживаем расстояние до неё и помечаем ее как посещенную.

Рисунок 23.10
Третий шаг. Повторяем шаг алгоритма, выбрав вершину 3.
Дальнейшие шаги. Повторяем шаг алгоритма для оставшихся вершин (Это будут по порядку 6, 4 и 5).
Завершение выполнения алгоритма. Алгоритм заканчивает работу, когда вычеркнуты все вершины. Результат его работы: кратчайший путь от вершины 1 до 2-й составляет 7, до 3-й — 9, до 4-й — 20, до 5-й — 20, до 6-й — 11.
Для удобства можно заполнять таблицу:
|
Вершины |
|
1(*) |
2(*) |
3(*) |
6(*) |
4(*) |
|
1 |
0* |
|
|
|
|
|
|
2 |
∞ |
7* |
|
|
|
|
|
3 |
∞ |
9 |
9* |
|
|
|
|
4 |
∞ |
∞ |
22 |
20 |
20* |
|
|
5 |
∞ |
∞ |
∞ |
∞ |
20 |
20* |
|
6 |
∞ |
14 |
14 |
11* |
|
|
По строкам располагаем номера вершин. По столбцам – вершины, у которых на данном шаге минимальная метка. В ячейках таблицы располагаем метки вершин на каждом шаге алгоритма. Изменяются только те метки, для которых пересчитывается расстояние. У всех остальных вершин метки остаются прежние. Вершина, получившая минимальную метку (*), больше не рассматривается. Если в ячейках находятся одинаковые значения меток, выбирается любая из них.
Поскольку алгоритм Дейкстры всякий раз выбирает для обработки вершины с наименьшей оценкой кратчайшего пути, можно сказать, что он относится к жадным алгоритмам.
23.3 Алгоритмы поиска кратчайших путей между всеми парами вершин графа
23.3.1 Алгоритм Флойда
Формулировка задачи. Дан непустой взвешенный граф с произвольными весами ребер. Требуется найти кратчайшие длины путей между всеми парами вершин графа, если в графе нет циклов отрицательной длины или обнаружить наличие таких циклов.
Алгоритм
Инициализация структур данных.
Строится
матрица
размерности
,
элементы которой определяются по
правилу:
;
если
в графе существует ребро (дуга)
;
,
если нет ребра (дуги)
.
Основная часть алгоритма:
Выполнять
цикл, завершение которого наступает по
выполнению одного из двух условий: либо
количество шагов цикла равно
,
либо был обнаружен цикл отрицательной
длины. Шаги цикла нумеруются с нуля. Шаг
цикла будем обозначать переменной
.
Строится
матрица с индексом равным номеру шага,
обозначим его через
,
в которой элементы определяются через
элементы матрицы предыдущего шага по
следующим формулам:
,
где
. (*)
Если
для какого-то
,
то в графе существует цикл (контур)
отрицательной длины, проходящий через
вершину
.
По завершению работы данного алгоритма, элементы матрицы равны длинам кратчайших путей между соответствующими вершинами.
Поиск путей
Если
требует найти сами пути, то перед началом
работы алгоритма построим матрицу P с
начальными значениями элементов
.
Каждый раз, когда на шаге (1) значение
будет уменьшаться в соответствии с (*)
(т.е. когда
),
выполним присваивание
.
В конце работы алгоритма матрица P будет
определять кратчайшие пути между всеми
парами вершин: значение pij
будет равно номеру предпоследней вершины
в пути между
и
(либо
,
если путь не существует).
Примечаниe:
если граф - неориентированный, то все
матрицы
являются симметричными, поэтому
достаточно вычислять элементы, находящиеся
только выше (либо только ниже) главной
диагонали.
23.3.2 Алгоритм Данцига
Этот
алгоритм отличается от алгоритма Флойда
последовательностью выполнения действий.
Перенумеруем все вершины графа от 1 до
n целыми числами и обозначим через
длину пройденного пути из
в
где в качестве промежуточных использованы
первые m вершин графа. Матрица
длин
кратчайших путей имеет здесь размерность
.
1.
Каждая вычисленная матрица
содержит
на одну строку и столбец больше чем ее
предшественница. Элементы матрицы не
входящие в последнюю строку или столбец
вычисляются так же, как и в алгоритме
Флойда.
.
2.
Кратчайший путь из вершины
в
,
в котором допускаются первые
промежуточных
вершин, должен иметь в своей первой
части дугу из вершины
в некоторую вершину
,
a во второй – кратчайший путь из вершины
в
.
.
3.
Кратчайший путь из вершины i в m, в котором
допускается первых m промежуточных
вершин. Имеет своей первой частью
кратчайший путь из вершины
в некоторую промежуточную вершину
.
А во второй – кратчайшую дугу из
в
.
.
4. Диагональный элемент матрицы равен 0.
Алгоритм:
Перенумеровать
вершины графа, определить матрицу
размером
где
число вершин графа. Каждый элемент этой
матрицы есть длина кратчайшей дуги от
одной вершины до другой.
Для
каждого m принимающего значения 1,2,3…N
определить матрицу
по
формулам (2) – для строки
,
(3) – для столбца
,
(1) – для всех остальных элементов, кроме
диагонального
.
23.4 Транспортные сети и потоки
23.4.1 Основные определения транспортных сетей
Определение.
Транспортной
сетью
называется пара
,
где
– взвешенный орграф, удовлетворяющий
следующим условиям:
а) нет петель;
б) существует только одна вершина, не имеющая ни одного прообраза – это исток;
в) существует только одна вершина, не имеющая ни одного образа – это сток;
–функция
пропускных способностей дуг,
которая является положительной
вещественной функцией, определенной
на множестве дуг графа, т.е. каждой дуге
графа поставлено в соответствие
положительное число
,
называемое пропускной
способностью дуги
.
Определение.
Вершина, не
имеющая ни одного прообраза, называется
входом сети
или источником
и обычно обозначается
,
а вершина, не имеющая ни одного образа,
называетсявыходом
сети или стоком
и обозначается
.
В транспортной сети существует один
исток и один сток. Случаи, когда имеется
несколько источников или несколько
стоков, могут быть сведены к рассматриваемому
нами случаю введением обобщенных
(фиктивных) источника и стока.
Определение.
Потоком
в транспортной сети
называется неотрицательная вещественная
функция, определенная на множестве дуг,
удовлетворяющая условиям:
ограниченности: поток по любой дуге сети не превосходит пропускной способности этой дуги;
сохранения: суммарный поток, заходящий в любую вершину сети (кроме истока и стока) равен суммарному потоку, выходящему из этой вершины.
Определение. Дуга сети называется насыщенной, если поток по этой дуге равен пропускной способности этой дуги.
Определение. Поток по пути называется полным, если хотя бы одна дуга пути насыщена.
Определение. Как упоминалось выше, поток в сети – это функция, определенная на множестве дуг. Величиной потока называется сумма значений этой функции по всем выходным дугам сети (выходные дуги сети – это дуги, инцидентные стоку) .Понятия потока и величины потока в сети часто путают, однако между ними существует различие: поток – это функция, а величина потока – число.
Определение. Разрезом сети называется множество, которому принадлежит исток, и не принадлежит сток. Т.е. разрез – это минимальное (в смысле отношения включения) множество дуг, удаление которых “разрывает” все пути, соединяющие исток и сток.
Определение. Пропускной способностью разреза называется число, равное сумме пропускных способностей дуг этого разреза. Разрез называется минимальным, если имеет наименьшую пропускную способность.
Отыскание минимального разреза – одна из основных задач анализа транспортных сетей.
В силу конечности графа минимальный разрез может быть найден перебором всех разрезов, но этот путь, конечно, неприемлем для достаточно больших графов. Оказывается, что минимальный разрез можно отыскать при помощи максимального потока сети на основании теоремы Форда-Фалкерсона.
23.4.2 Теорема Форда-Фалкерсона. Алгоритм Форда-Фалкерсона
В любой транспортной сети величина любого максимального потока равна пропускной способности любого минимального разреза.
Известно конструктивное доказательство этой теоремы, на основании которого построен изложенный алгоритм.
Постановка задачи: найти максимальный поток в транспортной сети.


Рисунок 20.5