Неоднозначність у регулярних та без контексту мовах


11

Я розумію, що такі твердження є правдивими:

  1. Два різних похідних рядка в даній CFG можуть іноді приписувати одне і те ж дерево розбору для рядка.
  2. Коли в даній CFG є виводи деяких рядків, які приписують різні дерева розбору, CFG є неоднозначним.
  3. Деякі безконтекстні мови, породжені неоднозначними CFG, також породжуються однозначними CFG.
  4. Деякі мови є такими, що єдині CFG, які можуть їх генерувати (а є такі), неоднозначні.

Q1. Я розумію, що це також не можна визначити, чи є довільна CFG неоднозначною, у значенні пункту 3 вище. Або, скоріше, не можна визначити, чи є без контексту мова неоднозначною, у розумінні пункту 4? Або обидва не можна визначити?

Q2. Який із пунктів 1-4 стає хибним, коли замінимо "без контексту" на "регулярний"? Чи завжди граматики та мови завжди однозначні?


Мови, які ви згадуєте у пункті 4, є "суттєво неоднозначними". Для Q1 я вважаю, що не можна визначити, чи є GRAMMAR неоднозначним. Таким чином, 3 і 4 не можна визначити.
Ламінь

Правильно, мови 4 пункту називають "за своєю суттю неоднозначною".
сумнівним

4
Q1: обидва не можна визначити. Q2: 1 неможливий, тому що існує максимум один нетермінальний пункт, який з’являється в будь-якій сентенційній формі, тому будь-яка деривація є і лівою, і правою крайньою; 2 це все-таки вірно; 3 все ще вірно, якщо ви видалите біт `` також ''; 4 вже не відповідає дійсності, наприклад, визначаючи свою граматику, ви отримаєте однозначну.
Sylvain

1
@Sylvain зробить це відповіддю?
Yuval Filmus

@Sylvain, дякую, і так, зроби це відповідь. Чи можу я підтвердити, що я зрозумів? re 2: Отже, існує звичайна граматика, яка може генерувати один і той же рядок з різними деревами розбору? (З тих пір я натрапив на посилання на "неоднозначні НФА", але я не впевнений, що він використовує "амбіт" у тому сенсі, який я є). Щодо 3 і 4, я думаю, ви говорите про те, що деякі регулярні мови можуть бути породжені неоднозначними звичайними граматиками, але завжди також породжуватимуться однозначні звичайні граматики?
sumiousjim

Відповіді:


19

Про Q1: Як проблема неоднозначності (з урахуванням CFG, чи є неоднозначною), так і притаманна проблема неоднозначності (з урахуванням CFG, чи є її мова по суті неоднозначною, тобто чи будь-яка еквівалентна CFG є неоднозначною). Ось оригінальні посилання:


Про Q2: Звичайна граматика - це "однобічна лінійна" без контексту граматика, де щонайбільше один нетермінал з'являється в будь-якій правій частині правила, і де цей нетермінал знаходиться в останньому (у правій лінійній граматиці) або першому (у ліва лінійна граматика) положення. Такі граматики легко переводяться в еквівалентні автомати з кінцевим станом (приблизно, розглядаючи кожний нетермінал як стан), які є однозначними, якщо звичайна граматика є однозначною. Клас однозначних регулярних граматик та однозначних автоматів вивчали, зокрема, Стірнс і Хант (1985) , які показують, що вони користуються простежуваними алгоритмами для проблеми включення.

  1. βAγβαγAαAX1,,XmAX1Xm

    γAηBθABAαγαηBθBβγAηβθγαηβθ(Завжди висновок крайніх лівого нетермінала в будь-якій формі сентенціальной) або праві похідні накладають фіксований порядок для відвідування дерев виведення, і потім один висновок для даного дерева виведення.

    У лінійній безконтекстній граматиці такого вибору немає, оскільки існує максимум одна нетермінальна в будь-якій сентенційній формі, і є одна деривація для даного дерева деривації, яка є і лівою крайньою, і правою крайньою.

  2. www

  3. і 4. Якщо ви переглядаєте автоматичні пристрої з кінцевим станом, достатньо визначити ваш неоднозначний автомат, щоб отримати однозначний автомат для тієї самої мови: для будь-якого слова буде один запуск. Цей детермінований автомат рівнозначний однозначній регулярній граматиці. 

    SAB,Aa,BaaSAaSBaSa

O(|G|2)(q,q)qq


1

GΣ

Я не зовсім зрозумів про те, якими мовами ви розмовляєте в 4. Кожна мова CF має неоднозначну граматику.

Q2. Все вирішується, якщо у вас є угода з звичайною граматикою. Ви просто повинні побудувати мінімальний DFA, використовуючи його, ви можете побудувати однозначну граматику. Якщо у вас є угода з регулярною мовою, визначеною CF-граматикою, відповідь ні - див. Q1.


Дякую, гарне уточнення щодо Q2. Питання щодо звичайної мови можуть бути вирішеними, якщо мова визначена звичайною граматикою; але це ще не означає, що їх можна вирішити, якщо мова визначена CFG --- це те, що ви говорите, правда? Тож чи ми знаємо, що так трапляється, що питання про неоднозначність і так далі, які не можна визначити для довільних CFG, також не можна визначити, якщо вони обмежені лише тими CFG, які трапляються для генерування звичайних мов?
сумнівний

Не може бути, але вони завжди вирішальні. Я маю на увазі, коли ви маєте справу з мовою, описаною звичайною граматикою - підкласом CFG, будь-яке вподобане вам питання вирішується. Але деякі нерегулярні CFG можуть створювати звичайну мову, і це навіть не можна визначити, чи CFG виробляє звичайну мову.
Олександр Рубцов

2
@ alexandr-rubtsov "Коли ви маєте справу з мовою, описаною звичайною граматикою, будь-яке вподобане вам питання вирішується". Це виглядає як надто оптимістичний вислів ...
J.-E.

Дякую, я мав на увазі "може бути" у своїй риторичній функції, а не в сенсі "хто знає?"
сумнівним

@ J.-E.Pin так, я мав би бути делікатнішим і сказати щось на кшталт «усі природні питання, такі як неоднозначність».
Олександр Рубцов

0

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

Усі звичайні мови породжуються звичайними граматиками , зокрема, однозначними регулярними граматиками, наприклад LL (1) правильно-регулярні граматики, які всі однозначно.

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