Чому стрічка не є частиною визначення машини Тюрінга?


11

Мені було цікаво, чому стрічка / стрічки не є частиною формального визначення машини Тюрінга. Розглянемо, наприклад, формальне визначення машини Тюрінга на сторінці Вікіпедії . Визначення, слідуючи за Хопкрофтом і Уллманом, включає: кінцевий набір станів , алфавіт стрічки , порожній символ , початковий стан , набір кінцевих станів , і функція переходу . Жодна з яких - це сама стрічка.Γ b Γ q 0Q F Q δ : ( Q F ) × Γ Q × Γ × { L , R }Q ΓbΓq0QFQδ:(QF)×ΓQ×Γ×{L,R}

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

Як я бачу, формальне визначення саме по собі не означає, що машина Тьюрінга працює так, як це часто описується неофіційно (з головою, що рухається навколо стрічки). Або це?


1
Наступний розділ у Вікіпедії говорить: "Словами Ван Емде Боаса (1990), стор. 6:" Теоретично-теоретичний об'єкт [його формальний опис із семи кортежів подібний до вищезгаданого] дає лише часткову інформацію про те, як поводитиметься машина і як будуть виглядати його обчислення. "" це досить схоже на дихотомію програмного забезпечення / апаратних засобів / синергія / взаємозалежність. програмне забезпечення передбачає конкретне обладнання, на якому воно працює. якщо хтось виявив якесь програмне забезпечення в майбутньому, він не міг зрозуміти його "значення", не розуміючи також апаратного забезпечення, на якому він працює.
vzn

Чому дорога не є частиною автомобіля?
Андрій Бауер

Відповіді:


8

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


Отже, стрічка потрібна лише для визначення конфігурації та обчислення?
Shuzheng

Так, машина просто працює на стрічці. Різний вміст стрічки не створює різних машин.
Андре Суза Лемос

1
Іншими словами: питання цитує лише синтаксис ТМ. Тільки при визначенні семантики стрічка входить у малюнок. (Аналогія: визначення синтаксису C (або будь-якої іншої мови програмування) не згадує передбачувану апаратну архітектуру / набір інструкцій OS / CPU.)
Raphael

Навіть семантично, найприродніше думати, що машина залишилася на тій же машині, навіть коли зміна вмісту стрічки змінюється. (Формально це не так, оскільки початковий вміст є частиною визначення машини.)
reinierpost

2

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

Модель є обладнання: одна голова. Є одна стрічка. Стрічка з одного боку нескінченна і містить пробіли (крім входу). Голова може рухатися покроково.

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

Обидва параметри настроюються --- обидва можуть бути змінені. Альтернативні моделі існують з двома стрічками, двома головами, двосторонніми стрічками, не порожньою стрічкою і т. Д. Але після того, як виправите модель, вам потрібно встановити інші "настроювані" параметри, як кількість можливих станів, так і функція переходу .

Що робить параметр частиною моделі, а не частиною екземпляра? Це просто сіра зона, і я не думаю, що на це є хороша відповідь (можливо, я помиляюся. Хто-небудь?). Вважається, що розділення на "Обладнання" / "Програмне забезпечення" має найбільш сенс класифікувати параметри як частину моделі або частини екземпляра, але ми можемо уявити інші універсуми, в яких ця класифікація відрізняється (наприклад, де TM є 8-кортеж, які також містять = положення голови на початку, або = кількість стрічок, або = візерунок, який неодноразово з’являється на стрічці після закінчення введення тощо)М п а т т е р нPMpattern


1

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

Визначення не повинні бути надмірними або багатослівними.

Дійсно, визначення машини Тюрінга також визначає абстракцію стрічки. Q0 - це початок стрічки. Алфавіт - це зміст стрічки. І δ: (Q ∖ F) × Γ → Q × Γ × {L, R} стверджує, що стрічка вліво і вправо і нескінченна в обох напрямках.

Отже, стрічка, голова, рухає просто дружніми уявленнями про модель, вони вже в математичній моделі , але самі по собі не є формальною моделлю.


1

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

Це не відповідає на питання: чому ? Як визначення може виключати нескінченну стрічку, коли вона нам потрібна?

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

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

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

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

Один із способів перефразовування цього полягає в тому, щоб сказати: машина працює на нескінченній стрічці, повністю заповненій заготовками, за винятком кінцевого фрагмента, на якому знаходиться її стрічка. Саме так сказано в більшості пояснень.

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

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

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

Однак я думаю, що перша концептуалізація є помилкою з двох причин:

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

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

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