Моделирование процессов обработки данных конечными автоматами

Важную роль в процессе обработки данных (поимо самих данных, подвергаемых обработке) играет активная составляющая процесса - некоторая сущность, выполняющая обработку. Таким обработчиком, или преобразователем данных, могут быть как люди, так и некоторые устройства. Важнейшие характеристики процесса обработки данных зависят от того, как функционирует преобразователь. Поэтому создание и исследование различных моделей обработки имеет важное теоретическое и практическое значение. Одной из таких моделей является понятие конечного автомата [32], [36]. Конечный автомат можно охарактеризовать как устройство, имеющее входной и выходной каналы; в процессе функционирования на каналы поступают дискретные порции данных (буквы алфавита). Автомат может находиться в одном из конечного числа внутренних состояний. По определенному закону (в зависимости от состояния автомата и входных данных) осуществляется преобразование входной порции данных в выходные данные и смена состояния автомата. Формально конечный автомат определяется следующим образом.

Определение. Конечным автоматом называется набор из пяти объектов Моделирование процессов обработки данных конечными автоматами - student2.ru , в котором:

· Моделирование процессов обработки данных конечными автоматами - student2.ru - входной алфавит;

· Моделирование процессов обработки данных конечными автоматами - student2.ru - выходной алфавит);

· Моделирование процессов обработки данных конечными автоматами - student2.ru - множество внутренних состояний автомата;

· Моделирование процессов обработки данных конечными автоматами - student2.ru - функция перехода в следующее состояние (переходная функция);

· Моделирование процессов обработки данных конечными автоматами - student2.ru - функция выхода (выходная функция).

Таким образом, конечный автомат математически описывается тремя множествами и двумя функциями. Функционирование автомата состоит в том, что он "считывает" последовательность входных символов ("программу") и затем "выпечатывает" последовательность выходных символов. Действие происходит последовательно. Конечный автомат, находящийся сначала во внутреннем состоянии Моделирование процессов обработки данных конечными автоматами - student2.ru , считывает первый входной символ Моделирование процессов обработки данных конечными автоматами - student2.ru . Функция Моделирование процессов обработки данных конечными автоматами - student2.ru принимает на паре Моделирование процессов обработки данных конечными автоматами - student2.ru значение Моделирование процессов обработки данных конечными автоматами - student2.ru , которое выпечатывается в качестве первого выходного символа. Функция Моделирование процессов обработки данных конечными автоматами - student2.ru принимает на паре Моделирование процессов обработки данных конечными автоматами - student2.ru значение Моделирование процессов обработки данных конечными автоматами - student2.ru , которое является следующим внутренним состоянием автомата. Затем автомат считывает новый входной символ, выпечатывает выходной, переходит в следующее состояние и т.д., пока не кончится программа.

На рис.8.1 дан удобный способ представления последовательных тактов работы автомата.

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

В нашем определении подразумевается, что функции Моделирование процессов обработки данных конечными автоматами - student2.ru и Моделирование процессов обработки данных конечными автоматами - student2.ru в описа-нии автомата Моделирование процессов обработки данных конечными автоматами - student2.ru всюду определены: каждый элемент Моделирование процессов обработки данных конечными автоматами - student2.ru задает их значения. Такое описание автомата является полным. Коль скоро задано начальное состояние такого автомата, он способен считывать любую программу и выдавать однозначно определенную цепочку символов. Иными словами, существует функция, которая ставит в соответствие любому начальному состоянию Моделирование процессов обработки данных конечными автоматами - student2.ru и любой последовательности входных символов вполне определенную последовательность выходных символов.

Моделирование процессов обработки данных конечными автоматами - student2.ru


Рис. 8.1.Конечный автомат

Пусть Моделирование процессов обработки данных конечными автоматами - student2.ru - полученный на вход автомата знак на Моделирование процессов обработки данных конечными автоматами - student2.ru -м шаге, Моделирование процессов обработки данных конечными автоматами - student2.ru - состояние, в котором находился автомат на Моделирование процессов обработки данных конечными автоматами - student2.ru -м шаге, а Моделирование процессов обработки данных конечными автоматами - student2.ru - знак, который вырабатывает автомат на Моделирование процессов обработки данных конечными автоматами - student2.ru -м шаге в качестве выходного значения. Работа автомата, то есть переход из состояния в состояние и появление выходных знаков, с использованием функций Моделирование процессов обработки данных конечными автоматами - student2.ru и Моделирование процессов обработки данных конечными автоматами - student2.ru может быть описано выражениями

Моделирование процессов обработки данных конечными автоматами - student2.ru ( 8.1)
Моделирование процессов обработки данных конечными автоматами - student2.ru ( 8.2)

Поскольку множества Моделирование процессов обработки данных конечными автоматами - student2.ru и Моделирование процессов обработки данных конечными автоматами - student2.ru конечны, функции, заданные на их декартовом произведении Моделирование процессов обработки данных конечными автоматами - student2.ru , удобно задавать табличным способом. На рис.8.2 показан общий вид таблиц, задающих переходную функцию Моделирование процессов обработки данных конечными автоматами - student2.ru и выходную функцию Моделирование процессов обработки данных конечными автоматами - student2.ru конечного автомата.

Рассмотрим пример конечного автомата, у которого Моделирование процессов обработки данных конечными автоматами - student2.ru , имеется два состояния Моделирование процессов обработки данных конечными автоматами - student2.ru , а функции Моделирование процессов обработки данных конечными автоматами - student2.ru и Моделирование процессов обработки данных конечными автоматами - student2.ru задаются таблицами

Моделирование процессов обработки данных конечными автоматами - student2.ru
Моделирование процессов обработки данных конечными автоматами - student2.ru Моделирование процессов обработки данных конечными автоматами - student2.ru Моделирование процессов обработки данных конечными автоматами - student2.ru
Моделирование процессов обработки данных конечными автоматами - student2.ru Моделирование процессов обработки данных конечными автоматами - student2.ru Моделирование процессов обработки данных конечными автоматами - student2.ru
Моделирование процессов обработки данных конечными автоматами - student2.ru
Моделирование процессов обработки данных конечными автоматами - student2.ru
Моделирование процессов обработки данных конечными автоматами - student2.ru

Пусть на вход автомата подается последовательность знаков (слово) 1,0,0,1,1,0,1 или в более короткой записи 1001101. Проследим, как меняется состояние автомата в процессе обработки этого слова и какая после-довательность знаков формируется на выходе. Для этого рассмотрим таблицу, состоящую из трех строк. В первой строке записаны знаки, поступающие на вход автомата. Во второй строке записываются состояния, в которых оказывается автомат в процессе обработки входного слова. Наконец, в третьей строке записываются знаки, которые появляются на выходе автомата в результате его работы.

Моделирование процессов обработки данных конечными автоматами - student2.ru


Рис. 8.2.Табличное задание переходной и выходной функций

вход
состояния Моделирование процессов обработки данных конечными автоматами - student2.ru Моделирование процессов обработки данных конечными автоматами - student2.ru Моделирование процессов обработки данных конечными автоматами - student2.ru Моделирование процессов обработки данных конечными автоматами - student2.ru Моделирование процессов обработки данных конечными автоматами - student2.ru Моделирование процессов обработки данных конечными автоматами - student2.ru Моделирование процессов обработки данных конечными автоматами - student2.ru
выход

Обработка входной последовательности знаков производится по шагам. На каждом шаге обрабатывается один знак. В таблице каждому шагу обработки соответствует один столбец. Пусть в момент поступления первого знака, которым является 1, автомат находился в состоянии Моделирование процессов обработки данных конечными автоматами - student2.ru . Тогда в Моделирование процессов обработки данных конечными автоматами - student2.ru на выходе появится знак 0, а в соответствии с определением функции Моделирование процессов обработки данных конечными автоматами - student2.ru автомат перейдет в состояние Моделирование процессов обработки данных конечными автоматами - student2.ru , которое записывается во вторую строку следующего (второго) столбца таблицы. При поступлении второго знака обрабатываемого слова получим Моделирование процессов обработки данных конечными автоматами - student2.ru (записывается в третью строку второго столбца таблицы) и Моделирование процессов обработки данных конечными автоматами - student2.ru (записывается во вторую строку следующего (третьего) столбца таблицы). Процесс обработки следующих знаков происходит аналогичным образом и завершает-ся после обработки последнего знака. В результате исходное слово 1001101 преобразуется в слово 0100110, которое, как можно заметить, является "сдвигом" исходного слова, то есть получается удалением последнего знака из исходного слова и добавлением знака "0" в начало исходного слова.

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

Моделирование процессов обработки данных конечными автоматами - student2.ru


Рис. 8.3.Диаграмма состояний сдвигающего автомата

Диаграмма состояний рассмотренного автомата, сдвигающего вправо на один знак входное слово, показана на рис.8.3.

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

Пусть Моделирование процессов обработки данных конечными автоматами - student2.ru - некоторый автомат. Выделим одно состояние, которое назовем начальным и с которого будет начинаться обработка всех входящих слов. Тогда любой входной строке Моделирование процессов обработки данных конечными автоматами - student2.ru длины Моделирование процессов обработки данных конечными автоматами - student2.ru , где Моделирование процессов обработки данных конечными автоматами - student2.ru - знак на Моделирование процессов обработки данных конечными автоматами - student2.ru -м месте входной последовательности, однозначно соответствует строка внутренних состояний, Моделирование процессов обработки данных конечными автоматами - student2.ru , длины Моделирование процессов обработки данных конечными автоматами - student2.ru , где Моделирование процессов обработки данных конечными автоматами - student2.ru - состояние после Моделирование процессов обработки данных конечными автоматами - student2.ru -го шага работы, которая получается последовательным применением отображения Моделирование процессов обработки данных конечными автоматами - student2.ru по формуле (8.1). Аналогично выходная строка Моделирование процессов обработки данных конечными автоматами - student2.ru длины Моделирование процессов обработки данных конечными автоматами - student2.ru , где Моделирование процессов обработки данных конечными автоматами - student2.ru - знак на Моделирование процессов обработки данных конечными автоматами - student2.ru -м месте выходной последовательности, однозначно определится последовательным применением отображения Моделирование процессов обработки данных конечными автоматами - student2.ru по формуле (8.2).

Таким образом, автомат можно рассматривать как устройство, преобразующее для заданного начального состояния Моделирование процессов обработки данных конечными автоматами - student2.ru входную строку Моделирование процессов обработки данных конечными автоматами - student2.ru в строку Моделирование процессов обработки данных конечными автоматами - student2.ru и выходную строку Моделирование процессов обработки данных конечными автоматами - student2.ru и тем самым реализующее функции (преобразования) Моделирование процессов обработки данных конечными автоматами - student2.ru и Моделирование процессов обработки данных конечными автоматами - student2.ru , которые рекурсивно строятся по функциям Моделирование процессов обработки данных конечными автоматами - student2.ru и Моделирование процессов обработки данных конечными автоматами - student2.ru .

Наши рекомендации