- •Ф.К. Алиев, и.А. Юров
- •Введение
- •Основные способы задания двоичных функций
- •1.1. Табличный способ задания
- •1.2. Геометрический способ задания
- •1.3. Задание двоичных функций формулами
- •Основные способы задания двоичных функций (продолжение)
- •2.1. Нормальные формы двоичных функций
- •2.3. Теорема о разложении в ряд Фурье
- •2.2. Многочлен Жегалкина и действительный многочлен двоичной функции
- •Полнота и замкнутость. Критерий полноты системы. Функционально полные системы. Замкнутые классы булевых функций
- •3.1. Полнота и замкнутость. Функционально полные системы
- •3.2. Замкнутые классы булевых функций
- •3.3. Критерий полноты системы булевых функций
- •4.1. Псевдобулевы функции
- •4.2. Функции k-значной логики
- •5.1 Минимизация двоичных функции
- •5.2. Геометрическая интерпретация минимизации днф
- •6.1. Метод Квайна — Мак-Класки нахождения сокращённой днф двоичной функции
- •6.2. Метод нахождения тупиковых днф
- •6.3. Метод Петрика нахождения тупиковых днф
- •Алгебраические системы
- •7.1. Алгебраические системы. Булевы алгебры
- •7.2. Изоморфизм алгебраических систем
- •Алгебры высказываний. Предикаты и операции над ними
- •8.1. Основные логические операции и их свойства
- •8.2. Предикаты и операции над ними
- •Исчисление предикатов
- •9.1. Общее понятие о логическом исчислении
- •9.2. Формулы алгебры предикатов
- •9.3. Равносильность формул. Основные отношения равносильности
- •9.4. Использование равносильностей для упрощения формул
- •9.5. Построение исчисления предикатов
- •9.6. Выводимость и доказуемость формул
- •9.7. Семантика исчисления предикатов
- •Понятие о теории моделей
- •Элементы теории алгоритмов
- •11.1. Основные требования к алгоритмам
- •11.2. Машина Тьюринга и функции, вычислимые по Тьюрингу
- •11.3. Машины произвольного доступа и вычислимые функции
- •Частично рекурсивные функции и их вычислимость
- •Вычислимость суперпозиции
- •Вычислимость рекурсии
- •Вычислимость минимизации
- •Нумерация наборов чисел и слов
- •Нормальные алгоритмы
- •Нумерация алгоритмов
- •1. Нумерация машин Тьюринга
- •2. Нумерация мпд-программ
- •Универсальные функции
- •Алгоритмически неразрешимые проблемы
- •16.1. Алгоритмически неразрешимые проблемы
- •16.2. Примечательные алгоритмически неразрешимые проблемы
- •Характеристики сложности вычислений
- •Характеристика сложности вычислительных задач
- •18.1. Классы сложности p и np и их взаимосвязь
- •18.3. Основные np-полные задачи. Сильная np-полнота
- •Список Литературы
Введение
Данное учебное пособие является основой для преподавания курса «Математическая логика и теория алгоритмов». Этот курс преподается студентам третьего курса факультета «Информационная безопасность» МИФИ в рамках специальности «Комплексное обеспечение информационной безопасности автоматизированных систем» (шифр 075500).
В этом пособии отражены, по мнению авторов, теоретические результаты, лежащие в основе создания устройств криптографической защиты информации и оценки их стойкости. Так, например, один из подходов к анализу и обоснованию стойкости алгоритмов криптографической информации состоит в оценке вычислительной сложности соответствующих преобразований. Кроме того, большое число криптографических алгоритмов строятся на основе преобразований, которые реализованы с помощью булевых функций. Естественным образом возникает необходимость наличия у специалистов в области информационной безопасности навыков использования аппарата булевых функций и теории сложности вычисления для анализа криптографических преобразований. Теоретические основы для возможности реализации этих навыков приведены в данном учебном пособии.
Излагаемый материал представлен в виде 18 лекций. Объем лекций различен. Это, прежде всего, связано с тем, что определенные разделы курса предназначены для самостоятельного изучения. Так, например, весьма обширно представлены результаты, связанные с реализацией вычислительных процедур на таких моделях вычислительных устройств, как машины Тьюринга и МПД-машины. При этом изложение этих результатов, в целом, носит описательный характер и в полной мере доступен для успешной самостоятельной работы студентов. В учебном пособии приведено большое количество результатов, связанных с изучением конкретных вычислительных задач, что также может быть изучено самостоятельно.
Л е к ц и я 1
Основные способы задания двоичных функций
1.1. Табличный способ задания
Определение
1.1. Двоичной
функцией от n
(n
1) переменных называется функция
,
аргументы и значения которой выбираются
из множеств
,
т.е.
f:
,
где
,
.
Замечание 1.2. Двоичные функции от n переменных также называют булевыми (булевскими) функциями от n переменных или n-местными булевыми функциями.
На
множестве
определим так называемый лексикографический
порядок, т.е. для любого двоичного набора
определим его номер
.
Тогда двоичная функция однозначно может быть задана табл.1.1 (называемой таблицей истинности).
Таблица 1.1
|
Номер набора |
x1 … xn-1 xn |
f(x1, ..., xn) |
|
0 |
0 ... 0 0 |
f(0, ..., 0,0) |
|
1 |
0 ... 0 1 |
f(0, ..., 0,1) |
|
. . . |
. . . |
. . . |
|
2n – 2 |
1 ... 1 0 |
f(1, ..., 1,0) |
|
2n – 1 |
1 ... 1 1 |
f(1, ..., 1,1) |
При
указанной договоренности о расположении
наборов из
функция однозначно определяется
набором — столбцом значений. Отсюда
непосредственно вытекает справедливость
следующего утверждения.
Утверждение
1.3. Число
двоичных функций от n
переменных равно
.
Перечислим все двоичные функции от одной и двух переменных. Имеется четыре функции от одной переменной (табл.1.2).
Таблица 1.2
|
x1 \ f |
f0 |
f1 |
f2 |
f3 |
|
0 |
0 |
0 |
1 |
1 |
|
1 |
0 |
1 |
0 |
1 |
|
Условное обозначение |
0 |
|
|
1 |
Функции
и
не зависят от значения переменной
и называютсяконстантными
(
,
).
Функция
называетсятождественной
функцией, а функция
называетсяотрицанием.
Функций от двух переменных — шестнадцать (табл.1.3).
Таблица 1.3
|
|
f0 |
f1 |
f2 |
f3 |
f4 |
f5 |
f6 |
f7 |
|
0 0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
0 1 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
|
1 0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
|
1 1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
|
Обозначение |
0 |
x1x2 |
|
x1 |
|
x2 |
x1x2 |
x1x2 |
Продолжение табл.1.3
|
x1, x2\ f |
f8 |
f9 |
f10 |
f11 |
f12 |
f13 |
f14 |
f15 |
|
0 0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
|
0 1 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
|
1 0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
|
1 1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
|
Обозначение |
x1x2 |
x1 ~ x2 |
|
|
|
x1 x2 |
x1x2 |
1 |
Важнейшими
из них являются:
—
конъюнкция (x1
x2,
x1
& x2,
x1
x2),
—
сложение по модулю 2 (x1
x2),
—
дизъюнкция (x1
x2),
—
функция Пирса (x1
x2),
—
импликация (x1
x2),
—
функция Шеффера (x1|
x2).
Определение
1.4. Переменная
xi,
или i-я
переменная двоичной функции f(x1, ...,
xn)
называется существенной
переменной
функции f
(т.е. функция f
существенно
зависит от
xi),
если существует набор
(a1, ..., ai-1, ai+1, ..., an)
,
такой, что
f(a1, ..., ai-1, 0, ai+1, ..., an) f(a1, ..., ai-1, 1, ai+1, ..., an).
В противном случае переменная xi называется несущественной (фиктивной) переменной функции f.
Так, среди функций от двух переменных имеется ровно десять функций, существенно зависящих от всех своих переменных.
Число двоичных функций от n переменных растет с увеличением n чрезвычайно быстро. В табл.1.4 приведена зависимость функций от своих переменных при n 8.
Таблица 1.4
|
n |
Число функций от n переменных |
|
1 |
2 |
|
2 |
16 |
|
3 |
256 |
|
4 |
65536 |
|
5 |
4294967296 |
|
6 |
> 1.8 1019 |
|
7 |
> 3.4 1038 |
|
8 |
> 1.1 1077 |
С табличным заданием функции непосредственно связан такой ее параметр, как вес.
Определение
1.5. Множество
двоичных наборов {(a1,
..., an)
|f(a1,
..., an)
= 1}, на которых функция f
принимает значение 1, называется областью
истинности
функции f.
Мощность области истинности функции f
называется весом
функции f
и обозначается || f ||.
Очевидно, что 0 || f || 2n, причем равенства достигаются лишь для функций-констант 0 и 1. Если || f || = 2n-1, то функция f называется равновероятной.
Для двоичных функций используются и другие способы задания, приспособленного для рассматриваемой в каждом конкретном случае задачи, которые будут рассмотрены далее.
