Вычислимые функции — различия между версиями
м (→Основные определения) |
м (→Свойства вычислимой функции) |
||
Строка 44: | Строка 44: | ||
|proof = | |proof = | ||
Для доказательства достаточно написать полуразрешающую программу. | Для доказательства достаточно написать полуразрешающую программу. | ||
− | p(x) | + | <tex>p(x)</tex> |
− | f(x) | + | <tex>f(x)</tex> |
'''return''' 1 | '''return''' 1 | ||
Если функция <tex>f</tex> определена на входе <tex>x</tex>, следовательно, <tex>x \in D(f)</tex>. Тогда необходимо вернуть 1. Иначе программа зависнет при вызове <tex>f(x)</tex>. | Если функция <tex>f</tex> определена на входе <tex>x</tex>, следовательно, <tex>x \in D(f)</tex>. Тогда необходимо вернуть 1. Иначе программа зависнет при вызове <tex>f(x)</tex>. | ||
Строка 53: | Строка 53: | ||
|proof = | |proof = | ||
Для доказательства достаточно написать полуразрешающую программу. | Для доказательства достаточно написать полуразрешающую программу. | ||
− | p(x) | + | <tex>p(x)</tex> |
'''for''' <tex>y \in D(f)</tex> | '''for''' <tex>y \in D(f)</tex> | ||
− | '''if''' x == f(y) | + | '''if''' <tex>x == f(y)</tex> |
'''then return''' 1 | '''then return''' 1 | ||
Так как <tex>D(f)</tex> перечислимо, то можно перебрать элементы этого множества. Если программа находит слово, то она возвращает 1. | Так как <tex>D(f)</tex> перечислимо, то можно перебрать элементы этого множества. Если программа находит слово, то она возвращает 1. | ||
}} | }} | ||
{{Утверждение | {{Утверждение | ||
− | |statement = <tex>f</tex> — вычислимая функция | + | |statement = <tex>f</tex> — вычислимая функция, <tex>X</tex> — перечислимое множество. Тогда <tex>f(X)</tex> — перечислимое множество. |
|proof = | |proof = | ||
Для доказательства достаточно написать полуразрешающую программу. | Для доказательства достаточно написать полуразрешающую программу. | ||
− | p(x) | + | <tex>p(x)</tex> |
'''for''' <tex>y \in D(f) \cap X</tex> | '''for''' <tex>y \in D(f) \cap X</tex> | ||
− | '''if''' x == f(y) | + | '''if''' <tex>x == f(y)</tex> |
− | + | '''then return''' 1 | |
Из [[Замкнутость_разрешимых_и_перечислимых_языков_относительно_теоретико-множественных_и_алгебраических_операций|замкнутости перечислимых языков относительно операции пересечения]] следует, что элементы множества <tex>X \cap D(f)</tex> можно перебрать. Если программа находит слов, то она возвращает 1. | Из [[Замкнутость_разрешимых_и_перечислимых_языков_относительно_теоретико-множественных_и_алгебраических_операций|замкнутости перечислимых языков относительно операции пересечения]] следует, что элементы множества <tex>X \cap D(f)</tex> можно перебрать. Если программа находит слов, то она возвращает 1. | ||
}} | }} | ||
{{Утверждение | {{Утверждение | ||
− | |statement = <tex>f</tex> — вычислимая функция | + | |statement = <tex>f</tex> — вычислимая функция, <tex>X</tex> — перечислимое множество. <tex>f^{-1}(X)</tex> — перечислимое множество. |
− | |||
− | |||
− | |||
− | |||
− | |||
|proof = | |proof = | ||
Для доказательства достаточно написать полуразрешающую программу. | Для доказательства достаточно написать полуразрешающую программу. |
Версия 05:14, 12 декабря 2011
Содержание
Основные определения
Определение: |
(1) Функция
| называется вычислимой, если существует программа, вычисляющая функцию . То есть существует такая программа, что:
Определение: |
(2) Функция перечислимым множеством пар натуральных чисел. | называется вычислимой, если её график определено и равно является
Замечание
Входами и выходами программ могут быть не только натуральные числа, но и двоичные строки, пары натуральных чисел, конечные последовательности слов и т.п. Поэтому аналогичным образом можно определить понятие вычислимой функции для счетных множеств.
Теорема: |
Определения (1) и (2) эквивалентны. |
Доказательство: |
for if then return 1 Так как область определения вычислимой функции перечислима, то можно перебрать элементы области определения. Если алгоритм нашел нужную нам пару, то вернуть 1. Так как for if then return перечислимое множество, то можно перебрать элементы этого множества. |
Примеры вычислимых функций
- Нигде не определённая функция вычислима.
p(x)
return
- , где — рациональное число.
p(x)
return
Свойства вычислимой функции
Утверждение: |
— вычислимая функция. Тогда — перечислимое множество, где — область определения функции . |
Для доказательства достаточно написать полуразрешающую программу. Если функция return 1 определена на входе , следовательно, . Тогда необходимо вернуть 1. Иначе программа зависнет при вызове . |
Утверждение: |
— вычислимая функция. Тогда — перечислимое множество, где — область изменения функции ; |
Для доказательства достаточно написать полуразрешающую программу. Так как for if then return 1 перечислимо, то можно перебрать элементы этого множества. Если программа находит слово, то она возвращает 1. |
Утверждение: |
— вычислимая функция, — перечислимое множество. Тогда — перечислимое множество. |
Для доказательства достаточно написать полуразрешающую программу. Из for if 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