10 بهمن 1390, 11:34 ب.ظ
11 بهمن 1390, 12:24 ق.ظ
سلام. pda این ماشین میتونه به این شکل کار کنه:
در حالت 1 به ازای هر a که از ورودی دریافت میکنه یه a توی پشته پوش میکنه و در حالت 1 میمونه (برای راحتی کار به ازای اولین a حرف c پوش میکنیم. یعنی بالای z0 یه c داریم.).
هروقت b دید از حالت 1 به حالت 2 میره و یه a پاپ میکنه. اگه روی پشتمون c بود به حالت 3 میریم.
در حالت 2 اگه b ورودیمون بود و روی پشته a بود اون a رو از پشته خط میزنیم و در 2 میمونیم.
در حالت 2 اگه b ورودیمون بود و روی پشته c بود c رو از پشته خط میزنیم و به 3 میریم.
در حالت 2 اگه b ورودیمون بود و روی پشته $ بود همون $ رو اضافه میکنیم و در 2 میمونیم.
در حالت 3 اگه b ورودیمون بود با پشته کاری نداریم و به 2 میریم.( مسلماً روی پشته z0 هست و با خوندن b مقدار m از n بیشتر میشه)
حالت شروع حالت 1 و حالت پایان حالت 2 و اگه مقدار m بتونه صفر بشه حالت 1 هم جزء جوابه.
هرزبان که بشه با PDA پذیرفت میشه برای یه گرامر مستقل از متن نوشت. گرامر این زبان:
S->aSb|A|B
A->aA|a
B->Bb|b
در حالت 1 به ازای هر a که از ورودی دریافت میکنه یه a توی پشته پوش میکنه و در حالت 1 میمونه (برای راحتی کار به ازای اولین a حرف c پوش میکنیم. یعنی بالای z0 یه c داریم.).
هروقت b دید از حالت 1 به حالت 2 میره و یه a پاپ میکنه. اگه روی پشتمون c بود به حالت 3 میریم.
در حالت 2 اگه b ورودیمون بود و روی پشته a بود اون a رو از پشته خط میزنیم و در 2 میمونیم.
در حالت 2 اگه b ورودیمون بود و روی پشته c بود c رو از پشته خط میزنیم و به 3 میریم.
در حالت 2 اگه b ورودیمون بود و روی پشته $ بود همون $ رو اضافه میکنیم و در 2 میمونیم.
در حالت 3 اگه b ورودیمون بود با پشته کاری نداریم و به 2 میریم.( مسلماً روی پشته z0 هست و با خوندن b مقدار m از n بیشتر میشه)
حالت شروع حالت 1 و حالت پایان حالت 2 و اگه مقدار m بتونه صفر بشه حالت 1 هم جزء جوابه.
هرزبان که بشه با PDA پذیرفت میشه برای یه گرامر مستقل از متن نوشت. گرامر این زبان:
S->aSb|A|B
A->aA|a
B->Bb|b