Машини Тьюрінга припускають щось нескінченне в якийсь момент?


9

У попередньому запитанні Що таке алгоритм? , Я запитав, чи є "алгоритм", який повертає значення функції на основі масиву попередньо обчислених значень, був алгоритмом.

Один з відповідей, який привернув мою увагу, був такий:

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

Тепер ми могли б розглянути обчислення таким чином: Для кожного розміру вводу існує TM (або якийсь інший обчислювальний пристрій), який вирішує проблему. Це зовсім інше питання. Зауважте, що одна TM не може зберігати факториал кожного цілого числа, оскільки TM має обмежений опис. Однак ми можемо зробити TM (або програму на C), яка зберігає фактичні дані всіх чисел нижче 1000. Потім ми можемо скласти програму, яка зберігає фактичні дані всіх чисел від 1000 до 10000. І так далі.

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

 int fact(int n) 
 { 
 int r = 1; 
 for(int i=2;i<=n;i++) 
 r = r*i; 
 return r; 
 } 

містить припущення, що TM має "обладнання" для порівняння чисел довільного розміру через порівняльник "<=", а також ADDers для збільшення i до довільного числа, крім того , можливість представлення чисел довільної величини.

Я щось пропускаю? Чому підхід, який я представив у своєму іншому питанні, менш здійсненний щодо нескінченності, ніж цей?


5
Зверніть увагу на відмінність "нескінченного" від "довільно великого".
Рафаель

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

@Raphael Нескінченний - це не те, що довільно великий. Але може бути простіше вважати атрибутивно зростаючі послідовності нескінченними, якщо нескінченна сутність може бути визначена відповідним чином як межа цієї послідовності. Ми постійно обробляємо обчислювані нескінченні об'єкти, визначені таким чином.
babou

Я підозрюю, що негативні відповіді на ваше запитання ґрунтуються на припущенні, що нічого не є нескінченним за межами якоїсь ефірної сфери абстрактної математики. У такому випадку питання спірне. Машини Тьюрінга не можуть "припустити щось нескінченне" просто тому, що не існує нічого нескінченного.
babou

Відповіді:


9

Машина Тьюрінга не має можливості "порівнювати числа довільного розміру через <=компаратор", оскільки машина Тьюрінга не має " <=компаратора". Машина Тьюрінга має фіксований, кінцевий набір  станів та нерухомий алфавіт з кінцевою стрічкою  . На кожному кроці обчислення машина Тьюрінга переглядає його поточний стан та символ під головою читання / запису і вирішує, що робити далі: у який стан ввести, який символ записати на стрічку та яким способом перемістити стрічку голова.QΣ

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

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


7

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

Опис ТМ - це кінцевий набір кортежів <current state, input, output, move, next state>.

На кожному кроці річ, яку потрібно зробити, знайдеться шляхом зіставлення поточного стану та вводу. Наприклад, ми перебуваємо в стані 0, і читаємо 1, тож знаходимо кортеж, який починається <0, 1, ...>потім записуємо нове значення в поточну комірку, рухаємося вліво або вправо (я думаю, класичне визначення також дозволяє залишатися в одній клітині також), а потім перейти до нового стану.

Отже, для вашого прикладу вам або потрібен буде нескінченно великий опис TM (нескінченна кількість <current state, input, output, move, next state>кортежів), або включити інформацію про пошук у вхід до TM. Я вважаю, що вхід до TM визначається як кінцевий. Отже, це, мабуть, не те, що ви могли б зробити з класично визначеною машиною Тьюрінга.

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


5
Стрічка не повинна бути нескінченною! Його можна продовжити за потребою. Все, що потрібно - це те, що стрічка може бути довільно великою .
reinierpost

5

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

З багатьма деталями

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

Але оригінальне питання стосується ролі нескінченності в машинах Тюрінга взагалі.

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

Отже, будь-яка відповідь, обчислена ТМ, може бути обчислена також автоматом з кінцевим станом (FSA), що є «певною мірою» одним із способів розгляду таблиць. Складність полягає в тому, що деякі розміри вводу (це майже завжди доходить до цього, якщо тільки зчитувати вхід) перевищуватимуть розмір автомата. Але тоді ми можемо просто використовувати більшу. Отже, якщо ми хочемо розглянути необмежений розмір вводу, нам потрібна нескінченна послідовність FSA, яка може зробити обчислення. Насправді нам може знадобитися машина з кінцевим станом трохи складніше, ніж традиційна FSA, оскільки може бути обчислений вихід (а не відповідь "так-ні"), але, мабуть, повинен бути перетворювач кінцевого стану.

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

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

Потім знову ми можемо замінити це нескінченною послідовністю скінченних обчислень кінцевими машинами. Але чи обманюємо?

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

Але як ми можемо впоратися з цими нескінченностями послідовно і простежуваним чином з математичної точки зору.

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

Те, що вам справді хочеться, це визначити поняття послідовності. Але для цього потрібні певні запобіжні заходи. Припустимо, ви використовуєте нескінченну послідовність автомати для імітації ТМ, яка відповідає "так" або "ні", або не припиняється. Проблема полягає в тому, що FSA завжди зупинятиметься з відповіддю, наприклад, так чи ні. Але якщо ви використовуєте FSA, який насправді не має великого розміру для обраного входу, що йому відповідати. І так, і ні, зарезервовано для випадків, коли FSA фактично припинила обчислення TM, і використання однієї з цих відповідей з незавершеними обчисленнями призвело б лише до плутанини. Що ви хочете - це відповідь, яка говорить: " Вибачте, я занадто маленький і не можу сказати. Будь ласка, спробуйте з більшим хлопцем у сім'ї ". Іншим словом ви хочете відповіді, наприклад, переповнення чи не знаєте. Насправді його семантики називають " невизначеним " або також " дном " і часто пишуться " ".

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

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

Це можна розширити на автомати, які обчислюють відповіді іншого типу. Наприклад, якщо вони обчислюють кольори, такі як червоний, синій, зелений ..., ви можете додати невизначений колір, який відповідає всім іншим. Якщо відповідь - це нескінченна послідовність цифр, таких як , то кожну цифру можна послідовно та незалежно замінити невизначеною, щоб відповідав і з , але останні два не відповідають . Власне, в цьому сенсі - це не наближенняπ3.14...3.1415....5159...3.1416...3.1416...π. Ми говоримо, що відповідь краще визначити, ніж іншу, коли вона містить всю інформацію, яку можна знайти в іншій, а можливо і більше. Це насправді часткове впорядкування.

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

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

Найпростіший документ, який я коли-небудь читав з цього приводу, - це рукописний набір лекційних записок Дани Скотт, який часто називають амстердамським конспектом лекцій. Але я не зміг її знайти в Інтернеті. Будь-який вказівник на копію (навіть неповну, як я маю її частину) буде вітатися. Але ви можете переглянути інші ранні публікації Скотта, такі як « Очерк математичної теорії обчислень» .

Повернімося до початкового прикладу питання

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

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

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

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


3

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

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

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

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

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

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

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

Крім того, ніхто фактично не вірить у ці обмеження машини Тюрінга, і було розроблено багато різновидів ТМ з більш-менш екзотичними особливостями. Якщо деякі нескінченні множини називаються рекурсивно перелічуваними , це тому, що ТМ насправді може перерахувати (представлення) своїх членів, що вимагає нескінченних обчислень (див. Машини Тюрінга як Enumerators у Hopcroft-Ullman 1979, стор. 167 ). Звичайно, ми завжди можемо кодувати це як кінцеві обчислення, які відповідатимуть на такі питання, як: що є членом набору відповідно до вашого перерахунку? 23rdАле це все ще часто реалізовується як нескінченне обчислення, яке штучно зупиняється, коли буде досягнуто правильної відповіді.

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

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

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

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

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

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

Заяви Usul, як це відтворено у вашому поточному питанні, на мою думку, є невірними (хоча все також є питанням визначення). Його висновок у своїй відповіді , що ви не відтворили, полягає в тому, що використання нескінченної таблиці не можна вважати алгоритмом, оскільки вона може бути реалізована лише за нерівномірною моделлю обчислення, колекцією різних машин, а отже, такою Використовує " не мають обмеженого опису, який можна реалізувати для вирішення" цілої "проблеми для будь-якого розміру вводу"Це неправильно. Його розподіл на машини, що мають розрізнення, які мають окремі області визначення, - це просто неправильний спосіб робити речі. Правильний спосіб - це мати нескінченну послідовність послідовних машин із більшими та більшими областями визначення, які можуть належним чином сходитися. до нескінченної машини, яка відповідає на питання. Це є однією з найважливіших цілей математичної теорії семантики обчислень, визначеної Даною Скотт. За допомогою належного математичного апарату він точно визначає нескінченні машини, величини з нескінченними уявленнями (наприклад, e або ), або нескінченну структуру даних, які можна обчислити. (див. мою першу відповідь на це запитання).π

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

У певному сенсі це, мабуть, підтверджує твердження (у відповіді DanielV ) про те, що кодове простір має бути кінцевим, оскільки лінива оцінка фактично базується на деякому кінцевому коді. Але обчислюваність - це всеосяжна гра кодування, так що, серед іншого, відмінність коду від даних завжди в очах спостерігача. Дійсно, багато сучасних мов програмування не мають великої різниці між інтенсіональною та екстенсіональною специфікаціями значень, і Denotational Semantics насправді не відрізняє "2 + 2" від "4". Семантика - це дійсно те, про що ми говоримо, задаючи питання типу " Що таке X ? ".

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

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


3

Коротка відповідь: ні . Машини Тьюрінга не передбачають нічого нескінченного в будь-якій точці.

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

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

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


-1

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

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

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

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

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