
Лекция 3
Глава 2. Функции алгебры логики
§ 2.1. Булевы функции и способы их задания
|
Булев вектор. Функции
алгебры логики (булевы функции). Задание
булевых функций таблицей истинности
и вектором значений. Элементарные
булевы функции одной и двух переменных.
Формулы над множеством функций, задание
функций формулами, равносильные
формулы. Доказательство равносильности
формул с использованием таблиц
истинности. Основные равносильности
над множеством
|
Базовые понятия и утверждения
1. Булевы векторы и булевы функции
от
переменных. Булевым вектором
называется упорядоченный набор
,
где
принимают значения 0
или 1.
Числа
называют координатами вектора,
число
- его длиной.
Для краткого обозначения вектора
используют символ
.
Например, (0,0), (0,1), (1,0), (1,1) - булевы векторы длины 2; (0,0,0), (0,0,1), (0,1,0), (0,1,1), (1,0,0), (1,0,1), (1,1,0), (1,1,1) - булевы векторы длины 3.
Число булевых векторов длины n
равно
.
Действительно, с точки зрения комбинаторики
булев вектор длины n
- упорядоченная выборка элементов
множества
,
которую можно построить за n
шагов (на первом шаге выбрать первую
координату, на втором - вторую и т.д.).
Для выбора каждой координаты есть два
варианта (0 или
1). Следовательно,
согласно правилу произведения (см. §
1.2), последовательный выбор n
координат можно сделать
способами.
Множество булевых векторов обозначают
и называют единичным
-мерным
кубом.
Пример 1.
Найти число булевых векторов длины
16, у которых
.
◄ Для подсчета используем правило
произведения. Чтобы составить требуемый
вектор, нам достаточно последовательно
выбрать восемь координат
.
В качестве каждой из них можно взять
одно из двух чисел: 0
или 1. Таким
образом, общее число векторов требуемого
вида равно
.►
Пример 2. Вектор
имеет номер
.
В дальнейшем нам часто придется перечислять булевы векторы от фиксированного числа переменных в порядке возрастания их номеров. Например, для булевых векторов длины 2 этот порядок таков: (0,0), (0,1), (1,0), (1,1). В этом легко убедиться, вычислив номера векторов:
,
,
,
.
Введем понятие функции алгебры логики или, что то же, булевой функции.
Определение. Функция, определенная
на
и принимающая значение 0
или 1, называется
булевой функцией от
переменных.
Для обозначения булевых функций
используют символы
,
а для обозначения аргументов - символы
(часто с индексами). Таким образом, запись
воспринимается как обозначение функции
от
переменных (аргументов).
Чтобы задать булеву функцию
от
переменных, достаточно указать ее
значение (0 или
1) на каждом
наборе
значений аргументов
.
Для задания булевой функции удобно
использовать таблицу истинности
(табл. 2.1). В каждой строке такой таблицы
вначале идет набор
значений переменных
,
а затем значение функции на этом наборе.
Булевы векторы перечисляются сверху
вниз в порядке возрастания номеров.
Таблица 2.1 |
|||||
|
|
|
|
|
|
0 |
0 |
|
0 |
0 |
|
0 |
0 |
|
0 |
1 |
|
0 |
0 |
|
1 |
0 |
|
|
|
|
|
|
|
1 |
1 |
|
1 |
1 |
|
Таблицы истинности булевых функций от
одного числа аргументов отличаются
лишь последним столбцом. Поэтому булеву
функцию можно также задать вектором
значений, выписав его по правому
столбцу таблицы истинности. Поскольку
помимо строки заголовков таблица
содержит
строк (столько, сколько имеется булевых
векторов длины
),
то вектор значений булевой функции от
переменных имеет длину
.
В
частности, чтобы задать какую-нибудь
булеву функцию от двух переменных, нужно
каждому элементу множества
поставить в соответствие либо 0,
либо 1.
Таблица 2.2 |
||
|
|
|
0 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |





По последнему столбцу таблицы выпишем
вектор значений функции
.
Множество булевых функций от
переменных обозначают
,
а множество всех булевых функций -
.
Число булевых функций от
переменных
.
Действительно, каждая булева функция
от
переменных однозначно определяется
вектором значений длины
,
поэтому булевых функций от
переменных столько, сколько булевых
векторов длины
,
т.е.
.
В частности, число булевых функций от одной переменной равно 2, от двух переменных - 4, от трех переменных - 16.
2. Элементарные булевы функции. В табл. 2.3, 2.4 представлены все булевы функции от одной и двух переменных.
Таблица 2.3 |
||||
|
|
|
|
|
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
Таблица 2.4 |
|||||||||
|
|
|
|
|
|
|
|
|
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
|
|||||||||
|
|
|
|
|
|
|
|
|
|
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
Ниже перечислены булевы функции, которые наиболее часто употребляются и потому считаются «элементарными». Эти функции имеют собственные обозначения и названия:
1)
называется тождественным нулем и
обозначается
;
2)
называется тождественной функцией
и обозначается по имени переменной (в
нашем случае
);
3)
называется отрицанием
,
обозначается
или
и читается «не
»;
4)
называется тождественной единицей
и обозначается
;
5)
называется конъюнкцией, обозначается
или
,
или
и читается «
и
»;
6)
называется сложением по модулю 2,
обозначается
и читается «
плюс
»;
7)
называется дизъюнкцией, обозначается
и читается «
или
»;
8)
называется стрелкой Пирса, обозначается
;
9)
называется эквивалентностью,
обозначается
и читается «
эквивалентно (равносильно)
»;
10)
называется импликацией, обозначается
и читается «
имплицирует (влечет)
».
11)
называется штрихом Шеффера и
обозначается
.
Символы
,
с помощью которых обозначают элементарные
функции, называются логическими
связками.
Для удобства дальнейшего изложения приведем таблицы истинности элементарных функций с учетом введенных обозначений (табл. 2.5 и 2.6).
Таблица 2.5 |
||||
|
0 |
1 |
|
|
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
Таблица 2.6 |
||||||||
|
|
|
|
|
|
|
|
|
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
3. Задание булевых функций формулами. Для задания булевых функций, помимо таблиц, используют формулы, которые обычно строят по «принципу матрешек», вкладывая друг в друга символические обозначения функций. Говоря о формуле, часто указывают, с использованием каких функций она строилась. В некоторых случаях нужно указывать и то, какие использовались переменные.
Например,
- формула над множеством функций,
состоящим из дизъюнкции, импликации и
штриха Шеффера с переменными из множества
,
а
- формула над множеством функций,
состоящим из конъюнкции, отрицания и
эквивалентности, с переменными из
множества
.
При составлении формулы над множеством
функций
с переменными из множества
можно в качестве аргументов функций из
использовать любые переменные из
.
Также на места аргументов функций из
можно подставлять любые ранее составленные
над
формулы (их принято называть подформулами
конечной формулы).
Например,
- формула над множеством функций,
состоящим из конъюнкции, дизъюнкции и
эквивалентности, с переменными из
множества
,
а
,
,
- подформулы этой формулы.
Формула каждому набору значений аргументов ставит в соответствие значение некоторой функции и может служить, наряду с таблицей, способом задания этой функции. При этом говорят, что формула задает (представляет, реализует) функцию. Покажем на примерах, как построить таблицу истинности функции, заданной формулой.
Пример 4. Построить таблицу истинности и выписать вектор значений функции, заданной формулой:
а);
б).
◄ а) Пошаговое построение таблицы
истинности функции
приведено в табл. 2.7.
Таблица 2.7 |
||||
|
|
|
|
|
0 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
Вектор значений функции
.
б) Пошаговое построение таблицы истинности
функции
приведено в табл. 2.8.
Таблица 2.8 |
|||||
|
|
|
|
|
|
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
Вектор значений функции
.
►
Строго понятия формулы над множеством функции и функции, заданной формулой, введем во второй части параграфа.
Для обозначения формулы над множеством
функций
используют запись
или
.
Если хотят обратить внимание на то, что
при написании формулы использовались
переменные
,
то пишут
.
Запись
означает, что формула
задает функцию
.
Функция
,
заданная формулой над множеством функций
,
называется суперпозицией функций
.
Для упрощения записи формул разрешается
опускать у формул внешние скобки, вместо
писать
;
опускать символ конъюнкции «
»
(«
»,«
»),
т.е. вместо
(
,
)
писать
.
Чтобы сократить число скобок в формуле,
среди операций вводят «иерархию». Самой
«старшей» операцией считают отрицание,
следующей за ней - конъюнкцию, затем -
дизъюнкцию и, наконец, импликацию и
эквивалентность (их не упорядочивают).
Если скобки не предписывают противное,
операции в формулах выполняют в порядке
старшинства.
Например, согласно
введенным договоренностям,
формулу
можно записать в виде
.
Составляя таблицу истинности функции,
заданной этой формулой, сначала следует
найти отрицание
,
затем конъюнкцию
и
и только затем эквивалентность
и
.
Одну и ту же функцию можно задать разными формулами. Покажем это на примерах.
Пример 5. Показать,
что формулы
и
задают одну функцию.
◄ Обозначим функцию, заданную первой
формулой,
,
а функцию, заданную второй формулой, -
(табл. 2.9).
Таблица 2.9 |
|||||
|
|
|
|
|
|
0 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
Сравнив последние два столбца таблицы,
убедимся, что функции
и
на одинаковых векторах принимают равные
значения. ►
Если формулы
и
задают одну функцию, то их называют
равносильными и пишут
.
Например,
,
(см. пример 5 и упражнение 2.5).
Теорема 2.1. Для формул над
множеством
имеют место следующие равносильности:
1.
; 2.
;
3.; 4.
;
5.;
6.
;
7.
; 8.
;
9.
; 10.
;
11.
; 12.
;
13.
14.
;
15.
; 16.
;
17.; 18.
;
19.
.
Доказательство. Чтобы доказать любую из равносильностей 1 - 19, нужно убедиться в равенстве функций, которые задаются формулами, записанными в ее левой и правой частях. Для этого достаточно построить таблицы истинности этих функций. В качестве примера докажем равносильность под номером 10 .
Из табл. 2.10 и 2.11 видно, что формулы
и
задают равные функции, следовательно,
они равносильны.
Таблица 2.10 |
|
Таблица 2.11 |
|||||||
|
|
|
|
|
|
|
|
|
|
0 |
0 |
0 |
1 |
|
0 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
|
0 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
|
1 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
|
1 |
1 |
0 |
0 |
0 |
В справедливости остальных равносильностей рекомендуем убедиться самостоятельно. ■
Равносильности 1 - 19 характеризуют свойства дизъюнкции, конъюнкции и отрицания: 1 и 2 - коммутативность, 3 и 4 - ассоциативность, 5 - дистрибутивность конъюнкции относительно дизъюнкции, 6 - дистрибутивность дизъюнкции относительно конъюнкции, 7 и 8 - идемпотентность. Равносильности 9 и 10 называют законами де Моргана, 11 и 12 - законами нуля, 13 и 14 - законами единицы, 15 и 16 - законами поглощения, 17 и 18 - законами отрицания, 19 - законом двойного отрицания.
Ассоциативность конъюнкции и дизъюнкции
позволяет дополнить договоренности
об упрощенной записи формул договоренностью
опускать скобки в случае многократного
последовательного применения только
дизъюнкции или только конъюнкции.
Например, формулу
можно записать в виде
.
В дальнейшем будем также употреблять
следующие обозначения:
и
.
До сих пор мы доказывали равносильность
формул следующим образом: по каждой
формуле восстанавливали таблицу
функции, после чего полученные таблицы
сравнивали. Есть и другой подход -
использование равносильных преобразований.
Он основан на том, что результат
вычисления значения функции по формуле
не зависит от того, как получены значения
переменных, входящих в формулу (брались
они произвольно, как значения независимых
переменных, или были получены в результате
каких-то вычислений). В частности,
равносильности 1 - 19 (см. теорему 2.1)
остаются справедливыми при подстановке
вместо переменных любых формул. Важно
лишь соблюдать следующее правило: при
подстановке в равносильность вместо
некоторой переменной формулы
все вхождения этой переменной в исходное
равенство должны быть одновременно
заменены формулой
.
Например,
используя равносильность
(см. пример 5), можно записать новые
равносильности
(
заменено на
)
и
(
заменено на
,
а
на
),
а используя равносильность
- равносильность
(
заменено на
,
а
на
).
Таким образом, действует принцип: если
- подформула формулы
,
то при замене в формуле
любого вхождения
на равносильную ей формулу
формула
переходит в равносильную ей формулу
.
Применяя этот принцип, можно находить для заданной формулы равносильные ей формулы, что во многих случаях приводит к упрощению исходной формулы.
Пример 6. Применяя равносильные преобразования, упростить формулу:
а)
; б)
.
◄ а)
;
б)
.
►