Сделай Сам Свою Работу на 5

Вопрос 2. Класс линейных функций





ЛИНЕЙНЫЕ БУЛЕВЫ ФУНКЦИИ

1.Полиномы Жегалкина.

2.Класс линейных функций.

Вопрос 1. Полиномы Жегалкина

Рассмотрим кольцевую сумму (операцию сложения по модулю 2 или сумму Жегалкина), которая обозначается хÅу и задается таблицей истинности:

Данная операция используется в логических функциях, называемых полиномами (многочленами) Жегалкина.

О.1.1.Полиномом (многочленом) Жегалкинаназывается многочлен, являющийся суммой константы (0 или 1) и различных одночленов, в которых все переменные входят не выше, чем в первой степени:

(1)

причем на каждом наборе (i1,i2,…,ik) все ij (j = 1,2,…,k) различны, а

 

Пример 1.

1.Полином Жегалкина константы равен самой этой константе.

2.Полином Жегалкина булевой функции одной переменной f(х) имеет вид

f(х) = а0Åа1х.

3.Полином Жегалкина булевой функции двух переменных f(х12) имеет вид

f(х12) = а0Åа1х1Åа2х2Åа12х1х2.

4.Полином Жегалкина булевой функции трех переменных f(х123) имеет вид

f(х123) = а0Åа1х1Åа2х2Åа3х3Åа12х1х2Åа13х1х3Åа23х2х3Åа123х1х2х3.

 

Во всех приведенных формулах коэффициенты и свободный член а0 принимают значения 0 или 1; число слагаемых в формуле равно 2n (где n – число переменных).



 

Можно показать, что число полиномов Жегалкина от n переменных х12,…,хn, т.е. число выражений вида (1), равно Так как число булевых функций от n переменных так же равно то каждая булева функция может быть представлена полиномом Жегалкина.


T.1.1. (теорема Жегалкина)

Каждая булева функция f(х12,…,хn) может быть представлена в виде полинома Жегалкина и притом единственным образом (с точностью до порядка слагаемых).

 

Пример 2. С помощью таблицы истинности найдем полином Жегалкина для функции ͞х.

Þ ͞х = х Å 1.

Алгоритмы построения полинома Жегалкина

Известно, что любую булеву функцию, отличную от константы 0, можно представить в виде СДНФ. Сравним таблицы истинности дизъюнкции и кольцевой суммы:

Мы видим, что они отличаются только последней строкой, т.е. на наборе (11). Так как в СДНФ на каждом наборе только одна конъюнкция равна 1, то все дизъюнкции можно заменить суммами по модулю 2. Кроме того, ͞х = х Å 1. На этом основан следующий алгоритм построения полинома Жегалкина.



Первый алгоритм построения полинома Жегалкина (на основе СДНФ)

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

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

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

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

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

6.Раскрываем скобки в полученной формуле, содержащей только функции Ù, Å и константу 1.

7.Приводим подобные члены, используя тождество хi Å хi = 0.

Пример 3. На основе СДНФ построить полином Жегалкина для функции

Решение

Данная функция представлена в форме СДНФ.

Таким образом, имеет место представление

 


Второй алгоритм построения полинома Жегалкина

(с помощью метода неопределенных коэффициентов)

1.Запишем предполагаемый результат в виде выражения общего вида с неопределенными коэффициентами.

2.Составляем систему линейных уравнений относительно 2n неизвестных коэффициентов, содержащую 2n уравнений, решением которой являются коэффициенты полинома Жегалкина.

Пример 4. С помощью метода неопределенных коэффициентов построить полином Жегалкина для функции

Решение

Запишем предполагаемый результат в виде выражения общего вида с неопределёнными коэффициентами:

Для определения значений коэффициентов вычислим левую и правую части для четырех возможных наборов значений входных переменных:

f(0,0) = 1 = a Å 0 Å 0 Å 0 = a Þ a = 1.

f(0,1) = 0 = 1 Å 0 Å c Å 0 Þ 1 Å c = 0 Þ c = 1.

f(1,0) = 0 = 1 Å b Å 0 Å 0 Þ 1 Å b = 0 Þ b = 1.



f(1,1) = 1 = 1 Å 1 Å 1 Å d Þ 1 Å d = 1 Þ d = 0.

 

Таким образом, имеет место представление f(x1,x2) = 1 Å x1 Å x2.

 

Вопрос 2. Класс линейных функций

О.2.1. Полином Жегалкина называется линейным(нелинейным), если он не содержит (содержит) конъюнкции переменных.

 

О.2.2. Булева функция f(х12,…,хn) называется линейной (нелинейной), если ее полином Жегалкина является линейным (нелинейным).

 

Полином Жегалкина линейной функции f(х12,…,хn) имеет вид

a0 Å a1x1 Å a2x2 Å …. Å anxn.

 

Из определения полинома Жегалкина следует, что для любой булевой функции коэффициенты при переменных х12,…,хn и свободный член выражаются по формулам:

а0 = f(0,0,…,0), а1 = а0 Å f(1,0,…,0), а2 = а0 Å f(0,1,…,0), …, аn = а0 Å f(0,0,…,1).

На этом основан алгоритм определения линейности (или нелинейности) булевой функции.

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.