- •Конспект лекций по дисциплине “Дискретная математика”
- •Санкт Петербург Содержание.
- •Раздел I. Множества, функции, отношения. Лекция № 1. Множества и операции над ними.
- •1. Основные понятия теории множеств.
- •2. Операции над множествами и их свойства.
- •3. Векторы и прямые произведения.
- •Лекция № 2. Соответствия и функции.
- •Соответствия.
- •Отображения и функции.
- •Лекция № 3. Отношения и их свойства.
- •Основные понятия и определения.
- •Свойства отношений.
- •Лекция № 4. Основные виды отношений.
- •Отношения эквивалентности.
- •Отношения порядка.
- •Лекция № 4. Пересчёт.
- •Раздел II. Введение в общую алгебру. Лекция № 6. Элементы общей алгебры.
- •1. Свойства бинарных алгебраических операций.
- •2. Алгебраические структуры.
- •Гомоморфизм и изоморфизм.
- •Лекция № 7. Различные виды алгебраических структур.
- •Полугруппы.
- •Группы.
- •Поля и кольца.
- •Раздел III. Введение в логику. Лекция № 8. Элементы математической логики.
- •Булевы функции.
- •Лекция № 9. Логические функции.
- •Функции алгебры логики.
- •Примеры логических функций.
- •Суперпозиции и формулы.
- •Лекция № 10. Булевы алгебры.
- •Разложение функций по переменным. Совершенная дизъюнктивная нормальная форма.
- •Булева алгебра функций.
- •Эквивалентные преобразования.
- •Лекция № 11. Булевы алгебры и теория множеств.
- •Двойственность.
- •Булева алгебра и теория множеств.
- •Днф, интервалы и покрытия.
- •Лекция № 12. Полнота и замкнутость.
- •Функционально полные системы.
- •Алгебра Жегалкина и линейные функции.
- •Замкнутые классы. Монотонные функции.
- •Теоремы о функциональной полноте.
- •Лекция № 13. Язык логики предикатов.
- •Предикаты.
- •Кванторы.
- •Истинные формулы и эквивалентные соотношения.
- •Доказательства в логике предикатов.
- •Лекция № 14. Комбинаторика.
- •Правила суммы и произведения.
- •Размещения.
- •Перестановки.
- •Сочетания. Бином Ньютона.
- •Раздел IV. Теория графов. Лекция № 15. Графы: основные понятия и операции.
- •Графы, их вершины, рёбра и дуги. Изображение графов.
- •Матрица инцидентности и список рёбер. Матрица смежности графа.
- •Идентификация графов, заданных своими представлениями.
- •Лекция № 16. Маршруты, цепи и циклы.
- •Основные определения.
- •Связные компоненты графов.
- •Расстояния. Диаметр, радиус и центр графа. Протяжённости.
- •Эйлеровы графы.
- •Лекция № 17. Некоторые классы графов и их частей.
- •Деревья.
- •Ориентированные графы.
- •Графы с помеченными вершинами и рёбрами.
- •Лекция № 18. Теория алгоритмов Понятие алгоритма
- •1.2.1. Основные требования к алгоритмам
- •1.2.2. Машина Тьюринга
- •Универсальная машина Тьюринга
- •1.2.3. Тезис Тьюринга
- •1.3. Граф машина
- •1.3.1. Модель данных
- •1.3.2. Построение моделей алгоритмов в системе graph
- •2. Сложность алгоритмов
- •2.1.Временная и пространственная сложность алгоритма. Классы dtime и dspace
- •2.2. Классы сложности
- •2.2.1. Полиномиальность и эффективность
- •2.2.2. Алгоритмическая сводимость задач
- •3. Алгоритмы и их сложность
- •3.1. Представление абстрактных объектов (последовательностей)
- •3.1.1. Смежное представление последовательностей
- •3.1.2. Связанное представление последовательностей
- •Список вопросов для подготовки к экзамену по дисциплине "дискретная математика"
Теоремы о функциональной полноте.
Теперь перейдём к рассмотрению основного вопроса, поставленного в рамках данной лекции: каковы необходимые и достаточные условия функциональной полноты для произвольной системы функций ? Вначале было сказано, что система полна, если конъюнкция, дизъюнкция и отрицание являются суперпозициями функций из системы . Поэтому будем искать свойства функций, позволяющие выразить через них булевы операции. Сначала сформулируем две леммы, позволяющие вывести соответствующие теоремы.
Лемма 1 (о немонотонных функциях). Если функция немонотонна, то подстановкой констант из неё можно получить отрицание.
Практически данная лемма является утверждением, противоположным теореме, обратной к теореме 11.3. Смысл её заключается в том, что для функции существует такая подстановка константы, что функция оставшейся одной переменной является отрицанием.
Лемма 2 (о нелинейных функциях). Если функция нелинейна, то с помощью подстановки констант и использования отрицаний из неё можно получить дизъюнкцию или конъюнкцию.
Иначе говоря, существует представление дизъюнкции и конъюнкции в виде суперпозиции констант, отрицаний и нелинейной функции .
Замечание. При традиционных обозначениях переменных в выражениях вида , где переменные расположены в естественном порядке индексов, эти индексы играют двоякую роль: они именуют переменные и нумеруют их места в функции. Эти роли следует различать.
Две указанные леммы позволяют получить все булевы операции с помощью немонотонных функций, нелинейных функций и констант. Это ещё не полнота в точном смысле слова, так как константы с самого начала предполагались данными. Однако такое предположение часто бывает оправданным в различных приложениях (прежде всего в синтезе логических схем). Поэтому есть смысл ввести ослабленное определение полноты.
Определение. Система функций называется функционально полной в слабом смысле, если любая логическая функция может быть представлена формулой над системой , то есть является суперпозицией констант и функций из системы .
Очевидно, что из обычной полноты системы следует её слабая полнота.
Теорема 11.5 (первая теорема о функциональной полноте). Для того, чтобы система функций была функционально полной в слабом смысле, необходимо и достаточно, чтобы она содержала хот бы одну немонотонную функцию и хотя бы одну нелинейную функцию.
Доказательство:
1) Необходимость. Классы монотонных и линейных функций замкнуты и содержат 0 и 1. Поэтому если не содержит немонотонных или нелинейных функций, то их нельзя получить с помощью суперпозиций функций из системы и констант.
2) Достаточность. Пусть содержит немонотонную и нелинейную функцию. Тогда по лемме 1 подстановкой констант из монотонной функции получаем отрицание, а затем по лемме 2 из нелинейной функции с помощью отрицаний и констант получаем дизъюнкцию и конъюнкцию.
Пример 5.
а) Система функционально полна в слабом смысле, так как операция нелинейна (как и конъюнкция), а операция (сложение по ) немонотонна.
б) В функционально полной системе единственная функция – штрих Шеффера – нелинейна и немонотонна.
Для формулировки необходимых и достаточных условий “cильной” полноты (в отличие от слабой) нужно ввести ряд определений, описывающих ещё три замкнутых класса функций.
Определение. Функция называется сохраняющей ноль, если выполняется и сохраняющей единицу, если выполняется .
Оба данных класса функций являются замкнутыми, что проверяется подстановкой констант в суперпозиции. Равным образом замкнутый класс образуют самодвойственные функции (такие, что ).
Теорема 11.6 (вторая – основная – теорема о функциональной полноте). Для того чтобы система функций была функционально полной (в сильном смысле), необходимо и достаточно, чтобы она содержала: 1) нелинейную функцию, 2) немонотонную функцию, 3) функцию, не являющуюся самодвойственной, 4) функцию, не сохраняющую ноль, 5) функцию, не сохраняющую единицу.