
- •Часть II
- •Алгебра двузначной логики
- •Функции алгебры логики
- •Способы задания функций алгебры логики
- •Эквивалентность функций
- •Реализация функций формулами
- •Эквивалентность формул и тождества
- •Упрощение формул
- •Двойственные функции и принцип двойственности
- •Применение принципа двойственности
- •Аналитическая запись функций алгебры логики
- •Аналитическое построение сднф и скнф
- •Теорема о тройке связок
- •Полные системы функций и полиномы Жегалкина
- •Замыкание систем функций алгебры логики
- •Важнейшие замкнутые классы
- •Теорема Поста о полноте
- •Минимизация булевых функций
- •Основные понятия
- •Метод неопределенных коэффициентов
- •Тупиковые днф и алгоритм наискорейшего спуска
- •Геометрическое представление функций алгебры логики
- •Аналитическое построение сокращенной днф
- •Локальные алгоритмы
- •Алгоритм Куайна
- •Диаграммы Вейча–Карно
- •Построение днф по карте Карно
- •Задачи и упражнения
- •Список литературы
- •Часть II
- •400131, Волгоград, просп. Им. В.И.Ленина, 28
- •400131, Волгоград, ул. Советская, 35
-
Полные системы функций и полиномы Жегалкина
Обобщим результаты предыдущего параграфа.
Система функций алгебры логики F={f1, f2,…, fs,…} P2 называется полной или функционально полной, если любая функция алгебры логики может быть записана в виде формулы через функции этой системы (или, как говорят, выражена формулой над F).
В соответствии с этим определением системы функций {Ø,&,Ú}, {Ø,&}, {Ø,Ú}, {Ø,®}, а также {¯} и {} являются функционально полными.
Имеются ли другие полные системы функций? Этот вопрос можно решить с помощью следующей теоремы.
-
О полных системах функций алгебры логики
Пусть имеются две системы функций алгебры логики: F={f1, f2,…, fp,…} и G={g1, g2,…, gr,…}, относительно которых известно, что система F полна и каждая её функция может быть выражена формулой через функции системы G. Тогда система функций G – является полной.
Доказательство:
Пусть h P2 – произвольная функция алгебры логики. В силу полноты системы F функцию h можно выразить формулой через функции системы F: т.е. h =S[f1, f2,…, fp,…]. А по условию теоремы каждую функцию из F можно выразить формулой через функции системы G, т.е. f1 =S1[g1, g2,…, gr,…], f2 =S2[g1, g2,…, gr,…],…. Поэтому в формуле для h можно исключить вхождения функций f1, f2,…, fp,…, заменив их формулами над G. А именно, h = S[f1, f2,…, fp,…] = S[S1[g1, g2,…, gr,…], S2[g1, g2,…, gr,…],…] = S [g1, g2,…, 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,·,} является
полной, то любая истинностная функция
может быть выражена формулой через
функции этой системы. Эта формула после
преобразований, как уже указывалось в
(3), переходит в полином Жегалкина. Таким
образом, представление произвольной
функции полиномом Жегалкина доказана.
Докажем единственность этого
представления. Для этого сначала запишем
полином Жегалкина для произвольной
функции от n переменных
в общем виде:
,
где s n
и суммирование выполняется по модулю
2 и проводится по всевозможным
подмножествам номеров переменных. А
– коэффициент, равный нулю или единице,
и стоящий перед произведением переменных
с номерами: i1, i2,…, 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) = ((x1)·(y1) y) (z 1) = = ((x1)·(y1)·y (x1)·(y1) y) (z 1) =
=((x1)·(y1)·y (x1)·(y1) y)·(z 1) ((x1)·(y1)·y (x1)·(y1) y) (z 1) =((х·уxy1)·y х·уxy1y)·(z 1) (х·уxy1)·y х·уxy1y z1 = (воспользуемся тем, что х·х=х и xх=0) = (х·уx1)·(z 1) х·у x z = х·у·z х·z z х·у x 1 х·у x z = = х·у·z х·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)z Å (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 = х·у·z х·z 1