Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Diskretnaya_matematika.pdf
Скачиваний:
1262
Добавлен:
12.03.2015
Размер:
2.47 Mб
Скачать

54

3. БУЛЕВЫ ФУНКЦИИ

Булевы операции, булева алгебра, булевы функции (то же, что и функции алгебры логики) начались систематически исследоваться в работах Дж. Буля (1815-1864) по символической логике.

§ 1. Основные булевы функции.

Булевой переменной называется переменная, имеющая только два возможных значения, которые будем обозначать через 0 и 1. Положим Е={0,1}.

Функция f(x1,x2,…,xn) называется булевой

Джордж Буль (переключательной) функцией, если она может принимать только одно из двух возможных значений 0 или 1 в зависимости от значений своих аргументов x1,x2,…,xn,

каждая из которых тоже принимает одно из значений 0 или 1. Таким образом, f(x1,x2,…,xn) булева функция тогда и только тогда, когда f функция из En в E.

Булеву функцию можно задать таблицей ее значений, которая и называется таблицей истинности.

Одной из основных булевых функций является функция отрицания,

значение которой определяется по таблице

:

x

( x)

 

Отрицание является одноаргументной булевой

0

1

1

0

функцией. Выражение «( x)» читается «не x» и функцию

отрицания можно интерпретировать как образование нового высказывания из высказывания x с помощью частицы «не». Введем следующие двухаргументные булевы функции по таблице:

x

y

(x&y)

(x y)

(x y)

(xy)

(x+y)

(x y)

(xy)

0

0

0

0

1

1

0

1

1

0

1

0

1

1

0

1

1

0

1

0

0

1

0

0

1

1

0

1

1

1

1

1

1

0

0

0

55

Функция (x&y) называется конъюнкцией x и y. Выражение «(x&y)» читается «x и и эту функцию можно интерпретировать как соединение двух высказываний x, y с помощью союза «и».

Функция (x y) называется дизъюнкцией x и y. Выражение «(x y)» читается «x или и эту функцию можно интерпретировать как соединение двух высказываний x, y связкой «или», где «или» понимается в соединительном (хотя бы одно), а не разделительном (либо-либо) смысле.

Функция (x y) называется импликацией x и y. Выражение «(x y)» читается «если x, то y» и эту функцию можно интерпретировать как образование из двух высказываний нового высказывания: «если x, то y». При этом x называется посылкой, а y заключением.

Функция (x ≡ y) называется эквивалентностью. Выражение «(x ≡ y)» можно читать «x эквивалентно y».

Функция (x+y)называется сложением по модулю два.

Функции (x y) и (xy) называются штрихом Шеффера и стрелкой Пирса соответственно.

Используя введенные функции, можно строить более сложные булевы функции с помощью операций суперпозиции функций, т. е. подстановки функций в функцию, например: ( (x&y)), ((x y)&(x≡ z)), ((x&y) ( z)) и т. п. Значения полученных функций можно определять по таблицам истинности.

Таблица истинности функции от одного аргумента имеет две строки, от двух переменных – четыре, от трех переменных – восемь строк. В общем случае таблица истинности булевой функции от n переменных имеет ровно 2n строк, ибо добавление каждой новой переменной удваивает число строк.

Покажем, что число различных булевых функций от n переменных

равно N = 22n . Булева функция f(x1,x2,...,xn) принимает значения 0 либо 1 в зависимости от значений переменных x1,x2,...,xn. Число различных наборов значений переменных x1,x2,...,xn, как известно, равно 2n. На каждом из 2n различных наборов функция f(x1,x2,...,xn) может принимать одно из двух значений. Следовательно, число различных булевых функций от n

аргументов будет равно 22n . С ростом n число N булевых функций от n аргументов резко растет. Например: для n=1 N=4; для n=2 N=16; для n=3 N=256; для n=5 N - более четырех миллиардов.

Переменная xk (1k≤ n) функции f(x1,x2,...,xn) называется фиктивной или несущественной, если значение этой функции не меняются при изменении значений xk. Например, (x (x&y)) ~ x, следовательно, y является фиктивной переменной для функции f(x,y)=(x (x&y)).

Булеву функцию можно задать с помощью таблицы, формулы (аналитически), графика и т.п. Графически булеву функцию f(x1,x2,...,xn) задают с помощью n-мерного куба следующим образом. Считаем наборы значений переменных x1,x2,...,xn вершинами n-мерного куба. Те вершины, на которых булева функция равна единице, помечаем точкой или звездочкой, остальные вершины оставляем без пометок. Например, функции (x y), (x≡ y)

56

и (x (y&z)) можно представить их графиками, как на рис. 3.1 а, б и в соответственно.

Иногда булеву функцию называют переключательной функцией.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(0,1)

(1,1)

(0,1)

(1,1)

 

(0,0,1)

(0,1,1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(1,0,1)

 

 

 

 

(1,1,1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(0,0,0)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(0,1,0)

 

 

 

 

 

 

 

 

 

 

 

 

(1,0,0)

 

(1,1,0)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(0,0)

(1,0)

(0,0)

(1,0)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

а)

 

 

б)

 

 

в)

 

 

 

 

 

 

 

 

 

 

 

Рис. 3.1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

§ 2. Формулы

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

Индуктивное определение формулы:

1)каждая булева переменная (x,y,z,…,x1,x2,…) является формулой;

2)если А и В формулы, то ( А), (А&В), (А В), (А В), (АВ), (А В) и (АВ) тоже формулы;

3)только те выражения являются формулами, для которых это следует из пп. 1) и 2).

Примеры формул: x, ( y), ((x&y) ( z)).

Заглавные буквы латинского алфавита (А,В,C ,...) или те же буквы с числовыми индексами (А1,А2,...,В1,В2,...,С1,С2,...) употребляются для обозначения произвольных формул.

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

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

57

Например, для формулы (((x&y) z) x) имеем следующую таблицу истинности.

x

y

z

(x&y)

((x&y) z)

(((x&y) z) x)

0

0

0

0

0

1

0

0

1

0

1

0

0

1

0

0

0

1

0

1

1

0

1

0

1

0

0

0

0

1

1

0

1

0

1

1

1

1

0

1

1

1

1

1

1

1

1

1

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

(((x&y) z) x) получаем таблицу:

x

y

z

(((x & y) z) x)

0

0

0

0

0

1

0

0

1

0

1

0

0

1

0

0

0

1

0

1

1

0

1

0

1

0

0

0

0

1

1

0

1

0

1

1

1

1

0

1

1

1

1

1

1

1

1

1

Следующий метод построения таблиц истинности называют алгоритмом Квайна. В формуле выбирается некоторая переменная, например, та, которая чаще всего встречается в рассматриваемой формуле. Выбранной переменной (для формулы D=(((x&y) z) x) это будет переменная x) приписывается значение 1 либо 0. Далее проводят вычисления, где возможно, при выбранном значении этой переменной. Если x=1, то для формулы D=(((x&y) z) x), вне зависимости от значении y и z, легко получить, что D=1. При x=0 и z=0 получим снова, что D=1. Наконец, если x=0 и z=1, то D=0. В результате получим сокращенную запись таблицы истинности, содержащую всего три строки (в данном случае результат не зависит от значений переменной y):

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