- 0
سجل دخول لمتابعه هذا
متابعين
0

Unification In Prolog
بواسطة
زوار,
-
يستعرض القسم حالياً 0 members
لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .
بواسطة
زوار,
لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .
تم النشر منذ
السلام عليكم
حقيقة احترت بكيفية كتابة الموضوع لكن بالمجمل هذه لمحه بسيطه عن ال unification
ال Unification هو باختصار مايعمله ال prolog interpreter عندما تعطيه اي استعلام ..
فهو يحاول ان يجد حل لهذا الاستعلام عن طريق عمل unify بين الاستعلام query وبين الحقائق الموجوده لديه facts and rules.
فلنفرض ان لديك المعلومات التاليه :
وتريد ان تستعلم عن عمر احمد .. ففي محرر البرولوق بتكتب التالي :
فالكلمات التي تبدأ بحروف كبيره هي متغيرات variables
ماعداه فهي ثوابت constants or atoms
هنا انت تطلب من البرنامج ان يبحث لك عن قيمة للمتغير X تتماشى مع المعلومات التي لديك ..
والنتيجه هي X=23
العمليه بسيطه :
1- ان كل تيرم له نفس عدد الاريقيومنت :
2- ان الاسم لكلاهما هو نفس الاسم :
3- المتغير يأخذ أي قيمه ولايستطيع ان ياخذ قيمتين مختلفتين بنفس الوقت
4- الثابت constant لا يعمله unify إلا مع نفسه
5- اذا كان احد الطرفين متغير فقيمته الجديده هي قيمة الطرف الآخر
مثال :
في الحاله الخامسه اذا كان الطرف الآخر يحتوي على نفس المتغير في داخله فهذه سوف تنتهي بايرور .
مثال
فال X هنا هو نفسه يحمل الطرف الآخر وكل مره ينادي نفسه
لذلك هناك دالة unify_with_occurs_check في gnu prolog لمنع هذا الشئ ..
للاستزاده
http://web.uvic.ca/~ling48x/ling482/prolog/unify.html
شارك هذا الرد
رابط المشاركة
شارك الرد من خلال المواقع ادناه