Вычислимые числа — различия между версиями
AMaltsev (обсуждение | вклад) м |
AMaltsev (обсуждение | вклад) м |
||
Строка 52: | Строка 52: | ||
: Очевидно, двоичная запись целой части <tex> \alpha </tex> всегда вычислима (так как множество чисел, меньших <tex> \alpha </tex>, разрешимо, то можно перебрать все целые числа в порядке возрастания их абсолютных величин и найти наибольшее число, меньшее <tex> \alpha </tex>), поэтому будем считать, что <tex> \alpha \in (0; 1) </tex>. | : Очевидно, двоичная запись целой части <tex> \alpha </tex> всегда вычислима (так как множество чисел, меньших <tex> \alpha </tex>, разрешимо, то можно перебрать все целые числа в порядке возрастания их абсолютных величин и найти наибольшее число, меньшее <tex> \alpha </tex>), поэтому будем считать, что <tex> \alpha \in (0; 1) </tex>. | ||
− | : Напишем программу, которая по числу <tex> n </tex> вычисляет <tex> n </tex>-ный знак числа <tex> \alpha </tex> после запятой: | + | : Напишем программу, которая по числу <tex> n </tex> вычисляет <tex> n </tex>-ный знак в двоичном представлении числа <tex> \alpha </tex> после запятой: |
'''function''' <tex>p(n)</tex>: | '''function''' <tex>p(n)</tex>: | ||
Строка 103: | Строка 103: | ||
<tex dpi="150"> f_{\alpha - \beta}(\varepsilon) = f_{\alpha}(\dfrac \varepsilon 2) - f_{\beta}(\dfrac \varepsilon 2) </tex> | <tex dpi="150"> f_{\alpha - \beta}(\varepsilon) = f_{\alpha}(\dfrac \varepsilon 2) - f_{\beta}(\dfrac \varepsilon 2) </tex> | ||
− | соответственно (при подстановке в неравенство <tex> f_{\alpha} </tex> и <tex> f_{\beta} </tex> вместо <tex> a </tex> и <tex> b </tex> каждый модуль в правой части не превосходит <tex> \dfrac \varepsilon 2 </tex>, поэтому | + | соответственно (при подстановке в неравенство <tex> f_{\alpha} </tex> и <tex> f_{\beta} </tex> вместо <tex> a </tex> и <tex> b </tex> каждый модуль в правой части не превосходит <tex> \dfrac \varepsilon 2 </tex>, поэтому <tex> f_{\alpha \pm \beta} </tex> не превосходит <tex> \varepsilon </tex>). |
Далее, так как | Далее, так как | ||
Строка 109: | Строка 109: | ||
<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 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>\beta</tex> по модулю (т.е. <tex> b_\beta \in \mathbb Q, |b_\beta| > |\beta| </tex>), то |
<tex dpi="150"> 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>. | ||
Строка 142: | Строка 142: | ||
{{Теорема | {{Теорема | ||
|statement= | |statement= | ||
− | Предел вычислимо сходящейся вычислимой последовательности вычислимых чисел вычислим. | + | Предел вычислимо сходящейся вычислимой последовательности <tex> r_n </tex> вычислимых чисел вычислим. |
|proof= | |proof= | ||
− | Пусть | + | Пусть <tex> \alpha = \lim\limits_{n \to \infty} r_n </tex>. Запишем формально данные нам условия: |
<tex> \forall \varepsilon_1 > 0\ \forall n > (\varepsilon_1): |r(n) - \alpha| < \varepsilon_1 </tex> | <tex> \forall \varepsilon_1 > 0\ \forall n > (\varepsilon_1): |r(n) - \alpha| < \varepsilon_1 </tex> | ||
Строка 214: | Строка 214: | ||
{{Определение | {{Определение | ||
|definition= | |definition= | ||
− | Пусть <tex> A </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>. |
}} | }} | ||
Строка 225: | Строка 225: | ||
<tex> q </tex> перечислимо снизу, как предел возрастающей вычислимой последовательности рациональных чисел. | <tex> q </tex> перечислимо снизу, как предел возрастающей вычислимой последовательности рациональных чисел. | ||
− | Допустим теперь, что <tex> q </tex> вычислимо. | + | Допустим теперь, что <tex> q </tex> {{---}} вычислимо. |
− | Пусть <tex> A = \{p \mid p(p) = 1\}</tex>. Рассмотрим двоичную запись числа <tex> q </tex>, если ее <tex> n </tex>-ный знак после запятой равен 1, то <tex> n \in A </tex>, иначе {{---}} <tex> n \notin A </tex>. Мы построили разрешитель для множества <tex> A </tex>. Тем не менее, | + | Пусть <tex> A = \{p \mid p(p) = 1\}</tex>. Рассмотрим двоичную запись числа <tex> q </tex>, если ее <tex> n </tex>-ный знак после запятой равен 1, то <tex> n \in A </tex>, иначе {{---}} <tex> n \notin A </tex>. Мы построили разрешитель для множества <tex> A </tex>. Тем не менее, известно, что <tex> A </tex> {{---}} неразрешимое множество, а это невозможно, значит, <tex> q </tex> {{---}} невычислимо. |
}} | }} | ||
Версия 22:10, 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