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

3.7. Графическое представление конечных автоматов

Определение. Пусть М = (Q,   q0, F) – недетерминированный конечный автомат. Диаграммой  переходов (графом переходов) автомата М называется неупорядоченный помеченный граф, вершины которого помечены именами состояний и в котором есть дуга (р, q), если существует такой символ а, что q (р, а). Кроме того, дуга (р,q) помечается списком, состоящим из таких а, что q (р, а). Изобразим автоматы из предыдущих примеров в виде графов (рис. 3.2 и 3.3)

Рис. 3.2. Пример детерминированного графа

Для дальнейшего анализа нам потребуется определение детерминированного автомата.

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

Пусть М = (Q,   q0, F) – недетерминированный конечный автомат. Назовём автомат М детерминированным, если множество (q, а) содержит не более одного состояния для любых qQ и а. Если (q,а) всегда содержит точно одно состояние, то автомат М назовём полностью определённым.

Рис. 3.3. Пример недетерминированного графа

Таким образом, наш пример – полностью определённый детерминированный конечный автомат, и в дальнейшем под конечным автоматом мы будем подразумевать полностью определённый конечный автомат.

Одним из важнейших результатов теории конечных автоматов является тот факт, что класс языков, определяемых недетерминированными конечными автоматами, совпадает с классом языков, определяемых детерминированными конечными автоматами.

Теорема.

Если L=L(M) для некоторого недетерминированного конечного автомата, то L=L(M') для некоторого конечного автомата М'.

Пусть М = (Q,   q0, F). Построим автомат М' = (Q',  ' q0', F') следующим образом:

  1. Q' = P(Q), т.е. состояниями автомата М' является множество состояний автомата М;

  2. q0'={q0};

  3. F' состоит из всех таких подмножеств S множества Q, что SF;

  4. (S, а) = S' для всех SQ, где S'={p | (q, а) содержит р для некоторого qS}.

Пример.

Построим конечный автомат М' = (Q,{1, 2, 3},', {q0}, F), допускающий язык L(M).

Так как М имеет 5 состояний, то в общем случае М' должен иметь 32 состояния. Однако, не все они достижимы из начального состояния. Состояние р называется достижимым, если существует такая цепочка w, что (q0, w)⊢(р, е), где q0 - начальное состояние. Мы будем строить только достижимые состояния (табл. 3.3).

Таблица 3.3 - Достижимые состояния автомата

Состояние

Вход

1

2

3

А = {q0}

В

С

D

В = {q0, q1}

Е

F

G

С = {q0, q2}

F

H

I

D = {q0, q3}

G

I

J

E = {q0, q1, qf}

E

F

G

F = {q0, q1, q2}

K

K

L

G = {q0, q1, q3}

M

L

M

Н = {q0, q2, qf}

F

H

I

I = {q0, q2, q3}

L

N

N

J = {q0, q3, qf}

G

I

J

К = {q0, q1, q2, qf}

К

К

L

L= {q0, q1, q2,q3}

Р

Р

Р

М = {q0, q1, q3, qf}

М

L

М

N = {q0, q2, q3, qf}

L

N

N

Р = {q0, q1,q2, q3, qf}

Р

Р

Р

Начнём с замечания, что состояние {q0} достижимо. ' ({q0}, а) = {q0, qа} для а = 1, 2, 3. Рассмотрим состояние {q0, q1}. Имеем ' ({q0, q1},1) = {q0, q1, qf}. Продолжая, по данной схеме, получаем, что множество состояний автомата М (М) достижимо тогда и только тогда, когда

  1. оно содержит q0 и

  2. если оно содержит qf, то содержит также и q1, q2 или q3.

Начальным состоянием автомата М является А, а множество заключительных состояний - {Е, Н, J, К, М, N, Р}.