- •1. Основы математической логики
- •1.1. Понятие составного высказывания
- •1.2. Логические операции над высказываниями
- •1.3. Логические отношения
- •1.4. Варианты импликации
- •1.5. Основные законы, определяющие свойства логических операций
- •1.6. Понятие булевой функции
- •1.7. Основные свойства элементарных булевых функций
- •1.8. Дизъюнктивные и конъюнктивные нормальные формы алгебры логики
- •Алгоритм построения
- •1.9. Совершенная дизъюнктивная и совершенная конъюнктивная нормальные формы
- •1.10. Многочлены Жегалкина
- •2. Множества и отображения
- •2.1. Понятие множества
- •2.2. Способы задания множеств
- •2.3. Подмножества
- •2.4 Операции над множествами
- •2.5. Соотношение между множествами и составными высказываниями
- •2.6. Соотношение между высказываниями и соответствующими им множествами истинности
- •2.7 Абстрактные законы операций над множествами
- •2.8. Кортежи и декартовое произведение множеств
- •2.9. Бинарные отношения
- •2.10. Отображение множеств
- •2.11. Функции
- •3. Логика предикатов или логика первого порядка
- •3.1. Предикаты
- •3.2. Применение предикатов в алгебре
- •3.3. Булева алгебра предикатов
- •3.4. Кванторы
- •3.5. Формулы логики предикатов
- •3.6. Равносильные формулы логики предикатов
- •3.7. Приведённые и нормальные формы в логике предикатов
- •3.8. Исчисление предикатов
- •4. Элементы теории алгоритмов
- •4.1. Вычислимые функции и алгоритмы
- •4.2. Свойства алгоритмов
- •4.3. Понятия разрешимого предиката, разрешимого множества, перечислимого множества
- •4.4. Пример алгоритма
- •4.5. Интуитивное понятие алгоритма
- •4.6.Теория рекурсивных функций. Простейшие функции
- •4.7. Операторы
- •4.8. Примитивно рекурсивные функции
- •4.9. Частично рекурсивные функции
- •4.10. Примитивно-рекурсивные предикаты
- •4.11. Нормальный алгоритм Маркова: основные понятия
- •4.12. Проблема слов в ассоциативном исчислении
- •4.13. Алгоритм в некотором алфавите а
- •4.14. Понятие нормального алгоритма
- •5. Примеры решения типовых задач. Задания для самостоятельного решения
- •5.1. Булевы функции. Таблицы истинности
- •Задания для самостоятельного решения
- •5.2. Равносильность булевых функций
- •Задания для самостоятельного решения
- •5.3. Преобразование булевых функций
- •Задания для самостоятельного решения
- •5.4. Функциональная полнота
- •Задания для самостоятельного решения
- •5.5. Булева алгебра. Нормальные формы
- •Задания для самостоятельного решения
- •5.6. Минимальные формы
- •Задания для самостоятельного решения
- •5.7. Алгебра Жегалкина
- •Задания для самостоятельного решения
- •5.8. Алгебра высказываний
- •Задания для самостоятельного решения
- •5.9. Предикаты
- •Задания для самостоятельного решения
- •5.10. Исчисление высказываний
- •Задания для самостоятельного решения
- •Список рекомендуемой литературы
1.10. Многочлены Жегалкина
Согласно сформулированным утверждениям, можно говорить, что система булевых функций полна. Тогда любую булеву функцию можно представить в виде многочлена от своих переменных и такой многочлен называется многочленом Жегалкина.
Многочленом Жегалкина называется многочлен, являющийся суммой константы и различных одночленов, в которые каждая из переменных входит не выше, чем в первой степени.
Многочлен
Жегалкина константы равен самой же
константе; многочлен Жегалкина
булевой функции одной переменной
;
многочлен
Жегалкина булевой функции двух переменных
многочлен Жегалкина булевой функции трех переменных
и т.
д. Коэффициенты
и свободный член
принимают значения 0 или 1, а число
слагаемых в формуле равно 2п,
где
п
—
число переменных. Знак ⊕
— сумма Жегалкина или сумма по модулю
два.
Теорема 3 (Жегалкина). Каждая булева функция может быть представлена в виде многочлена Жегалкина и притом единственным образом, с точностью до порядка слагаемых.
Сформулируем алгоритм построения многочлена Жегалкина.
Выше
было указано, что любую функцию, отличную
от константы 0, можно представить в виде
СДНФ. Если сравним таблицы истинности
дизъюнкции и суммы по модулю два, видим,
что они отличаются только последней
строкой, т. е. на наборе 11. Так как в СДНФ
на каждом наборе только одна конъюнкция
равна 1, то все дизъюнкции можно заменить
суммами по модулю два. Кроме того,
известно, что
.
На этом и основан первый алгоритм
построения многочлена Жегалкина:
1. Находим множество тех двоичных наборов, на которых функция принимает значение 1.
2. Составляем СДНФ.
3. В СДНФ каждый знак дизъюнкции меняем на знак суммы Жегалкина.
4.
Упрощаем, если можно, полученное
выражение, используя тождество
.
5. В
полученной формуле каждое отрицание
заменяем
на
.
6. Раскрываем скобки в полученной формуле, содержащей только функции ∧ и ⊕ и константу 1.
7.
Приводим подобные члены, используя
тождество
.
Используя
метод неопределенных коэффициентов,
получаем второй
алгоритм
определения многочлена Жегалкина:
составляем
систему линейных уравнений относительно
2п
неизвестных
коэффициентов, содержащую 2п
уравнений,
решением которой являются коэффициенты
многочлена Жегалкина.
Многочлен Жегалкина называется нелинейным, если он содержит конъюнкции переменных, а если он не содержит конъюнкции переменных, то он называется линейным.
Функция
называется
линейной, если ее многочлен Жегалкина
имеет вид
,
и нелинейной в противном случае.
Из определения многочлена Жегалкина следует, что для любой булевой функции коэффициенты при переменных и свободный член вычисляются по формулам:
На этом основан алгоритм определения линейности (или нелинейности) булевой функции.
1. По
таблицам истинности булевой функции
и
выше указанным формулам находим
коэффициенты:
2.
Выписываем многочлен
и проверяем, задаёт ли он эту функцию.
Для этого строим таблицу истинности
многочлена
и сравниваем её с таблицей истинности
функции
.
Если таблицы истинности совпадают, то функция линейная и – её многочлен Жегалкина. В противном случае функция нелинейна.
