- •Предисловие
- •Тема 1. Элементы теории множеств и комбинаторики
- •§1. Понятие множества. Операции над множествами
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •§2. Отображение множеств
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •§3. Мощность множества
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •§4. Основы комбинаторики
- •Пример решения задач
- •Задачи для самостоятельного решения
- •§5. Отношение на множестве
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •Тема 2. Теория графов
- •§1. Основные понятия теории графов: графы, ориентированные и неориентированные графы, пути, маршруты, циклы
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •§2. Понятие связности, смежности и инцидентности
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •§3. Задача о кратчайшем пути
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •§4 Задача Эйлера. Плоские, планарные и не планарные графы. Формула Эйлера
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •§5. Раскраска графа. Хроматическое число и характеристический индекс графа
- •Алгоритм решения задачи о раскраске вершин графа
- •Алгоритм решения задачи о раскраске ребер графа
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •§ 6. Представление графов в памяти компьютера. Код Харари
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •§8. Обход дерева. Понятие списка. Деревья и списки
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •Тема 3. Булевы функции
- •§1. Совершенная дизъюнктивная нормальная форма (сднф)
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •§ 2. Совершенная конъюнктивная нормальная форма (скнф)
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •§3. Многочлены Жегалкина
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •§4. Булевы функции и их свойства
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •§5. Функциональная полнота. Теорема Поста
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •Список рекомендуемой литературы Основная
- •Дополнительная
§1. Совершенная дизъюнктивная нормальная форма (сднф)
Пусть рассматривается булева функция от n переменных x1, x2,…, xn. Выражение (отрицание на любых местах) называют элементарной конъюнкцией (ЭК).
Дизъюнкция нескольких ЭК называется дизъюнктивной нормальной формой (ДНФ).
ЭК называется правильной, если ни одна переменная в ней не повторяется, и полной, если в ней участвуют все n переменных.
Если в ДНФ все ЭК правильны и полны, то ДНФ называют совершенной (СДНФ).
Справедлива следующая теорема: всякую булеву функцию можно представить в виде СДНФ и притом единственным образом.
Алгоритм преобразования формулы в СДНФ:
Добьемся, чтобы в формуле остались только дизъюнкция, конъюнкция и отрицание над переменной:
.
Раскроем скобки и получим ДНФ.
Сделаем все ЭК правильными (в последнем случае ЭК пропадает).
Сделаем все ЭК полными (если ЭК не содержит переменную х, то умножим ее на 1=х).
Вернемся к шагу 2.
Через конечное число шагов получим СДНФ. В ней могут оказаться несколько одинаковых ЭК. Из таких ЭК составляем одну, согласно тождеству
Для того, чтобы получить СДНФ с помощью таблицы истинности, необходимо:
Записать таблицу истинности.
В последнем столбце таблицы истинности выбрать 1.
В исходном наборе, соответствующем 1 последнего столбца таблицы, запишем 0 отрицанием переменной, а 1 самой переменной.
Записываем СДНФ булевой функции.
Примеры решения задач
Задача 1. Доказать, что булева функция (xy)((yz)((z)) является тождественно истиной.
Решение.
x |
y |
z |
xy |
yz |
(yz)((xy) |
(xy)((yz)((z)) | ||
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
Так как функция принимает значение 1 на всех наборах переменных, то по определению она является тождественно-истинной.
Задача 2. Преобразовать в СДНФ булеву функцию, заданную формулой (ху)(z+x).
Решение. Действуем по стандартному алгоритму:
Добьемся, чтобы в формуле остались только дизъюнкции, конъюнкции и отрицания аргументов: (ху)(z+x)=.
Добьемся, чтобы конъюнкции выполнялись раньше дизъюнкций (раскроем скобки): =.
Делаем все элементарные конъюнкции правильными: .
Делаем все элементарные конъюнкции полными: =
Ликвидируем одинаковые элементарные конъюнкции:
Задача 3. Рассмотрим получение СДНФ с помощью таблицы истинности на предыдущем примере
х |
у |
z |
xy |
zx |
(xy)( zx) |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
Решение. В последней колонки таблицы выбираем функции со значение 1.
По исходным наборам, с учетом алгоритма записываем СДНФ: