Визначення того, чи є однорідною контекстно-чутною мовою регулярною


18

Це добре відомий результат, що питання

Чи створює без контексту граматику звичайну мову?

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

Моє запитання полягає в тому, щоб знати, що відбувається з неоднаковими контекстними мовами.

Чи можна визначити, чи дана контекстно-залежна граматика в одинарному алфавіті породжує звичайну мову.

Якщо відповідь буде позитивною, оцінка складності буде вітатися.

Відповіді:


9

На жаль, ваша проблема не вирішена. Підхід, на який я натрапив (який, можливо, переборщив, тому кожен, хто має більш доцільний підхід, повинен посилити!) Спочатку використовує діагональний аргумент, щоб продемонструвати, що є одинарний CSL X який не є регулярним (на відміну від позитивного результату для одинарних CFL), а потім зменшує проблему зупинки для машин Тьюрінга, задавши TM M , побудувавши CSG G який імітує M на довжині стрічки, коротшої за рядок розбору w , розпізнаючи X якщо M зупиняється, не переступаючи межі і не в змозі проаналізувати інакше, так що G успішно аналізує всі wX які є досить довгими iff зупинками (так що L ( GM відрізняється від X лише на кінцево багато рядків і тому не може бути регулярним), інакше G розпізнає порожню мову (яка, очевидно, регулярна).L(G)XG

Ключовим у цьому підході є зауваження, що CSG не стосуються лише граматичних питань, таких як структура фрази - дійсно, послідовності деривації CSG можуть проводити довільні недетерміновані обчислення, обмежені простором (насправді існують PSPACE-повні CSL-файли), перш ніж приступити до справи вирівнювання з рядком розбору. Це найлегше спостерігається за допомогою стандартних перетворень між CSG та монотонними граматиками (яка продовжує працювати при обмеженні унарних алфавітів), а також використання простих монотонних виробництв для імітації машинних переходів Тьюрінга на рядках деривації, які представляють етапи в історії обчислень. Протягом цієї відповіді я припускаю, що читач може зрозуміти більшість деталей, коли потрібен CSG для імітації заданих обчислень. (Я припускаю, що запитуючий задоволений усім цим, але я переглядаю це для повноти. Тим не менш, не соромтеся вимагати роз'яснень у коментарях.)


По-перше, нам потрібна наша нерегулярна одинарна CSG. ( EDIT: значить, це було надмірно - нерегулярні одинарні CSL-файли можна легко демонструвати, наприклад, через перекачувальну лему на будь-якій мові, яка виявляє найосновнішу нерегулярність. Див. Коментарі для прикладів. Заднім оглядом, використовуючи діагональний аргумент було як привести ядерну боєголовку до бою з ножами. Перевірте цю конструкцію, якщо вам цікаво, інакше перейдіть до скорочення.

Нехай бути перерахуванням DFA за алфавітом { 1 } , таким чином, що кількість станів у D i збільшується в i . Ми описуємо CSG G X з точки зору його поведінки під час розбору рядка 1 n{ 1 } :D1,D2,...{1}DiiGX1n{1}

  1. Недетерміновано генерують рядок з "порожніх" нетерміналів, які ми вважаємо "стрічкою". Один із порожніх нетерміналів повинен бути окремим нетерміналом "порожня + голова читання-запису + старт запуску". Якщо рядок розбору не дорівнює 1 n, то ця деривація закінчиться невдалою. Ми описуємо решту процесу з допомогою детермінованих обчислень, імітованих єдино можливим виведенням.n1n
  2. Надрукуйте на стрічці кодування наступним числом i у двійковій формі , де i = n - c і c обрано так, щоб у нас на стрічці завжди було достатньо місця, щоб зробити те, що нам потрібно. (Це можливо, оскільки простір, необхідний для кодування і D i, і i)Diii=nccDii логарифмически зростає в ) .i
  3. Оцініть на вході 1 i . Для цього не потрібно зображувати стрічку D i - ви можете просто зберігати єдиний стан, який ви змінюєте відповідно до переходів D iDi1iDiDi під час декременту .i
  4. Якщо відхиляє 1 iDi 1i , перезапишіть усю стрічку нетерміналами, які створюють . Інакше не вдасться.1

Беремо . Чітко X L ( D i ) для будь-якого i , оскільки 1 i + cX 1 i + cL ( DX=L(GX)XL(Di)i .1i+cX1i+cL(Di)


Наступним кроком є ​​розробка скорочення від проблеми зупинки до проблеми запитувача. (Якщо ви пропустили вищевказаний розділ, нехай - це довільна нерегулярна одинарна CSL, породжена CSGX )GX

Нехай - довільна ТМ. Ми перетворюємо M в CSG G, який веде себе так, як це робиться в рядку розборуMMG :1n

  1. Породжувати порожніх нетермінали, причому крайній лівий - окремий порожній + голова читання-запису, нетермінальний, а також генерують "граничний" нетермінал з кожної сторони. Знову ж таки, якщо ми генеруємо неправильну кількість нетерміналів, то ми провалюємося.n2
  2. Моделюйте у просторі між граничними нетерміналами. Якщо МMM колись переходить на один з граничних станів, ми припиняємо моделювання і припускаємо, що ніколи не зупиняється.M
  3. Якщо зупиняється, поводься такM . Якщо нам довелося припинити моделювання, то провалити.GX

Зауважте, що якщо вдається запуститись назавжди в межах, G ніколи не може генерувати рядок розбору, і таким чином вийде з ладу. Якщо M зупиняється, то існує деякий простір n, якого вистачає, щоб містити весь обчислення M , отже, G аналізує 1 м, коли m n + 2 та 1 mX , а значить, X є об'єднанням L ( G ) і кінцева мова, звідки LMGMnMG1mmn+21mXXL(G)L(G)не є регулярним. З іншого боку, якщо ніколи не зупиняється, то L ( G ) = явно регулярний.ML(G)=

Алгоритм для визначення того, чи є регулярним, чи ні, визначав би, чи не зупиняється M на порожній стрічці, що не можна визначити. Звідси випливає, що проблема запитувача не може бути вирішена.L(G)M


2
У першій частині вашої відповіді і { a pp  є простим } є прикладами одинарних нерегулярних мов, що залежать від контексту. {an2n0}{app is prime}
Ж.-Є.

Хе, справді перекручене, мабуть, мені прийшло в голову, що діагональний аргумент буде грубою надмірністю. Я думаю, я відредагую відповідь у відповідь. Сподіваюсь, друга частина була корисною.
gdmclellan

@ J.-E.Pin: Я не надто замислювався над цим, чи легко створити одинарну граматику, залежну від контексту, для ? {app is prime}
Marzio De Biasi

@ marzio-de-biasi Я повинен зізнатися, що не перевірив себе, але покладався на цю відповідь
J.-E.

@MarzioDeBiasi Дуже легко. При визначенні того, чи є мова залежною від контексту, звичайний процес - це щось на зразок 1. недетермінованого відгадування рядка розбору; 2. провести обчислення, обмежене простором, щоб визначити, чи відповідає рядок аналізу синтаксису деяким предикатом; і 3. генерувати рядок iff зазначеного предиката визнано задоволеним. Простір може бути певною проблемою (простір, обмежений задається довжиною рядка розбору, тому що ви не можете скористатись похідною рядком, використовуючи контекстно-залежні постановки), але в одинарному випадку у вас є експоненціальний простір для роботи .
gdmclellan

6

Це по суті та сама відповідь, як і вище, але оскільки шукається "більш доцільна" відповідь, я згадую про це: (Також це моя перша публікація тут, тож пробачте мене, якщо я розміщую дрібницю!)

Зауважте, що порожнеча не вдається визначити для одинарних контекстно-чутливих мов. Фікс контекстно-чутливу, але нерегулярний мову . Враховуючи LBA для L a , можна легко побудувати LBA для L = { a na nN  та  m n : a mL } . Тоді чітко L ' регулярно, якщо і тільки якщо L порожній.NaLaL={ananN and mn:amL}LL

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


"порожнеча не визначається для одинарних мов, що залежать від контексту": це загальновідомий факт? Ви б мали довідку?
Ж.-Є.

1
З огляду на контекстно-чутливу мову , візьміть морфізм h : Σ { a } ∗, який відображає кожну букву на a . Тоді h ( L ) порожній, якщо і тільки якщо L порожній. Для детермінованого простору журналів, заданого TM T , можна побудувати діт. logspace ТМ для безлічі всіх в 2 н таким чином, що Т має зупиняючи обчислення довжини п . LΣh:Σ{a}ah(L)LTa2nTn
Георг Зецше
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.