Локальные автоматы
Известно, как по регулярному выражению построить автомат с
-переходами, но потом его нужно перобразовать к детерминированному конечному автомату (ДКА). Изучим, как по регулярному выражению сразу построить ДКА.Графы Майхилла
Определение: |
Граф Майхилла 1. Для каждой упорядоченной пары вершин и существует только одно ребро из в .2. Некоторые вершины обозначены начальными, а некоторые - конечными. Ребро может одновременно быть начальным и конечным. 3. Вершины обозначены различными символами из конечного алфавита , то есть мы можем обращаться к вершине по ее символу. | (над алфавитом ) (англ. Myhill graph) — ориентированный граф, удовлетворяющий свойствам:
Пусть — граф Майхилла над алфавитом .
Символ
из назовем разрешенным, если им помечена вершина, являющая одновременно начальной и конечной.Не пустая строка
из длиной не менее двух символов, называется разрешенной, если символом отмечена стартовая вершина, а символом — конечная, и для всех в существует ребро .Язык
, распознаваемый графом Майхилла, состоит из всех разрешенных строк из .Покажем, графы Майхилла могут быть представлены в виде автоматов. Пусть
— ДКА, не обязательно законченный.
Определение: |
Автомат | называется локальным (англ. local automation), если для любого из множество содержит не более одного элемента.
Определение: |
Автомат | называется стандартным локальным автоматом (англ. standard loal automation), если в нем нет перехода в начальное состояние.
Таким образом, автомат является локальным, если для каждого из нет переходов, отмеченных , или если все они в одно состояние.
Покажем, что граф Майхилла может быть преобразован в стандартный локальный автомат таким образом, что распознаваемый им язык не изменится.
Теорема: |
Язык распознается графом Майхилла тогда и только тогда, когда он распознается стандартным локальным автоматом, стартовое состояние которого не является терминальным. |
Доказательство: |
Пусть — граф Майхилла. Построим автомат следующим образом:
По построению стартовое состояние не является терминальным. Покажем, что полученный автомат конечен. Ребра, выходящие из стартового состояния обозначены различными символами, потому что они указывают на вершины, которые, по свойству 3, были отмечены различными символами в исходном автомате. Если мы рассмотрим любое другое состояние , то два перехода из могут иметь одинаковые метки только в том случае, если в оба ориентированных ребра идут в одну и ту же вершину. Но этого не может быть по свойтсву 1. То есть — ДКА, возможно, незаконченный. По построению он является стандартным локальным автоматом. Теперь просто проверить, что .
Пусть — стандартный локальный автомат, стартовое состояние которого не является терминальным. Построим по нему граф Майхилла следующим образом:
|