Professional Documents
Culture Documents
Theoretical-Smart Search Algorithms-Lec-1
Theoretical-Smart Search Algorithms-Lec-1
نظري
درسنا في مق ّررات سابقة بعض خوارزم ّيات البحث مثل DFS, BFS, Dijkstraفي مق ّرر خوارزميات ،2إضافة لفكرة عا ّمة
الصنعي ،في مق ّررنا هذا سنراجع هذه الخوارزميات وسنعمل على
ّ عن خوارزمية )* A-Star(Aفي مق ّرر مبادئ الذكاء
فهم معنى تسميتها بخوارزميات بحث ونضيف عليها بعض التحسينات باإلضافة إلى خوارزميات جديدة
كما نعلم فإن هناك عدّة أنواع للمسائل التي قد تصادفنا ،وسبق أن ذكرناها في المحاضرة ▪
األولى من مقرّر العملي ،وكما ذكرنا سنتعامل مع:
Fully Observable, Deterministic, Static, Single & Multi Player
سنتعامل مع Single Playerفي المحاضرات الثالث األولى ومع Multi Playerفي المحاضرة ▪
الرابعة
تمثيل المسألة
ال بدّ لنا من إيجاد طريقة لتمثيل المسألة حاسوب ّياً حتى نتمكّن من حلّها ،وسنقوم بذلك من خالل تمثيلها بـ:
State .1
تمثّل حالة المسألة في مرحلة ما ،حيث ال بدّ لنا من إيجاد طريقة مناسبة لتمثيل جميع المعطيات الالزمة بحيث نستطيع
معرفة أيّ معلومة نحتاجها عن الحالة
Initial State .2
الحالة االبتدائية في المسألة والتي سنبدأ منها محاولة البحث إليجاد حل
/ITE.RBCs
1
خوارزميات البحث الذكية | د .عمار النحاس
Operation .3
تمثّل الحركة وطريقة االنتقال من حالة إلى أخرى ،حيث ال بدّ لنا من تغطية جميع االنتقاالت الممكنة والتمكّن من معرفة
الحالة الناتجة
Goal test .4
طريقة ما الختبار هل وصلنا إلى حل أم ال ،في بعض األحيان يكون الحل هو عبارة عن حالة معيّنة نسعى للوصول إليها
عندئذٍ نكتفي بالمقارنة معها ،Goal Stateوأحياناً يكون الحل هو تحقيق شروط معيّنة فنقوم بفحصها
نالحظ أنّه يمكننا تمثيل فضاء البحث بهذه الطريقة باستخدام Graphحيث سنمثّل ▪
الـ Stateبـ Node
والـ Operation/Actionبـ Edges
وعندما نقوم بإيجاد حلّ ما نكون فعليّاً قد أوجدنا طريق Pathمن الحالة االبتدائية إلى الحالة الهدف ▪
أما الحل األمثل Optimal solutionفهو سيكون أقصر طريق بين الحالة االبتدائية والحالة الهدف ▪
Shortest Path
لنأخذ بعض األمثلة عن مسائل ونحاول تمثيلها:
The 8-Puzzles
هي رقعة مؤلّفة من مربع أبعاده 3×3تحوي ثمانية أرقام ومربع فارغ
الهدف ترتيب هذه األرقام وجعل الفراغ في النهاية.
يمكن أن نمثّلها:
:State .1
ما يهمنا هو شكل الرقعة ،ويمكننا حفظ شكل الرقعة بأكثر من طريقة:
مصفوفة ثنائيّة: ▪
[ {1, 3, 2},
{7, 8, 6},
]{5, 4, #},
حيث #يمثّل الفراغ
مصفوفة أحاديّة ▪
][ 1, 3, 2, 7, 8, 6, 5, 4, #
بفرض الرقم xيقع في السطر iوالعمود jوعدد األعمدة الكلّي cols
عندها يكون موقع الرقم xفي المصفوفة األحاديّة
𝑗 𝑖 ∗ 𝑐𝑜𝑙𝑠 +
2
/ITE.RBCs
خوارزميات البحث الذكية | د .عمار النحاس
نختار الطريقة التي تجعل العمليّات أسهل ما يكون فنختار هنا مثالً المصفوفة الثنائيّة ،ألنّها تسهّل علينا معرفة ▪
قيمة أيّ خانة بسرعة كما تسهّل علينا االنتقاالت
:Action .2
لدينا أربع انتقاالت وهي تحريك الفراغ بإحدى االتّجاهات األربعة (أعلى ،أسفل ،يمين ،يسار)
:Initial State .3
هي الحالة األولى األساسيّة للرقعة
:Goal State .4
هو أن تكون الرقعة مرتّبة بالشكل المطلوب ،أي يمكن مقارنتها
مع الـ Stateالحاليّة.
The 8 Queens
هي رقعة شطرنج مربّعة أبعادها 8×8نريد وضع ثمانية وزراء عليها بحيث ال يشكّل أي وزير تهديداً لوزير آخر.
نمثّلها بالشكل:
:State .1
هنالك عدّة طرق لكن سنستخدم حاليّاً المصفوفة الثنائيّة لتمثيل الرقعة ،حيث كل خليّة إمّا أن تكون
فارغة أو تحوي وزير.
:Action .2
إضافة وزير في خليّة فارغة
:Initial state .3
رقعة فارغة تماماً
:Goal test .4
التجوّل على كامل الرقعة والتأكد من أنّه ال يوجد أي وزير يستطيع مهاجمة وزير آخر.
3
/ITE.RBCs
خوارزميات البحث الذكية | د .عمار النحاس
Maze
لدينا متاهة لها نقطة بداية ونقطة نهاية نريد الوصول إليها
يمكن تمثيلها بالشكل:
:State .1
مصفوفة ثنائية ،كل عنصر إمّا فراغ أو حاجز ،إضافة إلى حفظ موقع الالعب ()x,y
:Action .2
تحريك الالعب بأحد االتجاهات األربعة إن أمكن (إن لم يوجد حاجز)
)(x+1,y) , (x,y+1) , (x-1,y) , (x,y-1 أي:
:Initial State .3
موقع الالعب في نقطة البداية
:Goal test .4
هل الالعب وصل لنقطة الهدف (نقطة النهاية)
هناك أيضاً العديد من المسائل األخرى التي تتمثل كمسائل بحث..
Branching Factor
هو وسطي عدد الفروع (الوصالت أو الحركات) الخارجة من العقد بشكل عامّ.
لحسابه نأخذ مجموع عدد الحركات الممكنة من كلّ عقدة مقسوماً على عدد العقد.
فمثالً في 8-Puzzlesعدد الحركات من كلّ عقدة:
أي:
2∗4+3∗4+4∗1
≈ 2,667
9
مالحظة:
أحيانا ال نستطيع حساب وسطي عدد الفروع ،في تلك الحالة يكون الـ branching factorهو أكبر عدد فروع ممكن.
4
/ITE.RBCs
خوارزميات البحث الذكية | د .عمار النحاس
خوارزميات البحث
بعد أن تمكّنا من تمثيل مسائلنا على شكل ،Graphالبدّ لنا من وضع خوارزمية للتجوّل عليه وإيجاد
حل لمسألتنا.
▪ هناك نوعين أساسيين لخوارزميّات البحث:
5
/ITE.RBCs
خوارزميات البحث الذكية | د .عمار النحاس
Opened nodes
Opened nodes
Opened nodes
الحظ أننا
أعدنا فتح
الحالة D
التي سبق
وأن
عالجناها
Opened nodes
النهائية
ّ نجد أن الحالة Fهي الحالة
وتنتهي المسألة
6
/ITE.RBCs
خوارزميات البحث الذكية | د .عمار النحاس
إذاً يمكن كتابة Pseudocodeالتالي تقريباً كخوازرمية عامّة (هذا الكود قد تمّ حفظ العقد المغلقة فيه أيضاً ،لكن يمكن
OPEN = {InitialState}, CLOSE = nil ببساطة عدم حفظها)
SUCCESS = False
While OPEN != {} And SUCCESS = false do ▪ المقصود بالتابع gهو كلفة الوصول للعقدة.
Begin
▪ المقصود بالتابع kهو كلفة االنتقال من العقدة
)u = Get_First_Node_From_Open(OPEN
األولى للثانية (وزن الوصلة).
)OPEN = Remove_First(OPEN
if GoalState(u) Then
SUCCESS = True
ELSE
Begin
)Add(u,CLOSE
For each v in Children(u) do
Begin
if v Not in CLOSE Then
Begin
)Add(v,OPEN
)g(v)=g(u)+k(u,v
Father(v)=u
End
End
End نالحظ من المثال السابق:
End ▪ فضاء الحل أصبح ممثّل لدينا كـ Graphوتحديداً على شكل .Tree
if OPEN = {} Then FAIL ▪ Opened nodesتمثّل األوراق في الشجرة
)Else GenerateSolutionPath(u
▪ Closed nodesتمثّل بقيّة الشجرة
قبل أن ننتقل إلى الخوارزميات بالتفصيل ال بدّ لنا من وضع معايير للمقارنة بين هذه الخوارزميات..
:Completness .1هل الخوارزمية تصل إلى حل دائماً أم من الممكن ألّا تتمكّن من إيجاد حل ،أو قد تدخل في
حلقة النهائية.
:Optimal .2هل الخوارزمية توجِد حل أمثلي أم ال
:Space Complexity .3كم من المساحة نستخدم لتحقيق الخوارزمية
:Time Complexity .4كم من الوقت يستغرق تنفيذ الخوارزمية
مالحظة:
أحياناً نستخدم خوارزميات ليست Optimalألنها توفر الكثير من الوقت أو المساحة ،وتعطينا حل مقبول
نوعاً ما.
7
/ITE.RBCs
خوارزميات البحث الذكية | د .عمار النحاس
LIFO
Last in First out
فتأخذ آخر عقدة دخلت إلى الـ Opened nodesوتقوم بفتحها ومعالجتها ،لذا فهي تستخدم الـ Stack
لقد تعلمنا هذه الخوارزمية في مقررات سابقة لذلك لن نستفيض بشرحها
معايير الخوارزمية:
:Completness .1
هذه الخوارزمية قد تدخل في حلقة ال نهائية (ألننا لم نعد نستخدم مصفوفة )visitedلذلك هي ليست
كاملة.
:Optimal .2
أمثليّ ،إال إذا قمنا بإيجاد جميع الحلول الممكنة والمقارنة بينها وهذا أمر مكلف وغير
ّ ال تصل إلى حل
منطقي
Space Complexity .3
)O(b*m
حيثb: branching factor , m: the biggest depth in search space :
ألننا سنخزن فقط األوراق ( )Opened nodesففي كل مستوى سنخزن أبناء عقدة واحدة (وسط ّياً )bألننا
لو فتحنا العقدة المجاورة لها فال ب ّد أنّنا قد أغلقنا جميع أبنائها
سنخزن في mمستوى (أكبر عمق ممكن). ّ وعلى األكثر
O(bm) Time Complexity .4
ألننا قد نضطر لمعالجة الشجرة كاملة
FIFO
First in First out
حيث تأخذ أوّل عقدة دخلت إلى الـ Opened nodesوتقوم بفتحها ومعالجتها لذا هي تستخدم Queue
8
/ITE.RBCs
خوارزميات البحث الذكية | د .عمار النحاس
:Completeness .1
أن عدد الحركات الممكنة هو محدود دائماً ()b is finite
تكون كاملة وتستطيع الوصول إلى حل طالما ّ
:Optimal .2
تستطيع إيجاد الحل األمثل بشرط أن تكون كلفة جميع االنتقاالت متساوية ،وأن تكون كلفة الحل تزداد
بزيادة عمق الحل.
:Space Complexity .3
بما أننا نخزن األوراق فقط فحجم التخزين هو عدد العقد في المستوى الذي يوجد فيه الحل ،dومن كل
مستوى للتالي يتضاعف عدد العقد من خالل ضربها بوسطي عدد األبناء تقريباً bفيكون التعقيد )O(bd+1
حيثd: depth of solution , b: branching factor :
:Time Complexity .4
هو كلفة معالجة كل عقد الشجرة أي حجم الشجرة وهو من رتبة )O(bd+1
:Completeness .1
أن تكون األوزان أكبر تماماً من الصفر (في حال كان هنالك وصلة
تستطيع إيجاد حل دائماً بالتأكيد بشرط ّ
قيمتها صفر أو سالبة فسيدخل في حلقة النهائية) وعدد الحركات الممكنة محدود (منتهي) ()b is finite
:Optimal .2
دائماً توجد الحل األمثل ألنها تختار الوزن األقل كلفة
:Space Complexity .3
بأسوأ األحوال تكون مثل ال BFSأي )O(bd+1
:Time Complexity .4
أيضاً بأسوأ األحوال تكون مثل الـ BFSأي )O(bd+1
أن كلفة إيجاد أصغر عنصر والحذف واإلضافة هي )O(1وذلك بفرض ّ
9
/ITE.RBCs
خوارزميات البحث الذكية | د .عمار النحاس
انتهت املحاضرة
10
/ITE.RBCs