
Лекция № 3 Конечные автоматы и их связь с формальными языками и грамматиками.
Классификация языков по Хомскому.
Начальные языки.
Автоматные языки (таблицы и матрицы переходов и выходов, графы автоматов).
1. Классификация языков по Хомскому.
Для описания (задания) ЦА используются разнообразные средства, называемые языками, которые делятся на начальные и автоматные языки. Поскольку языки базируются на алфавитах, то применительно к ЦА множество Х трактуется в качестве входного алфавита, множество Y - выходного алфавита, а множество S - внутреннего алфавита. Как и для других объектов, для автоматов используются разные таблицы, матрицы, графы.
Наиболее общее при выработке выходных сигналов, формировании новых состояний под действием входных сигналов отражается законом функционирования автомата [4, 12]:
s(t)= (s(t-1), x(t)),
y(t)= (s(t-1), x(t)).
Как видно, закон функционирования представляет собой совокупность двух функций: функции перехода и функции выхода .
В формулах используются обозначения:
t - данное автоматное время,
t-1 - предыдущее автоматное время,
- оператор формирования данного состояния s,
- оператор формирования данного выходного сигнала y,
х - входной сигнал.
Видно, что данное состояние s(t) зависит от предыдущего состояния
s(t-1) и входного сигнала в данный момент времени, что выходной сигнал в данный момент времени так же определяется предыдущим состоянием и входным сигналом в данный момент времени.
ЦА строится по имеющемуся алгоритму, представленному в виде граф-схемы алгоритма (ГСА). Определяются состояния, число триггеров памяти, синтезируются логические схемы.
При наличии простейших автоматов может реализовываться их комбинация, получаться более сложный новый автомат.
Н
ад
имеющимися автоматами можно выполнять
другие разнообразные операции, их
результаты будут новыми автоматами.
Например, операция пе-ресечения ЦАС=
ЦАА ЦАВ даёт автомат С, состоящий из
совпадающих фрагментов исходных
автоматов А и В.
Для задания (описания) автоматов используются языки описания, в настоящее время под языком понимается совокупность средств описания.
Все языки применительно к автоматам делятся на начальные и на автоматные.
2. Начальные языки
Начальные языки трактуются как языки неявного задания ЦА или языки явного описания автомата на начальных этапах его рассмотрения. К таким языкам относятся: язык регулярных выражений алгебры событий, логическая схема алгоритма (ЛСА), графическая схема алгоритма (ГСА), матричная схема алгоритма (МСА), функциональная микропрограмма (ФМП), система формул перехода (СФП), входной, внутренний и выходной языки (алфавиты), законы функционирования.
СА, ГСА, МСА, ФМП и СФП подробно описаны в [11]. Тем не менее
они здесь в учебных целях кратко рассматриваются.
Рис.9. Классификация языков описания автоматов
2
.1.1.
Графическая схема алгоритма
Графическая схема алгоритма или граф-схема алгоритма (ГСА) является аналогом схемы алгоритма (СА), отличается от последней большей формализацией, несколько другим изображением блоков начала и конца.
Поскольку ГСА предложена для алгоритмов операций ЭВМ, то в ней нет средств для отражения ввода-вывода.
Вместо блоков в ГСА используются вершины: начальные Y0 , конечные Yк, операторные вершины Y1,Y2, … , условные вершины X1,X2, … .
На рис.10 показана СА классического алгоритма нахождения наиболь-
шего общего делителя (ННОД),
где: А и С - исходные числа,
НОД - наибольший общий делитель.
Видно, что заданные числа при А<С меняются местами (блоки 57). По-
скольку после этого получается А >С, то число А заменяется на значение
А - С. Подобные циклы повторяются до получения А= С (блоки 38), число А и будет требуемым результатом (блок 9).
Имеются отличия применительно к условным вершинам. Прежде всего, условие (чаще всего отношение) записывается в закодированном виде.
1
2
8
3
=
9
4
>
1
0
5
>
1
1
6
7
Рис. 10. СА ННОД чисел A и D
Если оно выполняется, то результату присваивается единичное значение, в противном случае - нулевое значение. С учетом этого выходы вершины отмечаются указанными значениями вместо “да” и “нет”.
Содержательная и закодированная граф-схемы алгоритмов представлены на рис.11 и 12 соответственно, коды микроопераций уi, микрокоманд Yi и условий XI - в табл.1.
Y3
Y0
1 1 Y4
0 0
Y5
1 1
0 0
Y1 YK
Y2
Рис. 11. ГСА ННОД Рис.12. Закодированная ГСА ННОД
Таблица 1
Коды
|
Микрооперация, условие |
Коды
|
Микро- операция, условие |
||
микро- операции, условия |
микро- команды |
микро- операции, условия |
микро- команды |
|
|
y1 y2 y3 |
Y1 Y2 Y3 |
НОД:=А А:=С С:=НОД |
y4 X1 X2 |
Y4 |
A:=A-C A=C A>C |
Условия корректности ГСА похожи на условия корректности схемы алгоритма [14]:
у ГСА должна быть одна начальная и одна конечная вершины;
каждый выход соединен только с одним входом;
каждый вход соединен, по крайней мере, с одним выходом;
выходы условных вершин помечаются с помощью цифр “0” и “1”;
из начальной вершины должен быть путь к любой вершине;
6) из любой вершины должен быть путь в конечную вершину;
7) для любых наборов логических условий должен быть путь из началь-
ной вершины в конечную вершину.