езикът е: { An B(2n) Cn | където n>=0 }
Мисля, че има, защото можете да го обработите по следния начин: натиснете A, натиснете B, за всяко C изскочи три пъти от стека, ако няма C и стекът е празен, връща true, иначе връща false.
езикът е: { An B(2n) Cn | където n>=0 }
Мисля, че има, защото можете да го обработите по следния начин: натиснете A, натиснете B, за всяко C изскочи три пъти от стека, ако няма C и стекът е празен, връща true, иначе връща false.
Използвайте лемата за изпомпване, за да докажете, че това не е език без контекст.
Да разгледаме s = ap b2p cp
След това разглеждаме vxy
, |vxy|<=p, |vy|>0
и uvixy iz в L
Имаме възможностите
- vxy = aj, j‹=p
- vxy = aj bk, j+k‹=p
- vxy = bj, j‹=p
- vxy = bj ck, j+k‹=p
- vxy = cj, j ‹=p
Във всеки случай няма константи u
и v
s.t. низът е в L, защото може да има само два символа в vxy
и тогава ще ни трябва променливо количество от третия, за да се покаже в u
или v
Предложените от вас автомати се провалят на AAAC, връщайки true. Това не гарантира, че имате два пъти повече Б от А.
Не съществува такъв PDA, защото този език не е контекстно-свободен. Ето едно кратко доказателство за това. Това се основава на факта, че контекстно-свободните езици са затворени при обратен хомоморфизъм (както е споменато в тези слайдове).
Даден е езикът L = { AnB2nCn | n в N}, разгледайте хомоморфизма h, дефиниран от
Обратният на този хомоморфизъм, приложен към L, е езикът h-1(L) = { x in * | h(x) L}. Преглеждайки избора на h, това е езикът { AnBnCn | n в N}. Този език е каноничен пример за език без контекст. Въпреки това CFL са затворени при обратен хомоморфизъм, така че тъй като h-1(L) не е контекстно-свободен, L не може да бъде контекстно-свободен. Следователно няма PDA за него.
Надявам се това да помогне!