تالار گفتمان مانشت
سوال ساده در مورد نظریه زبان ها - نسخه‌ی قابل چاپ

سوال ساده در مورد نظریه زبان ها - sheypooor - 12 خرداد ۱۳۹۴ ۱۰:۳۸ ب.ظ

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

ماشین nfaλ زیر را به dfa تبدیل کنید?عکس این تصویر تو فایل ورد گذاشتم









گرامری بنویسید با Σ={a,b} که با هر علامتی که شروع میشود به همان علامت نیز ختم شود؟



گرامری بنویسید با Σ={a,b} که رشته هایی را تولید نماید که تعداد a ان یکی بیشتر باشد؟


برای زبان زیر یک گرامر بنویسید؟
L={an bm l n#m}
L={w l w€ {a,b}* , lwl mod 2=0}


ثابت کنید گرامر زیر ذاتا مبهم است؟
s aSb a l bSaS l λ


مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمی‌باشید. جهت مشاهده پیوندها ثبت نام کنید.


RE: سوال ساده در مورد نظریه زبان ها - Jooybari - 13 خرداد ۱۳۹۴ ۰۴:۰۸ ق.ظ

سلام. برای حفظ نظم انجمن لطفاً از این به بعد هر سوال رو در یک موضوع جداگانه با عنوان مناسب مطرح کنید.

سوال اولتون برام قابل خوندن نیست.

برای سوال دومتون:

S->aPa|bPb
P->aP|bP|y
منظور از y لانداست.

سوال سومتون رو متوجه نشدم.

سوال چهارم:
زبان اول:
S->aSb|A|B
A->aA|a
B->bB|b
زبان دوم:
S->aaS|abS|baS|bbS|y

سوال آخرتون به نظرم گرامرش این باشه S->aSbS|bSaS|y باید یک رشته بگید که به دو روش قابل تولید باشه. مثلاً رشته abab رو میشه اینطوری تولید کرد:
S->aSbS->a(bSaS)bS->abab
S->aSbS->aSb(aSbS)->abab

RE: سوال ساده در مورد نظریه زبان ها - sheypooor - 13 خرداد ۱۳۹۴ ۰۱:۴۹ ب.ظ

(۱۳ خرداد ۱۳۹۴ ۰۴:۰۸ ق.ظ)Jooybari نوشته شده توسط:  سلام. برای حفظ نظم انجمن لطفاً از این به بعد هر سوال رو در یک موضوع جداگانه با عنوان مناسب مطرح کنید.

سوال اولتون برام قابل خوندن نیست.

برای سوال دومتون:

S->aPa|bPb
P->aP|bP|y
منظور از y لانداست.

سوال سومتون رو متوجه نشدم.

سوال چهارم:
زبان اول:
S->aSb|A|B
A->aA|a
B->bB|b
زبان دوم:
S->aaS|abS|baS|bbS|y

سوال آخرتون به نظرم گرامرش این باشه S->aSbS|bSaS|y باید یک رشته بگید که به دو روش قابل تولید باشه. مثلاً رشته abab رو میشه اینطوری تولید کرد:
S->aSbS->a(bSaS)bS->abab
S->aSbS->aSb(aSbS)->abab

چشم حتما سوال اول رو لینکشو پایین صفحه گذاشتم تصویری هستش ممون میشم اونم پاسخ بدید شرمنده دیگه Blush

RE: سوال ساده در مورد نظریه زبان ها - Jooybari - 13 خرداد ۱۳۹۴ ۰۳:۰۲ ب.ظ

(۱۳ خرداد ۱۳۹۴ ۰۱:۴۹ ب.ظ)sheypooor نوشته شده توسط:  سوال اول رو لینکشو پایین صفحه گذاشتم تصویری هستش ممون میشم اونم پاسخ بدید شرمنده دیگه Blush

فایل ورد رو دیدم ولی انتقالهاش مشکل داشت.

RE: سوال ساده در مورد نظریه زبان ها - gunnersregister - 14 خرداد ۱۳۹۴ ۰۲:۵۲ ب.ظ

[tex]DFA[/tex] ساخته شده از روی [tex]NFA[/tex] شما:

[tex]Regular\: Expression[/tex] طبق صورت سوال:
[tex]L=\lambda a(a b)^{\ast}a b(a b)^{\ast}b a b[/tex]
[tex]Regular\: Expression[/tex] طبق [tex]DFA[/tex] ساخته شده :

[tex]L=\lambda a a(a bb^{\ast}a)^{\ast} b b(b aa^{\ast}b)[/tex]

گرامری که در رشته هایی را تولید کند که در آنها تعداد [tex]a[/tex] ها یکی بیشتر از تعداد [tex]b[/tex] ها باشه:

[tex]S\: \mapsto\: aA\: |\: Aa[/tex]
[tex]A\: \mapsto\: aAb\: |\: bAa\: |\: AA[/tex]

گرامری که رشته هایی رو تولید کنه که : با هر علامتی شروع بشن با همونم تموم بشن:

[tex]S\: \longrightarrow\: aAa\: |\: bAb\: |\: a\: |\: b\: |\: \lambda[/tex]
[tex]A\: \longrightarrow\: aA\: |\: bA\: |\: \lambda[/tex]

[tex]L=\{a^nb^m,\: \: \: n\ne m\}[/tex]

[tex]S\: \longrightarrow\: aSb\: |\: A\: |\: B[/tex]
[tex]A\: \longrightarrow\: aA\: |\: a[/tex]
[tex]B\: \longrightarrow\: bB\: |\: b[/tex]

گرامری که رشته های با طول زوج رو تولید کنه:

[tex]S\: \longrightarrow\: aSb\: |\: bSa\: |\: aSa\: |\: bSb\: |\: \lambda[/tex]

RE: سوال ساده در مورد نظریه زبان ها - fatemeh69 - 14 خرداد ۱۳۹۴ ۰۵:۱۴ ب.ظ

(۱۴ خرداد ۱۳۹۴ ۰۲:۵۲ ب.ظ)gunnersregister نوشته شده توسط:  گرامری که در رشته هایی را تولید کند که در آنها تعداد [tex]a[/tex] ها یکی بیشتر از تعداد [tex]b[/tex] ها باشه:

[tex]S\: \mapsto\: aA\: |\: Aa[/tex]
[tex]A\: \mapsto\: aAb\: |\: bAa\: |\: AA[/tex]
سلام
این گرامر صحیح نیست زیرا فقط رشته هایی را تولید می کند که تعداد a ها یکی بیشتر از b ها باشد و حتما با a شروع شود یا خاتمه یابد
و مثلا رشته هایی به فرم baaab را تولید نمی کند

تصویر داده شده را کمی اصلاح کردم و DFA معادل آن را هم گذاشتم
دلیلش هم گذر لامبدا از حالت ۱ به حالت ۲ و گذر لامبدا از حالت ۲ به حالت ۳ و گذر لامبدا از حالت ۳ به حالت ۱ است
گویی هر سه حالت در اصل یک حالت هستند

در واقع از حالت ۱ با a می توان هم در حالت ۱ ماند
هم بعد از لوپ زدن روی حالت ۱ با لامبدا به حالت ۲ رفت
هم بعد از لوپ زدن روی حالت ۱ با لامبدا به حالت ۲ رفت بعد با لامبدا به حالت ۳ رفت

پس می توان با دیدن یک a از جالت ۱ به هر کدام از حالت های ۱و۲و۳ رفت

با کمی بررسی متوجه می شوید که از حالت ۱ با دیدن b می توان به هر یک از حالت هاس ۱و۲ و ۳ رفت

هم چنین از هر حالتی که شروع کنیم با دیدن یک a یا بک b می توان به هر کدام از حالت های ۱و۲و۳ رفت

RE: سوال ساده در مورد نظریه زبان ها - gunnersregister - 14 خرداد ۱۳۹۴ ۰۶:۳۷ ب.ظ

قبل از هرچیز ممنونم بابت تشخیص زود هنگام اشکال بنده در حل سوال
[tex]DFA[/tex] ساخته شده از روی [tex]NFA[/tex] شما:
و واضح است که زبانش [tex]L=(a b)^{\ast}[/tex] هست.

گرامری که رشته هایی رو تولید کنه که : با هر علامتی شروع بشن با همونم تموم بشن:

[tex]S\: \longrightarrow\: aAa\: |\: bAb\: |\: a\: |\: b\: |\: \lambda[/tex]
[tex]A\: \longrightarrow\: aA\: |\: bA\: |\: \lambda[/tex]
ضمنا [tex]DFA[/tex] اوون در انتها پیوست شده.
[tex]Regular\: Expression[/tex] طبق صورت سوال:
[tex]L=\lambda a(a b)^{\ast}a b(a b)^{\ast}b a b[/tex]
[tex]Regular\: Expression[/tex] طبق [tex]DFA[/tex] ساخته شده :

[tex]L=\lambda a a(a bb^{\ast}a)^{\ast} b b(b aa^{\ast}b)[/tex]

[tex]L=\{a^nb^m,\: \: \: n\ne m\}[/tex]

[tex]S\: \longrightarrow\: aSb\: |\: A\: |\: B[/tex]
[tex]A\: \longrightarrow\: aA\: |\: a[/tex]
[tex]B\: \longrightarrow\: bB\: |\: b[/tex]



RE: سوال ساده در مورد نظریه زبان ها - fatemeh69 - 14 خرداد ۱۳۹۴ ۰۸:۳۷ ب.ظ

ممنون من تازه متوجه شدم که DFA ای که کشیدید مربوط یه اون زبانی هست که کرارکنر اینداو انتهای هر رشته برابر باشند

RE: سوال ساده در مورد نظریه زبان ها - sheypooor - 15 خرداد ۱۳۹۴ ۱۲:۲۰ ب.ظ

از تک تک دوستان تشکر میکنم بابت پاسخ به سوالات والا من یه هفته بعد امتحان نظریه زبان دارم تو سر کلاس خوب یاد نگرفتم و الان اومدم کتاب لینز و کارگهی و چند تا دیگه به همراه فیلم اموزشی رو دانلود کردم اما با یه جاهایی رو متوجه نمیشم مثل گرامر منظم برای یک زبان بنویسیدیا مثل عبارت منظم برای یک زبان بنویسید و چجوری میشه فهمید کجایه یه nfa یا dfa رو باید پایانی کرد و چرا بعضی جاها چندتا پایانی میزارن
دوستانی که این همه حرفه ای هستن روش و راهشونو که چجور این درس رو یاد گرفتن به منم بگن بلکه تونستم تو این چند روز درس رو یاد بگیرم
شرمنده زیاد شد دوباره ممنون از همگی

RE: سوال ساده در مورد نظریه زبان ها - gunnersregister - 15 خرداد ۱۳۹۴ ۰۱:۴۰ ب.ظ

سلام دوست عزیز.من تو نظریه حرفه ای نیستم ولی تجربه خودم رو میگم که برای من موثر بود.نظریه درسیه که نیاز به تمرین زیاد داره‌.برای اینکه این درس رو بفهمی باید همه تمارینشو حل کنی.اثبات کنی و ...
مثلا یکی از تمارینی که شما گذاشته بودید برای حل من بار اول اشتباه حل کردم و دیدم حلش از این روش غیر اصولیه نشستم و حل کردم و تازه خودم به روش خوب برای حل یه سوال نسبتا مشکل پیدا کردم.شما شروع به خوندن بکنید و اگه سوالی داشتید در مانشت بپرسید.البته چند سوال رو در یه صفحه مطرح نکنید تا شلوغ نشه و خودتوون هم سردرگم‌بشید.بابت این مورد هم یه پبام خصوصی براتوون فرستادم