Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
96
Добавлен:
30.03.2015
Размер:
2.52 Mб
Скачать

5.2. Представление конечных автоматов

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

Если известны элементы множеств X, Y, Q, то характеристические функции δ и λ можно представить двумя таблицами, строки которых соответствуют внутренним состояниям автомата, а столбцы – входам. Пусть в ячейки первой таблицы записываются внутренние состояния автомата, qv+1, в которое автомат в данный тактовый момент τv переходит из состояния qv при воздействии входа xv. Эта таблица называется таблицей переходов (табл. 5.1) и соответствует, таким образом, функции переходов qv+1 = δ(qv, xv ). В ячейки второй таблицы заносятся значения выходов на данном тактовом моменте τv. Такая таблица называется таблицей выходов (табл. 5.2) и соответствует характеристической функции выходов yv= λ (qv, xv ). Примеры таких таблиц для некоего конечного автомата с заданным входным алфавитом X = {x0, x1, x2, x3}, выходным алфавитом Y = {y0, y1} и множеством внутренних состояний Q = {q0, q1, q2, q3} приведены ниже.

Таблица 5.1 Таблица 5.2

δ

x0

x1

x2

x3

λ

x0

x1

x2

x3

q0

q3

q2

q1

q3

q0

y0

y0

y0

y0

q1

q3

q2

q1

q3

q1

y1

y0

y0

y1

q2

q3

q2

q2

q3

q2

y1

y0

y1

y1

q3

q3

q0

q0

q1

q3

y0

y0

y1

y1

Обе таблицы можно объединить в одну общую таблицу переходов, если помещать в каждую ячейку и внутреннее состояние, и значение выхода, разделенные наклонной чертой (условимся в числителе записывать последующее внутреннее состояние автомата, а в знаменателе – его текущее значение выхода). Такая таблица для нашего автомата представлена табл. 5.3.

Таблица 5.3

δ

x0

x1

x2

x3

q0

q3/y0

q2/y0

q1/y0

q3/y0

q1

q3/y1

q2/y0

q1/y0

q3/y1

q2

q3/y1

q2/y0

q2/y1

q3/y1

q3

q3/y0

q0/y0

q0/y1

q1/y1

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

Таблица 5.4

δ

0

1

2

3

0

3/0

2/0

1/0

3/0

1

3/1

2/0

1/0

3/1

2

3/1

2/0

2/1

3/1

3

3/0

0/0

0/1

1/1

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

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

На рис. 5.2 показан граф, построенный в соответствии с приведенной выше таблицей переходов. Так если из состояния 0 автомат переходит в состояния 1, 2 и 3, то из вершины 0 графа исходят дуги в вершины 1, 2 и 3. При этом переход в состояние 1 совершается под воздействием входа 2 и ему соответствует выход 0, поэтому соответствующая дуга помечается как 2/0. Переход в состояние 2 совершается под воздействием входа 1 и ему соответствует выход 0, поэтому дуга из вершины 0 в 2 помечается как 1/0. Переходы в состояние 3 совершаются под воздействием входов 0 и 3 и им обоим соответствует выход 0, поэтому дуга из вершины 0 в 3 помечается как дизъюнкция 0/03/0. Аналогично определяются и другие дуги графа. Петли соответствуют переходам, при которых состояние автомата не меняется. Так, рассматриваемый автомат переходит из состояния 2 в 2 под воздействием входов 1 и 2 с выходами 0 и 1. Следовательно, петля при вершине 2 помечается как дизъюнкция 1/02/1. Рис. 5.2

Не всякий граф может быть автоматным. Для любого графа переходов в каждой вершине qi должны выполняться следующие условия, которые называются условиями корректности или автоматности графа:

1. Не существует двух и более ребер с одинаковыми символами входного алфавита xj, выходящих из одной вершины qi (условие непротиворечивости или однозначности);

2. Для любой входной буквы xj имеется ребро, выходящее из вершины qi, которое помечено символом xj (условие полноты).

Конечные автоматы, естественно, задаются конечными графами, а бесконечные – бесконечными. Пример: рассмотрим (рис. 5.3) бесконечное бинарное дерево, переводящее входную последовательность из нулей и единиц в выходную. Дерево имеет два типа вершин – 0 и 1, а каждое ребро помечено символами входа и выхода. Стрелки указывают на возможное продолжение ветвей. Жирной линией выделена входная последовательность x = 1010, которая преобразуется в выходную y = 1100.

Рис. 5.4

Рис. 5.3

Таким бесконечным бинарным деревом задается автомат А, который в зависимости от входного символа может иметь одно из двух состояний 0 или 1. Пусть начальное состояние q0 = 0. Если на входе автомата будет x = 0, то следующее состояние автомата будет эквивалентно предыдущему, т.е. q1 = 0, а на выходе будет y = 0. Если же на входе x = 1, то автомат переходит в состояние q2 = 1, а на выходе будет y = 1. Далее, находясь, например, в состоянии q2, автомат ведет себя следующим образом: если x = 0, то y = 1; если x = 1, то y = 0. Иными словами, при наличии на входе нуля (x = 0), состояние выходов не меняется, а при x = 1 состояние выходов меняется на противоположное.

Этот же автомат можно задать с помощью сильно связанного орграфа (рис. 5.4) – графа, по которому автомат может перейти из любого состояния в любое другое, минуя промежуточные. Ребра такого графа показывают переходы из одного состояния автомата в другое, с соответствующим формированием выходов, а петли – сохранение предыдущего состояния и выхода.

Автомат можно задать с помощью общей таблицы переходов, расположив по вертикали внутренние состояния автомата, а по горизонтали – символы входов (табл. 5.5).

Наконец, автомат можно задать в аналитической форме двумя функциями: функцией переходов qv+1 = δ (qv, xv ) и функцией выходов yv= λ (qv, xv ). Для нашего случая конкретный вид этих функций будет очень прост – сложение аргументов по М2 (функция неравнозначности):

qv+1 = qv xv ; yv= qv xv.

Анализируемый автомат обладает замечательным свойством: он реагирует на четность поданных на его вход единиц. Допустим, в качестве начального состояния будет q0 = 0, а на вход x подается бесконечная последовательность из 0 и 1 (табл. 5.6). Тогда нечетное количество единиц на входе автомата А будет отмечаться единицами на выходе y0. Если же в качестве начального состояния выберем q1 = 1, то нечетное число единиц на входе x будет отмечаться нулями на выходе y1.

Таблица 5.5 Таблица 5.6

q x

0

1

x

0 0 1 1 0 1 0 0 0 1 0 1 1 ...

0

0/0

1/1

y0

0 0 1 0 0 1 1 1 1 0 0 1 0 ...

1

1/1

0/0

y1

1 1 0 1 1 0 0 0 0 1 1 0 1 ...

Рассмотрим еще один пример автомата. Пусть функция переходов принимает значение входного символа (qv+1 = xv), а функция выходов – значение состояния (yv= qv). Общая таблица переходов такого автомата представлена таблицей 5.7, а формирование выходной последовательности при различных начальных состояниях автомата в зависимости от входной последовательности показана в таблице 5.8.

Таблица 5.7 Таблица 5.8

q x

0

1

x

0 0 1 1 0 1 0 0 0 1 0 1 1 ...

0

0/0

1/0

y0

0 0 0 1 1 0 1 0 0 0 1 0 1 ...

1

0/1

1/1

y1

1 0 0 1 1 0 1 0 0 0 1 0 1 ...

Из табл. 5.8 видно, что автомат на выходе независимо от своего начального состояния просто сдвигает все входные символы на одну позицию вправо. Такой автомат называют автоматом задержки на один такт. Орграф его представлен на рис. 5.5. Как видно по изображению орграфа автомата задержки, он обладает элементарной группой симметрии относительно перестановки состояний, а также входных и выходных символов 0 и 1.

Рис. 5.5 Рис. 5.6

Можно построить автомат задержки на два такта. Его орграф также будет обладать свойствами симметрии, хотя число его состояний возрастет до 4, а число дуг – до 8 (рис. 5.6).