2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Помогите построить грамматику
Сообщение31.03.2014, 19:03 
Аватара пользователя
Нужно построить контекстную грамматику, задающую следующий язык: ${a^nb^nc^n}$
В учебнике приведено решение:
$I \rightarrow aBa;(1)

B \rightarrow aBCa;(2)

B \rightarrow  b;(3)

bC \rightarrow  BB;(4)

aC \rightarrow  Ca;(5)$

После применения $(1)$ получаем: $aBa$, после применяем $(3)$ получаем $aba$. Я привел последовательность действий, которая приводит к неверному слову, значит в учебнике ошибка или я сам где-то просмотрел? И если это так, то как построить верно?

 
 
 
 Re: Помогите построить грамматику
Сообщение31.03.2014, 21:27 
MestnyBomzh в сообщении #843759 писал(а):
После применения $(1)$ получаем: $aBa$, после применяем $(3)$ получаем $aba$. Я привел последовательность действий, которая приводит к неверному слову, значит в учебнике ошибка?
Ш. Холмс писал(а):
Элементарно, Ватсон
:D

MestnyBomzh в сообщении #843759 писал(а):
И если это так, то как построить верно?
Можно попытаться исправить 1-ю продукцию. Если не получится - подумать поглубже самостоятельно :-) Приведите попытки решения, короче.

 
 
 
 Re: Помогите построить грамматику
Сообщение01.04.2014, 09:43 
Аватара пользователя
Не стал разбираться, как исправить решение из учебника.

Вижу "алгоритм", который сначала (случайно) порождает кучу троек, а потом детерминировано упорядочивает буквы.
Вот первая часть -
1/ Ини => Лев+Род+Прав
2/ Род => Род+abc
3/ Род => Упор
Только эти два правила используют "оракула", остальные применяются однозначно.

Этот нетерминал Упор двигается направо.
Если встречает Прав, то уничтожает его и превращается в Кон - с целью добежать до Лев и закончить зачистку (правил не пишу - достаточно ясно).
4/ Упор+Прав=>Кон
5/ Упор+х+Прав=>Кон+х

Если встречает двубуквенный непорядок, то переставляет буквы и превращается в Влев, чтобы добежать до Лев и возродится. Т.е. 2 группы правил
Упор+ху => х+Упор+у (х<=у) и
Упор+ху => Влев+ух (х>у).

 
 
 
 Re: Помогите построить грамматику
Сообщение01.04.2014, 11:17 
Аватара пользователя
 !  nikvic, замечание за неоформление формул $\TeX$ом

 
 
 [ Сообщений: 4 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group