Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Дискретная математика конечный вариант.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
4.94 Mб
Скачать

Многочлены Жегалкина

Любую булеву функцию можно представить в виде многочлена от своих переменных и такой многочлен называется многочленом Жегалкина.

Многочленом Жегалкина называется многочлен, являющийся суммой константы и различных одночленов, в которые каждая из переменных входит не выше, чем в первой степени.

Многочлен Жегалкина константы равен самой же константе; мно­гочлен Жегалкина булевой функции одной переменной f(x) = многочлен Жегалкина булевой функции двух переменных

f(x1,x2) = ;

многочлен Жегалкина булевой функции трех переменных

f(x1,x2,x3)= и т.д. Коэффициенты a1,...,i и свободный член ао принимают значения О или 1, а число слагаемых в формуле равно 2п, где п — число переменных. Знак — сумма Жегалкина или сумма по модулю два.

Теорема

3 (Жегалкина).

Каждая булева функция

f(x1,x2, ...,хп)

может

быть представлена в виде

многочлена Жегалкина и

единственным

образом,

с точностью до порядка слагаемых.

Сформулируем алгоритм построения многочлена Жегалкина. Выше было указано, что любую функцию, отличную от константы О, можно представить в виде СДНФ. Если сравним таблицы истинности

дизъюнкции и суммы по модулю два, видим, что они отличаются только последней строкой, т. е. на наборе 11. Так как в СДНФ на каждом наборе только одна конъюнкция равна 1, то все дизъюнкции можно заменить суммами по модулю два. Кроме того, известно, что . На этом и основан первый алгоритм построения многочлена Жегалкина:

  1. Находим множество тех двоичных наборов, на которых функция принимает значение 1.

  2. Составляем СДНФ.

  3. В СДНФ каждый знак дизъюнкции меняем на знак суммы Жегалкина.

  4. Упрощаем, если можно, полученное выражение, используя тождество .

  5. В полученной формуле каждое отрицание заменяем на .

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), где .

СКНФ функции

б) Построим многочлен Жегалкина первым способом:

выписываем СДНФ функции

;

заменяем знак дизъюнкции на знак суммы Жегалкина

,

вынесем из первой и второй конъюнкции :

;

проделаем замены: , получим:

.

Далее раскроем скобки:

.

Итак, мы получим многочлен Жегалкина:

.

Построим многочлен Жегалкина методом неопределенных коэффициентов, для этого составим следующие восемь уравнений:

;

;

;

;

;

;

;

;

.

Составим многочлен Жегалкина:

.

Задача. Задана булева функция трех переменных

.

С помощью эквивалентных преобразований приведите функцию к ДНФ, КНФ, СДНФ, СКНФ.

Решение. Заменяем, ,

.

, тогда

ДНФ ,

КНФ .

Строим СДНФ, для этого из ДНФ удаляем вторую конъюнкцию , а в третью конъюнкцию добавляем , тогда:

, т.е. получили СДНФ функции

.

Строим СКНФ, для этого из КНФ удаляем третью дизъюнкцию, а к первой добавляем :

,

добавляем к первой и второй дизъюнкциям

.

Получили СКНФ функции

.