Чи може машина Тьюрінга визначити мову машин із порожньою мовою?


11

Нехай Чи є машина Тьюрінга R, яка визначає (я не маю на увазі розпізнає) мову ?

L={MM is a Turing Machine and L(M)=}.

L

Здається, що той самий прийом, який було показано, що повинен працювати тут.{AA is a DFA and L(A)=}


1
Що ви пробували? Наприклад, чи можете ви придумати DFA для порожньої мови? Пам'ятайте, що DFA можна вважати дуже обмеженими ТМ.
Шауль

1
Звичайно. З початкового стану перейдіть у стан "зупинити відхилення", незалежно від того, що знаходиться на стрічці введення. Це явно приймає кожну рядок на мові, а відхиляє кожну рядок не на мові.
Patrick87

8
@mahdisaeedi: Останнє - зовсім інше питання! Ви запитуєте, чи можна вирішити, чи визнає дана ТМ порожньою мовою - і відповідь ні, див . Теорему Райса
Шаул,

Відповіді:


9

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

Почнемо з прикладу, чому це не виходить у ТМ. Розглянемо ТМ , що в , ігнорує це вхід, але пише на це стрічки, переміщає право голову і переходить в стан , то в він знову ігнорує вхід, пише , переміщує голову вліво і йде до . У , якщо він читає , то він пише , рухає головою вправо і повертається назад до . a q 1 q 1 a q 2 q 2 a a q 1q0aq1q1aq2q2aaq1

Тобто машина просто записує і чергує два стани ( та ) і завжди має два суміжних на стрічці.q 1 q 2 aaq1q2a

Тепер додамо перехід від який при читанні переходить у приймаючий стан і зупиняється. бq2b

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

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

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

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


Функція переходу TM є така: F (Q T) -> (Q T * {L, R}). Чи можете ви написати функцію ігнорування вводу?
msn

Так. У цьому випадку , , і (але останнього так і не досягти). F ( q 1 , a ) = F ( q 1 , b ) = ( q 2 , a , L ) F ( q 2 , a ) = ( q 1 , aF(q0,a)=F(q0,b)=(q1,a,R)F(q1,a)=F(q1,b)=(q2,a,L)F ( q 2 , b ) = ( q a c c , a , L )F(q2,a)=(q1,a,R)F(q2,b)=(qacc,a,L)
Шауль

9

A можна визначити через теорему Райса , яка стверджує, що нетривіальні властивості часткових функцій не вирішуються.

  1. Існує TM, який не приймає жодну рядок. (Що безпосередньо переходить у стан відхилення).
  2. Є TM, який приймає кожну рядок. (Що безпосередньо переходить у стан прийняття).

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

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

(Тобто, якби проблема була, вирішуючи, чи є певна ТМ DFA - або DFA - обчислювальною - а мова, прийнята нею, порожня, не можна визначити через теорему Райса. Зауважте, що в цьому випадку .)A = EEA=E


6

Ще одна підказка: спробуйте зменшити проблему зупинки до .L

(Оригінальний натяк - використовувати теорему Райса, але в цьому випадку пряме доведення також досить просте.)


@Yuval_Filmus Чи правильно сказати, що ця мова навіть не визнана Тюрінгом?
sashas

1
Що ти думаєш? Чи можете ви довести свою претензію? Якщо так, то не потрібно ставити питання.
Yuval Filmus

1

Лема 1 : Якщо L не можна визначити, то це також є доповненням L.

Ми знаємо, що проблема зупинки може бути вирішена. Тому, згідно з доповненням леми 1 задачі про , теж не можна визначити.HTM H c T MHTMc

HTM ={M,x M is a TM and M halts on input x }

HTMc ={M,x M is a TM and M loops on input x }

ETM { М ={M M is a TM and L(M) = }

Припустимо, що можна визначити. Ми до - іншими словами, ми покажемо, як побудувати машину Тюрінга яка вирішує використовуючи TM, що вирішує . Це дає нам суперечність, оскільки ми знаємо, що може бути визначеним, і тому не може існувати. Слово "зменшити" просто означає вирішення заданої проблеми, перетворивши її в іншу проблему, яку ми вже знаємо вирішити. Отже, машина Тюрінга для може бути побудована так:ETMHTMcETMMHTMcHTMcMETMETMHTMcMHTMcHTMc

MHTMc = “на входіM,x

1. Побудуйте код для TM, який виконує такі дії:M1

M1 = "на входіw

1. Імітуйте на .Mx

2. Прийміть, якщо зупиняється. "M

2. Запустіть наMETMM1

3. Прийміть, якщо приймає, відхиліть інакше. "METM

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

M1 побудований таким чином, що на будь-якому даному вході він буде імітувати із входом . може зупинитися або циклічити на отже, може бути два випадки:wMxMx

1. приймає всі входи якщо зупиняється на . відхилить як .M1wMxMETMM1L(M1)

2. Якщо циклів на , також буде циклічно для кожного даного вводу . У будь-якому випадку, оскільки є рішенням, він відхилить і зупинить на вході як .MxM1wMETMM1L(M1)=

Correctness : Оскільки завжди зупиняється (за нашим припущенням), також завжди зупиняється. приймає, якщо приймає, тобто якщо що відбувається, якщо циклів на . відхиляє, якщо відхиляє, це що відбувається, якщо зупиняється на . Таким чином, вирішує що є протиріччям, оскільки можна визначити.METMMHTMcMHTMcMETML(M1)=Mx
MHTMcMETML(M1)MxMHTMcHTMcHTMc


Nb:

Нехай R - скорочення від до .HTMcETM

Зниження дає:

i)M,xHTMcR(M,x)ETM

M петлі на вході x якщо мова, розпізнавана нічого не приймаєR(M,x)

ii)M,xHTMcR(M,x)ETM

M зупиняється на вході x, якщо мова, розпізнана приймає щосьR(M,x)


0

Доведення, суперечивши , (що, на нашу думку, не можна визначити).ATM={M,wM is a Turing Machine which accepts w}

Припустимо існування , TM, який вирішує L RTML

Тоді використання може використовувати при побудові TM , що є рішенням для С Т М А Т МRTMSTMATM

STM=definition "На вході , де - кодування TM, а - рядок:M,wMw

  1. Змініть , беручи до уваги вхід , таким чином, щоб новий (називав його ) відхилив весь вхід, який не дорівнює , де вбудований в його опис. Якщо вхід дорівнює , то працює на і видає будь-які виходи.MwMM1wwwM1MwM

  2. Запустіть за допомогою вводуRTMM1,w

  3. Виведіть протилежний s вихід. "RTM

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


Чи не вхід є TM (без зайвих w )? Як запустити R T M на M 1 , ш ? RTMwRTMM1,w
xskxzr

-2

Е = {| M - TM і L (M) = Φ}. Чи впізнаваний Е Тьюрінг?

Е - це мова, щоб прийняти мову. Ми побудуємо машину Тьюрінга. Припустимо, ми створимо Е. Тьюрінга для мови E.

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

Припустимо, у нас є машина Тьюрінга M, нам потрібно перевірити, чи приймає вона порожню мову. У машині Тьюрінга ЕМ є M та рядки eps, a, b, aa, bb, ..... EM перевірить, чи може M досягти остаточного стану принаймні на одному вході, і якщо він приймає хоча б один вхід буде відкинуто і не буде включено в мову E. Тепер бачимо можливість TM M потрапляє в цикл, так що M буде продовжувати працювати, і ми не могли вирішити, чи може він щось прийняти чи не може прийняти. Отже, ця мова Е НЕ ЗНАЄ.

PS: Я думаю, що доповненням цієї мови Е буде RE.


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

так правильно, але те, як я пояснив, може хтось зрозуміти в мові непростої людини.
Ману Тхакур

Цей сайт не призначений для непрофесіоналів. Це для теоретичної інформатики академічного рівня.
Yuval Filmus

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