Отталкивание автоматов

разработка автоматических автоматов для языка a^n b c^n+2, n>0 Меня попросили реализовать автоматы для вышеуказанного языка .. пожалуйста, помогите?

Я пытался выталкивать 2 (c) каждый раз, когда я помещаю (a) в стек, но, похоже, это не работает с нечетным числом (a) s ....


person user1078020    schedule 02.12.2011    source источник
comment
Начните с выталкивающего автомата для a^n c^n. Это более простой вопрос, и он заключает в себе большую часть тяжелой работы. Получив этот автомат, измените его, чтобы учесть b. Затем, для дополнительных двух c.   -  person Aubrey da Cunha    schedule 07.12.2011


Ответы (1)


Вы должны обрабатывать a обычным способом, т. е. для каждого чтения с ленты вы складываете A, пока не закончите чтение a, если вы читаете b, оставьте верхнюю часть стека как есть, наконец, вы должны обработать все С. Функция перехода:

(q0, a, Z) = (q0, AZ)
(q0, a, A) = (q0, AA)
(q0, b, A) = (q1, A)
(q1, c, A) = (q1, epsilon) (until the amount of a's are equal to the amount of c's)
(q1, c, Z)= (q2, Z) (read the first extra c)
(q2, c, Z)= (q3, Z) (read the second extra c)
(q3, epsilon, Z)= (qf, Z) (qf is the final state)

Графическое представление КПК:

введите здесь описание изображения

person franvergara66    schedule 17.07.2012