- •Ф.К. Алиев, и.А. Юров
- •Введение
- •Основные способы задания двоичных функций
- •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-полнота
- •Список Литературы
Частично рекурсивные функции и их вычислимость
Приведем еще один класс вычислимых функций, предложенный в 30-х годах XX века (Гедель, Клини, Черч) в качестве уточнения понятия алгоритма — класс частично рекурсивных функций. Данный класс определяется путем указания конкретных исходных функций и фиксированного множества операций получения новых функций из заданных. Ниже рассматриваются функции типа .
В качестве базисных функций берутся следующие:
нуль-функция: ;
функция следования: ;
функции выбора аргументов:
;
допустимыми операциями над функциями являются операции суперпозиции (подстановки), рекурсии и минимизации.
Операция суперпозиции. Пусть даны n-местная функция g и n функций . Считаем, что функциизависят от одних и тех же переменных. Это можно сделать путем введения фиктивных переменных. Суперпозицией (подстановкой) функцийg и называется функция
.
Если среди заданных функций имеются частичные, то и функция h будет частичной. Функция h на наборе переменных определена тогда и только тогда, когда определены все функциии функцияg определена на наборе . Операцию суперпозиции обозначают.
Операция рекурсии (точнее: примитивной рекурсии). Пусть заданы n-местная функция и (n + 2)-местная функция . Определим (n + 1)-местную функцию f индуктивным образом с помощью соотношений:
;
.
Ясно, что данные соотношения однозначно определяют функцию f. Если функции g и h частичные, то считается определенной в том и только в том случае, когда определеныипри. Значит, еслине определено, то ине определено при. Про функциюf говорят, что она получена рекурсией из функций g и h и обозначают f = R(g, h).
Операция минимизации. Пусть задана n-местная функция . Зафиксируем набори рассмотрим уравнение относительноy: . Будем решать данное уравнение, вычисляя последовательно,,, …, и сравнивая с. Наименьшееy, для которого выполнено исходное уравнение обозначим через . При этом считаем, чтоy определено, если определено при всех. В противном случае считаем, чтоy не определено. Значение y есть функция f от переменных , про которую говорят, что она получена из функцииg операцией минимизации и обозначают . Заметим, что определенные выше операцииS и R, будучи примененными к всюду определенным функциям, дают всюду определенные функции. Операция М может давать частичные функции даже при применении к всюду определенным функциям.
Пример 12.1. . Здесьвсюду определена, ноопределена только при.
Дадим теперь основное определение данного раздела.
Определение 12.2. Функция называетсячастично рекурсивной, если она может быть получена из базисных функций применением конечного числа раз операций суперпозиции, рекурсии и минимизации. Иногда частично рекурсивные функции называют функциями, вычислимыми по Черчу. Всюду определенная частично рекурсивная функция называетсяобщерекурсивной. Если рассматривать тот же базис функций, но в качестве допустимых операций брать операции суперпозиции и рекурсии, то получаемые функции называются примитивно-рекурсивными.
Обозначим: Ч — класс частично рекурсивных функций, Ч0 — класс общерекурсивных функций, Чпр — класс примитивно-рекурсивных функций.
Класс частично рекурсивных функций — одно из главных понятий теории алгоритмов. Это объясняется тем, что какие бы классы точно очерченных «алгоритмов» до сих пор не рассматривались, во всех случаях оказывалось, что соответствующие числовые функции, вычислимые посредством алгоритмов этих классов, были частично рекурсивными. Поэтому общепринятой является гипотеза, формулируемая как Тезис Черча (для частично рекурсивных функций). Класс алгоритмически вычислимых функций совпадает с классом всех частично рекурсивных функций. Принятие данного тезиса позволяет истолковывать доказательство, что некоторая функция не является частично рекурсивной, как доказательство отсутствия алгоритма вычисления ее значений.
Сделаем одно замечание. Пусть необходимо доказать, что конкретная функция вычислима. Это можно сделать следующими способами:
1) написать программу машины Тьюринга или МПД, вычисляющую f, либо показать, что f принадлежит классу функций, вычислимость которых доказана;
2) написать рекурсивную схему для f, показывающую, что f — частично рекурсивна;
3) дать неформальное (но достаточно точное) описание алгоритма, вычисляющего f, и затем сослаться на тезис Черча.
Мы будем пользоваться способом 3 как строгим методом доказательства, основанным на тезисе Черча.
Приведем примеры частично рекурсивных функций и установим частичную рекурсивность основных числовых функций, используемых в арифметике и анализе.
1. Функции-константы. .
2. Функция . Имеем,. Это есть рекурсия с помощью функцийи.
3. Функция . Имеем,. Это есть рекурсия с помощью функций,.
4. Функция . Имеем,. Это есть рекурсия с помощью функций,.
5. Функция Имеем,. Это рекурсия, в которой,.
6. Функция Имеем,. Это рекурсия, в которой,.
7. Функция Имеем,. Это рекурсия, в которой,.
8. Функция Имеем,. Это рекурсия, в которой,.
9. Функция . Имеем. Отметим, что поскольку функцияобщерекурсивна, то можно заменить определение операции минимизации, рассматривая вместофункции вида, где. Определяемый класс функций при этом будет тем же самым.
10. Функция . Имеем.
11. Функция . Имеем.
12. Функция — целая часть от деленияx на y. По определению полагаем , чтобы фукнция была всюду определена. Имеем. Действительно, приy = 0 .
При существует минимальное z, , при которомилиили, откуда.
13. Функция — остаток от деленияx на y. Имеем .
14. Функция
Имеем .
15. Двоичная степень числа x. , если, но не выполняется. Имееми замечаем, что функция— общерекурсивна.
16. Функция, отличная от 0 в конечном числе точек. Если в точках, причем, то имеем .
Аналогично можно доказать (примитивную) рекурсивность функций:
число простых чисел, не превосходящих x;
—квадратичный остаток числа x;
—-е простое число (,,,, и т.д.).
Покажем теперь вычислимость на МПД частично рекурсивных функций.
Базисные функции o(n), s(n), вычислимы на МПД командами Z(n), S(n), T(m, 1).