Булевы выражения

Булевы выражения

В теории дискретных функциональных систем булевой функцией называют функцию типа \mathsf{B}^n\to\mathsf{B}, где \mathsf{B}=\{0,1\}булево множество, а n — неотрицательное целое число, которое называют арностью или местностью функции. Элементы 1 (единица) и 0 (ноль) стандартно интерпретируют как истину и ложь, хотя в общем случае их смысл может быть любым. Элементы \mathsf{B}^n называют булевыми векторами. В случае n = 0 булева функция превращается в булеву константу.

Содержание

Основные сведения

Каждая булева функция арности n полностью определяется заданием своих значений на своей области определения, то есть на всех булевых векторах длины n. Число таких векторов равно 2n. Поскольку на каждом векторе функция может принимать значение либо 0, либо 1, количество всех n-арных булевых функций равно 2^{2^n}. То, что каждая булева функция задаётся конечным массивом данных, позволяет представлять их в виде таблиц. Такие таблицы носят название таблиц истинности и в общем случае имеют вид:

x1 x2 ... xn f(x1,x2,...,xn)
0 0 ... 0 f(0,0,...,0)
1 0 ... 0 f(1,0,...,0)
0 1 ... 0 f(0,1,...,0)
1 1 ... 0 f(1,1,...,0)
\vdots \vdots \vdots \vdots \vdots
0 1 ... 1 f(0,1,...,1)
1 1 ... 1 f(1,1,...,1)

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

Нульарные функции

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

Унарные функции

При n = 1 число булевых функций равно 2^{2^1} = 4. Им соответствуют следующие таблицы истинности.

x g1 (\lnot) g2 (=) g3 (1) g4 (0)
0 1 0 1 0
1 0 1 1 0

Здесь:

  • g1(x) — отрицание (обозначения: \neg x,\,\overline{x},\,x'),
  • g2(x) — тождественная функция,
  • g3(x) и g4(x) — соответственно, тождественная истина и тождественная ложь.

Бинарные функции

При n = 2 число булевых функций равно 2^{2^2} = 16. Им соответствуют следующие таблицы истинности.

x y f1 (\land) f2 (\lor) f3 (\equiv) f4 (\oplus) f5 (\leftarrow) f6 (\rightarrow) f7 (\downarrow) f8\mid )
0 0 0 0 1 0 1 1 1 1
0 1 0 1 0 1 0 1 0 1
1 0 0 1 0 1 1 0 0 1
1 1 1 1 1 0 1 1 0 0
x y f9 f10 f11 f12 f13 f14 f15 f16
0 0 0 0 1 1 0 0 1 0
0 1 0 1 1 0 0 1 1 0
1 0 1 0 0 1 1 0 1 0
1 1 0 0 0 0 1 1 1 0

Здесь:

  • f1(x, y) — конъюнкция (обозначения: x&y, x\cdot y, x y, x\land y),
  • f2(x, y) — дизъюнкция (обозначение: x \lor y),
  • f3(x, y) — эквивалентность (обозначения: x\sim y, x\equiv y, x\leftrightarrow y),
  • f4(x, y) — исключающее «или» (сложение по модулю 2; обозначения: x \oplus y, x+y),
  • f5(x, y) — импликация от y к x (обозначения: x\leftarrow y, x \subset y),
  • f6(x, y) — импликация от x к y (обозначения: x\rightarrow y, x\supset y),
  • f7(x, y) — стрелка Пи́рса (функция Да́ггера, функция Ве́бба, антидизъюнкция; обозначение: x\downarrow y),
  • f8(x, y) — штрих Ше́ффера (антиконъюнкция; обозначение: x \mid y),
  • f9(x, y) — отрицание импликации f6(x, y),
  • f10(x, y) — отрицание импликации f5(x, y),
  • f11(x, y) = g1(x),
  • f12(x, y) = g1(y),
  • f13(x, y) = g2(x),
  • f14(x, y) = g2(y),
  • f15(x, y), f16(x, y) — тождественная истина и тождественная ложь.

Полные системы булевых функций

Суперпозиция и замкнутые классы функций

Результат вычисления булевой функции может быть использован в качестве одного из агрументов другой функции. Результат такой операции суперпозиции можно рассматривать как новую булеву функцию со своей таблицей истинности. Например, функции f(x,y,z)=\overline{x(\overline{y}\lor z)} (суперпозиция конъюнкции, дизъюнкции и двух отрицаний) будет соответствовать следующая таблица:

x y z f(x,y,z)
0 0 0 1
0 0 1 1
0 1 0 1
0 1 1 1
1 0 0 0
1 0 1 0
1 1 0 1
1 1 1 0

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

В качестве простейших примеров замкнутых классов булевых функций можно назвать множество {x}, состоящее из одной тождественной функции, или множество {0}, все функции из которого тождественно равны нулю вне зависимости от своих аргументов. Замкнуты также множество функций \{x,\overline{x}\} и множество всех унарных функций. А вот объединение замкнутых классов может таковым уже не являться. Например, объединив классы {0} и \{x,\overline{x}\}, мы с помощью суперпозиции \overline{0} сможем получить константу 1, которая в исходных классах отсутствовала.

Разумеется, множество P2 всех возможных булевых функций тоже является замкнутым.

Тождественность и двойственность

Две булевы функции тождественны друг другу, если на любых одинаковых наборах аргументов они принимают равные значения. Тождественность функций f и g можно записать, например, так:
f(x_1, x_2, \dots, x_n)=g(x_1, x_2, \dots, x_n)

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

\overline{0}=1 \overline{1}=0 \overline{\overline{x}}=x xy = yx x\lor y=y \lor x
0x = 0 1x = x 0\lor x=x 1\lor x=1 xx=x\lor x=x

А проверка таблиц, построенных для некоторых суперпозиций, даст следующие результаты:

x\overline{x}=0 x\lor\overline{x}=1
\overline{x\cdot y}=\overline{x}\lor\overline{y} \overline{x}\cdot\overline{y}=\overline{x\lor y} (законы де Моргана)

x(y\lor z)=xy\lor xz
x\lor yz=(x\lor y)(x\lor z) (дистрибутивность конъюнкции и дизъюнкции)


Функция g(x_1,x_2,\dots,x_n) называется двойственной функции f(x_1,x_2,\dots,x_n), если f(\overline{x_1},\overline{x_2},\dots,\overline{x_n})=\overline{g(x_1,x_2,\dots,x_n)}. Легко показать, что в этом равенстве f и g можно поменять местами, то есть функции f и g двойственны друг другу. Из простейших функций двойственны друг другу константы 0 и 1, а из законов де Моргана следует двойственность конъюнкции и дизъюнкции. Тождественная функция, как и функция отрицания, двойственна сама себе.

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

Полнота системы, критерий Поста

Основная статья: Критерий Поста

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

Американский математик Эмиль Пост ввёл в рассмотрение следующие замкнутые классы булевых функций:

  • Функции, сохраняющие константу T0 и T1;
  • Самодвойственные функции S;
  • Монотонные функции M;
  • Линейные функции L.

Им было доказано, что любой замкнутый класс булевых функций, не совпадающий с P2, целиком содержится в одном из этих пяти так называемых предполных классов, но при этом ни один из пяти не содержится целиком в объединении четырёх других. Таким образом критерий Поста для полноты системы сводится к выяснению, не содержится ли вся эта система целиком в одном из предполных классов. Если для каждого класса в системе найдётся функция, не входящая в него, то такая система будет полной, и с помощью входящих в неё функций можно будет получить любую другую булеву функцию.

Заметим, что существуют функции, не входящие ни в один из классов Поста. Любая такая функция сама по себе образует полную систему. В качестве примеров можно назвать штрих Шеффера или стрелку Пирса.

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

Теорема Поста открывает путь к представлению булевых функций, синтаксическим способом, который в ряде случаев оказывается намного удобнее чем таблицами истинности. Отправной точкой здесь служит нахождение некоторой полной системы функций \Sigma = \{f_1,\ldots,f_n\}. Тогда каждая булева функция сможет быть представлена некоторым термом в сигнатуре Σ, который в данном случае называют также формулой. Относительно выбраной системы функций полезно знать ответы на следующие вопросы:

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

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

Дизъюнктивная нормальная форма (ДНФ)

Простой конъюнкцией, или конъюнктом, называется конъюнкция некоторого конечного набора переменных, или их отрицаний, причём каждая переменная встречается не более одного раза. Дизъюнктивной нормальной формой или ДНФ называется дизъюнкция простых конъюнкций. Например a \overline{b} c\lor b c\lor\overline{a}  — является ДНФ.

Совершенной дизъюнктивной нормальной формой, или СДНФ относительно некоторого заданного конечного набора переменных называется такая ДНФ, у которой в каждую конъюнкцию входят все переменные данного набора, причём в одном и том же порядке. Например: a \overline{b} c\lor a b c\lor\overline{a} b\overline{c}.

Легко убедиться, что каждой булевой функции соответствует некоторая ДНФ, и даже СДНФ. Для этого достаточно взять таблицу истинности этой функции и найти все булевы векторы, на которых её значение равно 1. Для каждого такого вектора b=(b_1,b_2,\ldots,b_n) строится конъюнкция x_1^{b_1} x_2^{b_2}\ldots x_n^{b_n}, где x_i^1 = x_i x_i^0 = \overline{x_i}. Если взять дизъюнкцию этих конъюнкций, то результатом очевидно будет СДНФ. Поскольку на всех булевых векторах её значения совпадают со значениями исходной функции, она будет СДНФ этой функции. Например, для импликации x\to y, результатом будет \overline{x} y \lor \overline{x}\, \overline{y}\lor x y, что можно упростить до \overline{x}\lor y.

Конъюнктивная нормальная форма (КНФ)

Конъюнктивная нормальная форма (КНФ) определяется двойственно к ДНФ. Простой дизъюнкцией или дизъюнктом называется дизъюнкция одной или нескольких переменных или их отрицаний, причём каждая переменная входит в неё не более одного раза. КНФ — это конъюнкция простых дизъюнкций.

Совершенной конъюнктивной нормальной формой (СКНФ), относительно некоторого заданного конечного набора переменных, называется такая КНФ, у которой в каждую дизъюнкцию входят все переменные данного набора, причём в одном и том же порядке. Поскольку (С)КНФ и (С)ДНФ взаимодвойственны, свойства (С)КНФ повторяют все свойства (С)ДНФ, грубо говоря, «с точностью до наоборот».

КНФ может быть преобразована к эквивалентной ей ДНФ, путём раскрытия скобок по правилу:

a (b\lor c)\to a b\lor a c

которое выражает дистрибутивность конъюнкции относительно дизъюнкции. После этого, необходимо в каждой конъюнкции удалить повторяющиеся переменные или их отрицания, а также выбросить из дизъюнкции все конъюнкции, в которых встречается переменная вместе со своим отрицанием. При этом, результатом не обязательно будет СДНФ, даже если исходная КНФ была СКНФ. Точно также, можно всегда перейти от ДНФ к КНФ. Для этого следует использовать правило

a\lor b c\to (a \lor b)(a \lor c)

выражающее дистрибутивность дизъюнкции относительно конъюнкции. Результат нужно преобразовать способом, описанным выше, заменив слово «конъюнкция» на «дизъюнкция» и наоборот.

Полиномы Жегалкина

Основная статья: Полином Жегалкина

Полином Жегалкина это форма представления логической функции с помощью Функции Жегалкина (Исключающее ИЛИ). Для получения полинома Жегалкина следует выполнить следуюющие действия:

  1. Получить ДНФ функции
  2. Все ИЛИ заменить на Исключающее ИЛИ
  3. Во всех термах заменить элементы с отрицанием на конструкцию: («элемент» «исключающее ИЛИ» 1)
  4. Раскрыть скобки по правилам алгебры Жегалкина и привести попарно одинаковые термы

BDD

См. также

Литература

Ссылки



Wikimedia Foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Полезное


Смотреть что такое "Булевы выражения" в других словарях:

  • ГОСТ Р 54136-2010: Системы промышленной автоматизации и интеграция. Руководство по применению стандартов, структура и словарь — Терминология ГОСТ Р 54136 2010: Системы промышленной автоматизации и интеграция. Руководство по применению стандартов, структура и словарь оригинал документа: 4.1 абстрактная деталь (abstract part): Деталь, которая определена только своей… …   Словарь-справочник терминов нормативно-технической документации

  • Пи-исчисление — исчисление в теоретической информатике   исчисление процессов, изначально разработанное Робином Милнером, Иоахимом Парровом и Дэвидом Уолкером как продолжение работы над исчислением общающихся систем. Целью исчисления является возможность… …   Википедия

  • булево выражение — — [Л.Г.Суменко. Англо русский словарь по информационным технологиям. М.: ГП ЦНИИС, 2003.] Булево выражение Математическое выражение, в котором все переменные имеют значения либо 0 либо 1. [http://www.rfcmd.ru/glossword/1.8/index.php?a=index …   Справочник технического переводчика

  • логический оператор — — [http://www.iks media.ru/glossary/index.html?glossid=2400324] Параллельные тексты EN RU Other operators (NOT, OR, AND, NOT OR and NOT AND) are available in the LOGIC function group for linking the selected list items. In this way binary… …   Справочник технического переводчика

  • булево выражение — — [Л.Г.Суменко. Англо русский словарь по информационным технологиям. М.: ГП ЦНИИС, 2003.] Булево выражение Математическое выражение, в котором все переменные имеют значения либо 0 либо 1. [http://www.rfcmd.ru/glossword/1.8/index.php?a=index …   Справочник технического переводчика

  • лексикон — 3.8 лексикон (lexicon): Набор символов и терминов. Примечание Лексикон состоит из логических символов (таких как булевы выражения и квантификаторы) и нелогических символов. В соответствии с ИСО 18629 нелогическая часть лексикона состоит из… …   Словарь-справочник терминов нормативно-технической документации

  • Дескрипционная логика — Описательные логики[1] или дескрипционные логики[2][источник не указан 861 день](сокр. ДЛ, англ. description logics, иногда используется неточный перевод: дескриптивные логики)  семейство языков представления знаний …   Википедия

  • АЛГЕБРА ЛОГИКИ —         система алгебраич. методов решения логич. задач, а также совокупность задач, решаемых такими методами. А. л. в узком смысле слова алгебраич. (табличное, матричное) построение классич. логики высказываний, в котором рассматриваются… …   Философская энциклопедия

  • Python — У этого термина существуют и другие значения, см. Python (значения). Python Класс языка: му …   Википедия

  • Пайтон — Python Класс языка: функциональный, объектно ориентированный, императивный, аспектно ориентированный Тип исполнения: интерпретация байт кода, компиляция в MSIL, компиляция в байт код Java Появился в: 1990 г …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»