Чому обчислювальні числа (у розумінні Тюрінга) перелічуються?


9

Чому обчислювальні числа (у розумінні Тюрінга) перелічуються? Це повинно бути дуже очевидно, але в даний момент я його просто не бачу.


3
Чи не просто тому, що всі ТМ перелічені?
йо

Це повинно бути.

2
Будучи переліченим означає (за визначенням), що існує машина Тьюрінга, яка зупиняє відповідь "так" на кожен так-так. Оскільки підрахунок означає, що існує машина Тьюрінга, яка зупиняє правильну відповідь на кожен вхід, легко зрозуміти, що обчислюваність означає, що це безліч (це підзарядка).
Jonas G. Drange

Я не думаю, що це сенс "обчислювальної" в даному випадку. Це проблема будівництва, а не проблема рішення.
lvella

Відповіді:


5

Я припускаю, що ваше визначення обчислюваного числа таке: є машина Тьюрінга, яка на вході н, зупинки з н-ий біт числа.

Припустимо, було проведено рекурсивне перерахування машин Тьюрінга, які виробляють обчислювані числа. Ви можете використовувати діагоналізацію, щоб створити нове обчислюване число, яке не є частиною цього рекурсивного перерахування.

Зараховувати перерахування обчислювальних чисел шляхом перерахування машин Тьюрінга, але не кожна машина Тьюрінга відповідає обчислювальному номеру, і взагалі вирішує, чи зупиняється машина Тьюрінга на всіх входах (не кажучи вже про вихід або 0). Однак можна перерахувати всі ефективні обчислювані числа, скажімо, ті, час роботи яких є поліном, використовуючи тактовані машини Тьюрінга.


Тож навіть незважаючи на те, що кардинальність набору (у даному випадку множина обчислюваних чисел) не більша, ніж простота іншого набору, який є списком (набір усіх ТМ), це не означає, що перший набір може бути перераховані.
André Souza Lemos

2

Якщо під числом ви маєте на увазі, що існує біекція з натуральними числами (тобто, підрахункові), то ні, обчислювані числа не перелічуються.

Давайте визначимо проблему точніше: "Машина друкування чисел із друком чисел (NPTM)" - це машина Тюрінга, яка при кожному переході стану не може надрукувати нічого, а також може надрукувати будь-яку десяткову цифру, знак мінус або період. Цього достатньо для друку десяткових зображень реальних чисел.

Дозволяє визначити обчислювальне реальне число як будь-яке дійсне число, яке може бути надруковано з довільним довгим поданням, за достатнього часу, NPTM, починаючи з порожньої стрічки. Давайте також скажемо, що число обчислюється заданим NPTM, якщо воно або зупиняється після друку добре сформованого реального числа (у цьому випадку число має кінцеве десяткове представлення), або буде за певний час друкувати добре сформоване число з десятковою крапкою і коли-небудь збільшить точність числа, надрукувавши більше цифр, даючи все більше часу.

Ця пізніша умова потрібна, оскільки, якщо у нас є машина, яка, наприклад, друкує нескінченну послідовність якоїсь цифри, скажімо 1111111111111111111..., не можна сказати, що вона обчислює будь-яке реальне число, оскільки справжні числа мають нескінченне представлення праворуч сторона десяткового періоду. З іншого боку, якщо машина друкує, 3.14а потім припиняє друкувати, але ніколи не зупиняється, не можна сказати, що обчислює будь-яке реальне число просто тому, що точність числа не збільшується, таким чином, ця конкретна машина не будуватиме її далі.

Це приклади NPTM, які обчислюють деяку кількість. NPTM, що:

  • відбитки 1, потім зупинки. Він обчислює число 1.
  • відбитки 1.0, потім зупинки. Він також обчислює число 1.
  • друкує 1.0000000та зберігає друк нулів назавжди. Цей також обчислює число 1.
  • відбитки 3.14, потім зупинки. Він обчислює число 3.14.
  • друкує 3.14159та продовжує друкувати цифриπ. Це обчислює числоπ.
  • відбитки -42., а потім зупинки. Він обчислює число -42.

І це приклади NPTM, які не обчислюють жодної кількості. NPTM, що:

  • друкує, 123123123а потім продовжує друкувати послідовність 123назавжди. Не обчислює число, оскільки ця нескінченна послідовність не представляє реального числа.
  • відбитки, 1.0.0а потім зупинки. Це не тому, що ця кінцева послідовність недостатньо сформована.
  • відбитки, ....-..---а потім зупинки. Це не тому, що і це не добре сформоване реальне число.
  • ніколи нічого не друкує, але і ніколи не зупиняє. Число не будується.
  • ніколи нічого не друкує і негайно зупиняється. Жодного номера не було побудовано.
  • друкує 3.14, не зупиняється, але також ніколи нічого іншого не друкує. Не обчислює число, оскільки його точність не збільшується з часом.

У вас є ідея. Тоді у нас є два класи NPTM: ті, які обчислюють деяку реальну кількість, і ті, які ні.

Проблема з пошуком деякого перерахунку для обчислюваних чисел полягає в тому, що, навіть якщо самі NPTM є підрахунковими, ми не можемо мати процедури, яка відокремлює один вид NPTM від іншого.

Розглянемо визначення лічильного набору: для множини S щоб бути підрахунком, повинна існувати якась біективна функція Ж:NS.

Щоб "довести", що обчислювані числа підлічуються, можна спробувати визначити таку функцію з підрахунку NPTM (і це те, що люди часто робили, коли вони вважають, що обчислювані числа підлічуються). Щось на зразок цього:

NPTM є підрахунковими, тому існує бієктивна функція ЕNPTM:N->NPTM, таким чином, ми можемо назавжди перерахувати всі існуючі NPTM. Отже, так само перерахувати всі обчислювані числа та точно визначити бієктивну функціюЕComputabe:NОбчислювальна, треба просто перерахувати всі NPTM, але порахувати лише ті, які обчислюють деяке дійсне число. Але як ми знаємо, що вона обчислює якесь реальне число?

Ну, ми цього не робимо. Подумайте про машину, яка негайно друкує 1.0, а потім зупиняє друк і продовжує намагатися вирішити екземпляр проблеми кореспонденції на пост . Якщо вона вирішує проблему, вона зупиняється, тоді машина просто обчислила номер один. Але ця проблема не може бути вирішена, тому вона ніколи не зупиняється, і якщо вона ніколи не зупиняється, вона ніколи не обчислює реальну кількість. Але ми не можемо знати, чи це колись зупиниться, тому що проблема зупинки також не вирішена ! Отже, оскільки немає можливості дізнатися, чи є ця машина, і нескінченно багато інших машин, чи то обчислює, чи не справжнє число, ми не можемо таким чином побудувати / визначити нашу біективну функцію.

Наївний спосіб визначити біекцію не вдається, і довести, що немає ніякого способу зробити це не дуже складно. Як запропонував Юваль Філіус, можна використовувати діагоналізацію.


Ви, напевно, хотіли сказати "обчислювані числа не перелічуються" замість "обчислювані числа не підлягають обліку".
IllidanS4 хоче, щоб Моніка повернулася
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.