Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции_по_ДМ_2часть.doc
Скачиваний:
84
Добавлен:
17.12.2018
Размер:
1.72 Mб
Скачать
    1. Полные системы функций и полиномы Жегалкина

Обобщим результаты предыдущего параграфа.

Система функций алгебры логики F={f1f2,…, fs,…} P2 называется полной или функционально полной, если любая функция алгебры логики может быть записана в виде формулы через функции этой системы (или, как говорят, выражена формулой над F).

В соответствии с этим определением системы функций {Ø,&,Ú}, {Ø,&}, {Ø,Ú}, {Ø,®}, а также {¯} и {} являются функционально полными.

Имеются ли другие полные системы функций? Этот вопрос можно решить с помощью следующей теоремы.

      1. О полных системах функций алгебры логики

Пусть имеются две системы функций алгебры логики: F={f1f2,…, fp,…} и G={g1g2,…, gr,…}, относительно которых известно, что система F полна и каждая её функция может быть выражена формулой через функции системы G. Тогда система функций G – является полной.

Доказательство:

Пусть h P2 – произвольная функция алгебры логики. В силу полноты системы F функцию h можно выразить формулой через функции системы F: т.е. =S[f1f2,…, fp,…]. А по условию теоремы каждую функцию из F можно выразить формулой через функции системы G, т.е. f1 =S1[g1g2,…, gr,…], f2 =S2[g1g2,…, gr,…],…. Поэтому в формуле для h можно исключить вхождения функций f1f2,…, fp,…, заменив их формулами над G. А именно, S[f1f2,…, fp,…] = S[S1[g1g2,…, gr,…], S2[g1g2,…, gr,…],…] = [g1g2,…, gr,…]. Таким образом, h выражена формулой через функции системы G. Но, поскольку h P2 – произвольная функция, то система функций G – является полной.

Используя эту теорему, покажем функциональную полноту следующих систем: (1) G1={,,}, (2) G2={,&,} и (3) G3={1,·,}, где «·» – это обычное умножение.

(1) Известно, что система функций {Ø,Ú} является полной. Поскольку «Ú» имеется в G1, а «Ø» выражается формулой , то G1 тоже полна.

(2) Известно, что система функций {Ø,&} является полной. Поскольку «&» имеется в G2, а «Ø» выражается формулой , то G2 тоже полна.

(3) Т.к. система {Ø,&} является полной и х·у х&у, а , то G3 – полная система функций. Система G3 играет особую роль в алгебре логики, т.к. формула, сконструированная из функций {1,·,} и скобок, после раскрытия скобок и несложных алгебраических преобразований переходит в полином (сумму по модулю 2 элементарных произведений), называемый полиномом Жегалкина или совершенной полиномиальной нормальной формой (СПНФ).

      1. О представлении функции полиномом Жегалкина

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

Доказательство:

Т.к. система функций {1,·,} является полной, то любая истинностная функция может быть выражена формулой через функции этой системы. Эта формула после преобразований, как уже указывалось в (3), переходит в полином Жегалкина. Таким образом, представление произвольной функции полиномом Жегалкина доказана. Докажем единственность этого представления. Для этого сначала запишем полином Жегалкина для произвольной функции от n переменных в общем виде: , где s  n и суммирование выполняется по модулю 2 и проводится по всевозможным подмножествам номеров переменных. А – коэффициент, равный нулю или единице, и стоящий перед произведением переменных с номерами: i1i2,…, is. Число слагаемых в полиноме Жегалкина общего вида равно числу подмножеств из n–множества и равно 2n. Полиномы Жегалкина различных функций от n переменных отличаются друг от друга наличием или присутствием тех или иных слагаемых, или, что то же самое, различным распределением значений коэффициентов в полиноме общего вида. Но, поскольку коэффициенты могут принимать лишь два значения, то число всех таких распределений равно , что совпадает с числом различных истинностных функций от n аргументов. Следовательно, для каждой функции имеется своё представление полиномом Жегалкина.

Примеры:

1) Построим полином Жегалкина для элементарной функции f(x,y) = х  у. Сначала запишем его в общем виде: f(x,y) =. Где a, b, c и d – неопределенные коэффициенты, значения которых будут найдены путем подстановки различных комбинаций значений переменных х и у в выражение общего вида. Итак, f(0,0) = 0 =. Отсюда d=0.

f(0,1) = 1 =. Отсюда с=1.

f(1,0) = 1 =. Отсюда b=1.

f(1,1) = 1 =. Отсюда a=1.

Тем самым, при подстановке найденных значений коэффициентов в выражение общего вида, получим: (х  у) =.

2) Построим полином Жегалкина для элементарной функции f(x,y) = х  у. Запишем выражение общего вида: f(x,y) = и найдем коэффициенты: f(0,0) = 1 =. Отсюда d=1.

f(0,1) = 0 =. Отсюда с=1.

f(1,0) = 0 =. Отсюда b=1.

f(1,1) = 1 =. Отсюда a=0.

И полином Жегалкина: (х  у) = х  у  1

Рассмотренный в примерах способ построения полинома Жегалкина представляет собой так называемый метод неопределенных коэффициентов.

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

Если функция задана формулой со связками {Ø,&,Ú}, то для перехода к полиному Жегалкина необходимо воспользоваться тождествами: , х&у х·у, (х Ú у) =.

Например, пусть f(x,y,z) = .

Тогда  f(x,y,z) = ((x1)·(y1)  y)  (1) = = ((x1)·(y1)· (x1)·(y1)  y)  (1) =

=((x1)·(y1)· (x1)·(y1)  y)·(1)  ((x1)·(y1)· (x1)·(y1)  y) (1) =((х·уxy1)· х·уxy1y)·(1)  (х·уxy1)· х·уxy1 z1 = (воспользуемся тем, что х·х=х и xх=0) = (х·уx1)·(1)  х·у  x  z = х·у· х·  х·у  x  1 х·у  x  z = х·у· х· 1

Если функция задана таблицей, то для получения её полинома Жегалкина вначале следует записать СДНФ, затем в полученном выражении заменить все конъюнкции умножением, дизъюнкции – сложением по модулю два, а отрицания – сложением с единицей. Далее раскрыть скобки и применить тождества х·х=х и xх=0.

Например, пусть столбец значений функции f(x,y,z) в таблице истинности равен (1, 1, 1, 1, 1, 0, 1, 1). Запишем совершенную дизъюнктивную нормальную форму для этой функции: СДНФ(f(x,y,z)) = . Теперь выполним указанные выше замены:

f(x,y,z)=(х1)(уÅ1)(zÅ1) Å (xÅ1)(yÅ1)Å (xÅ1)y(zÅ1) Å (xÅ1)yz Å  x(yÅ1)(zÅ1) Å xy(zÅ1) Å xyz, и раскроем скобки: (xyz Å xy Å xz Å yz Å x Å y Å z Å1) Å (xyz Å xz Å yz Å z) Å (xyz Å xy Å yz Åy)Å (xyz Å yz) Å (xyz Å xy Å xz Å x) Å (xyz Å xy) Å xyz х·у· х· 1