Вычислимые функции
Версия от 07:13, 10 декабря 2011; Andrey.Eremeev (обсуждение | вклад)
| Определение: |
Функция называется вычислимой, если существует программа, вычисляющая функцию . То есть существует такая программа, что:
|
Замечание
Входами и выходами программ могут быть не только натуральные числа, но и двоичные строки, пары натуральных чисел, конечные последовательности слов и т.п. Поэтому аналогичным образом можно определить понятие вычислимой функции для счетных множеств.
Примеры вычислимых функций
- Нигде не определённая функция вычислима.
p(x)
return
- , где — рациональное число.
p(x)
return
Свойства вычислимой функции
| Утверждение: |
— вычислимая функция. Тогда — перечислимое множество, где — область определения функции . |
|
Для доказательства достаточно написать полуразрешающую программу. p(x) f(x) return 1Если функция определена на входе , следовательно, . Тогда необходимо вернуть 1. Иначе программа зависнет при вызове . |
| Утверждение: |
— вычислимая функция. Тогда — перечислимое множество, где — область изменения функции ; |
|
Для доказательства достаточно написать полуразрешающую программу. p(x)
for
if x == f(y)
then return 1
Так как перечислимо, то можно перебрать элементы этого множества. Если программа находит слово, то она возвращает 1. |
| Утверждение: |
— вычислимая функция. — перечислимое множество, где — перечислимое множество. |
|
Для доказательства достаточно написать полуразрешающую программу. p(x)
for
if x == f(y)
then return 1
Из замкнутости перечислимых языков относительно операции пересечения следует, что элементы множества можно перебрать. Если программа находит слов, то она возвращает 1. |
| Утверждение: |
— вычислимая функция. — перечислимое множество, где — разрешимое множество. |
| Для доказательства достаточно написать полуразрешающую программу. |
| Утверждение: |
— вычислимая функция. — перечислимое множество, где — перечислимое множество. |
| Для доказательства достаточно написать полуразрешающую программу. |
Теорема об униформизации
| Теорема: |
Пусть — перечислимое множество пар натуральных чисел. Тогда существует вычислимая функция , определенная на тех и только тех , для которых найдется , при котором , причем значение является одним из таких . |
| Доказательство: |
|
Напишем программу, вычисляющую функцию . f(x)
for
if x == a
then return b
Так как множество перечислимо, то его элементы можно перебрать. |
Теорема о псевдообратной функции
| Теорема: |
Для любой вычислимой функции существует вычислимая функция , являющаяся псевдообратной в следующем смысле: , и при этом для всех , при которых определена. |
Литература
- Верещагин Н. К., Шень А. Лекции по математической логике и теории алгоритов. Часть 3. Вычислимые функции -- М.: МЦНМО, 1999 - С. 176