- •Логические функции
- •Логические функции одной переменной
- •Логические функции от двух переменных
- •Булева алгебра
- •Разложение функций по переменным СДНФ
- •Булева алгебра функций и эквивалентные преобразования в ней
- •Основные свойства булевых операций
- •Упрощение формул
- •Приведение к ДНФ (в том числе СДНФ)
- •Приведение к конъюнктивной нормальной форме (КНФ)
- •Нахождение минимальной ДНФ методом Квайна
- •Полнота и замкнутость
- •Функционально полные системы (ф.п.с.)
- •Двойственность
- •Алгебра Жегалкина и линейные функции
- •Замкнутые классы. Монотонные функции
- •Две теоремы о функциональной полноте
- •Предметный указатель
Следствие. Класс монотонных функций является замыканием системы функций {&, , 0, 1}. Это утверждение вытекает из того, что всякая булева формула без отрицаний является суперпозицией дизъюнкций и конъюнкций.
Две теоремы о функциональной полноте
Теперь можно перейти к основной проблеме этого параграфа: каковы необходимое и достаточное условия функциональной полноты для произвольной системы функции Σ? Как отмечалось в начале параграфа, система Σ полна, если дизъюнкция, конъюнкция и отрицание являются суперпозициями функций из Σ. Поэтому будем искать свойства функций, позволяющих выразить через них булевы операции.
Лемма 1 (о немонотонных функциях). Если функция f(x1 . . . xn) немонотонна, то подстановкой констант из нее можно получить отрицание. Точнее: существует такая подстановка n − 1 констант, что функция оставшейся одной переменной является отрицанием.
Пример.
Выразить отрицание через данную функцию
f(x1, x2, x3) = x1x2 + x2x3.
Положим x2 = 1, x3 = 0, тогда x1 = f(x1, 1, 0).
Лемма 2 (о нелинейных функциях). Если функция f(x1 . . . xn) нелинейна, то с помощью подстановки констант и использования отрицания из нее можно получить дизъюнкцию конъюнкцию. Точнее. Существует представление дизъюнкции и конъюнкции в виде суперпозиции констант, отрицаний и функций f.
Доказательство.
Пусть f нелинейна. Тогда ее полином Жегалкина содержит конъюнкции переменных. Выберем самую короткую из них K = xi1 , xi2 , . . . , xik. Положим xi3 = xi4 = xik = 1, а для всех xj , не входящих в
•Назад •Первая •Предыдущая •Следующая •Последняя •Перейти •Предметный указатель
K, xj = 0. Подстановка этих констант в полином обратит K в xi1 xi2 , а остальные конъюнкции в 0, и f примет вид xi1 xi2 αxi1 βxi2 γ, где α, β, γ — коэффициенты = 0 или 1 и зависящие от конкретной функции f.
Пример.
Выразить дизъюнкцию и конъюнкцию через данную функцию
f(x1, x2, x3, x4) = x1x3x4 x1x2x3x4 x1 x4
Полагаем x4 = 1, x2 = 0. Тогда f(x1, 0, x3,1) = x1x3 x1 1 = x1(x3 1) 1 = x1x3 1 = x1x3. Отсюда получаем: x1 x3 = f(x1, 0, x3, 1)x1x3 = f(x1, 0, x3, 1).
Эти две леммы позволяют получить все булевы операции с помощью немонотонных функций, нелинейных функций и констант.
Система функций Σ называется функционально полной в слабом смысле, если любая логическая функция может быть представлена формулой над системой Σ {0, 1}, т.е. является суперпозицией констант из Σ. Очевидно, что из обычной полноты системы следует его слабая полнота.
Теорема 1 (о функциональной полноте). Для того, чтобы система функций Σ была ФП в слабом смысле, необходимо и достаточно, чтобы она содержала хотя бы одну немонотонную и хотя бы одну нелинейную функцию.
Пример.
1.Система Σ6 = {&, } ФП в слабом смысле, т.к. конъюнкция нелинейна, а сумма по mod 2 немонотонна. Константа 0 получается из соотношения x x = 0, однако константу 1 с помощью дизъ-
юнкции и получить нельзя, поэтому Σ6 не является ФП в обычном смысле. Использование константы 1, которое разрешается определением слабой полноты, сводит Σ6 к полной системы
Σ5 = {&, , 1}(x = x 1)
2.В ФП системе Σ3 = {|} единственная функция | одновременно нелинейна и немонотонна.
•Назад •Первая •Предыдущая •Следующая •Последняя •Перейти •Предметный указатель
3.Проверим на функциональную полноту систему Σ7, состоящую из одной функции f1, заданной таблицей
x1 |
x2 |
x3 |
f1 |
|
0 |
0 |
0 |
0 |
|
0 |
0 |
1 |
1 |
|
0 |
1 |
0 |
0 |
|
0 |
1 |
1 |
1 |
См. пример 3 ранее. Немонотонность ее установлена. |
1 |
0 |
0 |
1 |
Получим ее полином Жегалкина: |
1 |
0 |
1 |
0 |
|
1 |
1 |
0 |
0 |
|
1 |
1 |
1 |
1 |
|
|
|
|
|
|
СДНФ:
f1(x1, x2, x3) = x1x2x3 x1x2x3 x1x2x3 x1x2x3 =
=(x1 1)(x2 1)x3 (x1 1)x2x3 x1(x2 1)(x3 1) x1x2x3 =
=x1x2 x1 x3.
Следовательно, f1 нелинейна и Σ7 — функционально полная в слабом смысле.
Функция f(x1, . . . , xn) называется сохраняющей 0, если f(x1, . . . , xn) = 0. Функция f(x1, . . . , xn) называется сохраняющей 1, если f(x1, . . . , xn) = 1.
Теорема 2 (основная о функциональной полноте.) Для того, чтобы система функций Σ была ФП (в сильном смысле), необходимо и достаточно, чтобы она содержала хотя бы одну:
1.нелинейную функцию;
2.немонотонную функцию;
•Назад •Первая •Предыдущая •Следующая •Последняя •Перейти •Предметный указатель
3.несамодвойственную функцию;
4.функцию, не сохраняющую 0;
5.функцию, не сохраняющую 1.
•Назад •Первая •Предыдущая •Следующая •Последняя •Перейти •Предметный указатель
