Контексты и синтаксические моноиды — различия между версиями
Megabyte (обсуждение | вклад) |
Megabyte (обсуждение | вклад) |
||
| Строка 51: | Строка 51: | ||
== Синтаксический моноид == | == Синтаксический моноид == | ||
| − | === | + | === Определения === |
{{Определение | {{Определение | ||
|definition= | |definition= | ||
'''Синтаксическим моноидом''' (англ. ''syntactic monoid'') <tex>M(L)</tex> языка <tex>L</tex> называется множество, состоящее из его классов эквивалентности <tex>[[x]] = \{ y \in \Sigma^* \mid C_L(x) = C_L(y) \}</tex>, с введённым на нём операцией конкатенации <tex>\circ</tex>, где <tex>[[x]]\circ[[y]] = [[xy]]</tex>. Нейтральным элементом в нём является <tex>[[\varepsilon]]</tex>. | '''Синтаксическим моноидом''' (англ. ''syntactic monoid'') <tex>M(L)</tex> языка <tex>L</tex> называется множество, состоящее из его классов эквивалентности <tex>[[x]] = \{ y \in \Sigma^* \mid C_L(x) = C_L(y) \}</tex>, с введённым на нём операцией конкатенации <tex>\circ</tex>, где <tex>[[x]]\circ[[y]] = [[xy]]</tex>. Нейтральным элементом в нём является <tex>[[\varepsilon]]</tex>. | ||
| + | }} | ||
| + | {{Определение | ||
| + | |definition= | ||
| + | '''Групповой язык''' (англ. ''group language'') {{---}} это язык, синтаксический моноид которого является [[Группа|группой]]. | ||
}} | }} | ||
=== Применение === | === Применение === | ||
| Строка 72: | Строка 76: | ||
}} | }} | ||
| − | === | + | === Примеры === |
Рассмотрим язык <tex>L = \{\omega \mid |\omega|</tex> <tex>mod</tex> <tex>2 = 0 \}</tex>. | Рассмотрим язык <tex>L = \{\omega \mid |\omega|</tex> <tex>mod</tex> <tex>2 = 0 \}</tex>. | ||
| − | <br /><tex>\{\langle u, v \rangle \mid uxv \in L\}</tex> {{---}} это множество всех пар <tex>\langle u,v \rangle</tex>, таких что <tex>|u| + |v| = |x|</tex>. Значит, <tex>M(L)</tex> состоит из двух элементов: множества слов чётной длины и множества слов нечётной длины. Нейтральным элементом в данном моноиде является множество слов чётной длины. | + | <br /><tex>\{\langle u, v \rangle \mid uxv \in L\}</tex> {{---}} это множество всех пар <tex>\langle u,v \rangle</tex>, таких что <tex>|u| + |v| = |x|</tex> <tex>(mod</tex> <tex>2)</tex>. Значит, <tex>M(L)</tex> состоит из двух элементов: множества слов чётной длины и множества слов нечётной длины. Нейтральным элементом в данном моноиде является множество слов чётной длины. Оба элемента являются обратными самим себе, значит <tex>M(L)</tex> является группой, следовательно <tex>L</tex> {{---}} групповой язык. |
| − | == | + | == Ссылки == |
* ''Howard Straubing'' Finite automata, formal logic, and circuit complexity, 1994. ISBN 3-7643-3719-2. {{---}} C. 53. | * ''Howard Straubing'' Finite automata, formal logic, and circuit complexity, 1994. ISBN 3-7643-3719-2. {{---}} C. 53. | ||
* ''James A. Anderson'' Automata theory with modern applications, 2006. ISBN 0-521-61324-8. {{---}} С. 72. | * ''James A. Anderson'' Automata theory with modern applications, 2006. ISBN 0-521-61324-8. {{---}} С. 72. | ||
| + | * [http://en.wikipedia.org/wiki/Syntactic_monoid Syntactic monoid - Wikipedia] | ||
[[Категория: Теория формальных языков]] | [[Категория: Теория формальных языков]] | ||
[[Категория: Автоматы и регулярные языки]] | [[Категория: Автоматы и регулярные языки]] | ||
Версия 21:09, 3 января 2014
Содержание
Контексты
Правый контекст
| Определение: |
| Правым контекстом (англ. right context) слова в языке называется множество . |
| Лемма: |
Язык — регулярный множество его правых контекстов конечно. |
| Доказательство: |
|
|
Левый контекст
| Определение: |
| Левым контекстом (англ. left context) слова в языке называется множество . |
| Лемма: |
Язык — регулярный множество его левых контекстов конечно. |
| Доказательство: |
| Поскольку множество регулярных языков замкнуто относительно операции разворота, то из того, что и аналогичного утверждения о правых контекстах получаем требуемое. |
Двухсторонний контекст
| Определение: |
| Двухсторонним контекстом (англ. two-sided context) слова в языке называется множество . |
| Лемма: |
Язык — регулярный множество его двухсторонних контекстов конечно. |
| Доказательство: |
|
|
Синтаксический моноид
Определения
| Определение: |
| Синтаксическим моноидом (англ. syntactic monoid) языка называется множество, состоящее из его классов эквивалентности , с введённым на нём операцией конкатенации , где . Нейтральным элементом в нём является . |
| Определение: |
| Групповой язык (англ. group language) — это язык, синтаксический моноид которого является группой. |
Применение
Синтаксический моноид определён для любого , однако некоторые свойства языка можно определить по структуре его синтаксического моноида. Размер синтаксического моноида является мерой структурной сложности языка.
| Теорема: |
Язык — регулярный его синтаксический моноид конечен. |
| Лемма: |
Пусть язык распознается автоматом из состояний. Тогда размер его синтаксического моноида не превосходит . |
Примеры
Рассмотрим язык .
— это множество всех пар , таких что . Значит, состоит из двух элементов: множества слов чётной длины и множества слов нечётной длины. Нейтральным элементом в данном моноиде является множество слов чётной длины. Оба элемента являются обратными самим себе, значит является группой, следовательно — групповой язык.
Ссылки
- Howard Straubing Finite automata, formal logic, and circuit complexity, 1994. ISBN 3-7643-3719-2. — C. 53.
- James A. Anderson Automata theory with modern applications, 2006. ISBN 0-521-61324-8. — С. 72.
- Syntactic monoid - Wikipedia