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

6.2. Способы задания конечного автомата

Чтобы задать конечный автомат S, необходимо описать все элементы множества S = {A, X, Y, d, l} , т.е. необходимо описать входной, выходной алфавиты и алфавит состояний, а также функции переходов d и выходов l. При этом среди множества A = {a0, a1, …, an} необходимо выделить начальное состояния a0, в котором автомат находится в момент времени t = 0. Существует несколько способов задания работы автомата, но наиболее часто используются табличный, графический, задание с помощью булевых функций.

1). Табличный способ. При этом способе автомат Мили описывается двумя таблицами: таблицей переходов и таблицей выходов.

Таблица переходов Таблица выходов

xj\aj

a0

an

x1

d(a0,x1)

d(an,x1)

xm

d(a0,xm)

d(an, xm)

xj\aj

a0

an

x1

l(a0, x1)

l(an, x1)

xm

l( a0, xm)

l(an, xm)

Строки этих таблиц соответствуют входным сигналам x(t), а столбцы – состояниям. На пересечении столбца ai и строки xj в таблице переходов ставится состояние as = d[ai, xj], в которое автомат перейдет из состояния ai под воздействием сигнала xj; а в таблице выходов – соответствующий этому переходу выходной сигнал yg = l[ai, xj].

Таблица 6.1

Совмещенная таблица переходов и выходов автомата Мили:

xj\ai

a0

an

x1

d(a0, x1)/ l(a0, x1)

d(an, x1)/ l(an, x1)

xm

d(a0, xm)/ l(a0, xm)

d(an, xm)/ l(an, xm)

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

2). Графический способ задания автомата (задание автомата с помощью графа) – этот способ основан на использовании ориентированных связных графов. Вершины графов соответствуют состояниям автомата, а дуги – переходам между ними. Две вершины графа ai и as соединяются дугой, направленной от ai к as, если в автомате имеется переход из ai в as, т.е. as = d(ai, xj). В автомате Мили дуга отмечается входным сигналом xj, вызвавшим переход, и выходным сигналом yg, который возникает при переходе. Внутри кружочка, обозначающего вершину графа, записывается состояние.

3). Задание с помощью булевых функций – если автомат задан табличной функцией или диаграммой Мура, то возможно задание автомата с помощью булевых функций. Алгоритм задания следующий:

a. Находим числа k, r, s, удовлетворяющие условиям:

2k-1 < m < 2k

2r-1 < n < 2r

2s-1 < p < 2s

где m = |X|, n = |A|, p = |Y| - число символов множеств.

При этом видно, что k, r, s равны числу разрядов, в двоичном представлении чисел m, n, p.

b. Кодируем входные и выходные символы исходного автомата:

Каждому ai Î А взаимно-однозначно ставим в соответствие двоичную последовательность длины r – двоичный код a (а) = a1a2..ar. Аналогично и для каждого x и y: b (x) = b1b2..bk, g (y) = g1g2…gs.

c. Составляем следующую таблицу:

Таблица 6.2

Код входного символа

Код текущего состояния

Код следующего состояния

Код выходного символа

b1

b2

bk

a1

a2

ar

d1

d2

dr

l1

l2

ls

0

0

0

0

0

0

0

0

b1

b2

bk

a1

a2

ar

a1

a2

ar

g1

g2

gs

1

1

1

1

1

1

1

1

Эта таблица содержит k + r + r + s столбцов и 2k+1 строк.

d. Заполнение последних столбцов в таблице: для каждой пары (xi, aj) по таблице автомата находим d(x, a) = a’ и l (x, a) = y. Затем находим код a (а) = a1’ a2’..a r’ и g(y) = g1g2…gs.