ФУНКЦИОНАЛЬНОЕ ОПИСАНИЕ АВТОМАТА
Баранов Виктор Павлович. Дискретная математика. Раздел 6. Конечные автоматы и формальные языки.
Лекция 29. Функциональное описание автомата. автоматы
Лекция 31. ФУНКЦИОНАЛЬНОЕ ОПИСАНИЕ АВТОМАТА
План лекции:
- Словарные операторы.
- Словарный оператор, реализуемый автоматом.
- Минимизация автомата.
Рассмотрим задачу анализа для конечного автомата, которая заключается в установлении функции, реализуемой данным автоматом. Далее мы используем «метод черного ящика», то есть будем рассматривать автомат как преобразователь входных слов в выходные и попытаемся установить какие именно преобразования при этом он выполняет.
- Словарные операторы
Рассмотрим конечный алфавит , составленный из букв :.
Элементы декартового произведения называют словами длины в алфавите : . При имеем пустое слово, которое обозначается . Множество всех слов в алфавите обозначается : .
Длину слова обозначим . Например, , .
Пусть и произвольные слова из алфавита . Приписывание слова к слову называется конкатенацией. Полученное при этом слово обозначается : .
Операция конкатенации обладает следующими свойствами:
а) ассоциативность: ;
б) существование нейтрального элемента: .
Очевидно, что эта операция некоммутативна.
Пусть и два алфавита, и соответствующие им множества слов. Отображение
называется словарным оператором.
Рассмотрим примеры словарных операторов для двоичных алфавитов .
Пример 1. Оператор сопоставляет каждому слову его первую букву:
.
Пример 2. Оператор производит в слове-аргументе замену каждого нуля на единицу и каждой единицы на нуль:
.
Пример 3. Оператор переписывает каждое слово слева направо:
.
Пример 4. Оператор определяется следующим образом:
,
где
,
,
…
.
- Словарный оператор, реализуемый автоматом
По определению автомата :
состояние автомата, в которое он переходит из состояния , когда на его вход поступает символ ;
символ на выходе автомата, находящегося в состоянии , в момент, когда на его вход поступает символ .
Обе функции определены на множестве . Расширим область определения до , полагая, что на вход поступает не символ , а слово .
Формальное определение функций и можно дать индуктивно по длине слова.
Базис индукции. Полагаем , .
Индуктивный переход. Предположим, что функции и определены для всех слов , длина которых не превосходит . Рассмотрим произвольное слово длины с первой буквой , то есть . Определим и :
, (1)
. (2)
Из формул (1) и (2) следует, что функции и полностью определяются функциями и , задающими закон функционирования автомата, и являются суперпозициями этих функций. Например, для слова из (1):
.
Из формул (1) и (2) :
,
.
Будем считать, что в момент автомат находится в состоянии , которое будем называть начальным.
Словарным оператором, реализуемым автоматом , называется отображение
,
определяемое следующим образом:
. (3)
Поставим вопрос: каждое ли преобразование слов можно реализовать на автомате? Формально нужно проверить выполнение условия: .
Оказывается, что для выполнения этого условия необходимо, чтобы словарный оператор обладал следующими тремя свойствами.
1. . Следует из (2) и (3).
2. , где . Словарный оператор должен отображать слова с общим началом в слова с общим началом.
Словарный оператор , обладающий свойствами 1 и 2, называется детерминированным.
3. Пусть детерминированный оператор, а некоторое слово.
Остаточным оператором оператора , порожденным словом , называется словарный оператор , действующий по правилу:
, если . (4)
Корректность этого определения вытекает из свойства 2. Правило (4) можно сформулировать так: чтобы найти образ слова при отображении , припишем к нему слева слово , найдем образ полученного слова при отображении и удалим в полученном слове букв.
Из определения (4) получим соотношение
. (5)
Действительно, из равенства по определению (4) следует
и .
При . Отсюда получаем (5).
Рассмотрим остаточный оператор для словарного оператора, реализуемого автоматом. Для множества слов, имеющих общее начало , имеем
.
Отсюда
.
Так как одно из состояний автомата , то
.
Таким образом, выход автомата, установленного в состояние , на вход которого подано слово . Так число состояний автомата конечно, то получаем свойство 3, согласно которому словарный оператор должен иметь конечное число остаточных операторов.
Словарный оператор, обладающий свойствами 13, называется ограниченно-детерминированным.
Мы доказали следующую теорему.
Теорема. Словарный оператор, реализуемый конечным автоматом, является ограниченно-детерминированным.
Справедлива и обратная теорема.
Теорема. Для каждого ограниченно-детерминированного словарного оператора существует реализующий его конечный автомат.
Доказательство. Пусть ограниченно-детерминированный словарный оператор. Обозначим через число различных остаточных операторов словарного оператора . Если , то множество всех остаточных операторов словарного оператора (). Поскольку каждый остаточный оператор порождается некоторым словом , разобьем множество всех слов на классов:
, (6)
где . Обозначим класс, в который входит слово через . Имеем
.
Разбиение (6) обладает следующим свойством
. (7)
Построим автомат , реализующий оператор .
Так , то , . В качестве состояний автомата возьмем классы разбиения (6):
. (8)
Функция переходов:
. (9)
Соотношение (9) можно по индукции распространить на слова:
. (10)
Функция выходов:
. (11)
Покажем индукцией по длине слова, что , то есть
. (12)
.
Пусть (12) справедливо для всех слов длины . Рассмотрим произвольное слово длины с последней буквой :
.
По предположению индукции . На основании (10) . Тогда
.
Теорема доказана.
- Минимизация автомата
Каждый остаточный оператор реализуется в некотором состоянии автомата. Отсюда следует, что у любого автомата , реализующего ограниченно-детерминированный оператор , число состояний не меньше числа различных остаточных операторов оператора :
. (13)
Автомат с наименьшим числом состояний, реализующий ограниченно-детерминированный оператор , называется минимальным автоматом оператора .
Построенный при доказательстве последней теоремы автомат минимальный.
Теорема. Минимальный автомат единственен с точностью до обозначения состояний.
Из теоремы следует признак минимальности автомата: автомат будет минимальным, если для любых двух его состояний и реализуемые в этих состояниях остаточные операторы различны.
Задача минимизации автомата: для данного автомата построить минимальный автомат, реализующий ограниченно-детерминированный оператор . Рассмотрим алгоритм ее решения.
Пусть . В процессе работы алгоритма строятся разбиения множества на непересекающиеся классы:
.
На очередном шаге алгоритма происходит измельчение предыдущего разбиения до тех пор, пока это возможно. Классы разбиения после завершения алгоритма будут состояниями минимального автомата.
1-й шаг. Состояния и отнесем к одному классу, если
.
Получим разбиение :
.
-й шаг. Пусть на -ом шаге получено разбиение :
.
Состояния и отнесем к одному классу нового разбиения, если выполнены два условия:
- и входят в один класс предыдущего разбиения ;
- для каждого символа состояния и входят в один класс предыдущего разбиения .
Обозначим через класс, в который входит состояние . Тогда условия 1) и 2):
- ;
- .
Алгоритм заканчивает работу, когда на некотором шаге не произойдет дальнейшего измельчения разбиения:. Последнее разбиение :
.
Тот факт, что алгоритм закончил работу можно выразить следующим образом:
.
Строим автомат :
, , , , .
Автомат реализует тот же словарный оператор, что и автомат , и является минимальным.
1
ФУНКЦИОНАЛЬНОЕ ОПИСАНИЕ АВТОМАТА