Push Down Автоматы - PullRequest
       16

Push Down Автоматы

0 голосов
/ 02 декабря 2011

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

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

1 Ответ

2 голосов
/ 17 июля 2012

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

(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)

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

enter image description here

...