Автомати за натискане надолу

проектиране на pushdown автомати за езика a^n b c^n+2, n>0 Бях помолен да внедря автоматите за горния език .. моля помогнете?

Опитах да извадя 2 (c)s всеки път, когато натисна (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, ако прочетете 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)

Графичното представяне на PDA е:

въведете описание на изображението тук

person franvergara66    schedule 17.07.2012