Вычислимые функции являются основными объектами изучения в теория вычислимости. Вычислимые функции являются формализованным аналогом интуитивного понятия алгоритмов в том смысле, что функция является вычислимой, если существует алгоритм, который может выполнять работу функции, т. Е. С учетом входных данных области определения функции. может вернуть соответствующий вывод. Вычислимые функции используются для обсуждения вычислимости без ссылки на какую-либо конкретную модель вычислений, такую как машины Тьюринга или регистровые машины. Однако любое определение должно ссылаться на некоторую конкретную модель вычислений, но все действительные определения дают один и тот же класс функций. Конкретные модели вычислимости, которые дают начало множеству вычислимых функций, - это вычислимые по Тьюрингу функции и μ-рекурсивные функции.
. До точного определения вычислимой функции математики часто используется неформальный термин эффективно вычислимый. С тех пор этот термин стал отождествляться с вычислимыми функциями. Обратите внимание, что эффективная вычислимость этих функций не означает, что они могут быть эффективно вычислены (т. Е. Вычислены за разумный промежуток времени). Фактически, для некоторых эффективно вычисляемых функций можно показать, что любой алгоритм, который их вычисляет, будет очень неэффективным в том смысле, что время работы алгоритма увеличивается экспоненциально (или даже сверхэкспоненциально ) с длиной входа. Поля допустимой вычислимости и вычислительной сложности изучают функции, которые могут быть вычислены эффективно.
Согласно тезису Черча – Тьюринга, вычислимые функции - это именно те функции, которые могут быть вычислены с использованием механического вычислительного устройства при неограниченном количестве времени и памяти. Эквивалентно, этот тезис утверждает, что функция вычислима тогда и только тогда, когда у нее есть алгоритм. Обратите внимание, что алгоритм в этом смысле понимается как последовательность шагов, которую может выполнить человек с неограниченным временем и неограниченным запасом ручки и бумаги.
аксиомы Блюма можно использовать для определения абстрактной теории вычислительной сложности на множестве вычислимых функций. В теории сложности вычислений проблема определения сложности вычислимой функции известна как проблема функции.
Вычислимость функции - понятие неформальное. Один из способов описать это - сказать, что функция вычислима, если ее значение может быть получено с помощью эффективной процедуры. С большей строгостью функция вычислима тогда и только тогда, когда существует является эффективной процедурой, которая для любого k- кортежа натуральных чисел даст значение . В соответствии с этим определением в оставшейся части статьи предполагается, что вычислимые функции принимают конечное число натуральных чисел в качестве аргументов и производят значение, которое является единственным натуральным числом.
В качестве эквивалента этому неформальному описанию существует несколько формальных математических определений. Класс вычислимых функций может быть определен во многих эквивалентных моделях вычислений, включая
Хотя эти модели используют разные представления для функций, их входных и выходных данных, трансляции существуют между любыми двумя моделями, и поэтому каждый Модель описывает, по сути, один и тот же класс функций, что дает основание считать, что формальная вычислимость является одновременно естественной и не слишком узкой.
Например, можно формализовать вычислимые функции как μ-рекурсивные функции, которые являются частичными функциями, которые принимают конечные кортежи из натуральных чисел и возвращают одно натуральное число (как указано выше). Это наименьший класс частичных функций, который включает в себя функции константы, преемника и проекции, и является закрытым в рамках композиция, примитивная рекурсия и μ оператор.
Эквивалентно вычислимые функции могут быть формализованы как функции, которые могут быть вычислены идеализированным вычислительным агентом, таким как машина Тьюринга или регистровая машина. Формально говоря, частичная функция может вычисляться тогда и только тогда, когда существует компьютерная программа со следующими свойствами:
Основная характеристика вычислимой функции состоит в том, что должна существовать конечная процедура (алгоритм ), рассказывающий, как вычислить функцию. Перечисленные выше модели вычислений дают разные интерпретации того, что такое процедура и как она используется, но эти интерпретации имеют много общих свойств. Тот факт, что эти модели предоставляют эквивалентные классы вычислимых функций, проистекает из того факта, что каждая модель способна читать и имитировать процедуру для любой из других моделей, так же как компилятор может читать инструкции за одну компьютерный язык и издает инструкции на другом языке.
Enderton [1977] дает следующие характеристики процедуры для вычисления вычислимой функции; аналогичные характеристики были даны Тьюрингом [1936], Роджерсом [1967] и другими.
Далее Эндертон перечисляет несколько пояснений этих трех требований процедуры для вычислимая функция:
Подводя итог, на основе этого представления функция является вычислимой, если: (a) дан вход из ее домена, возможно, полагаясь на неограниченный пространство памяти, он может выдавать соответствующий результат, следуя процедуре (программе, алгоритму), которая формируется конечным числом точных однозначных инструкций; (б) он возвращает такой результат (остановки) за конечное число шагов; и (c) если задан ввод, не входящий в его домен, он либо никогда не останавливается, либо застревает.
Поле вычислительной сложности изучает функции с заданными границами времени и / или пространства, разрешенными для успешного вычисления.
Набор Aнатуральных чисел называется вычислимым (синонимы: рекурсивный, разрешимая ), если существует вычислимая общая функция f такая, что для любого натурального числа n, f (n) = 1, если nравно в Aи f (n) = 0, если nне входит в A.
Набор натуральных чисел называется вычислимо перечислимым (синонимы: рекурсивно перечислимый, полуразрешимый ), если существует вычислимая функция f такая, что для каждого числа n, f (n) определяется тогда и только тогда, когда nнаходится в наборе. Таким образом, набор вычислимо перечислим тогда и только тогда, когда он является областью определения некоторой вычислимой функции. Слово enumerable используется потому, что следующие значения эквивалентны для непустого подмножества Bнатуральных чисел:
Если набор Bявляется диапазоном функции f, тогда функцию можно рассматривать как перечисление B, потому что список f (0), f (1),... будет включать каждый элемент B.
Поскольку каждое конечное отношение в натуральных числах может быть отождествленные с соответствующим набором конечных последовательностей натуральных чисел, понятия вычислимого отношения и вычислимо перечислимого отношения могут быть определены из их аналогов для множеств.
В теории вычислимости в информатике принято рассматривать формальные языки. алфавит - произвольный набор. Слово в алфавите - это конечная последовательность символов алфавита; один и тот же символ может использоваться более одного раза. Например, двоичные строки - это в точности слова в алфавите {0, 1}. язык - это подмножество набора всех слов фиксированного алфавита. Например, набор всех двоичных строк, содержащих ровно 3 единицы, представляет собой язык над двоичным алфавитом.
Ключевым свойством формального языка является уровень сложности, необходимый для определения того, присутствует ли данное слово в языке. Должна быть разработана некоторая система кодирования, позволяющая вычислимой функции принимать произвольное слово на языке в качестве входных; это обычно считается рутиной. Язык называется вычислимым (синонимы: рекурсивный, разрешимый ), если существует вычислимая функция f такая, что для каждого слова wбольше алфавит, f (w) = 1, если слово на языке и f (w) = 0, если слово не на языке. Таким образом, язык является вычислимым, если существует процедура, которая может правильно определить, есть ли в языке произвольные слова.
Язык является вычислимо перечислимым (синонимы: рекурсивно перечислимым, полуразрешимым ), если существует вычислимая функция f такая, что f (w) определяется тогда и только тогда, когда слово wприсутствует в языке. Термин перечислимый имеет ту же этимологию, что и в вычислимо перечислимых наборах натуральных чисел.
Следующие функции вычислимы:
Если f и g вычислимы, то вычислимы: f + g, f * g, , если f равно унарный, max (f, g), min (f, g), arg max {y ≤ f (x)} и многие другие комбинации.
Следующие примеры показывают, что функция может быть вычислимой, хотя неизвестно, какой алгоритм ее вычисляет.
тезис Чёрча-Тьюринга утверждает, что любая функция, вычисляемая из процедуры, обладающей тремя свойствами, перечисленными выше, является вычислимой функцией. Поскольку эти три свойства формально не определены, Тезис Черча – Тьюринга нельзя доказать. В качестве доказательства тезиса часто используются следующие факты:
Тезис Чёрча – Тьюринга иногда используется в доказательствах, чтобы обосновать вычислимость конкретной функции, давая конкретное описание процедура вычисления. Это разрешено, потому что считается, что все подобные варианты использования тезиса могут быть устранены утомительным процессом написания формальной процедуры для функции в некоторой модели вычислений.
Учитывая функцию (или, аналогично, набор), может быть интересно не только то, является ли она вычислимой, но также может ли это быть доказано в конкретной системе доказательства (обычно первого порядка арифметика Пеано ). Функция, которая может быть доказана как вычислимая, называется доказуемо полной .
Множество доказуемо полных функций рекурсивно перечислимо : можно перечислить все доказуемо полные функции, перечислив все соответствующие им доказательства, которые доказывают их вычислимость. Это можно сделать, перечислив все доказательства системы доказательств и игнорируя не относящиеся к делу.
В функции, определенной рекурсивным определением, каждое значение определяется фиксированной формулой первого порядка других, ранее определенных значений та же функция или другие функции, которые могут быть просто константами. Подмножество из них - примитивные рекурсивные функции . Каждая такая функция доказуемо является полной: для такой k-арной функции f каждое значение можно вычислить, следуя определению в обратном порядке, итеративно, и после конечного числа итераций (как можно легко доказать) достигается константа.
Обратное неверно, так как не каждая доказуемо итоговая функция является примитивно рекурсивной. В самом деле, можно перечислить все примитивные рекурсивные функции и определить функцию en так, что для всех n m: en (n, m) = f n (m), где f n - n-я примитивная рекурсивная функция (для k-арных функций будет установлено значение f n (m, m... m)). Теперь, g (n) = en (n, n) +1 доказуемо полное, но не примитивно рекурсивное, с помощью аргумента диагонализация : если бы был aj такой, что g = f j, мы получили бы g (j) = en (j, j) +1 = f j (j) + 1 = g (j) +1; противоречие. (Гёделевские числа всех примитивно рекурсивных функций могут быть перечислены с помощью примитивно рекурсивной функции, хотя значения примитивных рекурсивных функций не могут.)
Одна такая функция, которая доказуема всего, но не примитивно рекурсивной является функция Аккермана : поскольку она определена рекурсивно, действительно легко доказать ее вычислимость (однако аналогичный аргумент диагонализации также может быть построен для всех функций, определенных рекурсивным определением; таким образом, существует являются доказуемыми полными функциями, которые не могут быть определены рекурсивно).
В надежной системе доказательств каждая доказуемая итоговая функция действительно является итоговой, но обратное неверно: в каждом первом - Чтобы упорядочить систему доказательства, которая является достаточно сильной и надежной (включая арифметику Пеано), можно доказать (в другой системе доказательств) существование полных функций, которые не могут быть доказаны как полные в системе доказательств.
Если все вычислимые функции перечисляются с помощью машин Тьюринга, которые их создают, то приведенное выше утверждение может быть показано, если система доказательства работает, с помощью аргумента диагонализации, аналогичного тому, который использовался выше, с использованием перечисления доказуемо суммарные функции, данные ранее. Один использует машину Тьюринга, которая перечисляет соответствующие доказательства, и для каждого ввода n вызывает f n (n) (где f n - n-я функция по этому перечислению), вызывая Машина Тьюринга, вычисляющая его согласно n-му доказательству. Такая машина Тьюринга гарантированно остановится, если система доказательства работоспособна.
Каждая вычислимая функция имеет конечную процедуру, дающую явные, однозначные инструкции о том, как ее вычислить. Кроме того, эта процедура должна быть закодирована в конечном алфавите, используемом вычислительной моделью, поэтому существует только счетно вычислимых функций. Например, функции могут быть закодированы с использованием строки битов (алфавит Σ = {0, 1}).
Действительные числа не поддаются исчислению, поэтому большинство действительных чисел не поддаются вычислению. См. вычислимое число. Набор конечных функций для натуральных чисел неисчислим, поэтому большинство из них не вычислимы. Конкретными примерами таких функций являются Занят бобер, сложность Колмогорова или любая функция, которая выводит цифры невычислимого числа, например, константа Чейтина.
Аналогично, большинство подмножеств натуральных чисел не вычислимы. Задача остановки была первым таким набором, который был создан. Entscheidungsproblem, предложенная Дэвидом Гильбертом, спрашивает, существует ли эффективная процедура для определения того, какие математические утверждения (закодированные как натуральные числа) верны. Тьюринг и Черч независимо друг от друга показали в 1930-х годах, что этот набор натуральных чисел не вычислим. Согласно тезису Чёрча – Тьюринга, не существует эффективной процедуры (с алгоритмом), которая могла бы выполнять эти вычисления.
Понятие вычислимости функции может быть релятивизировано до произвольного набора из натуральные числа А. Функция f определяется как вычислимая в A (эквивалентно A-вычислима или вычислима относительно A ), когда она удовлетворяет определению вычислимой функции с модификациями разрешение доступа к A как к оракулу. Как и в случае с концепцией вычислимой функции, относительной вычислимости можно дать эквивалентные определения во многих различных моделях вычислений. Обычно это достигается путем дополнения модели вычислений дополнительной примитивной операцией, которая спрашивает, является ли данное целое число членом A. Мы также можем говорить о том, что f вычислимо в g, отождествляя g с его графом.
Гиперарифметическая теория изучает те множества, которые могут быть вычислены из вычислимого порядкового числа итераций скачка Тьюринга пустого задавать. Это эквивалентно множествам, определяемым как универсальной, так и экзистенциальной формулой на языке арифметики второго порядка, и некоторым моделям Hypercomputation. Были изучены даже более общие теории рекурсии, такие как теория E-рекурсии, в которой любой набор может использоваться в качестве аргумента для E-рекурсивной функции.
Хотя тезис Черча – Тьюринга утверждает, что вычислимые функции включают в себя все функции с алгоритмами, можно рассмотреть более широкие классы функций, которые ослабляют требования, которыми должны обладать алгоритмы. Область Hypercomputation изучает модели вычислений, которые выходят за рамки обычных вычислений Тьюринга.