stringtranslate.com

Общая рекурсивная функция

В математической логике и информатике общая рекурсивная функция , частично рекурсивная функция или μ-рекурсивная функция — это частичная функция преобразования натуральных чисел в натуральные числа, которая «вычислима» как в интуитивном, так и в формальном смысле . Если функция тотальная, ее также называют тотальной рекурсивной функцией (иногда сокращают до рекурсивной функции ). [1] В теории вычислимости показано, что µ-рекурсивные функции — это именно те функции, которые могут быть вычислены с помощью машин Тьюринга [2] [4] (это одна из теорем, подтверждающих тезис Чёрча – Тьюринга ). Мю-рекурсивные функции тесно связаны с примитивно-рекурсивными функциями , и их индуктивное определение (ниже) основано на определении примитивно-рекурсивных функций. Однако не каждая тотально рекурсивная функция является примитивно-рекурсивной функцией — наиболее известным примером является функция Аккермана .

Другими эквивалентными классами функций являются функции лямбда-исчисления и функции, которые могут быть вычислены с помощью алгоритмов Маркова .

Подмножество всех тотально рекурсивных функций со значениями в {0,1} известно в теории сложности вычислений как класс сложности R .

Определение

Мю -рекурсивные функции (или общерекурсивные функции ) — это частичные функции, которые принимают конечные кортежи натуральных чисел и возвращают одно натуральное число. Это наименьший класс частичных функций, который включает исходные функции и замкнут относительно композиции, примитивной рекурсии и оператора минимизации µ .

Наименьшим классом функций, включающим исходные функции и замкнутыми относительно композиции и примитивной рекурсии (т.е. без минимизации), является класс примитивно-рекурсивных функций . Хотя все примитивно-рекурсивные функции являются тотальными, этого нельзя сказать о частично-рекурсивных функциях; например, минимизация функции-преемника не определена. Примитивно-рекурсивные функции являются подмножеством тотально рекурсивных функций, которые являются подмножеством частично-рекурсивных функций. Например, можно доказать, что функция Аккермана является полностью рекурсивной и непримитивной.

Примитивные или «базовые» функции:

  1. Постоянные функции Cк
    н
    : Для каждого натурального числа n и каждого k
    Альтернативные определения вместо этого используют нулевую функцию как примитивную функцию, которая всегда возвращает ноль, и строят константные функции из нулевой функции, функции-преемника и оператора композиции.
  2. Функция-преемник S:
  3. Функция проекции (также называемая функцией идентичности ): для всех натуральных чисел, таких что :

Операторы ( область определения функции, определенной оператором, представляет собой набор значений аргументов, так что каждое применение функции, которое должно быть выполнено во время вычисления, дает четко определенный результат):

  1. Оператор композиции (также называемый оператором подстановки ): для заданной m-арной функции и m k-арных функций :
    Это означает, что определено только тогда, когда и все определены.
  2. Примитивный оператор рекурсии ρ : Учитывая k -арную функцию и k +2-арную функцию :
    Это означает, что определено только тогда, когда и определены для всех
  3. Оператор минимизации µ : Учитывая ( k +1)-арную функцию , k -арная функция определяется следующим образом:

Интуитивно понятно, что минимизация ищет — начиная поиск с 0 и продолжая вверх — наименьший аргумент, который заставляет функцию возвращать ноль; если такого аргумента нет или если встречается аргумент, для которого f не определен, то поиск никогда не завершается и для аргумента не определен

В то время как в некоторых учебниках используется µ-оператор, как он определен здесь, [5] [6], другие, такие как [7] [8], требуют, чтобы µ-оператор применялся только к полным функциям f . Хотя это и ограничивает µ-оператор по сравнению с определением, данным здесь, класс µ-рекурсивных функций остается тем же, что следует из теоремы Клини о нормальной форме (см. ниже). [5] [6] Единственная разница состоит в том, что становится неразрешимым, определяет ли конкретное определение функции µ-рекурсивную функцию, так же как неразрешимо, является ли вычислимая (т. е. µ-рекурсивная) функция полной. [7]

Оператор сильного равенства можно использовать для сравнения частичных µ-рекурсивных функций. Это определено для всех частичных функций f и g , так что

выполняется тогда и только тогда, когда для любого выбора аргументов либо обе функции определены и их значения равны, либо обе функции не определены.

Примеры

Примеры, не связанные с оператором минимизации, можно найти в разделе Примитивно-рекурсивная функция#Examples .

Следующие примеры предназначены только для демонстрации использования оператора минимизации; их можно определить и без него, хотя и более сложным способом, поскольку все они примитивно рекурсивны.

Следующие примеры определяют общерекурсивные функции, которые не являются примитивно-рекурсивными; следовательно, они не могут избежать использования оператора минимизации.

Полная рекурсивная функция

Общерекурсивная функция называется тотальной рекурсивной функцией , если она определена для каждого входного сигнала или, что то же самое, если она может быть вычислена с помощью тотальной машины Тьюринга . Невозможно вычислимо определить, является ли данная общерекурсивная функция полной - см. Проблема остановки .

Эквивалентность с другими моделями вычислимости

В эквивалентности моделей вычислимости проводится параллель между машинами Тьюринга , которые не завершаются для определенных входных данных, и неопределенным результатом для этих входных данных в соответствующей частично рекурсивной функции. Оператор неограниченного поиска не определяется правилами примитивной рекурсии, поскольку они не предоставляют механизма «бесконечных циклов» (неопределенных значений).

Теорема о нормальной форме

Теорема Клини о нормальной форме гласит, что для каждого k существуют примитивно-рекурсивные функции и такие, что для любой µ-рекурсивной функции с k свободными переменными существует e такое, что

.

Число e называется индексом или числом Гёделя для функции f . [10] : 52–53  Следствием этого результата является то, что любая µ-рекурсивная функция может быть определена с использованием единственного экземпляра µ-оператора, примененного к (тотальной) примитивно-рекурсивной функции.

Мински отмечает, что приведенное выше определение по сути является μ-рекурсивным эквивалентом универсальной машины Тьюринга :

Построить U — значит записать определение общерекурсивной функции U(n, x), которая правильно интерпретирует число n и вычисляет соответствующую функцию от x. непосредственное построение U потребовало бы, по существу, того же количества усилий и, по существу, тех же идей , которые мы вложили в построение универсальной машины Тьюринга [11]

Символизм

В литературе используется множество различных символов. Преимущество использования символизма заключается в том, что получение функции путем «вложения» операторов один в другой легче записать в компактной форме. Далее строка параметров x 1 , ..., x n сокращается как x :

например С7
13
( р, с, т, ты, v, ш, x ) = 13
например const 13 ( r, s, t, u, v, w, x) = 13
S(a) = a +1 = def a', где 1 = def 0', 2 = def 0 ' ' и т. д.
тын
я
( х ) = идентификаторн
я
( Икс ) знак равно Икс я
например, У7
3
= идентификатор7
3
( р, с, т, ты, v, ш, Икс) = т
Если нам дано h( x ) = g( f 1 ( x ), ... , f m ( x ) )
час ( Икс ) = Sнм
_
(г, ж 1 , ... , ж м )
Аналогичным образом, но без подстрочных и надстрочных индексов, BBJ пишет:
h( x' )= Cn[g, f 1 ,..., f m ]( x )
  • базовый шаг: h(0, x )= f( x ), и
  • шаг индукции: h(y+1, x ) = g(y, h(y, x ), x )
Пример: определение примитивной рекурсии a + b:
  • базовый шаг: f( 0, a ) = a = U1
    1
    (а)
  • шаг индукции: f(b',a) = (f(b,a))' = g(b, f(b,a),a) = g(b,c,a) = c' = S(U3
    2
    ( б, в, а ))
Р 2 { У1
1
(а), S [ (U3
2
( б, в, а ) ] }
Пр{ У1
1
(а), S[ (U3
2
( б, в, а ) ] }

Пример : Клини приводит пример того, как выполнить рекурсивный вывод f(b, a) = b + a (обратите внимание на обращение переменных a и b). Он начинает с 3 начальных функций

  1. S(а) = а'
  2. ты1
    1
    (а) = а
  3. ты3
    2
    ( б, с, а ) = с
  4. g(b, c, a) = S(U3
    2
    ( б, с, а )) = с'
  5. базовый шаг: h( 0, a ) = U1
    1
    (а)
шаг индукции: h( b', a ) = g( b, h( b, a ), a )

Он приезжает:

а+b = R2 [ U1
1
, С3
1
(С, У3
2
) ]

Примеры

Смотрите также

Рекомендации

  1. ^ «Рекурсивные функции». Стэнфордская энциклопедия философии . Лаборатория метафизических исследований Стэнфордского университета. 2021.
  2. ^ Стэнфордская энциклопедия философии , Рекурсивные функции входа, раздел 1.7: «[Класс µ-рекурсивных функций] совпадает с классом функций, вычислимых по Тьюрингу, введенными Аланом Тьюрингом, а также с классом λ -определяемые функции, введенные Алонсо Чёрчем » .
  3. ^ Клини, Стивен С. (1936). «λ-определимость и рекурсивность». Математический журнал Дьюка . 2 (2): 340–352. дои : 10.1215/s0012-7094-36-00227-2.
  4. ^ Тьюринг, Алан Мэтисон (декабрь 1937 г.). «Вычислимость и λ-определимость». Журнал символической логики . 2 (4): 153–163. дои : 10.2307/2268280. JSTOR  2268280. S2CID  2317046.Схема доказательства на стр.153: [3]
  5. ^ Аб Эндертон, HB, Математическое введение в логику, Academic Press, 1972
  6. ^ Аб Булос, Г.С., Берджесс, Дж.П., Джеффри, Р.К., Вычислимость и логика, Cambridge University Press, 2007 г.
  7. ^ Аб Джонс, Н.Д., Вычислимость и сложность: с точки зрения программирования, MIT Press, Кембридж, Массачусетс, Лондон, Англия, 1997.
  8. ^ Кфури, А.Дж., Р.Н. Молл и М.А. Арбиб, Программный подход к вычислимости, 2-е изд., Springer-Verlag, Берлин, Гейдельберг, Нью-Йорк, 1982 г.
  9. ^ определено в Примитивная рекурсивная функция#Соединители , Примитивная рекурсивная функция#Предикат равенства и Примитивная рекурсивная функция#Умножение
  10. ^ Стивен Коул Клини (январь 1943 г.). «Рекурсивные предикаты и кванторы» (PDF) . Труды Американского математического общества . 53 (1): 41–73. дои : 10.1090/S0002-9947-1943-0007371-8 .
  11. ^ Минский 1972, стр. 189.
На страницах 210-215 Мински показывает, как создать μ-оператор, используя модель регистровой машины , тем самым демонстрируя его эквивалентность общерекурсивным функциям.

Внешние ссылки