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


42

Реальні комп'ютери мають обмежену пам’ять і лише обмежену кількість станів. Отже вони по суті є кінцевими автоматами. Чому теоретичні комп'ютерні вчені використовують машини Тьюрінга (та інші еквівалентні моделі) для вивчення комп'ютерів? Який сенс вивчати ці набагато сильніші моделі стосовно реальних комп'ютерів? Чому кінцевої моделі автоматів недостатньо?


7
@Kaveh Люди, як правило, ручають, що так, комп'ютери, які використовуються на практиці, є FSM, але FSM занадто великі, і цікаві структурні властивості втрачаються в режимі FSM. Я ніколи не бачив неручного пояснення. Тому тут питання на тему.
Мартін Бергер

15
Справжнє питання полягає в тому, навіщо вивчати машини Тьюрінга, коли ми використовуємо модель ОЗУ, коли аналізуємо алгоритми.
Yuval Filmus

39
Тому що іноді є кращим наближенням до ніж . 10000000000000000000000000000000 100000000000000000000000000000001000000000000000000000000000000010000000000000000000000000000000
Андрій Бауер

30
Пам'ятайте, найвідомішою невирішеною сьогодні проблемою теоретичної інформатики є: чи може один вид фізично неможливого уявного комп'ютера вирішити проблеми так само швидко, як ще більш фізично неможливий уявний комп'ютер ? Не помиліться теоретичні інформатики для практичної комп'ютерної інженерії; подробиці фізичного світу не особливо актуальні.
Ерік Ліпперт

23
Реальні матеріали виготовлені з атомів і мають дискретний характер, тож навіщо вивчати інтеграли?
Пітер Шор

Відповіді:


32

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

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

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


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

  • Дозвольте спершу розглянути фізичну проблему обмеження пам'яті Всесвітом. Перш за все, ми не знаємо, чи Всесвіт скінченний чи ні. Крім того, поняття спостережуваної Всесвіту, яке за визначенням є кінцевим, також за визначенням не має значення для користувача, який може подорожувати до будь-якої точки спостережуваної Всесвіту для використання пам'яті. Причина полягає в тому, що спостережуваний Всесвіт посилається на те, що ми можемо спостерігати з певної точки, а саме на Землю, і було б інакше, якби спостерігач міг подорожувати до іншого місця у Всесвіті. Таким чином, будь-яка аргументація щодо спостережуваного Всесвіту переходить у питання про кінцевість Всесвіту. Але припустимо, що через деякий прорив ми здобуваємо знання про те, що Всесвіт справді кінцевий. Хоча це мало б великий вплив на наукові питання, Сумніваюсь, це вплине на використання комп’ютерів. Простіше кажучи, можливо, що в принципі комп'ютери справді є кінцевими автоматами, а не машинами Тьюрінга. Але для більшості обчислень і, швидше за все, зацікавлені всі комп'ютери, машини Тьюрінга та пов'язана з ними теорія пропонують нам краще розуміння. У грубому прикладі, хоча ми знаємо, що ньютонівська фізика по суті помиляється, я сумніваюся, що інженери-механіки використовують в першу чергу квантову фізику для проектування автомобілів або заводських машин; кутові випадки, коли це потрібно, можна вирішувати на індивідуальному рівні. Але для більшості обчислень і, швидше за все, зацікавлені всі комп'ютери, машини Тьюрінга та пов'язана з ними теорія пропонують нам краще розуміння. У грубому прикладі, хоча ми знаємо, що ньютонівська фізика по суті помиляється, я сумніваюся, що інженери-механіки використовують в першу чергу квантову фізику для проектування автомобілів або заводських машин; кутові випадки, коли це потрібно, можна вирішувати на індивідуальному рівні. Але для більшості обчислень і, швидше за все, зацікавлені всі комп'ютери, машини Тьюрінга та пов'язана з ними теорія пропонують нам краще розуміння. У грубому прикладі, хоча ми знаємо, що ньютонівська фізика по суті помиляється, я сумніваюся, що інженери-механіки використовують в першу чергу квантову фізику для проектування автомобілів або заводських машин; кутові випадки, коли це потрібно, можна вирішувати на індивідуальному рівні.

  • Будь-які технічні обмеження, такі як шини та адресація, є просто технічними обмеженнями існуючого обладнання та можуть бути подолані фізично. Причина цього не відповідає справжньому комп'ютерам в тому, що 64-розрядна адресація дозволила нам перемістити верхню межу адресного простору на висоту на кілька, якщо будь-які програми можуть досягти. Крім того, впровадження «розширюваної» системи адрес може потенційно впливати на велику більшість обчислень, які їй не знадобляться, і, таким чином, неефективні. Ніщо не заважає вам організувати ієрархічну систему адрес, наприклад, для двох рівнів перша адреса могла б посилатися на будь-який із банків пам'яті, і тоді кожен банк має 2 64264264різні адреси. По суті, мережа - це чудовий спосіб зробити це, кожна машина дбає лише про свою локальну пам'ять, але вони можуть обчислювати разом.


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

12
@ EmilJeřábek неправда. Послідовні інтерфейси не мають адресної шини, і кількість даних, до яких я можу отримати доступ в Інтернеті, не обмежується якоюсь властивістю мого комп'ютера.
Зупиніть шкодити Моніці

5
@ OrangeDog, але всесвіт все-таки поставив би обмеження, скільки даних може зберігатися у спостережуваному Всесвіті
храповик виродка

9
@ratchetfreak, як демонструє машина Тьюрінга, вам потрібен лише локальний доступ - поточний "кінець" стрічки не повинен знаходитися в межах спостережуваного Всесвіту;)
Зупиніть шкодити Моніці

6
Згадуючи історію, варто навести огляд Церкви з документа Тьюрінга, що машини Тьюрінга "мають перевагу в тому, щоб ідентифікація з ефективністю ... очевидна відразу". Тобто для людей, які намагаються переконати себе, що вони справді захопили все, що можна було обчислити, визначення Тьюрінга було переконливим.
Джим Хефферон

44

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


14
Це правильна відповідь ІМХО. Причини суто прагматичні: машини Тьюрінга краще, ніж обмежені автомати, пояснюючи, що комп'ютери роблять у масштабах.
Еміль Йерабек підтримує Моніку

3
Я погоджуюся з цим, за винятком речення, "ви зазвичай припускаєте, що не будете обмежені загальною кількістю місця на комп'ютері". Навпаки, майже будь-яка нетривіальна програма обмежена наявним простором, і програмісти намагаються вирішити її (наприклад, збирання сміття для автоматичного повторного використання пам'яті), але (1) ми нічого з цим не можемо зробити, і (2) обмежимось лише невеликими входами. Примітно, що ТМ дають нам природну обробку щодо розміру проблеми, і що алгоритми мають тенденцію до закритого вниз цього природного поняття про розмір проблеми.
Мартін Бергер

2
@MartinBerger Re "майже будь-яка нетривіальна програма обмежена наявним простором, і програмісти намагаються вирішити її (наприклад, збирання сміття для автоматичного повторного використання пам'яті)": Я заперечую, що програми, написані для систем зі збиранням сміття, враховують цю систему, включаючи gc , як машину, проти якої вони програмують. Збір сміття не є частиною програми; це частина зусиль забезпечити саме те, що сказав Денис: Машина для програмування, проти якої практично необмежені ресурси пам'яті.
Пітер - Відновіть Моніку

2
@ PeterA.Schneider Я не згоден. Причиною використання GC, що забезпечується мовним часом виконання, є одна з економічних можливостей розробки програмного забезпечення: механізм управління пам'яттю, який працює за програмою, є більш ефективним, ніж GC, і більшість програмістів вважають за краще це, якби вони могли його безпечно та дешево зняти. Але вони не можуть, тому скоріше грайте у безпеку та використовуйте навколишній GC, вартість якого амортизується за велику кількість програм. У цьому сенсі використання GC буде дуже довго розбиратися з пам'яттю скінченності.
Мартін Бергер

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

10

Андрій Бауер у коментарі дав одну важливу причину:

1000000000000000000000000000000010000000000000000000000000000000

Дозвольте мені доповнити інші відповіді деякими моментами, які, ймовірно, були занадто очевидними для згадки:

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

8

Формалізм корисний чи ні, виходячи з того, що люди хочуть використовувати формалізм для моделювання та розуміння.

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

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

Кінцеві автомати також були корисні для розуміння складності схеми; всі ці моделі мають своє місце в математичному арсеналі.

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

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

Машини Тьюрінга, машини з кінцевим станом та схеми (та інші моделі окрім цього) все підтвердили свою корисність.


6

Фактичні комп’ютери не є FSA. Фактичний комп’ютер - це універсальний комп’ютер, в тому сенсі, що ми можемо описати комп'ютер для того, щоб комп'ютер емулював, і комп'ютер буде емулювати його. Для багатьох прикладів шукайте "віртуальну машину".

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

n22n

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


3
Це корисний підхід для інтуїтивного розуміння різних рівнів «обчислювальної потужності». Однак ОП, здається, вважає, що справжні комп’ютери є FSM, оскільки кількість станів обмежена, наприклад, через кінцеву оперативну пам'ять. На ваш аргумент, це означає, що справжні комп’ютери більше схожі на FSM, ніж машини Тюрінга, тому що я не можу вільно подвоїти кількість станів в імітованій машині; У мене немає нескінченної стрічки як сховища.
амон

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

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

3

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

Будучи механічно простим, легко показати, чи в якій мірі інші машини еквівалентні машині Тюрінга. Це в свою чергу дозволяє порівняно легко показати, чи даний комп'ютер (або комп'ютерна мова) справді універсальний (c / f "Turing-complete").


Питання полягає у співвідношенні моделі машини Тьюрінга з реальними комп'ютерами. Якщо припустити, що комп'ютер має фіксовану кількість пам'яті, він насправді не є універсальним.
Каве

1

Чому кінцевої моделі автоматів недостатньо?

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

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

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

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

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

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


1

Більшість проблем потребують машин Тьюрінга обмеженого розміру

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

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


1

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

nn2

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


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

-2

Реальні комп'ютери мають обмежену пам’ять і лише обмежену кількість станів. Отже вони по суті є кінцевими автоматами.

Машини Тьюрінга є похідними кінцевих автоматів. Машини Тьюрінга - це практично архітектура фон Нумана.

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