8.8. АВТОМАТЫ КАК РАСПОЗНАЮЩИЕ УСТРОЙСТВА
Грамматики, изученные в предыдущих разделах, были в основном схемами, порождающими цепочки. В этом параграфе мы кратко коснемся теории автоматов и введем понятие автомата как системы распознавания цепочек. Связь между этой теорией и распознаванием образов очевидна, поскольку, как это было показано в предыдущих разделах, образы часто можно выразить в виде терминальных цепочек. Хотя исчерпывающий анализ автоматов лежит за пределами нашего обсуждения, мы рассмотрим несколько подробнее один специфический тип автоматов — конечные автоматы — и покажем, что конечный автомат способен распознавать автоматные языки (языки типа 3).
Конечный автомат над алфавитом 2 определяется как пятерка
где К — конечное непустое множество состояний, — конечный входной алфавит, — отображение — начальное состояние и — множество заключительных состояний. Терминология и система обозначений иллюстрируются следующим примером.
Пример. Рассмотрим автомат, заданный набором (8.8.1), где
и — отображение в К — задается таким образом:
Если, например, автомат находится в состоянии и на вход поступает символ , то автомат переходит в состояние . Если далее на вход поступает символ 1, то автомат переходит в состояние . Заметим, что в данном случае заключительное состояние равно начальному состоянию.
Диаграмма состояний этого автомата, приведенная на рис. 8.12, состоит из вершин, соответствующих каждому из возможных состояний, и ориентированных ребер, соединяющих взаимно достижимые состояния. В данном примере, если состояние было бы недостижимо из состояния и обратно, на диаграмме не существовало бы ребра между этими двумя состояниями. Каждое ребро диаграммы обозначается соответствующим символом из множества 2, обусловливающим переход автомата в указанное состояние.
Рис. 8.12. Конечный автомат.
Предположим, что автомат находится в состоянии и на вход подается цепочка Автомат просматривает цепочку слева направо по одному символу за такт. Встретив первый , автомат переходит в состояние Следующий заставляет его вернуться в состояние Точно так же следующий символ, которым является 1, меняет состояние автомата на а вторая 1 возвращает его в исходное состояние Завершение этой процедуры не требует разъяснений. Совершенно очевидно., что после прочтения цепочки автомат будет находиться в состоянии
Если в результате просмотра цепочки или предложения автомат находится в одном из возможных заключительных состояний,
то говорят, что цепочка допускается автоматом Множество всех цепочек допускаемых автоматом обозначается , т. е.
где обозначает состояние автомата после прочтения цепочки
Если цепочками представлены образы, то нам удобно рассматривать конечный автомат как устройство, обеспечивающее разделение на два класса: цепочка приписывается к классу если она допускается, и к классу если она не допускается автоматом.
Можно показать, что если задана автоматная грамматика , то существует конечный автомат такой, что . И обратно, если задан конечный автомат то существует автоматная грамматика такая, что .
Исследования в теории автоматов показывают, что неограниченная грамматика, грамматика непосредственно составляющих и бесконтекстная грамматика могут распознаваться другими типами автоматов. Неограниченные языки допускаются машинами Тьюринга; языки непосредственно составляющих — линейно ограниченными автоматами; бесконтекстные языки — магазинными автоматами. Кроме того, теория автоматов легко допускает статистические постановки, как показано в работе Фу [1970]. Стохастические автоматы могут использоваться для распознавания стохастических языков. Можно также задать такой автомат, который будет допускать не цепочечные, а древовидные структуры. Читателю, заинтересованному в углублении своих познаний по этому вопросу, можно порекомендовать, например, работы Фу и Бхаргавы [1973], Тэтчера [1973], Гонсалеса и Томасона [1974а].