КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Примитивно-рекурсивные функции
При построении рекурсивных функций принят традиционный в теории алгоритмов конструктивный подход: задается «базис», т.е. несколько простейших, очевидным образом вычислимых функций и способ построения из них остальных функций с помощью специальных операторов. В качестве простейших функций в теории рекурсивных функций приняты следующие: 1. 2. 3. Эти функции можно считать простейшими, т.к. для любых значений аргументов из натурального ряда мы немедленно определяем значение функции. Для построения примитивно-рекурсивных функций используются операторы суперпозиции и примитивной рекурсии. Оператором суперпозиции
Пример 1. Пусть
Оператор примитивной рекурсии
При этом значение X считается фиксированным. Работа оператора
Рис. 2.1. Алгоритм вычисления
Пример 2. Вычисление функции
Пусть требуется вычислить 4!. По схеме примитивной рекурсии имеем:
Видно, что всякий раз при вычислении Определение примитивно-рекурсивной функции
Функция называется примитивно-рекурсивной, если она может быть получена из простейших с помощью конечного числа применений операторов суперпозиции и примитивной рекурсии. Очевидно, что примитивно-рекурсивные функции являются всюду определенными, т.к. простейшие функции всюду определены, а операторы суперпозиции и примитивной рекурсии не сужают область определения.
Для того, чтобы показать, что какая-либо функция является примитивно-рекурсивной, достаточно построить ее согласно данному определению. Однако такое построение получается слишком сложным и громоздким. Поэтому в большинстве случаев данную функцию пытаются выразить с помощью суперпозиции и примитивной рекурсии через другие функции, примитивная рекурсивность которых доказана ранее. Приведем примеры доказательства примитивной рекурсивности некоторых простых арифметических функций.
Пример 3. Константа a получается путем суперпозиции функций
Пример 4. Операция сложения
В качестве функции
Пример 5. Примитивная рекурсивность операции умножения доказывается с использованием сложения:
Операция вычитания не является примитивно-рекурсивной, т.к. она не всюду определена: результат операции a-b при
Пример 6. Арифметическое вычитание:
Для доказательства примитивной рекурсивности
т.е. операция Тогда: следовательно арифметическое вычитание примитивно–рекурсивно. Пример 7. Функция
Функция
При доказательстве примитивной рекурсивности не обязательно явным образом использовать оператор примитивной рекурсии.
Пример 8. Примитивная рекурсивность функции
Справедливость этого равенства проверьте самостоятельно.
Рассмотрение ряда примеров позволяет сформулировать некоторые рекомендации относительно того, как следует пытаться установить примитивную рекурсивность какой-либо функции.
1. Во-первых, следует пытаться выразить данную функцию через известные примитивно-рекурсивные функции с помощью суперпозиции. 2. Если все же необходимо явно использовать оператор примитивной рекурсии, следует поступать следующим образом: - определить, по какой переменной проводится примитивная рекурсия; - определить значение (формулу) исследуемой функции при нулевом значении переменной (тем самым получив первую формулу схемы примитивной рекурсии); - выявить, как зависит значение данной функции от ее же значения на предыдущем шаге рекурсии, записать на основе этого вторую формулу схемы. 3. Следует иметь в виду, что если функция не всюду определена (т.е. частичная), то она не примитивно–рекурсивна.
Примитивно-рекурсивными могут быть не только арифметические функции, но и «арифметизованные» логические функции, отношения, предикаты, различные операторы. «арифметизованная» логическая функция – это такая арифметическая функция, которая на множестве { 0,1 } ведет себя как логическая.
Пример 9. Операции
Отношение
Пример 10. Отношение Действительно,
Предикат
Пример 11. Доказать примитивную рекурсивность предиката При доказательстве воспользуемся примитивно–рекурсивными функциями Утверждение «n - простое число» разобьем на две части: 1. 2. Из равенства Примитивная рекурсивность отношения
Вторую часть утверждения запишем в виде:
Примитивная рекурсивность операции
Примитивная рекурсивность операции «®» (импликация) следует из примитивной рекурсивности базисных логических операторов Оператор называется примитивно–рекурсивным, если он сохраняет примитивную рекурсивность функций, т.е. если результат его применения к примитивно–рекурсивным функциям дает снова примитивно–рекурсивную функцию.
Пример 12. Примитивная рекурсивность оператора условного перехода
где Примитивная рекурсивность функции
Дата добавления: 2014-01-07; Просмотров: 5056; Нарушение авторских прав?; Мы поможем в написании вашей работы! |