Правоконтекстные грамматики, эквивалентность автоматам
Версия от 06:02, 12 октября 2010; Icekeeper (обсуждение | вклад)
Определение: |
Праволинейной грамматикой | называется грамматика, в которой все правила имеют вид , .
Аналогично можно определить леволинейные грамматики.
Теорема: |
Множество языков, задаваемых праволинейными грамматиками совпадает со множеством языков, задаваемых конечными автоматами. |
Доказательство: |
Пусть имеется конечный автомат. Построим для него праволинейную грамматику. Множеством нетерминалов нашей грамматики будет множество состояний автомата. Для каждой пары состояний автомата и таких, что имеется переход из в по символу , и – не является допускающим состоянием в автомате, добавим в грамматику правило . Затем для каждой пары состояний автомата и таких, что имеется переход из в по символу , и – является допускающим состоянием в автомате, добавим в грамматику правило .Докажем, что если для автомата верно , то для построенной грамматики верно . Будем доказывать индукцией по переходам в автомате.Базой индукции будут переходы за 0 шагов. Индукционный переход: пусть данное свойство выполняется для переходов длины . Докажем что верно и для переходов за шагов.Рассмотрим переход , а именно его последний шаг: Так как для шагов верно, то но по построению грамматики имеется правило , значит . Таким образом доказали для шагов.Теперь пусть имеется праволинейная грамматика. Построим по ней конечный детерминированный автомат. Введем специальное допускающее состояние . Множеством состояний автомата будет множество нетерминалов грамматики вместе с состоянием ( ). Для правил вида определим функцию перехода в автомате как . Для правил вида определим функцию перехода в автомате как |