زمان کنونی: ۰۴ اردیبهشت ۱۴۰۳, ۰۷:۴۸ ب.ظ مهمان گرامی به انجمن مانشت خوش آمدید. برای استفاده از تمامی امکانات انجمن می‌توانید عضو شوید.
گزینه‌های شما (ورودثبت نام)

پیدا کردن Head یک زبان از روی گرامر مستقل از متن

ارسال:
  

mehdi1993 پرسیده:

پیدا کردن Head یک زبان از روی گرامر مستقل از متن

سلام دوستان خسته نباشید!!
سوال داشتم در مورد پیدا کردن Head یک زبان از روی گرامر مستقل از متنش!!
کسی الگوریتمی داره؟

۲
ارسال:
  

fatemeh69 پاسخ داده:

RE: پیدا کردن Head یک زبان از روی گرامر مستقل از متن

این تمرین ۱۲ بخش ۱-۵ لینزه
روند کار رو از روی مثال توضیح می دم:
فرض کنید گرامر ما به این صورت باشه:
S-->aABb
A-->aAb|lambda
B-->xy
خب واضحه که گرامر ها همشون از S اشتقاق می شن
و ما تو Head گرفتن از یه زبانی از آخر رشته های اون زبان حذف می کنیم
به تعداد هیچ کاراکتر به تعداد یک کاراکتر به تعداد دو کاراکتر و ... از آخر رشته های زبان کم می کنمی
حالا اگه بخواهیم از آخر رشت ههای زبان کاراکتری رو حذف کنیم باید از آخر S کم کنسم چون می دونیم همه رشته ها از S اشتقاق می شن و اگه توی قانون S-->aABb همه ی نان ترمینال ها جایگذاری بشن رشته ما بدشتاومده پس آخر رشته می شه آخر S

تو همون قانون اول به aABb نگاه کنید اگه از خود این قانون بخواهیم head بگیریم یه بار می شه خودش یه بار می شه این که اون b آخر رو برداریم پس در مورد b آخر دو تا تصمیم داریم باشه یا نباشه که این دو حالت رو این جوری تو گرامر می ذاریم که به جای اون b آخر یه نان ترمینال جدید تعریف می کنیم که می تونه b یا لامبدا باشع پس گرامر بعدی مون می شه:
S1-->aABC
A-->aAb|lambda
B-->xy
C-->b|lambda


خب اگه تصمیم بگیریم که اون b آخر می مونه که هیچ
اما اگه تصمیم بگیریم b آخر رو برداریم پس انگار که در قانون اول به جای C لامیدا قرار دادیم و قانون C رو از گرامرمون برمی داریم
پس قانون اول می شه این شکلی:
S-->aAB
که حالا آخر شته مون میشه آخر B. حالا باز در مورد B آخر بحث می کنیم که باید به جاش xy بذاریم حالا رو آخرین کاراکترش یعنی y حرف می زنیم دو حالت داره بمونه یا برداشته شه
اگه بخواد بمونه که می شه y اگه بخواد برداشته شه باید به جاش لاندا بذاریم پس گرامر دوممون می شه:

S2-->aAB
A-->aAb|lambda
B-->xD
D-->y|lambda

حالا اگه این y بمونه که هیچ اکه نمونه کاراکتر قبلی ش x دو حالت داره بمونه یا برداشته شه گارمر سوم به این صورته:

S3-->aAB
A-->aAb|lambda
B-->x|lambda

اگه جای B رشته x بشینه که هیچ اگگه جاش لامبدا بشینه قانون اول می شه این شکلی:
S-->aA
که حالا این A جاش aAb یا لاندا می شینه به این که ممکنه جاش لاندا بشینه فعلا کار نداریم
اما اگه جای A رشته aAb بشینه باز سر b آخر دو حالت داریم
گرامر چهارممون می شه:

S4-->aA
A-->aAE|lambda
E-->b|lambda

اگه به جای E حرف b ذو بذاریم که هیچ اما اکه لاندا بذاریم می رسیم به aA که اون A آخرش می تونه جاش aA یا لاندا بشینه (که خود گرامر اینو از قبل داشته ) پس:

S5-->aAB
A-->aA|lambda

و بعد خود A اگه جاش لاندا بشینه

S6-->aAB
A-->a|lambda

و اگه در قانون اول به جای A لاندا بشینه :


S7-->a|lambda

و دیگه بیشتر از این جا نداره که کوچیک بشه
یعنی واضحه که همیشه کوچکترین رشته عضو head رشته لاامبداست

حالا گرامر مربوط به Head(L) برابر است با:
S-->S1|S2|S3|S4|S5|S6|S7

۰
ارسال:
  

Pakniat پاسخ داده:

RE: پیدا کردن Head یک زبان از روی گرامر مستقل از متن

اگر منظورتون از head : [tex]head(L)=\{x:\: y\: \in Sigma^{\ast}\: for\: xy\in L\}[/tex] باشد :

گرامر مستقل از متن که دارید رو طی مراحلی به فرم گریباخ ببرید - سپس با طی n مرحله رشته های موجود رو یاداشت کنید-x رو دارید!

ارسال:
  

mehdi1993 پاسخ داده:

RE: پیدا کردن Head یک زبان از روی گرامر مستقل از متن

ببخشید مگه چندتا head درایم تو نظریه!!!
ممنون بایت جوابتون اما من میخوام با عملگر head از روی گرامر یک زبان مثل L گرامر Head اون زبان رو بدست بیارم!!!
یافتن تمامی ارسال‌های این کاربر



موضوع‌های مرتبط با این موضوع...
موضوع: نویسنده پاسخ: بازدید: آخرین ارسال
  پیدا کردن دستگیره manager_66 ۵ ۴,۴۳۷ ۲۸ آذر ۱۴۰۰ ۱۲:۴۴ ب.ظ
آخرین ارسال: blackhalo1989
  کدام زبان برای هوش مصنوعی بهتر است؟ فرق بین زبان های هوش مصنوعی چیست؟ azam2075 ۳ ۵,۵۰۰ ۱۴ مهر ۱۴۰۰ ۰۷:۲۱ ب.ظ
آخرین ارسال: علیصا
  آموزش زبان انگلیسی:گرامر cyruskingsolomon ۱ ۳,۰۲۷ ۲۲ فروردین ۱۴۰۰ ۰۱:۲۲ ب.ظ
آخرین ارسال: cyruskingsolomon
  گرامر زبان انگلیسی:صفت های ed و ing دار cyruskingsolomon ۳ ۲,۶۵۵ ۱۵ بهمن ۱۳۹۹ ۰۶:۴۱ ب.ظ
آخرین ارسال: cyruskingsolomon
  تا به حال شده خدا فرصت زندگی کردن دوباره رو بهت بده؟مرگ از جلوی چشمات رد شده؟ abraham ۲۱ ۱۴,۷۲۵ ۲۰ دى ۱۳۹۹ ۱۰:۵۶ ب.ظ
آخرین ارسال: raam
  جایی برای پیدا کردن توابع آماده جاوااسکریپت f.b ۷ ۴,۰۵۰ ۲۰ آذر ۱۳۹۹ ۰۴:۰۸ ب.ظ
آخرین ارسال: calm
  متن به هم ریخته در نرم افزار Notepad HAMID3F ۱۵ ۲۱,۱۵۹ ۱۷ شهریور ۱۳۹۹ ۰۸:۲۶ ق.ظ
آخرین ارسال: rezasedghi100
  پیدا کردن موضوع پایان نامه k1.technology ۲ ۷,۷۷۶ ۲۱ خرداد ۱۳۹۹ ۱۲:۵۴ ب.ظ
آخرین ارسال: bankabzar
  انجام پایان نامه برای داده کاوی استقرایی روی FIM ویافتن ARM با دوتا یا بیشتر CUDA GPU zaliabbass ۲ ۴,۰۳۱ ۰۶ اسفند ۱۳۹۸ ۰۸:۳۳ ب.ظ
آخرین ارسال: bankabzar
  رنگ کردن رئوس گراف( ارشد علوم کامپیوتر ۹۸ ) ss311 ۰ ۱,۹۰۴ ۰۳ اسفند ۱۳۹۸ ۱۲:۴۳ ب.ظ
آخرین ارسال: ss311

پرش به انجمن:

Can I see some ID?

به خاطر سپاری رمز Cancel

Feeling left out?


نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close

رمزت رو فراموش کردی؟

Feeling left out?


نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. close