Скачиваний:
201
Добавлен:
20.05.2014
Размер:
3.02 Mб
Скачать

I. Макроподход.

(задание абстрактного конечного автомата)

В этом случае задать конечный автомат при условии, что заданы алфавиты , - значит описать функции и  или описать поведение этого автомата.

Для задания функций  и  обычно используют автоматную таблицу (состоящую из двух подтаблиц – таблицы переходов и таблицы выходов), диаграмму переходов или матрицу переходов.

ОПИСАНИЕ ФУНКЦИОНИРОВАНИЯ КОНЕЧНОГО АВТОМАТА.

  1. Автоматная таблица. Таблицы переходов (qiaj) = ql и выходов (qiaj) = bk, имеет вид

A

Q

a1

...

aj

...

am

B

Q

a1

...

aj

...

am

q0

q2

ql

qp

q0

B8

bi

bt

qi

q4

qr

qm

qi

B7

bl

br

qn

qt

qz

qk

qn

bk

b1

bl

а их совмещение есть автоматная таблица

A

Q

a1

...

aj

...

am

q0

q2b8

qlbi

qpbt

qi

q4b7

qrbl

qmbr

qn

qtbk

qzb1

qkbl

  1. Диаграмма автомата. Диаграмма автомат – ориентированный граф, вершинам которого взаимно-одназначно соответствуют элементы Q, а дугам приписаны некоторые множества пар вида <aibj>, ai  A bj  B. Функции  и  определяются следующим образом: (qlai)=qr, (qlai)=bj, если ребру, исходящему из вершины ql, приписана пара <aibj> и эта дуга ведет в вершину qr. Пример: Пусть задана автоматная таблица

A

Q

a1

a2

q0

q0b2

q1b2

q1

q1b1

q0b2

Соответствующая диаграмма имеет вид: Замечание: Этот орграф (безbi) есть регулярная грамматика .

  1. Матрица переходов (соединений).

Матрица переходов представляет собой квадратную матрицу размера , в который номера строк и столбцов соответствуют элементам множеств внутренних состоянийQ. Клетка матрицы на пересечении i-той строки и j-того столбца заполняется дизъюнкцией пар «вход-выход», которая приписана дуге графа, исходящей из i-той вершины в j-тую вершину. При отсутствии такой ветви клетка заполняется нулем или остается свободной. Так для рассмотренного выше примера имеем:

Q

Q

q0

q1

q0

a1b2

a2b2

q1

a2b2

a1b1

ОПИСАНИЕ ПОВЕДЕНИЯ КОНЕЧНОГО АВТОМАТА

Для задания поведения конечного автомата (преобразователя) необходимо описать функцию , отображающую А* в В*(т.е.). Эта функция может быть задана информационным деревом. Из каждой вершины информационного дерева исходятm ребер , взаимно-однозначно соответствующих буквам алфавитаA. Каждой вершине приписано состояние автомата, а каждому ребру – буква алфавита B, следующим образом: корню приписано состояние q0; если некоторой вершине приписано состояние qi, то ребру, соответствующему букве a из A, приписана буква , а вершине, в которую ведет это ребро, приписано состояние . Каждому словуA* соответствует единственная последовательность ребер этого дерева такая, что слово wB* совпадает со значением .

Для рассматриваемого примера имеем следующее поддерево информационного дерева: (левые ребра, исходящие из вершин соответствуют символу a1, правые – символу a2).

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

В рассматриваемом примере представимое событие (язык, множество слов) записывается как регулярное выражение в алгебре

, т.е.

Такие события могут быть также заданы как множества слов, порождаемых (выводимых) в некоторой формальной системе (ex, грамматике). Так, для автоматной (регулярной) грамматики <T,N,J,P> (здесь T и N соответственно терминальный и вспомогательный алфавиты, J – аксиом, т.е. JN, P – продукция вида BiaBj, либо Bia)/ Слово =a1…an выводимо, если в P имеются правила Ja1Bi2, Bi2a2Bi3, …, Binan

Соседние файлы в папке Лекции Маркина