Чи завжди машина, що зупиняється, постійно цикли?


22

Машина Тьюрінга, яка повертається у раніше зустрічається стан із головою для читання / запису на тій же комірці точно такої ж стрічки, потрапить у цикл. Така машина не зупиняється.

Чи може хтось навести приклад машини, яка ніколи не зупиняється?


1
Лише зауваження: стрічка також може бути різною: достатньою (але не обов'язковою) умовою для нескінченного циклу, коли ТМ вводить ту саму клітинку на етапі і на етапі t 2 > t 1 в тому ж стані, що при крок t 2 частина стрічки, яку відвідує голова між етапом t 1 і етапом t 2 , дорівнює відповідній частині безпосередньо перед введенням t 1 . t1t2>t1t2t1t2t1
Vor

4
Якщо TM довелося робити цикл, щоб не зупинитись, ви зможете досить легко вирішити проблему зупинки для ТМ: запам’ятайте всі попередні конфігурації та на кожному кроці дивіться, чи не в конфігурації ви бачили раніше, і якщо це так, ви знаєте, що річ не припиняється (інакше, оскільки ми припускаємо, що вона повинна циклічно працювати, щоб запустити її назавжди, вона не запуститься назавжди, тобто вона зупиниться; в такому випадку ми зрештою знати про це).
Patrick87

Натхненний відповіддю @Niel de Beaudrap: машина Тьюрінга може обчислити послідовність oeis.org/A014445 і зупинитися, коли отримає непарне число. Він може обчислити oeis.org/A016742 як поточну суму і зупинити, коли число непарне. Він може обчислити, x^2коли xцикли між -100і 100та їздять на велосипеді за модулем і зупиняються, коли результат негативний. Він може обчислити, x%2де х варіюється від нуля до позитивної нескінченності і зупиниться, коли результат дорівнює 2. У мові збірки зробіть / в той час / для циклів всі зійдуть, маючи умовний стрибок, але сам по собі стрибок лише мало означає.
Леонід

Припущення питання справедливе лише для детермінованих машин.
Рафаель

Відповіді:


15

Розглянемо ТМ, який завжди переміщує головку стрічки вправо і друкує спеціальний символ непорожньої стрічки на кожному кроці. Це означає, що ТМ ніколи не зупиняється, оскільки завжди рухається вправо і ніколи не повторює стан, оскільки після k кроків головка стрічки знаходиться над k-м осередком машини. Отже, кожна конфігурація машини відрізняється від усіх інших, і машина завжди циклічно.

Ми також могли б неконструктивно показати існування таких машин. Припустимо для суперечності, що кожна ТМ, яка ніколи не зупиняється, врешті-решт петлює. Це означає, що якщо запустити TM на рядок w , згодом станеться одне з наступних:Mw

  1. зупинки, абоM
  2. повторює конфігурацію.M

У цьому випадку проблема зупинки може бути вирішена наступним чином. Давши TM та рядок w , моделюйте M на w , у кожній точці виписуючи вміст стрічки, поточний стан та поточне положення стрічки. Якщо ця конфігурація є дублікатом, вихід "не припиняється". В іншому випадку, якщо M зупиняється на w , виведіть "зупинки". Оскільки одна з них гарантовано відбудеться в кінцевому підсумку, цей процес завжди припиняється, тому у нас був би алгоритм проблеми зупинки, який, як ми знаємо, не існує.MwMwMw

Сподіваюся, це допомагає!


Га, побили тебе до цієї редакції. Дивіться мій коментар до питання. Мені подобається такий спосіб пояснення, чому не всі ТМ, які не зупиняються, повинні циклічно ... це створює інтуїцію.
Patrick87

@ Patrick87- Вибачте, я не помітив коментаря. Я подумав про додаток до поїзду і сів, щоб увійти до нього, як тільки повернувся.
templatetypedef

Немає проблем, чоловіче ... Я радий, що ти це додав, оскільки я думаю, що це хороший спосіб пояснити це. Я додав це лише як коментар, а не як відповідь, оскільки ти мене на це побив. : D
Patrick87

Насправді, з точки зору зупинки, яка повертається назад і змінюється стрічка ad infinitum, здається, "справжньою проблемою". Ті пустощі, яких ви можете виявити.
Рафаель

12

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

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

f(n)={3n+1,if n is odd;n/2,if n is even,
що для будь-якого введення ця процедура врешті-решт зупиняється. Але невідомо, чи це так. В принципі, він може провалюватися двома різними способами: або він може знайти послідовність цілих чисел, які циклізуються навколо (що відповідає існуванню цілого числа n такого, що для деякої кількості композицій, де n  ≠ 1); або може бути, що є ланцюги цілих чисел n , f (n) , f (f (n))fff(n)=n, ... які асимптотично розходяться до нескінченності. Якщо існують будь-які послідовності останнього роду, це означатиме, що машина Тьюрінга, яку я описав вище, не повторюватиметься, оскільки стрічка буде постійно змінюватися на все більші та більші числа.

Мені подобається грати з цифрами pi. TM може зупинятися, коли площа будь-якої цифри piдорівнює рівно 7.
Леонід

@Leonid: Ви, звичайно, можете розглянути машину Тюрінга, яка приймає деякий вхід і зупиняється на умовах, визначених цим входом. Ви навіть можете зробити специфікацію умов, за яких він зупиняє частину введення. І ви можете надати вклад, як ви описуєте, встановивши обмеження, яке ніколи не задовольняється.
Ніль де Бодорап

10

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


Деякі з них досі петля. </nitpicking>
Рафаель

5

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

Оскільки проблема зупинки не визначена, це не може бути правдою. (Див. Інші приклади для зустрічних прикладів.)


Що ця відповідь додає до відповіді templatetypedef ?
Рафаель

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