المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات...
-
Upload
brooke-stafford -
Category
Documents
-
view
57 -
download
6
description
Transcript of المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات...
![Page 1: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/1.jpg)
![Page 2: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/2.jpg)
المخططات والشبكات
Graphs & Networks
لمقرر تركيب البيانات وتصميم 1289الخوارزميات اعداد
د. محمد ذويـب
![Page 3: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/3.jpg)
تعريف مفهوم المخططات 1.والشبكات وتميز بينهما.
تمثل المخططات والشبكات بطرق 2.مختلفة.
تستطيع استخدام خوارزمية 3.Dijkstra إليجاد
اقصر ممر بين زوجين من العناصر. Floyedتستطيع استخدام خوارزمية 4.
إليجاداقصرممر بين زوجين من العناصر.
أهداف المادة العلمية
![Page 4: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/4.jpg)
الشبكـاتNETWORK
المخططـات GRAPHSKS
![Page 5: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/5.jpg)
هي تراكيب بيانات تشبه الهياكل الشجرية
في التمثيل الرياضي حيث تمثل الهياكل الشجرية نوع من أنواع
المخططات
(Graphs)اوال:المخططات
تعريف المخططات
![Page 6: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/6.jpg)
أما في برمجة الحاسوب فان المخطـطات
تستعمل بطريقة تختلف عن الهياكل الشجرية
وما يميزهاقلة القيود عليها
مقارنة بالهياكل الشجريةومن الممكن للعناصر
أن تؤشر الى بعضها
![Page 7: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/7.jpg)
ليس هناك عالقة أبوة وأبناء في المخططات
فالمخططات في اغلب األحيان لها شكل موحد
لتمثيل مشكلة طبيعية فمثال يمكن ان تمثل مجموعة الرؤوس
في المخطط المدن بينما الحواف الطريق الواصلة يمكن ان تمثل
بين هذه المدن
بمعنى آخر
![Page 8: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/8.jpg)
فان المخطط ال يعكس المواقع الجغرافيةبل يعكس واقع العالقات بين المواقع
والممثلة (Vertices)في القمـم
(Edges)والطرق الواصلة بينها
ويمكن أن تمثل الحواف في بعض االحيان على شكل
أقواس باإلضافة الى الخطوط المستقيمة
وعلى اي حـال
![Page 9: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/9.jpg)
تتكون المخططات من جزئيين : رئيسين هما
( Element)العناصر مجموعة من 1.
وتسمى الرؤوس (Node)او العقد V
(Vertices)
)E )edgeمجموعة الحواف 2.
وبناء عليه فان المخطط يشار اليه كما يلي:
G=)V,E(
.1
![Page 10: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/10.jpg)
انـواع المخططات
Graphs Type
المخططات الغير متجهة (UNDIRECTED GRAPHS)
المخططات المتجهة (DIGRAPH )
يوجد نوعان رئيسيان من المخططات هي:
![Page 11: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/11.jpg)
متجهةالمخططات الغير (UNDIRECTED GRAPHS )
يكون المخطط غير متجه عندما تكون كل حافة تصل بين زوج
من القمم الغير مرتبة
:اوال
![Page 12: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/12.jpg)
وكذلك إذا لم تحدد الحواف التي تربط بين رؤوس المخطط باتجاه معين
(v1,v2)تكون القمة
(v2,v1) مكافئة للقمة
وفي هذه الحالة:
![Page 13: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/13.jpg)
v2
v3 v5
v4
v1
![Page 14: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/14.jpg)
المخططات المتجهة(DIGRAPHS )
المخطط يسمى متجه إذا كانت كل حافةفي المخطط تربط بين زوج
مرتب من القمم ويكون هناك على األقل ممرواحد
من كل قمةالى قمةأخرى ومحددا بسهم يشير الى تلك القمة
ثانيا:
![Page 15: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/15.jpg)
v1 v2
v3 v4 v5
v6 v7
![Page 16: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/16.jpg)
تمثيل المخططاتRepresentation of Graphs
Linked)القوائم المتصلة 1.Representation)
Adjacency)مصفوفة الجوار 2.Matrices)
هناك عدة طرق لتمثيل المخططات منها:
![Page 17: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/17.jpg)
Linked) المتصلةالقوائم
Representation)تعتبر من ابسط الطرق إستخدامافإستعراض المخطط يتضمن زيارة كل قمة في المخطط مرة واحدة
فالخوارزميات التي تطبق فقط في الهياكل الشجرية ال يمكن أن
تطبق هنا الن المخطط قد يحتوي على دوران
: اوال
![Page 18: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/18.jpg)
لذلك خوارزمية االستعراض الشجري من الممكن أن تؤدي الى تكرار ال
نهائي
لمنع ذلك من الحدوث كل رأس تمت زيارته يمكن أن
يسجل لتجنب زيارته مرة أخرى
![Page 19: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/19.jpg)
مع ذلك من الممكن أن تحتوي المخططات
(متصلة غير)على قمم معزولةمما يعني أن بعض أجزاءالمخطط
من الممكن أن تحذف إذا تم تطبيق منهج
االستعراض الشجري
![Page 20: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/20.jpg)
:مثـال
1
2 4
3
مثل المخطط التالي باستخدام مؤشرات الربط
![Page 21: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/21.jpg)
الحـل:
قائمة العناصر1.
قائمة الحـواف2.
يتم تمثيل المخطط كي يشمل قائمتين:
![Page 22: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/22.jpg)
2
1
1
1
NULL
NULL
NULL
NULL
قائمةقائمــة الحوافالعناصر
3
3
2
2
4
4
4
3
1
2
3
4
![Page 23: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/23.jpg)
( Adjacency Matrices) مصفوفة الجوار
هي عبارة عن مصفوفة ثنائية األبعاد التي تحددجميع القمم المجاورة
لكل قمة في المخططهي مصفوفة )A)aijفمصفوفة الجوار
من الحجم n x n حيث يوضع في الموقعaij
قيمة الوزن
: ثانيا
![Page 24: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/24.jpg)
aij := 1 if there is an edge from i to j 0 if there is no edge
اذا كان هناك حافة j الى القمة iمن القمة
اذا لم يكن هناك حافة 0ويوضع تربط بين الرأسين
وبشكل عام العالقة التالية تمثل
:مصفوفة الجوار
![Page 25: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/25.jpg)
مثـال :
مثل الشكل التالي باستخدام مصفوفة الجوار
v1
v7v6
v4 v5v3
v2
![Page 26: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/26.jpg)
يمكن تمثيل المخطط السابق :بمصفوفة الجوار التالية
:الحـل
![Page 27: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/27.jpg)
نالحظ ان مصفوفة الجوار تحتوي دائما
1 و 0 على العنصرين
ولهذا السبب ¡ة يطلق عليها المصفوفة البولي
![Page 28: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/28.jpg)
حساب الحواف الداخلة والخارجة من كل قمـة
في المخطط باستخدام مصفوفة الجوار
كدليل nنستعمل رقم العنصر للعمود
في مصفوفة الجوار ونحسب عدد مرات تكرار
في مصفوفة الجوار1الرقم
لحساب عدد الحواف الداخلة:
![Page 29: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/29.jpg)
كدليل nحيث نستخدم رقم العقدة الصف
في مصفوفة الجوار ونحسب عدد مرات حصول
في ذلك الصف ويمثـل 1 الرقم عدد مرات
عدد الحواف 1 حصول الرقم الخارجة من كل
عقدة في المخطط.
وبنفس الطريقة لحساب الحواف الخارجة:
![Page 30: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/30.jpg)
لحساب الحواف الداخلة والخارجة من والى كل
عنصر في المخطط باستخدام تمثيل مصفوفة
الجوار نكتب الدوال التالية:
: مثـال
buildadjm)intadj[][MAX], int n(
![Page 31: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/31.jpg)
void buildadjm)int adj[][MAX], int n({ int i,j; for)i=0;i<n;i++( for)j=0;j<n;j++(
{ cout<<"Enter 1 if there is an edge from "<< i <<" “
<< "to" <<" "<< j <<" otherwise enter 0 "<<endl;
cin>>adj[i][j]; } }
![Page 32: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/32.jpg)
:حل المثال
ثم نبني الدالةindegree
حيث تحسب عدد مرات ظهور 1الرقم
في كل عمود في مصفوفة الجوار باستخدام
رقم العقدة التي سيتم حساب الحـواف الداخلة لها والذي يمثل
دليل المصفوفة
![Page 33: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/33.jpg)
Int indegree )intadj[][MAX],intx,int n(
{ int i, count =0; for)i=0;i<n;i++(
if) adj[i][x] ==1( count++;
return)count(; }
وهي كالتالي:
![Page 34: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/34.jpg)
ثم نبني الدالةoutdegree
حيث تحسب عدد مرات ظهورفي كل صف من مصفوفة 1 الرقم
الجوار باستعمال رقم العقدة (الرأس)
لها عدد الحواف التي ستحسب
حل المثال :
![Page 35: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/35.jpg)
int outdegree)int adj[][MAX],int x,int n(
{ int i, count =0; for)i=0;i<n;i++( if) adj[x][i] ==1( count++; return)count(; }
:وهي كالتالي
![Page 36: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/36.jpg)
void main)( { int adj[MAX][MAX], n, i; cout<<"Enter the number of nodes in
graph maximum = “ <<MAX<<endl;
cin>>n;
حل المثال:
البرنامج الرئيسي وهنا يكونكالتالي :
buildadjm)adj,n(;
![Page 37: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/37.jpg)
for)i=0;i<n;i++({ cout<<"The indegree
of the node "<<i<<" is” <<indegree)adj,i,n(<<endl;
cout<<"The outdegree of the
node“<<i<<"is”<<outdegree)adj,i,n(<< endl; } }
![Page 38: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/38.jpg)
شرح البرنامج:
يقوم هذا البرنامج أوال ببناء 1.مصفوفة الجوار
من خالل مناداة بعد buildadjmالدالة
ذلك يدخل في حلقة التكرار الداخلة والخارجة لحسـاب الحواف
لكل عقدة في المخطط مناداة الدوال........... من خالل
indegreeوoutdegree.على التوالي
![Page 39: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/39.jpg)
تحسب عدد indegreeالدالة2.مرات
في كل عمود 1 ظهور الرقم في مصفوفة
الجوار بإستخدام رقم العقدة الـتي
سيتم حساب الحواف الداخلة لها والذي
يمثل دليل المصفوفة.
![Page 40: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/40.jpg)
تحسب عددoutdegreeالدالة3.في 1 مرات ظهور الرقم
كل صف من مصفوفة الجوار
بإستعمال رقم العقدة التي ستحسب لها
عدد الحواف.
![Page 41: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/41.jpg)
لشبكاتا NETWORKS
تعرف الشبكة على انها مخطط يتكون من نقطة Diagramهندسي
متصالت فيما F ونقطة نهاية A بدايةبينهما بمجموعة متتابعة من العقد
Nods Edges متصلة معا بعدد من الحواف
ثانيا:
![Page 42: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/42.jpg)
كل حافة تصل بين نقطتين او )( اكثر
ولكل حافة من حوافه قيمة عددية موجبة
تمثل وزن تلك الحافة
![Page 43: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/43.jpg)
طرق ايجاد اقصر الممرات
SHORTEST PATH
ان ايجاد اقصر الممرات في المخطط الشبكي
يعتمد على وجود ممر بين كل قيمتين في المخطط بحيث يكون مجموع اوزان الحواف هو االقل
![Page 44: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/44.jpg)
:فمثالإليجاد الطريق األسرع للوصول من
موقع الى آخر في مخطط الطرق
بين اقصر الممرات نعمل على ايجاد هذه المواقع
من خالل فحص جميع الطرق المؤدية الى الموقع المطلوب
بداية من نقطة االنطالق ونهــاية الى الوجهة المقصودة
![Page 45: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/45.jpg)
ستخدم إليجاد اقصر الممرات نوطريقتيناحدى ال :
االولى :الطريقة 1.باستخدام خوارزمية
(Dijkstra) ديجكسترا
:ةالثانيالطريقة 2.)باستخدام خوارزمية فلويد
Floyd)
![Page 46: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/46.jpg)
االولى :الطريقة •
باستخدام خوارزمية ديجكسترا Dijkstra هناك العديد من الخوارزميات
إليجاد المسافة من قمة الى اخرى في المخطط
حيث تقوم Dijkstraمنها خوارزمية هذه الخوارزمية على تحديد المسافة
من قمة محددة وجميع القمم االخرى في المخطط
![Page 47: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/47.jpg)
من قمة Dijkstraتبدأ خوارزمية معينة
في ( source) تسمى نقطة المصدرالمخطط الشبكي وتمتد حتى تصل
الى جميع القمم االخرى في المخطط وتقوم على تخزين
المسافة الكلية من القمة المصدرية
الى القمة المراد الوصول اليها
![Page 48: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/48.jpg)
وللتوضيح اكثر
على تخزين Dijkstraتعمل خوارزمية مجموع اقل تكلفة للحواف من
نقطة البداية الى نقطة النهاية ومن الجدير بالذكر
ان كفاءة هذه الخوارزمية هو O)n2(
![Page 49: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/49.jpg)
مصفوفة تكلفة الجوار(Adjacency Matrix Cost)
مصفوفة الطول ( Distance Matrix)
مصفوفة التخزين(Path Matrix )
مصفوفة العناصر(Include Matrix)
تحتاج هذه الخوارزمية الى اربع مصفوفات وهي :
![Page 50: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/50.jpg)
المصفوفة األولى:
مصفوفة تكلفة الجوار (Adjacency Matrix Cost )
في الشكل التاليةل الشبكــ يظهر شك
![Page 51: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/51.jpg)
DC
A B
![Page 52: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/52.jpg)
الشكل السابق تمثيل يمكن باستخدام مصفوفة
كما يلي: الجوار A B C D
A 0 A TO B A TO C A TO D
B 0 0 B TO C B TO D
C 0 0 0 C TO D
D 0 0 D TO C 0
+C المصفوفة بلغة ويتم االعالن عن
:كالتالي + int COST[N][N] ;
![Page 53: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/53.jpg)
المصفوفة الثانية: مصفوفة الطول
(Distance Matrix )
لتخزين طول اقصر الطرق من نقطه االنطالق
وذلك في الموقع Jالى النقطه [ DISTANCE[J
+C المصفوفة بلغة ويتم االعالن عن
:كالتالي + int DISTANCE[N][N];
![Page 54: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/54.jpg)
المصفوفة الثالثة:مصفوفة التخزين (Path Matrix)
مر بها في تلتخزين العناصر التي اقصر الممرات
ةيحتوي على النقط path[ j ]حيث ان في اقصر j ة المباشره لنقطةالسابق
الممرات+C المصفوفة بلغة ويتم االعالن عن
:كالتالي + int PATH[N];
![Page 55: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/55.jpg)
المصفوفة الرابعة:مصفوفة العناصر
(Include Matrix)
ه منطقيه¡وهي مصفوفة بولي تحتوي على العناصر المشمولة ،
(االنطالق) االصل ةبما في ذلك نقطالممرات لغاية هذه ضمن اقصر
االلحظه من تطبيق الخوارزمية بدءمن نقطة االنطالق
![Page 56: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/56.jpg)
ففي حالة شمول أي من النقاط قبل j
Includedضمن اقصر الممرات
True تساوي
+C المصفوفة بلغة ويتم االعالن عن
:كالتالي + bool INCLUDE[N];
![Page 57: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/57.jpg)
وصف خوارزمية ديجكسترا إليجاد ; Const int N=50 اقصر الممرات
Typedef bool Boolean Type [N] ;Int cost [N][N] ;Int DISTANCE [N] ;Int PATH [N] ;Bool INCLUDE [N] ;Void SHORTPATH ) int SOURCE (;Boolean Type Included;Int I , j ; ReadMat )(;
![Page 58: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/58.jpg)
Initialize ) SOURCE ( ;Do { FINDMIN )J( ; INCLUDE[J] = true ; For )i=0;i<N ;i++( If ) ! INCLUDED[J] ( UPDATE ) I,
J ( ; PRINT )( ; } While ALL) Included ( ; PrintPath )( ; }
![Page 59: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/59.jpg)
الدوال المستخدمه في خوارزمية ديجكسترا
: ReadMAT الداله1.حيث يتم عن طريق هذه الداله قراءة مصفوفة اوزان الجوار
![Page 60: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/60.jpg)
اوال:أي من والى ( Vi ,Vi) اذا كانت الحافه
.ةالنقطثانيا:
. ة اذا لم توجد حاف
اوال:أي من والى ( Vi ,Vi) اذا كانت الحافه
.ةالنقطثانيا:
. ة اذا لم توجد حاف
وعند ادخال مثل هذه القيم يجب ادخال القيمه
في حالتين هما : 0
![Page 61: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/61.jpg)
: Initialize دالة2.
تحديد القيم ةحيث يتم في هذه الدالاالبتدائية
INCLUDE [ SOURCE] تحدد في البداية لكلtrue INCLUDE [i] على انها تساوي
false النقاط المتبقية تساوي
![Page 62: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/62.jpg)
:FINDMIN الداله 3.داله تعيد اقصر الممرات من وهي
نقطة البداية J الى النقطه
ضمن اقصر Jوبذلك تصبح النقطه الممرات
Included [j]حيث يتم تعديل قيمة
trueلتصبح مساوية للقيمة
![Page 63: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/63.jpg)
ولتحديد ذلك يتم فحص ابعاد جميع الممرات
jمن نقطة البداية الى نقطة وفةـوهذه االبعاد تخزن في المصف
Distance Matrix
![Page 64: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/64.jpg)
:UPDATE الداله 4. Distance تستخدم لتعديل المصفوفة
Matrix في حالة ايجاد Path Matrixوالمصفوفة
نقطة مثلi حيث ان (INCLUDE [i]= false)
تعطي ممر طوله اقصر الممرات الموجودة
قبل اعتبار هذه النقطه
![Page 65: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/65.jpg)
وفي هذه الحاله تضاف هذه النقطه الى النقاط
المشمولة في اقصر الممرات
![Page 66: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/66.jpg)
: ALLالداله 5. و تستخدم كداله منطقيه
عندما تصبح قيم trueو تعيد القيمه جميع
Include Matrix المواقع في المصفوفة trueتساوي
خالف false وتعيد هذه الداله القيمه ذلك
![Page 67: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/67.jpg)
: SHORT PATHالداله 6. وتستخدم كداله يتم من داخلها
استدعاء الدوال السابقه باالضافه الى دالة الطباعه التي
تقوم بطباعةالنتائج وأي معلومات اخرى نرغب
فيها وفي نهاية هذه الداله يتم طباعة اقصر الممرات وتكلفة هذا
الممر
![Page 68: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/68.jpg)
: PRINTدالة الطباعه 7. تستخدم هذه الدالهاتــ لطباعة قيم المصفوف
DISTANSE , INCLUDE , PATH
بعد كل خطوه من خطوات الخوارزميه
![Page 69: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/69.jpg)
: PRINTPATH الداله 8. يستخدم هذا االجراء
لطباعة اقصر الممرات بين نقطة المصدر
ونقطة الوجهه المقصوده
![Page 70: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/70.jpg)
إليجاد اقصر الممرات بين نقطتينباستخدام خوارزمية ديجكسترا
باستخدام مصفوفة تكلفة الجوار الموضحه
التاليفي الشكل نجد اقصر الممراتوف س
3الى النقطه1 من النقطه
![Page 71: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/71.jpg)
1 2 3 4 5
1 0 800 2985 310 200
2 800 0 410 612 0
3 2985 410 0 1421 0
4 310 612 1421 0 400
5 200 0 0 400 0
![Page 72: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/72.jpg)
: توضيحات
اذا لم تكن هناك حافة من النقطه(أ)فان قيمة الموقع ( ب)الى النقطه
تساوي بوالعمود أفي الصف ما النهاية .
![Page 73: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/73.jpg)
عند بدء البرنامج فان الدالهInitialize
تعمل على تحويل االصفار الناتجة عن عدم
وجود حواف بين النقاط في المخطط الى اكبر
++Cقيمه صحيحة ممكنه في لغة
ويرمز الىوهو MAXINTبالرمز هذه القيمه
يساوي 32767.
![Page 74: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/74.jpg)
حل المثال :
تبدأ خوارزمية ديجكسترا بقراءة قيم مصفوفة
الجوار ، ويتم تخزين تلك القيم في فعلى سبيل المثالcostالمصفوفة
وهذا 410 ةالقيم cost [2,3] تساوي يعني
ان وزن الحافه التي تصل بين النقطتين
410 هو 3 و 2
![Page 75: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/75.jpg)
بعد ذلك يتم استدعاء االجراء
initialize والذي يحدد القيم االبتدائية
للمصفوفاتDistance و Path و Included
كما يلي
![Page 76: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/76.jpg)
اوال: كما DISTANCE محتويات المصفوفة
يلي :
من نقطة البداية وهي 1بعد النقطه النقطه نفسها
يساوي صفر DISTANCE [ 1 ]أي
من نقطة البداية 2بعد النقطه 800يساوي DISTANCE [ 2 ]أي
![Page 77: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/77.jpg)
من نقطة البداية3بعد النقطه 2985 يساوي DISTANCE [ 3 ]أي
من نقطة البداية 4بعد النقطه 310 يساوي DISTANCE [ 4 ]أي
من نقطة البداية 5بعد النقطه 200 يساوي DISTANCE [ 5 ]أي
![Page 78: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/78.jpg)
وبذلك : كما يلي :DISTANCEتكون المصفوفة
Distance : 0 800 2985 310 200
![Page 79: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/79.jpg)
: ثانياPATHمحتويات المصفوفة
فهي قيمة نقطة البداية في حال نقطة وجود حافة او ممرمن
البداية الى النقاط االخرى . PATHولهذا تكون محتويات المصفوفة
(أي نقطة البداية)1مساوية للقيمة
حيث تساوي قيمته PATH[1]باستثناء صفرا .
Path: 0 1 1 1 1
![Page 80: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/80.jpg)
:ثالثاINCLUDEمحتويات المصفوفة
falseفان قيم جميع عناصرها تساوي
INCLUDE [ 1 ]باستثناء قيمة العنصر
تمثل نقطة 1حيث ان القيمه البدايةوالتي
وهذا يعني ان النقطه true تساوي 1
ان تشمل في اقصر ينبغيالممرات .
![Page 81: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/81.jpg)
وبذلك نحصل على القيم االبتدائية للمصفوفات
DISTANCE وINCLUDE و PATH
كما يلي :النقطه 1 2 3 4 5Distance 0 800 2985 310 200
Path 0 1 1 1 1Include true false false false false
![Page 82: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/82.jpg)
وفي المرحلة التالية من تنفيذ الخوارزمية
يتم تعديل محتويات المصفوفات الثالث
بحيث تعكس تلك التعديالت ابعاد اقصر الممرات
من نقطة البداية كما تبين هذه التعديالت النقاط
التي تم اخذها بعين االعتبار والنقاط المشمولة
في اقصر الممرات
![Page 83: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/83.jpg)
لذلك يتم في الخطوة الثانيه من
الخوارزميه إجراء التعديالت التالية من النقطه 5فبما ان بعد النقطه على المصفوفات الثالث
هو االقل من ابعاد النقاط االخرى 1 ينبغي ان تكون ضمن5فان النقطه
اقصر الممرات
![Page 84: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/84.jpg)
مساوية INCLUDE [5]وبذلك تصبح للقيمة
true بوصفها النقطه 1 وتبقى النقطه التي يمكن المرور بها حتى هذه
اللحظه من الخوارزميه
وتبقى انطالقا من نقطة البداية مباشرة الى النقاط (1وهي النقطه)
االخرى كما تبقى محتويات كما هي PATHالمصفوفة
![Page 85: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/85.jpg)
وعليه تكون محتويات المصفوفة الثالث بالنسبة
كما يلي :5 الى النقطة
النقطه 1 2 3 4 5Distance 200 1000 1821 400 0
Path 5 1 4 5 0Include true false false true true
![Page 86: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/86.jpg)
نأخذ الطريق الغير مباشر من من خالل 3 الى النقطة 5النقطة 2النقطة
النقطه 1 2 3 4 5Distance 200 1000 1410 400 0
Path 5 1 2 5 0Include true true false true true
![Page 87: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/87.jpg)
فتصبح كما يلي:
النقطه 1 2 3 4 5Distance 200 1000 1410 400 0
Path 5 1 2 5 0Include true true true true true
![Page 88: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/88.jpg)
التوضيح :
لتوضيح معنى 2 لو أخذنا النقطه القيم الموجودة
في المصفوفات الثالث
نالحظ ان محتويات الموقع الثاني , false , 1)في المصفوفات الثالث هي
وهذا يعني ان طول اقصر (800 2 الى النقطه 1الممرات من النقطه
800حتى هذه اللحظه هو
![Page 89: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/89.jpg)
ان النقطه التي 1كما تعني القيمه 2تم استخدامها للوصول الى النقطه
1هي النقطه
لم 2 ان النقطه falseوتعني القيمه
تؤخذ بعين االعتبار لتحديد اقصر الممرات
حتى هذه اللحظه
![Page 90: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/90.jpg)
الخطوه التاليه 3يمكن الوصول الى النقطه
مباشرة وتكلفة هذا 1 إما من النقطه2985 الممر
وتكلفة هذا 2او عن طريق النقطه 800 الممر
او عن طريق النقطه1من النقطه 4
وتكلفة الوصول في هذه الحاله 310هي
![Page 91: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/91.jpg)
800 اصغر من 310وبما ان
ضمن اقصر 4لذلك شمول النقطه الممرات
وعليه تصبح قيمة DISTANCE [ 3]
تساوي ( 310+1421 = 1731 )
![Page 92: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/92.jpg)
PATH [ 4 ]كما تصبح محتويات = 1
3 أي ان الوصول الى النقطه 4عن طريق النقطه
أي ان PATH [ 4] = 1 وبما ان 4الوصول الى
(نقطة البداية ) 1عن طريق النقطه
4وبما انه وتم اختيار النقطة 3للوصول الى النقطه
![Page 93: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/93.jpg)
وتصبح محتويات العنصر الرابع للمصفوفة
INCLUDE
مساوية للقيمة true
أي ان محتويات المصفوفات الثالث كما يلي
![Page 94: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/94.jpg)
النقطه 1 2 3 4 5
Distance 0 800 1731 310 200
Path 0 1 4 1 1
Include true false false true true
![Page 95: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/95.jpg)
وبما ان بعض قيم المصفوفة INCLUDE
غير مأخوذة بعين االعتبار (falseوهو ما تشير اليه القيمه )
سوف يستمر تنفيذ الخوارزميه حتى تصبح جميع فيم عناصر تلك
المصفوفة trueمساوية للقيمة
![Page 96: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/96.jpg)
¿ في الخطوه التاليه من إذاالخوارزميه
2 الى 1سنالحظ أن طول الممر من 3الى
1اصغر من طول الممر من النقطه 4الى
ونتيجة لذلك يصبح طول المسافة = 410+800يساوي 3 الى 1 من
1210
![Page 97: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/97.jpg)
وهو اقل من الطول السابق للممر 3 ثم الى 4 الى 1من
ولذلك يتم إجراء التعديالت الالزمة على المصفوفات عن طريق اإلجراء
UPDATE
![Page 98: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/98.jpg)
ومن ضمن تلك التعديالت
في هذه الخطوه
الى 4من PATH [3]تعديل يغير قيمه
2
الى 1731من DISTANCE[3] وتعديل
1210
INCLUDE [2]وتعديل قيمة
true الى falseمن
![Page 99: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/99.jpg)
قد اخذت 2مما يعني ان النقطه
بعين االعتبار
وعليه تصبح محتويات المصفوفات
الثالث
النقطه 1 2 3 4 5
Distance 0 800 1210 310 200
Path 0 1 2 1 1
Include true true true false true
![Page 100: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/100.jpg)
ومن المصفوفة األخيرة نجد أقصر الممرات
أي ) 3وذلك بالنظر الى النقطه (نقطة النهاية
PATH [ 3 ] =2حيث نالحظ ان
2 تم من 3أي ان الوصول الى
2 اما عن كيفية الوصول الى
PATH ألن 1فمن الواضح انه تم عبر
[ 2 ] = 1
![Page 101: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/101.jpg)
هي نقطة البداية فان 1وبما أن اقصر الممرات
3 الى 2 الى 1 هو ولمعرفة طـول هذا الممر
DISTANCE نستخدم المصفوفة
القيمه DISTANCE [ 3 ]فتعطينا (1210)
وهي طول الممر
![Page 102: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/102.jpg)
النقطه 1 2 3 4 5
Distance 0 800 1210 310 200
Path 0 1 2 1 1
Include true true true true true
![Page 103: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/103.jpg)
لتوضيح المثالنقوم برسم المخطط لمصفوفة
تكلفة الجوار
1 2
4 5
2985
410800
400
1421
310612
200
3
![Page 104: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/104.jpg)
1210= 410+800 3 2 1
2985= 3 1
3233= 1421+612+800 3 4 2 1
1731= 1421+310 3 4 1
2021= 1421+400+200 3 4 5 1
1622= 410+612+400+200 3 2 4 5 1
1332= 410+612+310 3 2 4 1
ثانيا : 1نقوم بحساب اقصر المرات بين النقطه
االحتماالت :3و النقطه
![Page 105: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/105.jpg)
لتوضيح المثال
وبعد حساب اوزان جميع االحتماالت يتضح ان 3 و النقطة 1 بين النقطة
الممر الى 2 الى النقطة 1 من النقطة
3النقطة هو أقصر الممرات مقارنة مع نتائج
باقي الممرات وهي نفس النتيجة في حل المثال
بالطريقتين1 2 3 = 800 + 410 = 1210
![Page 106: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/106.jpg)
الطريقة الثانية :
تعد خوارزمية فلويد تعديال على حيث تقوم هذه Dijkstraخوارزمية
الخوارزمية على حساب مصفوفة اقصر الممرات بين نقطتين
مختلفتين في المخطط الشبكي
Floyd خوارزمية فلويد
![Page 107: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/107.jpg)
من خالل مقارنة جميع قيم العمود األول
والصف االولفي مصفوفة المسافة ومقارنة
مجموع القيم المؤشر عليها مع بقية القيم االخرى
في نفس الصف والعمود في المصفوفة
اذا كان المجموع اقل من القيمة
المؤشر عليها نغير القيمة بقيمة المجموع المقابل لها في نفس الصف والعمود كفاءة
)O)n3هذه الخوارزمية هو
![Page 108: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/108.jpg)
تحتاج هذه الخوارزمية الى ثالث
مصفوفات وهي :
مصفوفة تكلفة الجوار(Adjacency Matrix
Cost)
تم شرحها سابقا.
مصفوفة التخزين(Path Matrix)
على القيم ةتحتوي هذه المصفوف الممر العدديه لتكلفة
بأقصر الممرات ما بين ةوالمشمولنقطتين
I وJ ويشار الى ذلك بPATH [I][J]
![Page 109: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/109.jpg)
مصفوفةP في بداية ةيتم تهيئة المصفوف
الخوارزمية كما يلي مساوية للصفر COST [I][J]اذا لم تكن COST[I][J]=P[I][J]و
( أي عناصر القطر ) J=Iاذا كانت صفرتساوي
او ما ال MAXINTخرى أوفي الحاالت النهاية
![Page 110: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/110.jpg)
ونجد من الخوارزمية وباألخص من الدوره الداخليه
نحصل على:Kانه بعد الدوره
P[I][J] = MINIMUM)P[I][K]+P[K][J],P[I][J] (
وهذا بدوره يضمن لنا اقصر الممرات J الى النقطه Iمن النقطه
دون المرور خالل أي نقطه رقمها اكبر على فرض Jمن
N-1ان نقاط المخطط مرقمه الى
![Page 111: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/111.jpg)
أوجد مصفوفة أقصر الممرات للمخطط المبين في الشكل
Floyd خوارزمية فلويدباستخدام
مثـال
![Page 112: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/112.jpg)
أوال نجد مصفوفة تكلفة الجوار
المسافة المباشرة بين القمةالواحدة والقمم االخرى.
تدل على عدم وجود أي ∞إشارة طريق مباشر.
بما أن عدد نقاط المخطط يساوي5 (A,B,C,D,E)
الحـل
![Page 113: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/113.jpg)
A B C D E
A ∞ 23 10 ∞ 18
B 23
∞ 10 48 ∞
C 10
10 ∞ 19 7
D ∞ 48 19 ∞ 20
E 18
∞ 7 20 ∞
مصفوفات 5نحصل على ((P1, P2, P3, P4, P5
![Page 114: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/114.jpg)
P1النتيجة للمصفوفة
نؤشر الى العمود االول والصفاالول ونقارن
بين القيم االخرى مع مجموع القيم المؤشر
عليها في نفس الصف والعمود.
اذا كان المجموع اقل من القيمةيجب ان نغير
القيمة بقيمة المجموع.
![Page 115: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/115.jpg)
A B C D E
A ∞ 23 10 ∞ 18
B 23 ∞ 10 48 ∞
C 10 10 ∞ 19 7
D ∞ 48 19 ∞ 20
E 18 ∞ 7 20 ∞
![Page 116: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/116.jpg)
يتم حساب القيم وتعديلها كاألتي:
B+B=23+23=46 is > ∞
∞من الواضح ان القيمة اصغر من Aاذن نغيرها كاألتي B C D E
A ∞ 23 10 ∞ 18
B 23 46 10 48 ∞
C 10 10 ∞ 19 7
D ∞ 48 19 ∞ 20
E 18 ∞ 7 20 ∞
![Page 117: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/117.jpg)
نأخذ القيمة التي تليها ونقارنهاC+B=10+23=33 is > 10
ما دام المجموع ليس اقل من Aالقيمة اذن نتركهاكماهي B C D E
A ∞ 23 10 ∞ 18
B 23 46 10 48 ∞
C 10 10 ∞ 19 7
D ∞ 48 19 ∞ 20
E 18 ∞ 7 20 ∞
![Page 118: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/118.jpg)
P1النتيجة النهائية للمصفوفة
مالحظة اذا كانت احدى القيم التي نريد
نترك القيمة ∞جمعها ومقارنتها كما هي
D+B= ∞+23
اذن ال يجوز
![Page 119: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/119.jpg)
A B C D E
A ∞ 23 10 ∞ 18
B 23 46 10 48 41
C 10 10 20 19 7
D ∞ 48 19 ∞ 20
E 18 41 7 20 36
وهكذا مع بقية القيم الى ان ننتهي من مقارنة
جميع القيم بمجموع العمود االول والصف االول لتكون النتيجة كاآلتي
![Page 120: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/120.jpg)
A B C D E
A ∞ 23 10 ∞ 18
B 23 46 10 48 41
C 10 10 20 19 7
D ∞ 48 19 ∞ 20
E 18 41 7 20 36
P2النتيجة للمصفوفة
االن نأخذ التكرار التالي وننفذ الخطوات
كما في الخطوات السابقة
![Page 121: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/121.jpg)
P2النتيجة النهائية للمصفوفة
جميع القيم عدلت كما في المصفوفة التالية اآلتي
A B C D E
A 46 23 10 71 18
B 23 46 10 48 41
C 10 10 20 19 7
D 71 48 19 96 20
E 18 41 7 20 36
![Page 122: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/122.jpg)
P3النتيجة للمصفوفة
التكرار التالي
A B C D E
A 46 23 10 71 18
B 23 46 10 48 41
C 10 10 20 19 7
D 71 48 19 96 20
E 18 41 7 20 36
![Page 123: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/123.jpg)
P3النتيجة النهائية للمصفوفة
التكرار المناسب سيكون بتغيير البنود التالية
A B C D E
A 20 20 10 29 17
B 20 20 10 29 17
C 10 10 20 19 7
D 29 29 19 38 20
E 17 17 7 20 14
![Page 124: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/124.jpg)
P4النتيجة النهائية للمصفوفة
A B C D E
A 20
20 10 29 17
B 20
20 10 29 17
C 10
10 20 19 7
D 29
29 19 38 20
E 17
17 7 20 14
التكرار التالي:في هذا التكرار ال نحتاج الى تغيير
أي بند من البنود لذلك نذهب الى التكرار الذي يليه
![Page 125: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/125.jpg)
P5النتيجة النهائية للمصفوفة
A B C D E
A 20 20 10 29 17
B 20 20 10 29 17
C 10 10 14 19 7
D 29 29 19 38 20
E 17 17 7 20 14
في هذه الحالة هناك مادة وحيدة نحتاج كاآلتي الى تغييرها
![Page 126: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/126.jpg)
المصفوفة النهائية
تكون مصفوفة أقصر الممرات P5اذن على شكلهاالتالي
A B C D E
A 20 20 10 29 17
B 20 20 10 29 17
C 10 10 14 19 7
D 29 29 19 38 20
E 17 17 7 20 14
![Page 127: المخططات والشبكات Graphs & Networks لمقرر تركيب البيانات وتصميم الخوارزميات 1289](https://reader035.fdocuments.net/reader035/viewer/2022081503/56813926550346895da0cd68/html5/thumbnails/127.jpg)
المصفوفة النهائية
يمكن استخدام المصفوفة االخيرة من اجل اعادة
رسم الشبكة االصلية فتصبح كما يلي