Нехай Чи є машина Тьюрінга R, яка визначає (я не маю на увазі розпізнає) мову ?
Здається, що той самий прийом, який було показано, що повинен працювати тут.
Нехай Чи є машина Тьюрінга R, яка визначає (я не маю на увазі розпізнає) мову ?
Здається, що той самий прийом, який було показано, що повинен працювати тут.
Відповіді:
Під маркуванням ви, мабуть, маєте на увазі аналіз доступності - пошук шляху від початкового стану до прийнятого. Дійсно, мова DFA порожня, якщо немає такого шляху.
Почнемо з прикладу, чому це не виходить у ТМ. Розглянемо ТМ , що в , ігнорує це вхід, але пише на це стрічки, переміщає право голову і переходить в стан , то в він знову ігнорує вхід, пише , переміщує голову вліво і йде до . У , якщо він читає , то він пише , рухає головою вправо і повертається назад до . a q 1 q 1 a q 2 q 2 a a q 1
Тобто машина просто записує і чергує два стани ( та ) і завжди має два суміжних на стрічці.q 1 q 2 a
Тепер додамо перехід від який при читанні переходить у приймаючий стан і зупиняється. б
Мова цієї машини порожня. Дійсно, запуск завжди застрягає в і ніколи не дістанеться до приймаючого стану. Тим не менш, існує державний шлях до стану, що приймає. То що пішло не так?
Ну, інтуїтивно, "стан" ТМ недостатньо інформативний, щоб описати продовження циклу. Для того, щоб мати всю інформацію, вам потрібна конфігурація ТМ, яка включає стан, положення голови та вміст стрічки. Якщо ви знайдете конфігураційний шлях (який називається запуском ) до прийнятої конфігурації, тоді мова дійсно не порожня, і це умова iff.
Проблема з використанням аналізу доступності на графіку конфігурації полягає в тому, що він може бути нескінченним. Ось чому вирішення порожнечі мови не можна визначити.
Ось чому мовна непорожня пізнавана - ви можете виконати BFS на графіку нескінченної конфігурації. Якщо є шлях до стану, що приймає, ви знайдете його в підсумку. Якщо цього немає, то ви можете застрягти в нескінченному пошуку.
можна визначити через теорему Райса , яка стверджує, що нетривіальні властивості часткових функцій не вирішуються.
Це означає, що функції, обчислені елементами мають нетривіальну властивість. Отже, не вирішується.A
E вирішується лише за умови припущення, що коди DFA кодуються спеціальним чином, як таблиця переходу стану або т.п. (ми не можемо вирішити, чи приймає TM лише звичайні мови через теорему Райса!). У цьому випадку теорема Райса не застосовується, оскільки для прийняття рішення про потрібно певне кодування елемента . Тому ми не вирішуємо лише часткові функції.
(Тобто, якби проблема була, вирішуючи, чи є певна ТМ DFA - або DFA - обчислювальною - а мова, прийнята нею, порожня, не можна визначити через теорему Райса. Зауважте, що в цьому випадку .)A = E
Ще одна підказка: спробуйте зменшити проблему зупинки до .
(Оригінальний натяк - використовувати теорему Райса, але в цьому випадку пряме доведення також досить просте.)
Лема 1 : Якщо L не можна визначити, то це також є доповненням L.
Ми знаємо, що проблема зупинки може бути вирішена. Тому, згідно з доповненням леми 1 задачі про , теж не можна визначити. H c T M
=
=
{ ⟨ М ⟩ =
Припустимо, що можна визначити. Ми до - іншими словами, ми покажемо, як побудувати машину Тюрінга яка вирішує використовуючи TM, що вирішує . Це дає нам суперечність, оскільки ми знаємо, що може бути визначеним, і тому не може існувати. Слово "зменшити" просто означає вирішення заданої проблеми, перетворивши її в іншу проблему, яку ми вже знаємо вирішити. Отже, машина Тюрінга для може бути побудована так:
= “на вході
1. Побудуйте код для TM, який виконує такі дії:
= "на вході
1. Імітуйте на .
2. Прийміть, якщо зупиняється. "
2. Запустіть на
3. Прийміть, якщо приймає, відхиліть інакше. "
Важливо розуміти, що TM ніколи насправді не моделюється - таке моделювання може перейти в нескінченний цикл. Все, що ми робимо, - це створення коду для .
побудований таким чином, що на будь-якому даному вході він буде імітувати із входом . може зупинитися або циклічити на отже, може бути два випадки:
1. приймає всі входи якщо зупиняється на . відхилить як .
2. Якщо циклів на , також буде циклічно для кожного даного вводу . У будь-якому випадку, оскільки є рішенням, він відхилить і зупинить на вході як .
: Оскільки завжди зупиняється (за нашим припущенням), також завжди зупиняється. приймає, якщо приймає, тобто якщо що відбувається, якщо циклів на . відхиляє, якщо відхиляє, це що відбувається, якщо зупиняється на . Таким чином, вирішує що є протиріччям, оскільки можна визначити.
Нехай R - скорочення від до .
Зниження дає:
i)
M петлі на вході x якщо мова, розпізнавана нічого не приймає
ii)
M зупиняється на вході x, якщо мова, розпізнана приймає щось
Доведення, суперечивши , (що, на нашу думку, не можна визначити).
Припустимо існування , TM, який вирішує L ∅
Тоді використання може використовувати при побудові TM , що є рішенням для С Т М А Т М
"На вході , де - кодування TM, а - рядок:
Змініть , беручи до уваги вхід , таким чином, щоб новий (називав його ) відхилив весь вхід, який не дорівнює , де вбудований в його опис. Якщо вхід дорівнює , то працює на і видає будь-які виходи.
Запустіть за допомогою вводу
Виведіть протилежний s вихід. "
Припущення про існування придатності машини Тьюрінга для дозволяє нам побудувати рішення для , що є протиріччям.
Е = {| M - TM і L (M) = Φ}. Чи впізнаваний Е Тьюрінг?
Е - це мова, щоб прийняти мову. Ми побудуємо машину Тьюрінга. Припустимо, ми створимо Е. Тьюрінга для мови E.
ЕМ буде надана як кодування для інших машин Тьюрінга. Якщо ця введена машина M приймає порожню мову, то вона буде членом мови Е, інакше вона не буде членом мови.
Припустимо, у нас є машина Тьюрінга M, нам потрібно перевірити, чи приймає вона порожню мову. У машині Тьюрінга ЕМ є M та рядки eps, a, b, aa, bb, ..... EM перевірить, чи може M досягти остаточного стану принаймні на одному вході, і якщо він приймає хоча б один вхід буде відкинуто і не буде включено в мову E. Тепер бачимо можливість TM M потрапляє в цикл, так що M буде продовжувати працювати, і ми не могли вирішити, чи може він щось прийняти чи не може прийняти. Отже, ця мова Е НЕ ЗНАЄ.
PS: Я думаю, що доповненням цієї мови Е буде RE.