Общая рекурсивная функция - General recursive function

В математическая логика и Информатика, а общая рекурсивная функция (часто сокращается до рекурсивная функция) или же μ-рекурсивная функция, это частичная функция из натуральные числа к натуральным числам, которые "вычислимы" в интуитивном смысле. В теория вычислимости, показано, что μ-рекурсивные функции - это в точности функции, которые можно вычислить с помощью Машины Тьюринга[1][3] (это одна из теорем, подтверждающих Тезис Черча – Тьюринга ). Μ-рекурсивные функции тесно связаны с примитивные рекурсивные функции, и их индуктивное определение (ниже) основано на определении примитивных рекурсивных функций. Однако не каждая μ-рекурсивная функция является примитивной рекурсивной функцией - наиболее известным примером является Функция Аккермана.

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

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

Определение

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

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

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

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

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

  1. Оператор композиции (также называемый оператор подстановки): Для m-арной функции и m k-арных функций :
        
    Это означает, что определяется, только если и все определены.
  2. Оператор примитивной рекурсии : Учитывая k-арная функция и k+2 -арная функция :
        
    Это означает, что определяется, только если и определены для всех
  3. Оператор минимизации : Учитывая (k+1) -арная функция , то k-арная функция определяется:
        
    Интуитивно минимизация ищет - начиная поиск с 0 и продолжая вверх - наименьший аргумент, который заставляет функцию возвращать ноль; если такого аргумента нет, или если встречается аргумент, для которого ж не определено, то поиск никогда не прекращается, и не определено для аргумента
    (Примечание: Хотя в некоторых учебниках используется μ-оператор, как здесь определено,[4][5] другим нравится[6][7] требовать, чтобы μ-оператор применялся к общий функции Только. Хотя это ограничивает μ-оператор по сравнению с приведенным здесь определением, класс μ-рекурсивных функций остается тем же, что следует из теоремы Клини о нормальной форме.[4][5] Единственное отличие состоит в том, что становится неразрешимым, удовлетворяет ли некоторый текст требованиям, предъявляемым к базовым функциям и операторам, поскольку не является полуразрешимым (следовательно, неразрешимым), является ли вычислимая (то есть μ-рекурсивная) функция тотальной.[6])

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

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

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

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

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

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

.

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

Мински (1967) замечает (как и Булос-Берджесс-Джеффри (2002), стр. 94–95), что U, определенный выше, по сути является μ-рекурсивным эквивалентом универсальная машина Тьюринга:

Чтобы построить U, нужно записать определение общерекурсивной функции U (n, x), которая правильно интерпретирует число n и вычисляет соответствующую функцию от x. чтобы построить U напрямую, потребовалось бы примерно такое же количество усилий, и по сути те же идеи, поскольку мы вложили средства в построение универсальной машины Тьюринга. (курсив в оригинале, Минский (1967) с. 189)

Символизм

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

  • Постоянная функция: Клини использует "C"п
    q
    (Икс) = q », а Boolos-Burgess-Jeffrey (2002) (B-B-J) используют сокращение« constп( Икс) = n ":
например C7
13
(r, s, t, u, v, w, x) = 13
например const13 (r, s, t, u, v, w, x) = 13
  • Функция преемника: Клини использует x 'и S для «Преемника». Поскольку «преемник» считается примитивным, в большинстве текстов апостроф используется следующим образом:
S (а) = а +1 =def a ', где 1 =def 0', 2 =def 0 '' и т. Д.
  • Функция идентичности: Kleene (1952) использует "Uп
    я
    "для указания функции тождества по переменным xя; B-B-J использовать идентификатор функции идентификациип
    я
    по переменным x1 к хп:
Uп
я
( Икс ) = idп
я
( Икс ) = хя
например U7
3
= id7
3
(r, s, t, u, v, w, x) = t
  • Оператор композиции (подстановки): Клини использует жирное лицо Sм
    п
    (не путать с его S для "преемника" ! ). Верхний индекс «m» означает букву m.th функции "fм", тогда как нижний индекс" n "относится к nth переменная "xп":
Если нам задано h ( Икс ) = g (f1(Икс), ..., fм(Икс) )
час(Икс) = Sп
м
(г, ж1, ..., fм )
Аналогичным образом, но без нижних и верхних индексов, B-B-J пишут:
час(Икс') = Cn [g, f1 , ..., fм](Икс)
  • Примитивная рекурсия: Клини использует символ " рп(базовый шаг, шаг индукции) ", где n указывает количество переменных, B-B-J используют" Pr (базовый шаг, шаг индукции) (Икс)". Данный:
  • базовый шаг: h (0, Икс ) = f ( Икс ), и
  • шаг индукции: h (y + 1, Икс ) = g (y, h (y, Икс),Икс )
Пример: определение 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 {U1
1
(а), S [(U3
2
(б, в, а)]}
Пр {У1
1
(а), S [(U3
2
(б, в, а)]}

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

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

Он прибывает в:

а + Ь = р2[U1
1
, S3
1
(S, U3
2
) ]

Примеры

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

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

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

внешняя ссылка