
- •Содержание
- •Глава 1. «дискретные множества»
- •Глава 2. «элементы математической логики»
- •Основные законы, определяющие свойства введенных логических операций
- •Дизъюнктивные и конъюнктивные нормальные формы алгебры высказываний
- •Совершенная дизъюнктивная и совершенная конъюнктивная нормальные формы
- •Многочлены Жегалкина
- •Глава III. Элементы теории графов
- •Глава IV. Задания для самостоятельной работы
- •Дискретные множества.
- •Элементы математической логики.
- •Элементы теории графов.
Многочлены Жегалкина
Любую булеву функцию можно представить в виде многочлена от своих переменных и такой многочлен называется многочленом Жегалкина.
Многочленом Жегалкина называется многочлен, являющийся суммой константы и различных одночленов, в которые каждая из переменных входит не выше, чем в первой степени.
Многочлен
Жегалкина константы равен самой же
константе; многочлен Жегалкина
булевой функции одной переменной f(x)
=
многочлен
Жегалкина булевой функции двух переменных
f(x1,x2)
=
;
многочлен Жегалкина булевой функции трех переменных
f(x1,x2,x3)=
и
т.д. Коэффициенты a1,...,i
и
свободный
член ао
принимают
значения О или 1, а число слагаемых в
формуле равно 2п,
где
п
—
число переменных. Знак
— сумма Жегалкина или сумма по модулю
два.
Теорема |
3 (Жегалкина). |
Каждая булева функция |
f(x1,x2, ...,хп) |
может |
|
быть представлена в виде |
многочлена Жегалкина и |
единственным |
|
||
образом, |
с точностью до порядка слагаемых. |
|
|
Сформулируем алгоритм построения многочлена Жегалкина. Выше было указано, что любую функцию, отличную от константы О, можно представить в виде СДНФ. Если сравним таблицы истинности
дизъюнкции
и суммы по модулю два, видим, что они
отличаются только последней строкой,
т. е. на наборе 11. Так как в СДНФ на каждом
наборе только одна конъюнкция равна 1,
то все дизъюнкции можно заменить суммами
по модулю два. Кроме того, известно, что
.
На этом и основан первый алгоритм
построения многочлена Жегалкина:
Находим множество тех двоичных наборов, на которых функция принимает значение 1.
Составляем СДНФ.
В СДНФ каждый знак дизъюнкции меняем на знак суммы Жегалкина.
Упрощаем, если можно, полученное выражение, используя тождество
.
В полученной формуле каждое отрицание
заменяем на
.
6. Раскрываем скобки в полученной формуле, содержащей только функции и и константу 1.
7. Приводим
подобные члены, используя тождество
.
Используя
метод неопределенных коэффициентов,
получаем второй алгоритм определения
многочлена Жегалкина:
1. Составляем систему линейных уравнений относительно 2п неизвестных коэффициентов, содержащую 2п уравнений, решением которой являются коэффициенты ао, а1, …,а1,2…n многочлена Жегалкина.
Многочлен Жегалкина называется нелинейным, если он содержит конъюнкции переменных, а если он не содержит конъюнкции переменных, то он называется линейным.
Функция
f(x1
,х2,...,хп)
называется
линейной, если ее многочлен Жегалкина
имеет вид
и
нелинейной в противном случае.
Из определения многочлена Жегалкина следует, что для любой булевой функции коэффициенты при переменных x1 ,х2,...,хп и свободный член вычисляются по формулам:
,
,
…
.
На этом основан алгоритм определения линейности (или нелинейности) булевой функции.
1. По таблицам истинности булевой функции f(x1 ,х2,...,хп) и выше указанным формулам находим коэффициенты: (ао, а1, …,а1,…n)
2.
Выписываем многочлен Ф(x1,...,хп)=
и
проверяем, задает ли он эту функцию. Для
этого строим таблицу истинности
многочлена Ф(x1
,х2,...,хп)
и сравниваем ее с таблицей истинности
функции f(x1,x2,
...,хп).
Задача. Задана булева функция трех переменных:
;
а) постройте таблицу истинности, найдите двоичную форму F булевой функции и приведите функцию к СДНФ и СКНФ,
б) найдите двумя способами многочлен Жегалкина.
Решение.
а)
-
0
0
0
1
1
0
0
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
0
0
1
1
0
1
0
Двоичная форма F=11000100
Наборы
=(000,
001, 101), где
.
СДНФ
функции
.
Наборы
=(010,
011, 100, 110, 111), где
.
СКНФ функции
б) Построим многочлен Жегалкина первым способом:
выписываем СДНФ функции
;
заменяем
знак дизъюнкции на знак суммы Жегалкина
,
вынесем
из первой и второй конъюнкции
:
;
проделаем
замены:
,
получим:
.
Далее раскроем скобки:
.
Итак, мы получим многочлен Жегалкина:
.
Построим многочлен Жегалкина методом неопределенных коэффициентов, для этого составим следующие восемь уравнений:
;
;
;
;
;
;
;
;
.
Составим многочлен Жегалкина:
.
Задача. Задана булева функция трех переменных
.
С помощью эквивалентных преобразований приведите функцию к ДНФ, КНФ, СДНФ, СКНФ.
Решение.
Заменяем,
,
.
,
тогда
ДНФ
,
КНФ
.
Строим
СДНФ, для этого из ДНФ удаляем вторую
конъюнкцию
,
а в третью конъюнкцию добавляем
,
тогда:
,
т.е. получили СДНФ функции
.
Строим
СКНФ, для этого из КНФ удаляем третью
дизъюнкцию, а к первой добавляем
:
,
добавляем
к первой и второй дизъюнкциям
.
Получили СКНФ функции
.