- •Глава 16. Специальные циклы и метрика графов 345
- •Глава 17. Графовые инварианты 404
- •Введение
- •Цели и задачи преподавания дисциплины «дискретная математика»
- •Модуль 1. Основы Теории множеств (2 кредита)
- •Комплексная цель и задачи изучения модуля
- •Глава 1. Исчисление множеств
- •1.1. Понятие множества
- •1.2. Способы задания множеств
- •1.3. Подмножество
- •2. Пустое множество не имеет собственных и истинных подмножеств.
- •3. Одноэлементное множество имеет два подмножества - сaмo себя и , т.Е. Не имеет собственных подмножеств.
- •Множество – это многое, мыслимое как единое.
- •Глава 2. Операции над множествами
- •2.1. Объединение множеств
- •2.2. Пересечение множеств
- •2.3. Разность множеств
- •2.4. Дополнение множества
- •2.5. Тождества алгебры множеств
- •2.6. Доказательства тождеств с множествами
- •Глава 3. Упорядоченные множества
- •3.1. Кортеж (Упорядоченное множество)
- •3.2. Декартово произведение
- •3.3. Операция проектирования множеств
- •3.4. График
- •Декартово произведение множеств позволяет перейти к графическому представлению упорядоченных множеств.
- •Глава 4. Отношения
- •4.1. Основные понятия отношений
- •4.2. Основные свойства отношений
- •4.3. Операции над отношениями
- •4.4. Основные свойства специальных отношений
- •4.5. Разбиение множеств
- •4.6. Отношение порядка
- •Использование отношений позволяет строить модели взаимосвязей между любыми обьектами в природе.
- •5. Соответствия
- •5.1. Определение соответствия
- •5.2. Операции над соответствиями
- •5.3. Понятия образа и прообраза при соответствии
- •5.4. Доказательства тождеств с соответствиями
- •5.5. Основные свойства соответствий
- •5.6. Функция
- •Глава 6. Упорядоченные бесконечные множества
- •6.1. Основные сведения об упорядоченных бесконечных множествах
- •6.2. Проблема континуума
- •Глава 7. Основные понятия теории мультимножеств
- •7.1. Понятие мультимножества
- •7.2. Операции над мультимножествами
- •Возможность многократного вхождения элементов в мультимножество создает новое качество и позволяет расширить класс описываемых, анализируемых и синтезируемых математических объектов.
- •8. Нечеткие множества
- •8.1. Нечеткие высказывания
- •8.2. Операции над нечеткими множествами
- •8.3. Нечеткие отношения и соответствия
- •Тестовые задания к модулю 1
- •24. Множество называется графиком, если каждый его элемент ...
- •25. Соответствие может быть задано … способом.
- •Критерии оценки
- •Нечеткие и приближенные высказывания, множества, соответствия и отношения позволяют формально задавать расплывчатую информацию в виде, удобном для обработки на эвм.
- •Глоссарий к модулю 1
- •Глава 1.
- •Глава 2.
- •Глава 3.
- •Глава 4.
- •Глава 5.
- •Глава 6.
- •Глава 7.
- •Глава 8.
- •Галилей Модуль 2. Основы теории алгоритмов (1,5 кредита) Комплексная цель и задачи изучения модуля
- •Глава 9. Введение в теорию алгоритмов
- •9.1. Понятие алгоритма
- •9.2. Основные свойства алгоритмов
- •9.3. Классификация алгоритмов
- •Контрольные вопросы
- •Задания для самостоятельной работы
- •10.1. Преобразование слов в произвольных абстрактных алфавитах
- •10.2. Числовые функции
- •10.3. Построение алгоритмов по принципу «разделяй и властвуй»
- •10.4. Представление алгоритма в виде детерминированного устройства
- •10.5. Универсальные схемы алгоритмов
- •10.5. “Жадные” алгоритмы
- •10.6. Нечеткие (расплывчатые) алгоритмы
- •Контрольные вопросы
- •Задания для самостоятельной работы
- •11.1. Анализ алгоритмов
- •11.2. Сложность алгоритмов
- •Контрольные вопросы
- •Задания для самостоятельной работы
- •Тестовые задания к модулю 2
- •Критерии оценки
- •Модуль 3. Алгебра логики (1,5 кредита) Комплексная цель и задачи изучения модуля
- •Глава 12. Элементы алгебры логики
- •12.1. Логические функции
- •12.2. Основные логические тождества и законы
- •12.3. Булевы функции одной и двух переменных
- •Контрольные вопросы
- •Задания для самостоятельной работы
- •13.1. Дизъюнктивная и конъюнктивная нормальные формы
- •13.2. Способы перехода от нормальных к совершенным нормальным формам
- •2. Графический способ.
- •13.4. Функциональная полнота бф
- •13.3. Алгебра Жегалкина
- •Контрольные вопросы
- •Задания для самостоятельной работы
- •14.1. Реализация булевых функций
- •14.2. Минимизация булевых функций
- •14.3. Карты Карно
- •14.4. Метод Квайна - Мак-Класски
- •14.5. Переход от бф к простейшим комбинационным схемам
- •Контрольные вопросы
- •Задания для самостоятельной работы
- •Критерии оценки
- •Глоссарий к модулю 3
- •Модуль 4. Основы Теории графОв (2 кредита) Комплексная цель и задачи изучения модуля
- •Глава 15. Введение в теорию графов
- •15.1. Способы задания графов и виды графов
- •15.1.1. Способы задания графов
- •15.1.2. Виды графов
- •15.1.3. Нечеткие неориентированные графы
- •Примеры решения задач
- •Вопросы для самоконтроля
- •Задания для самостоятельной работы
- •15.2. Маршруты, цепи, циклы
- •Примеры решения задач
- •Вопросы для самоконтроля
- •Задания для самостоятельной работы
- •При моделировании систем модели и алгоритмы нахождения маршрутов, цепей, циклов, разрезов, связности графов позволяют строить эффективные алгоритмы преобразования графов.
- •15.3. Нахождение кратчайших маршрутов (цепей)
- •15.3.1. Алгоритм Форда
- •15.3.2. Алгоритм Дейкстры
- •Примеры решения задач
- •Вопросы для самоконтроля
- •Задания для самостоятельной работы
- •Алгоритмы Форда и Дейкстры являются эффективным способом определения кратчайшей по стоимости цепи между двумя вершинами графа.
- •Глава 16. Специальные циклы и метрика графов
- •16.1. Эйлеровы и гамильтоновы цепи и циклы
- •16.1.1. Связь между эйлеровыми и гамильтоновыми графами
- •Примеры решения задач
- •Вопросы для самоконтроля
- •Задания для самостоятельной работы
- •16.2. Алгоритмы построения гамильтонова цикла
- •16.2.1. Алгоритм Робертса ─ Флореса
- •16.2.2. Алгебраический метод
- •Примеры решения задач
- •Вопросы для самоконтроля
- •Задания для самостоятельной работы
- •16.3. Задача о коммивояжере и алгоритмы ее решения
- •16.3.1. Алгоритм Хелда и Карпа
- •16.3.2. Геометрический метод решения
- •Примеры решения задач
- •Вопросы для самоконтроля
- •Задания для самостоятельной работы
- •16.4. Расстояния на графах
- •Примеры решения задач
- •Вопросы для самоконтроля
- •Задания для самостоятельной работы
- •16.5. Деревья
- •Примеры решения задач
- •Вопросы для самоконтроля
- •Задания для самостоятельной работы
- •Глава 17. Графовые инварианты
- •17.1. Цикломатическое и хроматическое числа графа
- •Примеры решения задач
- •Вопросы для самоконтроля
- •Задания для самостоятельной работы
- •17.2. Числа внутренней и внешней устойчивости графа
- •Примеры решения задач
- •Вопросы для самоконтроля
- •Задания для самостоятельной работы
- •Числа внутренней и внешней устойчивости относятся к инвариантам графа. Они позволяют определить специальные группы вершин в графах.
- •17.3. Планарность графов
- •17.3.1. Плоские и планарные графы
- •17.3.2. Эвристики для определения планарности
- •17.3.3. Минимизация пересечений ребер графов
- •Вопросы для самоконтроля
- •Задания для самостоятельной работы
- •17.4. Ориентированные графы
- •17.4.1. Способы задания
- •17.4.2. Решение стандартных графовых задач с использованием орграфов
- •17.4.3. Выделение сильносвязных компонент
- •17.4.4. Нечеткие ориентированные графы
- •Примеры решения задач
- •Вопросы
- •Задания для самостоятельной работы
- •175 Гиперграфы
- •Примеры решения задач
- •Вопросы для самоконтроля
- •Задания для самостоятельной работы
- •Тестовые задания к модулю 4
- •Критерии оценки
- •Глоссарий к модулю 4 Глоссарий к главе 1
- •Глоссарий к главе 2
- •Глоссарий к главе 3
- •Библиографический комментарий
- •Литература
- •Заключение
- •Приложение 1
- •Учебное издание Гладков Леонид Анатольевич, Курейчик Владимир Викторович, Курейчик Виктор Михайлович
Примеры решения задач
Пример 1. Пусть задан граф G = (X, U), изображенный на рис. 16.41,а. Привести примеры произвольного и покрывающего деревьев для заданного графа.
Ответ: Пример покрывающего дерева приведен на рис. 16.41,б. На 16.41,в,г приведены примеры выделения произвольных деревьев из исходного графа.
а исходный граф б покрывающее дерево
в произвольное дерево г произвольное дерево
Рис. 16.41. Граф G и его деревья: а – исходный граф; б – покрывающее дерево; в – произвольное дерево; г – произвольное дерево.
Пример 2. Записать все покрывающие деревья для полного графа на три вершины, заданного на рис. 16.42,а.
Решение: согласно теореме Кэли число покрывающих деревьев полного графа равно: t = n n - 2.
Таким образом, подставив в формулу число вершин заданного графа, получим результат t = 3 3 - 2 =31 = 3.
Из полученного результата следует, что для данного графа можно построить три покрывающих дерева как это показано на рис. 16.42,б.
а б
Рис. 16.42. Граф (а) и множество его покрывающих деревьев(б)
Пример 3. Пусть задан граф G = (X, U), изображенный на рис. 16.43,а. Построить кратчайшее покрывающее дерево (КПД), используя алгоритм Краскала.
Рис. 16.43. а Граф G
Решение: запишем треугольную матрицу смежности R заданного графа.
|
|
1 |
2 |
3 |
4 |
5 |
|
R = |
1 |
0 |
4 |
0 |
6 |
5 |
. |
2 |
|
0 |
8 |
4 |
2 |
||
3 |
|
|
0 |
9 |
3 |
||
4 |
|
|
|
0 |
7 |
||
5 |
|
|
|
|
0 |
1.1. Выбираем по матрице смежности минимальный элемент. Это ребро u25. Заносим его в массив M = {u25}.
1.2. Выбранное ребро единственное, поэтому переходим к пункту 3.
1.3. |M| n - 1, переходим к пункту 1.
2.1. Выбираем ребро u35, заносим его в массив M = {u25, u35}.
2.2. Цикл не образуется, поскольку в массиве всего два ребра.
2.3. M n - 1, переход к пункту 1.
3.1. Выбираем ребро u12, заносим его в список M = {u25, u35, u12}.
3.2. Проверяем выбранные ребра. Цикл не образуется, поэтому переходим к пункту 3.
3.3. |M| n - 1, переходим к пункту 1.
4.1. Выбираем ребро u24, заносим его в список M = {u25, u35, u12, u24}.
4.2. Проверяем выбранные ребра. Цикл не образуется, поэтому переходим к пункту 3.
4.3. Мощность M = 4. Так как 4 = 5 – 1, алгоритм закончен. Кратчайшее покрывающее дерево (КПД) построено (рис. 16.43,б). Его суммарный вес равен КПД = 2 + 3 + 4 + 4 = 13.
б
Рис. 16.43. (б) Кратчайшее покрывающее дерево для графа G (рис. 6.43 а)
Пример 4. Построить КПД для графа G, изображенного на рис. 16.44, используя алгоритм Прима.
Рис. 16.44. Исходный граф
Решение
1.1. Выбираем произвольную вершину. Пусть это будет вершина x1. Составляем список:
1.2. Из списка L1 выбираем ребро (1, 2) и включаем его в поддерево T’ =
={(1, 2)}.
1.3. Так как цикл не образуется, переходим к пункту 4.
1.4. Как видно X’ X, следовательно, переходим к пункту 5.
1.5. Добавляем в список L1 ребра, инцидентные вершине x2 и после переупорядочивания списка L1 получаем новый список L2.
.
2.2. Выбираем из списка L2 ребро (2, 3) и включаем его в поддерево T’ = {(1, 2); (2, 3)}.
2.3. Цикл не образуется, переход к пункту 4.
2.4. X’ X, переходим к пункту 5.
2.5. Добавляем в список L ребра, инцидентные вершине x3, и переупорядочиваем список. Переходим к пункту 2.
.
3.2. Из списка L3 выбираем ребро (3, 4) и заносим его в поддерево T’ = {(1, 2); (2, 3); (3, 4)}.
3.3. Цикл не образуется, переходим к пункту 4.
3.4. X’ X, переходим к пункту 5.
3.5. Добавляем в список L ребра, инцидентные вершине x4, и переупорядочиваем список. Ребро (1, 4) исключено из списка L4, так как оно образует цикл с уже выбранными ребрами. Переходим к пункту 2.
.
4.2. Из списка L4 выбираем ребро (4, 5) и включаем его в поддерево T’ = {(1, 2); (2, 3); (3, 4); (4, 5)}.
4.3. Цикл не образуется, переходим к пункту 4.
4.4. X’ X, переходим к пункту 5.
4.5. Добавляем в список L ребра, инцидентные вершине x5, и переупорядочиваем список. Ребро (2, 5) исключено из списка L5, т.к. оно образует цикл с уже выбранными ранее ребрами. Переходим к пункту 2.
.
5.2. Из списка L5 выбираем ребро (3, 6) и включаем его в поддерево T’ = {(1, 2); (2, 3); (3, 4); (4, 5); (3, 6)}.
5.3. Цикл не образуется, переход к пункту 4.
5.4. X’ = X, переход к пункту 6.
5.6. Построено КПД (рис. 16.45): T’ = {(1, 2); (2, 3); (3, 4); (4, 5); (3, 6)} c суммарным весом равным КПД = 2 + 5 + 1 + 3 + 4 = 15.
Работа алгоритма закончена.
Рис. 16.45. Кратчайшее покрывающее дерево
Пример 5. Для графа Gr, заданного на рис. 16.46, построить кратчайшее покрывающее дерево.
Рис. 16.46. Задача построения дерева Штейнера
Решение: подсчитаем разность координат по обеим осям:
ось s: 10 1 = 9,
ось t: 9 2 = 7.
Перепад координат по оси t меньше, следовательно, проводим перпендикуляр к оси t.
Теперь определим точку, через которую мы проведем ось дерева. Поскольку число вершин слева и справа от предполагаемой оси равно, проводим перпендикуляр, к примеру, через точку с координатой t = 6. Таким образом, мы провели ось дерева Штейнера.
И теперь, соединив с полученной осью все вершины графа, не находящиеся на оси, мы получим в итоге дерево Штейнера (рис. 16.47). Суммарная длина дерева Штейнера находится путём простого сложения длин отрезков составляющих дерево:
L = 1 + 2 + 1 + 2 + 4 + 3 + 3 + 9 = 25.
Рис. 16.47. Дерево Штейнера
