22104

Методы абстрактного синтеза

Лекция

Коммуникация, связь, радиоэлектроника и цифровые приборы

Задача абстрактного синтеза заключается в составлении таблиц переходов и выходов автоматов по заданным условиям его функционирования представленным в форме регулярных выражений. Построенный по этим таблицам автомат обычно содержит лишние внутренние состояния. На втором этапе производится минимизация количества внутренних состояний заданного автомата. Синтезируемый автомат может быть задан либо как автомат Мура либо как автомат Мили.

Русский

2013-08-04

40 KB

1 чел.

Лекция 7

Методы абстрактного синтеза.

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

Абстрактный синтез обычно выполняется в два этапа:

  1.  Первый этап заключается в получении таблиц переходов и выходов в некоторой исходной форме. Построенный по этим таблицам автомат обычно содержит «лишние» внутренние состояния.
  2.  На втором этапе производится минимизация количества

внутренних состояний заданного автомата.

Синтезируемый автомат может быть задан либо как автомат Мура,

либо как автомат Мили. Поскольку для автомата Мура всегда можно построить эквивалентный автомат Мили, то достаточно рассмотреть алгоритм синтеза автомата Мура, который проще автомата Мили.

Рассмотрим пример абстрактного синтеза автомата для случая, когда регулярные отношения составлены без применения операции итерации. Составим отмеченную таблицу переходов автомата, имеющего входной алфавит X{x1, x2} и реализующий следующий алгоритм.

 S1 = x1x2 v x1x1x1 y1   Sзапр. =x1 v x2x2x2

              

S2 = x1x2x2 v x2x2 y2   S4 = S1 v S2 v S3 e.

При синтезе условимся начальное состояние автомата обозначать цифрой 0, а остальные состояния – десятичными числами 1, 2, 3 и т.д. Очевидно, самый простой, хотя и не экономный по числу используемых внутренних состояний автомата, алгоритм синтеза заключается в следующем. Фиксируется начальное состояние и для входного слова , содержащего r букв, назначается r внутренних состояний. Переходы в автомате определяются так, что первая буква входного слова переводит автомат из начального состояния 0 в состояние 1, вторая буква из 1 в 2 и т.д. Аналогичные последовательности внутренних состояний назначаются для всех остальных слов. Затем все конечные состояния, в которые автомат попадает после подачи слов, входящих в событие Si, отмечаются выходными сигналами yi.

Чтобы система переходов автомата была определенной, для всех слов, имеющих одинаковые начальные отрезки, следует назначать одну и ту же последовательность состояний. Например, для регулярного события S1 первая буква x1 переводит автомат из начального состояния 0 в состояние 1, вторая буква x2 – из 1 в 2.

S = x1 x2 v x1 x1 x1

     0    1     2   0   1   3    4

S = x1 x2 x2 v x2 x2

     0    1     2    5    0    6    7

Поскольку первая буква второго слова x1x1x1, входящего в S1 также есть x1, то она переводит автомат из начального состояния 0 в 1. Вторая буква x1 переводит автомат из 1 в 3, третья – из 3 в 4.

Первые две слова x1x2x2, входящего в  S2, совпадают с первым словом события S1. Поэтому первые две буквы этого слова должны последовательно переводить автомат из 0 в 1, и из 1 в 2. Дальнейшие состояния обозначим числами 5, 6 и 7. Получившаяся в результате форма записи определяет разметку мест регулярных выражений.

Местами регулярного выражения называют промежутки между двумя буквами, между буквой и знаком дизъюнкции, а так же между буквой и скобкой. Кроме того, вводят начальное место, обозначаемое цифрой 0 и конечные места, отождествляемые с концом каждого слова. Для запрещенного события Sзапр последовательность событий можно не назначать.

Для размеченных регулярных выражений составляется отмеченная таблица переходов.

e

e

y1

e

y1

y2

e

y2

E

xj\ai

0

1

2

3

4

5

6

7

*

x1

1

3

*

4

*

*

*

*

*

x2

6

2

5

*

*

*

7

*

*

Чтобы система переходов автомата была определена при подаче любого входного слова, кроме состояний 0 7, вводится еще одно состояние, которое обозначается звездочкой *. В это состояние автомат переходит при подаче входных слов, которые не входят в события S1 и  S2. Выходным сигналом y1 отмечены состояния 2 и 4, y2 – состояния 5 и 7. Остальные состояния отмечены пустой буквой e.

Алгоритм синтеза усложняется, если регулярные выражения содержат итерационные скобки.

При разметке регулярных выражений различают основные и предосновные места.

Все места регулярного выражения, слева от которых стоит буква, а так же все начальные места называют основными.

Все места, справа от которых стоит буква, называют предосновными. Очевидно, некоторые места могут быть одновременно основными и предосновными.

Все основные места отмечаются различными десятичными числами, при этом всем начальным местам приписывается индекс 0. Затем каждое предосновное место отмечается совокупностью индексов основных мест. В эту совокупность входят индексы внутренних состояний, находясь в которых автомат может принять букву, стоящую справа от предосновного места.

Разметка регулярных выражений проводится по правилам подчинения мест. Рассмотрим эти правила на примере синтеза автомата, описываемого следующим регулярным выражением:

S = { x2 v x1 x2 v x1 x1 x2} x1 x1 x1 { x1 } x2  

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

  

В этом автомате сигнал y1 выдается после поступления подряд 3-ех букв x1, а y2 – после x2, следующей за серией их трех и более букв x1. В остальных случаях выдается буква e.

Индексы основных мест записываются непосредственно под регулярными выражениями, а индексы предосновных мест располагаются ниже индексов основных мест, под горизонтальной чертой. Выражение имеет 12 основных мест (от 0 до 12).

Проведем разметку предосновных мест. В начале определим, какие буквы может принять автомат, если он находится в состоянии 0. Поскольку на вход автомата может поступить любое из трех слов, записанных в итерационных скобках, то индекс 0 распространяется на каждое из трех предосновных мест, расположенных в начале этих слов. Учитывая, что событие, соответствующее выражению, записанному в итерационных скобках, содержит пустое слово е, индекс 0 распространяется на предосновное место, расположенное сразу за скобками. Это означает, что в частном случае ни одно из трех слов, заключенных в итерационные скобки, на вход автомата не поступит и тогда первой буквой, которую принимает автомат, является буква x1, стоящая непосредственно за итерационными скобками. Таким образом все эти предосновные места подчинены месту с индексом 0.

Теперь найдем предосновные места, на которые распространяется индекс 1. Если автомат находится в состоянии 1, то он может принять букву x2, расположенную  слева от места 1, т.к. эта буква находится в итерационных скобках и, следовательно, неоднократно может повторятся во входном слове автомата. Кроме того, в состоянии 1 автомат может принять начальные буквы других слов, расположенных в итерационных скобках, и букву x1, непосредственно следующую за этими скобками. Таким образом, месту с индексом 1 в данном случае подчиняются те же предосновные места, что и месту с индексом 0.Если автомат находится в состоянии 2, то он может принять только букву x2, расположенную справа от места с индексом 2. Поэтому индекс распространяется на единственное предосновное место, являющееся одновременно основным местом 2. Аналогично можно найти подчиненные места других основных мест.

По окончании слева, входящего в событие S  автомат переходит в состояние 11, после чего на вход автомата может поступить второе слово, этого события S, т.к. мы считаем, что автомат многократного действия. Автоматами многократного действия называются такие автоматы, которые могут неоднократно принимать слова, входящие в события, представленные в автомате. В таких автоматах индекс конечного места распространяется на те же предосновные места, на которые распространяется индекс начального места, т.е. по окончании очередного слова, на вход автомата этого слова может поступить вновь.


 

А также другие работы, которые могут Вас заинтересовать

20973. Управление учётными записями пользователей MS Windows 84.5 KB
  1] Лабораторная работа № 5 [1] Управление учётными записями пользователей MS Windows [2] Оглавление [2.5] Критерии оценки работы Цели работы Освоение средств администратора операционной системы MS Windows таких как: регистрации пользователей и групп в системе определения их привилегий определения параметров политики безопасности относящихся к аутентификации и авторизации пользователей при интерактивном входе Основные понятия Идентификацию и аутентификацию можно считать основой программнотехнических средств безопасности поскольку...
20974. Реализация политики безопасности в MS Windows 93 KB
  1] Лабораторная работа № 6 [1] Реализация политики безопасности в MS Windows [2] Оглавление [2.3] Политика безопасности [2.6] Критерии оценки работы Цели работы освоения средств администратора и аудитора защищенных версий операционной системы Windows предназначенных для: определения параметров политики безопасности; определения параметров политики аудита; просмотра и очистки журнала аудита.
20975. Ассоциативные списки и списки свойств 23.98 KB
  DEFUN F27 L COND NULL L NIL T CONS LENGTH CDR CAR L F27 CDR L пример SETQ SCLAD 'PROCESSORS MATHERBOARDS MEMORY PUT ‘PROCESSORS ‘CORE2DUO 5 PUT ‘PROCESSORS ‘CORE2EXTREME 8 PUT ‘MATHERBOARDS ‘ASUSp6t7 1 PUT ‘MATHERBOARDS ‘ASUSp6t6 12 PUT ‘MATHERBOARDS ‘INTELdp55kg 34 PUT ‘MEMORY ‘DDR 23 PUT ‘MEMORY ‘DDR2 34 PUT ‘MEMORY ‘DDR3 15 PUT ‘MEMORY ‘SDRAM 15 F27 SCLAD = 2 3 4 Исходный список содержит имена объектов списки свойств которых содержат некоторую информацию. DEFUN F29 L X COND...
20976. Создание фреймов и извлечение информации из них 22.85 KB
  Создать фреймы, описывающие фрагмент библиотечной системы, содержащие как декларативную, так и процедуральную (в том числе использующую переменные ФРЛ-среды) составляющие.
20977. Организация сетей фреймов 33.02 KB
  setq TodayYear 2010 deframeq Book1 Nazvanie value Programmirovanie_na_FRL Author value Book2 status: indirect slot: author Year value 2003 PageNum value 672 Popularity value 2000 Quantity value GetQuantity PARM: TodayYear STATUS: EVAL deframeq Book2 Nazvanie value Programmirovanie_na_LISP Author value Chernov_PBajdun_VBunin_A Year value 1993 PageNum value 40 Popularity value 600 Quantity value GetQuantity PARM: TodayYear STATUS:...
20978. Присоединённые процедуры. Организация сетей фреймов 25.93 KB
  deframeq flat1 Street value Prospect_Mira house value 8 flat value 10 floor value 2 square value 85 roomsnumber value 2 priceclass value 1 price value GetPrice status: eval deframeq flat2 Street value Gagarina house value 1 flat value 123 floor value 18 square value 78 roomsnumber value 3 priceclass value 2 price value GetPrice status: eval deframeq flat3 Street value Lesnaya house value 6 flat...
20979. Рекурсивная обработка числовой информации 18.16 KB
  DEFUN F1_1 M N COND = M N M M T M M F1_1 M 1 N DEFUN F1 M N COND OR = TYPE M INT = TYPE N INT WRONG_ARGUMENT_TYPE = N M F1_1 M N T F1_1 N M Определить наибольший общий делитель двух заданных чисел. Используем формулу DEFUN F2 A B A B F3 A B Определить наименьшее общее кратное двух заданных чисел. DEFUN F3 A B COND = B 0 A = A 0 B = A B F3 A B B T F3 A B A Вычислить квадратный корень из заданного числа....
20980. Рекурсивная обработка списковой информации 23.34 KB
  DEFUN F7_1 L COND NULL L 0 LISTP CAR L F7_1 CAR L F7_1 CDR L T IF NUMBERP CAR L CAR L F7_1 CDR L F7_1 CDR L DEFUN F7 L COND NOT LISTP L Error_Not_list T F7_1 L Определить максимальную глубину списка произвольной структуры. DEFUN F8_1 L COND NULL L 1 ATOM CAR L F8_1 CDR L T MAX 1 F8_1 CAR L F8_1 CDR L DEFUN F8 L COND NOT LIST L Error_Not_list T F8_1 L 1 Найти максимальный элемент в числовом списке...
20981. Конструирующая рекурсия 20.47 KB
  DEFUN F11_2 X L COND NULL L T = 0 REM X CAR L NIL T F11_2 X CDR L DEFUN F11_1 X Y S IF = 2 Y SETQ S NIL SETQ S F11_1 N Y 1 COND AND = 0 REM X Y F11_2 Y S CONS Y S T REVERSE S DEFUN F11 N COND OR NOT INTEGERP N NOT PLUSP N Error_Not_Integer = N 1 NIL T F11_1 N N Реверсировать элементы списка произвольной структуры на всех уровнях. DEFUN F12_1 L COND NULL L ' ATOM CAR L APPEND F12_1 CDR L LIST CAR L LISTP CAR L APPEND...