- •Ф.К. Алиев, и.А. Юров
- •Введение
- •Основные способы задания двоичных функций
- •1.1. Табличный способ задания
- •1.2. Геометрический способ задания
- •1.3. Задание двоичных функций формулами
- •Основные способы задания двоичных функций (продолжение)
- •2.1. Нормальные формы двоичных функций
- •2.2. Многочлен Жегалкина и действительный многочлен двоичной функции
- •2.3. Теорема о разложении в ряд Фурье
- •Полнота и замкнутость. Критерий полноты системы. Функционально полные системы. Замкнутые классы булевых функций
- •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
,\f |
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, x1x2), — сложение по модулю 2 (x1x2), — дизъюнкция (x1x2), — функция Пирса (x1x2), — импликация (x1x2), — функция Шеффера (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 называется равновероятной.
Для двоичных функций используются и другие способы задания, приспособленного для рассматриваемой в каждом конкретном случае задачи, которые будут рассмотрены далее.