Изчислими функции
Съдържание
Основни дефиниции[редактиране]
Определение: |
Функция [math]f : N \rightarrow N \cup \lbrace \bot \rbrace[/math] еизчислима(на английскиcomputable function), ако има програма, която изчислява функцията [math]f[/math] така че:
|
Определение: |
Функция [math]f : N \rightarrow N \cup \lbrace \bot \rbrace[/math] еизчислима, ако нейната графика [math]F = \lbrace \langle x, y\rangle \mid f(x)[/math] е дефинирана и равна на [math]y \rbrace[/math] е изброим набор от двойки естествени числа. |
Теорема: |
[math]\Rightarrow [/math] Нека напишем полуразрешителна програма за множеството [math]F[/math] .
Тъй като домейнът на изчислима функция е изброим, е възможно да се обхождат елементите на домейна. Ако алгоритъмът е намерил двойката, от която се нуждаем, връща 1. [math]\Leftarrow[/math] Нека напишем програма, която изчислява функцията [math]f[/math] .
Тъй като [math]F[/math] е изброимо множество, е възможно да се обхождат елементите на това множество.
Забележка [редактиране]
Входовете и изходите на програмите могат да бъдат не само естествени числа, но и двоични низове, двойки естествени числа, крайни последователности от думи и много други.друго. Следователно, понятието изчислима функция за изброими множества може да се дефинира по подобен начин.
Примери за изчислими функции[редактиране]
- Функция, която не е дефинирана никъде, е изчислима.
- [math]f(x) = x^2[/math] , където [math]x[/math] е рационално число.
Свойства на изчислима функция[редактиране]
Лема: |
[math]f[/math] е изчислима функция, [math]D(f)[/math] е домейнът на функцията [math]f[/math] . Тогава [math]D(f)[/math] е изброимо множество. |
Доказателство: |
[math]\triangleright[/math] |
[math]\triangleleft[/math] |
Лема: |
[math]f[/math] е изчислима функция, [math]E(f)[/math] е обхватът на [math]f[/math] . Тогава [math]E(f)[/math] е изброимо множество. |
Доказателство: |
[math]\triangleright[/math] |
[math]\triangleleft[/math] |
Лема: |
[math]f[/math] е изчислима функция, [math]X[/math] е изброимо множество. Тогава [math]f(X)[/math] е изброимо множество. |
Доказателство: |
[math]\triangleright[/math] |
[math]\triangleleft[/math] |
Лема: |
[math]f[/math] е изчислима функция, [math]X[/math] е изброимо множество. Тогава [math]f^(X)[/math] е изброимо множество. |
Доказателство: |
[math]\triangleright[/math] |
[math]\triangleleft[/math] |
Характеризиране на изброими множества от гледна точка на изчислими функции[редактиране]
Определение: |
Множеството [math]X[/math] се нарича изброимо(англ.изчислимо изброимо множество), ако поне едно от следните условия е вярно:
|
Теорема: |
- [math]1 \Rightarrow 4[/math]
Нека [math]p[/math] е програма, която изброява [math]X[/math] .
Ето програмата [math]q[/math] , която изчислява функцията [math]f_X(x)[/math] :
Нека [math]X[/math] е областта на изчислимата функция [math]f[/math], изчислена от програмата [math]p[/math] .
Тогава [math]X[/math] се изброява от програма като тази:
Нека [math]X[/math] е диапазонът на изчислимата функция [math]f[/math], изчислена от програмата [math]p[/math] .
Тогава [math]X[/math] се изброява от програма като тази:
- [math]4 \Rightarrow 2[/math] , [math]4 \Rightarrow 3[/math]
Нека е дадено [math]f_X(x)[/math].
Нека въведем нова функция [math]g(x) = x[/math] if [math]f_X(x) \neq \bot[/math] .
Очевидно е, че е изчислим и че неговият домейн и диапазон са същите като [math]X[/math] .
Теорема за уеднаквяване[редактиране]
Нека напишем програма, която изчислява функцията [math]f[/math] .
Тъй като множеството [math]F[/math] е изброимо, неговите елементи могат да бъдат итерирани.
Теорема за псевдообратната функция[редактиране]
Нека напишем програма, която изчислява функцията [math]g[/math] .