Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры бис.docx
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
12 Мб
Скачать
☆

Синтез конечных автоматов класса e

Пусть A - множество всех внутренних состояний конечного автомата. Определим множество AE, AE A, состояний автомата класса E, то есть множество состояний, коды которых определяются входными наборами. Пусть, как и прежде, конечный автомат задан таблицей переходов, столбцы которой имеют обозначения am, as, X(am,as) и Y(am,as). Обозначим через U(ai) множество всех условий переходов в состояние ai, ai € A:

U(ai) = {X(am,ai) | am € B(ai)}, (1)

где B(ai) - множество состояний, переходы из которых оканчиваются в состоянии ai. Обычно при реализации конечных автоматов на ПЛИС условие X(am,as) перехода автомата из состояния am в состояние as представляет собой некоторую элементарную конъюнкцию входных переменных. Однако в общем случае в качестве условия X(am,as) может выступать любая логическая функция, единичное значение которой вызывает переход автомата из состояния am в состояние as.

Состояние ai, ai € A, является состоянием автомата класса E, то есть ai € AE, если выполняются условия:

|U(ai)| = 1, (2)

и

U(ai) U(aj) = (3)

при i j для всех aj € A.

Выполнение (2) обеспечивает осуществление всех переходов в состояние ai по одному и тому же условию перехода (то есть состояние ai имеет только один код), а выполнение (3) обеспечивает то, что условия переходов в состояние ai не вызывают переходов в другие состояния автомата (то есть состояния ai и aj имеют различные коды).

Условия (2) выполняются пут╦м расщепления состояний. Пусть, например, для некоторого состояния ai, ai € A, имеет место |U(ai)| = H > 1. Можно расщепить состояние ai на состояния ai1,...,aiH таким образом, чтобы переходы в каждое состояние aih определялись только одним условием переходов, то есть выполнялось |U(aih)| = 1, h = ¯1,H. Теперь вместо состояния ai имеем H состояний, для которых выполняются условия (2). Выполнение условий (3) осуществляется пут╦м введения дополнительных переменных обратных связей и соответствующих им элементов памяти для различия кодов внутренних состояний автомата.

Условия (2) и (3) являются необходимыми, но не достаточными для построения конечного автомата класса E. Дело в том, что для детерминированности поведения конечного автомата все коды его внутренних состояний должны быть взаимно ортогональны. Однако однозначное соответствие различных входных наборов различным внутренним состояниям конечного автомата, то есть выполнение условия (3), ещ╦ не обеспечивает ортогональность кодов. Для сравнения, при синтезе автоматов классов А и В различные выходные наборы всегда ортогональны, так как это двоичные наборы. Входные же наборы представляют собой троичные векторы, прич╦мдоопределение безразличных значений входных переменных в общем случае не допустимо. Поэтому обязательным этапом синтеза конечных автоматов класса E является обеспечение ортогональности наборов входных переменных пут╦м их доопределения с помощью дополнительных внутренних переменных.

Суть метода синтеза конечного автомата класса E заключается в расщеплении всех состояний, для которых не выполняются условия (2), и введении внутренних переменных для обеспечения ортогональности кодов внутренних состояний. Пусть P(ai) - множество переходов конечного автомата из состояния ai; C(ai) - множество переходов конечного автомата, которые оканчиваются в состоянии ai, ai € A; X(ai) - некоторое условие перехода в состояние ai, X(ai) € U(ai). Тогда алгоритм синтеза конечных автоматов класса E имеет следующий вид.