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

1)ДКА – это пятерка вида (К V M S Z), где

К – алфавит состояний распознавателя

V – входной алфавит

M – функция перехода M=K x V →K

S – начальное состояние S Є K

Z – множество заключительных состояний

Принцип работы распознавателя:

На его вход поступает буква за буквой цепочка символов и в соответствии с тем, этот ли класс цепочек надо распознать, формируется выход распознавателя. Входная цепочка символов – некоторая последовательность букв входного алфавита. Например, А = {a,b,c}= aabca,  - пустая цеп.

Автомат начинает работу с состояния S. Если работа автомата заканчивается в одном из состояний Z, то цепочка считается распознанной. Если в каком-либо другом состоянии – нераспознанной. Автомат можно представить в виде графа, где вершины – состояния, а дуги взвешены символами входного алфавита. Либо можно задать таблицей, где по горизонтали – символы вход. алф., а по вертикали – симв. алфавита ДКА. На пересечении их – возможный переход в данное состояние по данному условию.

K = M (K,V) – функция перехода

2) Синтез автомата – построение его описания в виде таблицы переходов. Как правило в нач. синтеза задается некот. алгоритм функц-я устройства.

3) Рассмотрим метод ролей на примере задачи построения конечного автомата для распознавания веществ. чисел в языке Basic. Для начала выпишем несколько типовых способов записи веществ. чисел в Basic. Например:

12Е+08, 12Е08, 12Е-08, 12, .12, 12.5

Разобьем литеры на классы {Ц , знак, Е, . }, где

Ц = {1,2,3….9}, знак = {+,-}, Е=Е, . = .

Выпишем след. числа

1123 4 5 6 733 4 6 6 - № роли

12.5Е+5 .12Е12 12.Е

Теперь распишем все роли:

1 – цифра, стоящая до десятич. точки, 2 - десятичная необязательная точка, 3 - цифра, стоящая после десятич. точки, 4 – символ порядка, 5 – знак порядка,

6 – цифра порядка, 7 – обязательная десятичная точка

После того как над посл-ю сформир. роли всех символов, каждая роль отождествляется с состоянием конечного автомата и строится таблица переходов. (F-ошибка)

Ц

Е

.

знак

y/n

S

1

F

7

F

n

1

1

4

2

F

y

2

3

4

F

F

y

3

3

4

F

F

y

4

6

F

F

5

n

5

6

F

F

F

n

6

6

F

F

F

y

7

3

F

F

F

n

4) Минимизация автоматов

С уть её заключается в том, что бы постролить такой автомат, который имел бы тmin количество состояний. Используя понятие эквивалентности. На множестве состояний нужно построить классы эквивалентностей. Пример: Пусть задан следующий конечный распознаватель.

Минимизация автомата начинается с удаления всех недостижимых состояний (вершин). Недостижимое – это такое состояние, в которое нельзя попасть из начального состояния S (в нашем примере B3, B4, Z). Удаляем эти состояния вместе со связями (дугами) Выполним эти действия.

Эквивалентные состояния. Рассмотрим ниже понятие эквивалентности. Состояние является в полном смысле математическим понятием отношения эквивалентности на множестве состояний. Два состояния А и В являются эквивалентными , если для них выполняются:

- Условие подобия. Очевидно, что А и В, если они эквивалентны, должны быть либо допускающие, либо отвергающие.

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

P = M(A, t) Q = M(B, t) P~Q

Тривиальный алгоритм поиска эквивалентных состояний основан на методе таблиц эквивалентности.

Метод эквивалентных таблиц основан на пр-ке функций переходов – на исследовании формулы M(A, t) ~ M(B, t). Выбирается пара, для неё строиться пустая таблица эквивалентности. На каждый входной символ заполняется новая пара состояний. Если во вновь полученных парах присутствует пара, в которой условие подобия не совпадает => исходная пара не эквивалентна. Если во вновь полученной паре подобие соблюдается, но условие соблюдается преемственности неявно, то эта пара записывается в 1й столбец таблицы и выч. для неё произв. след. обр.

Так выделяется множество эквивалентных состояний. Трудоёмкость метода < n^2., т.к. при исследовании пар эквивалентности состояний сразу выясняются эквивалентные множества других пар.

Проделав эту процедуру на нашем примере:

=> Эквивалентные состояния: (U1, U3) (U2, U4) (B1, B2) (F1, F2)

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

(U1, U3) -> U1

(U2, U4) -> U2

(B1, B2) -> B

(F1, F2) -> F

В таблице переходов имя каждого эквивалентного состояния заменяется на имя подмножества

И щем одинаковые строки и вычёркиваем их. Получим новую таблицу:

В соответствии с новой таблицей переходов нужно нарисовать автомат:

Минимизация автомата выполнена в 2 приёма:

1. Удаление недостижимых состояний

2. Поиск эквивалентных состояний.

Минимизация методом разбиения на блоки

Суть разберём на нашем примере (вопрос №9).

1. Все исходные состояния разбиваются на 2 блока по эквивалентности: допускающие и не допускающие.

На последних шагах разбивают состояния на блоки по преемственности: если преемник находиться в том же блоке, что и данное состояние.

Смысл заключается в исследовании всех символов сразу. На 1 шаге разбиваем по принципу подобия (да/нет) На 2 и остальных происходит испытание всех блоков по одному входному символу (0,1) и их расщепление по признаку, где находиться преемник: в 1 и то же расщепление попадают состояния, имеющиеся в 1 и том же блоке => пока не прекращается расщепление блоков. Пр-е надо остановиться. И каждый из блоков будет содержать эквивалентные состояния.