Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие по курсу Информатика NEW.doc
Скачиваний:
60
Добавлен:
26.02.2016
Размер:
6.33 Mб
Скачать

Элементарные булевые функции

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

Одной из важнейших интерпретаций теории булевых функций является теория переключательных функций. Первоначально математический аппарат теории булевых функций был применен для анализа и синтеза релейно-контактных схем с операциями последовательного и параллельного соединения контактов.

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

Представление булевой функции

x1

x2

x3

f(х123)

0

0

0

1

0

0

1

0

0

1

0

0

0

1

1

1

1

0

0

0

1

0

1

1

1

1

0

0

1

1

1

1

Для формирования столбца значений переменных удобен лексико­графический порядок, в соответствии с которым каждый последующий набор значений получается из предыдущего прибавлением 1 в двоичной системе счисления, например, 100=011+1.

Булевая функция п переменных может иметь 2n наборов. Поскольку функция принимает только два значения, общее число булевых функций и переменных равно 22n. Таким образом, функция одной переменной может иметь четыре значения: у = х; у = -x (отрицание х); у = 0 (константа 0); у = 1 (константа 1).

Из них выделим функцию "отрицание X" (обозначается -X). Эта функция представлена в таблице

Функция отрицания

x

-x

0

1

1

0

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

Булевы функции двух переменных

x1 x2

x1 x2

x1 & x2

x1 x2

x1 ~ x2

x1 x2

x1 x2

x1 x2

0 0

0

0

1

1

0

1

1

0 1

1

0

1

0

1

0

1

1 0

1

0

0

0

1

0

1

1 1

1

1

1

1

0

0

0

В таблице представлены следующие функции двух переменных:

x1 x2 – дизъюнкция;

x1 & x2 – конъюнкция;

x1 x2 – импликация;

x1 ~ x2 – эквивалентность;

x1 x2 – сложение по модулю 2;

x1 x2 – стрелка Пирса;

x1 x2 – штрих Шеффера

Остальные функции специальных названий не имеют и могут быть выражены через перечисленные выше функции.

Формулы логики булевых функций

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

1. Любая переменная, а также константы 0 и 1 есть формула.

2. Если A и B - формулы, то ¬A, AB, A&B, AB, A~B есть формулы.

3. Ничто, кроме указанного в пунктах 1-2, не есть формула.

Пример 2.1.

Выражение (-xy)&((yz)~x) является формулой

Выражение (–x&yz¬~x) не является формулой

Часть формулы, которая сама является формулой, называется подформулой.

Пример 2.2.

x&(yz) – формула; yzее подформула.

Функция f есть суперпозиция функций f1,f2, ... ,fn, если f получается с помощью подстановок этих формул друг в друга и переименованием переменных.

Пример 2.3.

f1 = х12 (конъюнкция); f2 =-x (отрицание).

Возможны две суперпозиции:

1)f=f1(f2) = (—х1)&(—х2) - конъюнкция отрицаний;

2)f=f2(f1) = -(x12) - отрицание конъюнкции.

Порядок подстановки задается формулой.

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

Пример 2.4.

Построим таблицу значений функции

f(x123)=¬(х2 ¬х3)~( x1х2).

Вычисление функции f(x1 х2, х3)

x1

x2

x3

¬x3

x2¬x3

¬(x2¬x3)

¬x1

¬x1 x2

f(x1,х2,х3)

0

0

0

1

1

0

1

1

0

0

0

1

0

1

0

1

1

0

0

1

0

1

1

0

1

1

0

0

1

1

0

0

1

1

1

1

1

0

0

1

1

0

0

0

1

1

0

1

0

1

0

0

0

1

1

1

0

1

1

0

0

1

0

1

1

1

0

0

1

0

1

1

Таким образом, формула каждому набору аргументов ставит в соответствие значение функции. Следовательно, формула так же, как и таблица, может служить способом задания функции. В дальнейшем формулу будем отождествлять с функцией, которую она реализует. Последовательность вычислений функции задается скобками. Принято соглашение об опускании скобок в соответствии со следующей приоритетностью операций: ¬, &, ,  и ~.

Тут вы можете оставить комментарий к выбранному абзацу или сообщить об ошибке.

Оставленные комментарии видны всем.