Теория Автоматов1_11

advertisement
Теория Автоматов
Конечные функциональные
преобразователи
Функциональная полнота
образована соответствии с определением 1.2,
функционально полным набором (или базисом)
называется такое множество булевых функций,
суперпозицией которых могут быть выражены любые
булевы функции. Один из таких базисов — базис
Буля — нами определен: это три функции И, ИЛИ,
НЕ. Исследование проблем, связанных с базисами,
чрезвычайно важно для практики: функции базиса —
это тот полный набор строительных блоков, из
которых можно строить все другие двоичные функции от любого числа переменных, а следовательно,
реализовывать любые конечные функциональные
прели.
Функциональная полнота
Важными для практики и интересными с теоретической точки
зрения являются
вопросы:
Q почему функции И, ИЛИ, НЕ такие особенные, что с их
помощью можно построить любую другую булеву функцию?
Q существуют ли еще какие-нибудь базисы, кроме базиса
Буля? Q является ли некоторый заданный базис минимальным
(то есть не содержит ли
он излишних функций, выражающихся суперпозицией других)?
Q как проверить, является ли заданный набор функций базисом,
и если не является, как дополнить его другими функциями,
чтобы получившееся множество составило базис?
Введем некоторые определения и обозначения
Функциональная полнота
Определение 1.5. Замыканием множества М булевых функций
назовем такое множество булевых функций, которые можно
получить суперпозицией функций из М. Замыкание множества
М обозначим [М].
Пусть В — множество всех двоичных функций. Очевидно, что
множество М двоичных функций будет базисом, только если [М]
= В. Рассмотрим свойства замыканий двоичных функций.
Теорема 1.4. Пусть М, N с В. Тогда:
а) Мс[М];
б) [[М]] = [М]; [В]=В;
в) McN=>[M]c[Nj
г) [М]СВ;
д) если М — базис и М с [N], то N — тоже базис
Функциональная полнота
Доказательство теоремы просто. Утверждения а),
б), в) и г) следуют непосредственно из определений.
Докажем д). М с [N] => [М] с [[N]~] на основании в),
следовательно, [М] с [N] на основании б). Но
поскольку М — базис, [М] = В. Отсюда В с [N] , но
поскольку г) [N] с В, то [N] = В.
Попробуем найти другие базисы, отличные от базиса
Буля. Согласно законам де Моргана, -i(p v q) = -ф-iq.
Следовательно, р v q = -i(-ip-iq). Таким образом, дизъюнкция выражается через конъюнкцию и отрицание,
следовательно, суперпозицией функций {И, НЕ}
можно построить все функции базиса Буля — то есть
ИЛИ можно выбросить из этого базиса. Некоторые
другие базисы представлены в табл. 1.7. Их
обоснование очевидно.
Функциональная полнота
Рассмотрим конъюнктивный базис. Он является
минимальным, поскольку выбрасывание из
множества {И, НЕ} любой функции превращает
оставшееся одноэлементное множество в не-базис.
Действительно, например, с помощью суперпозиции
произвольного числа функций НЕ можно построить
только функцию НЕ и тождественную функцию
ИДЕНТ, то есть f (х) = х. Заметим, что суперпозицией
унарных функций множества М в {ИДЕНТ, НЕ} можно
построить только функции этого множества.
Множество булевых функций, обладающее этим
свойством, называется замкнутым классом двоичных
функций.
Функциональная полнота
Функциональная полнота
Пример 1.8
Конъюнкции, то есть все функции вида х, л х2 л . . . л
хт, тоже составляют замкнутый класс. Очевидно,
однако, что, например, функцию, которая на наборе
(0, 0, . . . , 0) имеет значение 1, нельзя представить
суперпозицией таких функций. Таким образом, {И} не
является базисом, следовательно, конъюнктивный
базис {И, НЕ} является минимальным.
Рассмотрим более подробно базис Жегалкина.
Алгебра Жегалкина и линейные
функции
Алгебра Жегалкина — это алгебра над множеством
двух бинарных булевых функций (И, ©) и нульарной
функции 1. Легко проверить следующие соотношения
в этой алгебре:
Справедливы в этой алгебре, конечно, и все
соотношения табл. 1.4, включающие эти функции.
Если в произвольной формуле, включающей только
функции базиса Жегалкина, раскрыть скобки, то
получим бесскобочную формулу, имеющую вид
суммы (по модулю два) произведений, то есть
некоторый полином. Он называется полиномом
Жегалкина
Алгебра Жегалкина и линейные
функции
Пример 1.9
Алгебра Жегалкина и линейные
функции
Теорема 1.5. Любая булева функция может быть
представлена в виде полинома Жегалкина, причем
единственным образом.
Доказательство. Существование полинома для любой функции
гарантируется тем, что функции {И, 0,1} образуют базис. Далее,
легко видеть, что число возможных членов в полиноме с m
переменными равно 2т. Поэтому число различных полиномов
Жегалкина от m переменных равно 2 в степени 2т, то есть числу
возможных двоичных функций от m переменных. Поскольку
одна и та же формула не может представлять различные
функции, то тем самым между множествами двоичных функций
и полиномов Жегалкина от m переменных установлено
взаимнооднозначное соотношение.
Пример 1.10
Построим для функции f (p, q, r) = -ip vq0rq(pvr) примера 1.2
полиномом Жегалкина непосредственно из таблицы истинности
(см. табл. 1.3). Эту таблицу повторим здесь.
Алгебра Жегалкина и линейные
функции
Таблица 1.8
р
0
0
0
0
1
1
1
1
q
0
0
1
1
0
0
1
1
г
0
1
0
1
0
1
0
1
f
1
1
1
0
0
0
1
0
Алгебра Жегалкина и линейные
функции
Будем искать коэффициенты полинома
,:.
f (p, q, r) = a0 0appeaqq0arreapqpqe aprpr0 aqrqr0 a^pqr
. , ,.f
Всего коэффициентов 8, каждый коэффициент может быть 0
или 1, число возможных вариантов равно 28 =* 256 — как раз
столько, сколько всех возможных булевых функций от трех
переменных. Для нахождения коэффициентов заданной функции используем таблицу ее значений.
Искомые коэффициенты последовательно найдем из
следующей системы уравнений:
f (0,0,0) = 1 = a0; отсюда а0 = 1;
f (1,0,0) = 0 = а0Фар = 10ap; отсюда ар =1;
Г(0,1,0) = 1 = а00ач=10ач;отсюдаач==0;
f (0,0,1) = 1 = a0 ©ar = 10ar; отсюда ar = 0;
Алгебра Жегалкина и линейные
функции
Г(1,1,0) = 1 =
а0Фар0ачеар(1=1е1еоеа1Х1;отсюдаарч=1;
f(l,0,l) = 0 = a0®ap0ar0apr =101000apr; отсюда
apr =0;
Г(0,1,1) = 0 = а00ач0аг0ачг =
100000ачг;отсюда aqr =1Найденное
представление совпадает с представлением,
полученным для этой функции ранее
аналитически: f (p, q, г) = 1 Ф р Ф pq 0 qr .
Булева функция, полином Жегалкина которой
имеет вид а0 ©Хах1х{, называется линейной.
Download