Автомат Мура.

Определение автомата Мили.

 

Определение:Конечным автоматом называется набор из 5 объектов , где:

- входной алфавит;

­ выходной алфавит;

­ множество внутренних состояний;

­ функция перехода (в следующее состояние);

­ функция выхода.

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

Пусть входящие символы записаны на входной ленте: **********. Автомат считывает с нее символы один за другим. По прочтению каждого символа автомат печатает выходной символ на выходной ленте и переходит в новое внутреннее состояние.

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

Конечный автомат считается заданным, если заданы множества (конечные), а также даны функции или приведено их описание. Существует три способа задания конечных автоматов: таблица, диаграмма и матрица переходов.

Пример 1. Конечный автомат задан следующим образом:

, , , .

Значения функций заданы таблицей:

 

n: (S0, 0)®S1, x: (S0, 0)®0,
  (S0, 1)®S0,   (S0, 1)®1,
  (S1, 0)®S2,   (S1, 0)®1,
  (S1, 1)®S1,   (S1, 1)®0,
  (S2, 0)®S0,   (S2, 0)®1,
  (S2, 1)®S2,   (S2, 1)®0.

 

Пусть на входе дана двоичная последовательность 0101 и автомат находится в состоянии , тогда на выходе получаем последовательность: 0010.

Этот автомат можно наглядно представить в виде диаграммы, которая, по сути, является ориентированным графом.

 

 

 
 

 


Вершины этого графа помечены символами, обозначающими внутреннее состояние. Каждая дуга помечено парой символов (метка) , где - входной символ, вызывающий переход в следующее состояние, а - символ на выходе.

Второй способ описания автомата – таблица состояний. Этот способ часто приводится в виде условия задачи. Это просто табличное представление функций и :

Текущее состояние

 

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

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

Пример 2. По приведенному описанию построить конечный автомат. Задать его таблицей и диаграммой. Данный автомат проверяет четность числа считываемых единиц на входе из последовательности нулей и единиц, и выводит на печать символы чёт и нечёт в ответ на запрос, которому соответствует входной символ Q.

Согласно условию, алфавит на входе: , алфавит на выходе состоит из символов: . Множество внутренних состояний: , где содержание этих состояний следующее: - считано четное число единиц; - считано нечетное число единиц.

Анализируя работу автомата, можно составить таблицу:

 

Текущее состояние n x
Q Q
S0   S0 S1 S0 чёт
S1   S1 S0 S1 нечёт

 

Считав символ Q, автомат печатает "чет", если число ранее считанных единиц было четно, и "нечет" - если нечетно. Например, входная последовательность символов имела вид: 0110Q1110Q. Она будет переработана в последовательность: 0110четн1110нечет.

Диаграмма для данного автомата может быть составлена с помощью построенной таблицы:

 

 

 


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

Для этого полагают - новый алфавит, , . Отсюда получаем выражение для : или .

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