Регулярная аппроксимация КС-языков — различия между версиями
Ateuhh (обсуждение | вклад) (→Аппроксимации самоприменимой грамматики) |
Ateuhh (обсуждение | вклад) м (→Источники информации) |
||
Строка 135: | Строка 135: | ||
*''Jean-Claude Junqua,Gertjan van Noord'' — Robustness in Language and Speech Technology — Kluwer Academic Publishers, 2001 — ISBN 0-7923-6790-1 | *''Jean-Claude Junqua,Gertjan van Noord'' — Robustness in Language and Speech Technology — Kluwer Academic Publishers, 2001 — ISBN 0-7923-6790-1 | ||
* [https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&ved=0CCkQFjAA&url=http%3A%2F%2Fwww.cs.ucsb.edu%2F~omer%2FDOWNLOADABLE%2Fcfg-reg09.pdf&ei=AQbcUrL_DIfi4wSx3IDYDg&usg=AFQjCNHsSWONr0_c2MDgvApwrhc81deY0w&sig2=_2iZj4Xexe6-p5Cyt-GEMg&bvm=bv.59568121,d.bGE Strongly Regular Grammars and Regular Approximation of Contex-Free Languages] | * [https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&ved=0CCkQFjAA&url=http%3A%2F%2Fwww.cs.ucsb.edu%2F~omer%2FDOWNLOADABLE%2Fcfg-reg09.pdf&ei=AQbcUrL_DIfi4wSx3IDYDg&usg=AFQjCNHsSWONr0_c2MDgvApwrhc81deY0w&sig2=_2iZj4Xexe6-p5Cyt-GEMg&bvm=bv.59568121,d.bGE Strongly Regular Grammars and Regular Approximation of Contex-Free Languages] | ||
− | *''Willem J. M. Levelt'' — An Introduction to the Theory of Formal Languages and Automata | + | *''Willem J. M. Levelt'' — An Introduction to the Theory of Formal Languages and Automata — John Benjamin B.V., 2008 — ISBN 978-90-272-3250-2 |
[[Категория: Теория формальных языков]] | [[Категория: Теория формальных языков]] | ||
[[Категория: Контекстно-свободные грамматики]] | [[Категория: Контекстно-свободные грамматики]] |
Версия 18:42, 15 декабря 2016
Содержание
Определения
Определение: |
Контекстно-свободная грамматика называется самоприменимой (англ. self-embeded), если , . |
Определение: |
Нетерминал | в грамматике называется рекурсивным (англ. recursive), если .
Определение: |
Нетерминалы | в грамматике называются взаимно рекурсивными (англ. mutual recursive), если .
Алгоритм преобразования грамматики в конечный автомат
Лемма: |
Не самоприменимая контекстно-свободная грамматика генерирует регулярный язык. |
Доказательство: |
В качестве конструктивного доказательства, мы приведем алгоритм построения конечного автомата по грамматике. Для желающих, приведем ссылку на формальное доказательство. |
Идея алгоритма
Пусть,
множество рекурсивных терминалов из . Пусть, разбиение на дизъюнктных множеств взаимно рекурсивных терминалов, . Введем функцию :function IsLeftType() return function IsRightType( ) return
function getTheTypeOfMutualRecursiveSet (): if !IsLeftType( ) && IsRightType( ) return left; if IsLeftType( ) && !IsRightType( ) return right; if (IsLeftType( ) && IsRightType( ) return self; if !IsLeftType( ) && !IsRightType( ) return cyclic;
Заметим, что
В основе алгоритма будет рекурсивный обход грамматики. Спускаемся по грамматике до тех пор не приходим в нетерминал или символ алфавита:
- символ алфавит или — добавляем новое правило в автомат
- нерекурсивный нетерминал — запускаемся от всех правых частей правил, который терминал порождает
- рекурсивный нетерминал — в зависимости от типа рекурсивного нетерминала, продолжаем рекурсию (будет ясно из пседокода)
Псевдокод
— множество состояний ДКА.
— множество переходов ДКА.
— множество допускающих состояний.
function createFA(G) //s = createState f = createState return makeFA (s,S,f) function makeFA (q0,a,q1) if a == || a // пришли в лист дерева разбора return if a == where q = createState makeFA ( ) makeFA ( ) return if exist where foreach b in = createState if getTheTypeOfMutualRecursiveSet( ) == left foreach C in where makeFA ( ) foreach C,D in where makeFA ( ) else // рекурсивный нетерминал right или cyclic foreach C in where makeFA ( ) foreach C,D in where makeFA ( ) return foreach p in where p == makeFA ( )
Аппроксимации самоприменимой грамматики
В данном разделе покажем методы апроксимации самоприменимой контекстно-свободной грамматики НФХ.
к регулярной грамматике. Для удобства будем считать, что грамматика представлена вRTN аппроксимация
Построим, по данной грамматике аппроксимирующий ее конечный автомат.
- Для каждого нетерминала в грамматике, создадим новый конечный автомат , добавим в него два состояния и .
- Для каждого правила грамматике , введм новые состояния в автомат этого нетерминала , а также добавим новые правила перехода в : .
- Таким образом мы построили множество конечных автоматов = для каждого нетерминала . Теперь объединим все в один автомат. Объединим все состоянии автоматов из в множество . Скопируем все переходы каждого автомата из в . Далее для каждого перехода вида , вместо него добавим два новых перехода: .
MT аппроксимация
Построим по данной самоприменимой контекстно-свободной грамматике
регулярную грамматику .- Для каждого нетерминала из , добавим нетерминалы и в .
- Для каждого правила
(Если , тогда добавим правило ). , где . Добавим в нетерминалы и следуюшие правила: .
В итоге правоконтекстная грамматика, эквивалентная конечному автомату, который задает регулярный язык.
—Пример
Исходная грамматика генерирует язык: . Результирущая грамматика генирирует регулярный язык: .
Сравнение двух методов
Ясно, что оба языка, генерируемых конечным автомат для первого метода и апрокисимируещей граматикой для второго метода, содержат в себе язык генерируемый исходной грамматикой.
Привлекателным свойством MT аппроксимации по сравнению с RTN, то, что она можеть быть применима к большим грамматикам: для каждого нетерминала грамматике , добавляется не более одного нового нетерминала в и размер результирующий грамматики максимум в раза больше, чем размер исходной. Так как для RTN апроксимации грамматики , количество состаяний апроксимируещего автомата в худшем случаи может составлять , что может быть критично для аппроксимации больших грамматик.
Также,еще несколько эффекивных методов аппрокимации можно найти в статьях, приведенных в ссылках.
Источники информации
- Jean-Claude Junqua,Gertjan van Noord — Robustness in Language and Speech Technology — Kluwer Academic Publishers, 2001 — ISBN 0-7923-6790-1
- Strongly Regular Grammars and Regular Approximation of Contex-Free Languages
- Willem J. M. Levelt — An Introduction to the Theory of Formal Languages and Automata — John Benjamin B.V., 2008 — ISBN 978-90-272-3250-2