Вычислимые числа — различия между версиями
Sementry (обсуждение | вклад) (→Перечислимые числа: все) |
Sementry (обсуждение | вклад) (→Последовательность Шпеккера) |
||
| Строка 194: | Строка 194: | ||
== Последовательность Шпеккера == | == Последовательность Шпеккера == | ||
| + | |||
| + | Очевидно, множество вычислимых чисел счетно, так как его мощность можно ограничить сверху мощностью не более чем счетной степени множества <tex> \mathbb Q </tex>. Однако, множество вещественных чисел несчетно, значит, существуют невычислимые вещественные числа. Построим явно пример такого числа. | ||
{{Определение | {{Определение | ||
| Строка 205: | Строка 207: | ||
|statement= | |statement= | ||
Число <tex> q = \lim\limits_{n \to \infty} q_n </tex> перечислимо снизу, но невычислимо. | Число <tex> q = \lim\limits_{n \to \infty} q_n </tex> перечислимо снизу, но невычислимо. | ||
| + | |proof= | ||
| + | <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 </tex> {{---}} неразрешимое множество, и это невозможно, значит, <tex> q </tex> невычислимо. | ||
}} | }} | ||
Версия 21: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 : Для любого рационального , найдем , тогда в качестве значения функции можно взять часть последовательности знаков двоичной записи с знаками после запятой. |
| Определение: |
| Последовательность рациональных чисел вычислимо сходится к , если существует вычислимая функция , такая, что для любого рационального выполняется . |
| Теорема: |
Число вычислимо тогда и только тогда, когда существует вычислимая последовательность рациональных чисел, вычислимо сходящаяся к . |
| Доказательство: |
|
: Так как вычислимо, то, согласно предыдущей теореме, вычислима и его двоичная запись. Пусть — часть последовательности знаков двоичной записи с знаками после запятой. Данная последовательность вычислима, а также вычислимо сходится к , так как . : Пусть , тогда вычислимо по определению. |
| Теорема: |
Пусть числа вычислимы. Тогда также вычислимы числа , , и . |
| Доказательство: |
|
Заметим, что , значит, в качестве необходимых функций для и можно взять
и
соответственно. Далее, так как , где (, очевидно, можно найти за конечное время), то . Убедимся в вычислимости числа : , где . . Отсюда, также вычислимо. |
| Теорема: |
Корень многочлена с вычислимыми коэффициентами вычислим. |
| Доказательство: |
|
Пусть — корень многочлена с вычислимыми коэффициентами. Если , то его можно найти точно, перебрав все рациональные числа. Иначе, пользуясь аксиомой выбора, подберем некоторый интервал ( — вычислимы), достаточно малый, чтобы полином был монотонным на отрезках и . Заметим, что для вычислимого значение также вычислимо, так как в процессе его вычисления используются только операции, вычислимость значений которых уже была ранее доказана. Теперь, если полином имеет разные знаки на отрезках и , то для поиска можно воспользоваться двоичным поиском для поиска нуля на , иначе — троичным поиском для поиска минимума или максимума на . В обоих операциях Останавливая тот или иной алгоритм при длине текущего интервала, меньшей , получаем функцию . |
| Теорема: |
Предел вычислимо сходящейся вычислимой последовательности вычислимых чисел вычислим. |
| Доказательство: |
|
Пусть рассматриваемая последовательность — , и . Запишем формально данные нам условия:
Здесь функции , и все вычислимы. Построим функцию , которая дает приближение к с точностью до : : n = returnТак как , первое слагаемое меньше по выбору , второе — в силу вычислимости , то , и действительно вычисляет требуемое приближение. |
Перечислимые числа
| Определение: |
| Действительное число называется перечислимым снизу (recursively enumerable number), если множество перечислимо. |
| Определение: |
| Действительное число называется перечислимым сверху, если множество перечислимо. |
Свойства
| Теорема: |
Число перечислимо снизу тогда и только тогда, когда существует вычислимая возрастающая последовательность рациональных чисел, пределом которой является . |
| Доказательство: |
|
: Так как перечислимо, то можно перечислить его элементы в возрастающем порядке, они и дают нам необходимую последовательность, так как ее пределом будет . : Построим полуразрешитель для множества : p(x): for n in : if : return 1Если , то , и так как , то программа вернет ответ при . |
| Теорема: |
Число вычислимо тогда и только тогда, когда оно перечислимо сверху и снизу. |
| Доказательство: |
|
Обозначим множества и за и соответственно. Если рационально, то необходимые (полу)разрешатели строятся тривиально. В противном случае, так как , то перечислимость множеств и равносильна разрешимости множества , которая, в свою очередь, равносильна вычислимости . |
Последовательность Шпеккера
Очевидно, множество вычислимых чисел счетно, так как его мощность можно ограничить сверху мощностью не более чем счетной степени множества . Однако, множество вещественных чисел несчетно, значит, существуют невычислимые вещественные числа. Построим явно пример такого числа.
| Определение: |
| Пусть — некоторое перечислимое, но неразрешимое множество натуральных чисел. Занумеруем его элементы. Последовательностью Шпеккера называется последовательность рациональных чисел, -ный член которой определяется как . |
Данная последовательность строго возрастает и ограничена числом , следовательно, по признаку Вейерштрасса, она сходится.
| Теорема: |
Число перечислимо снизу, но невычислимо. |
| Доказательство: |
|
перечислимо снизу, как предел возрастающей вычислимой последовательности рациональных чисел. Допустим теперь, что вычислимо. Пусть . Рассмотрим двоичную запись числа , если ее -ный знак после запятой равен 1, то , иначе — . Мы построили разрешатель для множества . Тем не менее, мы знаем, что — неразрешимое множество, и это невозможно, значит, невычислимо. |
Ссылки
- Верещагин Н. К., Шень А. Лекции по математической логике и теории алгоритмов. Часть 3. Вычислимые функции — М.: МЦНМО, 1999 - С. 14
- http://en.wikipedia.org/wiki/Computable_number
- http://en.wikipedia.org/wiki/Specker_sequence