ОПРЕДЕЛЕНИЕ И СПОСОБЫ ЗАДАНИЯ КОНЕЧНОГО АВТОМАТА. ЗАДАЧА СИНТЕЗА. ЭЛЕМЕНТАРНЫЕ АВТОМАТЫ


Баранов Виктор Павлович. Дискретная математика. Раздел 6. Конечные автоматы и формальные языки.

Лекция 31. Определение и способы задания конечного автомата. Задача синтеза. Элементарные автоматы

Лекция 30. ОПРЕДЕЛЕНИЕ И СПОСОБЫ ЗАДАНИЯ КОНЕЧНОГО АВТОМАТА.

ЗАДАЧА СИНТЕЗА. ЭЛЕМЕНТАРНЫЕ АВТОМАТЫ

План лекции:

1. Определение конечного автомата.

2. Способы задания конечного автомата.

  1. Задача синтеза автоматов.
  2. Элементарные автоматы.
  3. Задача о полноте автоматного базиса.
  4. Канонический метод синтеза автомата.

  1. Определение конечного автомата

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

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

Во-вторых, предполагается, что время изменяется дискретно. Состояния входа и выхода соответствуют дискретной временной последовательности Поскольку момент времени однозначно определяется его индексом, то с целью упрощения будем считать, что время принимает значения 1, 2, …, , … Временной промежуток называется тактом.

Работа автомата представляется следующим образом.

На вход автомата поступают сигналы из входного алфавита , что приводит к появлению сигналов на выходе из входного алфавита . Зависимость выходной последовательности от входной зависит от внутреннего устройства автомата. Заметим, что в отличие от СФЭ, которые не обладают памятью, автомат представляет собой устройство с памятью, т. е. выход автомата определяется не только входом , но и предысторией . Учет предыстории осуществляется зависимостью выходного сигнала не только от входа, но и от текущего состояния, которое обозначим .

Дадим формальное определение автомата.

Конечным автоматом называют пятерку объектов

, (1)

где

– конечное множество, называемое входным алфавитом; – одно из возможных состояний входа;

– конечное множество, называемое выходным алфавитом; элементы этого множества определяют возможные состояния выхода;

– конечное множество, называемое алфавитом внутренних состояний;

– функция переходов автомата: ; эта функция каждой паре «вход-состояние» ставит в соответствие состояние;

– функция выходов автомата: ; эта функция каждой паре «вход-состояние» ставит в соответствие значение выхода.

Закон функционирования автомата: автомат изменяет свои состояния в соответствии с функцией и вырабатывает выходные сигналы в соответствии с функцией :

, ,

  1. Способы задания конечного автомата

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

Пример 1. Зададим автомат следующим образом: , , .Функцию определим с помощью таблицы переходов, а функцию – с помощью таблицы выходов.

Таблица 1. Таблица переходов Таблица 2. Таблица выходов

Вход

Состояние

Вход

Состояние

Если известна последовательность сигналов на входе автомата, то таблицами переходов и выходов однозначно определяется выходная последовательность.

2. Графический способ задания. Используется диаграмма переходов-выходов. Она представляет собой ориентированный мультиграф, в котором каждому внутреннему состоянию автомата соответствует вершина. Переходы автомата из состояния в состояние изображаются стрелками, на каждой из которых пишутся входной символ, вызывающий данный переход, и выходной символ, вырабатываемый автоматом.

| | |

| |

| |

|

Рис.1 Диаграмма переходов-выходов

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

Автомат находится в состоянии 1, если при сложении предыдущих разрядов возникает перенос, и в состоянии 0 – в противном случае. Диаграмма переходов-выходов показана на рис. 2.

00|0 11|1 01|0

01|1 10|0

10|1 00|1 11|1

Рис. 2

  1. Задача синтеза автоматов

По аналогии с задачей синтеза СФЭ можно поставить задачу синтеза для автоматов. Имеется неограниченный набор базисных автоматов . Требуется собрать автомат с наперед заданным функционированием. При этом задача синтеза сталкивается с определенными проблемами.

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

Чтобы преодолеть это препятствие, вводится понятие структурного автомата, в котором все алфавиты (входной, выходной и внутренних состояний) кодируются двоичными словами.

Пусть – конечное множество из элементов, а – множество двоичных слов длины , где . Произвольное инъективное отображение будем называть кодированием множества двоичными словами.

Произведем кодирование алфавитов для произвольного автомата :

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

(2)

Полученный после кодирования автомат называют структурным. Будем считать, что структурный автомат имеет двоичных входов, двоичных выходов, а внутреннее состояние автомата задается двоичным словом длины . На рис. 3 показан абстрактный автомат и соответствующий ему структурный автомат.

… …

Рис. 3

Переход к структурному автомату обеспечивает два важных для синтеза преимущества.

1. Совместимость входов и выходов, так как через них передается двоичная информация. Мы не будем давать общее определение схемы из структурных автоматов – оно аналогично СФЭ.

2. Запишем соотношения (2) в «координатах»:

(3)

Из (3) следует, что закон функционирования структурного автомата задается системой булевых функций.

  1. Элементарные автоматы

Выделим простейшие структурные автоматы и дадим им название.

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

Перейдем к автоматам с двумя состояниями. Пусть автомат имеет один двоичный вход и один двоичный выход , совпадающий с внутренним состоянием: :

Рис. 4.

Для задания автомата, показанного на рис. 4, достаточно задать только таблицу переходов:

Таблица 3

Вход

Состояние

0

1

0

*

*

1

*

*

Вместо звездочек нужно поставить 0 и 1. Это можно сделать 16 способами, однако, не все они приемлемы. Допустим, например, что в первом столбце таблицы 3 оба элементы нули. Такой автомат, оказавшись в состоянии 0, более из него не выйдет, то есть будет работать как функциональный элемент. Анализ аналогичный ситуаций показывает, что для того чтобы получился автомат, не сводящийся к автомату без памяти, надо потребовать, чтобы в каждом столбце таблицы 3 встречались и ноль и единица. Таких таблиц всего четыре.

Таблица 4 Таблица 5

Вход

Состояние

0

1

Вход

Состояние

0

0

0

0

1

1

1

1

0

0

1

1

1

0

Таблица 6 Таблица 7

Вход

Состояние

0

1

0

1

0

1

0

1

Вход

Состояние

0

1

0

1

1

1

0

0

Имеем только два простейших автомата, так как 7 получается из 4, а 6 из 5 путем инверсии внутренних состояний.

Автомат, задаваемый таблицей 4, называется задержкой или -триггером:

,

то есть этот автомат задерживает сигнал на один такт.

Автомат, задаваемый таблицей 5, называется триггером со счетным входом или -триггером. Состояние автомата меняется на противоположное, если на вход поступает 1, и остается без изменения, если на вход поступает 0:

.

Пусть в начальный момент времени -триггер находится в состоянии 0. Если в некоторый момент времени -триггер находится в состоянии 0, то это означает, что на вход автомата поступило четное число единиц. Если в состоянии 1, то – нечетное. Таким образом, -триггер считает количество единиц на входе, но так как он имеет всего два состояния, то и считает до двух.

При физической реализации триггеров используют два выхода: прямой и инверсный (рис. 5). Если поменять их местами, то из -триггера получится автомат, задаваемый таблицей 7, а из -триггера – автомат, задаваемый таблицей 6.

Рис. 5.

  1. Задача о полноте автоматного базиса

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

Усилия математиков для получения аналога теоремы Поста для автоматов не увенчались успехом. В 1964 г. М.И. Кратко доказал несуществование алгоритма для определения полноты системы . В этом случае представляют интерес варианты теоремы о полноте с дополнительными предположениями о системе . Рассмотрим наиболее популярный из них.

Теорема. Система автоматов , содержащая полный набор ФЭ и -триггер (или -триггер) является полной.

Доказательство. Рассмотрим произвольный автомат , заданный соотношениями (2), и опишем его схему из указанных автоматов, называемую канонической структурой (рис. 6).

Схема состоит из двух частей.

Рис. 6.

Левая половина называется запоминающей частью. Она состоит из триггеров, набор состояний которых образует состояние автомата: если в момент времени

, …, ,

то это означает, что автомат находится в состоянии .

Правая половина называется комбинационной частью и представляет СФЭ. Входы этой схемы:

  1. двоичное слово – входной сигнал автомата ;
  2. двоичное слово – текущее внутреннее состояние автомата .

Выходы:

  1. двоичное слово – выходной сигнал автомата , который реализуется по формулам (3);
  2. двоичное слово , которое поступает на входы триггеров в запоминающей части и управляет памятью автомата.

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

В каждый момент времени сигналы управления памятью должны переводить автомат из состояния в состояние . Для этого надо изменить состояние каждого триггера

, .

Используемые в канонической схеме -триггеры или -триггеры обладают следующим свойством: для любой пары состояний существует входной сигнал, переводящий автомат из состояния в состояние . Обозначим этот сигнал через . Для -триггера , так как состояние, в которое устанавливается -триггер, равно входному сигналу. Для -триггера : при на вход надо подать 0, чтобы состояние не изменилось; при – 1, чтобы триггер «перевернулся».

Итак, , или в векторной форме

.

Выразим из закона функционирования автомата (2). Тогда

.

Теорема доказана.

  1. Канонический метод синтеза автомата

Рассмотрим этот метод на конкретном примере.

Пример. На конвейере, по которому двигаются детали двух типов и , установлен автомат, задачей которого является такая сортировка деталей, чтобы после прохождения мимо автомата они образовывали группы . Неподходящую деталь автомат сталкивает с конвейера. Требуется построить схему такого автомата, используя -триггер и элементы «И», «ИЛИ», «НЕ».

Синтез автомата разбивается на следующие этапы.

1. Построение абстрактного автомата .

Входной алфавит – . Выходной алфавит – , где С – сталкивание детали, П – ее пропуск. Внутренние состояния автомата отражают его память о том, какую часть группы он уже сформировал: . По мере формирования группы автомат циклически перемещается по этим состояниям, не изменяя состояния при поступлении неподходящей детали. Диаграмма переходов-выходов показана на рис. 7.

| | |

| |

|

Рис. 7.

2. Кодирование алфавитов .

Один из возможных вариантов кодирования приведен в следующих таблицах.

Вход Выход Состояние

A

0

С

0

00

B

1

П

1

01

11

3. Построение канонической структуры автомата.

Каноническая структура разрабатываемого автомата показана на рис. 8.

Рис. 8.

Найдем зависимости выходов СФЭ , от переменных сначала в табличном виде (таблица 8), по которым далее построим формулы

, , .

Таблица 8

0

0

0

1

0

1

0

1

0

0

1

0

0

1

0

0

0

1

0

*

*

*

*

*

0

1

1

0

1

1

0

0

1

0

0

0

0

0

0

0

1

0

1

1

1

1

1

0

1

1

0

*

*

*

*

*

1

1

1

1

0

0

1

1

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

4. Представление функций выхода автомата и функций управления памятью формулами.

Используя методы минимизации булевых функций, строим по возможности экономное представление функций , , формулами в базисе :

,

,

.

5. Реализация СФЭ и окончательная схема автомата (рис. 9).

Рис. 9.

1

1

0

СФЭ

СФЭ

НЕ

И

И

И

ИЛИ

ИЛИ

ОПРЕДЕЛЕНИЕ И СПОСОБЫ ЗАДАНИЯ КОНЕЧНОГО АВТОМАТА. ЗАДАЧА СИНТЕЗА. ЭЛЕМЕНТАРНЫЕ АВТОМАТЫ