Контексты и синтаксические моноиды — различия между версиями
Megabyte (обсуждение | вклад) |
Megabyte (обсуждение | вклад) |
||
Строка 67: | Строка 67: | ||
Язык <tex>L</tex> {{---}} регулярный <tex>\Leftrightarrow</tex> его синтаксический моноид <tex>M(L)</tex> конечен. | Язык <tex>L</tex> {{---}} регулярный <tex>\Leftrightarrow</tex> его синтаксический моноид <tex>M(L)</tex> конечен. | ||
|proof= | |proof= | ||
− | + | Размер синтаксического моноида <tex>M(L)</tex> языка <tex>L</tex> равен количеству его различных двухсторонних контекстов <tex>C_L</tex>. Применяя лемму, доказанную ранее, получаем: | |
+ | Язык <tex>L</tex> {{---}} регулярный <tex>\Leftrightarrow</tex> множество <tex>\{C_L(y) \mid y \in \Sigma^*\}</tex> его двухсторонних контекстов конечно <tex>\Leftrightarrow</tex> его синтаксический моноид <tex>M(L)</tex> конечен. | ||
}} | }} | ||
{{Лемма | {{Лемма | ||
|statement= | |statement= | ||
− | Пусть язык <tex>L</tex> распознается | + | Пусть язык <tex>L</tex> распознается ДКА <tex>A = \langle \Sigma,Q,s,T,\delta \rangle</tex>. Тогда размер его синтаксического моноида <tex>M(L)</tex> не превосходит <tex>|Q|^{|Q|}</tex>. |
|proof= | |proof= | ||
− | + | Введём на <tex>\Sigma^*</tex> следующие отношение эквивалентности: | |
+ | <br /><tex>x \equiv y \Leftrightarrow [[x]] = [[y]]</tex> | ||
+ | <br /><tex>x \cong y \Leftrightarrow \forall q \in Q: q \cdot x = q \cdot y</tex> | ||
+ | <br />Оценим количество классов, на которые отношение <tex>\cong</tex> разбивает язык <tex>L</tex>. Сопоставим состояниям автомата <tex>A</tex> числа. Каждый класс эквивалентности можно закодировать вектором <tex>a</tex> из <tex>|Q|</tex> чисел, изменяющихся в диапазоне <tex>1..|Q|</tex>. Положим <tex>a[i] = num(q_i \cdot x)</tex>, где <tex>x</tex> - слово из кодируемого класса эквивалентности. Количество различных векторов данного вида - <tex>|Q|^{|Q|}</tex>, а количество классов эквивалентности не превосходит этого значения. | ||
+ | Если <tex>x \cong y</tex> и <tex>uxv \in L</tex>, то <tex>s \cdot (uyv) = ((s \cdot u) \cdot y) \cdot v = ((s \cdot u) \cdot x) \cdot v = s \cdot (uxv) \in T</tex>, то есть <tex>uyv \in L</tex>. Аналогично из <tex>uyv \in L</tex> следует <tex>uxv \in L</tex>. Значит, <tex>x \cong y \Rightarrow x \equiv y</tex>. Следовательно, размер синтаксического моноида не превосходит количества классов эквивалентности, порождаемых отношением <tex>\cong</tex>, которое в свою очередь не превосходит <tex>|Q|^{|Q|}</tex>. | ||
}} | }} | ||
=== Примеры === | === Примеры === | ||
Рассмотрим язык <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>(mod</tex> <tex>2)</tex>. Значит, <tex>M(L)</tex> состоит из двух элементов: множества слов чётной длины и множества слов нечётной длины. Нейтральным элементом в данном моноиде является множество слов чётной длины. Оба элемента являются обратными самим себе, значит <tex>M(L)</tex> является группой, следовательно <tex>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> {{---}} групповой язык. |
== Ссылки == | == Ссылки == |
Версия 23:57, 4 января 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