Введение

Математическая функция, которая может быть вычислена программой. Вычислимые функции являются основными объектами изучения в теории вычислимости. Вычислимые функции представляют собой формальный аналог интуитивного понятия алгоритма, в том смысле, что функция вычислима, если существует алгоритм, способный выполнять вычисления, соответствующие этой функции, то есть, получив на вход значение из области определения функции, он может вернуть соответствующее значение. Вычислимые функции используются для обсуждения вычислимости, не прибегая к какой-либо конкретной модели вычислений, такой как машины Тьюринга или регистровые машины. Однако любое определение должно опираться на некоторую конкретную модель вычислений, но все корректные определения приводят к одному и тому же классу функций. К особым моделям вычислимости, порождающим множество вычислимых функций, относятся функции Тьюринга и общие рекурсивные функции. Согласно тезису Черча-Тьюринга, вычислимые функции – это именно те функции, которые можно вычислить с помощью механического (то есть автоматического) вычислительного устройства при неограниченном времени и объеме памяти. Более точно, любая когда-либо придуманная модель вычислений может вычислять только вычислимые функции, и все вычислимые функции могут быть вычислены любой из нескольких моделей вычислений, которые кажутся весьма различными, например, машинами Тьюринга, регистровыми машинами, лямбда-исчислением и общими рекурсивными функциями. До точного определения вычислимой функции математики часто использовали неформальный термин «эффективно вычислимая». С тех пор этот термин стал отождествляться с вычислимыми функциями. Эффективная вычислимость этих функций не подразумевает, что они могут быть вычислены эффективно (то есть за разумное время). Фактически, для некоторых эффективно вычислимых функций можно показать, что любой алгоритм, который их вычисляет, будет крайне неэффективным, в том смысле, что время работы алгоритма экспоненциально (или даже сверхэкспоненциально) возрастает с увеличением длины входных данных. Области допустимой вычислимости и вычислительной сложности изучают функции, которые могут быть вычислены эффективно. Аксиомы Блума могут быть использованы для определения абстрактной теории вычислительной сложности на множестве вычислимых функций. В теории вычислительной сложности задача определения сложности вычислимой функции известна как функциональная задача.

Официальные языки

В теории вычислимости в информатике принято рассматривать формальные языки. Алфавит – это произвольное множество. Слово в алфавите – это конечная последовательность символов из алфавита; один и тот же символ может использоваться несколько раз. Например, двоичные строки – это как раз слова в алфавите {0, 1}. Язык – это подмножество множества всех слов в фиксированном алфавите. Например, множество всех двоичных строк, содержащих ровно 3 единицы, является языком над двоичным алфавитом. Ключевым свойством формального языка является уровень сложности, требуемый для определения, принадлежит ли данное слово языку. Необходимо разработать некоторую систему кодирования, позволяющую вычислимой функции принимать произвольное слово из языка в качестве входных данных; это обычно считается стандартной задачей. Язык называется вычислимым (синонимы: рекурсивным, разрешимым), если существует вычислимая функция f, такая, что для каждого слова w над алфавитом, функция возвращает значение, если слово принадлежит языку, и не возвращает значение, если слово не принадлежит языку. Таким образом, язык является вычислимым тогда и только тогда, когда существует процедура, способная правильно определить, принадлежит ли произвольное слово языку. Язык называется вычислимо перечислимым (синонимы: рекурсивно перечислимым, полуразрешимым), если существует вычислимая функция f, такая, что f(w) определена тогда и только тогда, когда слово w принадлежит языку. Термин "перечислимый" имеет ту же этимологию, что и в вычислимо перечислимых множествах натуральных чисел.

Теза Черча и Тюринга

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

Доказательность

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

Отношение к рекурсивно определенным функциям

В функции, заданной рекурсивным определением, каждое значение определяется формулой первого порядка от других, ранее определенных значений той же функции или других функций, которые могут быть просто константами. Подмножеством таких функций являются примитивно рекурсивные функции. Каждая такая функция доказуемо полна: для такой k-арной функции f каждое значение может быть вычислено, прослеживая определение в обратном порядке, итеративно, и после конечного числа итераций (что легко доказать), достигается константа. Обратное неверно, поскольку не каждая доказуемо полная функция является примитивно рекурсивной. Действительно, можно перечислить все примитивно рекурсивные функции и определить функцию en так, что для всех n, m: en(n, m) = fn(m), где fn – n-я примитивно рекурсивная функция (для k-арных функций это будет установлено как fn(m, m, ..., m)). Теперь, g(n) = en(n, n) + 1 является доказуемо полной, но не примитивно рекурсивной, согласно аргументу диагонализации: если бы существовало j такое, что g = fj, мы получили бы g(j) = en(j, j) + 1 = fj(j) + 1 = g(j) + 1, что является противоречием. (Числа Гёделя всех примитивно рекурсивных функций могут быть перечислены примитивно рекурсивной функцией, хотя сами значения примитивно рекурсивных функций не могут быть перечислены.) Одной из таких функций, которая является доказуемо полной, но не примитивно рекурсивной, является функция Аккермана: поскольку она определена рекурсивно, ее вычислимость действительно легко доказать. (Однако аналогичный аргумент диагонализации можно построить и для всех функций, заданных рекурсивным определением; таким образом, существуют доказуемо полные функции, которые не могут быть определены рекурсивно.)

Суммарные функции, которые не являются доказуемо суммарными

В непротиворечивой системе доказательств любая доказуемо полная функция действительно является полной, но обратное неверно: в любой достаточно сильной и непротиворечивой системе доказательств первого порядка (включая арифметику Пеано) можно доказать (в другой системе доказательств) существование полных функций, которые нельзя доказать полными в данной системе доказательств. Если полные вычислимые функции перечисляются посредством машин Тьюринга, которые их генерируют, то вышеуказанное утверждение можно показать, при условии непротиворечивости системы доказательств, с помощью аналогичного диагонального аргумента, использованного ранее, используя перечисление доказуемо полных функций, представленное выше. Используется машина Тьюринга, которая перечисляет соответствующие доказательства, и для каждого входа n вызывает fn(n) (где fn – это n-я функция в этом перечислении), запуская машину Тьюринга, которая вычисляет её согласно n-му доказательству. Гарантируется, что такая машина Тьюринга остановится, если система доказательств непротиворечива.

Невычислимые функции и неразрешимые проблемы

Каждая вычислимая функция имеет конечный алгоритм, предоставляющий чёткие и однозначные инструкции по её вычислению. Более того, этот алгоритм должен быть закодирован в конечном алфавите, используемом вычислительной моделью, поэтому существует лишь счётное количество вычислимых функций. Например, функции могут быть закодированы с помощью строки битов (алфавит }). Действительные числа несчётны, поэтому большинство действительных чисел не являются вычислимыми. См. вычислимое число. Множество функций на натуральных числах, заданных конечными алгоритмами, несчётно, поэтому большинство из них не являются вычислимыми. Конкретными примерами таких функций являются функция «загруженный бобр», сложность Колмогорова или любая функция, выводящая цифры невычислимого числа, например, константа Чейтина. Аналогично, большинство подмножеств натуральных чисел не являются вычислимыми. Задача останова была первым таким множеством, которое было построено. Проблема Entscheidungsproblem, предложенная Давидом Гильбертом, спрашивала, существует ли эффективный алгоритм для определения истинности математических утверждений (кодируемых как натуральные числа). Тьюринг и Черч независимо друг от друга в 1930-х годах показали, что это множество натуральных чисел не является вычислимым. Согласно тезису Черча — Тьюринга, не существует эффективного алгоритма, способного выполнять эти вычисления.

Относительная вычислимость

Понятие вычислимости функции может быть релятивизировано к произвольному множеству натуральных чисел A. Функция f определяется как вычислимая в A (эквивалентно, A-вычислимая или вычислимая относительно A), если она удовлетворяет определению вычислимой функции с изменениями, допускающими доступ к A в качестве оракула. Как и понятие вычислимой функции, относительная вычислимость может быть определена эквивалентными способами в различных моделях вычислений. Обычно это достигается путем расширения модели вычислений дополнительной примитивной операцией, которая проверяет, принадлежит ли данное целое число множеству A. Также можно говорить о том, что f вычислима в g, отождествляя g с её графом.

Высшая теория рекурсии

Гиперарифметическая теория изучает множества, которые могут быть вычислены из вычислимого порядкового числа итераций прыжка Тьюринга пустого множества. Это эквивалентно множествам, определяемым как универсальной, так и экзистенциальной формулой в языке арифметики второго порядка, а также некоторым моделям гипервычислений. Исследовались и более общие теории рекурсии, такие как E-рекурсивная теория, в которой любое множество может использоваться в качестве аргумента для E-рекурсивной функции.

Гипервычисления

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