Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Теория автоматов. Учебное пособие

.pdf
Скачиваний:
1
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆

межутки времени, длительность которых может быть постоянной или переменной. В асинхронных автоматах моменты перехода автомата из одного состояния в другое заранее не определены, так как их продол­жительность целиком определяется временем переходных процессов, происходящих в автомате.
При реальной работе любого автомата необходимо учитывать та­кие негативные явления, которые получили название «гонки» или «со­стязания». Эти явления обусловлены конечным и ограниченным быс­тродействием различных физических элементов автомата, конечным временем распространения электрических сигналов по линиям связи, различной длиной линий связи. В синхронных автоматах борьба с та­кими негативными явлениями осуществляется путем выбора (опреде­ления) минимально возможного такта работы автомата. В асинхронных автоматах устранения гонок или состязаний добиваются специальны­ми видами кодирования входных, выходных сигналов и внутренних состояний автомата.
Надежную работу автомата легче обеспечить, если его выполнить в виде синхронного автомата, однако максимальным быстродействием обладают асинхронные автоматы. В то же время основой всех синхрон­ных автоматов являются асинхронные автоматы.
К определению понятия конечного автомата используются два основных подхода: макроподход и микроподход.
При макроподходе интересуются только внешним поведением ав­томата, который представляют как «черный ящик», имеющий входной и выходной каналы. При макроподходе конечный автомат может быть задан в виде совокупности функциональных зависимостей, конечно­го ориентированного графа, либо в алгебраической форме. При таком подходе приходят к понятию абстрактного конечного автомата.
При микроподходе конечный автомат задается не только описани­ем его внешнего поведения, но и множеством составляющих его эле­ментов и схемой их соединения. Совокупность элементов и схемы их соединения (или сети связи) конечного автомата принято называть структурой, в связи с чем, конечный автомат, представленный в таком виде, называют структурным конечным автоматом или автоматной сетью.
В соответствии с макроподходом и микроподходом к определе­нию конечного автомата теория автоматов подразделяется на два
взаимосвязанных раздела: теория абстрактных автоматов и теория структурных автоматов. Иногда данные разделы называют абстрак-
-11-

тной теорией автоматов и структурной теорией автоматов соответс­твенно.
Конечный автомат, как разновидность сложной системы, имеет так называемое иерархическое строение. Это означает [3], что после того, как будут выявлены элементы системы и установлена структура их отношений (т.е. схема соединений), можно (или нужно) переходить к рассмотрению каждого из найденных элементов в отдельности для определения состава и отношений «микроэлементов» внутри этих эле­ментов. Чтобы в дальнейшем избежать путаницы и неоднозначности, целесообразно условиться, что первичные элементы и схему их со­единения будем называть элементами первого уровня и структу- рой первого уровня. Вторичные элементы (т.е. элементы элементов) и схему их соединения — элементами второго уровня и структурой второго уровня и т.д. При этом естественно считать, что второй уро­вень глубже (детальнее) первого, третий — глубже (детальнее) второго и т.д. Очевидно, чем глубже модель, т.е. чем больше уровней оригинала она охватывает, тем ближе свойства модели к свойствам оригинала. Од­новременно чем глубже модель, тем сложнее ее формальное описание и тем сложнее с ним оперировать. Поэтому выбор степени детализации модели реального объекта или процесса определяется целями или ус­ловиями решаемой задачи.
Достаточно часто бывают весьма полезны модели нулевого уров­ня, т.е. такие, которые не могут быть расчленены на составные элемен­ты. В кибернетике такая обобщенная модель нулевого уровня получила название «черный ящик» или метод «черного ящика». Это наивысший уровень абстракции реального объекта или процесса.


Понятие «черный ящик» широко используется в науке и техни­ке [4], поэтому целесообразно остановиться на нем подробнее.
По существу, черным ящиком является любой объект или про­цесс, о котором мы судим на основе изучения его внешних свойств, не имея возможности непосредственно исследовать его внутреннюю структуру.
Метод «черного ящика» используют для изучения поведения слож­ных систем, т.е. для установления закона их функционирования. Толь-
-12-

ко после нахождения закона функционирования можно создать более или менее удачную гипотезу о внутреннем устройстве «черного ящика» [3]. Это делается путем подачи (мысленной или реальной) различных типов воздействий на входной канал с тем, чтобы элементы «черного ящика» воспринимали эти воздействия и проявляли бы свою реакцию на них путем изменения сигналов (букв) на выходном канале.
Таким образом, обнаруживаются элементы исследуемого объекта или процесса, а сам процесс их обнаружения называют эксперимента- ми над «черным ящиком» или экспериментами над автоматом. Ре- зультаты таких экспериментов тщательно фиксируются и затем анали­зируются на предмет выявления функциональных взаимосвязей между входными (испытательными) воздействиями и выходными (проявляю­щими результат) элементами «черного ящика». В принципе может быть построено неограниченное число внутренних структур, приводящих к данному конкретному типу соответствий между состояниями «входа» и «выхода» «черного ящика». Но, тем не менее, это уже не произволь­ные структуры, а вполне определенный их тип (класс). Если же пред­положить, что внутри «черного ящика» скрыта простейшая из структур данного типа, то возможные варианты структур сводятся к нескольким или даже к единственной структуре, единственному типу функцио­нальной зависимости.
При отыскании возможных структур «черного ящика» уменьшить их разнообразие возможно лишь при том условии, что на разновиднос­ти элементов «черного ящика» наложены определенные ограничения. Такие ограничения приводят к необходимости поиска минимальной разновидности элементов, необходимых и достаточных для построе­ния структуры сколь угодно сложных устройств и систем определенно­го класса.


Теория автоматов изначально предназначена для ускорения и об­легчения процесса разработки и создания разнообразных дискретных автоматов с достаточным для практического использования запасом надежности.
Теория автоматов зарождалась в тот момент времени, когда основ­ным принципом реализации автоматов был аппаратурный [5]. В связи
-13-

с этим развивались методы синтеза структуры автоматов в том или ином элементном базисе. Под элементным базисом понимается минималь- но возможный набор элементов, необходимый и достаточный для прак­тической реализации автоматов сколь угодно большой сложности.
С созданием в 1972 г. микропроцессорной техники, оперативных запоминающих устройств (ОЗУ) и постоянных запоминающих уст­ройств (ПЗУ) достаточно большого объема появилась возможность про­граммной реализации разнообразных автоматов.
Аппаратурная реализация обеспечивает максимально возможное быстродействие автомата, но требует значительных материальных и временных затрат на разработку и изготовление автомата. Это связа­но с тем, что каждый создаваемый автомат требует для своей реализа­ции нового набора элементов и новой схемы их соединения. Автоматы, реализуемые аппаратурно, получили название «автоматы с жесткой логикой».
При программной реализации автоматов состав и структура аппа­ратурных средств изменяются незначительно, требуется лишь разра­ботка программы, реализующей алгоритм работы автомата. Автоматы с программной реализацией получили название «автоматы с гибкой логикой». Недостатком автоматов с гибкой логикой является пони­женное их быстродействие (иногда существенное) по сравнению с ав­томатами с жесткой логикой.
Современная элементная база позволяет реализовывать авто­маты, в которых часть алгоритма реализуется аппаратурно, а другая часть — программно. Для программной реализации широко исполь­зуются микропроцессорные комплекты больших интегральных схем (МПК БИС). Для аппаратурной реализации используются специальные БИС с программируемой и перепрограммируемой архитектурой, такие как программируемые логические матрицы (ПЛМ), базовые матричные кристаллы (БМК) и т.п. [6].
Большинство задач теории автоматов — общие для основных ви­дов управляющих систем [1]. К ним относятся задачи:
- классификации автоматов;
- анализа и синтеза автоматов;
- способов задания автоматов;
- полноты элементарных автоматов;
- минимизации автоматов;
- эквивалентных преобразований автоматов;
- эффективного кодирования автоматов.
-14-

Задача классификации автоматов необходима для выявления ха­рактерных классов автоматов, их свойств, особенностей и возможнос­тей теоретической и практической реализации.
Задача анализа состоит в том, чтобы по заданной структуре авто­мата описать его поведение (закон функционирования) или по непол­ным данным об автомате и законе его функционирования установить те или иные свойства автомата.
Задача синтеза состоит в нахождении способов построения авто­мата с наперед заданным законом функционирования.
Задача способов задания автоматов понимается как выбор вари­анта описания автомата, его функционирования или поведения. Спо­собы задания автоматов зависят от подхода к определению автомата. При макроподходе используются способы описания внешнего поведе­ния автоматов, при микроподходе — выбираются способы описания структуры автомата. При выборе способов задания автоматов необхо­димо иметь в виду, что процесс синтеза автомата есть, по сути, процесс последовательной смены модельных описаний еще несуществующего материального объекта путем преобразования некоторого первичного описания, оптимизации заданных характеристик проектируемого ав­томата или алгоритма его работы, устранением некорректности пер­вичного описания. Это достигается описанием автомата на различных языках, которые должны быть совместимы между собой и наиболее адекватны решаемой задаче.
Задача полноты состоит в отыскании применительно к конкрет­ному классу автоматов или автоматных отображений адекватного эле­ментного базиса, обладающего функциональной полнотой. В качестве элементного базиса отыскиваются элементарные (простейшие) авто­маты и правила их композиции (соединения), такие, что при мини­мальном количестве разновидностей элементарных автоматов и пра­вил их композиции можно реализовать любой, сколь угодно сложный автомат из заданного класса.
Задача минимизации автоматов сводится к поиску минимальных по сложности аппаратурной или программной реализации алгоритма функционирования автомата.
Задача эквивалентных преобразований ставится как для структуры автомата, так и для алгоритма его функционирования. Эквивалентные преобразования автоматов позволяют найти эквивалентный автомат другого типа (класса), эквивалентную структуру автомата в другом эле-
-15-

ментном базисе или эквивалентный алгоритм функционирования ав­томата.
Задача кодирования автомата состоит в переходе от абстрактных букв входного алфавита, выходного алфавита и алфавита состояний к так называемому структурному алфавиту, который «понятен» тем элементарным автоматам, на основе которых предполагается реализо­вать некоторый автомат. В настоящее время при реализации автоматов широко используется двоичный структурный алфавит. Автоматы, рабо­тающие в двоичном структурном алфавите, часто называют цифровы­ми автоматами. Именно такие автоматы являются основным объектом рассмотрения в данном пособии.
Задача кодирования в общем случае сводится к нахождению пра­вил сопоставления буквам абстрактных алфавитов некоторых двоич­ных структурных кодов. От того, насколько удачно осуществлено такое сопоставление (кодирование), зависят и сложность автомата, и надеж­ность его работы [7].
-16-

  


Формализации (представлению в математической форме) любого понятия предшествует попытка словесного выражения (определения) данного понятия. В этой связи представляет интерес проследить транс­формацию во времени словесных определений понятия «автомат».
В энциклопедии «Просвещение» 1900 г. издания дается следующее определение (определение 1): «Автомат — прибор, с помощью внутрен- него механизма подражающий действиям живых существ». Из данного определения следует, что автомат — материальный объект (так как при­бор); внутри этого материального объекта находится некий механизм; этот механизм действует так, что поведение автомата в целом похоже на действия каких - то живых существ. В соответствии с рассмотренным определением попытаемся выяснить: являются ли механические часы автоматом? Часы — материальный объект; внутри часов работает ме­ханизм, отсчитывающий время. Но действиям какого живого существа подражают обыкновенные механические часы? Таким образом, в соот­ветствии с рассмотренным определением обыкновенные механичес­кие часы не могут быть названы автоматом, так как они не подражают действиям какого-либо живого существа.
Рассмотрим модификацию механических часов, которые кро­ме часового механизма снабжены еще дополнительным механизмом. Таким механизмом может быть петушок, кукарекающий каждый раз, когда часы показывают какое-либо определенное время. В таком случае
-17-

часы, с кукарекающим через определенные интервалы времени петуш­ком, могут быть отнесены, по определению, к автоматам. Но кукарекать петушка можно «заставить» и без часов, которые отмеривают реальное время. Следовательно, действительным автоматом, по определению, является только кукарекающий петушок. А что если внутри кукарека­ющего петушка будут отсутствовать механические детали? Можно ли в таком случае отнести такого петушка к автоматам?
Как видно, рассмотренное определение автомата несколько про­тиворечиво, и достаточно широкое, так как живых существ — огромное множество, включая и человека.
Рассмотрим некоторые последующие словесные определения ав­томата, не вдаваясь в достаточно глубокий их анализ.
В [8] (1963 г.) дается следующее определение (определение 2): «Авто- мат (от греч. automatus — самодействующий) — рабочая машина, само- стоятельно производящая все рабочие, холостые, транспортирующие и др. движения и осуществляющая управление этими движениями».
В [9] (1980 г.) еще более уточняется понятие автомата (определе-
ние 3): «Автомат (от греч. automatus — самодействующий):
- устройство (совокупность устройств), выполняющее по задан-
ной программе без непосредственного участия человека все операции в процессах получения, преобразования, передачи и распределения (использования) энергии, материалов или информации. Программа автомата задается в его конструкции или извне — посредством перфо­карт, магнитных лент и т.п.;
- в кибернетике: математическая модель устройства (процесса),
перерабатывающего дискретную (цифровую) информацию».
В [10] (1988 г.) приводится следующее определение (определение 4): «Автомат — устройство, предназначенное для выполнения целенап­равленных действий без непосредственного участия человека».
Автомат абстрактный — математическая модель автомата (по определению 4), определяемая заданием трех множеств (входных сиг­налов, внутренних состояний и выходных сигналов) и двух двуместных функций (переходов и выходов). Функция переходов отображает пер­вые два множества на второе, а функция выходов отображает первые два множества на третье.
Автомат структурный — автомат абстрактный, заданный мно­жеством его элементов и схемой их соединения».
Последнее словесное определение дает возможность перейти к фор­мальному определению понятия автомата.
-18-



Математической моделью дискретного устройства является абс­трактный автомат, определяемый как шестикомпонентный кортеж, или вектор [11]:
S = (Z, A, W, δ, λ, a
), (2.1)
1
у которого:
Z = {z
, … zf … zF} — множество входных сигналов автомата (входной
1
алфавит);
A = {a
, … am … aM} — множество состояний автомата (алфавит со-
1
стояний);
W = {w
, … wg … wG} — множество выходных сигналов автомата (вы-
1
ходной алфавит);
δ : A × Z → A — функция переходов автомата, реализующая отобра- жение D состояние — входной сигнал (a томата a
⊆ A × Z на A. Другими словами, функция δ некоторым парам
δ
= δ(am, zf), as ⊆ A;
s
ставит в соответствие состояние ав-
m, zf)
λ : A × Z → W — функция выходов, реализующая отображение D
⊆ A × Z на W, которая некоторым парам состояние — входной сигнал
l
(a
) ставит в соответствие выходной сигнал автомата wg = λ(am, zf);
m, zf
a
∈ A — начальное состояние автомата.
1
Под алфавитом здесь понимается непустое множество попарно различных символов. Элементы алфавита называются буквами, а ко­нечная упорядоченная последовательность букв — словом в данном алфавите.
Абстрактный автомат имеет один вход и один выход. Автомат ра­ботает в дискретном времени, принимающем целые неотрицательные значения t = 0, 1, 2, … . В каждый момент t дискретного времени автомат находится в некотором состоянии a(t) из множества состояний автома- та, причем в начальный момент времени t(0) автомат может находить- ся в начальном состоянии a(0) = a
. В момент t, будучи в состоянии a(t),
1
автомат способен воспринять на входе букву входного алфавита z(t) ∈ Z. В соответствии с функцией выходов он выдает в тот же момент времени t букву выходного алфавита w(t) = λ(a(t), цией переходов перейдет в следующее состояние a(t + 1) = δ
z(t)) и в соответствии с функ-
(a(t), z(t)),
-19-

= D =
Z
W
причем a(t+1)∈A, а w(t) ∈ W. Смысл понятия абстрактного автомата состоит в том, что он реализует некоторое отображение множества слов входного алфавита Z в множество слов выходного алфавитаW. Иначе, если на вход автомата, установленного в начальное состояние a
, по-
1
давать буква за буквой некоторую последовательность букв входного алфавита z(0), z(1), z(2), … — входное слово, то на выходе автомата бу­дут последовательно появляться буквы выходного алфавита w(0), w(1), w(2), … — выходное слово. Каждому входному слову соответствует опре­деленное выходное слово, структура которого определяется функция­ми переходов и выходов. Таким образом, на уровне абстрактной теории понятие «работа автомата» понимается как преобразование входных слов в выходные слова.
Структурной моделью нулевого уровня абстрактного автомата яв­ляется модель, представленная на рис. 2.1. В том случае, когда отобра­жения D
= Dλ = A × Z, автомат называют полностью определенным или
d
полным.
S
Рис. 2.1. Структурная модель абстрактного автомата
(нулевой уровень)
Иными словами, у полностью определенного автомата области определения функций δ, λ совпадают с множеством A × Z — множес­твом всевозможных пар вида (a
, zf). У не полностью определенного,
m
или частичного, автомата функции δ или λ определены не для всех пар (a
, zf) ∈ A × Z.
m
Состояние частичного автомата, соответствующее паре (a
, zf), на
m
котором функция переходов не определена, называют неиспользуе­мым состоянием автомата. Остальные состояния называют использу­емыми [5].
Если на каком-либо используемом состоянии автомата не опреде­лена функция выходов, то говорят, что этому состоянию соответствует безразличное состояние выхода. В частном случае может быть безраз­личным не состояние выхода, а лишь один или несколько выходных сигналов, набор значений которых определяет данное состояние вы­хода [5].
Чтобы задать конечный автомат S, необходимо описать все ком­поненты вектора S = (Z, A, W, δ, λ, a
), т.е. входной и выходной алфавиты
1
-20-