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

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

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

الدرس: المخططات في لغة البايثون Graphs in Python

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

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

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

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

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

📝 ملخص الصفحة

تشرح هذه الصفحة كيفية تمثيل المخططات في لغة البايثون، حيث لا توفر البايثون نوع بيانات مسبق للمخططات أو الأشجار، ولكن يمكن بناؤها باستخدام هياكل البيانات مثل القواميس والقوائم. يتم تقديم مثال عملي لإنشاء مخطط موجه باستخدام قاموس يمثل العقد والاتصالات بينها، مع شرح كيفية إضافة حواف وإنشاء مسارات.

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

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

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

المخططات في لغة البايثون Graphs in Pythonلا توفر لغة البايثون نوعًا محددًا مسبقًا من البيانات للأشجار، كما أنها لا توفر نوعًا محددًا مسبقًا من البيانات للمخططات. (تذكر أن الأشجار هي نوع خاص من المخططات). ومع ذلك، يُمكن بناء المخططات باستخدام القوائم والقواميس.في المثال التالي، ستقوم بتنفيذ التالي: 1. إنشاء مخطط موجه مثل الموضح بالشكل 1.48. 2. إنشاء دالة لإضافة عقدة إلى المخطط. 3. إنشاء كائن يحتوي على كل مسارات المخطط.--- SECTION: Python Graph Representation --- myGraph = { "a" : ["b","c"], "b" : ["c", "d"], "c" : ["d", "e"], "d" : [], "e" : [] } print(myGraph)--- SECTION: Output of print(myGraph) --- {'a': ['b', 'c'], 'b': ['c', 'd'], 'c': ['d', 'e'], 'd': [], 'e': []}وسيتولى البرنامج الرئيس: 1. إنشاء المخطط. 2. طباعة المخطط. 3. استدعاء دالة الإضافة. 4. طباعة كل مسارات المخطط.--- SECTION: Graph Representation Explanation --- ستستخدم القاموس الذي تمثل مفاتيحه العقد بالمخطط. تكون القيمة المقابلة لكل مفتاح هي قائمة تحتوي على العقد المتصلة بحافة مباشرة من هذه العقدة.--- SECTION: Python Graph Functions --- # function for adding an edge to a graph def addEdge(graph,u,v): graph[u].append(v)# function for generating the edges of a graph def generate_edges(graph): edges = []# for each node in graph for node in graph:2023 - 1447--- VISUAL CONTEXT --- **DIAGRAM**: شكل 1.48: مثال على المخطط Description: A directed graph diagram showing five nodes labeled 'a', 'b', 'c', 'd', 'e' and directed edges connecting them. Node 'a' points to 'b' and 'c'. Node 'b' points to 'c' and 'd'. Node 'c' points to 'd' and 'e'. Nodes 'd' and 'e' have no outgoing edges. Table Structure: Headers: N/A Rows: Data: The diagram illustrates a directed graph with nodes 'a', 'b', 'c', 'd', 'e'. The connections are: a→b, a→c, b→c, b→d, c→d, c→e. Nodes 'd' and 'e' are terminal nodes in this representation. Key Values: nodes: a, b, c, d, e, edges: (a,b), (a,c), (b,c), (b,d), (c,d), (c,e) Context: This visual element serves as a concrete example of a directed graph, which is then represented and manipulated using Python code in the accompanying text and code blocks. It directly corresponds to the graph structure defined in `myGraph`.

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

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

كيف يتم تمثيل المخططات في لغة بايثون عند عدم وجود نوع بيانات مسبق؟

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

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

تلميح: ما هي هياكل البيانات الأساسية التي يمكن استخدامها لتخزين العلاقات بين العناصر؟

في تمثيل المخطط باستخدام القاموس في بايثون، ماذا تمثل المفاتيح وماذا تمثل القيم؟

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

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

تلميح: فكر في كيفية ربط العنصر الرئيسي (العقدة) بالعناصر الفرعية (العقد المتصلة).

بالنظر إلى المخطط الممثل كقاموس في بايثون: `myGraph = { "a" : ["b","c"], "b" : ["c", "d"], "c" : ["d", "e"], "d" : [], "e" : [] }`، ما هي العقد التي يمكن الوصول إليها مباشرة من العقدة 'b'؟

الإجابة: يمكن الوصول مباشرة إلى العقدتين 'c' و 'd' من العقدة 'b'.

الشرح: القيمة المرتبطة بالمفتاح 'b' هي القائمة `["c", "d"]`، وهذا يعني أن هناك حواف موجهة من 'b' إلى 'c' ومن 'b' إلى 'd'.

تلميح: ابحث عن المفتاح 'b' في القاموس وانظر إلى القائمة المرتبطة به.

ما هو الغرض من دالة `addEdge` الموضحة في النص؟

الإجابة: الغرض من دالة `addEdge` هو إضافة حافة (اتصال) جديدة بين عقدتين في المخطط، حيث تقوم بإضافة العقدة المتصلة (v) إلى قائمة العقد المتصلة بالعقدة المصدر (u).

الشرح: هذه الدالة تعدل هيكل البيانات (القاموس) ليعكس وجود اتصال جديد بين عقدتين، مما يسمح ببناء أو تعديل المخطط.

تلميح: ماذا تفعل الدالة عندما يتم استدعاؤها بمعاملات تمثل عقدتين؟

كيف يتم تمثيل المخططات في لغة بايثون؟

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

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

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

التصنيف: مفهوم جوهري | المستوى: متوسط