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

گرامر خطی راست و چپ

ارسال:
  

z522msn پرسیده:

گرامر خطی راست و چپ

سلام
گرامر خطی راستو چجوری به چپ تبدیل میکنند و بلعکس؟
نقل قول این ارسال در یک پاسخ

۰
ارسال:
  

mp1368 پاسخ داده:

RE: گرامر خطی راست و چپ

(۱۱ دى ۱۳۹۱ ۰۱:۲۵ ب.ظ)z522msn نوشته شده توسط:  سلام
گرامر خطی راستو چجوری به چپ تبدیل میکنند و بلعکس؟

سلام .
گرامر خطی راست رو با استفاده از قضیه تبدیل کن به NFA
NFA رو با استفاده از قضیه تبدیل کن به گرامر خطی چپ
نقل قول این ارسال در یک پاسخ

۰
ارسال:
  

z522msn پاسخ داده:

گرامر خطی راست و چپ

سلام
راه ساده تری نیستش? مسلا جای متغیرشو عوض کرد و ترمینال هاشو معکوس. کرد?
s-> abcA
بشه
s->Acba
نقل قول این ارسال در یک پاسخ

ارسال:
  

z522msn پاسخ داده:

RE: گرامر خطی راست و چپ

(۱۱ دى ۱۳۹۱ ۰۲:۰۴ ب.ظ)z522msn نوشته شده توسط:  سلام
راه ساده تری نیستش? مسلا جای متغیرشو عوض کرد و ترمینال هاشو معکوس. کرد?
s-> abcA
بشه
s->Acba


و همینطور برای تبدیل گرامر چپ به راست?
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ

ارسال:
  

mp1368 پاسخ داده:

RE: گرامر خطی راست و چپ

(۱۱ دى ۱۳۹۱ ۰۲:۰۴ ب.ظ)z522msn نوشته شده توسط:  سلام
راه ساده تری نیستش? مسلا جای متغیرشو عوض کرد و ترمینال هاشو معکوس. کرد?
s-> abcA
بشه
s->Acba

نه دیگه این که نمیشه شما الان کلا زبان گرامر رو با این کار عوض کردی .
تا جایی که من میدونم راه حل میانی واسه این کار نیست به غیر اون چیزی که بالا اشاره کردم.
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ

۰
ارسال:
  

cpt.mazi پاسخ داده:

RE: گرامر خطی راست و چپ

(۱۱ دى ۱۳۹۱ ۰۱:۲۵ ب.ظ)z522msn نوشته شده توسط:  سلام
گرامر خطی راستو چجوری به چپ تبدیل میکنند و بلعکس؟

برای تبدیل گرامرای خطی راست به چپ اول NFA گرامر اصلی رو به دست بیار ، بعد اگه این NFA چند تا حالت نهایی داشت باید تبدیلش کنی به یک حالت نهایی ، واسه این کار یک حالت جدید بکش بعد نهاییش کن و بعد از اون حالت نهایی های NFA اصلی با گذر لاندا برو به حالت جدیدت.
حالا حالت شروع رو به حالت نهایی و حالت نهایی رو به حالت شروع تبدیل کن.
بعد جهت یال های گراف رو عوض کن.
حالا گرامر خطی راست رو با استفاده از NFA جدیدی که بدست اوردی بنویس. بعدش سمت راست قواعد رو معکوس کن...
گرامرت حالا خطی چپ شده...
Smile
نقل قول این ارسال در یک پاسخ

۰
ارسال:
  

cpt.mazi پاسخ داده:

گرامر خطی راست و چپ


والا واسه اینکه مثلا بخایم یک گرامر چپگرد رو براش NFA بکشیم فکر نمیکنم به این سادگیا بشه. (من که هر چی فکر میکنم نمیدونم تابع تحول NFA اش چطوری میشه.
ولی خیلی سادست ، واسه اینکه یک گرامر چپگرد رو راستگرد کنی باید قواعد بازگشتی چپ رو حدف و به قواعد بازگشتی راست تبدیل کنی.
شبه نرمال سازی یه گرامر...
نقل قول این ارسال در یک پاسخ

۰
ارسال:
  

mp1368 پاسخ داده:

RE: گرامر خطی راست و چپ

سلام . با یک مثال روال کار رو بررسی میکنیم .

فرض کنید گرامر خطی راست زیر رو داریم

[tex]S\rightarrow aaS|bA[/tex]
[tex]A\rightarrow bbA|\lambda[/tex]

ابتدا اونو به یک ماشین متنهای تبدیل میکنیم . تبدیل این گرامر به ماشین کار زیاد سختی نیست




در ادامه این ماشین رو با قوانین زیر تبدیل به گرامر خطی چپ میکنیم

۱/ متغیر S گرامر همون حالت شروع ماشین است
۲/ به ازای انتقالی مثل از B به A با الفبای a یک قاعده به فرم [tex]A\rightarrow Ba[/tex] به گرامر اضافه میکنیم
۳/ به ازای انتقالی مثل از B به A با الفبای [tex]\lambda[/tex] یک قاعده به فرم [tex]A\rightarrow B[/tex] به گرامر اضافه میکنیم
۴/ اگر A یک حالت نهایی باشد قاعده [tex]A\rightarrow \lambda[/tex] رو به قواعد گرامر اضافه میکنیم

پس در نهایت گرامر خطی چپ به فرم زیر است

[tex]S\rightarrow T_{1}a[/tex]

[tex]A\rightarrow Sb|T_{2}a|\lambda[/tex]

[tex]T_{1}\rightarrow Sa[/tex]

[tex]T_{2}\rightarrow Ab[/tex]
نقل قول این ارسال در یک پاسخ

۰
ارسال:
  

z522msn پاسخ داده:

RE: گرامر خطی راست و چپ

سلام تو این سواله نمیشه t1 و t2 در نظر نگرفت تو حالت کلی nfa رو رسم کرد و به گرامر چپ تبدیلش کرد؟معکوس کنیم و ازاین چیزا؟
تو چپ به راست اینو درست نوشتم؟
" اگه بخوایم گرامر خطی چپو به راست تبدیل کنیم ترمینال هاشو معکوس میکنیم ومتغیرشو در سمت راست قرار میدهیم .
"
نقل قول این ارسال در یک پاسخ

ارسال: #۱۰
  

z522msn پاسخ داده:

گرامر خطی راست و چپ

سلام
پس اینکه مینویسم درسته دیگه:
اگه بخوایم گرامر خطی راستو به چپ تبدیل کنیم nfa شو بدست میاریم (منظورم nfa گرامر خطی راسته)بعد از اینکه یه حالت نهایی ساختیم < حالت نهایی رو به اولیه و بلاعکس تبدیل میکنیم و جهت یالهاشو معکوس میکنیم و اسم گرافها تغییر پیدا میکنه وگراف خطی راستشو مینویسیم و در اخر قسمت تولیدو معکوس میکنیم
.
و
اگه بخوایم گرامر خطی چپو به راست تبدیل کنیم ترمینال هاشو معکوس میکنیم ومتغیرشو در سمت راست قرار میدهیم .
درست نوشتم یا نه؟؟؟؟
نقل قول این ارسال در یک پاسخ



موضوع‌های مرتبط با این موضوع...
موضوع: نویسنده پاسخ: بازدید: آخرین ارسال
  آموزش زبان انگلیسی:گرامر cyruskingsolomon ۱ ۳,۳۵۷ ۲۲ فروردین ۱۴۰۰ ۰۱:۲۲ ب.ظ
آخرین ارسال: cyruskingsolomon
  گرامر زبان انگلیسی:صفت های ed و ing دار cyruskingsolomon ۳ ۳,۱۳۰ ۱۵ بهمن ۱۳۹۹ ۰۶:۴۱ ب.ظ
آخرین ارسال: cyruskingsolomon
  نسبت راست دو زبان fly2000 ۰ ۱,۳۶۰ ۰۲ آبان ۱۳۹۹ ۰۱:۱۵ ق.ظ
آخرین ارسال: fly2000
  نسبت راست دو زبان fly2000 ۰ ۱,۳۵۶ ۰۲ آبان ۱۳۹۹ ۰۱:۱۴ ق.ظ
آخرین ارسال: fly2000
  گرامر منظم Sanazzz ۶ ۷,۰۴۵ ۳۱ اردیبهشت ۱۳۹۸ ۰۴:۳۲ ب.ظ
آخرین ارسال: Sanazzz
  گرامر مستقل از متن Sanazzz ۴ ۵,۵۲۴ ۱۲ دى ۱۳۹۷ ۰۹:۵۹ ب.ظ
آخرین ارسال: Sanazzz
  گرامر Sanazzz ۰ ۱,۸۰۶ ۰۵ آذر ۱۳۹۷ ۰۴:۴۰ ب.ظ
آخرین ارسال: Sanazzz
  مفهوم انواع آنتروپی و ویژگی های غیر خطی سیگنال مغز baharkhanoom ۰ ۱,۹۷۲ ۲۶ خرداد ۱۳۹۷ ۱۰:۲۷ ب.ظ
آخرین ارسال: baharkhanoom
Exclamation تشخیص نوع زبان و گرامر به صورت تستی و سریع kamran_maneshtir ۰ ۲,۲۷۳ ۰۲ بهمن ۱۳۹۶ ۰۷:۴۶ ب.ظ
آخرین ارسال: kamran_maneshtir
  گرامر منظم fsmtnc ۲ ۳,۰۱۲ ۱۴ دى ۱۳۹۶ ۱۱:۵۷ ق.ظ
آخرین ارسال: fsmtnc

پرش به انجمن:

Can I see some ID?

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

Feeling left out?


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

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

Feeling left out?


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