Проблема членства для певного класу необмежених граматик


9

Розглянемо довільну без контексту граматику G над алфавітом {0,1,0¯,1¯}. До постановок цієї граматики додайте дві фіксовані безконтекстні постановкиP: 0¯0ϵ і 1¯1ϵ. Назвіть отриману граматикуGP стоячи за "G доповнені з постановками P".

Чи можна дати алгоритм, який займає граматику GP і рядок s над {0,1,0¯,1¯} і вирішує, чи sL(GP)?


Цікаво, що, хоча відповідь здається "ні", я думаю, що якщо L(G) регулярно, то так і є L(GP). По суті, NFA дляL(G) можна перетворити в один для L(GP) шляхом ітеративного додавання ϵ-переходи (s,ϵ,t) всякий раз, коли у вас є стежки (s,0¯,p,0,t),(s,0¯,p,ϵ,q,0,t),(s,1¯,p,1,t),(s,1¯,p,ϵ,q,1,t) або (s,ϵ,p,ϵ,t), і нарешті виконуючи ϵ-очищення.
Клаус Драгер

Так це правда. Насправді, це питання виникло з проблеми в аналізі програми (вивезення сміття на основі живого). Ми обійшли цю проблему, наблизивши CFG до сильно регулярної граматики (трансформація Могрі-Недерхофа), а потім виконавшиPспрощення в результаті NFA саме так, як згадує Клаус Драйгер.
Аміт.

Відповіді:


5

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

У кожній точці виглядало б поточне частково розширене слово

[tape to the left][head][tape to the right]

Тут:

  • [tape to the left], після застосування P, містить лише символи 0¯ і 1¯.
  • [tape to the right], після застосування P, містить лише символи 0 і 1.
  • [head] це єдиний нетермінальний, який кодує як стан голови, так і персонаж у положенні голови.

Припустимо, що глава знаходиться в стані S, а персонаж під головою є i{0,1}. Тоді голова представлена ​​нетермінальноюSi. Якщо це потрібно для переходу до державногоT, замініть поточний символ на j, і рухайтеся ліворуч, є два переходи Si0T0j і Si1T1j. Якщо замість цього потрібно рухатись праворуч, є два переходиSij¯T00¯ і Sij¯T11¯. У якомусь сенсі голові доводиться «вгадувати» персонажа в напрямку, в якому він рухається, виробляючи відповідний символ. Якщо здогад невірний, інваріант о[tape to the left] або [tape to the right] було б порушено, і воно ніколи не відновиться.

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


Я не впевнений, що я розумію ваше скорочення. У цьому я сумніваюся: якщо дана машина Тьюрінга єN заявив, то чи не кількість необмежених виробництв, необхідних для наслідування машини Тьюрінга, пов'язаної з цим N? Але моя проблема дозволяє лише дві фіксовані необмежені постановки.
Аміт.

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