Чому машина Тьюрінга є популярною моделлю обчислення?


67

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

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

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

Редагувати :

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

Крім того, якщо це було не ясно, я знаю, що DFA не є повноцінними моделями обчислення.

Дякую за відповіді.


2
Сподіваємось, майбутні заняття допоможуть уточнити.
Yuval Filmus

19
Можливо, ви знайдете лямбда-числення як більш природну модель обчислення. Саме на цьому ґрунтується функціональне програмування.
Бакуріу

4
Насправді я збираюся закінчити навчання. Курс найвищого рівня, який я взяв, який займався теорією автоматів, зупинився на машинах Тьюрінга, хоча вони згадували про еквівалентність між різними моделями обчислень. Я навіть зробив свою справедливу частку, по праву базового, ТМ "програмування". Однак ТМ мене завжди клопочуть. Це не здавалося "мінімальним"; це не розкривало мене суті обчислень.
Олексій

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

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

Відповіді:


72

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

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

Гаразд, добре, ти кажеш (сподіваюся!), Але ми вже не в 1930-х роках, то чому ми все ще використовуємо це? Тут я не думаю, що є одна конкретна причина. Перевага машин Тьюрінга полягає в тому, що вони досить прості і ми гідно доводимо речі про них. Хоча формально вказати машинну програму Тьюрінга для виконання певної задачі дуже важко, коли ви зробите це кілька разів, у вас є розумна думка про те, що вони можуть робити, і вам більше не потрібно писати формальних специфікацій. Модель також легко розширюється, включаючи інші природні особливості, наприклад, випадковий доступ до стрічки. Таким чином, вони є досить корисною моделлю, яку ми добре розуміємо, і ми також досить добре розуміємо, як вони стосуються реальних комп'ютерів.

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


Коментарі не для розширеного обговорення; ця розмова перенесена в чат .
Жиль

56

Ви задаєте кілька різних питань. Дозвольте коротко відповісти на них по черзі.

Що так важливо в моделі машини Тюрінга?

Під час зародження теорії обчислюваності було запропоновано кілька моделей обчислень у різних контекстах. Наприклад, Гедель, який намагався зрозуміти, на які доказові системи застосовується його теорема про незавершеність, придумав формалізм загальних рекурсивних функцій , і Черч придумала обчислення як спробу створення парадоксальних основ математики. Сам Тьюрінг був мотивований проблемою Гільберта, який попросив "чисто механічний процес" для визначення значення істини даного математичного твердження.λ

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

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

Хіба DFA не є кращою моделлю?

Це було оригінальною мотивацією, що стояла за відомим документом Рабіна та Скотта, Кінцевими автоматами та проблемами їх вирішення:

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

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

Однак виявилося, що хоча машини Тьюрінга занадто сильні, DFA занадто слабкі . У наш час теоретики віддають перевагу поняттю обчислення поліноміального часу , хоча це поняття також не позбавлене своїх проблем. Однак, DFA та NFA все ще використовують їх використання, головним чином у компіляторах (використовуються для лексичного аналізу) та мережевих пристроях (використовуються для надзвичайно ефективної фільтрації).

Чи не занадто обмежена модель машини Тюрінга?

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


17

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

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

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

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


1
По суті всі реальні сучасні процесори - це регістрові машини з оперативною пам'яттю. Навіть мікроконтролери чи іграшкові архітектури, що мають лише один регістр акумуляторів, зазвичай мають якийсь окремий регістр адрес, у який можна завантажувати покажчики, а не бути чистою акумуляторною машиною. Але справжнє обладнання має адреси фіксованого розміру, і тому не є Тьюрінгом. IDK, якщо модель регістр-машина використовується багато в теоретичному CS, але це те, як мова збірки працює в реальному житті, і може бути корисно зрозуміти для аналізу perf, тому що все збирається у відповідності.
Пітер Кордес

14

Я хотів би відповісти на цю частину питання, доданого в редакції:

"Чи не повинна канонічна модель обчислень очевидно передати суть обчислюваності?"

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

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

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


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

5

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

Вони спеціально не зроблені, щоб "робити" щось. Їм не потрібно бути мінімальним, їм не потрібно бути зручним для роботи.

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

Їх визначив Тьюрінг таким, яким він є, з цих основних причин:

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

Чи можна було б вибрати іншу мову? Точно! Будь-яка з цілих мов, які ми знаємо сьогодні, може бути використана. Але було б набагато важче побудувати теоретичну основу на більш складній машині.

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


Погодьтеся по всіх пунктах. Популярність лише, мабуть, щодо більш незрозумілих моделей, таких як машини Thue, обчислення Lambda та речі Еміля Поста.
luser droog

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

Якщо машини для твердіння повинні бути ціллю скорочення для інших моделей, чому вони не повинні бути мінімальними?
Бергі

@ Bent, я визнаю, я не дуже розумію те, що ви намагаєтесь сказати, окрім того, що я згадував із "Але було б набагато важче побудувати теоретичну основу на більш складній машині". (тобто на фактичній мові програмування, якою ми їх знаємо та використовуємо).
AnoE

Під популярністю я мав на увазі те, що використовується в Теоретичному КС. Знову ж таки, це була єдина модель, яку я навчився (хоча, думаю, я трохи зазнав лямбдального числення). Мені просто було цікаво, чому, можливо, педагогічно, це завжди перше, кого навчають. Я бачу, наскільки це підтверджує її практичність.
Алекс

5

Чому він популярний, може, найпопулярніший? Ви повинні пам’ятати, що Тьюрінг придумував цю «машину» за багато років до електронних комп’ютерів. ТМ експлуатується з папером, ручкою, гумою і не в останню чергу мозку людини. Таким чином, кожен може виконати "обчислення" з цією машиною. Всі означають людину, яка ніколи не вивчала комп’ютери, програмування мов. Він простий у використанні. Подумавши про це, ви виявите парадокс: ця машина - це збірка майже нічого, але ви можете керувати всім. На мій погляд, парадокс "майже нічого / проти / все" є причиною, чому він популярний. Я зауважу, що ТМ прямо не пояснює рекурсію, а ТМ займається лише "стрибком". Ця особливість (прямо говорить про рекурсію) може стати джерелом головного болю для новобранців, наприклад, в лямбда-обчисленні концепція Y-комбінатора майже не зрозуміла; Точніше, ТМ популярний тим, що парадокс "майже нічого / проти / все" без рекурсійного головного болю.

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