Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
UchebnoePosobie.doc
Скачиваний:
74
Добавлен:
11.11.2019
Размер:
6.36 Mб
Скачать

6.1.1. Типы конечных автоматов

По способу формирования функций выхода выделяют автоматы Мили и Мура.

В автомате Мили функция выходов  определяет значение выходного символа по классической схеме абстрактного автомата. Математическая модель, схема рекуррентных соотношений и функциональная схема автомата Мили не отличаются от одноименных модели, соотношений и схемы абстрактного автомата, т.е.

В автомате Мура функция  определяет значение выходного символа только по одному аргументу - состоянию автомата. Символ y[] в выходном канале существует пока автомат находится в состоянии q[].

Математическая модель, схема рекуррентных соотношений и функциональная схема автомата Мура имеют вид:

Объединение автоматов Мили и Мура представляет С-автомат:

Математические модели, опирающиеся только на два носителя алгебры, представляют особые классы автоматов.

Если X=, то математическая модель и система рекуррентных соотношений абстрактного автомата имеют вид:

Особенностью такого автомата является генерация последовательности символов выходного слова только в зависимости от одного аргумента - состояний автомата. Такие автоматы называют порождающими или автономными. С помощью такого автомата генерируется последовательность управляющих команд.

Если Y=, то математическая модель и система рекуррентных соотношений имеют вид:

q[+1] =(q[];x[]);

Особенностью такого автомата является распознавание в последовательности изменений аргументов функции переходов

(qi[]; xi[]) и перевод автомата в заключительное состояние qk.

С помощью такого автомата обнаруживают возмущения со стороны внешней среды или распознают последовательность входных символов. Поэтому такие автоматы называют распознающими.

Если Q=, то математическая модель и система рекуррентных соотношений имеют вид:

y[] = (x[]).

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

6.1.2. Описание автоматов

Автоматы удобно описывать таблицами, отражающими функции:

: (QX)Q (см. таблицу 6.1),

: (QX)Y (см. таблицу 6.2).

. таблица 6.1 таблица 6.2

Детерминированный автомат

: (QX)Q

Детерминированный автомат

: (QX)Y

qiQ

xiX

qiQ

xiX

x1

x2

xn

x1

x2

xn

q1

q

q

q1

y

y

y

q2

q

q

q2

y

y

y

qm

q

q

q

qm

y

y

y

Обычно эти таблицы совмещают в одну, которая раскрывает оператор поведения  : (QX)(QY). В позициях таблицы 6.3 записывают пары (q[+1]; y[]) для автомата Мили, а позициях таблицы 6.4 только символы состояния.для каждого входного символа

Таблица 6.3.

Таблица 6.4.

Детерминированный автомат

, (QX)(QY)

Детерминированный автомат

: (QX)Q

qQ

xiX

qQ

xiX

yY

x1

x2

xn

x1

x2

xn

q1

q; y

q; y

q; y

q1

q

q

q

y1

q2

q; y

q; y

q; y

q2

q

q

q

y2

qm

q; y

q; y

q; y

qm

q

q

q

ym

Таблицы абстрактного автомата совпадают с таблицами автомата Мили. Поэтому таблица 6.3 описывает поведение автомата Мили. Таблица автомата Мура (см. таблицу 6.4) несколько отличается от таблицы автомата Мили, так как : QY. Значение выходного символа приписывают, как метку, состоянию автомата.

Описание С-автомата есть объединение таблиц 6.3 и 6.4. Так как в таблицах 6.3 и 6.4 определены все позиции, то такими таблицами дано описание детерминированных автоматов.

В практике часто функции переходов и/или выходов не определены для некоторых символов входного алфавита. В этом случае говорят, что автомат недетерминированный или частично определенный. При описании таких автоматов неопределенные позиции таблиц помечаются символом "". Например, в таблицах 6.5, 6.6, 6.7 и 6.8 приведено описание недетерминированных автоматов.

Таблица 6.5.

Таблица 6.6.

Недетерминированный автомат

: (QX)Q

Недетерминированный автомат

: (QX)Y

qiQ

xiX

qiQ

xiX

x1

x2

xn

x1

x2

xn

q1

q

*

q

q1

y

*

y

q2

q

q

*

q2

*

y

y

qm

*

q

q

qm

*

y

*

Таблица 6.7.

Таблица 6.8.

Недетерминированный автомат Мили

, : (QX) (QY)

Недетерминированный автомат Мура

: (QX)Q; : QY

qiQ

x iX

qiQ

x iX

yiY

x1

x2

xn

x1

x2

xn

q1

q; y

*; *

q; y

q1

q

*

q

y1

q2

q; *

q; y

*; y

q2

q

q

*

*

qm

*; *

q; y

q; ­*

qm

*

q

q

ym

Поведение автомата удобно анализировать с помощью графов, вершинами которого являются элементы множества qQ. Тогда любая вершина-исток есть образ текущего состояния q[], а любая вершина-сток - образ очередного состояния q[+1]. Дуги отображают переход автомата из одного состояния в другое (q[];q[+1]) под воздействием x[]X. Для описания автомата с помощью графов удобно воспользоваться таблицами соединений состояний автомата. Строки и столбцы такой таблицы представляют символы qQ. Следовательно, число строк и столбцов таблицы равно m. Строки этой таблицы характеризуют текущее состояние, т.е. q[], а столбцы - очередное, т.е. q[+1].

Позиции таблицы заполняют значениями пары (x[]/y[]) для соответствующего перехода автомата из текущего состояния в очередное.

Таблицей 6.9 дано описание соединений состояний автомата Мили, а таблицей 6.10 - автомата Мура. Для автомата Мили на дугах графа указывают пару (входной символ / выходной символ). Для автомата Мура - только входной символ, так как выходной символ y, приписывают к вершине графа.

Таблица 6.9.

Таблица 6.10.

Соединение состояний автомата Мили

 : (QX) QY)

Соединение состояний автомата Мура

 (QX)  Q;  QY

qQ

очередное состояние qQ

qQ

очередное qQ

выход

yY

q1

q2

qm

q1

q2

qm

q1

x/y

x/y

x/y

q1

x

x

x

y1

q2

x/y

x/y

x/y

q2

x

x

x

y2

qm

x/y

x/y

x/y

qm

x

x

x

ym

При начертании графа детерминированного автомата следует соблюдать следующие условия:

  • для каждого символа xX есть дуга, исходящая из qQ;

  • каждый символ xX у каждой вершины-истока принадлежит только одной дуге;

  • если между двумя вершинами существует несколько дуг, что возможно при различных символах на входе, то есть xi xj, то эти дуги могут быть заменены одной дугой с указанием дизъюнктивной связи этих переходов (например, если yuyv, то на дуге следует указать (xi /yuxj /yv);.если yu=yv=y, то - (xixj) /y).

Пример: дана таблица поведения детерминированного автомата Мили.

Составить таблицу соединения состояний автомата и начертить граф. Найти генерируемые автоматом слова  для различных начальных состояний, если на входе автомата задано слово =(x1x2x3x4x4x3x2x1).

, : (QX) (QY)

qQ

xX

x1

x2

x3

x4

q1

q2; y1

q3; y1

q4; y1

q1; y3

q2

q3; y3

q4; y1

q1; y2

q2; y2

q3

q2; y1

q3; y2

q1; y1

q2; y3

q4

q4; y2

q1; y1

q2; y2

q1; y1

Таблица соединений автомата Мили

qQ

очередное состояние qQ

q1

q2

q3

q4

q1

x4/ y3

x1/ y1

x2/ y1

x3/ y1

q2

x3/ y2

x4/ y2

x1/ y3

x2/ y1

q3

x3/y1

(x1/y1)(x4/y3)

x2/y2

q4

(x2x4)/y1

x3/y2

x1/y2

В позициях таблицы значения (x/y), соответствуют переходу из состояния q[] в состояние q[+1].

  Граф детерминированного автомата Мили.

Следует обратить внимание, что переход из состояния q3 в q2 обусловлен двумя входными символами x1 и x4, а для каждой пары (q3; x1) и (q3; x4) автомат генерирует в выходном канале соответствующий символ y1 или y3. Поэтому на дуге (q3; q2) следует указать (x1/y1x4/y3). Переход из состояния q4 в q1 обусловлен также двумя входными символами x2 и x4, но автомат генерирует только один символ y1. Поэтому на дуге (q4;q1) следует указать (x2x4) /y1.

Для поиска слов  при различных начальных условиях необходимо проследить всю последовательность изменения состояний автомата:

пусть q1=q0, тогда

[]: x1[1] x2[2] x3[3] x4[4] x4[5] x3[6] x2[7] x1[8]

q[1]: q1[1] q2[2] q4[3] q2[4] q2[5] q2[6] q1[7] q3[8] q2[9]

[]: y1[1] y1[2] y2[3] y2[4] y2[5] y2[6] y1[7] y1[8],

то есть =(y1y1y2y2y2y2y1y1);

пусть q2=q0, тогда

[]: x1[1] x2[2] x3[3] x4[4] x4[5] x3[6] x2[7] x1[8]

q[1]: q2[1] q3[2] q3[3] q1[4] q1[5] q1[6] q4[7] q1[8] q2[9]

[]: y3[1] y2[2] y1[3] y3[4] y3[5] y1[6] y1[7] y1[8],

то есть =(y3y2y1y3y3y1y1y1);

Таким образом при различных начальных состояниях реакция автомата на одинаковые слова различна. Это подтверждает необходимость указания начального состояния qi=q0.

Пример: дана таблица поведения детерминированного автомата Мура. Составить таблицу соединения состояний автомата и начертить граф. Найти генерируемые автоматом слова  для различных начальных состояний, если на входе автомата задано слово =(x1x2x3x4x4x3x2x1).

: (QX)Q; QY

qQ

xX

выход

yY

x1

x2

x3

x4

q1

q2

q3

q4

q1

y1

q2

q3

q4

q1

q2

y3

q3

q2

q3

q1

q2

y2

q4

q4

q1

q2

q1

y1

Переход из состояния q3 в q2 обусловлен двумя входными символами x1 и x4. Поэтому на дуге (q3;q2) указать (x1x4). Переход из состояния q4 в q1 также обусловлен двумя символами x2 и x4. Поэтому на дуге (q4;q1) указать (x2x4).

Таблица соединений автомата Мура

qQ

очередное состояние qQ

выход

yY

q1

q2

q3

q4

q1

x4

x1

x2

x3

y1

q2

x3

x4

x1

x2

y3

q3

x3

(x1x4)

x2

y2

q4

(x2x4)

x3

x1

y1

Для поиска слов  при различных начальных условиях необходимо проследить всю последовательность изменения состояний автомата для каждого очередного символа слова :

пусть q1=q0, тогда

[]: x1[1] x2[2] x3[3] x4[4] x4[5] x3[6] x2[7] x1[8]

q[1]: q1[1] q2[2] q4[3] q2[4] q2[5] q2[6] q1[7] q3[8] q2[9]

[]: y1[1] y3[2] y1[3] y3[4] y3[5] y3[6] y1[7] y2[8],

то есть (y1y3y1y3y3y3y1y2);

пусть q2=q0, тогда

[]: x1[1] x2[2] x3[3] x4[4] x4[5] x3[6] x2[7] x1[8]

q[1]: q2[1] q3[2] q3[3] q1[4] q1[5] q1[6] q4[7] q1[8] q2[9]

[]: y3[1] y2[2] y2[3] y1[4] y1[5] y1[6] y1[7] y1[8],

то есть (y3y2y2y1y1y1y1y1).

Этот пример также подтверждает необходимость указания начального состояния q=q0.

Граф детерминированного автомата Мура.

Пример: дана таблица поведения недетерминированного автомата Мили. Составить таблицу соединений автомата и начертить граф. Найти генерируемые автоматом слова  для различных начальных состояний.

, : (QX) (QY)

qQ

xX

x1

x2

x3

x4

q1

q2; y1

q3; *

q4; y1

q1; y3

q2

*; y3

q4; y1

q1; y2

q2; *

q3

q2; y1

*; *

q1; y1

q2; y3

q4

q4; y2

q1; y1

q2; y2

*; y1

Таблица cоединений недетерминированного автомата Мили

qQ

очередное состояние qQ

q1

q2

q3

q4

q1

x4/y3

x1/y1

x2/*

x3/y1

q2

x3/y2

x4/*

x2/y1

q3

x3/y1

(x1/y1)(x4/y3)

q4

x2/y1

x3/y2

x1/y2

Граф недетерминированного автомата Мили.

Не определены переходы из состояния q2 для символа x1, из состояния q3 для x2 и из состояния q4 для x4 и значения символов на выходе для (q1, x2), для (q2, x4) и для (q3, x2).

Для поиска слов , генерируемых недетерминированным автоматом Мура также необходимо проследить последовательность изменения состояний автомата для каждого очередного символа слова.

пусть q1=q0 и = (x1x2x3x3x3x2x4x4), тогда

[]: x1[1] x2[2] x3[3] x3[4] x3[5] x2[6] x4[7] x4[8]

q[1]: q1[1] q2[2] q4[3] q2[4] q1[5] q4[6] q1[7] q1[8] q1[9]

[]: y1[1] y1[2] y2[3] y2[4] y1[5] y1[6] y3[7] y3[8],

то есть =(y1y1y2y2y1y1y3y3);

пусть q1=q0 и = (x2x2x3x4x4x3x2x1), тогда

[]: x2[1] x2[2] x3[3] …

q[1]: q1[1] q3[2] * …

[]: *[1] *[2] …,

то есть =(* * … и автомат "зависает" на третьем символе слова ;

пусть q1=q0 и = (x1x4x3x2x3x2x4x4), тогда

[]: x1[1] x4[2] x3[3] x2[4] x3[5] x2[6] x4[7] x4[8]

q[1]: q1[1] q2[2] q2[3] q1[4] q3[5] q1[6] q3[7] q2[8] q2[9]

[]: y1[1] *[2] y2[3] * [4] y1[5] * [6] y3[7] * [8],

то есть =(y1*y2*y1*y3*) содержит четыре символа "*";

Пример: дана таблица поведения недетерминированного автомата Мура. Составить таблицу соединений автомата и начертить граф. Найти генерируемые автоматом слова  для различных начальных состояний.

: (QX)Q;  QY

qQ

xX

yY

x1

x2

x3

xn

q1

q2

q3

q4

q1

y1

q2

*

q4

q1

q2

*

q3

q2

*

q1

q2

y2

qm

q4

q1

q2

*

y1

Таблица соединений автомата

qQ

qQ

yY

q1

q2

q3

q4

q1

x4

x1

x2

x3

y1

q2

x3

x4

*

x2

*

q3

x3

(x1x4)

*

y2

q4

x2

x3

x1

y1

Следует отметить, что не определены переходы из состояния q2 для входного символа x1, из состояния q3 для входного символа x2 и из состояния q4 для входного символа x4. Не определено также значение символа на выходе для состояния q2.

Для поиска слов  при различных начальных условиях необходимо проследить всю последовательность изменения состояний автомата для каждого очередного символа слова :

пусть q1=q0 и =(x2x3x2x3x3x1x2x4), тогда

[]: x2[1] x3[2] x2[3] x3[4] x3[5] x1[6] x2[7] x4[8]

q[1]: q1[1] q3[2] q1[3] q3[4] q1[5] q4[6] q4[7] q1[8] q1[9]

[]: y1[1] y2[2] y1[3] y2[4] y1[5] y1[6] y1[7] y1[8],

то есть =(y1y2y1y2y1y1y1y1);

пусть q2=q0 и =(x2x3x1x4x4x3x2x1), тогда

[]: x2[1] x3[2] x1[3] x4[4] …

q[1]: q2[1] q4[2] q2[3] [4] …

[]: 1] y1[2]  [3] …,

то есть =( y1 …) и автомат "зависает" на четвертом символе.

Граф недетерминированного автомата Мура

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]