- •Часть 5
- •Булевы функции §1.Основные понятия и определения.
- •§2.Представление функций формулами. Равносильные формулы.
- •§3. Принцип двойственности
- •§4. Дизъюнктивные и конъюнктивные нормальные формы.
- •§5. Совершенные днф и кнф.
- •§6. Минимизция булевых функций в классе днф
- •§9. Многочлены Жегалкина
- •§7. Замыкание множества булевых функций.
- •§8. Полнота множества булевых функций.
§7. Замыкание множества булевых функций.
|
Пример 7.1.Рассмотрим функцию четырех переменных
f(a,
b,
с, d)
=
1.
f
(0, 0, 0, 0)
=
2. f
(1, 1, 1, 1)
=
3.Функция f (a, b, с, d) не является самодвойственной: f (0,1,1,1)= f (1,0,0,0). 4.Рассматриваемая булева функция f (a, b, с, d) немонотонная : (1, 0, 0, 0) ≥ (0, 0, 0, 0), f (1, 0, 0, 0) ≥ f (0, 0, 0, 0). 5.Установим, является ли булева функция f (a, b, с, d) линейной.
Предположим,
что она линейная и, следовательно,
представима в виде
(a,
b,
с, d)
= с0 Найдем неизвестные коэффициенты с0, сa, сb, сc, сd, исходя из предположения о линейности этой функции. Зафиксируем набор (0, 0, 0, 0) : f (0, 0, 0, 0).= 1, с0 са0 сb0 сc0 cd0=с0, с0=1. Аналогично определим коэффициенты сa, сb, сc, сd, фиксируя соответственно наборы 1000, 0100, 0010, 0001. Имеем:
f
(1, 0, 0, 0)
=
f
(0,
1, 0, 0)
=
f
(0, 0, 1, 0)
=
f
(0, 0, 0, 1)
=
Окончательно получаем f(a, b, с, d) = 1 а d. Это равенство в каждой из остальных 11 строк таблицы истинности не сохраняется (проверте!). Действительно, например, f (1, 1, 1, 1) = =0 0=0, 1 1 1=1, 0 ≠ 1. Следовательно, сделанное предположение является неверным. Функция f (a, b, с, d) – нелинейная:
f
(a,
b,
с, d)
|
§8. Полнота множества булевых функций.
|
ТЕОРЕМА Поста. Система булевых функций F полна тогда и только тогда, когда она содержит хотя бы одну функцию, не сохраняющую нуль, хотя бы одну функцию, не сохраняющую единицу, хотя бы одну несамодвойственную функцию, хотя бы одну немонотонную функцию и хотя бы одну нелинейную функцию.
|
§9. Многочлены Жегалкина
|
Система булевых функций {+, &, 1} – полна, более того, она является базисом, называемым базисом Жегалкина; Тогда любую булеву функцию можно представить в виде многочлена от своих переменных и такой многочлен называется многочленом Жегалкина.
Многочленом Жегалкина называется многочлен, являющийся суммой константы и различных одночленов, в которые каждая из переменных входит не выше, чем в первой степени. Многочлен Жегалкина константы равен самой же константе; многочлен Жегалкина булевой функции одной переменной
многочлен Жегалкина булевой функции двух переменных
многочлен Жегалкина булевой функции трех переменных
и т.д. Коэффициенты a1,...i, и свободный член ао принимают значения 0 или 1, а число слагаемых в формуле равно 2n, где n — число переменных. Знак — сумма по модулю два. Теорема (Жегалкина). Каждая булева функция f(x1,… , хn) может быть представлена в виде многочлена Жегалкина и притом единственным образом, с точностью до порядка слагаемых. Первый алгоритм построения многочлена Жегалкина. Выше
было указано, что любую функцию,
отличную от константы 0, можно представить
в виде СДНФ. Если сравним таблицы
истинности дизъюнкции и суммы по
модулю два, видим, что они отличаются
только последней строкой, т. е. на
наборе 11. Так как в СДНФ на каждом
наборе только одна конъюнкция равна
1, то все дизъюнкции можно заменить
суммами по модулю два. Кроме того,
известно, что
Используя метод неопределенных коэффициентов, получаем Второй алгоритм определения многочлена Жегалкина: 1. Составляем систему линейных уравнений относительно 2n неизвестных коэффициентов, содержащую 2n уравнений, решением которой являются коэффициенты многочлена Жегалкина. Многочлен Жегалкина называется нелинейным, если он содержит конъюнкции переменных, а если он не содержит конъюнкции переменных, то он называется линейным. Функция
f(x1,…
, хn)
называется
линейной, если ее многочлен Жегалкина
имеет вид
Из определения многочлена Жегалкина следует, что для любой булевой функции коэффициенты при переменных x1,… , хn и свободный член вычисляются по формулам:
На этом основан алгоритм определения линейности (или нелинейности) булевой функции. 1. По таблицам истинности булевой функции f(x1,… , хn) и выше указанным формулам находим коэффициенты: (а0, а1, ...,аn). 2.
Выписываем многочлен
Если таблицы истинности совпадают, то функция f(x1,… , хn) линейная и Ф(x1,… , хn) — ее многочлен Жегалкина, В противном случае функция нелинейная.
|
