Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТЯП, ТВП / ТЯПМТ / Пособие.doc
Скачиваний:
161
Добавлен:
11.05.2015
Размер:
2.37 Mб
Скачать

3.6. Регулярные множества и конечные автоматы

Ещё одним удобным способом определения регулярных множеств являются конечные автоматы.

Качественное описание конечных автоматов мы сделали в разделе 3.4. Теперь дадим их математическую формулировку.

Определение. Недетерминированный конечный автомат – это пятёрка М = (Q,   q0, F),

где Q – конечное множество состояний;

 - конечное множество допустимых входных символов;

 - отображение множества Q во множество Р(Q), определяющее поведение управляющего устройства, его обычно называют функцией переходов;

q0Q - начальное состояние управляющего устройства;

FQ - множество заключительных состояний.

Работа конечного автомата представляет собой некоторую последовательность шагов (тактов). Такт определяется текущим состоянием управляющего устройства и входным символом, обозреваемым в настоящий момент входной головкой. Сам шаг состоит из изменения состояния и сдвига входной головки на одну ячейку вправо. Для того чтобы определить будущее поведение конечного автомата, нужно знать:

  1. текущее состояние управляющего устройства;

  2. цепочку символов на входной ленте, состоящую из символа под головкой и всех символов, расположенных вправо от него.

Эти два элемента информации дают мгновенное описание конечного автомата, которое называется конфигурацией.

Определение.

Если М = (Q,   q0, F) – конечный автомат, то пара (qw)Q называется конфигурацией автомата М.

Конфигурация (qw) называется начальной, а пара (q, е), где qF, называется заключительной.

Такт автомата М представляется бинарным отношением ⊢М, определённым на конфигурациях. Это говорит о том, что, если М находится в состоянии q и входная головка обозревает символ а, то автомат М может делать такт, за который он переходит в состояние q и сдвигает головку на одну ячейку вправо. Так как автомат М, вообще говоря, недетерминирован, могут быть и другие состояния, отличные от q, в он может перейти за один шаг.

Запись С⊢М0С' означает, что С=С', а С0МкСk (для к1) – что существует конфигурация С1,… Ск-1, такая что СiМСi+1 для всех 0ik. С⊢М+С' означает, что С⊢МкС' для некоторого к0. Таким образом, отношения ⊢М+ и ⊢М* являются транзитивным и рефлексивно-транзитивным замыканием отношения ⊢М.

Говорят, что М допускает цепочку w, если (q,w) ⊢* (q, e) для некоторого qF.

Языком, определяемым автоматом М (L(M)), называется множество входных цепочек, допускаемых автоматом М, т.е.

L(M)={w | w и (q, w) ⊢* (q, e) для некоторого qF}.

Пример 1:

Пусть М = ({p, q, r}, {0, 1}, , p, {r}) конечный автомат, где  задаётся в виде таблицы 3.1.

Таблица 3.1 – Таблица состояний конечного автомата

Вход

0

1

Состояние p

{q}

{p}

Q

{r}

{p}

R

{r}

{r}

М допускает все цепочки нулей и единиц, содержащих два стоящих рядом 0. Начальное состояние р можно интерпретировать как «два стоящих рядом нуля ещё не появились и предыдущий символ не был нулём». Состояние q означает, что «два стоящих рядом нуля ещё не появились, но предыдущий символ был нулём». Состояние r означает, что «два стоящих рядом нуля уже появились», т.е. попав в состояние r автомат остаётся в этом состоянии.

Для входа 01001 единственной возможной последовательностью конфигураций, начинающейся конфигурацией (р, 01001), будет

(р, 01001) ⊢ (q, 1001)

⊢(p,001)

⊢(q,01)

⊢ (r,1)

⊢(r, е).

Таким образом 01001L(M).

Пример 2.

Построим недетерминированный конечный автомат, допускающий цепочки алфавита , у которого последний символ цепочки уже появлялся раньше. Иными словами 121 допускается, а 31312 – нет. Введем состояние q0, смысл которого в том, что автомат в этом состоянии не пытается ничего распознать (начальное состояние). Введем состояния q1, q2 и q3, смысл которых в том, что они «делают предположение» о том, что последний символ цепочки совпадает с индексом состояния. Кроме того, пусть будет одно заключительное состояние qf. Находясь в состоянии q0, автомат может остаться в нем или перейти в состояние qа, если а – очередной символ (табл. 3.2). Находясь в состоянии qа автомат может перейти в состояние qf , если видит символ а.

Таблица 3.2 – Таблица состояний конечного автомата

Вход

1

2

3

Состояние q0

q1

q2

q3

qf

{q0, q1}

{q1, qf }

{q2}

{q3}

{q0, q2}

{q1}

{q2, qf }

{q3}

{q0, q3}

{q1}

{q2}

{q3, qf }

Формально автомат М определяется как пятерка

Часто удобно графическое представление конечного автомата.