Локальные автоматы — различия между версиями
Строка 8: | Строка 8: | ||
3. Вершины обозначены различными символами из конечного алфавита <tex>\Sigma</tex>, то есть мы можем обращаться к вершине по ее символу. | 3. Вершины обозначены различными символами из конечного алфавита <tex>\Sigma</tex>, то есть мы можем обращаться к вершине по ее символу. | ||
}} | }} | ||
− | |||
− | |||
− | |||
− | |||
Пусть <tex>G</tex> {{---}} граф Майхилла над алфавитом <tex>\Sigma</tex>. | Пусть <tex>G</tex> {{---}} граф Майхилла над алфавитом <tex>\Sigma</tex>. | ||
Строка 20: | Строка 16: | ||
Язык <tex>L(G)</tex>, распознаваемый графом Майхилла, состоит из всех разрешенных строк из <tex>\Sigma^+</tex>. | Язык <tex>L(G)</tex>, распознаваемый графом Майхилла, состоит из всех разрешенных строк из <tex>\Sigma^+</tex>. | ||
− | |||
− | |||
− | |||
Покажем, графы Майхилла могут быть представлены в виде автоматов. | Покажем, графы Майхилла могут быть представлены в виде автоматов. | ||
Строка 72: | Строка 65: | ||
Назовем полученный граф <tex>G</tex> {{---}} он будет графом Майхилла по построению. Легко проверить, что <tex>L(G) = L(A)</tex>. | Назовем полученный граф <tex>G</tex> {{---}} он будет графом Майхилла по построению. Легко проверить, что <tex>L(G) = L(A)</tex>. | ||
}} | }} | ||
+ | |||
+ | ==Пример== | ||
+ | {| cellpadding="3" style="margin-left: auto; margin-right: auto;" | ||
+ | | [[Файл:Myhill2.png|300px|thumb|right|Рисунок 1]] | ||
+ | | [[Файл:Myhill3.png|200px|thumb|right|Рисунок 2]] | ||
+ | |} | ||
+ | |||
+ | Граф, изображенный на рисунке 1 может быть использован для распознавания строк над алфавитом <tex>\Sigma = \{a, b\}</tex>. По определению, язык, распознаваемый данным графом, состоит из непустых строк, начинающихся и заканчивающихся на <tex>a</tex>; он имеет вид: <tex>L = (a \Sigma^* \cap \Sigma^* a) \setminus \Sigma^* b^2 \Sigma^*</tex>. | ||
+ | |||
+ | Рассмотрим детерменированный конечный автомат, представленный на рисунке 2. | ||
+ | Не сложно проверить, что он распознает тот же язык, что и граф на рисунке 1. |
Версия 18:33, 2 января 2015
Определение: |
Граф Майхилла 1. Для каждой упорядоченной пары вершин и существует только одно ребро из в .2. Некоторые вершины обозначены начальными, а некоторые — конечными. Ребро может одновременно быть начальным и конечным. 3. Вершины обозначены различными символами из конечного алфавита , то есть мы можем обращаться к вершине по ее символу. | (над алфавитом ) (англ. Myhill graph) — ориентированный граф, удовлетворяющий свойствам:
Пусть — граф Майхилла над алфавитом .
Символ
назовем разрешенным, если им помечена вершина, являющая одновременно начальной и конечной.Не пустая строка
из длиной не менее двух символов, называется разрешенной, если символом отмечена стартовая вершина, а символом — конечная, и для всех в существует ребро .Язык
, распознаваемый графом Майхилла, состоит из всех разрешенных строк из .Покажем, графы Майхилла могут быть представлены в виде автоматов. Пусть
— ДКА.
Определение: |
Автомат | называется локальным (англ. local automation), если для любого из множество содержит не более одного элемента.
Определение: |
Автомат | называется стандартным локальным автоматом (англ. standard loal automation), если в нем нет перехода в начальное состояние.
Таким образом, автомат является локальным, если для каждого из нет переходов, отмеченных , или если все они ведут в одно состояние.
Покажем, что граф Майхилла может быть преобразован в стандартный локальный автомат таким образом, что распознаваемый им язык не изменится.
Пример
Граф, изображенный на рисунке 1 может быть использован для распознавания строк над алфавитом
. По определению, язык, распознаваемый данным графом, состоит из непустых строк, начинающихся и заканчивающихся на ; он имеет вид: .Рассмотрим детерменированный конечный автомат, представленный на рисунке 2. Не сложно проверить, что он распознает тот же язык, что и граф на рисунке 1.