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

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

.pdf
Скачиваний:
1
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆

1
, КА2
1
реализует функцию выходов первого типа u(t) =
2
— функцию выходов второго типа w(t) =
3
совместно с памятью — функцию
КА
КА
КА
память
а(t + 1)
а(t)
z(t
w(t)
Структурная модель первого уровня автомата Мура с учетом (2.3) может быть представлена в виде совокупности комбинационных авто­матов (КА
и КА2) и автомата с памятью (кратко, памяти) следующим
1
образом (рис. 3.2).
Комбинационный автомат КА бинационный автомат КА
совместно с памятью — функцию переходов.
2
реализует функцию выходов, а ком-
1
Память может быть реализована различными способами, но ее за­дача такая же, как и для автомата типа Мили.
Особенность структурной модели автомата типа Мура отражает специфику математической модели, а именно, неявную зависимость выходного сигнала (символа) от входного сигнала (символа).

Структурная модель первого уровня С-автомата с учетом (2.6) может быть представлена в виде совокупности комбинационных ав­томатов (КА дующим образом (рис. 3.3). Комбинационный автомат КА функцию выходов первого типа u(t) = λ мат КА
2
национный автомат КА а(t + 1) = δ(a(t), z(t)).
, КА2 и КА3) и автомата с памятью (кратко, памяти) сле-
1
(a(t)), комбинационный авто-
1
реализует
1
— функцию выходов второго типа w(t) = λ2(a(t), z(t)), а комби-
совместно с памятью — функцию переходов
3
)
1
λ1(a(t))
2
λ2(a(t), z(t))
3
δ(a(t), z(t))
Рис. 3.3. Структурная модель первого уровня C-автомата
-31-
u(t)



При описании работы широкого класса дискретных систем, в том числе и микропрограммных автоматов, стало уже классическим их представление в виде композиции управляющего автомата (УА) и опе­рационного автомата (ОА) (рис. 3.4).
Рис. 3.4. Структурная модель первого уровня
микропрограммного автомата
Операционный автомат выполняет преобразование входных слов информации (двоичных векторов), поступающей на его входыγ. Таки­ми словами могут быть: слагаемые или операнды для какой-либо ариф­метической операции, множимое и множитель для умножения и т.п. Результатом преобразования, реализуемого операционным автоматом, является информация, которая формируется на выходах β.
Задачей управляющего автомата является выработка распреде­ленной во времени последовательности управляющих сигналов y, под воздействием которых в операционном автомате выполняется некото­рая операция.
Элементарный неделимый акт обработки информации в опера­ционном автомате, происходящий в течение одного такта автоматного времени, называют микрооперацией (y). Каждая микрооперация воз­буждается соответствующим сигналом y, причем, если микрооперация выполняется, то y = 1, а если нет, то y = 0.
Совокупность микроопераций, выполняемых одновременно за один такт автоматного времени, называется микрокомандой. Для за­дания порядка следования микрокоманд вводятся и формируются спе-
-32-

циальные переменные, которые называют либо логическими услови­ями, либо осведомительными сигналами x.
Проверка логического условия в каждом такте работы управляю­щего автомата однозначно определяет микрокоманду, реализуемую в следующем такте.
Таким образом, совокупность микрокоманд и функции переходов образует микропрограмму.
Операционный автомат, как правило, является комбинационным автоматом, управляющий автомат — всегда последовательностный ав­томат, следовательно, с памятью.
-33-

  
В зависимости от способа задания функцией переходов и выходов (d и l) в настоящее время выделяют два класса языков — начальные языки и стандартные, или автоматные языки, которые используют для задания (описания) абстрактных автоматов [12].
В начальных языках автомат описывается на поведенческом уров­не, т.е. функции переходов и выходов обычно в явном виде не заданы. Поведение автомата описывается в терминах входных и выходных пос­ледовательностей, реализуемых операторов (отображений) или управ­ляющих последовательностей сигналов, воздействующих на операци­онный автомат.
В автоматных языках поведение автомата задается путем явного задания функций переходов и выходов.
Для описания, синтеза, анализа структурных автоматов широко используется язык (математический аппарат) алгебры логики и язык временных диаграмм.

 
Рассмотрим кратко язык регулярных выражений алгебры событий. Для заданного конечного множества входных букв X = {x лярное выражение задается следующим образом. Для построения язы-
-34-
,…, xn} регу-
1

ка регулярных выражений используется три операции над событиями (две бинарных и одна унарная):
1) A∪B — объединение (дизъюнкция);
2) AB — умножение (конкатенация);
{A} — итерация (обозначается также A*).
Выражение, построенное из букв алфавита X и из символов опера- ций объединения, умножения и итерации с использованием соответс­твующим образом круглых скобок, называется регулярным выражени­ем в алфавите X. Всякое регулярное выражение R определяет некоторое событие S (S получается в результате выполнения всех операций, вхо- дящих в выражение R). События, определяемые таким образом, назы­ваются регулярными событиями над алфавитом X. Другими словами, регулярным событием называется событие, полученное из элемен­тарных событий (однобуквенных слов x
) применением конечного чис-
i
ла раз операций дизъюнкции, умножения и итерации. Например, в ал­фавите из трех букв x, y, z регулярное выражение x{x ∨ y ∨ z} (y ∨ z) задает регулярное событие из всех слов, которые начинаются буквой x и закан­чиваются буквой y или z.
Пусть необходимо описать автомат, выдающий сигнал w раз, когда происходит изменение входной буквы с x вами, сигнал w
должен выдаваться в ответ на любые входные после-
1
на x2. Другими сло-
1
довательности, кончающиеся последовательностью x
. Фраза «любые
1x2
всякий
1
входные последовательности» формализуется всеобщим, или универ­сальным, событием, состоящим из всех возможных слов в алфавите x Такое событие записывается как {x которое должен выдаваться сигнал w выражением: S
= {x1 ∨ x2}x1x2.
1/w1
∨ x2}. Тогда событие S1, в ответ на
1
, будет описываться регулярным
1
1x2
.

В 1953 г. А. А. Ляпунов предложил записывать алгоритмы в виде ко­нечной строчки, состоящей из символов операторов, логических условий и верхних и нижних стрелок, которым приписаны натуральные числа.
Порядок выполнения операций в автомате определяется програм- мой (или микропрограммой), представляющей собой совокупность мик­роопераций и логических условий.
Под микрооперацией обычно понимается элементарный про­цесс переработки информации в одной из частей автомата, происходя­щий за время такта работы автомата. При этом устройство управления
-35-

вырабатывает управляющие сигналы, которые обозначим символом V = {v в зависимости от условий, задаваемых множеством Z = {z
, v2,…, vn}. Ход выполнения микроопераций может нарушаться
1
, z2, …, zp}.
1
Запись алгоритма, выполненная с учетом вышеизложенного, на­зывается логической схемой алгоритма (ЛСА).
Логические схемы алгоритмов удовлетворяют следующим условиям:
1) содержат один начальный (v
2) перед оператором v
и после оператора vk стрелок быть не должно;
n
) и один конечный оператор(vk);
n
3) вслед за каждым логическим условием всегда стоит верхняя
стрелка;
4) не существует двух одинаковых (с одинаковыми цифрами) ниж-
них стрелок;
5) для каждой нижней стрелки должна быть, по крайней мере, одна
соответствующая ей (с одинаковой цифрой) верхняя стрелка;
6) для каждой верхней стрелки должна быть точно одна соответс-
твующая ей (с одинаковой цифрой) нижняя стрелка.
Описание поведения автомата с помощью ЛСА поясним на следу­ющем примере:
v
Эта ЛСА имеет оператора начала и конца (v
) и три логических условия (z1, z2, z3). Начальному оператору соот-
(v
1÷v5
↑1 v1 ↓1 z2 ↑2 v2v3z3 ↑2 v4 ↓2 v5vk. (4.1)
nz1
и vk), пять операторов
n
ветствует некоторое начальное состояние автомата, при котором ника­кие микрооперации не выполняются. Если в начальном состоянии на первый вход устройства придет сигнал, равный единице (z
= 1), то уст-
1
ройство перейдет в новое состояние, в котором выполняется оператор
— первый справа после логического условия z1, а затем проверяется
v
1
логическое условие z
. Если же z1 = 0, то выходим по верхней стрелке ↑1
2
и входим по нижней стрелке с той же цифрой на проверку логического условия z ются операторы v
не выполняется, происходит переход к оператору v5. После выполне-
v
4
ния оператора v
, минуя выполнение оператора v1. Если же z2 = 1, то выполня-
2
и v3 и проверяется условие z3; если z3 = 0, то оператор
2
происходит переход к конечному оператору, т.е. рабо-
5
та дискретного устройства заканчивается.

Другой разновидностью языка, позволяющего описывать логи­ческие схемы алгоритмов, является язык граф-схем алгоритмов (ГСА).
-36-

Граф-схема алгоритма — ориентированный связный граф, содержа­щий одну начальную вершину, произвольное число условных и опера­торных вершин и одну конечную вершину (рис.4.1).
а б в г
Рис. 4.1. Графическое представление вершин ГСА:
а, б — начальная и конечная вершины;
в — операторная вершина; г — условная вершина
Конечная, операторная и условная вершины имеют по одному вхо­ду, начальная вершина входов не имеет. Начальная и операторная вер­шины имеют по одному выходу. Конечная вершина выходов не имеет. Условная вершина имеет два выхода, помеченных символами 1 и 0.
Граф-схема алгоритма удовлетворяет следующим условиям:
1. Входы и выходы вершин соединяются друг с другом с помощью
дуг, направленных всегда от выхода к входу.
2. Каждый выход соединен только с одним входом.
3. Любой вход соединяется, по крайней мере, с одним выходом.
4. Любая вершина графа лежит, по крайней мере, на одном пути из
начальной к конечной вершине.
5. В каждой условной вершине записывается один из элементов
множества логических условий Z = {z
, …, zl}, разрешается в различных
1
условных вершинах записывать одинаковые элементы множества Z.
6. В каждой операторной вершине записывается один из элемен-
тов множества операторов V = {v
, …, vt}, разрешается в различных опе-
1
раторных вершинах запись одинаковых элементов множества V.
На рис. 4.2 представлена граф-схема алгоритма, соответствующая ЛСА, заданной (4.1). Язык ГСА используется очень часто при описании алгоритмов функционирования, как самого цифрового автомата, так и программ, выполняющих то или иное действие.
-37-

Vn z1
V1
z2
z3
V2
V3
V4
V5
Vk
1 0
0
1
0 1
Рис. 4.2. Пример граф — схемы алгоритма

При проектировании различных устройств ЭВМ обычно исполь­зуются содержательные схемы алгоритмов, которыми описываются не только формальные элементы, а также логические условия и микроопе­рации в содержательных терминах. Основные правила выполнения со­держательных схем алгоритмов и программ, которым студенты долж­ны следовать в процессе выполнения курсового проекта, представлены в соответствующих ГОСТах.
Графическое описание алгоритма дается в виде чертежа, состоя­щего из ограниченного числа геометрических фигур (называемых сим­волами), соединенных стрелками, указывающими последовательность некоторых действий.
Различают безусловные и условные типы символов. Безусловные позволяют описывать операции, связанные с вводом/выводом и вы­полнением операторов (инструкций) алгоритма. Символы условного типа позволяют отобразить ситуации, требующие ветвления вычисли­тельного процесса в зависимости от выполненного результата.
-38-

Конфигурацию и размер символов, а также порядок построения схем алгоритмов определяет ГОСТ 19.701-90 «Единая система програм­мной документации. Схемы алгоритмов, программ, данных и систем. Обозначения условные и правила выполнения» (ЕСПД).
Все символы (блоки) в алгоритме нумеруются. Номера проставля­ются в разрыве верхней линии блока слева (рис. 4.3).
Рис. 4.3. Обозначение и нумерация блоков алгоритма
Линии потока указывают направление перехода к следующему блоку алгоритма. Стрелки на линиях потока не ставят, если линии по­тока направлены вниз или слева направо. Противоположные направ­ления (то есть снизу вверх или справа налево) обязательно помечают стрелкой на линии потока. Линии потока могут подвергаться изломам до 90°. В этом случае на линиях потока также ставится стрелка.
В состав схемы алгоритма могут быть включены соединитель и меж­страничный соединитель.
Соединитель используется для обозначения связи между блоками (символами) при необходимости обрыва линии потока. Такая потреб­ность возникает в том случае, когда участок схемы алгоритма слишком насыщен линиями потока или когда соединяемые символы находятся далеко друг от друга, но в пределах одного и того же листа. На рис. 4.4 иллюстрируется использование соединителя между блоками 2 и 7 (ли­нии потока направлены от блока 2 к блоку 7).
Если приходится изображать алгоритм на нескольких листах, то используют межстраничный соединитель. Внутри символа межстра­ничного соединителя указывают номер листа (трехзначный) и номер символа, с которым должно быть соединение. На рис. 4.5, а показано, что линия потока уходит на второй лист к 23блоку, а на рис. 4.5, б — что к 23 блоку идет линия потока с первого листа от пятого блока.
-39-

Рис. 4.4. Пример использования соединителя
Рис. 4.4. Пример использования соединителя
а б
Рис. 4.5. Пример использования
межстраничного соединителя
Рекомендуется использовать соединители в крайних случаях, так как иначе снижается наглядность схемы алгоритма и ее понимание.

Среди автоматных (стандартных) языков наиболее распространены таблицы и матрицы переходов и выходов, а также графы автоматов [12].
-40-