Контексты и синтаксические моноиды — различия между версиями
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.