Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Egor-bilety.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
484.86 Кб
Скачать

6. Полные системы булевых функций

Напомним, что булевой функцией называют функцию , у которой все независимые аргументы и сама функция являются логическими переменными, принимающими только два значения: 0 и 1. Эти функции могут быть заданы аналитически в виде пропозициональной формулы (ПФ) геометрически или с помощью таблиц истинности. Например, все элементарные булевы функции двух переменных представлены таблицей истинности 1.

Таблица 1

X1= 0

X2= 0

0

1

1

0

1

1

fk (X1, X2)

1

0

0

0

0

f1 = 0

2

0

0

0

1

3

0

0

1

0

4

0

0

1

1

5

0

1

0

0

6

0

1

0

1

7

0

1

1

0

8

0

1

1

1

9

1

0

0

0

10

1

0

0

1

11

1

0

1

0

12

1

0

1

1

13

1

1

0

0

14

1

1

0

1

15

1

1

1

0

16

1

1

1

1

Функция f1 называется нулевой; f16 – единичной; f2 – конъюнкцией; f8 – дизъюнкцией; f11 и f13 – отрицаниями Х1 и Х2 соответственно; f12 и f14 – импликациями; f3 и f5 – коимпликациями; f10 – эквиваленцией; f7 – сложением по модулю два или разделительной дизъюнкцией; f9 – стрелкой Пирса (функцией Вебба); f15 – штрихом (функцией) Шеффера.

Функцию, полученную из элементарных путем перенумерации аргументов и подстановки вместо аргументов в некоторых других булевых функций, называют суперпозицией функций. Нетрудно убедиться, что любая булева функция от n аргументов является суперпозицией элементарных функций, заданных табл. 1. Например, функция

является суперпозицией элементарных функций: отрицания, дизъюнкции, конъюнкции и импликации.

Система булевых функций называется полной, если любая булева функция является суперпозицией этих функций.

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

Теорема. Отрицание, дизъюнкция и конъюнкция образуют полную систему булевых функций

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

Полная система булевых функций называется базисом, если она перестает быть полной при удалении хотя бы одной из этих функций.

Согласно этому определению система булевых функций не является базисом. Действительно, применяя законы де-Моргана

, ,

конъюнкцию в булевой функции можно заменить на дизъюнкцию и отрицание, а дизъюнкцию – на конъюнкцию и отрицание. Следовательно, отрицание и дизъюнкция (отрицание и конъюнкция) также образуют полную систему булевых функций. Нетрудно убедиться, что наборы и являются базисными, так как их дальнейшее сокращение без нарушения полноты системы невозможно.

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

Если система - полная и любая из функций f1, f2,...,fm может быть выражена с помощью суперпозиций через функции g1, g2,…, gk, то система также полная.

Пример 1. Доказать полноту системы .

Для доказательства воспользуемся системой , полнота которой уже доказана, эти функции можно выразить через g1 и g2 по формулам:

f1=g1, ,

следовательно система функций является полной.

В общем случае для проверки полноты системы булевых функций используется критерий полноты Поста. Прежде чем его сформулировать, напомним некоторые определения [3].

Функция f = (Х12,...,Хn) называется функцией, сохраняющей константу 0 (1 ), если

f(0,0, ...0) = 0, (f(l, 1....1) = 1).

Функция f (X1,X2,...,Xn) называется самодвойственной, если

f (X1,X2,..., Xn) = .

Функция f (X1,X2,...,Xn) называется монотонной, если для любых двух наборов X = (X1,X2,…,Xn) и Y = (Yl, Y2,...,Yn), таких, что X Y (для любого i Xi Yi) имеет место неравенство:

f (X1,X2,..., Xn) f (Yl, Y2,...,Yn).

Функция f (X1,X2,..., Xn) называется линейной, если

f (X1,X2,..., Xn) = ,

где .

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

Например, из табл. 1 следует, что f2 = X1X2 и f= X1X2 – функции, сохраняющие константу 0; f10 = X1↔X2 – функция, не сохраняющая константу 0, но сохраняющая константу 1; f7 = X1 X2 - несамодвойственная функция; f2, fg – монотонные функции; f14 = X1→X2 – немонотонная функция, так как монотонность нарушается на набоpax (0, 0) и (1, 0); f3 - нелинейная функция, так как соответствующий ей многочлен Жегалкина X1 + X2 + X1X2 – нелинеен.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]