Контексты и синтаксические моноиды — различия между версиями
Megabyte (обсуждение | вклад) м (\sum -> \Sigma) |
Megabyte (обсуждение | вклад) |
||
| Строка 40: | Строка 40: | ||
}} | }} | ||
| − | {{ | + | {{Лемма |
|statement= | |statement= | ||
Язык <tex>L</tex> {{---}} регулярный <tex>\Leftrightarrow</tex> множество <tex>\{C_L(y) \mid y \in \Sigma^*\}</tex> его двухсторонних контекстов конечно. | Язык <tex>L</tex> {{---}} регулярный <tex>\Leftrightarrow</tex> множество <tex>\{C_L(y) \mid y \in \Sigma^*\}</tex> его двухсторонних контекстов конечно. | ||
| Строка 51: | Строка 51: | ||
== Синтаксический моноид == | == Синтаксический моноид == | ||
| + | === Определение === | ||
{{Определение | {{Определение | ||
|definition= | |definition= | ||
| − | '''Синтаксическим моноидом''' (англ. ''syntactic monoid'') <tex>M(L)</tex> языка <tex>L</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>. |
}} | }} | ||
| + | === Применение === | ||
| + | Синтаксический моноид <tex>M(L)</tex> определён для любого <tex>L \in \Sigma^*</tex>, однако некоторые свойства языка можно определить по структуре его синтаксического моноида. Размер синтаксического моноида является мерой структурной сложности языка. | ||
| + | |||
{{Теорема | {{Теорема | ||
|statement= | |statement= | ||
| − | + | Язык <tex>L</tex> {{---}} регулярный <tex>\Leftrightarrow</tex> его синтаксический моноид <tex>M(L)</tex> конечен. | |
| − | |||
| − | |||
|proof= | |proof= | ||
| − | + | ||
| − | |||
}} | }} | ||
| − | + | {{Лемма | |
| + | |statement= | ||
| + | Пусть язык <tex>L</tex> распознается автоматом из <tex>n</tex> состояний. Тогда размер его синтаксического моноида <tex>M(L)</tex> не превосходит <tex>n^n</tex>. | ||
| + | |proof= | ||
| + | |||
| + | }} | ||
| + | === Пример === | ||
| + | Рассмотрим язык <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> состоит из двух элементов: множества слов чётной длины и множества слов нечётной длины. Нейтральным элементом в данном моноиде является множество слов чётной длины. | ||
| + | |||
| + | == Литература == | ||
| + | |||
| + | * ''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. | ||
[[Категория: Теория формальных языков]] | [[Категория: Теория формальных языков]] | ||
[[Категория: Автоматы и регулярные языки]] | [[Категория: Автоматы и регулярные языки]] | ||
Версия 20:32, 3 января 2014
Содержание
Контексты
Правый контекст
| Определение: |
| Правым контекстом (англ. right context) слова в языке называется множество . |
| Лемма: |
Язык — регулярный множество его правых контекстов конечно. |
| Доказательство: |
|
|
Левый контекст
| Определение: |
| Левым контекстом (англ. left context) слова в языке называется множество . |
| Лемма: |
Язык — регулярный множество его левых контекстов конечно. |
| Доказательство: |
| Поскольку множество регулярных языков замкнуто относительно операции разворота, то из того, что и аналогичного утверждения о правых контекстах получаем требуемое. |
Двухсторонний контекст
| Определение: |
| Двухсторонним контекстом (англ. two-sided context) слова в языке называется множество . |
| Лемма: |
Язык — регулярный множество его двухсторонних контекстов конечно. |
| Доказательство: |
|
|
Синтаксический моноид
Определение
| Определение: |
| Синтаксическим моноидом (англ. syntactic monoid) языка называется множество, состоящее из его классов эквивалентности , с введённым на нём операцией конкатенации , где . Нейтральным элементом в нём является . |
Применение
Синтаксический моноид определён для любого , однако некоторые свойства языка можно определить по структуре его синтаксического моноида. Размер синтаксического моноида является мерой структурной сложности языка.
| Теорема: |
Язык — регулярный его синтаксический моноид конечен. |
| Лемма: |
Пусть язык распознается автоматом из состояний. Тогда размер его синтаксического моноида не превосходит . |
Пример
Рассмотрим язык .
— это множество всех пар , таких что . Значит, состоит из двух элементов: множества слов чётной длины и множества слов нечётной длины. Нейтральным элементом в данном моноиде является множество слов чётной длины.
Литература
- 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.