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