Булева функция
Булева функция (функция алгебры логики) — функция, определённая на множестве упорядоченных наборов из нулей и единиц и принимающиая на каждом из этих наборов значение 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.
x |
0 |
x |
¬ 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) = x1 x2 существенно зависит от переменной x1, так как f (0, 1) ≠ f (1, 1). Она также существенно зависит от переменной x2, так как f (1, 0) ≠ f (1, 1). Аналогично показывается, что все функции, приведённые в табл. 2, существенно зависят от обеих переменных. Очевидно, что константы 0 и 1 не имеют существенных переменных.
Значение функции на каждом наборе полностью определяется набором значений её существенных переменных. В связи с этим часто для удобства использования (и следуя возникшей традиции) понятие равенства распространяется также на функции, отличающиеся лишь несущественными переменными, и понимается следующим образом. Две функции называются равными, если у них множества существенных переменных совпадают и на каждом наборе значений этих переменных рассматриваемые функции принимают одинаковые значения.
Таким образом, всякое множество булевых функций вместе с каждой функцией содержит также и все функции, которые отличаются от исходной лишь фиктивными переменными. То есть фактически определяется операция введения фиктивной переменной на рассматриваемом множестве функций.
↑Формулы. Реализация функций формулами
Одним из удобных способов задания функций являются формулы. Пусть дано некоторое (конечное или счетное) множество функций
A = { f1 (x1, …, xn1), f2 (x1, …, xn2), … },
B — множество функциональных символов, соответствующих функциям из A. Понятие формулы над множеством A определяется индуктивно.
- Выражение x (где x — переменная из множества X) является формулой над A; такие формулы называются тривиальными.
- Если 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 = { x1 & x2, x1 \/ x2 , x1 + x2, ¬ x, 0, 1 },
Приведём несколько важных примеров эквивалентных формул над A. В этих примерах для сокращения записи используются следующие соглашения: внешние скобки опускаются, а переменные и константы в скобки не заключаются.
1.Коммутативность операций &, \/, + :
x1 & x2 = x2 & x1, x1 \/ x2 = x2 \/ x1, x1 + x2 = x2 + x1.
2.Ассоциативность операций &, \/, + :
x1 & ( x2 & x3 ) = ( x1 & x2) & x3 ,
x1 \/ ( x2 \/ x3 ) = ( x1 \/ x2 ) \/ x3 ,
x1 + ( x2 + x3 ) = ( x1 + x2 ) + x3 .
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 \/ x2 ) = x1, x1 \/ ( x1 & x2 ) = 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 — произвольные системы булевых функций. Тогда выполняются соотношения
- A содержится в [A].
- Если A содержится в D, то [A] содержится в [D].
- [[A]] = [A].
- [A] ∩ [D] — замкнутое множество.
- Если 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 с.
Выходные данные:
- Просмотров: 4877
- Комментариев: 0
- Опубликовано: 09.03.2011
- Версий: 11 , текущая: 11
- Статус: экспертная
- Рейтинг: 100.0
Автор:
Гашков Сергей Борисович
- профессор; доктор физико-математических наук
Ссылки отсюда
Персоны:Категории:
Дискретная математика; Математика; Математическая кибернетика; Математическая логика;
Детализирующие понятия:Ссылки сюда
Детализирующие понятия: