
- •Булевы функции от n переменных
- •Теорема 3.1.
- •Табличное представление
- •Булевы функции от 1-ой и 2-х переменных
- •Формулы
- •Определение 3.2.
- •Определение 3.3.
- •Булевы функции и логика высказываний
- •Сокращенные днф
- •Многочлены Жегалкина
- •2. Классификация firewall’ов. Пакетные фильтры, stateful inspection firewall’ы и прокси прикладного уровня.
- •Классификация firewall’ов
- •Установление тср-соединения
- •Пакетные фильтры
- •Пограничные роутеры
- •Пример набора правил пакетного фильтра
- •Персональные firewall’ы и персональные устройства firewall’а
- •Прокси-сервер прикладного уровня
- •Выделенные прокси-серверы
- •Гибридные технологии firewall’а
- •Трансляция сетевых адресов (nat)
- •Статическая трансляция сетевых адресов
- •Скрытая трансляция сетевых адресов
Булевы функции от n переменных
Булевы функции1)названы в честь английского математика ХIХ века Дж. Буля, который впервые применил алгебраические методы для решения логических задач. Они образуют самый простой нетривиальный класс дискретных функций - их аргументы и значения могут принимать всего два значения (если мощность множества значений функции равна 1, то это тривиальная функция - константа !). С другой стороны, этот класс достаточно богат и его функции имеют много интересных свойств. Булевы функции находят применение в логике, электротехнике, многих разделах информатики.
Обозначим через B двухэлементное множество {0,1}. Тогда
это
множество всех двоичных
последовательностей (наборов, векторов)
длины n. Булевой функцией от n переменных
(аргументов) называется любая функция
f(x1,
xn):
Bn
B
. Каждый из ее аргументов xi,
1
i
n
, может принимать одно из двух значений
0 или 1 и значением функции на любом
наборе из Bn
также может быть 0 или 1. Обозначим через
множество
всех булевых функций от n переменных.
Нетрудно подсчитать их число.
Теорема 3.1.
Доказательство.Действительно, по теореме 1.1 число функций из k-элементного множества A в m-элементное множество B равно mk . В нашем случае B={0, 1}, а A = Bn . Тогда m=2 и k= |Bn| = 2n . Отсюда следует утверждение теоремы.
Имеется несколько различных способов представления и интерпретации булевых функций. В этом разделе мы рассмотрим геометрическое и табличное представления, а также представление с помощью логических формул. В лекции 4 будет показано, как булевы функции можно представлять с помощью формул специального вида - дизъюнктивных и конъюнктивных нормальных форм и многочленов Жегалкина. Кроме того, в лекциях 1 и 2 (курс "Введение в схемы, автоматы и алгоритмы") будет рассмотрено еще два способа представления булевых функций: логические схемы и упорядоченные бинарные диаграммы решений.
Геометрическое представление
Bn можно рассматривать как единичный n-мерный куб. Каждый набор из нулей и единиц длины n задает вершину этого куба. На рис. 3.1 представлены единичные кубы Bn при n=3,4.
Рис.
3.1.
При
этом существует естественное
взимнооднозначное соответствие между
подмножествами вершин n-мерных единичных
кубов и булевыми функциями от n переменных:
подмножеству A
Bn
соответствует его характеристическая
функция
Например,
верхней грани куба B3
(ее вершины выделены на рисунке)
соответствует функция f:
f(0,0,1)=f(0,1,1)=f(1,0,1)=f(1,1,1) =1 и
f(0,0,0)=f(0,1,0)=f(1,0,0)=f(1,1,0) =0. Очевидно, что
указанное соответствие действительно
взаимнооднозначное: каждая булевая
функция f от n переменных задает
подмножество Af={(x1,
…, xn)|f(x1,
…, xn)=1}
вершин Bn
. Например, функция, тождественно равная
0, задает пустое множество
Bn
, а функция, тождественно равная 1, задает
множество всех вершин Bn
.
Табличное представление
Булевы функции от небольшого числа аргументов удобно представлять с помощью таблиц. Таблица для функции f(x1, …, xn) имеет n+1 столбец. В первых n столбцах указываются значения аргументов x1, …, xn , а в (n+1)-ом столбце значение функции на этих аргументах - f(x1, …, xn) .
Таблица 3.1. Табличное представление функции f(x1, …, xn) |
||||||
x1 |
. |
. |
. |
xn-1 |
xn |
f(x1, …, xn) |
0 |
. |
. |
. |
0 |
0 |
f(0, …, 0,0) |
0 |
. |
. |
. |
0 |
1 |
f(0, …, 0,1) |
0 |
. |
. |
. |
1 |
0 |
f(0, …, 1,0) |
. |
. |
. |
. |
. |
. |
… |
1 |
. |
. |
. |
1 |
1 |
f(1, …, 1,1) |
Наборы аргументов в строках обычно располагаются в лексикографическом порядке:
(
1,
…,
n)
< (β1,
…, βn)
существует
такое i
[1,n],
что при j < i
j
= βj
, а
i
< βi
.
Если эти наборы рассматривать как записи чисел в двоичной системе счисления, то 1-ая строка представляет число 0, 2-ая - 1, 3-я - 2, … , а последняя - 2n-1 .
При больших n табличное представление становится громоздким, например, для функции от 10 переменных потребуется таблица с 1024 строками. Но для малых n оно достаточно наглядно.