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


19

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

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

Відповіді:


9

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

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

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

S→#1Qf# для всіх .Qf∈QF

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

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

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

aQ→cQ′  for a,c∈Σ∧(a,Q,N)∈δ(c,Q′)aQb→acQ′ for a,b,c∈Σ∧(b,Q,L)∈δ(c,Q′)abQ→cQ′b for a,b,c∈Σ∧(a,Q,R)∈δ(c,Q′)

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

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

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