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


20

Враховуючи регулярні вирази , чи є нетривіальні межі щодо розміру найменшої без контексту граматики для R 1R n ?R1,,RнR1Rн


??? намагаючись візуалізувати це. чи є якась хитрість? перетин регулярний. можна знайти мінімальний коэффициент коэффициента DFA (wrt state state) за допомогою стандартних методів, що також є CFG. Rн
vzn

@vzn: ти маєш рацію. Проблема в тому, що ця DFA, а отже, CFG, може бути дуже великою. Мені цікаво, чи можна використовувати додаткову потужність CFG для отримання більш короткого опису перехрестя.
Макс

здогад ні. підозрюєте, що кожен CFL, який розпізнає (тобто еквівалентний) RL, не використовує його стек або може бути перетворений на такий, який не збільшує стани, а мінімальний такий КПК (число wrt state) має той самий розмір, що і мінімальний DFA. ніколи не чув / не бачив доказів цього. це, можливо, не важко? більш просте питання, чи є якась - або КПК , який розпізнає RL , який менше , ніж ДКА? думати ні.
vzn

@vzn: корисна гіпотеза, але хибна: нехай є підмножиною мов Dyck для двох типів дужок, де максимальна глибина введення - k . Існує CFG для L k розміром O ( k ) , але мінімальний DFA (навіть, я думаю, мінімальний NFA) має розмір O ( 2 k ) . LkkLkO(k)O(2k)
Макс

Дайкові мови - це CFL, але не RL ...? але бачте, ви обмежуєте максимальну глибину гніздування ... тож чи можете ви створити ту саму мову за допомогою перетинів RL? що / де є доказом того, що мінімальний показник DFA такий великий? є те , що стан ? ви не визначаєте критерії мінімальності або в іншому місці і приймаєте держави як природний випадок, але часто не є єдиним. O(2k)
vzn

Відповіді:


6

Це велике запитання, і воно справді лежить в моїх інтересах. Я радий, що ти запитав це Макс.

Нехай буде задано DFA з максимум O ( n ) станами. Було б добре, якби існував КПК із субекспоненціально багатьма станами, який приймає перетин мов DFA. Однак я вважаю, що такий КПК може не завжди існувати.нО(н)

Розглянемо мову копіювання. Тепер обмежте його копіюванням рядків довжиною n.

Формально розглянемо -копію : = { x xн: = .{xx|x{0,1}n}

Ми можемо представити -копію як перетин n розмірів DFA не більше O ( n ) . Однак найменша DFA, яка приймає n -копію, має 2 Ω ( n ) станів.nnO(n)n2Ω(н)

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

PS Не соромтеся надіслати мені електронний лист, якщо ви хочете обговорити далі. :)


5

Я не думаю, що можуть бути якісь нетривіальні нижня або верхня межа.
Для нижніх меж розглянемо мову для фіксованого k . Розмір найменшої безтекстової граматики є логарифмічним у розмірі регулярного виразу L 1 , тоді як розмір найменшого автомата дляL1={a2k}kL1 є лінійним за розміром L 1 . Ця експоненціальна різниця залишається такою ж, якщо ми перетинаємо L 1 з іншими такими мовами. Для верхніх меж розглянемо мову L 2, яка складається саме з однієїL1L1L1
L2deBruijn-Послідовність довжини . Відомо, що розмір найменшої граматики для L 2 є найгіршим випадком, тобто O ( nnL2, тому різниця до "найменшого" автомата дляL2є просто логарифмічним фактором, пропозиція 1 вO(nlogn)L2

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


Зауваження щодо розміру найменшої граматики для одиничного deBruijn-Sequence є досить цікавим. Не могли б ви надати посилання. Дякую.
Michael Wehar

Також я можу помилитися, але, здається, ви вирішили проблему лише для одного регулярного виразу (а не продукту регулярних виразів)?
Майкл Вехар

@MichaelWehar Так, я розглядав лише один єдиний регулярний вираз. Тому що якщо це має бути правдою для перетину с мов, то це, безумовно, повинно бути правдою для тривіального перетину. Я не знаю, як переформулювати питання, щоб виключити ці випадки. Я додав посилання, мав би зробити це відразу, вибачте. n
john_leo

1
Дякую! Ви змогли описати конкретний приклад. Ось просте зауваження, яке призводить до існування таких прикладів. Нехай дається n. Є 2 ^ n рядків довжиною n. Крім того, існує не більше 2 ^ n машин Тюрінга з максимум n / log (n) станами. Тому деяка строка x довжини n така, що жодна машина Тьюрінга з меншими станами n / log (n) не приймає мову {x}. Тому {x} приймається DFA з n станами і не може бути прийнятий КПК з меншою кількістю n / log (n) станів.
Майкл Вехар

5

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

Я буду позначати межі розміру CFG з точки зору загальної кількості алфавітних символів у регулярних виразах. Нехай це число позначається k . (Як зазначав john_leo, ми не знайдемо корисних меж щодо кількості регулярних виразів, що беруть участь у перетині.)nk

Ні ОП, ні Майкл не вважали за необхідне згадувати про це, але верхня межа (на кількість станів) для перетворення перетину регулярних виразів у NFA не може бути легко доведена. Для запису ось що: Перетворіть регулярні вирази в автомати Глушкова, які всі не повертаються. Потім застосуйте конструкцію продукту, щоб отримати NFA для перетину цих мов. (Я припускаю, що можна поліпшити обмеження до 2 k + 1 або близько того.) S2k+12k+1s -state НКА може бути перетворений в правій лінійної граматики (яка є окремим випадком CFG) розміру O(s2)(якщо ми вимірюємо розмір граматики як загальну кількість символів на лівій і правій стороні постановки), таким чином надаючи розмір . Зв'язане це, звичайно, звучить жахливо, якщо ви маєте на увазі практичне застосування. Спроба довести кращу межу, використовуючи недетерміновану складність переходу замість недетермінованої складності стану для оцінки розміру NFA, можливо, варто докласти зусиль.O(4k)

Інша частина - пошук мови свідків, яка може бути виразно виражена як перетин регулярних виразів, але обов'язково громіздка для опису CFG. (Тут нам потрібно встановити нижню межу щодо розміру всіх CFG, що генерують мову, яких може бути нескінченно багато.) Наступний аргумент дає2Ω(k/logk)

Ln={wwRw{a,b}|w|=n}wRwLn2n+1

  • ri=(a+b)ia(a+b)2(ni1)a(a+b)+(a+b)ib(a+b)2(ni1)b(a+b)1in
  • si=(a+b)a(a+b)2(ni1)a(a+b)i+(a+b)b(a+b)2(ni1)b(a+b)i1in
  • =(a+b)3n

kO(n2)

Ln2n/(2n)=2Ω(k/logk)2nnn/(2n)

І все-таки між залишається великий проміжокO(4n)

Список літератури:

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