Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OtvetyGOS_1_60.doc
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
2.19 Mб
Скачать
  1. Канонічний метод синтезу кінцевого автомата.

Алгоритм синтеза конечных автоматов

Рассмотренный выше стандартный прием позволяет свести общую задачу син-

теза автоматов к канонической задаче. При решении этой задачи необходимо, с одной стороны, фиксировать некоторый язык, приспособленный для конструктивного опи-сания событий, а с другой стороны – ограничиться вполне определенным классом ав-

томатов, допускающих какой-либо конструктивный способ задания. Поэтому ограни-чимся лишь конечными автоматами и регулярными событиями. Оба эти класса объ-ектов допускают конструктивное описание: первый – на языке таблиц переходов и выходов, а второй – на языке регулярных выражений алгебры событий. Такое ограничение вполне достаточно для практических целей, потому что цифровые автоматы, с которыми приходится иметь дело на практике, всегда конечны.

Основной алгоритм синтеза конечных автоматов

Пусть требуется построить алгоритм, который позволял бы по любому конеч-

ному множеству М регулярных событий, заданных своими регулярными выражения-ми, находить таблицу переходов и выходов конечного вполне определенного автома-та Мили и отмеченную таблицу переходов конечного вполне определенного автома-та Мура А таких, что все события множества M представляются как в автомате Мили, так и в автомате Мура некоторыми множествами их выходных сигналов.

Перейдем от представления событий R1, ..., Rp в автомате Мура множествами состояний к представлению их множествами выходных сигналов. Для этого доста-точно в качестве выходных сигналов взять различные подмножества заданного мно-жества событий (R1,…,Rp) и отмечать каждое состояние q автомата множеством тех событий, которые содержат слова, переводящие автомат из начального состояния в состояние q.

Если состояния, не представляют ни одного из заданных событий, то они от-мечаются пустым множеством событий. Такой способ отметок состояний автомата Мура называется каноническим способом отметок.

Если исходные для алгоритма регулярных выражений R1,…, Rp заданные регу-

лярные события являются многочленами, то они заключаются в обычные (неитераци-онные) скобки. Это условие будет называться условием правильной записи регуляр-ных выражений.

Местами в правильно записанном регулярном выражении R над алфавитом

X = (x1 ,…, xn) условимся называть специально вводимые знаки раздела (вертикаль-ные линии), ставящиеся между любыми двумя знаками этого выражения (знаками в выражении R являются буквы алфавита Х, символ пустого слова ε, знак дизъюнкции, итерационные и обычные скобки).

Кроме этих так называемых разделяющих мест (знаков раздела) вводится еще два места – начальное и конечное. Первое их них располагается слева от самого левого знака выражения R, а второе – справа от самого правого знака.

Например, R = z ∨ x {y ∨ z}, где R – регулярное выражение.

Приведем это выражение к правильной форме R = (z ∨ x {y ∨ z}).

Проведем разметку

| ( | z | ∨ | x | { | y | ∨ | z | } | ) | (1)

1 2 3 4 5 6 7 8 9 10 11 .

Из выражения (1) видно, что регулярное выражение R имеет 11 мест.

Развернем данное регулярное выражение в слово, т. е. последовательно, буква за буквой, выпишем какое-либо слово из представляемого им события. При этом раз-вертывание, будем осуществлять переходя от одного места данного регулярного вы-ражения к другому и от начального места к конечному месту. Такие переходы быва-ют двух видов – непосредственный переход и переход через букву основного алфа-вита Х, в котором задается представляемое выражением событие.

В качестве примера рассмотрим процессы развертывания размеченного выше выражения R в принадлежащие представляемому им событию слова z и xyz.

При развертывании выражения в первое слово необходимо осуществить непо-

средственный переход от начального места 1 к месту 2, переход через букву z от мес-та 2 к месту 3 и непосредственный переход от 3 к конечному месту 11.

При развертывании выражения в слово xyz порядок переходов будет следую-щий: непосредственный переход от места 1 к месту 4 переход через букву x – от 4 к 5, непосредственный переход – от 5 к 6, переход через букву у – от 6 к 7, непосредст-венный переход от 7 к 10, непосредственный переход от 10 к 8, переход через букву z – от 8 к 9, непосредственный переход от 9 к 10 и непосредственный переход от 10 к 11.

Пусть R – регулярное выражение, q = xi1 xi2 …xik произвольное слово во вход-ном алфавите события, представляемого выражением R.

Условимся, что место α в выражении R связано словом q с местом β в том же выражении, если от места α к месту β можно перейти с помощью чередования любого числа непосредственных переходов и переходов через буквы xi1, xi2, …, xik

слова q, взятых по одному разу в том порядке, в каком они входят в слово. Это усло-вие означает, что место β q–следует за местом α всякий раз, когда α связано с ме-стом β словом q.

Также условимся говорить, что место β подчинено месту α, если от места α к

месту β можно перейти с помощью одних лишь непосредственных переходов, т. е.

если место α связано с местом β пустым словом ε.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]