Россия |
Предварительные сведения
Булевы функции от n переменных
Булевы функции1В отечественной литературе их также часто называют функциями алгебры логики . названы в честь английского математика ХIХ века Дж. Буля, который впервые применил алгебраические методы для решения логических задач. Они образуют самый простой нетривиальный класс дискретных функций - их аргументы и значения могут принимать всего два значения. С другой стороны, этот класс достаточно богат и его функции имеют много интересных свойств. Булевы функции находят применение в логике, электротехнике, многих разделах информатики.
Обозначим через двухэлементное множество
.
Тогда
- это множество всех двоичных последовательностей (наборов, векторов) длины
. Булевой функцией от
переменных (аргументов) называется любая функция
.
Каждый из ее аргументов
может принимать
одно из двух значений 0 или 1 и значением функции на любом
наборе из
также может быть 0 или 1. Обозначим через
множество всех булевых функций от
переменных. Нетрудно
подсчитать их число:
.
Имеется несколько различных способов представления и интерпретации булевых функций. В этом разделе мы рассмотрим табличное представление, а также представление с помощью логических формул. В лекциях "Реализация булевых функций с помощью логических схем" и "Упорядоченные бинарные диаграммы решений (УБДР)" будет рассмотрено еще два способа представления булевых функций: логические схемы и упорядоченные бинарные диаграммы решений.
Табличное представление
Булевы функции от небольшого числа аргументов удобно представлять
с помощью таблиц. Таблица для функции имеет
столбец.
В первых
столбцах указываются значения аргументов
, а в
-ом столбце значение функции на этих аргументах -
.
Наборы аргументов в строках обычно располагаются в лексикографическом порядке: существует такое
, что при
, а
.
Если эти наборы рассматривать как записи чисел в двоичной системе счисления,
то 1-ая строка представляет число 0, 2-ая - 1, 3-я - 2, ... , а последняя
-
.
При больших табличное представление становится громоздким,
например, для
функции от 10 переменных потребуется таблица с 1024 строками. Но для малых
оно достаточно наглядно.