فصل نهم استدلال در منطق مرتبه اول Session 5 By: Nematzadeh
اهداف ۱- مفاهیم مرتبط با استدلال ۲-یکسان سازی ۳- فرم نرمال عطفی در منطق مرتبه اول
استدلال در منطق مرتبه اول Chapter 9 Universal instantiation نمونه سازی عمومی متغیر جمله مقدار ثابت=g با نمومنه سازی عمومی به حالت خاصی از جمله عمومی میرسیم
Existential instantiation نمونه سازی وجودی نمونه سازی وجودینمونه سازی وجودی k= مقدار ثابت
فایده نمونه سازی از طریق نمونه سازی عمومی و نمونه سازی وجودی منطق مرتبه اول خود به خود به فرم منطق گزارهای در میاید. اگر چنین شود ما میتونیم از ایده رزولوشن استفاده کنیم ا مساله را حل کنیم
ایراد نمونه سازی نمونه سازی به ۲ دلیل ارزش پیاده سازی ندارد: ۱- به خاطر وجود توابع تو در تو میتواند مقدار ترمها میتواند بی نهایت بر تکرار شود ۲ - ممکن است جملات نامربوط زیادی حاصل شود که به درد ما نمیخورد این روش کلا به درد نمیخورد
Unification یکسان سازی آلفا و بتا جمله هستند جایگزینی فقط به جای متغیر صورت میگیرد به جای متغیر میتونیم یا ثابت یا تابع یا متغیر قرار دهیم
Unification یکسان سازی برای یکسان سازی دو جمله باید سمبلهای گذارهایشان یکی باشد، ضمنا باید تعداد ترمها نیز با هم برابر باشد
Unification یکسان سازی
Unification یکسان سازی در صورت یکسان سازی برای یک متغیر، آن یکسان سازی به تمام ترمهای مابعد چه در جمله اول چه در جمله دوم اعمال میشود
Unification یکسان سازی
Most General Unifier
الگوریتم یکسان سازی
خلاصه الگوریتم صفحه قبل به زبان فارسی ۱- ابتدا سمبلهای گزارهای ۲ جمله ورودی را با هم مقایسه میکنیم، اگر برابر نبودند، غیر قابل یکسان سازی است، اگر برابر بودند ۲- ترم به ترم (از چپ به راست) یکسان سازی را انجام میدهیم( فراخوانی بازگشتی داریم) (ترم میتواند یک متغیر/ ثابت/ تابع باشد) ۳- اگر یکی از ۲ طرف متغیر باشد، طرف دیگر هر چیزی بود جای آن قرار میگیرد ۴- اما اگر هر ۲ طرف تابع بود، باید تابعها برابر (هم نام) باشند تا یکسان سازی شکست نخورد. ورودی هر تابع از از نوع ترم است. یکسان سازی را برای ورودیهای هر تابع نیز به صورت بازگشتی انجام میدهیم
الگوریتم یکسان سازی ۱- اگر در یکسان سازی در یک جمله یکی از ترمها (ترمi ) متغیر بود، ترم معادل در جمله بعدی هر چی بود جایگزین آن میشود و تمامی ترمهای i+1 در دو جمله اگر آن متغیر تکرار شد مقدار آن باید قرار گیرد ۲- اگر در یک جمله متغیر داشته باشیم و ترم معادل در جمله دوم یک تابع باشد به طوری که متغیرx و تابع g(x)باشد امکان یکسان سازی نیست ( شکست میخوریم) چون وقتی قرار است به جایx , g(x)بگذاریم به جای xدرونg(x) نیزg(x) (g(gx))گذشته میشود و این عمل به طور بازگشتی تکرار میشود و وارد یک حلقه بی نهایت میشویم OCCUR-CHECK <==> باید متغیرهای یکسان را تغییر نام دهیم
استدلال رو به جلو و رو به عقب میتوانیم از این ۲ استدلال برای استنتاج در منطق مرتبه اول همانند منطق گزارهای استفاده کنیم با این تفاوت که در منطق گزارهای از مدس پننز استفاده میکردیم اینجا از مدس پننز تعمیم یافته استفاده میکنیم)یکسان سازی( در اینجا نیز جملات باید به شکل هورن صریح باشند
مثال
تبدیل به فرم FOL جملات همه به فرم هورن صریح هستند The country Nono, an enemy of America Enemy (Nono, America)
Forward chaining
Forward chaining
Forward chaining
Backward chaining
Backward chaining
Backward chaining
Backward chaining
Backward chaining
Backward chaining
Resolution دومین روش رزولوشن است فرقش با منطق گزارهای این است که در اینجا رزولوشن تعمیم یافته به همراه یکسان سازی استفاده میکنیم ضمنا CNF سازی هم نسبت به منطق گزارهای اندکی تغییر دارد
Resolution رزولوشن تعمیم یافته Unify (lk,-lk) = θ L1 ˅ l2 ˅ … ˅ lk , -lk ˅…lm L1 ˅ l2 ˅ … ˅ lk-1 ˅ lk+1 ˅…lm
CNF
CNF 6