Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
pos.doc
Скачиваний:
161
Добавлен:
10.06.2015
Размер:
2.55 Mб
Скачать

Алгоритм Преобразование нка в дка

Вход: НКА .

Выход: ДКА .

Шаг 1. Пометить первый столбец таблицы переходов ДКА начальным состоянием (множеством начальных состояний) НКА.

Шаг 2. Заполняем очередной столбец таблицы переходов , помеченный символами, для этого определяем те состояния, которые могут быть достигнуты из каждого символа строкипри каждом входном символе. Поместить каждое найденное множество(в том числе) в соответствующие позиции столбцатаблицы, т.е.:

для некоторого }

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

Шаг 4. Если в таблице переходов КА есть столбец с незаполненными позициями, то перейти к шагу 2.

Шаг 5. Во множество ДКАвключить каждое множество, помечающее столбец таблицы переходови содержащееНКА.

Шаг 6. Составить таблицу новых обозначений множеств состояний и определить ДКА в этих обозначениях.

Этот алгоритм обеспечивает отсутствие недостижимых состояний ДКА, но не гарантирует его минимальности.

Пример Пример 2.1. Дана регулярная грамматика с правилами. Построить по регулярной грамматике КА и преобразовать полученный автомат к детерминированному виду.

Построим по НКА из примера 2.1 ДКА.

1 Строим таблицу переходов для ДКА (таблица 2.2).

Таблица 2.2 – Построение функции переходов для ДКА

Шаг

1

2

3

4

5

6

7

F

S

A, B

A, N

B, N

A

N

B

a

A, B

A, N

A

N

A

N

b

B, N

N

B

N

B

2 Во множество заключительных состояний автомата включим элементы.

3 Введем следующие новые обозначения состояний автомата : (A,B), (A, N)=D, (B, N)=E.

4 Искомый ДКА определяется следующей пятеркой объектов: ,, функция переходов задана таблицей 2.3,,.

Таблица 2.3 – Функция переходов для ДКА

S

A

B

С

D

E

N

a

C

A

N

D

A

N

b

N

B

E

N

B

Граф полученного ДКА представлен на рисунке 2.1.

Рисунок 2.1 – Граф ДКА

2.3.3.2 Минимизация конечного автомата

Конечный автомат может содержать лишние состояния двух типов: недостижимые и эквивалентные состояния.

Определение Два различных состояния и в конечном автоматеназываютсяn-эквивалентными, nN{0}, если, находясь в одном их этих состояний и получив на вход любую цепочку символов : T*, ||n, автомат может перейти в одно и то же множество конечных состояний.

Определение Состояние q КА называется недостижимым, если к нему нет пути из начального состояния автомата.

Определение КА, не содержащий недостижимых и эквивалентных состояний, называется приведенным или минимальным КА.

В теории КА доказано, что каждое регулярное множество распознается единственным для данного множества ДКА с минимальным числом состояний. Рассмотрим алгоритмы построения минимального ДКА.

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