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


21

Насосная лемму для регулярных языков можно доказать, рассматривая конечный автомат, распознающий язык изучал, выбирая строку с длиной больше , чем его число состояний, и применением принципа Дирихля. Однако прокачивающая лемма для языков без контекста (а также лемма Огдена, которая является несколько более общей), подтверждается рассмотрением не зависящей от контекста грамматики изучаемого языка, выбором достаточно длинной строки и просмотром дерева разбора.

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

Отсюда мой вопрос: есть ли доказательство прокачивающей леммы для контекстно-свободных языков, которая включает в себя только автоматы нажатия, а не грамматики?

Ответы:


16

Я снова подумал об этой проблеме и думаю, что у меня есть полное доказательство. Это немного сложнее, чем я ожидал. Комментарии очень приветствуются! Обновление: я представил это доказательство на arXiv, на случай, если это кому-нибудь пригодится: http://arxiv.org/abs/1207.2819

Пусть будет контекстно-свободным языком над алфавитом . Пусть будет автоматом, который распознает , с алфавитом стека . Обозначим черезчисло состояний . Без ограничения общности мы можем предположить, что переходы выталкивают верхний символ стека и либо не помещают символ в стек, либо помещают в стек предыдущий верхний символ и какой-либо другой символ.Σ A L Γ | A | A ALΣALΓ|A|AA

Определими длина накачки, и покажет, что все такие, что имеет разложение вида такое, что , и .р = | A | ( | Γ | + 1 ) p w L | ш | > p w = u v x y z | V X Y | p | V y | 1 n 0 , u v n xp=|A|2|Γ|p=|A|(|Γ|+1)pwL|w|>pw=uvxyz|vxy|p|vy|1n0,uvnxynzL

Пусть такое, что . Пусть - принимающий путь минимальной длины для (представленный в виде последовательности переходов ), обозначим его длину через, Мы можем определить, для, размер стека в позиции принимающего пути. Для всех мы определяем уровень над как набор из трех индексов с такой что:| ш | > p π w A | π | 0 i < | π | s i i N > 0 N π i , j , k 0 i < j < k pwL|w|>pπwA|π|0i<|π|siiN>0Nπi,j,k0i<j<kp

  1. si=sk,sj=si+N
  2. для всех таких, что ,i n j s is ns jninjsisnsj
  3. для всех таких, что , .j n k s ks ns knjnksksnsk

(Для примера, см. Рисунок для случая 2 ниже, который иллюстрирует уровень.)N

Определим уровень of как максимальный такой, что имеет уровень. Это определение мотивируется следующим свойством: если размер стека по пути становится больше, чем его уровень , то символы стека глубиной более уровней никогда не будут выталкиваться. Теперь мы будем различать два случая: либо , и в этом случае мы знаем, что одна и та же конфигурация для состояния автомата и самых верхних символов стека встречается дважды на первых шагах , илиπ N π N π l l l < p l p + 1 π l p vlπNπNπlll<plp+1πlpи должна существовать позиция укладки и расстегивания, которую можно повторять произвольное количество раз, из которой мы строим и .vy

Случай 1. . Мы определяем конфигурации как пары состояния и последовательность из символов стека (где стеки размером менее должны быть представлены путем дополнения их до специальным пустым символом, поэтому мы используем при определении ). По определению есть таких конфигураций, что меньше . Следовательно, на первых шагах та же конфигурация встречается дважды в двух разных позициях, скажем, . Обозначить через A A l l l | Γ | + 1 р | A | ( | Г | + 1 ) л р р + 1 π я < J я J ш я J π яJ ш = U v х у г у г = ε у = шl<pAAlll|Γ|+1p|A|(|Γ|+1)lpp+1πi<ji^ (соответственно ) позиция последней буквы прочитанной на шаге (соответственно ) из . У нас есть . Следовательно, мы можем разложить с помощью , , , . (Через мы обозначаем буквы от включительно до эксклюзивно.) По построению .j^wijπi^j^w=uvxyzyz=ϵ v= ш яJ х= ш J| ш | ш Купить у шху | VXY | рu=w0i^v=wi^j^x=wj^|w|wxywxy|vxy|p

Мы также должны показать, что , но это следует из нашего наблюдения выше: стековые символы глубже, чем , никогда не выталкиваются, поэтому нет никакого способа различить конфигурации, которые равны в соответствии с нашим определением, и путь принятия для строится из пути путем повторения шагов между и , раз.l u v n x w i j nn0,uvnxynz=uvnxLluvnxwijn

Наконец, у нас также есть , потому что если , то, потому что у нас одинаковая конфигурация на шагах и в , будет приемлемый путь для , противоречащий минимальности .v = ε я J π π ' = π 0 я π J | π | w π|v|>0v=ϵijππ=π0iπj|π|wπ

(Обратите внимание, что этот случай сводится к применению леммы прокачки для регулярных языков путем жесткого кодирования самых верхних символов стека в состоянии автомата, что является достаточным, поскольку достаточно мало, чтобы гарантировать, что больше, чем число состояний этого автомата Основной трюк в том, что мы должны приспособиться к -transitions.)л | ш | εll|w|ϵ

Случай 2. . Пусть будет -уровнем. С любым размером стека , , мы связываем последний push и первый pop . По определению и . Вот иллюстрация этой конструкции. Чтобы упростить рисование, я опускаю различие между позициями пути и позициями слов, которые мы должны будем сделать позже. i , j , k p h s ih s j lp ( h ) = max ( { y j | s y = h } ) fp ( h ) = min ( { y j | s y = h } ) i lp ( hlpi,j,kphsihsj lp(h)=max({yj|sy=h}) fp(h)=min({yj|sy=h})j fp ( h ) kilp(h)jjfp(h)k

Иллюстрация конструкции для случая 2. Для упрощения рисования различие между позициями пути и позициями слов не приводится.

Мы говорим, что полное состояние размера стека - это тройка, образованная:h

  1. состояние автомата в положенииlp(h)
  2. самый верхний символ стека в позицииlp(h)
  3. состояние автомата в позицииfp(h)

Существует возможных полных состояний и размеров стека между и , поэтому по принципу pidgeonhole существуют два размера стека с такие что полные состояния в и одинаковы. Как и в случае 1, мы определяем с помощью , , и позиции последних букв прочитанных на соответствующих позициях в . Фактор гдеp + 1 s i s j g , h s ig < h s j g h ^ lp ( g ) ^ lp ( h ) ^ fp ( h ) ^ fp ( g ) w π w = u v x y z u = w 0 ^ lp (pp+1sisjg,hsig<hsjghlp(^g)lp(^h)fp(^h)fp(^g)wπw=uvxyz v= w ^ lp ( g ) ^ lp ( h ) x= w ^ lp ( h ) ^ fp ( h ) y= w ^ fp ( h ) ^ fp ( g ) z= w ^ fp ( г ) | ш |u=w0lp(^g), , , и .v=wlp(^g)lp(^h)x=wlp(^h)fp(^h)y=wfp(^h)fp(^g)z=wfp(^g)|w|

Эта факторизация гарантирует, что (потому что по нашему определению уровней).k p|vxy|pkp

Мы также должны показать , что . Для этого обратите внимание, что каждый раз, когда мы повторяем , мы начинаем с одного и того же состояния и одной и той же вершины стека, и мы не попадаем ниже нашей текущей позиции в стеке (в противном случае нам пришлось бы снова нажимать на текущую позицию, нарушая максимальный размер ), поэтому мы можем следовать по одному и тому же пути в и поместить одну и ту же последовательность символов в стек. Из-за максимального значения и минимальности при чтении мы не попадаем ниже нашей текущей позиции в стеке, поэтому путь в автомате одинаков независимо от числа раз мы повторилиv lp ( g ) A lp ( h ) fp ( h ) x v w v v v fp ( g ) A u v n x y n z wn0,uvnxynzLvlp(g)Alp(h)fp(h)xv, Теперь, если мы повторяем столько раз, сколько повторяем , так как мы начинаем с одного и того же состояния, поскольку мы поместили одну и ту же последовательность символов в стек с нашими повторениями , и поскольку мы не выскакиваем больше, чем то, что имеет суммированные с минимальностью , мы можем следовать по одному и тому же пути в и извлечь ту же последовательность символов из стека. Следовательно, принимающий путь из может быть построен из принимающего пути для .wvvvfp(g)Auvnxynzw

Наконец, у нас также есть , потому что, как и в случае 1, если и , мы можем построить более короткий путь принятия для , удалив и .v = ϵ y = ϵ w π lp ( g ) lp ( h ) π fp ( h ) fp ( g )|vy|>1v=ϵy=ϵwπlp(g)lp(h)πfp(h)fp(g)

Следовательно, мы имеем адекватную факторизацию в обоих случаях, и результат доказан.

(Благодарю Марка Жанмугина за то, что он помог мне с этим доказательством.)


7

Да, это возможно. Мы могли бы использовать понятие поверхностных конфигураций; они были представлены Куком давным-давно. С этим должно быть довольно легко получить версию прокачки леммы.

Что касается поверхностных конфигураций, то почти любая статья на LogCFL должна иметь свое определение. Вот недавняя статья и вот тезис

Может быть, кто-то более энергичный может изложить детали!


Спасибо за ответ! Да, вполне естественно взглянуть на комбинацию состояния автомата и самого верхнего символа стека. Я все еще думаю об этой проблеме, и мне не удается выяснить детали ... Помощь приветствуется. :-)
a3nm

3

Для полноты ссылки на доказательство в этом направлении.

A.Ehrenfeucht, HJHoogeboom, G.Rozenberg: Системы координированных пар. I: Dyck слова и классическая прокачка RAIRO, инф. Теор. Appl. 20, 405-424 (1986)

Аннотация. Понятие координированной парной системы [...] очень близко соответствует (является еще одной формулировкой) понятию «автомат с нажатием». В этой статье мы [...] исследуем возможность получения накачки свойств контекстно-свободных языков посредством анализа вычислений в cp-системах. Для этого мы анализируем комбинаторную структуру слов Дика. Свойства слов Дика, которые мы исследуем, проистекают из комбинаторного анализа вычислений в cp-системах. Мы покажем, как это соответствие можно использовать для доказательства классической леммы накачки.


1

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

Ссылки:

  • Сакарович, Жак. Непрерывное владение языками и детерминистами. (Франц. Английское резюме). Математика Теория систем 14 (1981), нет. 3, 247–288.
  • Уильям Ф. Огден. 1969. Интеркаляционные теоремы для стековых языков. В материалах первого ежегодного симпозиума ACM по теории вычислений (STOC '69).
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.