Чому машина Тьюрінга розпізнає саме одну мову?


13

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


12
Я підозрюю, що ви можете не мати чіткого уявлення про те, що ми маємо на увазі під «мовою». Чи можете ви сказати те, що ви вважаєте "мовою"?
Ерік Ліпперт

Навіщо вам це знати? Як ви думаєте, яким чином це може змінити ситуацію?
бабу

Відповіді:


29

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


6
"За визначенням" - це саме те, що я сказав би.
Дейв Кларк

1
@DaveClarke Звичайно, це за визначенням. Але це мені здається трохи коротким, оскільки воно також говорить про те, що ми могли б зробити наше визначення різним, щоб TM прийняла дві мови чи будь-яке число. Я фактично не згоден із твердженням Девіда Річербі, що не існує механізму, за допомогою якого TM може приймати дві мови: це лише тому, що ми вирішили їх ігнорувати, і ми могли б зробити інакше. Отже, на запитання не буде дано повного відповіді, імхо, якщо ми не пояснимо, що це виправдовує.
бабу

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

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

3
Машина Тьюрінга, яка приймає дві мови, - це машина Тьюрінга, яка приймає мову, яка є об'єднанням двох мов.
Саймон Ріхтер

9

Подумайте про це так: TM - це як комп'ютер із завантаженим програмним забезпеченням. Кожне програмне забезпечення робить одне, правда? Наприклад, подумайте про свій комп'ютер і припустіть, що в ньому завантажена лише 1 програма. Тоді ПК + «фотошоп» робить лише фотошоп, тоді як ПК + «мінна підметальна машина» лише змінює міни.

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

З іншого боку, набір з усіх ДЧ еквівалентно набору комп'ютера + «програмного забезпечення» з усіма можливими програмами. Тепер можна вирішити більше мов - але все-таки кожна конкретна ТМ вирішує (або визнає) лише одну мову.


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

4

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

L1L2L1L2Li

L1L2

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

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

Тож ми можемо також скористатися простою моделлю, оскільки складна ускладнить наше життя, не маючи реальної користі.

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


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

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

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

3

Я хотів би розкрити одну точку відповіді Річербі:

Коли введення вводиться машині, воно приймається чи ні.

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

Крім того, ми можемо легко довести, що кожна машина Тьюрінга розпізнає саме одну мову:

Припустимо, протиріччя, що машина Тьюрінга М розпізнає дві різні мови L1 і L2. Оскільки L1 і L2 є різними, повинна існувати рядок S, який знаходиться в L1, але не в L2 (без втрати загальності - це може бути навпаки, але доведення буде проходити так само, як і тут L1 і L2 обмінюються ). Тепер запустіть M на S. Якщо він приймає, тоді виходить протиріччя, оскільки тоді S був би в L2. Якщо він не приймає (відхиляє або циклізує), тоді досягається суперечність, оскільки S не буде в L1.


2

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


2
Ласкаво просимо до інформатики ! Ваша відповідь (IMO) правильна, але я не думаю, що вона додає до вже існуючих відповідей. У нас є безліч питань без відповідей, і було б набагато цікавіше та продуктивніше відповісти на одне з них, ніж повторювати наявні відповіді.
Девід Річербі

1
Спасибі! Я фактично спочатку не бачив прийнятої відповіді (що, на мою думку, є доброю), тому що вона була такою короткою, і я відчував, що інші відповіді не відповіли на запитання прямо.
цікаво, що

1

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

  • синтаксис,
  • семантика,
  • критерії приймання.

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

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

Звичайне визначення і використання терміну в ТКС включає в себе всі три компоненти. Це має сенс, оскільки, зокрема, зміна критерію прийняття може змінити клас об'єктів, який автомат представляє різко , тому нам потрібно виправити критерій, щоб знати, про що ми говоримо.

Як приклад, порівняйте кінцеві автомати та автомати Büchi . Синтаксис і семантика точно однакові, але один приймає кінцеві слова, а інший приймає нескінченні слова!
Спробуйте з’ясувати, що станеться, якщо ви включите критерій прийняття автомати Büchi до визначення TM.

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


0

M1L1L2L1L2s1s1L1s1L2M1s1s1L2M1s1sL2sL1

MLsLMssMsL

sLMs

ATM


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

-2

Мова - це набір рядків. Чи не є об'єднання двох мов L1, а L2 - набір рядків (назвемо це L3), і так би була інша мова? Потім, якщо машина Тьюрінга розпізнає обидві мови, він розпізнає L3, єдину мову.


2
Але машина Тьюрінга не розпізнає обидві мови, якщо вони насправді однакові. Розпізнавання L1 означає, що він не приймає жодну рядок поза L1; розпізнавання L2 означає, що він нічого не приймає поза L2. Якщо L1 і L2 різні, він не може розпізнати обидва.
Девід Річербі

-3

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


4
{M,xM accepts x}

& чим це відрізняється від написаного?
vzn

2
Розпізнавання кодування мов - це не те саме, що розпізнавати мови.
Девід Річербі

так точно, як сказано
vzn

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