Зарегистрироваться

Булева функция

Категории Дискретная математика | Под редакцией сообщества: Математика

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

Булевы функции получили своё название по имени английского математика Дж. Буля (02.11.1815–08.12.1864). С давних времён эти функции играют важную роль в вопросах оснований математики и математической логике. С середины 20-го века булевы функции широко используются в различных теоретических и прикладных задачах дискретной математики и математической кибернетики.

Задание функций таблицами

Пусть E = {0, 1}, X— некоторое счётное множество переменных, En— множество всех наборов (α1, …,  αn) из нулей и единиц, n ≥ 1. Пусть  f (n) — отображение множества En в E, n ≥ 1, x1, …, xn — переменные из множества X, и пусть функция  f (n) (x1, …, xn) задаёт это отображение, где En — область определения, E — область значений, x1, …, xn — переменные, от которых зависит f (n) (x1, …, xn). Функция f (n) (x1, …, xn) называется n-местной булевой функцией (или функцией алгебры логики), а f (n) — n-местным функциональным символом, соответствующим этой функции. Верхние индексы у функциональных символов, как правило, опускаются, однако при этом указывается число переменных, от которых зависят рассматриваемые функции.

Множество всех булевых функций обозначается через P2. Так как число двоичных наборов длины n конечно (и равно 2n), то каждая функция f (x1, …, xn) из P2 может быть полностью задана таблицей, в левой части которой выписаны все наборы значений переменных x1, …, xn, а в правой части — соответствующие им значения функции. На каждом из 2n наборов функция f (x1, …, xn) может принимать любое из двух значений. Отсюда следует, что число функций алгебры логики от переменных x1, …, xn равно 22^n. Таким образом, с одной стороны, число функций от фиксированного (конечного) множества переменных конечно, а с другой — это число очень быстро растёт с ростом числа переменных.

С теоретико-множественной точки зрения функция алгебры логики f (x1, …, xn) — это не просто отображение множества всех наборов длины n из нулей и единиц в множество {0, 1}, а совокупность такого отображения и упорядоченного набора x1, …, xn переменных. В этом смысле функции f (x1, x2, x3) и f (x2, x1, x3), вообще говоря, различны, хотя и определяются одним и тем же отображением {0, 1}3 → {0, 1}. В соответствии с этим возникает следующее понятие равенства функций: функции равны, если они зависят от одного и того же множества переменных и задают одно и то же отображение. А именно, булевы функции f ( x1, …, xn) и g (x1, …, xn) называются равными (обозначение f = g), если f (α1, …, αn) = g (α1, …, αn) для любого набора (α1, …, αn) из нулей и единиц.

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

При n = 1 будет всего 4 функции, указанные в табл.1, где 0 — константа 0, x — тождественная функция, ¬ x — отрицание x, 1 — константа 1.

 

0

¬ x 

1

0

0

0

1

1

0

0

1

0

1

Таблица 1

При n = 2 будет уже 16 функций. Некоторые из них указаны в табл. 2.

x1

x2

x1& x2

x1\/ x2

x1+ x2

x1→ x2

x1/ x2

0

0

0

0

0

1

1

0

1

0

1

1

1

1

1

0

0

1

1

0

1

1

1

1

1

0

1

0

Таблица 2

 

Функция x1&x2 называется конъюнкцией x1 и x2 или логическим умножением (И), она обозначается также x1x2. Функция x1\/x2 называется дизъюнкцией x1 и x2 или логическим сложением (ИЛИ); x1+ x2 называется суммой x1 и x2 по модулю 2; (исключающее ИЛИ); x1→x2 называется импликацией x1 и x2; x1/ x2 — это штрих Шеффера.

Существенные и несущественные переменные

Переменная xi функции f (x1, …, xn) называется существенной, если существуют такие два набора из нулей и единиц, различающиеся только в i-й компоненте, что функция f на этих наборах принимает различные значения. В этом случае говорят, что функция f (x1, …, xn) существенно зависит от переменной xi. Переменная xi, не являющаяся существенной, называется несущественной или фиктивной переменной функции f (x1, …, xn); в этом случае говорят, что функция f (x1, …, xn) не зависит существенно от переменной xi.

Например, функция f (x1, x2) = xx2 существенно зависит от переменной x1, так как f (0, 1)  ≠ f (1, 1). Она также существенно зависит от переменной x2, так как f (1, 0) ≠ f (1, 1). Аналогично показывается, что все функции, приведённые в табл. 2, существенно зависят от обеих переменных. Очевидно, что константы 0 и 1 не имеют существенных переменных.

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

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

Формулы. Реализация функций формулами

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

A = { f(x1, …, xn1), f2 (x1, …, xn2), … },

 

B — множество функциональных символов, соответствующих функциям из A. Понятие формулы над множеством A определяется индуктивно.

 

  1. Выражение x (где x — переменная из множества X) является формулой над A; такие формулы называются тривиальными.
  2. Если F1, …, Fn — формулы над A, а f — функциональный символ из B, то выражение F вида f(F1,  …, Fn) (то есть функциональный символ, левая скобка, формулы F1, …, Fn в их порядке, правая скобка), является формулой над A; формулы F1, …, Fn называются подформулами формулы F. Подформулами формулы F являются также сама формула F и все подформулы формул F1, …,Fn.

 

Предполагается при этом, что никаких других формул над A не существует, то есть каждая формула над A может быть получена применением конечного числа правил 1 и 2.

Таким образом, формулы над A — это слова определённого вида (конечной длины) в алфавите X U B U V , где V — множество вспомогательных символов, состоящее из символов левой и правой скобок, а также запятой.

Через F(x1, …, xn) обозначается такая формула, в которую входят символы переменных x1, …, xn и только они.

Каждой формуле сопоставляется некоторая функция алгебры логики. Пусть дана формула F (x1, …, xn) над множеством функций A ({x1, …, xn} — множество всех переменных этой формулы), и пусть R = (α1, …, αn) — некоторый набор значений этих переменных. Значение формулы F (а также значение каждой её подформулы) на наборе переменных R (обозначение F|R) определяется индуктивно. Если F — тривиальная формула вида xi, то это значение равно αi.  Пусть F имеет вид

 

f (F1,  …, Fm),

 

где функция f(x1, …, xm) принадлежит множеству A, а F1, …, Fm — формулы над A, для которых значения F1|R, …, Fm|R уже определены и равны β1, …,  βm соответственно. Тогда  F|R = f(β1, …,  βm).

Так как можно определить значение формулы F (x1, …, xn) на любом наборе значений переменных, то тем самым этой формуле сопоставляется некоторая функция f (x1,  …, xn) из P2. Про функцию, сопоставленную указанным выше способом формуле, говорят, что она реализуется или выражается этой формулой. Таким образом, каждая формула выражает какую-то функцию алгебры логики.

Описанный выше способ порождения булевых функций называется операцией суперпозиции. Если функция f реализована некоторой нетривиальной формулой над A, то говорят также, что f получена операцией суперпозиции из функций системы A. Частными случаями операции суперпозиции являются следующие операции над булевыми функциями: перестановка переменных, переименование переменных, отождествление переменных, композиция функций (то есть подстановка функций на места переменных в другие функции). Отметим, что операция введения фиктивной переменной, вообще говоря, не является частным случаем операции суперпозиции.

Эквивалентность формул. Примеры эквивалентных формул

Формулы, реализующие равные функции, называются эквивалентными. Рассмотрим множество функций

A = { x& x2,  x\/ x2 , x+ x2, ¬ x, 0, 1 },

Приведём несколько важных примеров эквивалентных формул над A. В этих примерах  для сокращения записи используются следующие соглашения: внешние скобки опускаются, а переменные и константы в скобки не заключаются.

1.Коммутативность операций &, \/, + :

 

x1 & x2 = x& x1,   x1 \/ x2 = x\/ x1,   x1 + x2 = x+ x1.

 

2.Ассоциативность операций &, \/, + :

 

x1 & ( x2 & x) = ( x1 & x2) & x,

 

x1 \/ ( x2 \/ x) = ( x1 \/ x)  \/ x,

 

x1 + ( x2 + x) = ( x1 + x) + x.

 

3.Дистрибутивность:

( x1 \/  x2 ) & x3  = ( x1 &  x3  ) \/ ( x2 &  x3  ),

 

( x1 + x2 ) & x3  = ( x1 & x3  ) + ( x2 & x3  ),

 

( x1 & x2 ) \/ x3  = ( x1 \/  x3  ) & ( x2 \/ x3  ).

 

4.Закон поглощения:

 

x1 & ( x1 \/ x) = x1,     x1 \/ ( x1 & x) = x1.

 

5.Идемпотентность конъюнкции и дизъюнкции:

 

x & x = x,    x \/ x = x.

 

6.Перенос отрицания через конъюнкцию и дизъюнкцию:

 

¬( x1 & x2 ) = ¬ x1  \/ ¬ x2,

 

¬( x1 \/ x2 ) = ¬ x1  & ¬ x2.

 

7.«Снятие» двойного отрицания:

 

¬ ¬ x = x.

 

8.Некоторые эквивалентности с использованием отрицания и суммы по модулю 2:

x & ¬ x = 0,   x \/ ¬ x = 1,

 

x + ¬ x = 1,    x + x = 0,

 

9.Операции с константами:

x & 1 = x,  x & 0 = 0,

 

x \/ 1 = 1,   x \/ 0 = x,

 

x + 1 = ¬ x,  x + 0 = x. 

Эти равенства проверяются путём вычисления значений функций в левой и правой части соотношений на каждом наборе значений переменных. Из этих правил выводятся некоторые производные правила. А именно, в дизъюнкции из нескольких членов можно произвольным образом их переставлять; аналогично для операций конъюнкции и суммы по модулю 2. Это позволяет ввести дальнейшие соглашения, упрощающие вид формул: в формулах, получающихся многократным применением одной из операций \/, &, + к более простым формулам, скобки опускаются..

Стандартные представления

Введём функцию xδ следующим образом. Положим xδ = x, если δ = 1, и xδ = ¬ x, если δ = 0. Каждую булеву функцию f (x1, …, xn) можно представить в виде

f (x1, …, xm) = V xβ11 & … & xβnn,

где дизъюнкция берётся по всем наборам (β1, …,  βn) из нулей и единиц, таким, что выполняется равенство f (β1, …, βn) = 1. Это выражение является формулой над множеством {&,  \/ , ¬ }. Такое представление функции f называется совершенной дизъюнктивной нормальной формой (или СДНФ).

Таким образом, каждую булеву функцию можно выразить в виде формулы над множеством {&,  \/ , ¬ }. Функция, равная константе 0 (то есть принимающая значение 0 на любом наборе значений переменных), не имеет представления в виде СДНФ (можно также по определению считать, что эта функция представляется пустой СДНФ, не содержащей конъюнкций).

Аналогичным образом определяется совершенная конъюнктивная нормальная форма (СКНФ) — представление функции f (x1, …, xn) в виде

f (x1, …, xm) = & (xβ11 \/ … \/xβnn),

где конъюнкция берётся по всем наборам (¬ β1, …,  ¬ βn) из нулей и единиц, таким, что выполняется равенство f (β1, …,  βn) = 0.

 Каждую булеву функцию можно представить также в виде полинома. Рассматриваются конъюнкции вида xi1,  …, xis, где все i1, …, is различны, s ≥ 1. При s = 1 получаются конъюнкции длины 1, то есть переменные. Константа 1 также называется конъюнкцией длины 0 (от пустого множества переменных). Полиномом Жегалкина называется сумма по модулю 2 попарно различных конъюнкций. Пустой полином (то есть не содержащий конъюнкций) по определению выражает константу 0. Таким образом, полином Жегалкина — это выражение вида

∑ xi1 & … & xis,

где суммирование происходит по различным подмножествам {i1, …, is} множества {1, …, n}. Имеет место следующее утверждение: любая булева функция представима в виде полинома Жегалкина, причём это представление единственно с точностью до перестановки слагаемых и до перестановки множителей в слагаемых.

Примеры полных систем

Система функций A называется полной, если любая функция алгебры логики выражается формулой над A. Из приведённого выше представления в виде СДНФ следует, что система {&,  \/ , ¬ } является полной. Примеры других полных систем могут быть найдены с использованием следующего простого утверждения (которое называется достаточным условием полноты): если A и D — системы булевых функций, такие, что A является полной и любая функция из A выражается некоторой формулой над D, то D — полная система.

Используя это утверждение, можно показать, что системы {1,  \/ , + }, {1, &, + }, { \/ , ¬ }, {&,  ¬ }, {0, → }, { / } являются полными.

Замыкание множества функций. Замкнутые классы

Замыканием множества A (относительно операции суперпозиции) называется множество всех функций, которые могут быть получены из функций системы A применением операции суперпозиции (иными словами, могут быть реализованы нетривиальными формулами над A). Замыкание множества A обозначается через [A]. Из приведённого выше определения понятия равенства функций следует, что множеству [A] принадлежат также и все функции, которые отличаются от функций, реализуемых нетривиальными формулами над A, лишь фиктивными переменными. Таким образом, фактически замыкание систем функций рассматривается относительно двух операций: суперпозиции и введения фиктивной переменной.

Множество булевых функций A называется замкнутым (относительно операции суперпозиции), если A = [A]. Замкнутые множества функций называются также замкнутыми классами.

Операция замыкания обладает следующими свойствами. Пусть A и D — произвольные системы булевых функций. Тогда выполняются соотношения

  1.  A содержится в [A].
  2. Если A содержится в D, то [A] содержится в [D].
  3. [[A]] = [A].
  4. [A] ∩ [D] — замкнутое множество.
  5. Если A — полная система, то выполняется равенство [A] = P2.

Примеры замкнутых классов

Определяются следующие свойства функций алгебры логики. Говорят, что функция f (x1, …, xn) сохраняет константу 0 (соответственно 1), если выполняется равенство f (0, …, 0) = 0 (соответственно f (1, …, 1) = 1). Функция f (x1, …, xn) называется монотонной, если для любых двух наборов (α1, …,  αn) и (β1, …,  βn) из En, таких, что α1   ≤  β1,  …,  αn   ≤  βn , выполняется неравенство

f (α1, …,  αn) ≤ f (β1, …, βn);

функция f (x1, …, xn) называется самодвойственной, если для любого набора (α1, …, αn) из En выполняется равенство

¬ f (¬ α1, …, ¬  αn) = f (α1, …,  αn);

функция f (x1, …, xn) называется линейной, если имеет место представление

f (x1, …, xn) = c0  + c1 x1 + … +  cn xn,

где c0 , c1 , …, cn  принадлежат множеству  {0, 1} (то есть если в представлении этой функции в виде полинома Жегалкина содержатся только линейные члены).

Выделяются следующие множества булевых функций: T0 — множество всех функций, сохраняющих константу 0, T1 — множество всех функций, сохраняющих константу 1, M — множество всех монотонных функций, S — множество всех самодвойственных функций, L — множество всех линейных функций.

Из определения следует, что множества T0, T1, M, S и L являются замкнутыми классами, причём ни один из этих классов не содержится в другом.

Критерий полноты. Предполные классы

Имеет место следующий критерий функциональной полноты систем булевых функций: система A функций алгебры логики полна тогда и только тогда, когда она целиком не содержится ни в одном из классов T0 , T1, M, S и L.

Из этого критерия следует, что из любой полной системы можно выделить полную подсистему, состоящую не более чем из пяти функций; кроме того, следует, что каждый замкнутый класс F булевых функций, такой, что F ≠  P2, содержится в одном из пяти классов T0 , T1, M, S и L.

Пусть F и G — замкнутые классы булевых функций, такие, что F содержится в G. Класс F называется предполным в G, если F ≠ G и для любой функции f из множества G \ F система G U {f} является полной в G. В P2 существует только пять предполных классов: T0, T1, M, S и L.

Формулировка основных теорем Э. Поста

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

Пусть F — произвольный замкнутый класс булевых функций, а A — некоторая система функций, содержащихся в F. Говорят, что система A порождает замкнутый класс F, если [A] = F. В этом случае говорят также, что система A является полной в F. Базисом класса F называется такая порождающая F система A, любая собственная подсистема которой не порождает F. Справедливы следующие два принадлежащих Э. Посту утверждения: множество всех замкнутых классов функций алгебры логики имеет счётную мощность; каждый замкнутый класс булевых функций имеет конечный базис.

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

Рекомендуемая литература

1. Конспект лекций О.Б. Лупанова по курсу «Введение в математическую логику» / Отв. ред. А. Б. Угольников. — М.: Изд-во ЦПИ при механико-математическом факультете МГУ им. М.В. Ломоносова, 2007. — 192 c.

2. Яблонский С. В. Введение в дискретную математику. — М.: Высшая школа, 2008. — 384 с.

3. Post E.L. Introduction to a general theory of elementary propositions (Doctoral dissertation, Columbia University, 1920)// Amer. J. Math. — 1921. — 43, № 3, July. — P. 163–85. [Reprinted in: Solvability, provability, definability: the collected works of Emil L. Post // Martin Davis editor. Boston, Basel, Berlin: Birkhauser, 1994. — P. 21–43.].

4. Post E. L. Two-valued iterative systems of mathematical logic // Ann. Math. Stud. Princeton; London: Princeton Univ. Press, 1941. — № 5. — 122 р. [Reprinted in: ibid. — P. — 249–374.].

5. Яблонский С. В., Гаврилов Г . П., Кудрявцев В. Б. Функции алгебры логики и классы Поста. М.: Наука, 1966. — 120 с.

6. Угольников А. Б. Классы Поста. — М.: Изд-во ЦПИ при механико-математическом факультете МГУ им. М. В. Ломоносова, 2008. — 64 с.

Эта статья еще не написана, но вы можете сделать это.