الذكاء الاصطناعي1 - الدرس 3 [53-62] PDF

Document Details

DedicatedSilver

Uploaded by DedicatedSilver

الحكم بن هشام بالمهد - مسارات

Tags

artificial intelligence data structures trees graphs

Summary

This document contains a lesson on artificial intelligence, specifically focusing on non-linear data structures, including trees and graphs. The lesson includes examples of how these structures are used.

Full Transcript

‫الدر س الثالث‬ ‫هياكل البيانات غري اخلط َّية‬ ‫يف الدر س ال س ابق تع ّلم ت بع ض هي اكل البيان ات اخلط َّي ة‪ ،‬وفيه ا كل عن ص ر يَتب ع العن ص ر ا آآلخ ر بطريق ة خط َّي ة‪.‬ه ل ميكنك‬ ‫التفكري يف حالة ال ت سري فيها األأ شياء بت سل سل خطيّ ؟ على سبيل املثال‪ ،‬هل ميكن لعن صر واحد أن يتبعه أكرث من عن...

‫الدر س الثالث‬ ‫هياكل البيانات غري اخلط َّية‬ ‫يف الدر س ال س ابق تع ّلم ت بع ض هي اكل البيان ات اخلط َّي ة‪ ،‬وفيه ا كل عن ص ر يَتب ع العن ص ر ا آآلخ ر بطريق ة خط َّي ة‪.‬ه ل ميكنك‬ ‫التفكري يف حالة ال ت سري فيها األأ شياء بت سل سل خطيّ ؟ على سبيل املثال‪ ،‬هل ميكن لعن صر واحد أن يتبعه أكرث من عن صر؟‬ ‫هياكل البيانات غري اخلطيَّة ‪Non-Linear Data Structures‬‬ ‫هي نوع من هياكل البيانات يتميز ب إمكانية ربط عن صر ب أكرث من عن صر واحد يف الوقت نف سه‪.‬ومن األأمثلة التو ضيحية‬ ‫وخُمطَّ طات البيانات‪.‬ال شكل ‪ 1.33‬يو ضح هياكل البيانات اخلط َّية وهياكل‬ ‫على هياكل البيانات غري اخلط َّية‪ :‬األأ شجار ُ‬ ‫البيانات غري اخلطيَّة‪.‬‬ ‫هياكل البيانات اخلطيَّة‬ ‫هياكل البيانات غري اخلطيَّة‬ ‫ شكل ‪ :1.33‬الر سم التو ضيحي لهياكل البيانات اخلطيَّة وغري اخلطيَّة‬ ‫جدول ‪ :1.9‬الفرق بني هياكل البيانات اخلط َّية وغري اخلط َّية‬ ‫هياكل البيانات غري اخلطيَّة‬ ‫هياكل البيانات اخلطيَّة‬ ‫تُر َّت ب عنا ص ر البيان ات يف ترتي ب خط ي يرتب ط في ه ميكن ربط عنا صر البيانات بالعديد من العنا صر األأخرى‪.‬‬ ‫كل عن صر بالعن صرين ال سابق والتايل له‪.‬‬ ‫ال تُ ستَعر ض عنا صر البيانات يف م سار واحد‪.‬‬ ‫تُ ستَعر ض عنا صر البيانات يف م سار واحد‪.‬‬ ‫معقّد التنفيذ‪.‬‬ ‫ سهل التنفيذ‪.‬‬ ‫‪53‬‬ ‫األأ شجار ‪Trees‬‬ ‫األأ ش جار ه ي ن وع م ن هي اكل البيان ات غ رير اخلط َّي ة‪ ،‬وتتك ون ال ش جرة م ن جمموع ة من‬ ‫ال ُعق د املُر َّتب ة يف ترتي ب هرم ي‪.‬ترتب ط كل عُ ق دة بواح دة أو أ ك رثر م ن ال ُعق د‪ ،‬وترتب ط‬ ‫ال ُعق د م ع احل واف يف من وذج عالق ة يرب ط ب نين األأ ص ل (‪ )Parent‬وال َف رع (‪.)Child‬‬ ‫ تخدم األأ ش جار يف العدي د م ن جم االت عل وم احلا س ب‪ ،‬مبا يف ذلك أنظمة الت ش غيل‪،‬‬ ‫تُ س َ‬ ‫والر س وميات‪ ،‬و أنظم ة قواع د البيان ات‪ ،‬واألألع اب‪ ،‬وال ذكاء اال صطناع ي‪ ،‬و ش بكات‬ ‫احلا سب‪.‬‬ ‫عُقدة‬ ‫حافّة‬ ‫ شكل ‪ :1.34‬العالقات يف ال شجرة‬ ‫مُ صطلحات تقنية ال شجرة املُ ستخدمة يف هيكل بيانات ال شجرة‬ ‫ ِ‬ ‫اجلذر (‪ :)Root‬العُقدة األأوىل والوحيدة يف ال ش جرة التي لي س لها أ صل وت أتي يف امل س توى األأول من ال ش جرة‪ ،‬مثل‪:‬‬ ‫العُقدة ‪ A‬يف ال شكل ‪.1.35‬‬ ‫ الفَرع (‪ :)Child‬العُقدة املرتبطة مبا ش ر ًة ِبعُقدة يف امل س توى األأعلى‪ ،‬مثل‪ :‬العُقدة ‪ H‬هي فرع العُقدة ‪ ،D‬والعُقدتان‬ ‫‪ B‬و‪ C‬هما فرعا العُقدة ‪.A‬‬ ‫ األأ صل (‪ :)Parent‬العُقدة التي لها فرع أو أكرث يف امل ستوى األأقل‪ ،‬مثل‪ :‬العُقدة ‪ B‬هي أ صل العُقدتني ‪ D‬و‪.E‬‬ ‫ الورقة (‪ :)Leaf‬العُقدة التي لي س لها أي عُ قدة فرعية‪ ،‬مثل‪ :‬الورقة ‪.F‬‬ ‫ األأ شقاء (‪ :)Siblings‬كل العُقد الفرعية التي تنبثق من األأ صل نف سه‪ ،‬مثل‪:‬العُقدتان ‪ D‬و‪ E‬شقيقتان‪.‬‬ ‫ احلواف (‪ :)Edges‬الروابط التي ت صل بني العُقد وال شجرة‪.‬‬ ‫ ال شجرة الفرعية (‪ :)Sub-Tree‬ال شجريات التي توجد داخل ال شجرة األأكرب حجمًا‪ ،‬مثل‪:‬ال شجرة التي بها العُقدة‬ ‫‪ D‬هي األأ صل والعُقدتان ‪ H‬و‪ I‬هما الفرعان‪.‬‬ ‫ِ‬ ‫اجلذر‬ ‫امل ستوى األأول‬ ‫ال شجرة (‪:)Tree‬‬ ‫ال ش جرة ه ي ن وع م ن هي اكل‬ ‫البيان ات غ رير اخلط َّي ة‪ ،‬وتتكون‬ ‫م ن جمموع ة من ال ُعق د املُرتَّبة‬ ‫يف ترتيب هرمي‪.‬‬ ‫‪A‬‬ ‫امل ستوى الثاين‬ ‫احلواف‬ ‫‪C‬‬ ‫‪B‬‬ ‫العُقدة‬ ‫األأ صل‬ ‫األأ شقاء‬ ‫امل ستوى الثالث‬ ‫‪F‬‬ ‫‪G‬‬ ‫‪E‬‬ ‫‪D‬‬ ‫احلافة (‪:)Edge‬‬ ‫احلاف ة ت ص ل ب نين عُ ق د هي كل‬ ‫بيانات ال شجرة‪.‬‬ ‫الورقة‬ ‫امل ستوى الرابع‬ ‫ شكل ‪ :1.35‬هيكل بيانات ال شجرة‬ ‫‪54‬‬ ‫‪J‬‬ ‫ال شجرة‬ ‫الفرعية‬ ‫‪I‬‬ ‫العُقدة‬ ‫الفَرع‬ ‫‪H‬‬ ‫قد يكون لديك شجرة ب سيطة‬ ‫تتكون من عُقدة واحدة‪.‬تكون‬ ‫هذه العُقدة يف الوقت نف سه‬ ‫جِ ذر هذه ال شجرة الب سيطة‪،‬‬ ‫ألأنّها لي س لها أ صل‪.‬‬ ‫وفيما يلي مثال على هيكل بيانات ال شجرة‪:‬‬ ‫أ صاًل‬ ‫قد تكون العُقدة فرعًا و ً‬ ‫يف الوقت نف سه‪ :‬فرع للعُقدة‬ ‫ال سابقة و أ صل للعُقدة التالية‪.‬‬ ‫اجلِ ذر‬ ‫احليوانات‬ ‫العُقدة األأ صل‬ ‫الالفقاريَّات‬ ‫العنكبوتيات‬ ‫الفقاريَّات‬ ‫احل شرات‬ ‫األأ سماك‬ ‫الثد ِييَّات‬ ‫الطيور‬ ‫العُقدة الفَرع‬ ‫الورقة‬ ‫النمر‬ ‫األأ شقاء‬ ‫اجلَمل‬ ‫احل صان‬ ‫ شكل ‪ :1.36‬مثال على هيكل بيانات ال شجرة‬ ‫خ صائ ص هيكل بيانات ال شجرة ‪Tree Data Structure Features‬‬ ‫ يُ ستخدم لتمثيل املُخطَّ ط الهرمي‪.‬‬ ‫ يتميّز باملرونة‪ ،‬فمن ال سهل إ ضافة عن صر من ال شجرة أو حذفه‪.‬‬ ‫ سهولة البحث عن العنا صر فيه‪.‬‬ ‫ يعك س العالقات الهيكلية بني البيانات‪.‬‬ ‫مثال‬ ‫تنظي م امللف ات يف نظ ام الت ش غيل ه و مث ال عمل ي عل ى ال ش جرة‪.‬كم ا يت ض ح يف ال ش كل ‪ ،1.37‬يوج د داخ ل جمل د‬ ‫‪( Documents‬امل ستندات) ُجُملد آخر ا سمه ‪( Python Projects‬م شروعات البايثون) يحتوي على ملفني آخرين‪.‬‬ ‫‪This PC‬‬ ‫‪Pictures‬‬ ‫‪Music‬‬ ‫‪Downloads‬‬ ‫‪Documents‬‬ ‫‪Python Projects‬‬ ‫‪infinite.py‬‬ ‫ شكل ‪ :1.37‬تنظيم امللفات يف نظام الت شغيل‬ ‫‪Desktop‬‬ ‫‪3D Objects‬‬ ‫‪Alice‬‬ ‫‪HelloWorld.py‬‬ ‫‪55‬‬ ‫هيكل بيانات ال شجرة يف لغة البايثون‬ a b c d e f ‫ شجرة قامو س البايثون‬:1.38 ‫ شكل‬ Tree Data Structure in Python ‫ ومع‬.‫ال تُوفِر لغة البايثون نوعً ا حمددًا م س بقًا من البيانات لهيكل بيانات ال ش جرة‬ 1.38 ‫ يو ض ح ال ش كل‬.‫ صم م األأ ش جار م ن القوائ م والقوامي س ب س هولة‬ َّ ‫ ُت‬،‫ذل ك‬.‫تطبيقًا ب سيطً ا لل شجرة با ستخدام القامو س‬ ‫ س تمثّل عُ ق د‬.‫ ستُن ش ئ ش جرة با س تخدام قامو س البايث ون‬،‫يف ه ذا املث ال‬ ‫ و س تكون القيم ة املقابل ة لكل مفت اح هي قائمة‬،‫ال ش جر ِة مفاتي حَ القامو س‬.‫حتتوي على ال ُعقد املُت صلة بحافة مبا شرة من هذه العُقدة‬ myTree = { "a": ["b", "c"], # node "b": ["d", "e"], "c": [None, "f"], "d": [None, None], "e": [None, None], "f": [None, None], } print(myTree) {'a': ['b', 'c'], 'b': ['d', 'e'], 'c': [None, 'f'], 'd': [None, None], 'e': [None, None], 'f': [None, None]} :1.39 ‫يف املثال التايل ستُن شئ شجرة مثل تلك املو ضحة يف ال شكل‬ ‫األأ صل‬ Data Structures Linear Non-linear Tree Stack Queue Graph Linked List ‫ شجرة هياكل البيانات‬:1.39 ‫ شكل‬ ‫الفَرع‬ myTree = {"Data Structures":["Linear","Non-linear"], "Linear":["Stack","Queue","Linked List"], "Non-linear":["Tree", "Graph"]} for parent in myTree: print(parent, "has",len(myTree[parent]),"nodes" ) for children in myTree[parent]: print(" ",children) Data structures has 2 nodes Linear Non-linear Linear has 3 nodes Stack Queue Linked List Non-linear has 2 nodes Tree Graph 56 ‫ال شجرة الثنائية ‪Binary Tree‬‬ ‫ال شجرة الثنائية هي نوع خا ص من األأ شجار‪ ،‬يكون لك ّل عُ قد ٍة فيها فرعان على األأكرث؛ الفَرع األأمين والفَرع األأي سر‪.‬ال شكل ‪1.40‬‬ ‫مثااًل يو ضح ال شجرة وال شجرة الثنائية‪.‬‬ ‫يَعر ض ً‬ ‫ال شجرة‬ ‫ال شجرة الثنائية‬ ‫‪a‬‬ ‫‪b‬‬ ‫‪d‬‬ ‫‪a‬‬ ‫‪b‬‬ ‫‪c‬‬ ‫‪c‬‬ ‫‪j‬‬ ‫‪i‬‬ ‫‪f‬‬ ‫‪h‬‬ ‫‪g‬‬ ‫‪m‬‬ ‫‪e‬‬ ‫‪g‬‬ ‫‪f‬‬ ‫‪k‬‬ ‫‪l‬‬ ‫‪d‬‬ ‫‪e‬‬ ‫‪h‬‬ ‫‪i‬‬ ‫الفَرع األأمين الفَرع األأي سر‬ ‫ شكل ‪ :1.40‬ال شجرة وال شجرة الثنائية‬ ‫جدول ‪ :1.10‬أنواع هياكل بيانات ال شجرة الثنائية‬ ‫الو صف‬ ‫النوع‬ ‫ال شجرة الثنائية التّامة‬ ‫(‪)Full Binary Tree‬‬ ‫يكون لك ّل عُ قدة إ مّا ‪ 0‬أو ‪ 2‬من الفروع‬ ‫(‪)Children‬بخالف األأوراق (‪.)Leaves‬‬ ‫ال شجرة الثنائية الكاملة‬ ‫(‪)Complete Binary Tree‬‬ ‫يكون ك ّل م س توًى من م س تويات ال شجرة ممتلئًا‬ ‫بالكام ل‪ ،‬رمبا با س تثناء امل س توى األأخري‪ ،‬حيث‬ ‫تك ون كل ال ُعق د في ه ممل وءة م ن الي س ار إىل‬ ‫اليمني‪.‬‬ ‫ال ش جرة الثنائي ة املثالي ة‬ ‫(‪)Perfect Binary Tree‬‬ ‫يك ون ل كل ال ُعق د الداخلي ة فرع ان وتك ون كل‬ ‫األأوراق عند امل ستوى نف سه‪.‬‬ ‫ر سم تو ضيحي للهيكل‬ ‫‪0‬‬ ‫‪2‬‬ ‫‪1‬‬ ‫‪4‬‬ ‫‪0‬‬ ‫‪2‬‬ ‫‪1‬‬ ‫‪5‬‬ ‫‪4‬‬ ‫‪3‬‬ ‫‪0‬‬ ‫‪2‬‬ ‫‪6‬‬ ‫‪3‬‬ ‫‪5‬‬ ‫‪1‬‬ ‫‪4‬‬ ‫‪3‬‬ ‫ أمثلة على تطبيقات هياكل بيانات ال شجرة‪:‬‬ ‫‪Examples of Applications of Tree Data Structures:‬‬ ‫ تخزين البيانات الهرمية مثل‪ :‬هياكل املجلدات‪.‬‬ ‫ تعريف البيانات يف لغة ترميز الن ص الت شعبي (‪.)HTML‬‬ ‫ تنفيذ الفهر سة يف قواعد البيانات‪.‬‬ ‫‪57‬‬ ‫ شجرة القرار ‪Decision Tree‬‬ ‫عب ارة الق رار ‪ if a: else b‬ه ي واح دة م ن العب ارات ا أألك رثر ا س تخدامً ا يف لغ ة البايث ون‪.‬‬ ‫ومن خالل تداخل وجتميع هذه العبارات‪ ،‬ميكنك ت صميم شجرة القرار‪.‬‬ ‫تُ ستخدَ م أ شجار القرار يف الذكاء اال صطناعي من خالل إحدى تقنيات تعلم اآلآلة وتُعرف‬ ‫با س م‪ :‬تع ُّل م ش جرة الق رار (‪.)Decision Tree Learning‬ال ُعق د ا أألخ ريرة يف ه ذه‬ ‫أي ضا‪ :‬األأوراق‪ ،‬وحتتوي على احللول املُحتملة للم ش كلة‪.‬كل ُعقدة با س تثناء‬ ‫التقنية تُ س مّى ً‬ ‫األأوراق ترتبط بحالة منطقية يتفرع منها احتماال اإلإجابة بنعم أو ال‪.‬أ شجار القرار تعترب‬ ‫ سهلة الفهم‪ ،‬واال ستخدام‪ ،‬والت صوير‪ ،‬وي سهل التحقق منها‪ ،‬على سبيل املثال‪ ،‬ال شكل ‪1.41‬‬ ‫يو ض ح ش جرة الق رار الت ي ُحُت ِّ دد ما إذا كنت س تَتق َّدم بطلب االلتح اق بجامعة ُحُم َّددة أم‬ ‫ال بن ا ًء عل ى معياري ن‪ :‬املق ررات الدرا س ية الت ي ُتد َّر س يف اجلامع ة‪ ،‬وا س تيفاء متطلب ات‬ ‫القبول‪.‬‬ ‫املُخطَّ طات ‪Graphs‬‬ ‫ال س مَة ا أألك رثر أهمي ة لهي اكل البيان ات غ رير اخلط َّي ة ه ي أنّ البيان ات اخلا ص ة به ا ال تت ّب ع‬ ‫ وع م ن أن واع التّ سل س ل‪ ،‬وذلك على خالف امل صفوف ات والقوائم املرتابطة‪ ،‬كما ميكن‬ ‫ أي ن ٍ‬ ‫رب ط عنا صره ا ب أ ك رثر م ن عن ص ر وحي د‪.‬ال ش جرة اجلذري ة (‪ )Rooted Tree‬تب د أ‬ ‫ب ُعق دة جذري ة ميك ن ربطه ا بال ُعق د ا أألخ رى‪َ.‬ت ْتب ع تتب ع األأ ش جار قواع د حم ددة‪ :‬وهي أن‬ ‫تكون عقد ال ش جرة مت صلة‪ ،‬و أن تكون ال ش جرة خالية من احللقات(‪ )Loops‬واحللقات‬ ‫الذاتية (‪ ،)Self Loops‬كما أن لبع ض أنواع األأ شجار قواعدها اخلا صة (جدول ‪،)1.10‬‬ ‫مثلم ا يف حال ة األأ ش جار الثنائي ة‪.‬ولك ن م اذا س يحدث إذا مل َت َّتب ع قواع د األأ ش جار؟ يف‬ ‫ُتغرِّية‬ ‫ه ذه احلال ة أن ت ال تتح دث ع ن األأ ش جار‪ ،‬ب ل عن ن وع جديد من هي اكل البيان ات امل ِّ‬ ‫الت ي ُت س مى املُخطَّ ط ات‪.‬يف احلقيق ة‪ ،‬األأ ش جار هي ن وع من املُخطَّ طات حي ث أن املُخطَّ ط‬ ‫ه و ال ش كل الع ام لهي كل البيان ات‪ ،‬مبعن ى أن كل هي اكل البيانات ال س ابقة ميك ن اعتبارها‬ ‫حاالت خا صة من املُخطَّ طات‪.‬ال شكل ‪ 1.42‬يعر ض ُخُمطَّ طً ا به ست عُ قد وع شر حواف‪.‬‬ ‫جدول ‪:1.11‬الفرق بني األأ شجار واملُ َّ‬ ‫خططات‬ ‫امل ُخطَّ طات‬ ‫األأ شجار‬ ‫ت ش كّل ال ُعق د املتّ صل ة فيه ا منوذجً ا ت شكّل العُقد املتّ صلة فيها‬ ‫منوذجً ا شبكيًّا‪.‬‬ ‫هرميًّا‪.‬‬ ‫يف األأ شجار اجلذرية توجد عُ قدة‬ ‫ال توجد فيها عُ قدة فريدة‬ ‫فريدة تُ سمى اجلِ ذر‪.‬‬ ‫ أو جذرية‪.‬‬ ‫ترتب ط ال ُعق د يف ص ورة عالق ة ب نين ال تنطبق عالقة األأ صل‬ ‫والفَرع بني العُقد‪.‬‬ ‫األأ صل والفَرع‪.‬‬ ‫تركيب املخطّ طات أكرث‬ ‫تتميز بب ساطة الرتكيب‪.‬‬ ‫تعقيدً ا‪.‬‬ ‫قد حتتوي على احللقات‪.‬‬ ‫ال ُي سمح فيها باحللقات‪.‬‬ ‫‪58‬‬ ‫هل تقدّم اجلامعة املقرر‬ ‫الدرا سي الذي أريده؟‬ ‫نعم‬ ‫ال‬ ‫َجَتاهَ ل‬ ‫هل درجاتي تُلبي‬ ‫ شروط القبول؟‬ ‫ال‬ ‫نعم‬ ‫َجَتاهَ ل‬ ‫تطبيق‬ ‫ شكل ‪ :1.41‬مثال على شجرة القرار‬ ‫املُخطَّ ط (‪:)Graph‬‬ ‫املُخطَّ ط ه و هي كل البيان ات املُك وَّن‬ ‫م ن جمموع ة م ن ال ُعق د وجمموع ة‬ ‫م ن اخلط وط الت ي ت صل ب نين جميع‬ ‫العُقد‪ ،‬أو بع ضها‪.‬‬ ‫كل األأ شجار ُخُمطَّ طات‪ ،‬ولكن لي ست‬ ‫كل امل ُخطَّ طات أ شجارًا‪.‬‬ ‫‪2‬‬ ‫‪1‬‬ ‫‪3‬‬ ‫‪4‬‬ ‫‪6‬‬ ‫ شكل ‪ :1.42‬مثال على ُخُمطَّ ط به ست عُ قد وع شر حواف‬ ‫‪5‬‬ ‫ أنواع املُخطَّ طات ‪Types of Graphs‬‬ ‫ امل ُخطَّ ط امل ُوجَّ ه (‪ :)Directed Graph‬ترتب ط ال ُعق د باحل واف املوجه ة يف املخط ط املُوجَّ ه‪ ،‬بحي ث يك ون للحاف ة اجت اه‬ ‫واحد‪.‬‬ ‫ امل ُخطَّ ط غ رير امل ُوجَّ ه (‪ :)Undirected graphs‬ال حتت وي الو ص الات عل ى اجت اه يف املُخطَّ ط غ رير املُوجَّ ه‪ ،‬وه ذا يعن ي أن‬ ‫احلواف ت شري إىل عالقة ثنائية االجتاه ميكن من خاللها عر ض البيانات يف كال االجتاهني‪.‬‬ ‫وجه يتكونان من ست ُعقد و ست حواف‪.‬‬ ‫ال شكل ‪ 1.43‬يعر ض خمطّ طً ا موجَّ هًا‪ ،‬وخمطّ طً ا غري ُم َّ‬ ‫امل ُخطّ ط غري امل ُوجَّ ه‬ ‫املخطّ ط امل ُوجَّ ه‬ ‫ شكل ‪ :1.43‬املُخطَّ ط املُوجَّ ه و املُخطَّ ط غري املُوجَّ ه‬ ‫املُخطَّ طات يف احلياة اليومية ‪Graphs in Everyday Life‬‬ ‫ شبكة الويب العاملية ‪World Wide Web‬‬ ‫ُتع ُّد ش بكة الوي ب العاملي ة م ن أب رز األأمثل ة للمُخطَّ ط ات‪ ،‬وميك ن اعتباره ا مبثاب ة أح د أن واع املُخطَّ ط ات املُوجَّ ه ة حيث‬ ‫ُوجه ة‪.‬تنقي ب ُبن َي ة الوي ب‬ ‫ُمُت ِّث ل الر ؤو س (‪ )Vertices‬صفح ات الوي ب‪ُ ،‬ومُت ِّث ل االرتباط ات الت ش عبية احل واف امل َّ‬ ‫(‪ )Web Structure Mining‬ه و اكت ش اف املعرِ ف ة املُفي دة م ن هي كل ش بكة الوي ب املُمَث َل ة م ن خ الال االرتباط ات‬ ‫الت ش عبية‪ ،‬وميك ن أن مي ّث ل هي كل املُخطَّ ط االرتباط ات الت ش عبية والعالق ات التي تُن ش ئها بني صفح ات الويب املختلفة‪.‬‬ ‫خططات ُمُيكنك ح ساب األأهمية الن سبية‬ ‫يعر ض ال شكل ‪ 1.44‬ر س ًما تو ضيح ًيا ل شبكة الويب العاملية‪.‬با ستخدام هذه املُ َّ‬ ‫ل صفحات الويب‪.‬‬ ‫‪C‬‬ ‫‪B‬‬ ‫‪C‬‬ ‫‪A‬‬ ‫‪B‬‬ ‫‪D‬‬ ‫‪D‬‬ ‫‪D‬‬ ‫ شكل ‪ :1.44‬شبكة الويب العاملية‬ ‫يَ س تخدِ م ُحُم رِّك البح ث قوق ل (‪ )Google Search Engine‬منهجي ة مماثل ة لتحديد األأهمية الن س بية ل صفحات‬ ‫الوي ب وم ن ث م ترتي ب نتائ ج البح ث ح س ب أهميته ا‪.‬اخلوارزمي ة املُ س تخدَ مة بوا س طة قوق ل هي خوارزمي ة ت صنيف‬ ‫ال صفحة أو بيج رانك (‪ )PageRank‬التي ابتكرها م ؤ سِّ سو قوقل‪.‬‬ ‫‪59‬‬ ‫في سبوك ‪Facebook‬‬ ‫في سبوك هو مثال آخر على املُخطَّ طات غري املُوجَّ هة‪.‬يظهر بال شكل ‪1.45‬‬ ‫ال ُعق د الت ي ُمُت ِّث ل ُم س تخدمي في س بوك‪ ،‬بينم ا ُمُت ِّث ل احل واف عالق ات‬ ‫ال صداق ة‪.‬عندم ا تري د إ ضافة صدي ق‪ ،‬يجب عليه قبول طلب ال صداقة؛‬ ‫ولن يكون ذلك ال شخ ص صديقك على ال شبكة دون قبول طلب ال صداقة‪.‬‬ ‫العالق ة هن ا ب نين اثن نين م ن املُ س ِ‬ ‫(عقدت نين) ه ي عالق ة ثنائي ة‬ ‫ تخدمني ُ‬ ‫ تخدم خوارزمي ة مقرتح ات األأ صدق اء يف في س بوك نظري ة‬ ‫االجت اه‪ُ.‬ت س َ‬ ‫املُخطَّ طات‪.‬تَدر س حتليالت ال شبكات االجتماعية العالقات االجتماعية‬ ‫با ستخدام نظرية املُخطَّ طات أو ال شبكات من علوم احلا سب‪.‬‬ ‫امل ُ ستخدِ م‬ ‫عالقة ال صداقة‬ ‫ شكل ‪ُ :1.45‬خُمطَّ ط في سبوك غري املُوجَّ ه‬ ‫خرائط قوقل ‪Google Maps‬‬ ‫ي س تخدم تطبيق خرائط قوقل وكل التطبيقات املُ ش ابهة له املُخطَّ طات لعر ض أنظمة النقل واملوا صالت حل س اب امل س ار‬ ‫األأق ص ر ب نين موقع نين‪.‬تَ س ِ‬ ‫ تخدم ه ذه التطبيق ات املُخطَّ ط ات الت ي حتتوي على عدد كب رير جدً ا من ال ُعق د واحلواف التي‬ ‫ال ُمُيكن متييزها بالعني املُجردة‪.‬‬ ‫ شكل ‪ :1.46‬خرائط قوقل‬ ‫ال شبكة الع صبية ‪Neural Network‬‬ ‫ال ش بكة الع صبي ة ه ي ن وع ُخُمطَّ ط تعلُّ م اآلآلة الذي يُحاكي الدماغ الب ش ري‪.‬ال ش بكات الع صبية ُمُيكن أن تكون ش بكات‬ ‫وجهة وفقًا للغر ض من التعلُّم‪ ،‬وتتكوّن هذه ال شّ بكات من اخلاليا الع صبية واألأوزان املُوزعة يف الطبقات‬ ‫مُوجَّ هة وغري ُم َّ‬ ‫املختلف ة‪ُ.‬مُت َّث ل اخلالي ا الع صبي ة بال ُعق د‪ ،‬بينم ا ُمُت َّث ل األأوزان باحل واف‪.‬يت م ح س اب تدفق ات اإلإ ش ارة وحت س ينها يف‬ ‫ُ ستخدم ال شبكات الع صبية يف العديد من التطبيقات الذكية مثل‪:‬‬ ‫جميع أنحاء ُبنية ال شبكات الع صبية لتقليل اخلط أ‪.‬ت َ‬ ‫مثااًل على هيكل ال ش بكات‬ ‫الرتجم ة اآلآلي ة‪ ،‬وت صني ف ال ص ور‪ ،‬وحتدي د الكائنات‪ ،‬والتع ّرف عليها‪.‬ال ش كل ‪ 1.47‬يو ضح ً‬ ‫الع صبية‪.‬‬ ‫طبقة امل ُدخَ الت‬ ‫الطبقات املخف َّية‬ ‫ شكل ‪ :1.47‬هيكل ال شبكات الع صبية‬ ‫‪60‬‬ ‫طبقة امل ُخرَجات‬ ‫املُخطَّ طات يف لغة البايثون ‪Graphs in Python‬‬ ‫ال تُو ِف ر لغ ة البايث ون نوعً ا حمددًا م س بقًا من البيانات لألأ ش جار‪ ،‬كم ا أنّها ال تُو ِفر نو ًعا‬ ‫حم ددًا م س بقًا م ن البيان ات لل ُمخطَّ ط ات‪( ،‬تذك ر أن األأ ش جار ه ي ن وع خا ص م ن‬ ‫املُخطَّ طات)‪.‬ومع ذلك‪ُ ،‬مُيكن ِبناء املُخطَّ طات با ستخدام القوائم والقوامي س‪.‬‬ ‫يف املثال التايل‪ ،‬ستقوم بتنفيذ التايل‪:‬‬ ‫‪e‬‬ ‫وجه مثل املُو ضح بال شكل ‪.1.48‬‬ ‫‪.1‬إن شاء ُخُمطَّ ط ُم َّ‬ ‫‪.2‬إن شاء دالة إلإ ضافة عُ قدة إىل املُخطَّ ط‪.‬‬ ‫‪.3‬إن شاء دالة حتتوي على كل م سارات املُخطَّ ط‪.‬‬ ‫‪a‬‬ ‫‪c‬‬ ‫‪b‬‬ ‫ شكل ‪ :1.48‬مثال على املُخطَّ ط‬ ‫‪: ["b","c"],‬‬ ‫‪["c", "d"],‬‬ ‫‪["d", "e"],‬‬ ‫‪[],‬‬ ‫‪[],‬‬ ‫‪d‬‬ ‫"‪myGraph = { "a‬‬ ‫‪"b" :‬‬ ‫‪"c" :‬‬ ‫‪"d" :‬‬ ‫‪"e" :‬‬ ‫}‬ ‫)‪print(myGraph‬‬ ‫‪{'a': ['b', 'c'], 'b': ['c', 'd'], 'c': ['d', 'e'],‬‬ ‫}][ ‪'d': [], 'e':‬‬ ‫و سيتوىّل الربنامج الرئي س‪:‬‬ ‫ّ‬ ‫‪.1‬إن شاء املُخطَّ ط‪.‬‬ ‫‪.2‬طباعة املُخطَّ ط‪.‬‬ ‫‪.3‬ا ستدعاء دالة اإلإ ضافة‪.‬‬ ‫‪.4‬طباعة كل م سارات املُخطَّ ط‪.‬‬ ‫ ست ِ‬ ‫َ ستخدم القامو س الذي ُمُتثِّل مفاتيحه العُقد باملُخطَّ ط‪.‬تكون القيمة املقابِلة لكل مفتاح هي قائمة حتتوي على العُقد‬ ‫املت صلة بحافة مبا شرة من هذه العُقدة‪.‬‬ ‫‪# 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:‬‬ ‫‪61‬‬ # for each neighbouring node of a single node for neighbour in graph[node]: # if edge exists then append to the list edges.append((node, neighbour)) return edges # main program # initialisation of graph as dictionary myGraph = {"a" "b" "c" "d" "e" } : : : : : ["b","c"], ["c", "d"], ["d", "e"], [], [], # print the graph contents print("The graph contents") print(generate_edges(myGraph)) # add more edges to the graph addEdge(myGraph,'a','e') addEdge(myGraph,'c','f') # print the graph after adding new edges print("The new graph after adding new edges") print(generate_edges(myGraph)) The graph contents [('a', 'b'), ('a', 'c'), ('b', 'c'), ('b', 'd'), ('c', 'd'), ('c', 'e')] The new graph after adding new edges [('a', 'b'), ('a', 'c'), ('a', 'e'), ('b', 'c'), ('b', 'd'), ('c', 'd'), ('c', 'e'), ('c', 'f')] 62

Use Quizgecko on...
Browser
Browser