Вычислимые числа — различия между версиями
Sementry (обсуждение | вклад) (→Свойства: доказательство теоремы 1) |
Sementry (обсуждение | вклад) (→Свойства: еще две теоремы) |
||
Строка 25: | Строка 25: | ||
<tex> \Longleftarrow </tex>: | <tex> \Longleftarrow </tex>: | ||
+ | |||
Построим функцию <tex> a(\varepsilon) </tex>: | Построим функцию <tex> a(\varepsilon) </tex>: | ||
Строка 34: | Строка 35: | ||
Так как <tex> A </tex> разрешимо, <tex> \alpha = \sup A </tex> и для любого <tex> x \in A </tex> проверка в условном операторе завершается за конечное время, то функция <tex> a(\varepsilon) </tex> вычислима для любого рационального <tex> \varepsilon </tex>. | Так как <tex> A </tex> разрешимо, <tex> \alpha = \sup A </tex> и для любого <tex> x \in A </tex> проверка в условном операторе завершается за конечное время, то функция <tex> a(\varepsilon) </tex> вычислима для любого рационального <tex> \varepsilon </tex>. | ||
}} | }} | ||
+ | |||
+ | С учетом только что доказанной теоремы, далее при проверке на принадлежность числа <tex> x </tex> множеству <tex> A </tex> будем писать просто <tex> x < \alpha </tex>. | ||
{{Теорема | {{Теорема | ||
|statement= | |statement= | ||
− | Число <tex> \alpha </tex> вычислимо тогда и только тогда, когда | + | Число <tex> \alpha </tex> вычислимо тогда и только тогда, когда последовательность знаков представляющей его двоичной записи вычислима. |
|proof= | |proof= | ||
<tex> \Longrightarrow </tex>: | <tex> \Longrightarrow </tex>: | ||
+ | |||
+ | Если число <tex> \alpha </tex> {{---}} рациональное, то необходимую последовательность можно получить, воспользовавшись стандартным алгоритмом перевода числа в двоичную систему счисления. Рассмотрим случай, когда <tex> \alpha \in \mathbb R \setminus \mathbb Q </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>p(n)</tex>: | ||
+ | l = 0, r = 1 | ||
+ | '''for''' <tex> k = 1..n </tex>: | ||
+ | <tex> m = \frac{l+r}2 </tex> | ||
+ | '''if''' <tex> m < \alpha</tex>: | ||
+ | l = m, t = 1 | ||
+ | '''else''': | ||
+ | r = m, t = 0 | ||
+ | '''return''' t | ||
+ | |||
<tex> \Longleftarrow </tex>: | <tex> \Longleftarrow </tex>: | ||
+ | Для любого рационального <tex> \varepsilon > 0 </tex>, найдем <tex> n: 2^{-n} < \varepsilon </tex>, тогда в качестве значения функции <tex> a(\varepsilon) </tex> можно взять часть последовательности знаков двоичной записи <tex> \alpha </tex> с <tex> n </tex> знаками после запятой. | ||
+ | }} | ||
+ | |||
+ | {{Определение | ||
+ | |definition= | ||
+ | Последовательность рациональных чисел <tex> \{ r_n \} </tex> вычислимо сходится к <tex> \alpha </tex>, если существует вычислимая функция <tex> N: \mathbb Q \rightarrow \mathbb N </tex>, такая, что для любого рационального <tex> \varepsilon > 0 </tex> выполняется <tex>\forall n > N(\varepsilon): |r_n - \alpha| < \varepsilon </tex>. | ||
}} | }} | ||
{{Теорема | {{Теорема | ||
|statement= | |statement= | ||
− | + | Число <tex> \alpha </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> N(\varepsilon) = \lceil -\log_2 \varepsilon \rceil</tex>. | ||
+ | |||
<tex> \Longleftarrow </tex>: | <tex> \Longleftarrow </tex>: | ||
+ | |||
+ | Пусть <tex> a(\varepsilon) = r_{N(\varepsilon)} </tex>, тогда <tex> \alpha </tex> вычислимо по определению. | ||
+ | }} | ||
+ | |||
+ | {{Теорема | ||
+ | |statement= | ||
+ | Пусть числа <tex> \alpha, \beta </tex> вычислимы. Тогда также вычислимы числа <tex> \alpha + \beta </tex>, <tex> \alpha - \beta </tex>, <tex> \alpha \beta </tex> и <tex> \frac \alpha \beta </tex>. | ||
+ | |proof= | ||
+ | {{TODO|t=здесь должна появиться некоторая унылая арифметика}} | ||
}} | }} | ||
Версия 19:49, 12 января 2013
В математике натуральные, целые и рациональные числа являются конструктивными объектами, поэтому их использование в теории вычислимости не требует особых уточнений. В то же время, действительные числа, которые необходимы для применения методов математического анализа, определяются неконструктивно. Предложенный далее метод позволяет построить конструктивные объекты, во многом схожие с обычными действительными числами.
Содержание
Вычислимые числа
Определение: |
Действительное число | называется вычислимым (computable number), если существует вычислимая функция , такая, что для любого рационального .
Свойства
Теорема: |
Число вычислимо тогда и только тогда, когда множество , разрешимо. |
Доказательство: |
: Построим разрешатель для :: for : if : return 1 if : return 0 : Построим функцию :Так как : for : if : return x разрешимо, и для любого проверка в условном операторе завершается за конечное время, то функция вычислима для любого рационального . |
С учетом только что доказанной теоремы, далее при проверке на принадлежность числа
множеству будем писать просто .Теорема: |
Число вычислимо тогда и только тогда, когда последовательность знаков представляющей его двоичной записи вычислима. |
Доказательство: |
: Если число — рациональное, то необходимую последовательность можно получить, воспользовавшись стандартным алгоритмом перевода числа в двоичную систему счисления. Рассмотрим случай, когда .Очевидно, двоичная запись целой части всегда вычислима (так как множество чисел, меньших , разрешимо, то можно перебрать все целые числа в порядке возрастания их абсолютных величин и найти наибольшее число, меньшее ), поэтому будем считать, что .Напишем программу, которая по числу вычисляет -ный знак числа после запятой:: l = 0, r = 1 for : if : l = m, t = 1 else: r = m, t = 0 return t Для любого рационального : , найдем , тогда в качестве значения функции можно взять часть последовательности знаков двоичной записи с знаками после запятой. |
Определение: |
Последовательность рациональных чисел | вычислимо сходится к , если существует вычислимая функция , такая, что для любого рационального выполняется .
Теорема: |
Число вычислимо тогда и только тогда, когда существует вычислимая последовательность рациональных чисел, вычислимо сходящаяся к . |
Доказательство: |
: Так как вычислимо, то, согласно предыдущей теореме, вычислима и его двоичная запись. Пусть — часть последовательности знаков двоичной записи с знаками после запятой. Данная последовательность вычислима, а также вычислимо сходится к , так как .Пусть : , тогда вычислимо по определению. |
Теорема: |
Пусть числа вычислимы. Тогда также вычислимы числа , , и . |
Доказательство: |
TODO: здесь должна появиться некоторая унылая арифметика |
Теорема: |
Корень многочлена с вычислимыми коэффициентами вычислим. |
Теорема: |
Предел вычислимо сходящейся вычислимой последовательности вычислимых чисел вычислим. |
Перечислимые числа
Определение: |
Действительное число | называется перечислимым снизу (recursively enumerable number), если множество перечислимо.
Аналогично определяются перечислимые сверху числа.
Свойства
Теорема: |
Число перечислимо снизу тогда и только тогда, когда существует вычислимая возрастающая последовательность рациональных чисел, пределом которой является . |
Теорема: |
Число вычислимо тогда и только тогда, когда оно перечислимо сверху и снизу. |
Последовательность Шпеккера
Определение: |
Пусть | — некоторое перечислимое, но неразрешимое множество натуральных чисел. Занумеруем его элементы. Последовательностью Шпеккера называется последовательность рациональных чисел, -ный член которой определяется как .
Данная последовательность строго возрастает и ограничена числом , следовательно, по признаку Вейерштрасса, она сходится.
Теорема: |
Число перечислимо снизу, но невычислимо. |
Ссылки
- Верещагин Н. К., Шень А. Лекции по математической логике и теории алгоритмов. Часть 3. Вычислимые функции — М.: МЦНМО, 1999 - С. 14
- http://en.wikipedia.org/wiki/Computable_number
- http://en.wikipedia.org/wiki/Specker_sequence