В статье математика Tibor Radó приводится доказательство невычислимости данной функции. Сама статья на английском, поэтому я приведу краткую сводку данной статьи. Оригинал стаьи есть в прикреплённых файлах.
В игре Busy Beaver используются "карточки", которые являются аналогом пятерок МТ; бесконечная в обе стороны лента Тьюринга, изначально заполненная нулями; алфавит - {0, 1}. Каждая карточка пронумерована (некоторое число - исходное состояние МТ), в ней описано, что делать, если в текущей ячейке 0 или 1, что поставить (0 или 1), куда перейти (0 - влево, 1 - вправо) и в какое следующее состояние перейти (0 - остановка, любое другое число - номер соответствующей карточки).
Например:
карточка 1
0 102
1 111
карточка 2
0 111
1 100
Суть игры в том, чтобы МТ, описываемая n карточками, остановилась и количество подряд идущих единиц было наибольшим среди всех МТ, которые возможно описать n карточками.
Введём функцию Busy Beaver и будем записывать её как S(n). Значение S(n) - наибольшее количество подряд идущих единиц, которые получились у остановившейся МТ, которая описывается n карточками.
Теперь перейдём к теореме.
Будем писать
f(x) > (g(x))*,
если f(x) > g(x), начиная с какого-то x_0.
Сама теорема звучит следующим образом.
S(n) > (f(n))* для любой вычислимой функции f(n). Следовательно, S(n) невычислима.
Обозначим вспомогательную функцию F(x) = (Сумма от i = 0 до x (f(i) + i^2)).
Отсюда:
F(x) >= f(x)
F(x) >= x^2
F(x + 1) > F(x)
Так как F(x) - вычислима, то можно создать МТ (назовём её M_F), которая вычисляет F(x), при этом вся МТ записана в C карточках.
Объявим МТ M_x, которая печатает x единиц подряд и останавливается; при этом для самой M_x используется x карточек. Например, для x = 3:
карточка 1
0 112
1 110;
карточка 2
0 113
1 ---;
карточка 3
0 101
1 ---;
Теперь объявим МТ MF_x, которая является последовательным применением: M_x -> M_F -> M_F. Такая МТ, используя x + 2C карточек, будет последовательно записывать x, F(x), F(F(x)) единиц. Таким образом, получится x + F(x) + F(F(x)) единиц подряд, при чём MF_x является одной из вариантов МТ для S(x + 2C). Отсюда получаем:
S(x + 2C) >= x + F(x) + F(F(x)).
Так как
x^2 > (x + 2C)* и F(x) >= x^2, то
F(x) > (x + 2C)*.
Так как F(x) - монотонна, то
F(F(x)) > (F(x + 2C))*.
Так как S(x + 2C) >= x + F(x) + F(F(x)), то:
S(x + 2C) > (F(x + 2C))*
Поскольку F(x) >= f(x), то:
S(x + 2C) > (f(x + 2С))*
Теперь обозначим x + 2C как n:
S(n) > (f(n))*.
Вложения:
открыть |
скачать -
rado-on_non-computable_functions-rotated.pdf
(1.64 MB)