Як я можу перетворити розпізнавальну мову на машині Тьюрінга в необмежену граматику?


19

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

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

Відповіді:


9

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

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

Нехай набір державних нетерміналів; wlog нехай є початковим станом-нетермінальним і набором приймаючих станів-нетерміналів. По-перше, нам потрібні правила запуску, які генерують усі можливі приймаючі конфігурації:Q={Q0,,Qk}Q0QFQ

S#1Qf# для всіх .QfQF

Аналогічно, ми закінчуємо, коли «дістаємо» вихідний стан у правильному положенні, а саме на першому символі:

#aQ0#a для всіх .aΣ

Переклад фактичних переходів стану є прямим:

aQcQ  for a,cΣ(a,Q,N)δ(c,Q)aQbacQ for a,b,cΣ(b,Q,L)δ(c,Q)abQcQb for a,b,cΣ(a,Q,R)δ(c,Q)

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

Також конструкція стає дещо складнішою, якщо TM використовує символи, що не вводяться. У цьому випадку правила припинення можуть бути помилковими: якщо десь на стрічці є символи, що не вводяться, ми не створили належного слова. Це можна виправити аналогічно видаленню : породжує спеціальний нетермінал із який праворуч і видаляється лише у тому випадку, якщо всі символи з .#Q0Σ

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