تالار گفتمان مانشت
Pda - نسخه‌ی قابل چاپ

Pda - cheraghe_jado - 18 فروردین ۱۳۹۰ ۰۴:۳۷ ب.ظ

سلام سلام من اومدم
من تو کتاب نظریه زبانها ابراهیم اکبری پشته ورو یاد گرفتم اما تو کتاب پیتر لینز از علامتهایی مثل z ,0,1 استفاده کرده ک اصلا نمیذئنم چیطور تو پشته ب کار میان میشه توضیح بدید
با سپاس

Pda - ف.ش - ۱۸ فروردین ۱۳۹۰ ۰۶:۳۴ ب.ظ

Z نشاندهنده اینه که پشته خالی است.یعنی اگه علامت بالای پشته z بود میفهمه که دیگه چیزی توی پشته نیست.

مثل اینه که شما یک کاغذ قرمز ته یک جعبه قرار بدی روی اون هم یه سری کاغذ وقتی کاغذها رو یکی یکی برداشتی و به اون کاغذ قرمز رسیدی میدونی که دیگه چیزی ته جعبه نیست.

اون ۰ , ۱ هم مثلا شما میخوای a رو پوش کنی توی پشته به جاش ۰ پوش میکنی چون مثلا الفبای پشته ۰و۱ , a,b نمیفهمه که چی هستن فقط ۰,۱,z رو تشخیص میده خوب شما میای میگی ۰ یعنی a و ۱ یعنی b حالا هر چی a دیدی به ازاش توی پشته ۰ بریز. یه جور شبیه سازیه.که باید خودتون طبق اون زبان تشخیص بدین که به جای چه حرفی چی پوش کنید و چی پاپ کنید.

مثل اینه که شما بخوای یه تعدادی میوه رو بشماری حالا بیای روی کاغذ به ازای هر میوه یک خط بکشی و به ازای هر میوه ای که خورده میشه روی اون خط یه خط مورب بکشی.

امیدوارم که مفهوم رو رسونده باشم.

Pda - cheraghe_jado - 18 فروردین ۱۳۹۰ ۰۶:۴۳ ب.ظ

مرسی تا حدودی بله

میگم مثلا q,0,0z
یا q ,a,11 اینا چه مفهومی دارن

Pda - cheraghe_jado - 19 فروردین ۱۳۹۰ ۱۱:۳۶ ب.ظ

میشه بگید این عبارات چطوری خونده میشه ؟

RE: Pda - ف.ش - ۲۰ فروردین ۱۳۹۰ ۱۰:۰۶ ب.ظ

شما سوالتون رو درست مطرح نکرده بودین با خودم میگفتم چرا جور در نمیاد!! الان فهمیدم که سوالتون رو ناقص مطرح کردین.

[tex]\delta (q,a,z)=(q1,0z)[/tex]

یعنی اگر در وضعیت q بودی و عنصر بالای پشته z بود (پشته خالی بود )به جای a یک عدد صفر در پشته پوش کن و به وضعیت q1 برو.

[tex]\delta (q1,a,0)=(q1,00 )[/tex]

مثل قبلی است با این تفاوت که عنصر بالای پشته ۰ است و ۰ را نیز پوش میکند.

[tex]\delta (q1,b,0)=(q1,\lambda )[/tex]

شبیه قبلی فقط ۰ بالای پشته با b خوانده شده زده میشود یعنی خواندن یک b باعث کم شدن یک صفر از پشته میشود.

[tex]\delta (q1,b,1)=(q1,11 )[/tex]

شبیه قبلی با این تفاوت که ۱ روی پشته پوش میشود و چیزی کم نمیشود.

به اینها میگن تابع انتقال ...

حالا اگه شما aabb رو بخونید

صفر پوش میشه.صفر پوش میشه.صفر پاپ میشه صفر پاپ میشه. پشته خالی است و برای مثال میتونیم تشخیص بدیم که این رشته جز a^nb^n است.

یعنی باید تابع انتقالها رو به نحوی بنویسیم که زبانی که میخواهیم رو تشخیص بده .البته من انتقالهای a^nb^n رو کامل ننوشتم فقط در حدی نوشتم که درک کنید منظور از تابع انتقال چیه.