
Теория конечных автоматов Введение.
Теория конечных автоматов исследует тематические модели, приближенно отражающие физические или абстрактные явления, причем эти модели могут быть из области психологии, административного управления, связи, лингвистики, теории ЭВМ и т.д. С помощью конечных автоматов можно исследовать нервную систему животных или человека и проектировать ЭВМ.
Универсальная ЭВМ состоит из 5 устройств:
1) устройство ввода;
2) устройство памяти;
3) арифметическое устройство;
4) устройство управления;
5) устройство вывода.
Дискретный автомат будем трактовать как устройство (реальное или абстрактное) осуществляющее прием, хранение и преобразование дискретной информации по некоторому правилу (алгоритму). Примером автомата могут служить ЭВМ, математические абстрактные машины, аксиоматические теории и т.п.
Общую теорию автоматов подразделяют на абстрактную и структурную. Абстрактная теория, отвлекаясь от реальной структуры автомата, его элементной базы и способов построения, изучает только поведение автомата относительно поведения внешней среды. Тем самым можно говорить только о том, что абстрактная теория автоматов близка к теории алгоритмов. Структурная теория автоматов учитывает и интересуется как структурой самого автомата, так и структурой входных воздействий и реакции автомата на них. В структурной теории изучаются способы построения автоматов, способы кодирования входных воздействий и выходных сигналов (реакций).
Последовательность действий машины определяется программой, которая выполняется последовательно. Сама программа может предусматривать пропуск или повторение информации, хранящейся в памяти, т.е. от внутреннего состояния машины.
ЭВМ бывают цифровые
и аналоговые. Мы здесь рассматриваем
цифровые. Все сигналы в такой машине
двузначны, т. е. принимают значения из
множества
.
Материальные носители и преобразования сигналов – конечны. Множество состояний любой машины также конечно.
§1. Определение автомата Мили. Автомат Мура.
Определение:
Конечным
автоматом
называется набор из 5 объектов
,
где:
- входной алфавит;
выходной алфавит;
множество внутренних состояний;
функция перехода (в следующее
состояние);
функция выхода.
Таким образом,
конечный автомат описывается тремя
множествами и двумя функциями. Обе
функции зависят от текущего внутреннего
состояния и от входного символа,
считываемого в данный момент времени.
Автомат действует следующим образом.
Конечный автомат, находящийся во
внутреннем состоянии
,
считывает входной символ
.
Функция
принимает на паре
значение
- первый символ выхода. Функция
принимает на паре
значение
,
которое является следующим внутренним
состоянием.
Пусть входящие символы записаны на входной ленте: **********. Автомат считывает с нее символы один за другим. По прочтению каждого символа автомат печатает выходной символ на выходной ленте и переходит в новое внутреннее состояние.
В определении
подразумевается, что функции
и
в описании автомата М
всюду
определены, т.е. каждая пара из прямого
произведения
задает их значения. Такое описание
автомата является полным, т.е. если
задано начальное состояние автомата,
то он способен считывать любую
последовательность входных символов
и выдавать однозначно определенную
цепочку символов на выходе.
Конечный автомат
считается заданным, если заданы множества
(конечные), а также даны функции
или приведено их описание. Существует
три способа задания конечных автоматов:
таблица,
диаграмма и матрица переходов.
Пример 1. Конечный автомат задан следующим образом:
,
,
.
Значения функций заданы таблицей:
|
S0 0S1, |
|
(S0, 0)0, |
|
S0 S0, |
|
(S0, 1)1, |
|
S1, 0S2, |
|
(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.
Согласно условию,
алфавит на входе:
,
алфавит на выходе состоит из символов:
.
Множество внутренних состояний:
,
где содержание этих состояний следующее:
- считано четное число единиц;
- считано нечетное число единиц.
Анализируя работу автомата, можно составить таблицу:
Текущее состояние |
|
|
||||
0 |
1 |
Q |
0 |
1 |
Q |
|
S0
|
S0 |
S1 |
S0 |
0 |
1 |
чёт |
S1
|
S1 |
S0 |
S1 |
0 |
1 |
нечёт |
Считав символ Q, автомат печатает "чет", если число ранее считанных единиц было четно, и "нечет" - если нечетно. Например, входная последовательность символов имела вид: 0110Q1110Q. Она будет переработана в последовательность: 0110четн1110нечет.
Диаграмма для данного автомата может быть составлена с помощью построенной таблицы:
Любой конечный автомат Мили может быть преобразован в автомат, в котором выходной символ является функцией только состояния в настоящий момент.
Для этого полагают
- новый алфавит,
,
.
Отсюда получаем выражение для
:
или
.
Такой автомат называется автоматом Мура. Так как автоматы Мили и Мура можно преобразовать друг в друга, то обычно достаточно рассматривать автомат Мили, тем более что число состояний у него меньше, чем у соответствующего автомата Мура.