Вычислимая функция

**Вычислимая функция** (или **рекурсивная функция**) - это частичная вычислимая функция, которая является полной. То есть вычислимая функция - это функция, которая может быть вычислена с помощью машины Тьюринга. Функция

f
:

N

→

N

{\displaystyle f: \mathbb{N} \to \mathbb{N}}

, которая не является вычислимой, называется **невычислимая**.

Предположим, у нас есть двухцветная машина Тьюринга

T

{\displaystyle T}

. Учитывая положительное целое число

n

{\displaystyle n}

, мы устанавливаем ленту пустой, за исключением

n

{\displaystyle n}

 последовательных записей, крайняя левая из которых находится в положении головки TM. Мы моделируем машину Тьюринга, и происходит одно из следующих событий:

* Она останавливается с

m
∈

N

{\displaystyle m \in \mathbb{N}}

 последовательные на ленте, с головкой, расположенной на крайнем левом. В этом случае мы говорим, что

T

{\displaystyle T}

 результаты

m

{\displaystyle m}

 заданный ввод

n

{\displaystyle n}

.
* Она останавливается, но у неё нет конфигурации, описанной выше.
* Она не останавливается.

Пусть

f

{\displaystyle f}

 - множество всех упорядоченных пар

(
m
,
n
)

{\displaystyle (m, n)}

, для которых

T

{\displaystyle T}

 выводит

m

{\displaystyle m}

 при заданном вводе

n

{\displaystyle n}

. Мы можем видеть, что

f

{\displaystyle f}

 является частичной функцией с доменным пространством и кодоменом

N

{\displaystyle \mathbb{N}}

. Мы говорим, что

T

{\displaystyle T}

 "вычисляет"

f

{\displaystyle f}

, а **частично вычислимая функция** (или **частично рекурсивная функция**) - это частичная функция, для которой существует машина Тьюринга, которая её вычисляет.

Невычислимая функция может (эвфемистически) относиться к "невычислимой быстрорастущей функции". Существуют функции, которые в конечном итоге доминируют над всеми вычислимыми функциями, самым известным примером является функция занятого бобра. Такие функции неизбежно несовместимы и растут исключительно быстро. Важно отметить, что не все невычислимые функции обладают этим свойством - примером может быть функция

h
(
n
)

{\displaystyle h(n)}

, определенная как

1

{\displaystyle 1}

, если

n
−
i

{\displaystyle n-i}

 (в некотором фиксированном порядке) машина Тьюринга останавливается, и

0

{\displaystyle 0}

 в противном случае.

Обратите внимание, что невычислимость данной функции, как правило, очень сложна. Например, учитывая невычислимую функцию

f
(
n
)

{\displaystyle f(n)}

, такую как

Σ
(
n
)

{\displaystyle \Sigma(n)}

, у нас обычно нет очевидного способа вычислить

f
(
n
)

mod

2

{\displaystyle f(n) \mod 2}

, но это не подразумевает её невычислимости. Например, когда

f
(
n
)

{\displaystyle f(n)}

 задаётся как

2
Σ
(
n
)

{\displaystyle 2 \Sigma(n)}

, то легко показать

f
(
n
)

mod

# 2
0

{\displaystyle f(n) \mod 2 = 0}

, и, следовательно,

f
(
n
)

mod

2

{\displaystyle f(n) \mod 2}

 вычислимо.

Интуитивно понятно, что "почти все" функции над натуральными числами не поддаются вычислению — существует бесчисленное множество вычислимых функций и неисчислимое множество функций над натуральными числами.

## Свойства вычислимых функций

**Теорема:** Множество вычислимых функций замкнуто по составу.

**Доказательство:** Учитывая вычислимые

f

{\displaystyle f}

 и

g

{\displaystyle g}

, мы хотим показать, что

g
∘
f

{\displaystyle g \circ f}

 вычислимо. Пусть

S

{\displaystyle S}

 - машина Тьюринга, которая вычисляет

f

{\displaystyle f}

, а

T

{\displaystyle T}

 - машина Тьюринга, которая вычисляет

g

{\displaystyle g}

, такая, что состояния

S

{\displaystyle S}

 и

T

{\displaystyle T}

 не пересекаются. Пусть

Q
S

{\displaystyle Q\_S}

 - состояния

S

{\displaystyle S}

, пусть

q

S
0

{\displaystyle q\_ {S0}}

 - начальное состояние, пусть

q

S
H

{\displaystyle q\_{SH}}

 - состояние остановки, пусть

δ
S

{\displaystyle \delta\_S}

 - функция перехода, и тому подобное для

T

{\displaystyle T}

. Затем определите машину Тьюринга

S
∘
T

{\displaystyle S \circ T}

 следующим образом:

* Q

S
∘
T

=
(

Q
S

∖

q

S
H

)
∪

Q
T

{\displaystyle Q\_{S \circ T} = (Q\_S \backslash q\_{SH}) \cup Q\_T}
* q

S
∘
T
,
0

=

q

S
0

{\displaystyle q\_{S \circ T,0} = q\_{S0}}
* q

S
∘
T
,
H

=

q

T
H

{\displaystyle q\_{S \circ T,H} = q\_{TH}}
* δ

S
∘
T

=

δ
S
′

∪

δ
T

{\displaystyle \delta\_{S \circ T} = \delta\_S' \cup \delta\_T}

 где

δ
S
′

{\displaystyle \delta\_S'}

 заменяет все экземпляры

q

S
H

{\displaystyle q\_{SH}}

 в

δ
S

{\displaystyle \delta\_S}

 на

q

T
0

{\displaystyle q\_{T0}}

.
* Q

S
∘
T

{\displaystyle Q\_{S \circ T}}

 ⤳

Q

q

S
N

δ

β

{\displaystyle Q\_{q\_{SN}\delta^{\beta}}}

 для

N

{\displaystyle N}

 не

>
∗

S

{\displaystyle >^\* S}

 и

β

{\displaystyle \beta}

 вычислимо. Таким образом, вся последовательность вычислима.

Поскольку эта машина Тьюринга эффективно вычисляет

f

{\displaystyle f}

, а затем

g

{\displaystyle g}

, связанная с ней вычислимая функция равна

g
∘
f

{\displaystyle g \circ f}

. Следовательно,

g
∘
f

{\displaystyle g \circ f}

 вычислимо.

## Известные невычислимые функции

В настоящее время большинство невычислимых быстрорастущих функций являются производными от функций занятого бобра или Райо.

* Функция занятого бобра
* Функция машинального рисования
* Функция Кси
* Функция Райо
* Функция FOOT