Вычислимые функции — различия между версиями
м (→Примеры вычислимых функций) |
(→Теорема о псевдообратной функции) |
||
Строка 96: | Строка 96: | ||
|statement = Для любой вычислимой функции <tex>f</tex> существует вычислимая функция <tex>g</tex>, являющаяся псевдообратной в следующем смысле: <tex>E(f) = D(g)</tex>, и при этом <tex>f(g(f(x))) = f(x)</tex> для всех <tex>x</tex>, при которых <tex>f(x)</tex> определена. | |statement = Для любой вычислимой функции <tex>f</tex> существует вычислимая функция <tex>g</tex>, являющаяся псевдообратной в следующем смысле: <tex>E(f) = D(g)</tex>, и при этом <tex>f(g(f(x))) = f(x)</tex> для всех <tex>x</tex>, при которых <tex>f(x)</tex> определена. | ||
|proof = | |proof = | ||
+ | Напишем программу, вычисляющую функцию <tex>g</tex>. | ||
+ | g(n) | ||
+ | '''for''' <tex>x \in D(f)</tex> | ||
+ | '''if''' f(x) == n | ||
+ | '''then return''' x | ||
+ | Так как область определения вычислимой функции перечислимо, то можно перебрать элементы области определения. | ||
}} | }} | ||
+ | |||
== Литература == | == Литература == | ||
* ''Верещагин Н. К., Шень А.'' '''Лекции по математической логике и теории алгоритов. Часть 3. Вычислимые функции''' -- М.: МЦНМО, 1999 - С. 176 | * ''Верещагин Н. К., Шень А.'' '''Лекции по математической логике и теории алгоритов. Часть 3. Вычислимые функции''' -- М.: МЦНМО, 1999 - С. 176 |
Версия 18:09, 10 декабря 2011
Содержание
Основные определения
Определение: |
(1) Функция
| называется вычислимой, если существует программа, вычисляющая функцию . То есть существует такая программа, что:
Определение: |
(2) Функция перечислимым множеством пар натуральных чисел. | называется вычислимой, если её график определено и равно является
Замечание
Входами и выходами программ могут быть не только натуральные числа, но и двоичные строки, пары натуральных чисел, конечные последовательности слов и т.п. Поэтому аналогичным образом можно определить понятие вычислимой функции для счетных множеств.
Теорема: |
Определения (1) и (2) эквивалентны. |
Доказательство: |
p() for if a == x && f(a) == y then return 1 Так как область определения вычислимой функции перечислима, то можно перебрать элементы области определения. Если алгоритм нашел нужную нам пару, то вернуть 1. f(n)
for
Так как
if x == n
then return y
перечислимое множество, то можно перебрать элементы этого множества. |
Примеры вычислимых функций
- Нигде не определённая функция вычислима.
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
перечислимо, то его элементы можно перебрать. |
Теорема о псевдообратной функции
Теорема: |
Для любой вычислимой функции существует вычислимая функция , являющаяся псевдообратной в следующем смысле: , и при этом для всех , при которых определена. |
Доказательство: |
Напишем программу, вычисляющую функцию .g(n)
for
Так как область определения вычислимой функции перечислимо, то можно перебрать элементы области определения.
if f(x) == n
then return x
|
Литература
- Верещагин Н. К., Шень А. Лекции по математической логике и теории алгоритов. Часть 3. Вычислимые функции -- М.: МЦНМО, 1999 - С. 176