2014 dxdy logo

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

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


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему
 
 Иерархия Хомского: определения
Сообщение14.06.2016, 19:07 


30/08/10
159
Столкнулся с тем, что в разных пособиях определения грамматик 0, 1, 2 и 3 типов немного отличаются. Есть вариант определения, при котором эти множества грамматик (а также множества языков) не являются вложенными друг в друга, а это не очень красиво. В этом варианте мы определяем грамматику типа 1 как грамматику, в которой все правила имеют вид $\beta A \gamma\to\beta\alpha\gamma$, где$\beta$ и $\gamma$ - произвольные строки, $A$ - нетерминал, и $\alpha$ - непустая строка. Однако тогда все языки типа 1 не будут включать пустую строку. В то же время в грамматиках типа 2 и 3 разрешаются $\varepsilon$-правила, и тогда у нас будут грамматики типа 2 или 3, не являющиеся грамматиками типа 1.
Есть также вариант определения, при котором в грамматиках всех типов допускается $\varepsilon$ правило, но только вида $S \to\varepsilon$ (и при этом запрещается иметь в правой части правил $S$). Тогда вроде бы всё получается вложенно, и грамматики, и языки, но отсутствие возможности использовать произвольное $\varepsilon$-правило немного мешает.
Как лучше?

 Профиль  
                  
 
 Re: Иерархия Хомского: определения
Сообщение14.06.2016, 21:12 
Заслуженный участник


08/04/08
8562
Tookser в сообщении #1131591 писал(а):
В этом варианте мы определяем грамматику типа 1 как грамматику, в которой все правила имеют вид $\beta A \gamma\to\beta\alpha\gamma$, где$\beta$ и $\gamma$ - произвольные строки, $A$ - нетерминал, и $\alpha$ - непустая строка. Однако тогда все языки типа 1 не будут включать пустую строку.
А почему это?
Разве правило $A\to\varepsilon$ не имеет вида $\beta A \gamma\to\beta\alpha\gamma$?

 Профиль  
                  
 
 Re: Иерархия Хомского: определения
Сообщение14.06.2016, 21:17 


30/08/10
159
Sonic86, $\alpha$ - непустая строка.

 Профиль  
                  
 
 Re: Иерархия Хомского: определения
Сообщение14.06.2016, 21:19 
Заслуженный участник


08/04/08
8562
Tookser в сообщении #1131618 писал(а):
Sonic86, $\alpha$ - непустая строка.
С чего вдруг?

Чего-то я не могу определение найти.

 Профиль  
                  
 
 Re: Иерархия Хомского: определения
Сообщение14.06.2016, 21:27 


30/08/10
159
Sonic86 в сообщении #1131619 писал(а):
Tookser в сообщении #1131618 писал(а):
Sonic86, $\alpha$ - непустая строка.
С чего вдруг?

Везде, где я видел определение грамматики типа 1, это указывалось.

 Профиль  
                  
 
 Re: Иерархия Хомского: определения
Сообщение14.06.2016, 21:31 
Заслуженный участник


08/04/08
8562
Tookser в сообщении #1131620 писал(а):
Везде, где я видел определение грамматики типа 1, это указывалось.
Скажите книжку. Я просто удивлен. Скорее всего это несущественная мелочь.
Нашел только тут: http://neerc.ifmo.ru/wiki/index.php?tit ... 0%B8%D0%BA
но это не книжка.

 Профиль  
                  
 
 Re: Иерархия Хомского: определения
Сообщение14.06.2016, 21:37 


30/08/10
159
Допустим, Волкова, Формальные грамматики и языки. Элементы теории трансляции. Второе издание. Или Пентус, Теория формальных языков.

 Профиль  
                  
 
 Re: Иерархия Хомского: определения
Сообщение14.06.2016, 21:58 
Заслуженный участник


08/04/08
8562
Да, действительно. Странно.
Конечно, чтобы хорошо понять вопрос, надо откопать все теоремы о КЗ-грамматиках, где этот пункт существенен.
А формально можно просто определить на каждый тип грамматики по 2 подтипа - $\varepsilon$-порождающие и непорождающие. Соответственно будет 2 иерархии вида $3\subset 2\subset 1\subset 0$.
Далее для каждой $\varepsilon$-непорождающей грамматики легко строится $\varepsilon$-порождающая добавлением одного нового нетерминала $S'$ с объявлением его начальным нетерминалом с 2-я новыми правилами $S'\to \varepsilon$ и $S'\to S$. А для каждой $\varepsilon$-порождающей грамматики нетрудно построить $\varepsilon$-непорождающую с помощью замены правила $\alpha A\beta \to \alpha \gamma\beta$ на 2 правила $\alpha A\beta \to \alpha \gamma\beta$ с $\gamma \neq \lambda$ и $\alpha A\beta \to \alpha \beta$, если такое возможно, и выкидыванием всех $\varepsilon$-продукций. Т.е. они эквивалентны с точностью до $\varepsilon$ и дальше можно выбрать нужный вариант и рассуждать.

Т.е. я думаю, что это просто некритично. Хотя я на самом деле не специалист :-)

 Профиль  
                  
 
 Re: Иерархия Хомского: определения
Сообщение14.06.2016, 23:23 


30/08/10
159
Может быть, проще отказаться от вложенности типов грамматик, добавив возможность правила $S \to\varepsilon$ в грамматике типа 1 (и при этом запретить иметь в правой части правил $S$). Тогда грамматики не вложены, но языки будут вложены. В английской вики вроде так (почти) сделано.
UPD:

(Оффтоп)

В статье про иерархию Хомского сделано как-то не так, в этой статье вроде всё так (эпсилон правила допущены в контекстно-свободных грамматиках), только ничего не сказано про регулярные грамматики, в них можно тоже допустить $\varepsilon$-правила.

 Профиль  
                  
 
 Re: Иерархия Хомского: определения
Сообщение15.06.2016, 11:09 
Заслуженный участник
Аватара пользователя


19/12/10
1546
Tookser в сообщении #1131591 писал(а):
В этом варианте мы определяем грамматику типа 1 как грамматику, в которой все правила имеют вид $\beta A \gamma\to\beta\alpha\gamma$, где$\beta$ и $\gamma$ - произвольные строки, $A$ - нетерминал, и $\alpha$ - непустая строка. Однако тогда все языки типа 1 не будут включать пустую строку.
Если у вас есть КЗ грамматика $G,$ то язык $L(G)\cup\{\varepsilon\}$ обычно считается КЗ. Для этого к грамматике $G$ добавляется нетерминал $S'$ и продукция $S'\rightarrow\varepsilon\mid S,$ где $S$ стартовый символ грамматики $G.$ В новой грамматике $G'$ стартовым символом полагают $S'.$

А чтобы грамматики, подобные $G',$ тоже считались КЗ, определение КЗ грамматики добавляют правилом: эпсилон продукция допустима только со стартовым символом при условии, что стартовый символ не входит в правую часть ни одной продукции.

-- 15 июн 2016, 11:11 --

Пардон, вы об этом уже написали в последнем посте. :oops:

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: Kira01


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group