Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Дискр.мат- 2014 / Теория автоматов.doc
Скачиваний:
281
Добавлен:
13.03.2016
Размер:
373.25 Кб
Скачать

4. Канонические уравнения автомата

Если в момент времени t=1, 2, ... на вход автомата А=(X, Q, Y, , ) последовательно подаются входные символы x(t)X и при этом автомат находится в состоянии q(t)Q, то под воздействием символа x(t) автомат перейдет в новое состояние q(t+1)Q и выдаст выходной сигнал y(t).

Величины x(t), y(t), q(t), q(t+1) связаны между собой следующими уравнениями:

t=1, 2, …, n, …

Эти уравнения называются каноническими уравнениями автомата А. При задании автомата системой булевых функций эти уравнения запи­сываются в координатной форме:

z1(t+1)=1(x1(t), …, xk(t), z1(t), …, zr(t))

zr(t+1)=r(x1(t), …, xk(t), z1(t), …, zr(t))

y1(t)=1(x1(t), …, xk(t), z1(t), …, zr(t))

ys(t)=s(x1(t), …, xk(t), z1(t), …, zr(t))

t=1, 2, …

Для построения канонических уравнений автомата A необходимо для данной булевой функции найти минимальную ДНФ (дизъюнктивную нормальную форму), которая, вообще говоря, определяется неоднозначно. Аналитический алгоритм построения этой ДНФ следующий:

1. Для данной функции f(x1, …, xn) строим свершенную конъюнктивную нормальную форму (СКНФ).

2. В построенной СКНФ раскрываем скобки, используя правило:

(АВ)(СD)=ACBCADВD.

3. Полученное выражение упрощаем, применяя тождества вида:

K1K2K1=K1, KK=K, K0=K, K=0,

K1=1, K1=K, KK=K, K=1.

В результате получим сокращенную ДНФ, являющуюся дизъюнкцией всех простых импликат данной функции f(x1, …, xn).

Для рассмотренных выше примеров автоматов канонические уравнения задаются следующими формулами:

пример 1: t=1, 2, …

пример 2: t=1, 2, …

пример 3: t=1, 2, …

пример 4: t=1, 2, …

В качестве иллюстрации изложенного выше алгоритма рассмотрим пример 3.

Таблица истинности системы булевых функций следующая:

x1

x2

z

0

0

0

0

0

0

0

1

1

1

0

1

0

1

1

0

1

1

1

1

1

0

0

1

1

1

0

1

1

1

1

1

0

0

0

1

1

1

1

1

1. Строим СКНФ функции (x1, x2, z). Так как эта функция задана набором своих значений =01111101, то ее СКНФ будет иметь вид (x1x2z)(z).

2. Раскрываем скобки: (x1x2z)(x1x2z)(x1x2z)z=

=x1x2zx1x2zx1zx2zzz.

Упрощаем последнее выражение:

0x2z0zx1zx2zz=

=x2x1z(x2)z(x1)z=x2x1z.

Таким образом, получим z(t+1)=(t)x2(t)x1(t)(t)z(t).

Аналогично строится функция y(t). При этом из таблицы истинности выписываем набор значений функции (x1, x2, z): =01111101, который совпадает с набором значений функции (x1, x2, z).