Говорят, что теория вычислимости также называется теорией рекурсии. Почему это так называется? Почему рекурсия имеет такое большое значение?
источник
Говорят, что теория вычислимости также называется теорией рекурсии. Почему это так называется? Почему рекурсия имеет такое большое значение?
В 1920-х и 1930-х годах люди пытались выяснить, что значит «эффективно вычислять функцию» (помните, что вокруг не было вычислительных машин общего назначения, а вычисления выполнялись людьми).
Было предложено несколько определений «вычислимых», три из которых наиболее известны:
Оказалось, что они определяют один и тот же класс теоретико-числовых функций. Потому что рекурсивные функции старше машин Тьюринга, а то и старше
Позднее была предпринята попытка популяризации Роберта Соаре изменить рекурсивную форму на вычислимую. Таким образом, в настоящее время мы говорим о вычислимых функциях и вычислимо перечислимых множествах. Но многие старые учебники и многие люди все еще предпочитают «рекурсивную» терминологию.
Так много для истории. Мы также можем спросить, важна ли рекурсия для вычислений с чисто математической точки зрения. Ответ очень определенное «да!». Рекурсия лежит в основе языков программирования общего назначения (четные while
циклы - это просто форма рекурсии, потому что while p do c
она такая же if p then (c; while p do c)
), и многие фундаментальные структуры данных, такие как списки и деревья, являются рекурсивными. Рекурсия просто неизбежна в компьютерных науках, особенно в теории вычислимости.
Теория вычислимости - это изучение вычислимых функций :-).
Такие функции обычно (в этом сообществе) определяются как функции, которые могут быть выражены с помощью машины Тьюринга.
Как выясняется, если вы таким образом определяете вычислимые функции (программы), они эквивалентны набору функций, которые можно получить, используя правила, описанные здесь . Они называются рекурсивными функциями, поскольку одним из правил получения таких функций является рекурсивное определение (см. 5-е правило в Википедии).
Таким образом, причина, почему теория рекурсии имеет большое значение, эквивалентна вопросу о том, почему вычислимые функции важны. И ответ на последний должен быть вполне очевидным :)