Рис. 9.3: Автомат Мили, выполняющий сложение двоичных чисел.
Пример 9.2. Построим автомат Мили, вычисляющий сумму двух двоичных чи-
сел. Известно, что при выполнении сложения возникает единица переноса в следую-
щий разряд:
0 + 0 = 0; 1 переноса + 0 + 0 = 1;
0 + 1 = 1; 1 переноса + 0 + 1 = 0, 1 переноса;
1 + 0 = 1; 1 переноса + 1 + 0 = 0, 1 переноса;
1 + 1 = 0, 1 переноса; 1 переноса + 1 + 1 = 1, 1 переноса.
Входной символ такого автомата представляет собой пару двоичных разрядов пер-
вого и второго слагаемого: 00, 01, 10, 11. Будем рассматривать такую пару как один
символ входного алфавита. Автомат имеет два состояния. Одно из них должно со-
ответствовать переносу в следующий разряд, второе состояние означает отсутствие
переноса. Пусть это будут состояния q
1
и q
0
соответственно. Тогда автомат Мили,
выполняющий сложение, можно представить графом на рис. 9.3. Автомат должен
начинать работу из состояния q
0
, т.к. перед сложением единица переноса отсутству-
ет.
Итак, операцию сложения автомат Мили выполнить может, причем, никакого
ограничения на длину складываемых чисел не вводится. Покажем, что не существу-
ет конечного преобразователя, способного перемножать сколь угодно длинные дво-
ичные числа. Для такого доказательства достаточно привести пример двух чисел,
перемножить которые с помощью конечного автомата невозможно. Воспользуемся
методом доказательства от противного и предположим, что автомат A, умножаю-
щий сколь угодно большие числа, существует. Пусть автомат A имеет N состояний.
Возьмем некоторое целое число p > N и вычислим с помощью автомата A произве-
дение 2
p
· 2
p
. Автомат A начинает работу в некотором состоянии. В течение первых
2p тактов A должен выдавать в качестве выхода 0 независимо от того, в каком со-
стоянии он находится и получает ли он в качестве входа 00 или 11. На (2p + 1) –
ом такте должен быть определен старший разряд результата, равный единице. На
этом такте автомат A будет находиться в некотором состоянии q
i
, в котором он уже
был по меньшей мере один раз после того, как на такте p получил на вход 11. Это
следует, во–первых, из того, что вследствие неравенства p > N не все состояния, в
которых A находился после получения на вход 11, различны, а, во–вторых, из того,
что после входа 11 автомат A еще раз получил на вход 00 на такте с номером p + 1,
а затем получает этот же вход и на всех последующих тактах. Поэтому вход 00 на
(2p + 1) – ом шаге должен приводить к выходу 0, чего быть не должно.
Этот пример демонстрирует ограниченность возможностей автоматов Мили —
как мы уже отмечали ранее, отсутствие рабочей ленты у автомата существенно сни-
254