- •Донбасский институт техники и менеджмента международного научно-технического университета
- •Тема №1. Теория множеств. План.
- •1.1 Условные обозначения, принятые в конспекте лекций
- •1.2 Множества. Способы задания множеств
- •1.3 Операции над множествами
- •1.4 Действия с цепочками
- •1.5 Число элементов множества
- •2.2.Свойства бинарных отношений
- •2.3.Операции с бинарными отношениями
- •Тема №3. Элементы алгебры логики. План
- •3.1 Простые высказывания; логические связки
- •3.5 Отношения между высказываниями
- •3.6 Аргументы
- •Тема №4. Элементы теории графов План
- •4.1 Общие понятия и определения
- •4.2 Способы задания графов
- •4.3 Элементы графов
- •4.4 Операции с частями графа
- •4.5 Диаметр, радиус и центр графа
- •4.6 Параметры протяженности (диаметр, радиус и центр) графа
- •5.1 Конечные автоматы - распознаватели
- •5.2 Эквивалентность состояний ка
- •5.3 Недостижимые состояния
- •5.4 Недетерминированный конечный автомат
- •6.1 Автоматы-распознаватели с магазинной памятью
- •6.2 Автоматы-трансляторы с магазинной памятью
- •6.3 Задачи на построение мп-распознавателей.
- •6.4 Задачи на построение мп-трансляторов
- •Тема № 7. Грамматики План
- •7.1 Общие сведения
- •7.2 Классификация грамматик
- •7.3 Эквивалентные преобразования кс-грамматик
- •7.3.1 Удаление или добавление бесполезных (непродуктивных и не-
- •7.3.2 Добавление нетерминала
- •7.3.3 Подстановка правил
- •7.3.4 Изменение направления рекурсии
- •8.1 Построение ка для распознания автоматных грамматик
- •3.2 Построение ка-распознавателей для праволинейных грамматик
- •8.4 Построение мп-распознавателей для q-грамматик
5.2 Эквивалентность состояний ка
Два состояния конечного автомата эквивалентны тогда и только тогда, когда, начав работу из этих состояний, конечный автомат будет допускать одни и те же цепочки. Другими словами, если для состояний КА нет различающей цепочки, то такие состояния эквивалентны (различающая - такая цепочка, которая приводит КА из сравниваемых состояний к различному конечному результату).
Эквивалентные состояния, принадлежащие одному КА, не нарушая эквивалентности, можно заменить одним(в таблице переходов оставить одну из строк эквивалентных состояний, удалив остальные, при этом заменить имена удаленных состояний на оставленное).
Поиск эквивалентных состояний производится в процессе многократного разбиения множества состояний КА в зависимости от характера воздействия входных символов. Эта операция производится пошагово.
Шаг 1: множество состояний КА разбить на две подгруппы по возействию символа "конец цепочки" (допускающие и отвергающие) и записать их в строку в виде двух подмножеств; в каждом из полученных подмножеств все состояния по воздействию символа "конец цепочки" эквивалентны.
Шаг 2: повторить запись подмножеств, полученных на момент выполнения этого шага в виде новой строки и стрелками показать переходы для каждого состояния из предыдущей в новую строку по воздействию другого входного символа.
Шаг 3: выполнить разбиение подмножеств состояний на новые эквивалентные по входному символу подмножества, руководствуясь правилом - "оснований для разбиения подмножества нет, если все его элементы (состояния) имеют переход в одно подмножество".
Шаг 4: если в образованных подмножествах больше одного состояния, повторять шаг 2 до полного перебора всех входных символов; после завершения перебора два и больше состояния, входящие в полученные подмножества эквивалентны между собой.
5.3 Недостижимые состояния
Недостижимыми называются такие состояния КА, которые не могут быть достигнуты из начального состояния воздействием любых входных символов. Такие состояния исключаются из таблицы переходов. Процедура поиска недостижимых состояний следующая:
Шаг 1: записать одноэлементное множество, в которое входит начальное состояние;
Шаг 2: дополнить это множество состояниями, в которые переходит автомат из состояний, уже присутствующих в множестве при воздействии любых входных символов;
Шаг 3: если на шаге 2 множество не пополняется новыми элементами, то получен исчерпывющий список достижимых состояний; остальные состояния КА недостижимы.
Конечный автомат, из которого исключены недостижимые и эквивалентные состояния называется минимальным КА.
5.4 Недетерминированный конечный автомат
Недетерминированный конечный автомат (в дальнейшем НКА) представляет собой обычный КА с той разницей, что в таблице переходов паре входной символ - состояние ставится в соответствие множество состояний(а не единственное, как в КА) и начальных состояний может быть несколько.
В процессе построения такого недетерминированного конечного автомата должны быть определены следующие параметры:
а) входной алфавит V (конечное множество входных символов и символ "конец цепочки");
б) конечное множество состояний S;
в) множество начальных состояний НКА - Sнач (состояний, с которых может начинать работу НКА при обработке новой цепочки);
г) множество допускающих состояний - Sдоп (подмножество множества состояний S, с которым сравнивается достигнутое НКА состояние после прихода символа "конец цепочки");
д) таблица переходов (управляющая таблица), которая паре текущее состояние - входной символ ставит в соответствие несколько новых состояний); если паре текущее состояние - входной символ нельзя поставить в соответствие ни одно состояние из множества S, то клетку таблицы переходов оставляют пустой.
Работу НКА можно интерпретировать двумя способами:
1. На некоторых шагах при распознании цепочки с помощью НКА есть множество выборов. Если имеется хотя бы одна последовательность состояний, при которой НКА заканчивает работу в допускающем состоянии, то такая цепочка будет допущена НКА.
2. При возникновении альтернативы при работе НКА в выборе начального состояния или перехода, автомат распадается на конечные автоматы по количеству альтернатив, которые работают параллельно. Если при поступлении символа "конец цепочки" хотя бы один из параллельно работающих КА находится в допускающем состоянии, то такая цепочка допускается.
Существует процедура эквивалентного преобразования НКА в КА по следующему алгоритму (преобразуется таблица переходов НКА):
1. Изобразить столбцы для входных символов и записать их.
2. В первой клетке первой строки записать как множество все на чальные состояния.
3. Заполнить остальные клетки этой строки(кроме последней): по таблице переходов НКА выписать в виде множеств все состояния, в которые переходят состояния, записанные в первой клетке через соответствующие входные символы.
4. В первой клетке очередной строки записать одно из новых множеств состояний, которые получены в п.3 при заполнении клеток таблицы переходов и выполнить п.3.
5. Закончить процесс построение таблицы переходов после того как будут исчерпаны все варианты множеств, которые появились в таблице.
6. При заполнении столбца с символом "конец цепочки" ставить "допустить", если в множество состояний первой клетки строки входит хотя бы одно допускающее состояние и "отвергнуть" в противном случае.
7. Переобозначить множества состояний как новые состояния и заново заполнить таблицу переходов(получена таблица переходов эквивалентного КА).
8. Определить остальные параметры КА по полученной таблице переходов.
Описанную выше процедуру проиллюстрируем на конкретном примере.
Задан НКА: -------T---T-----T-----¬
¦ S ¦ k ¦ n ¦ --+ ¦
V = { 0, 1, --+ }; Sнач = { A, B }; +------+---+-----+-----+
S = { A, B, C }; Sдоп = { B, C }. ¦-->A ¦ A ¦ B,C ¦ 0 ¦
¦-->B ¦ B ¦ C ¦ 1 ¦
Преобразовать заданный НКА в КА и ¦ C ¦ ¦ A,C ¦ 1 ¦
минимизировать полученный КА. L------+---+-----+------
Р Е Ш Е Н И Е
1.Выполним процедуру преобразования НКА в КА по описанному алгоритму: ------T-----T-----T------¬ ----T---T---T-----¬
¦ S ¦ k ¦ n ¦ ---+ ¦ ¦ S ¦ k ¦ n ¦ --+ ¦
+-----+-----+-----+------+ +---+---+---+-----+
¦ A,B ¦ A,B ¦ B,C ¦ 1 ¦ ¦ a ¦ a ¦ b ¦ 1 ¦
¦ B,C ¦ B ¦ A,C ¦ 1 ¦ ¦ b ¦ c ¦ d ¦ 1 ¦
¦ B ¦ B ¦ C ¦ 1 ¦ ¦ c ¦ c ¦ e ¦ 1 ¦
¦ A,C ¦ A ¦A,B,C¦ 1 ¦ ¦ d ¦ f ¦ g ¦ 1 ¦
¦ C ¦ ¦ A,C ¦ 1 ¦ ¦ e ¦ ¦ d ¦ 1 ¦
¦ A ¦ A ¦ B,C ¦ 0 ¦ ¦ f ¦ f ¦ b ¦ 0 ¦
¦A,B,C¦ A,B ¦A,B,C¦ 1 ¦ ¦ g ¦ a ¦ g ¦ 1 ¦
L-----+-----+-----+------- L---+---+---+------
Переобозначения состояний следующие:
a = { A, B }; b = { B, C }; c = { B }; d = { A, C }; e = { C };
f = { A }; g = { A, B, C }.
2.Проверим состояния полученного КА на достижимость:
{a} -->{a,b} --> {a,b,c,d} --> {a,b,c,d,e,f,g}
Все состояния КА достижимы.
3.Проверим состояния полученного КА на эквивалентность:
Первое разбиение множества состояний на подмножества по входному символу "конец цепочки": {f}; {a,b,c,d,e,g}.
Проанализируем воздействие входного символа "k" на второе
подмножество:
d --> f; e --> { } ; остальные остаются в этом подмножестве. Есть основания выделить d и e в отдельные подмножества.
Теперь разбиение будет иметь вид: {f}; {d}; {e}; {a,b,c,g}.
Проанализируем воздействие входного символа "n" на последнее подмножество:
b --> d; c --> e; a --> b; g --> g.
Состояния b и c переходят в другие группы и их нужно выделить; состояние а - в выделенное на этом шаге состояние b и на этом основании его тоже нужно выделить. В результате:{f}; {d}; {e}; {a}; {b}; {c}; {g}.
Вывод: эквивалентных состояний нет; полученный КА является минимальным.
4. По таблице переходов КА определим остальные его параметры:
V = { k, n, --+ }; Sнач ={a}; Sдоп = {a,b,c,d,e,g};
S = {a,b,c,d,e,f,g}.
Тема № 6 Автоматы с магазинной памятью
План
6.1 Автоматы-распознаватели с магазинной памятью
6.2 Автоматы-трансляторы с магазинной памятью
6.3 Задачи на построение МП-распознавателей
6.4 Задачи на построение МП-трансляторов -4
