Intelligent Search Algorithm Theoretical Lec 2 PDF
Document Details

Uploaded by LawfulEpilogue7846
جامعة قاسيون
Dr. Ammar Al-Nahhas
Tags
Summary
This document is a lecture on uniformed search algorithms, including depth-first search (DFS), breadth-first search (BFS), and uniform-cost search (UCS). It explains the theoretical concepts behind these algorithms and provides examples. The lecture discusses the time and space complexity of each algorithm.
Full Transcript
800 نظري Uniformed Search 2 17/10/2022 16 د.عمار النحاس فهرس المحاضرة:...
800 نظري Uniformed Search 2 17/10/2022 16 د.عمار النحاس فهرس المحاضرة: Uniformed Search ▪2 مقدمة ▪ 1 UCS ▪5 BFS ▪4 DFS ▪3 مقدمة خالل حل مسألة نتبع الخوارزمية العامة وهي أننا ال نقوم بتوليد كل الحاالت بسبب صعوبة تخزين كل الحاالت لكثرتها كما رأينا في الشطرنج ومكعب الروبيك ،وإنما ننطلق من الحالة البدائية على اعتبار أننا ال نعرف أبناءها ،ومن خالل الـ actionنوجد أبناءها. في كل مرة سنقوم بالبحث عن عقدة ال نعرف من أبناءها وبعد ذلك تضاف هذه األبناء لمجموعة العقد التي ال نعرف ابناءها وبعد معرفة ابناءها نزيل تلك العقدة من المجموعة ،ونأخذ عقدة ال نعرف ابناءها ونعاود الكرة وهكذا إلى أن نصل لحل أو إلى أن تصبح مجموعة العقد التي ال نعرف أبناءها (األوراق) فارغة وبالتالي تأكدنا أنه ليس لدينا حل. ولكن كيف سنختار العقدة التي ال نعرف ابناءها؟ من هنا سنتعرف على الخوارزميات التالية. 1 |Uniformed Searchد.عمار النحاس Uninformed search strategies إن هذه االستراتيجية (الخوارزمية) ال تستخدم المعلومات ذات الصلة بالمشكلة المحددة ،وإنما تعتمد على تجارب سابقة (معلومات تحصل عليها خالل الحل). وهناك ثالث أنواع لهذه الخوارزمية: : Depth-first searchتعتمد هذه الخوارزمية على مسح شجرة البحث بالعمق. : Breadth-first searchتعتمد هذه الخوارزمية على مسح شجرة البحث بالعرض. : Uniform-cost searchتعتمد هذه الخوارزمية على ايجاد العقدة ذات التكلفة األقل بعد حساب الكلف من العقدة الحالية لجميع مجاوراتها. تختلف طريقة تخزين العقد حاسوبيا بين الخوارزميات الثالثة: :DFSتخزّن بـ .stack ▪ :BFSتخزّن بـ .queue ▪ :UCSتخزّن بـ priority queueوهو queueمرتب تنازلياً دوما حسب التكلفة. ▪ Depth-first search تعتمد هذه الخوارزمية على مسح شجرة البحث بالعمق وتكون العقدة التالية هي أول عقدة ألبناء العقدة الحالية من جهة اليسار ويتم االنتقال للعقدة المجاورة للعقدة الحالية بعد االنتهاء من جميع العقد في الشجرة الجزئية للعقدة الحالية وذلك وفق الخوارزمية ذاتها. ❖ أي أن شجرة العقد التي لم نقم بزيارتها بعد هي عبارة عن fringe = LIFO Queueوهذا يعني أن نضع عقد األبناء في المقدمة حيث ).LIFO = (last in fires out ❖ في الـ DFSنخزن العقد ) (Nodesفي الـ stackوليس الـ.State سنأخذ مثال على كيفية سير خوارزمية البحث بالعمق عن طريق البحث عن العقدة Mبداية من العقدة :A 2 /ITE.RBCs عمار النحاس.| دUniformed Search 3 /ITE.RBCs عمار النحاس.| دUniformed Search 4 /ITE.RBCs عمار النحاس.| دUniformed Search 5 /ITE.RBCs |Uniformed Searchد.عمار النحاس لنناقش خوارزمية الـ:DFS هل هي Complete؟ ال ،فهي تفشل في حال كان عمق الشجرة ( )infinite-depthوأيضا عند تشكل الحلقات (إمكانية المرور على نفس الحالة مرتين بنفس الـ ،)pathومنه عند وجود ) )finite-depthسوف تكون .Complete Time Complexity؟ التعقيد هو ) ، O( bmحيث : bهو الـ Branch factorوسطي عدد التفرعات (الوصالت) الخارجة من كل عقدة إلى أبناءها ،وبالتالي سوف يكون كبيرا جدا في حال mأكبر بكثير من ( dعمق الحل األفضل) ،أسوء حالة هي البحث في الشجرة وصوال ألقصى عقدة في اليمين (بحثنا في كافة األوراق). Space Complexity؟ ) " O (b*mخطي " فهي تحتاج مساحة تخزين كبيرة. تذكرة: ( Branching factor :bعامل التفرع) متوسط Optimality؟ عدد األبناء لكل عقدة. ال ،فهي ال تعطي الحل األمثل. Depth :dعمق الحل (ذو الكلفة الزمنية األقل). :mأعمق حل. 6 /ITE.RBCs |Uniformed Searchد.عمار النحاس )BFS (breadth first search تعتمد هذه الخوارزمية على مسح شجرة البحث بشكل عرضي ،حيث نستخدم الرتل Queueمن النوع ) FIFO (first in first outالذي يبدأ من عقدة البداية والتي تمثل المستوى الصفري ثم العقد الموصولة بها ومن ثم نبدأ بمعالجة العقدة تلو االخرى بحيث ال ننتقل من مستوى إلى الذي يليه حتى ننتهي من معالجة جميع عقده. مع التنويه أن الـ BFSيمكن أن تكون من اليمين وممكن أن تكون من اليسار بحسب طريقة االدخال إلى الرتل في البداية. سنأخذ مثال على كيفية سير خوارزمية البحث بالعرض عن طريق البحث عن العقدة Dبداية من العقدة .A 7 /ITE.RBCs |Uniformed Searchد.عمار النحاس لنناقش اآلن: هل هي Complete؟ نعم ،في حال bمنتهي. Time Complexity؟ )O (bd+1 Space Complexity؟ ) ، O (bd+1يتم تخزين كل عقدة في الذاكرة. Optimality؟ نعم ،وذلك في حال عدم ازدياد الكلفة مع ازدياد العمق (كلفة كل العمليات متساوية) فهي تمسح كافة عقد المستوى الحالي ثم تنتقل للمستوى التالي. فمثال لو كان لدينا المعطيات التالية: B = 10, 10.000 node/sec, 1000 byte/node وفق تلك المعطيات يكون لدينا الزمن والحجم التاليين مع تزايد العقد والعمق: Depth Nodes Time Memory 2 1100 .11 sec 1 Megabyte 4 111,100 11 sec 106 Megabyte 6 107 19 min 10 Gigabyte 8 109 31 hours 1 Terabyte 10 1011 129 days 101 Terabyte 12 1013 35 years 10 Petabyte 14 1015 3,523 years 1 Exabyte 8 /ITE.RBCs |Uniformed Searchد.عمار النحاس )Uniform-Cost Search (Dijkstra تعتمد هذه الخوارزمية على إيجاد العقدة الجديدة (غير المزارة ذات الكلفة األقل بعد حساب الكلف من العقدة الحالية لجميع مجاوراتها) ثم االتمام بالطريق األقل كلفة بعد حساب الكلفة لكل الطرق في كل خطوة والمسير من الطريق األقصر غير المزار ،ويكون الحل في هذه المسالة هو الطريق صاحب الكلفة األقل بين جميع الخيارات االخرى. ملحظة :في هذه الخوارزمية نحتاج لحساب المسافات (الكلف) في كل مرحلة بخلف سابقتيها. ولسهولة الفهم يمكن مشاهدة الفيديو التالي: فمثال يكون الحل: 𝐸→𝐶→𝐴 وفق شجرة البحث التالية: لنناقش اآلن: هل هي Complete؟ نعم. Time Complexity؟ عدد العقد باإلضافة لكلفة الحل األمثل. Space Complexity؟ عدد العقد باإلضافة لكلفة الحل األمثل. Optimality؟ نعم تعطي الحل األمثل. 9 /ITE.RBCs |Uniformed Searchد.عمار النحاس الخوارزمية العامة لخوارزميات البحث العمياء Uniformed حيث أن: :OPENهي Queueسنضع فيها العقد المتاحة في كل خطوة . :CLOSEهي Queueأيضا سنضع فيها العقد المزارة. :uالعقة الحالية. :vالعقدة التالية. ) : K(u, vهي الكلفة بين العقدتين uو.v أن تحديد العقدة التالية في كل خطوة يختلف وفق كل نوع منها ففي: :Depth-First Searchتكون العقدة التالية هي أول عقدة ألبناء العقدة الحالية. :Breadth-First Searchتكون العقدة التالية هي العقدة المجاورة للعقدة الحالية. :Uniform-CostSearchتكون العقدة التالية هي العقدة ذات الكلفة األقل (.)Dijkstra مسألة لدينا مجموعة مدن بينها طرق ونريد إيجاد أقصر طريق بين مدينتين معينتين ،ما هو أقصر طريق من Aلـ .F سنحول مسألتنا لغراف: A 2 5 كل عقدة ستدخل على مجموعة العقد التي سنبحث عن أبنائها 2 B C ستدخل معها كلفتها ،وبعد ذلك العقد التي سنختارها 1 6 2 هي العقد ذات الكلفة األقل. 4 D E نبدأ من العقدة Aكلفتها ,0أبناؤها (..)B,1(,)C,2 1 نزيل Aونختار Bونضع أبناءها وهكذا... 5 2 F 10 /ITE.RBCs |Uniformed Searchد.عمار النحاس A,0 B,2 C,5 C,4 D,8 B,7 E,3 D,6 E,7 D,5 E,6 D,7 F,8 C,8 B,12 E,7 F,12 E,6 F,10 D,7 F,8 F,9 B,11 F,8 هل هذه الخوارزمية تعطي حل أمثل دائماً؟ في حالة واحدة وهي كل أوزان موجبة. كم عقدة زرنا؟ 6عقد كم عقدة فتحنا؟ 13عقدة التعقيد: تعقيد هذه الخوارزمية بالمتوسط )𝑛( 𝑛 ∗ logوبأسوأ األحوال 𝑛2 مالحظة: ▪ العقد المفتوحة :هي العقد التي قمنا بالبحث عن أبنائها. ▪ العقد المزارة :هي عقد الغراف التي قمنا بزيارتها. 11 /ITE.RBCs |Uniformed Searchد.عمار النحاس مسألة: لدينا الـ graphالتالي ونريد االنتقال من Aإلى .E الحل: باستخدام خوارزمية الـ :DFS ▪ هذه الخوارزمية ال تهتم بكلفة الوصلة بين العقد. لدينا stackلتخزين العقد و historyلتخزين العقد المزارة. 12 /ITE.RBCs |Uniformed Searchد.عمار النحاس ال يمكن زيارة العقدة Aمجددا ألنها مزارة من قبل. وصلنا إلى العقدة ( Eالهدف) لذلك نتوقف عن متابعة الحل بالخوارزمية. 13 /ITE.RBCs |Uniformed Searchد.عمار النحاس باستخدام خوارزمية :BFS ▪ ال تهتم هذه الخوارزمية بكلفة الوصلة بين العقد. لدينا Queueلتخزين العقد و historyلتخزين العقد المزارة. 14 /ITE.RBCs |Uniformed Searchد.عمار النحاس باستخدام خوارزمية :UCS ▪ تهتم هذه الخوارزمية بالكلفة بين العقد وفي كل مرة تختار الطريق ذات الكلفة األقل. 15 /ITE.RBCs |Uniformed Searchد.عمار النحاس تعتبر تقنيات البحث السابقة (الـ BFSوالـ DFSوالـ )UCSبطيئة للغاية بالنسبة لمعظم المسائل. انتهت املحاضرة 16 /ITE.RBCs