![]() |
نحوهی ساخت PDA برای a^nb^m با شرط برابر نبودن توانها - نسخهی قابل چاپ |
نحوهی ساخت PDA برای a^nb^m با شرط برابر نبودن توانها - mohandeszahra - 10 بهمن ۱۳۹۰ ۱۱:۳۴ ب.ظ
میخوام لطف کنید توضیح بدید این زبان چطور با PDA قابل تشخیصه؟؟ [tex]L={a^{n}b^{m}| n\neq m}[/tex] [ |
نحوهی ساخت PDA????? - Jooybari - 11 بهمن ۱۳۹۰ ۱۲:۲۴ ق.ظ
سلام. pda این ماشین میتونه به این شکل کار کنه: در حالت ۱ به ازای هر a که از ورودی دریافت میکنه یه a توی پشته پوش میکنه و در حالت ۱ میمونه (برای راحتی کار به ازای اولین a حرف c پوش میکنیم. یعنی بالای z0 یه c داریم.). هروقت b دید از حالت ۱ به حالت ۲ میره و یه a پاپ میکنه. اگه روی پشتمون c بود به حالت ۳ میریم. در حالت ۲ اگه b ورودیمون بود و روی پشته a بود اون a رو از پشته خط میزنیم و در ۲ میمونیم. در حالت ۲ اگه b ورودیمون بود و روی پشته c بود c رو از پشته خط میزنیم و به ۳ میریم. در حالت ۲ اگه b ورودیمون بود و روی پشته $ بود همون $ رو اضافه میکنیم و در ۲ میمونیم. در حالت ۳ اگه b ورودیمون بود با پشته کاری نداریم و به ۲ میریم.( مسلماً روی پشته z0 هست و با خوندن b مقدار m از n بیشتر میشه) حالت شروع حالت ۱ و حالت پایان حالت ۲ و اگه مقدار m بتونه صفر بشه حالت ۱ هم جزء جوابه. هرزبان که بشه با PDA پذیرفت میشه برای یه گرامر مستقل از متن نوشت. گرامر این زبان: S->aSb|A|B A->aA|a B->Bb|b |