
- •Общие положения
- •Перечень тем
- •Тема 1 Конечные автоматы. Построение конечных автоматов для распознания регулярных множеств.
- •Тема № 1 Конечные автоматы. Построение конечных автоматов для распознания регулярных множеств
- •Построение конечного автомата – распознавателя для заданного регулярного множества
- •Задание
- •Варианты заданий темы 1 для самостоятельной подготовки
- •Вопросы по теории темы 1 для самостоятельной подготовки
- •Тема № 2 Построение мп – автоматов Построение мп – распознавателей Задание
- •Построение мп – трансляторов
- •Варианты заданий для самостоятельной подготовки
- •Вопросы по теории темы 2 для самостоятельной подготовки
- •Тема № 3 Формальные языки и грамматики Построение мп – распознавателей для кс–грамматик задание
- •Варианты заданий для самостоятельной подготовки
- •Вопросы по теории темы 3 для самостоятельной подготовки
Варианты заданий для самостоятельной подготовки
Задание 1
Построить МП–распознаватель для распознания бинарных цепочек вида:
{0(n) 1(2n) 0(2m) 1(m)}.
Задание 2
Построить МП–транслятор для следующего преобразования бинарных цепочек: { 1(2n) 0(m)} { 0(n) 1(2n+m)}.
Задание3
Построить МП–распознаватель для распознания бинарных цепочек вида:
{0(n) 1(2m) 0(m)1(3n)}.
Задание 4
Построить МП–транслятор для следующего преобразования бинарных цепочек: {1(n+1) 0(m)} {0(n) 1(3m)}.
Задание 5
Построить МП–распознаватель для распознания цепочек, состоящих из символов a и b (в любой последовательности), в которых количество символов a на 2 больше, чем b.
Задание 6
Построить МП–транслятор для следующего преобразования бинарных цепочек: {1(n) 0(m)} {0(n) 1(2n+m+1)}.
Задание 7
Построить МП–распознаватель для распознания бинарных цепочек вида:
{a(2n) b(m) a(n + 2m+1)}.
Задание 8
Построить МП–транслятор для следующего преобразования цепочек:
{a(n) b(m) a(n) } { 0(3n) 1(2m+n)}.
Задание 9
Построить МП–распознаватель для распознания бинарных цепочек из 0 и 1, где 0 встречается только по два, а 1 по три.
Задание 10
Построить МП–транслятор для следующего преобразования бинарных цепочек: {0(n) 1(m) 0(k)} {1(n+m) 0(2n – m+k)}, если (2n> m).
Примечания :
1 В заданиях для входных цепочек используется двухсимвольный алфавит V={0,1} или V={a,b}; в круглых скобках после символа алфавита указано, сколько раз подряд он должен повториться в правильной цепочке (степень символа).
2 Для МП–транслятора приведены входная и выходная цепочки.
3 Значения m,n,k = 1,2,3...
Вопросы по теории темы 2 для самостоятельной подготовки
(см. соответствующий раздел лекций по ДМ)
1 Назначение и принципы работы автоматов с магазинной памятью (МП–автоматов).
2 Устройство и функционирование магазина МП–автомата.
3 Построение управляющей таблицы для МП–автомата и ее назначение.
4 Последовательность построения МП–автомата для распознания регулярных цепочек.
5 МП–транслятор, его назначение; отличие от МП–распознавателя.
Тема № 3 Формальные языки и грамматики Построение мп – распознавателей для кс–грамматик задание
Для заданной грамматики G[S] выполнить эквивалентные преобразования правил (исключить недостижимые и непродуктивные символы, при необходимости – устранить левостороннюю рекурсию). Определить тип полученной грамматики и построить автомат для ее распознания (КА– или МП–распознаватель); реализовать автомат–распознаватель и проверить его работу.
G[S] = (VT = {a,b}; VN = {S,A,B,C,D}; P={ SaAb(1); SbS(2); AbaB(3); AaC(4); Db(5); Bb(6)}) .
Р Е Ш Е Н И Е
1 Проверим нетерминальные символы грамматики на достижимость и продуктивность:
В исходной грамматике правила пронумерованы для ссылок.
G[S] = ( VT = {a, b}; VN = { S, A, B, C, D }; P = { S aAb;(1) S bS;(2)
A baBb;(3) A bC (4) ; D b; ( 5 ) B b;(6) } )
а) проверка достижимость:
( 1 ) ( 3 ) (указаны номера правил)
S A B (нетерминал D недостижим и не нарушая эквивалентности
\ С
из исходной грамматики удаляем правила (5) ;
б) проверка оставшихся нетерминалов на продуктивность:
В соответствии с правилом (6) продуктивен нетерминал B ; в соответствии с правилом (3) продуктивен нетерминал A; в соответствии с правилом (1) продуктивен нетерминал Z ; нетерминал С непродуктивен (правило (4) убираем в исходной грамматике).
После эквивалентных преобразований новая грамматика имеет вид:
G[S1] = ( VT = {a, b}; VN = { S, A, B }; P = { S aAb;(1) S bS;(2)
A baB (3) ; B b;(4) } )
2 Определим тип полученной грамматики: по виду правил можно сказать, что это КС-грамматика (неправосторонняя – несоответствие в правиле (1) ).
Полученная грамматика является S-грамматикой – (по определению)
Для такой грамматики множества “Выбор” для правил с одинаковыми левыми частями попарно не пересекаются (пересечение пусто). “Выбор S(1)” = { a }; “Выбор S(2)” = b
“Выбор S(1)” “Выбор S(2)” = { (пусто) }.
Вывод: исследуемая грамматика является S – грамматикой, для которой известен алгоритм построения МП–распознавателя.
3 Построим МП–распознаватель с одним состоянием.
Управляющая таблица имеет вид:
|
a |
b |
––| |
||||
|
E |
E |
Доп. |
||||
S |
Зам. Ab |
П |
Зам. S |
П |
Отв. |
||
A |
E |
Зам. aB |
П |
Отв. |
|||
B |
E |
Выт. B |
П |
Отв.
|
|||
a |
Выт. a |
П |
Е |
Отв. |
|||
b |
Е |
Выт. b |
П |
Отв. |
4 Для проверки правильности работы МП–распознавателя выведем. применяя правила грамматики правильную цепочку:
( 2 ) ( 1 ) ( 3 ) ( 4 ) <– номера правил
S b S b a A b b a b a B b b a b a b b
-
Необработ. цепочка
Обраб.
симв.
Верхн. маг. симв
Содерж. магазина
Действия с маг.
bababb –-|
ababb –-|
babb –-|
abb –-|
bb–-|
b–-|
–-|
b
a
b
a
b
b
–-|
S
S
A
a
B
b
S
S
A b
aB b
B b
B
О
Зам. Ab
Зам. aB
Выт. a
Выт. B
Выт. b
Доп.
5 Выполним полное описание МП – распознавателя:
Входной алфавит { a, b –-|}
Алфавит магазинных символов {S, A, B, a, b, }
Множество состояний {S1,}
Начальная конфигурация (S1, S,)
Допускающая конфигурация (S1, )
Управляющая таблица приведена выше.