
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,
K0=K,
K=0,
K1=1,
K1=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=
=x1x2
z
x1
x2
z
x1zx2zzz.
Упрощаем последнее выражение:
0x2
z
0
zx1zx2zz=
=x2x1
z(
x2)z(
x1)z=
x2x1
z.
Таким
образом, получим z(t+1)=(t)x2(t)x1(t)
(t)z(t).
Аналогично
строится функция y(t).
При этом из таблицы истинности выписываем
набор значений функции (x1,
x2,
z):
=01111101,
который совпадает с набором значений
функции (x1,
x2,
z).