350 likes | 684 Views
فصل نهم. 07. استنتاج در منطق مرتبه اول. yousefpour@shomal.ac.ir. Alireza yousefpour. فصل هشتم: استنتاج در منطق مرتبه اول. قوانین استنتاج منطق مرتبه اول. 1. Modus Ponens. 2. And – Elimination. 1 2 … n ______________ i. P Q , P ____________ Q .
E N D
فصل نهم 07 استنتاج در منطق مرتبه اول yousefpour@shomal.ac.ir Alirezayousefpour
فصل هشتم: استنتاج در منطق مرتبه اول قوانین استنتاج منطق مرتبه اول 1. Modus Ponens 2. And – Elimination 1 2 … n ______________ i P Q , P ____________ Q 3. And – Introduction 4. Or – Introduction 1 ,2 , … ,n ____________ 1 2 … n i ____________ 1 2 … n 5. Resolution • , • __________ • • , • ____________ • OR
فصل هشتم: استنتاج در منطق مرتبه اول علامت SUBST(,): از علامت SUBST(,) برای شرح نتیجه بکارگیری جانشینی در جمله استفاده می شود. SUBST( {x/hamid} , male(x) ) = Male( hamid ) SUBST( {x/Sam , y/Pam } , like(x,y) ) = like( Sam, Pam ) ترم زمینی g: Ali ترمی بدون متغیر را گویند Missle ( M1 ) Father ( Hossein , Hamid )
فصل هشتم: استنتاج در منطق مرتبه اول سه قانون استنتاجي جديد: 1. حذف سور عمومی Universal Elimination برای هر جمله ، متغیر v و ترم زمینی g داریم: v, ________________ SUBST( {v/g} , ) x, Likes( x , icecream ) ________________________ SUBST( {x/BEN} , Likes( BEN , icecream ) ) جانشین استنباط
فصل هشتم: استنتاج در منطق مرتبه اول 2. حذف سور وجودی Existential Elimination برای هر جمله ، متغیر V و ثابت K که جای دیگر پایگاه دانش ظاهر نشده است داریم: v, ________________ SUBST( {v/K} , ) x, Kill( x , victim ) ________________________ SUBST( {x/Murderer} , Kill( Murderer , victim ) ) جانشین استنباط
فصل هشتم: استنتاج در منطق مرتبه اول 3. معرفی سور وجودی Existential Introduction برای هر جمله ، متغیر v که در وجود ندارد و ترم زمینی g که در موجود است داریم: ________________ v, SUBST( {g/v} , ) Likes ( jerry , icecream ) _____________________ x likes ( x , icecream ) با جانشینی SUBST( { jerry/x} )
فصل هشتم: استنتاج در منطق مرتبه اول مودسپوننس تعمیم یافته Generelined Modus Ponens (GMP ) تعمیمی از قانون استنتاج Modus Ponens که شامل And-Introduction، حذف سور عمومی و Modus ponens است برای جملات اتمی pi و p’i و q که برای تمامی iها SUBST(,p’i ) = SUBST(,pi) وجود دارد آنگاه : p1 p2 … pn q p’1 , p’2 , … , p’n __________________ SUBST( , q )
فصل هشتم: استنتاج در منطق مرتبه اول مثال: Missile( M1) Owns (NONO, M1) x Missile(x) owns( NONO , x) sells( WEST , NONO, x ) در یک مرحله با جانشینی {x/ M1}جمله جدید زیر استنباط می شود: sells( WEST , NONO, M1 ) یافتن xای در پایگاه دانش که چنین xای موشک است و NONO مالک x است و سپس ثابت شود که WEST این موشک را به NONO می فروشد
فصل هشتم: استنتاج در منطق مرتبه اول Modus Ponens به سه دلیل یک قانون استنتاج موثر است : • با ترکیب تعدادی از استنتاج های کوچک و تبدیل آن به یک استنتاج بزرگ مراحل زیادی را تقلیل می دهد • این قانون از جانشینی هاییاستفاده می کند که موثر بودنشان (برعکس حذف تصادفی سور عمومی) ضمانت می شود. الگوریتم یکسان سازی دو جمله را می گیرد و جانشینی ا در صورت وجود برمیگرداند که آن دو جمله یکسان شوند • این قانون تمام جملات موجود در پایگاه دانش را به فرم کانونی در می آورد. انجام این عمل یکبار در مرحله آغازین، ما را از اتلاف زمان برای انجام تبدیلات در طول مرحله اثبات بی نیاز می کند
فصل هشتم: استنتاج در منطق مرتبه اول Canonical فرم کانونی سعی می کنیم تا مکانیزیماستنتاجی را با قانون استنتاج مودسپوننس تعمیم یافته (GMP) بوجود آوریم. تمام جملات موجود در پایگاه دانش باید بصورتی باشند که با یکی از فرضیات قانون GMPمطابقت داشته باشند. فرم کانونی برای GMP متضمن این نکته است که هر جمله در پايگاه دانش باید از نوع اتمي يا شرطي(با يک ترکيب عطفي از جملات اتمي در طرف چپ و يک اتم منفرد در طرف راست ) باشد. جملاتی از این قبیل جملات هورن (Horn sentence) نامیده می شود پایگاه دانشی که فقط شامل جملات هورن باشد Horn Normal Form نامیده می شود ما جملات را به جملات Horn زماني تبديل ميکنيم که ابتدا وارد پايگاه دانش، با استفاده از حذف سور وجودي و حذف And شده باشند x Owns( Nono, x ) Missile( x ) مثال: به دو جمله اتمی هورن شامل Owns( Nono , M1 )و Missile( M1 )تبدیل می شود
فصل هشتم: استنتاج در منطق مرتبه اول Unification یکسان سازی الگوریتم یکسان سازی دو جمله را می گیرد و جانشینی را در صورت وجود برمیگرداند تا آن دو جمله یکسان شوند وظيفه روتين يکسانساز Unify، گرفتن دو جمله اتمي p، q و برگرداندن يک جانشين که p، q را مشابه هم خواهد ساخت،. (اگر چنين جانشيني موجود نباشد، Unify، failبرميگرداند.) UNIFY( p , q ) = ( SUBST(,p) = SUBST( ,q ) ) جانشین – یکسان ساز UNIFY، عموميترين يکسانساز (Most General Unifier) يا (MGU) را برميگرداند، که جانشيني است که کمترين تعهد را در قبل محدودسازي متغيرها دارد.
فصل هشتم: استنتاج در منطق مرتبه اول مثال: دانش کسب شده “ John hates everyone he knows “ می خواهیم با استفاده از قانون استنتاج مودسپوننس کشف کنیم که John از چه کسی متنفر است یعنی: نیاز به جملاتی در پایگاه دانش داریم که با Knows( John, x)یکسان باشد. سپس یکسان ساز را به Hates( John, x )اعمال می کنیم. Knows( John, x ) Hates( John ,x )
فصل هشتم: استنتاج در منطق مرتبه اول KB فرض کنید پایگاه دانش شامل جملات زیر باشد Knows( John , Jane ) Knows( y , Leonid ) Knows( y , mother(y) ) Knows( x , Elizabeth ) x و y به طور ضمنی دارای سور عمومی هستند Knows( John , Jane ) UNIFY( Knows( John , x ) , Knows( John , Jane ) ) = { x / Jane } Knows( y , Leonid ) UNIFY( Knows( John , x ) , Knows( y , Leonid ) ) = { x / Leonid , y / John }
فصل هشتم: استنتاج در منطق مرتبه اول Knows( y , mother(y) ) UNIFY( Knows( John , x ) , Knows( y , mother(y) ) ) = { y / John , x / mother( John ) } Knows( x , Elizabeth ) UNIFY( Knows( John , x ) , Knows( x , Elizabeth ) ) = Fail آخرین یکسان سازی با شکست مواجه می شود زیرا xنمی تواند هم John باشد و هم Elizabeth از آنجایی که John از هر کسی که مشناسدمتنفر است و نیز همه Elizabeth را می شناسند پس باید قادر باشیم استنباط کنیم که John از Elizabethمتنفر است
فصل هشتم: استنتاج در منطق مرتبه اول یک راه مقابله با این مشکل : استاندارد کردن متغیرها در دو جمله یکسان است یعنی که اسامی متغیرها را تغییر دهیم تا از تشابه دو نام جلوگیری کرده باشیم UNIFY( Knows( John , x1 ) , Knows( x2 , Elizabeth ) ) = { x1 / Elizabeth , x2 / John } آیا تغییر نام معتبر است ؟ بله، زیرا دو جمله زیر معنی مشابهی را می دهند x Knows( x , Elizabeth ) x2Knows( x2 , Elizabeth )
فصل هشتم: استنتاج در منطق مرتبه اول Most General Unifier (Examples)
فصل هشتم: استنتاج در منطق مرتبه اول زنجيرهسازي به جلو و عقب (Forward AND Backward Chaining) 1- زنجيرهسازي به جلو (forward chaining): قانون Modus Ponens تعميم يافته به دو صورت استفاده ميشود. ميتوانيم با جملات موجود در پايگاه دانش شروع کنيم و نتايج جديدي را که ميتوانند استنباطهاي بيشتري را بسازند، توليد کنيم. اين روش زنجيرهسازي به جلو ناميده ميشود. اين روش زماني استفاده ميشود که حقيقت جديدي به پايگاه داده ما اضافه شده باشد و خواسته باشيم نتايج آن را توليد کنيم.
فصل هشتم: استنتاج در منطق مرتبه اول 2- زنجيرهسازي به عقب(Backward Chaining): ميتوانيم با چيزي که قصد اثباتش را داريم آغاز کنيم و جملات شرطي را پيدا کنيم که به ما اجازه بدهند نتيجه را از آنها استنتاج کنيم، و سپس سعي در ايجاد پيشفرضيات آنها داشته باشيم. اين روش زماني استفاده ميشود که هدفي براي اثبات وجود داشته باشد.
فصل هشتم: استنتاج در منطق مرتبه اول Completeness کامل بودن : KB تصور کنيد که ما پايگاه دانش زير را در اختيار داريم: x P(x) Q(x) x P(x) R(x) x Q(x) S(x) x R(x) S(x) سپس ما ميخواهيم که S(A) را نتيجه بگيريم، S(A) درست است، اگرQ(A)ياR(A) درست باشد، و يکي از آنها بايد درست باشد زيرا: ياP(A)ياP(A) ¬درست است.
فصل هشتم: استنتاج در منطق مرتبه اول • متأسفانه، زنجيرهسازي با Modus Ponens نميتواند S(A) را نتيجه بگيرد. مشکل اين است که x P(x) R(x)نميتواند به صورت Horn دربيايد، و از اين رو توسط Modus Ponens نميتواند استفاده شود. اين بدان معني است که رويه اثباتي که از Modus Ponens استفاده ميکند ناکامل (incomplete)است: جملاتي که در پايگاه دانش مستلزم شدهاند که رويه نميتواند آنها را استنتاج کند.
فصل هشتم: استنتاج در منطق مرتبه اول Resolution: يک رويه استنتاج کامل صورت ساده قانون استنتاج Resulation برای منطق گزاره ای به فرم زیر است: • , • ____________ • • , • ______________ • OR قانون به دو روش درک می شود. اگر نادرست باشد، در اولین ترکیب فصلی باید درست باشد پس از دومین ترکیب فصلی باید درست باشد، از این رو یا باید درست باشد از دو ترکيب شرطي ميتوانيمترکيب سومي را مشتق کنيم که پيشفرض اولي را به نتيجه دومي متصل ميکند. Modus Ponens اجازه استخراج ترکیب شرطی جدید را نمی دهد و فقط نتایج اتمی را استخراج می کند از اینرو قانون Resulation قدرتمندتر از Modus Ponens است
فصل هشتم: استنتاج در منطق مرتبه اول قانون استنتاج resolution: • در فرم ساده قانون resolution، پيشفرضيات داراي دقيقاً دو ترکيب فصلي هستند. ما ميتوانيم اين قانون را براي دو ترکيب فصلي به هر طولي وسعت بخشيم، • که اگر يکي از قسمتهاي ترکيب فصلي در يکclause(Pj) با نقيض قسمت ديگر ترکيب فصلي (qk) يکسان باشند، سپس ترکيب فصلي از تمام قسمتها استنتاج ميشودبغير از آن دو: • Resolution تعميميافته(ترکيباتفصلي) • Resolutionتعميميافته(ترکيباتشرطي)
فصل هشتم: استنتاج در منطق مرتبه اول Resolutionتعميم يافته (ترکيبات فصلي): برايلیترالهایPi و qiبا فرضUNIFY (Pj,¬ qk)=θ داریم:
فصل هشتم: استنتاج در منطق مرتبه اول Resolution تعميم يافته (ترکيبات شرطي): براي اتمهاي Pi و qiو ri و siکه UNIFY (Pj , qk)=θ
فصل هشتم: استنتاج در منطق مرتبه اول فرمهای کانونی در Resulation در نسخه اولیه قانون Resulation ، هر جمله یک ترکیب فصلی است. تمام ترکیبات فصلی در KB به صورت ترکیب عطفی به هم وصل شده اند بنابراین این فرم، فرم نرمال عطفیCNF (Conjuction Normal Form) نامیده می شود. در نسخه دوم قانون Resulation ، هر جمله یک ترکیب شرطی شامل یک ترکیب عطفی از اتمها در سمت چپ و یک ترکیب فصلی از اتمها در سمت راست است این حالت، فرم نرمال شرطی INF (Implicative Normal Form) نامیده می شود.
فصل هشتم: استنتاج در منطق مرتبه اول قانون Resolution تعميمي از Modus Ponens است. شرطي رايجتر از فرم Horn است، به دليل اينکه طرف سمت راست ميتواند يک ترکيب شرطي باشد و نه فقط يک اتم تنها. جمله اتمی به فرم نرمال شرطی به صورت True نوشته می شود، می توان دید که Modus Ponens یک مورد ویژه از Resulation است: Modus ponens : Resulation : • , • ___________ • True , _________________ True Modus Ponens قابليت ترکيب اتمها با يک ترکيب شرطي را به منظور استخراج نتيجه به صورتي دارد که resolution قادر به انجام آن نيست.
فصل هشتم: استنتاج در منطق مرتبه اول برهان خلف: رويه استنتاج کاملي که از resolution استفاده ميکند برهان خلف (refutation) ناميده ميشود و همچنين به عنوان اثبات توسط تناقض (proof by contradiction) و (reduction and absurdum شناخته شده است. ( KB q ) False ) ( KB q ) مثال: جمله PP معتبر است ؟ ابتدا فرض می کنیم جمله اول نادرست است (برهان خلف) ( P P ) = P (P) = P P یک جمله همیشه نادرست پس جمله اول درست است
فصل هشتم: استنتاج در منطق مرتبه اول اثبات جمله S(A) P(w) Q(w) , P(x) R(x) , Q(z) S(z) , R(z) S(z) {z/w} P(w) S(w) P(x) R(x) = P(x) R(x) = True P(x) R(x) {w/x} R(z) S(z) True S(x) R(x) {z/x} S(A) False True S(x) {x/A} True False اثباتی که نشان می دهد S(A) از KB با استفاده از Resulation با برهان خلف استنتاج می شود
فصل هشتم: استنتاج در منطق مرتبه اول تبديل به فرم نرمال: • هر جمله مرتبه اولي ميتواند به صورت فرم نرمال شرطي (يا عطفي) دربيايد. • از يک مجموعه از جملات به فرم نرمال ميتوانيم اثبات کنيم که يک جمله نرمال از مجموعه پيروي خواهد کرد.
فصل هشتم: استنتاج در منطق مرتبه اول الگوریتمتبديل به فرم نرمال: p qباpq 1. حذف ترکيب شرطي: 2. حذف نقیض : (pq) p q (pq) p q p p x p x p x p xp نقيض فقط براي فرم نرمال عطفي مجازاست، و برايتمام فرمهاي نرمال شرطي ممنوع است. نقیض را می توان با قوانین دمورگان حذف کرد
فصل هشتم: استنتاج در منطق مرتبه اول 3. استاندارد کردن متغيرها: جملاتی که از متغیرهای مشابه استفاده می کنند تغییر نام می دهیم تا از ابهامات در زمان حذف سورها جلوگیری شود x P(x) x Q(x) x P(x) y Q(y) 4. انتقال سورها به سمت چپ x y P(x) Q(y) 5. استفاده از تابع Skolem: Skolemization پردازشي است که در آن تمام سورهاي وجودي حذف ميشوند.(براساس قانون حذف سور وجودی) x P(x) P(A) A ثابتی است که در هیچ جای پایگاه داده دیده نمی شود
فصل هشتم: استنتاج در منطق مرتبه اول جمله “Every one has a heart” مثال: x Person(x) y Heart(y) Has(x,y) اگر فقط y را با H جایگزین کنیم داریم x Person(x) Heart(H) Has(x,H) اگر بجای x اشخاص قرار گیرند آنوقت جمله بالا برای هر شخصی قلب مشابه H است نیاز است بگوییم قلبی که آنها دارند لزوماٌ بین آنها تقسیم نشده است!!! x Person(x) Heart( F(x) ) Has(x, F(x) )
فصل هشتم: استنتاج در منطق مرتبه اول F نام تابعی است که جای دیگری از KB دیده نمی شود (F یک تابع Skolem نامیده می شود). در حالت کلی، متغیر سور وجودیتوسط ترمیکه شامل تابع Skolem باشد جایگزین می شود. Skolemization تمام متغیرهای سور وجودی را حذف می کند. بنابراین پس از آن، حذف سورهای عمومی مجاز می باشد ( ab)c = (ac)(ac) 6. توزیع بر : ( ab)c = (abc) 7. ساده سازی ترکیبات : ( ab)c = (abc)
فصل هشتم: استنتاج در منطق مرتبه اول تمرین: جملات زیر را به فرم CNF تبدیل نمایید. 1- x [ P(x) Q(x) ] R(A) , ثابت A 2- x [ S(x,A) L(x,B) ] H(A) , ثابت A,B