Backtracking Chaining

Post on 18-Nov-2014

290 views 2 download

description

tracking goals on prolog

Transcript of Backtracking Chaining

والخلفي األمامي التتبع

Muhammad siddig hassan

Definitions

التراجعي التسلسلBacktracking :

استدالل استراتيجية هيعن فرضية إثبات تحاول

معلومات يق طر تجميعداعمة.

Definitions

التقدمي : Forward trackingالتسلسلبمجموعة تبدأ استدالل استراتيجية هو

وتشتق الحقـائق من معروفةقواعد باستخدام جديدة حقائقمـع المنطقية مقدماتها تتطابقهذه وتستمر المعروفـة الحقـائقإلى الوصول يتم حتى المعالجةتنتهي حتى أو ، الهدف حالةمقدمات تملك التـي القواعـد

مشتقة حقائق مع تتطابق منطقيةمعروفة .أو

باألهداف المقاد التسلسل

فيقوم ، إثباته يريد بهدف المطابقة عملية تبدأكان ما إذا ليرى المعرفة قاعدة بفحص المترجم

قاعدة في وموجود 2 مسبقا أضيف قد الهدفالهدف. على الحصول من يتمكن لم إذا المعرفة

القواعد في الهدف وجود باختبار يقومالهدف تحتوي أكثر أو قاعدة عن والمطابقة

المطلوب

الراجع التسلسل

ويرى تسلسلها حسب قاعدة كل النظام يفحصموجودة المنطقية مقدماتها كانت قاعدة إذا في

مطابقات المعرفة. النظام يجد لكلعندماالمنطقية المنطقية يـضع، المقدمات نتائجها

و في المعالجة الذاكرة النظام خالل من يكررجديدة عند ويتوقـف. دورة العمل عن النظام

ت أن يمكن جديدة قواعد وجود ستغل.عدم

الخلفي التعقب تنفيذbacktracking execution

للبرولوغ يعد• المميزة الصفات أكثر من الخلفي التعقبلغة تجعلها التقليدية مطيعةوالتي اللغات من ثم أكثر ومن

ألن أسهل بشكل االسئلة أو االستفسارات معالجة يمكنالعمل . من األكبر بالجزء يقوم المترجم

األهداف • على تعمل البرولوغ كانت ما فإذا لقاعدة الفرعيةال وأخفق فإنهـا القاعدة أحدها تجعل وال مباشرة تستسلمالسابق ، تخفق الفرعي الهدف إلى الخلفي بالتعقب فتقوم

أخرى أمثلة من بديلة وتجرب تتحرك ثم المعطيات قاعدة فياألمام إلى .جديد

ثـم • القول ومـن الممكنة مكن الحلول كل تجرب البرولوغ إنل أن أتوماتيكياً .تخفق لهدفقبل

قاعدة • نفرضوجود البرولوغ لغة في الخلفي التعقب لتوضيحالحقائق المكونـة اآلتية البيانات :اآلتية من

الخلفي التعقب تنفيذbacktracking execution

• location(desk, office).• location(apple, kitchen).• location(flashlight, desk).• location('washing machine', cellar).• location(nani, 'washing machine'). • location(broccoli, kitchen).• location(crackers, kitchen).• location(computer, office).

التالي • االستعالم لدينا وكان• location(apple, kitchen).

الخلفي التعقب تنفيذbacktracking execution

•: ) التالي ) بالشكل الهدف االستعالم معالجة تتمقاعدة • في األولى بالجملة المترجم يبدأ

بالحقيقة االستعالم مطابقة Zمحاوال ، المعرفة - المعرفة قاعدة في هذه الموجودة وتعرف

( التوحيد بعملية - (UNIFICATIONالعملية فإذا الحقيقة إلى ينتقل المطابقة، عملية اخفقتمن األول الجزء تطابق نجد وعندها التاليةقد التوحيد عملية تكون وعندها االستفسار

ويقوم X=appleنجحت الثاني الجزء ويطابق ،القيمة . Trueبارجاع

الخلفي التعقب تنفيذbacktracking execution

وتم • لالستسفار حل من أكثر وجود حالة وفيتوحيد الغاء يتم عندها االستفسار اعادة طلب

التي Xالمتغير بالجملة جديد البحثمن ويبدأ ،يبدأ أنه أي ، االستعالم حققت التي الجملة تلت

وهنا المعرفة قاعدة في التالية الحقيقة منمن المطابقة عملية وتبدأ التوحيد يخفق

الجملة حتى وتستمر ، الرابعة الجملةالسادسة:

X=broccali

الخلفي التعقب تنفيذbacktracking execution

•: القواعد حالة الخلفيفي التتبع• clerk(mohamed). • clerk(adam).• typist(ali).• manager(salih). • manager(omar).• super(X,Y):- manager(X), clerk(Y).• super(X,Y):- clerk(Y), typist(Y).• super(X,Y):- manager(X), typist(Y).

التالي • االستفسار لدينا . super(Super,ali): وكان

الخلفي التعقب تنفيذbacktracking execution

•: القواعد حالة الخلفيفي التتبعالجزء • أن لنجد األولى القاعدة بفحص المترجم يقوم

قاعدة في حقيقة مع تطابقه يتم القاعدة من األولقيمة manager(Xالمعرفة) أن . X=aliلنجد ولكن

القاعدة من الثاني الجزء مطابقة في يفشل المترجمclerk(Y) على المترجم Y=mohamedليحصل يبدأ وهنا ،

أخرى مرة الخلفي التتبع باستخدام المطابقة بإعادةالثانية الحقيقة إلى واالنتقال األول السؤال إلى ويرجع

manager(omer) أن الجزء. X=omarلنجد مطابقة يكرر ثمالثانية clerk(adam)الثاني للمرة الجزء هذا في ويفشل ،

جميع ألن األولى القاعدة إخفاق من التأكد يتم وهنا. . التالية للقاعدة المطابقات يكرر ثم أخفقت أجزائها

القطع معامل

تمكن • البرنامج داخل اسناد عن عبارة هوويمنع البرنامج تنفيذ في التحكم من المبرمجبحيث المعلومات حفظ دون ، الخلفي التعقباستهالك حيث من فعالية اكثر البرنامج يصبح

. الذاكرة و الوقتبالرمز )!(• تمثيله ويتم•: قطع معامل توضح التالية الجملة Zمثال

Factorial (0,1).!,

النموذج ً مطابقة المبنيBuilt-in pattern matching

تحـاول • من عندما التحقق إسنادية، اف هدأ البرولوغاإلسـنادية هذه تعرف التي الجمل خالل تبحث فإنها

مطابقة تجد عالمة لمتغيراتها وعندما تضع البرولوغ فإنالتـي الجملـة الهدف علـى لتحقيق ا إذ و استخدمت

ال فإن أخرى أجوبة المستخدم تستأنف برطلب ولوغالمعلم بحثهـا المكان في الجمل في

عمليـات • باسـتخدام التقليديـة اللغات في يتم وهذاIf .. Then مقارنـة

•mylength([],0).•mylength([_|Tail], Len) :-• mylength(Tail, TailLen),• Len is TailLen + 1.

•sum([],0).•sum([Head|Tail],X):-• sum(Tail,TailSum),• X is Head+TailSum.

• road('A','C',200).• road('A','D',300).• road('C','D',100).• road('C','B',120).• road('D','B',130).• route(Town1,Town2,Dist):-• road(Town1,Town2,Dist).• route(Town1,Town2,Dis):-• road(Town1,X,Dist1),• route(X,Town2,Dist2),• Dis is Dist1+Dist2.

.route(A,B,Dist)الهدفهو •