تمثيل المتاهة - كتاب الذكاء الإصطناعي - الصف 12 - الفصل 1 - المملكة العربية السعودية

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

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

الدرس: تمثيل المتاهة رقميًا

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

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

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

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

الفصل: 2 | الدرس: 19

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

📝 ملخص الصفحة

تشرح هذه الصفحة كيفية تمثيل المتاهة رقميًا باستخدام المصفوفات في البرمجة، حيث تُستخدم الأصفار (Zeros) لتمثيل الخلايا الفارغة التي يمكن اجتيازها، والأحاد (Ones) لتمثيل الخلايا المشغولة بالحواجز التي لا يمكن اجتيازها.

يتم عرض مثال عملي باستخدام لغة Python لإنشاء متاهة عشوائية بحجم 10×10، حيث يتم توليد 30 خلية عشوائية كحواجز باستخدام مكتبة random، مما يوضح كيفية بناء متاهات كبيرة ومعقدة بسهولة.

تتضمن الصفحة أيضًا دالة لتصور المتاهة باستخدام مكتبة matplotlib، حيث تُظهر الخلايا الخضراء كمسارات مفتوحة والخلايا السوداء كحواجز، مما يساعد في فهم التمثيل البصري للبيانات الرقمية.

يتم دعم المحتوى برسم بياني (شكل 2.19) يوضح متاهة 10×10 مع حواجز عشوائية، مما يعزز الفهم العملي لتمثيل المتاهات في البرمجة وتطبيقاتها في حل المشكلات.

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

يُعد هذا التمثيل الرقمي للمتاهة، تُمثل الخلايا الفارغة بالأصفار (Zeros) والمشغولة بالأحاد (Ones). يمكن تحديث المقطع البرمجي نفسه بسهولة لإنشاء متاهات كبيرة ومعقدة للغاية، مثل:import random random_maze=np.zeros((10,10))# coordinates of 30 random cells occupied by blocks blocks=[((random.randint(0,9),random.randint(0,9)) for i in range(30))]for block in blocks: random_maze[block]=1تُستخدم الدالة التالية لتمثيل المتاهة:import matplotlib.pyplot as plt # library used for visualization def plot_maze(maze): ax = plt.gca() ax.invert_yaxis() # invert the y-axis to match the matrix ax.axis('off') # hide the axis labels ax.set_aspect('equal') # make sure the cells are rectangular plt.pcolormesh(maze, edgecolors='black', linewidth=2, cmap='Accent') plt.show()plot_maze(random_maze)المربعات الخضراء فارغة ويمكن اجتيازها.المربعات السوداء مشغولة بالحواجز ولا يمكن اجتيازها.شكل 2.19: تمثيل متاهة 10×10 باستخدام حواجز عشوائية2023 - 1447--- VISUAL CONTEXT --- **DIAGRAM**: شكل 2.19: تمثيل متاهة 10×10 باستخدام حواجز عشوائية Description: A 10x10 grid representing a maze. It consists of green cells and dark grey/black cells. The green cells are empty and passable, while the dark grey/black cells are occupied by barriers and impassable. The barriers are distributed randomly across the grid, with approximately 30% of the cells being barriers. Data: The diagram shows a 10x10 grid. Green cells represent open paths, and dark grey/black cells represent impassable barriers. The distribution of barriers appears random, consistent with the code generating 30 random blocks. Key Values: Grid size: 10x10 cells, Green cells: passable (represented by Zeros in the digital model), Dark grey/black cells: barriers (represented by Ones in the digital model) Context: This diagram visually represents the digital maze described in the text and generated by the Python code. It illustrates how a maze can be constructed using a grid where '0' (empty) corresponds to green cells and '1' (barrier) corresponds to dark grey/black cells, demonstrating a practical application of data representation.

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

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

كيف يتم تمثيل المتاهة رقمياً في سياق هذا الكتاب؟

الإجابة: تُمثل المتاهة رقمياً باستخدام مصفوفة ثنائية الأبعاد (مثل numpy array)، حيث تُمثل الخلايا الفارغة التي يمكن اجتيازها بالأصفار (Zeros)، والخلايا المشغولة بالحواجز التي لا يمكن اجتيازها بالأحاد (Ones).

الشرح: يستخدم هذا التمثيل المصفوفة الثنائية الأبعاد لتمثيل هيكل المتاهة، وهو أسلوب شائع في علوم الحاسوب لتمثيل البيئات الشبكية مثل المتاهات والألعاب.

تلميح: فكر في نوع البيانات التي تُستخدم لتمييز حالتين مختلفتين (فارغ/مشغول) في بنية شبكية.

ما هي وظيفة الجزء من المقطع البرمجي التالي؟: python import random random_maze=np.zeros((10,10)) # coordinates of 30 random cells occupied by blocks blocks=[((random.randint(0,9),random.randint(0,9)) for i in range(30))] for block in blocks: random_maze[block]=1

الإجابة: يقوم هذا الجزء من المقطع البرمجي بإنشاء متاهة بحجم 10x10 مملوءة بالأصفار (خلايا فارغة)، ثم يحدد إحداثيات 30 خلية عشوائية ويغير قيمتها إلى 1 لتمثيل الحواجز.

الشرح: هذا الكود يوضح كيفية إنشاء متاهة عشوائية باستخدام مكتبة `random` في بايثون، حيث يتم استبدال خلايا معينة (بعدد 30) بقيم تمثل الحواجز.

تلميح: لاحظ كيف يتم تهيئة المصفوفة أولاً، ثم كيف يتم إضافة 'العقبات'.

ما هي المكتبة المستخدمة لتمثيل المتاهة بصرياً في هذا السياق؟

الإجابة: تُستخدم مكتبة `matplotlib.pyplot` لتمثيل المتاهة بصرياً.

الشرح: مكتبة `matplotlib.pyplot` هي أداة قوية وشائعة في بايثون لإنشاء الرسوم البيانية والتصورات، وهنا تُستخدم لعرض المتاهة على شكل شبكة مرئية.

تلميح: ابحث عن عبارة `import` في الكود التي تتعلق بالتصوير أو الرسم البياني.

اشرح الغرض من الدالة `plot_maze(maze)` وكيف تعمل.

الإجابة: الدالة `plot_maze(maze)` تأخذ مصفوفة تمثل المتاهة كمدخل، وتقوم بعرضها بصرياً باستخدام `matplotlib`. تقوم بإعداد المحاور (عكس محور y، إخفاء الملصقات، جعل الخلايا مربعة) ثم تستخدم `plt.pcolormesh` لرسم الشبكة بألوان مميزة (الأخضر للخلايا الفارغة والأسود للحواجز) مع حدود سوداء واضحة.

الشرح: هذه الدالة تحول التمثيل الرقمي (المصفوفة) إلى رسم بياني مرئي يسهل فهمه، مما يساعد الطالب على رؤية هيكل المتاهة والحواجز الموجودة فيها.

تلميح: فكر في الخطوات التي تحدث لتغيير البيانات الرقمية إلى صورة مرئية، وكيف يتم التعامل مع اتجاه الشبكة.

وفقاً لشكل 2.19 ووصفه، ما هي الألوان المستخدمة لتمثيل الخلايا الفارغة والخلايا المشغولة بالحواجز في المتاهة، وماذا تمثل هذه الألوان؟

الإجابة: تمثل المربعات الخضراء الخلايا الفارغة التي يمكن اجتيازها، بينما تمثل المربعات السوداء (أو الداكنة) الخلايا المشغولة بالحواجز ولا يمكن اجتيازها.

الشرح: يوفر هذا التوضيح البصري ارتباطاً مباشراً بين التمثيل الرقمي (الأصفار والأحاد) والتمثيل المرئي (الألوان)، مما يعزز الفهم العملي للمفهوم.

تلميح: ارجع إلى وصف الأشكال والرموز في النص المصاحب للرسم البياني.