الذكاء الاصطناعي1 - الدرس 3 [53-62] PDF
Document Details
Uploaded by DedicatedSilver
الحكم بن هشام بالمهد - مسارات
Tags
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