خوارزمية البحث بأولوية الاتساع (BFS) - كتاب الذكاء الإصطناعي - الصف 12 - الفصل 1 - المملكة العربية السعودية

الكتاب: كتاب الذكاء الإصطناعي - الصف 12 - الفصل 1 | المادة: الذكاء الإصطناعي | المرحلة: الصف 12 | الفصل الدراسي: 1

الدولة: المملكة العربية السعودية | المنهج: المنهج السعودي - وزارة التعليم

الدرس: تتبع خوارزمية البحث بأولوية الاتساع (BFS)

📚 معلومات الصفحة

الكتاب: كتاب الذكاء الإصطناعي - الصف 12 - الفصل 1 | المادة: الذكاء الإصطناعي | المرحلة: الصف 12 | الفصل الدراسي: 1

الدولة: المملكة العربية السعودية | المنهج: المنهج السعودي - وزارة التعليم

نوع المحتوى: درس تعليمي

مستوى الصعوبة: متوسط

📝 ملخص الصفحة

تقدم هذه الصفحة شرحًا تفصيليًا لتتبع خوارزمية البحث بأولوية الاتساع (BFS) على رسم بياني يتكون من العقد A، B، C، D، E، F. يبدأ التتبع من العقدة الجذر A ويتقدم خطوة بخطوة لمعالجة العقد المجاورة باستخدام قائمة انتظار (Queue).

يتم توضيح كل خطوة من الخطوات 4 إلى 7، حيث تُحذف العقد C، D، E، F من قائمة الانتظار وتُعالج، مع إضافة الفروع عند الضرورة. على سبيل المثال، في الخطوة 4، تُحذف العقدة C وتُضاف فرعها F إلى قائمة الانتظار.

يُظهر المحتوى كيفية تطبيق الخوارزمية عمليًا باستخدام لغة البرمجة بايثون، مع تقديم مثال لتمثيل الرسم البياني كقاموس (Dictionary) ووظيفة BFS لزيارة العقد. كما تُقدم رسوم بيانية توضيحية لكل خطوة تُظهر حالة الرسم البياني وقائمة الانتظار، مما يساعد في فهم تدفق الخوارزمية.

يختتم التتبع بمعالجة العقدة F وإفراغ قائمة الانتظار، مما يشير إلى اكتمال عملية البحث. تُلخص الصفحة العقد التي تم فحصها بالترتيب: F، E، D، C، B، A، مع التأكيد على أهمية قائمة الانتظار في تنفيذ BFS.

📄 النص الكامل للصفحة

--- SECTION: 4 --- احذف العقدة C وعالجها، ثم أضف فرعها إليها. --- SECTION: 5 --- احذف العقدة D لمعالجتها. (ليس لديها فروع). --- SECTION: 6 --- احذف العقدة E لمعالجتها. (ليس لديها فروع). --- SECTION: 7 --- احذف العقدة F لمعالجتها، وبذلك أصبح الطابور الآن فارغًا وانتهت عملية البحث. العقد التي فُحصت باستخدام خوارزمية البحث بأولوية الاتساع (BFS) هي: F,E,D,C,B,A. لاحظ كيف يمكنك تطبيق خوارزمية البحث بأولوية الاتساع (BFS) بلغة البايثون (Python) في المثال التالي: graph = { "A" : ["B","C"], "B" : ["D","E"], "C" : ["F"], "D" : [], "E" : [], "F" : [] } visitedBFS = [] # List to keep track of visited nodes queue = [] # Initialize a queue # bfs function def bfs(visited, graph, node): visited.append(node) وزارة التعليم 81 Ministry of Education 2023 - 1447 --- VISUAL CONTEXT --- **DIAGRAM**: تتبع خوارزمية BFS - الخطوة 4 Description: A graph showing nodes A, B, C, D, E, F. Node A is the root, connected to B and C. Node B is connected to D and E. Node C is connected to F. Node C is highlighted in gray, indicating it has been processed. A dashed arrow points from B to C, indicating a path or relationship. Below the graph, a queue is depicted as a series of connected cubes. The queue contains three cubes: D, E, and F. The cube for D is at index 0, E at index 1, and F at index 2. The cube C is shown as a light gray, empty cube to the left of D, with a dashed arrow pointing to D, indicating C has been dequeued. Data: Graph structure: A -> {B, C}, B -> {D, E}, C -> {F}. Queue state: [D, E, F]. Node C is marked as processed. Key Values: Nodes: A, B, C, D, E, F, Processed Node: C, Queue: D (index 0), E (index 1), F (index 2) Context: Illustrates the state of the graph and the queue after processing node C and adding its children (F) to the queue, assuming D and E were already added from B. This is part of a Breadth-First Search (BFS) traversal. **DIAGRAM**: تتبع خوارزمية BFS - الخطوة 5 Description: A graph showing nodes A, B, C, D, E, F. Node D is highlighted in gray, indicating it has been processed. A dashed arrow points from B to D, indicating a path or relationship. Below the graph, a queue is depicted as a series of connected cubes. The queue contains two cubes: E and F. The cube for E is at index 0, and F at index 1. The cube D is shown as a light gray, empty cube to the left of E, with a dashed arrow pointing to E, indicating D has been dequeued. Data: Graph structure: A -> {B, C}, B -> {D, E}, C -> {F}. Queue state: [E, F]. Node D is marked as processed. Key Values: Nodes: A, B, C, D, E, F, Processed Node: D, Queue: E (index 0), F (index 1) Context: Illustrates the state of the graph and the queue after processing node D. Node D has no children, so no new nodes are added to the queue. This is part of a Breadth-First Search (BFS) traversal. **DIAGRAM**: تتبع خوارزمية BFS - الخطوة 6 Description: A graph showing nodes A, B, C, D, E, F. Node E is highlighted in gray, indicating it has been processed. A dashed arrow points from B to E, indicating a path or relationship. Below the graph, a queue is depicted as a series of connected cubes. The queue contains one cube: F. The cube for F is at index 0. The cube E is shown as a light gray, empty cube to the left of F, with a dashed arrow pointing to F, indicating E has been dequeued. Data: Graph structure: A -> {B, C}, B -> {D, E}, C -> {F}. Queue state: [F]. Node E is marked as processed. Key Values: Nodes: A, B, C, D, E, F, Processed Node: E, Queue: F (index 0) Context: Illustrates the state of the graph and the queue after processing node E. Node E has no children, so no new nodes are added to the queue. This is part of a Breadth-First Search (BFS) traversal. **DIAGRAM**: تتبع خوارزمية BFS - الخطوة 7 Description: A graph showing nodes A, B, C, D, E, F. Node F is highlighted in gray, indicating it has been processed. A dashed arrow points from C to F, indicating a path or relationship. Below the graph, a queue is depicted as a single light gray, empty cube, with a dashed arrow pointing to it, indicating F has been dequeued and the queue is now empty. Data: Graph structure: A -> {B, C}, B -> {D, E}, C -> {F}. Queue state: []. Node F is marked as processed. Key Values: Nodes: A, B, C, D, E, F, Processed Node: F, Queue: Empty Context: Illustrates the final state of the graph and the queue after processing node F. Node F has no children, and since it was the last node in the queue, the queue is now empty, signifying the completion of the Breadth-First Search (BFS) traversal.

🎴 بطاقات تعليمية للمراجعة

عدد البطاقات: 5 بطاقة لهذه الصفحة

وفقًا لسياق تتبع خوارزمية البحث بأولوية الاتساع (BFS) الموضح، ما هي العقد التي تم فحصها بالترتيب؟

الإجابة: العقد التي تم فحصها هي: F, E, D, C, B, A.

الشرح: النص يذكر صراحة أن العقد التي فُحصت باستخدام خوارزمية البحث بأولوية الاتساع (BFS) هي: F, E, D, C, B, A.

تلميح: انظر إلى تسلسل معالجة العقد في وصف الصفحة.

في سياق خوارزمية البحث بأولوية الاتساع (BFS)، ما هو دور الطابور (queue)؟

الإجابة: يُستخدم الطابور لتخزين العقد التي سيتم زيارتها لاحقًا بترتيب اكتشافها، مما يضمن استكشاف العقد على نفس المستوى قبل الانتقال إلى المستوى التالي.

الشرح: خوارزمية BFS تستخدم طابورًا لضمان زيارة العقد مستوى بمستوى. العقد الجديدة تضاف إلى نهاية الطابور، وتتم معالجة العقد من مقدمته.

تلميح: فكر في كيفية ترتيب العقد التي لم تتم معالجتها بعد.

بالنظر إلى المثال المقدم لخوارزمية BFS في Python، ما هو الغرض من القائمة `visitedBFS`؟

الإجابة: الغرض من القائمة `visitedBFS` هو تتبع العقد التي تمت زيارتها بالفعل لتجنب زيارتها مرة أخرى ومعالجة الحلقات (loops) في الرسم البياني.

الشرح: منع إعادة زيارة العقد ضروري لضمان اكتمال الخوارزمية وكفاءتها، خاصة في الرسوم البيانية التي قد تحتوي على دورات.

تلميح: ما هي المشكلة التي قد تنشأ إذا لم نتتبع العقد التي قمنا بزيارتها بالفعل؟

في تتبع خوارزمية BFS - الخطوة 4، إذا كانت العقدة C قد تم معالجتها، فما هو الإجراء التالي الذي يتم اتخاذه بناءً على هيكل الرسم البياني المقدم؟

الإجابة: بعد معالجة العقدة C، يتم إضافة فرعها (العقدة F) إلى الطابور.

الشرح: عند معالجة عقدة في BFS، يتم إضافة أبنائها (فروعها) إلى الطابور لاستكشافها لاحقًا.

تلميح: ماذا تفعل خوارزمية BFS عند معالجة عقدة؟

في نهاية عملية البحث بأولوية الاتساع (BFS) الموضحة، متى تعتبر عملية البحث قد انتهت؟

الإجابة: تعتبر عملية البحث قد انتهت عندما يصبح الطابور فارغًا، مما يعني أنه لم تعد هناك أي عقد تنتظر المعالجة.

الشرح: يشير فراغ الطابور إلى أن جميع العقد القابلة للوصول قد تمت زيارتها ومعالجتها.

تلميح: ما الذي يشير إلى عدم وجود المزيد من العناصر التي تحتاج إلى استكشاف؟