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


20

При заданных регулярных выражениях , существуют ли нетривиальные ограничения на размер наименьшей контекстно-свободной грамматики для R 1R n ?R1,,RnR1Rn


??? пытаясь визуализировать это. есть какая-то хитрость? пересечение правильное. можно найти минимальный DFA (по количеству состояний) с помощью стандартных методов, которые также являются CFG. Rn
vzn

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

не догадка подозревать, что каждый CFL, который распознает (то есть эквивалентен) RL, не использует свой стек или может быть преобразован в тот, который не увеличивает состояния, и минимальный такой PDA (по количеству состояний) имеет тот же размер, что и минимальный DFA. никогда не слышал / не видел доказательств этого. это может быть не сложно? более простой вопрос, есть ли PDA, который распознает RL, который меньше, чем DFA? не думай
ВЗН

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

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

Ответы:


6

Это отличный вопрос, и он действительно входит в мои интересы. Я рад, что ты спросил это Макс.

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

Рассмотрим язык копирования. Теперь ограничимся копированием строк длиной n.

Формально рассмотрим копию : = { x xn:= .{xx|x{0,1}n}

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

Точно так же, если мы ограничимся алфавитом бинарного стека, то я подозреваю, что наименьший КПК, который принимает копию, имеет экспоненциально много состояний.n

PS Не стесняйтесь, присылайте мне по электронной почте, если вы хотите обсудить дальше. :)


5

Я не думаю, что могут быть какие-либо нетривиальные нижние или верхние границы.
Для нижних оценок рассмотрим язык для фиксированного k . Размер наименьшей контекстно-свободной грамматики является логарифмическим по размеру регулярного выражения L 1 , тогда как размер наименьшего автомата для L 1 является линейным по размеру регулярного выражения L 1 . Эта экспоненциальная разница остается неизменной, если мы пересекаем L 1 с другими такими языками. Для верхних границ рассмотрим язык L 2 , состоящий ровно из одногоL1={a2k}kL1L1L1L1
L2Дебрюйн-последовательность длиной . Известно, что размер наименьшей грамматики для L 2 является наихудшим, то есть O ( nnL2, поэтому разница с «наименьшим» автоматом дляL2является просто логарифмическим фактором, предложение 1 вO(nlogn)L2

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


Замечание о размере наименьшей грамматики для единственной последовательности Дебрюйна довольно интересно. Не могли бы вы предоставить ссылку. Спасибо.
Майкл Вехар

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

n

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

5

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

nk

2k+12k+1sO(s2)O(4k)

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.