Лес дає коротку та правильну відповідь: математичні визначення є максимально стислими, і явне включення нескінченної стрічки у визначення машини Тюрінга зробило б її визначення набагато менш стислим, тому ми цього не робимо.
Це не відповідає на питання: чому ? Як визначення може виключати нескінченну стрічку, коли вона нам потрібна?
Відповідь: у нас немає. У певному сенсі машини Тьюрінга насправді не потребують нескінченних стрічок, і їх визначення дає зрозуміти це.
За визначенням, хід машини Тюрінга переносить машину з однієї конфігурації в іншу; конфігурація включає кінцеву струну, яку ми розглядаємо як кінцевий фрагмент написаної стрічки. Кожен хід або переміщує головку стрічки на одну позицію, або переписує символ під головку стрічки. Однак - і це важливо для його роботи:
- щоразу, коли ми відходимо від цього кінцевого шматка струни, ми вважаємо, що символом під головкою стрічки є , порожнім символом.b
- ми можемо робити це нескінченно часто .
Тож для того, щоб довільні машини Тьюрінга працювали нескінченно, необхідний нескінченний запас пустих комірок на обох кінцях. Тим часом, у будь-якій точці його конфігурація, що описує натягнуту стрічку, завжди є скінченною: після кроків головка стрічки ніколи не може відхилитися далі від клітинок від початкової точки.nn
Один із способів перефразовування цього полягає в тому, щоб сказати: машина працює на нескінченній стрічці, повністю заповненій заготовками, за винятком кінцевого фрагмента, на якому знаходиться її стрічка. Саме так сказано в більшості пояснень.
Ще один спосіб перефразовування цього полягає в тому, щоб сказати: машина працює на кінцевій стрічці, подовжується заготовками всякий раз, коли її голова відступає від стрічки на будь-якому кінці.
Це обидва дійсні способи осмислення того, як працює машина: в обох випадках, якби у вас насправді працювала така машина, вона б правильно реалізувала машину Тюрінга.
Якщо все, що вас цікавить, - це навчити студентів, як працюють машини Тюрінга, це, мабуть, не має значення, яку концептуалізацію ви виберете.
Однак я думаю, що перша концептуалізація є помилкою з двох причин:
- Це нереально . Насправді ми не можемо створити машину з нескінченною стрічкою. Ми можемо побудувати машину з кінцевою стрічкою, подовженою на замовлення.
- Це протиінтуїтивно. Ми не вважаємо машини, які виконують завдання довільно часто, як такі, що містять нескінченну кількість ресурсів. Наприклад, ми не вважаємо, що фотокопіювач містить нескінченну кількість копіювального паперу. Машини Тьюрінга моделюють обчислювальну діяльність. Вони моделюють, що буде, якби ми замінили комп’ютер (який на момент його винаходу жінка виконувала розрахунки на папері) машиною, здатною виконувати довільні програмовані обчислення. Ми не вважаємо цю жінку такою, що містить нескінченну кількість паперу. Швидше за все, ми припускаємо, що вона буде забезпечена будь-якою кількістю паперу, яка їй потрібна, і ми вважаємо невдачу цього як провал навколишнього середовища, а не сказати, що така жінка не може існувати. Чому б не зробити те ж саме для машини?
- Це запрошує оманливі висновки. Я бачив це багато. Наприклад:
- Люди кажуть, що машини Тюрінга насправді не можна побудувати, в той час як машини з обмеженим станом можуть. Ну, ми не можемо створювати довільні великі машини з кінцевим станом більше, ніж можемо поставити довільну кількість стрічки машині Тьюрінга.
- Люди кажуть, що машини Тьюрінга не моделюють комп'ютери правильно, тоді як машини з обмеженим станом. Це служить для важливого моменту: якщо все, що нас цікавить, це використання машини для вирішення мов введення, то комп'ютер, який працює лише на своїй (фіксованій) внутрішній пам’яті, може повністю реалізувати будь-яку машину з кінцевим станом до певного розміру, він не може повною мірою реалізувати більшість машин Тьюрінга, оскільки для багатьох із них буде втрачено внутрішнє сховище. Однак це часто узагальнюється словами: комп'ютери - це машини з кінцевим станом, що вводить в оману:
- Це не малює реалістичну картину більшості комп'ютерних програм. Дійсно, програмування потоків даних насправді базується на машинах з кінцевим станом, але традиційного імперативного програмування немає; він використовує програми, які набагато ближче до екземплярів машини Тьюрінга.
- На практиці комп'ютери також взаємодіють із зовнішніми джерелами введення, виведення та зберігання даних, які не мають фіксованого розміру.
- Машини Тьюрінга не повинні спочатку моделювати комп'ютери; вони моделюють довільні обчислення.
Підводячи підсумок: ідея машин Тьюрінга, що використовують або містять нескінченну стрічку, слугує наголосом на важливому технічному моменті, але це не обов'язково найінтуїтивніший спосіб думати про машини Тьюрінга, і він пропонує певні неправильні висновки. Використовуйте обережно.