- •Часть 1
- •Содержание
- •Введение
- •1. Введение в теорию множеств
- •Операции над множествами
- •Диаграммы Эйлера – Венна
- •Понятие алгебры
- •Упражнения
- •2. Отношения
- •Операции над отношениями
- •Свойства бинарных отношений
- •Задачи и упражнения
- •3. Нечеткие множества
- •Операции над нечеткими множествами.
- •Задачи и упражнения
- •Элементарные функции k-значных логик и соотношение между ними
- •Разложение функций k-значных логик в первую и вторую формы
- •Замкнутые классы и полнота в k-значных логиках
- •Задачи и упражнения
- •5. Логика высказываний
- •Тождества в алгебре высказываний
- •Булевы формулы
- •Интерпретации
- •6. Булевы функции
- •Способы задания булевой функции
- •Равносильные преобразования формул
- •Нормальные формулы Совершенные нормальные формулы
- •Разложение Шеннона Декомпозиция булевых функций
- •Представление булевой функции картами Карно (Вейча)
- •Минимизация булевых функций
- •Классы булевых функций
- •7. Комбинаторика Введение
- •8. Кодирование
- •Алфавитное кодирование
- •Кодирование с минимальной избыточностью
- •Помехоустойчивое кодирование
- •Сжатие данных
- •Шифрование
- •Криптография
- •Цифровая подпись
- •9. Графы Определение графа
- •Задание графов
- •Связность графа
- •Эйлеровы и гамильтоновы графы
- •Деревья
- •Понятие метрики графа
- •Цикломатическое число, раскраска
- •Изоморфизм графов
- •Орграфы
- •Сети Петри
- •Контрольная работа №1 (варианты заданий)
- •Контрольная работа № 2.
- •Контрольная работа №3
- •Список литературы
Эйлеровы и гамильтоновы графы
Связный граф G=(X, U) эйлеровым, если существует замкнутая цепь (цикл), проходящая через каждое ребро графа один раз.
Рис.18. Неэйлеров граф Рис.19. Полуэйлеров граф Рис.20. Эйлеров граф
Граф называется полуэйлеровым, если существует незамкнутая цепь, проходящая через каждое ребро один раз.
Рассмотрим условие существования эйлерова цикла.
Конечный граф G является эйлеровым, если он связан и все его локальные степени четные (рис.20). Заметим, что граф является полуэйлеровым, если в нем не более двух вершин имеют нечетные локальные степени.
Идея алгоритма Флери построения эйлеровой цепи в эйлеровом графе. Пусть G – эйлеров граф. Тогда необходимо выйти из произвольной вершины и проходить по ребрам G соблюдая правила:
Стирать ребра по мере их прохождения и стирать изолированные вершины.
По мосту можно проходить только тогда, когда нет других возможностей.
При программировании использовать 2 стека.
Цикл, проходящий по всем вершинам графа G один раз, называется гамильтоновым, а граф G называется гамильтоновым графом. Для гамильтонова графа не существует критерия существования гамильтонова цикла, есть только теоремы, дающие достаточные условия его существования или отсутствия.
Теорема 1. Если в графе с n (n 3) вершин для любой пары несмежных вершин xi, xj (xi)+ (xj) n, то граф имеет гамильтонов цикл.
Теорема 2. В графе без гамильтонова цикла длина его наибольших простых цепей удовлетворяет неравенству ℓ ≥ (xn1) + (xn2), где (xn1) и (xn2) – две наименьшие локальные степени графа.
Рисунок 21 Рисунок 22
Если в графе G существует висячая вершина, то гамильтонов цикл отсутствует. Если граф G полный, то он содержит гамильтонов цикл.
Деревья
Связный граф без циклов называется деревом и обозначается Т = (Х, U), | X | = n , | T | = n-1. Начальную вершину называют корнем, из которого выходят ребра, называемые ветвями дерева. Любые две вершины дерева связаны единственной цепью. В любом связном графе G можно выделить некоторое дерево Т.
Дерево, у которого число вершин равно числу вершин графа из которого выделено дерево, а ребро является подмножеством этого графа, называется покрывающим деревом.
Для одного и того же связного графа можно выделить некоторое множество покрывающих его деревьев.
Теорема 3. Число t покрывающих деревьев в полном графе Kn составляет t=nn-2. Множество деревьев называется лесом.
Задачи выделения эйлеровых и гамильтоновых циклов, а также покрывающих деревьев, связаны с задачами о лабиринте, коммивояжере, с построением деревьев минимальной точности. Задача о лабиринте в терминах теории графов формулируется как задача отыскания в связном графе G=(X, U), маршрута с наименьшим числом ребер, который начинается в заданной вершине хiХ и приводит в искомую вершину хjХ.
Метод Тремо
От вершины хi необходимо перейти ко всем вершинам, находящимся на расстоянии 1 дин. Каждое ребро ui = (хi, xℓ) помечается один раз, когда оно смежно с вершинами хi, xℓ в вершине хi это ребро помечается как “открытое”. Если окажется, что нет ребер инцидентных xℓ кроме ui, то, вернувшись в хi ребро ui помечается как “закрытое”. Если некоторое другое ребро u’i = (хi, xℓ) также ведет из хi в xℓ оно также помечается как закрытое.
Для попадания в вершины, находящиеся на расстоянии 2, берется открытое ребро u = (хi, xℓ) и снова помечается. В xℓ открытые ребра проходятся и помечаются как закрытые, если они ведут к пройденным вершинам и так со всеми открытыми ребрами. Если искомая вершина расположена на расстоянии n, то при ее достижении все открытые ребра будут помечены n раз.
Рисунок 7.23
Задача 2. Пусть необходимо проложить сеть проводов между терминалами при условии, что количество затраченного провода должно быть минимальным т.е. построить граф типа дерево.
Задача состоит в нахождении одного из nn-2 деревьев.
Пусть G=(X, U) связной граф, и каждому ребру uiU ставится в соответствие некоторое неотрицательное число νi, называемое мерой. Необходимо найти покрывающее дерево Т, для которого сумма мер, взятая по всем ребрам минимальна.
Метод Краскала
В связном графе G=(X, U), | X | = n, определяется ребро с наименьшей мерой.
Строится по индукции последовательность ребер u2, u3,…, un-1, причем на каждом шаге выбирается ребро с наименьшей мерой, не совпадающее с выбранными и не образующее циклов с предыдущими ребрами ui.Полученный подграф Т графа G является искомым деревом.
(х2х6)=1 (х6х3)=2 (х3х5)=1 (х3х1)=2 (х2х4)=1