Вычислимые числа — различия между версиями
| AMaltsev (обсуждение | вклад) | AMaltsev (обсуждение | вклад)  м | ||
| Строка 11: | Строка 11: | ||
| {{Теорема | {{Теорема | ||
| |statement= | |statement= | ||
| − | Число <tex> \alpha </tex> вычислимо  | + | Число <tex> \alpha </tex> вычислимо <tex>\iff</tex> множество <tex>A = \{x \in \mathbb Q \mid x < \alpha \} </tex> [[Разрешимые (рекурсивные) языки|разрешимо]]. | 
| |proof= | |proof= | ||
| <tex> \Longrightarrow </tex>: | <tex> \Longrightarrow </tex>: | ||
| Строка 44: | Строка 44: | ||
| {{Теорема | {{Теорема | ||
| |statement= | |statement= | ||
| − | Число <tex> \alpha </tex> вычислимо  | + | Число <tex> \alpha </tex> вычислимо <tex>\iff</tex> последовательность знаков представляющей его двоичной записи вычислима. | 
| |proof= | |proof= | ||
| <tex> \Longrightarrow </tex>: | <tex> \Longrightarrow </tex>: | ||
| Строка 75: | Строка 75: | ||
| {{Теорема | {{Теорема | ||
| |statement= | |statement= | ||
| − | Число <tex> \alpha </tex> вычислимо  | + | Число <tex> \alpha </tex> вычислимо <tex>\iff</tex> существует вычислимая последовательность рациональных чисел, вычислимо сходящаяся к <tex> \alpha </tex>. | 
| |proof= | |proof= | ||
| <tex> \Longrightarrow </tex>: | <tex> \Longrightarrow </tex>: | ||
| − | : Так как <tex> \alpha </tex> вычислимо, то, согласно предыдущей теореме, вычислима и его двоичная запись. Пусть <tex> r_n </tex> {{---}} часть последовательности знаков двоичной записи <tex> \alpha </tex> с <tex> n </tex> знаками после запятой. Данная последовательность вычислима, а также вычислимо сходится к <tex> \alpha </tex>, так как <tex>  | + | : Так как <tex> \alpha </tex> вычислимо, то, согласно предыдущей теореме, вычислима и его двоичная запись. Пусть <tex> r_n </tex> {{---}} часть последовательности знаков двоичной записи <tex> \alpha </tex> с <tex> n </tex> знаками после запятой. Данная последовательность вычислима, а также вычислимо сходится к <tex> \alpha </tex>, так как <tex> N(\varepsilon) = \lceil -\log_2 \varepsilon \rceil</tex>. | 
| <tex> \Longleftarrow </tex>: | <tex> \Longleftarrow </tex>: | ||
| Строка 107: | Строка 107: | ||
| Далее, так как | Далее, так как | ||
| − | <tex> |\alpha \beta - ab| = |(\alpha \beta - a \beta) + (a \beta - ab)| \le |\beta||\alpha - a| + |a||\beta - b| \le |b_\beta||\alpha - a| + |a||\beta - b|</tex>, | + | <tex dpi="150"> |\alpha \beta - ab| = |(\alpha \beta - a \beta) + (a \beta - ab)| \le |\beta||\alpha - a| + |a||\beta - b| \le |b_\beta||\alpha - a| + |a||\beta - b|</tex>, | 
| где <tex> b_\beta \in \mathbb Q, |b_\beta| > |\beta| </tex> (<tex> b_\beta </tex>, очевидно, можно найти за конечное время), то | где <tex> b_\beta \in \mathbb Q, |b_\beta| > |\beta| </tex> (<tex> b_\beta </tex>, очевидно, можно найти за конечное время), то | ||
| − | <tex> f_{\alpha \beta}(\varepsilon) = f_{\alpha}(\dfrac \varepsilon {b_\beta}) f_{\beta}(\dfrac \varepsilon a) </tex>. | + | <tex dpi="150"> f_{\alpha \beta}(\varepsilon) = f_{\alpha}(\dfrac \varepsilon {b_\beta}) f_{\beta}(\dfrac \varepsilon a) </tex>. | 
| Убедимся в вычислимости числа <tex> \dfrac 1 \alpha </tex>: | Убедимся в вычислимости числа <tex> \dfrac 1 \alpha </tex>: | ||
| Строка 177: | Строка 177: | ||
| {{Теорема | {{Теорема | ||
| |statement= | |statement= | ||
| − | Число <tex> \alpha </tex> перечислимо снизу  | + | Число <tex> \alpha </tex> перечислимо снизу <tex>\iff</tex> существует вычислимая возрастающая последовательность рациональных чисел, пределом которой является <tex> \alpha </tex>. | 
| |proof= | |proof= | ||
| <tex>\Longrightarrow</tex>: | <tex>\Longrightarrow</tex>: | ||
| Строка 190: | Строка 190: | ||
|   '''function''' <tex>p(x)</tex>: |   '''function''' <tex>p(x)</tex>: | ||
| − |     '''for''' n  | + |     '''for''' n = <tex>1</tex> '''to''' <tex>\infty</tex>: | 
|       '''if''' <tex> x < a_n </tex>: |       '''if''' <tex> x < a_n </tex>: | ||
|         '''return''' 1 |         '''return''' 1 | ||
| Строка 199: | Строка 199: | ||
| {{Теорема | {{Теорема | ||
| |statement= | |statement= | ||
| − | Число <tex> \alpha </tex> вычислимо  | + | Число <tex> \alpha </tex> вычислимо <tex>\iff</tex> оно перечислимо сверху и снизу. | 
| |proof= | |proof= | ||
| Обозначим множества <tex> \{a \in \mathbb Q \mid a < \alpha \} </tex> и <tex> \{a \in \mathbb Q \mid a > \alpha \} </tex> за <tex> A </tex> и <tex> B </tex> соответственно. | Обозначим множества <tex> \{a \in \mathbb Q \mid a < \alpha \} </tex> и <tex> \{a \in \mathbb Q \mid a > \alpha \} </tex> за <tex> A </tex> и <tex> B </tex> соответственно. | ||
| Строка 214: | Строка 214: | ||
| {{Определение | {{Определение | ||
| |definition= | |definition= | ||
| − | Пусть <tex> A </tex> {{---}} некоторое перечислимое, но неразрешимое множество натуральных чисел. Занумеруем его элементы. '''Последовательностью Шпеккера''' <tex> \{q_n\} </tex> называется последовательность рациональных чисел, <tex>n</tex>-ный член которой определяется как <tex> q_n = \sum\limits_{k=1}^{n} 2^{-A(n)-1} </tex>. | + | Пусть <tex> A </tex> {{---}} некоторое перечислимое, но неразрешимое множество натуральных чисел. Занумеруем его элементы. '''Последовательностью Шпеккера''' <tex> \{q_n\} </tex> называется последовательность рациональных чисел, <tex>n</tex>-ный член которой определяется как <tex dpi="150">  q_n = \sum\limits_{k=1}^{n} 2^{-A(n)-1} </tex>. | 
| }} | }} | ||
| − | Данная последовательность строго возрастает и ограничена числом <tex> 1 </tex>, следовательно, по признаку Вейерштрасса | + | Данная последовательность строго возрастает и ограничена числом <tex> 1 </tex>, следовательно, она сходится по признаку Вейерштрасса. | 
| {{Теорема | {{Теорема | ||
Версия 21:35, 20 ноября 2016
В математике натуральные, целые и рациональные числа являются конструктивными объектами, поэтому их использование в теории вычислимости не требует особых уточнений. В то же время, действительные числа, которые необходимы для применения методов математического анализа, определяются неконструктивно. Предложенный далее метод позволяет построить конструктивные объекты, во многом схожие с обычными действительными числами.
Содержание
Вычислимые числа
| Определение: | 
| Действительное число называется вычислимым (англ. computable number), если существует вычислимая функция , такая, что для любого рационального . | 
Свойства
| Теорема: | 
| Число  вычислимо  множество  разрешимо. | 
| Доказательство: | 
| : 
 
 function : for to : if : return 1 if : return 0 : 
 function : for : if : return x 
 | 
Важное замечание: построенное нами доказательство неконструктивно, так как мы не знаем наперед, рационально ли число , и уж тем более не пытаемся понять в случае его рациональности, чему именно оно равно. Но, так как мы ставим целью исследование свойств вычислимых чисел, а не явное построение соответствующих этим свойствам программ, то нам это доказательство полностью подходит.
С учетом только что доказанной теоремы, далее при проверке на принадлежность числа множеству будем писать просто .
| Теорема: | 
| Число  вычислимо  последовательность знаков представляющей его двоичной записи вычислима. | 
| Доказательство: | 
| : 
 
 
 function : l = 0, r = 1 for to : if : l = m, t = 1 else: r = m, t = 0 return t : 
 | 
| Определение: | 
| Последовательность рациональных чисел вычислимо сходится к , если существует вычислимая функция , такая, что для любого рационального выполняется . | 
| Теорема: | 
| Число  вычислимо  существует вычислимая последовательность рациональных чисел, вычислимо сходящаяся к . | 
| Доказательство: | 
| : 
 : 
 | 
| Теорема: | 
| Пусть числа  вычислимы. Тогда также вычислимы числа , ,  и . | 
| Доказательство: | 
| В пределах этого доказательства будем обозначать функцию-приближение для произвольного вычислимого числа как . Для того, чтобы получить приближение для результата операции, нам нужно выразить функцию-результат через приближения для операндов. Заметим, что , для произвольных рациональных , значит, в качестве необходимых функций для и можно взять 
 и 
 соответственно (при подстановке в неравенство и вместо и каждый модуль в правой части не превосходит , поэтому, не превосходит ). Далее, так как , где (, очевидно, можно найти за конечное время), то . Убедимся в вычислимости числа : , где . .Отсюда, также вычислимо. | 
| Теорема: | 
| Корень многочлена с вычислимыми коэффициентами вычислим. | 
| Доказательство: | 
| Пусть — корень многочлена с вычислимыми коэффициентами. Если , то его можно найти точно, перебрав все рациональные числа. Иначе, выберем некоторый интервал ( — вычислимы), достаточно малый, чтобы полином был монотонным на отрезках и . Заметим, что для вычислимого значение также вычислимо, так как в процессе его вычисления используются только операции, вычислимость значений которых уже была ранее доказана. Теперь, если полином имеет разные знаки на отрезках и , то для поиска можно воспользоваться двоичным поиском нуля на , иначе — троичным поиском экстремума на .Останавливая тот или иной алгоритм, когда текущая длина интервала становится меньше и возвращая левую границу в качестве ответа, получаем функцию . | 
| Теорема: | 
| Предел вычислимо сходящейся вычислимой последовательности вычислимых чисел вычислим. | 
| Доказательство: | 
| Пусть рассматриваемая последовательность — , и . Запишем формально данные нам условия: 
 
 Здесь функции , и все вычислимы. Построим функцию , которая дает приближение к с точностью до : function : n = returnТак как , первое слагаемое меньше по выбору , второе — в силу вычислимости , то , и действительно вычисляет требуемое приближение. | 
Перечислимые числа
| Определение: | 
| Действительное число называется перечислимым снизу (англ. recursively enumerable number), если множество перечислимо. | 
| Определение: | 
| Действительное число называется перечислимым сверху, если множество перечислимо. | 
Свойства
| Теорема: | 
| Число  перечислимо снизу  существует вычислимая возрастающая последовательность рациональных чисел, пределом которой является . | 
| Доказательство: | 
| : 
 
 : 
 function : for n = to : if : return 1 
 | 
| Теорема: | 
| Число  вычислимо  оно перечислимо сверху и снизу. | 
| Доказательство: | 
| Обозначим множества и за и соответственно. Если рационально, то необходимые (полу)разрешители строятся тривиально.В противном случае, так как , то перечислимость множеств и равносильна разрешимости множества , которая, в свою очередь, равносильна вычислимости . | 
Последовательность Шпеккера
Множество всех программ счётно, поэтому множество вычислимых чисел также счётно. Однако, множество вещественных чисел несчётно, значит, существуют невычислимые вещественные числа. Построим явно пример такого числа.
| Определение: | 
| Пусть — некоторое перечислимое, но неразрешимое множество натуральных чисел. Занумеруем его элементы. Последовательностью Шпеккера называется последовательность рациональных чисел, -ный член которой определяется как . | 
Данная последовательность строго возрастает и ограничена числом , следовательно, она сходится по признаку Вейерштрасса.
| Теорема: | 
| Число  перечислимо снизу, но невычислимо. | 
| Доказательство: | 
| перечислимо снизу, как предел возрастающей вычислимой последовательности рациональных чисел. Допустим теперь, что вычислимо.Пусть . Рассмотрим двоичную запись числа , если ее -ный знак после запятой равен 1, то , иначе — . Мы построили разрешитель для множества . Тем не менее, мы знаем, что — неразрешимое множество, и это невозможно, значит, невычислимо. | 
Источники информации
- Верещагин Н. К., Шень А. — Лекции по математической логике и теории алгоритмов. Часть 3. Вычислимые функции — М.: МЦНМО, 1999 — стр. 14
- Computable number
- Specker sequence
