43
Faculty of Science for Women( SCIW), University of Babylon, Iraq [email protected] By Ass. Prof. Dr. Samaher Al_Janabi LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS Department of Computer Science University of Babylon 15 April 2017

LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES …LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS Department of Computer Science University of Babylon 15 April 2017. Outlines

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES …LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS Department of Computer Science University of Babylon 15 April 2017. Outlines

Faculty of Science for Women( SCIW), University of Babylon, Iraq

[email protected]

By

Ass. Prof. Dr. Samaher Al_Janabi

LECTURE NOTES OF ALGORITHMS:

DESIGN TECHNIQUES AND

ANALYSIS

Department of Computer Science University of Babylon

15 April 2017

Page 2: LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES …LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS Department of Computer Science University of Babylon 15 April 2017. Outlines

Outlines Optimization algorithm to find the shortest path

• Overview

• Dijkstra's Shortest-Path Algorithm

• Dijkstra's Algorithm: Examples

• Correctness of Dijkstra's Algorithm

• Dijkstra's Algorithm: Implementation and Running Time

• Floyd Shortest-Path Algorithm

• Floyd Algorithm: Examples

Ass. Prof. Dr. Samaher Al_JanabiNotes of Lecture #9

16 April 2017

Page 3: LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES …LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS Department of Computer Science University of Babylon 15 April 2017. Outlines

Dijkstra's Shortest-Path Algorithm

Ass. Prof. Dr. Samaher Al_JanabiNotes of Lecture #9

16 April 2017

Page 4: LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES …LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS Department of Computer Science University of Babylon 15 April 2017. Outlines

Dijkstra's Shortest-Path Algorithm

Ass. Prof. Dr. Samaher Al_JanabiNotes of Lecture #9

16 April 2017

Page 5: LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES …LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS Department of Computer Science University of Babylon 15 April 2017. Outlines

Dijkstra's Shortest-Path Algorithm

Ass. Prof. Dr. Samaher Al_JanabiNotes of Lecture #9

16 April 2017

Page 6: LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES …LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS Department of Computer Science University of Babylon 15 April 2017. Outlines

Dijkstra's Shortest-Path Algorithm

Ass. Prof. Dr. Samaher Al_JanabiNotes of Lecture #9

16 April 2017

Page 7: LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES …LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS Department of Computer Science University of Babylon 15 April 2017. Outlines

Dijkstra's Shortest-Path Algorithm

Ass. Prof. Dr. Samaher Al_JanabiNotes of Lecture #9

16 April 2017

Page 8: LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES …LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS Department of Computer Science University of Babylon 15 April 2017. Outlines

Dijkstra's Shortest-Path Algorithm

Ass. Prof. Dr. Samaher Al_JanabiNotes of Lecture #9

16 April 2017

Page 9: LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES …LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS Department of Computer Science University of Babylon 15 April 2017. Outlines

Dijkstra's Shortest-Path Algorithm

Ass. Prof. Dr. Samaher Al_JanabiNotes of Lecture #9

16 April 2017

Page 10: LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES …LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS Department of Computer Science University of Babylon 15 April 2017. Outlines

Dijkstra's Shortest-Path Algorithm

Ass. Prof. Dr. Samaher Al_JanabiNotes of Lecture #9

16 April 2017

Page 11: LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES …LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS Department of Computer Science University of Babylon 15 April 2017. Outlines

Dijkstra's Shortest-Path Algorithm

Ass. Prof. Dr. Samaher Al_JanabiNotes of Lecture #9

16 April 2017

Page 12: LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES …LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS Department of Computer Science University of Babylon 15 April 2017. Outlines

Dijkstra's Shortest-Path Algorithm

Ass. Prof. Dr. Samaher Al_JanabiNotes of Lecture #9

16 April 2017

Page 13: LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES …LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS Department of Computer Science University of Babylon 15 April 2017. Outlines

Dijkstra's Shortest-Path Algorithm

Ass. Prof. Dr. Samaher Al_JanabiNotes of Lecture #9

16 April 2017

Page 14: LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES …LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS Department of Computer Science University of Babylon 15 April 2017. Outlines

Dijkstra's Shortest-Path Algorithm

Ass. Prof. Dr. Samaher Al_JanabiNotes of Lecture #9

16 April 2017

Page 15: LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES …LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS Department of Computer Science University of Babylon 15 April 2017. Outlines

Dijkstra's Shortest-Path Algorithm

Ass. Prof. Dr. Samaher Al_JanabiNotes of Lecture #9

16 April 2017

Page 16: LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES …LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS Department of Computer Science University of Babylon 15 April 2017. Outlines

Dijkstra's Shortest-Path Algorithm

Ass. Prof. Dr. Samaher Al_JanabiNotes of Lecture #9

16 April 2017

Page 17: LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES …LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS Department of Computer Science University of Babylon 15 April 2017. Outlines

Correctness of Dijkstra's Algorithm

Ass. Prof. Dr. Samaher Al_JanabiNotes of Lecture #9

16 April 2017

Page 18: LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES …LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS Department of Computer Science University of Babylon 15 April 2017. Outlines

Correctness of Dijkstra's Algorithm

Ass. Prof. Dr. Samaher Al_JanabiNotes of Lecture #9

16 April 2017

Page 19: LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES …LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS Department of Computer Science University of Babylon 15 April 2017. Outlines

Correctness of Dijkstra's Algorithm

Ass. Prof. Dr. Samaher Al_JanabiNotes of Lecture #9

16 April 2017

Page 20: LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES …LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS Department of Computer Science University of Babylon 15 April 2017. Outlines

Analysis Dijkstra's Algorithm: Implementation and Running Time

Ass. Prof. Dr. Samaher Al_JanabiNotes of Lecture #9

16 April 2017

Page 21: LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES …LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS Department of Computer Science University of Babylon 15 April 2017. Outlines

:طريقتين احدى الستخدم لإيجاد اقصر الممرات نو

:الاولى الطريقة 1.(Dijkstra)باستخدام خوارزمية ديجكسترا

:ةالثانيالطريقة 2.(Floyd)باستخدام خوارزمية فلويد

Ass. Prof. Dr. Samaher Al_JanabiNotes of Lecture #916 April 2017

Appendix

علىالخوارزميةهذهتقومحيثDijkstraخوارزميةمنهاالمخططفياخرى الىقمةمنالمسافةلإيجادالخوارزمياتمنالعديدهناكالمصدرنقطةتسمىمعينةقمةمنDijkstraخوارزميةتبدأ..المخططفيالاخرى القمموجميعمحددةقمةمنالمسافةتحديد

(source)القمةمنيةالكلالمسافةتخزينعلىوتقومالمخططفيالاخرى القممجميعالىتصلحتىوتمتدالشبكيالمخططفينقطةمنللحوافتكلفةاقلمجموعتخزينعلىDijkstraخوارزميةتعملاكثروللتوضيح.اليهاالوصولالمرادالقمةالىالمصدرية

هوالخوارزميةهذهكفاءةانبالذكرالجديرومنالنهايةنقطةالىالبدايةO(n2

تكلفة الجوار مصفوفة(Adjacency Matrix Cost)مصفوفة الطول(Distance Matrix) مصفوفة التخزين(Path Matrix ) مصفوفة العناصر(Include Matrix)

اديجكستر باستخدام خوارزمية : الطريقة الاولى

:تحتاج هذه الخوارزمية الى اربع مصفوفات وهي

Page 22: LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES …LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS Department of Computer Science University of Babylon 15 April 2017. Outlines

: المصفوفة الأولىتكلفة الجوارمصفوفة

(Adjacency Matrix Cost )

ةل الشبكــفي الشكل التالي يظهر شك

Ass. Prof. Dr. Samaher Al_JanabiNotes of Lecture #916 April 2017

DC

A B

Page 23: LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES …LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS Department of Computer Science University of Babylon 15 April 2017. Outlines

باستخدام مصفوفةالشكل السابق تمثيليمكن :كما يليالجوار

DCBA

A TO DA TO CA TO B0 A

B TO DB TO C0 0 B

C TO D0 0 0 C

0 D TO C0 0 D

Ass. Prof. Dr. Samaher Al_JanabiNotes of Lecture #916 April 2017

: المصفوفة الثانية(المسافات) الطولمصفوفة

وذلك في الموقعJالنقطه الى لتخزين طول اقصر الطرق من نقطه الانطلاق ]DISTANCE[J

:المصفوفة الثالثةمصفوفة التخزين

في اقصر jةالمباشره لنقطةالسابقةيحتوي على النقطpath[ j ]ان حيث مر بها في اقصر الممرات تلتخزين العناصر التي الممرات

Page 24: LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES …LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS Department of Computer Science University of Babylon 15 April 2017. Outlines

:المصفوفة الرابعةالعناصرمصفوفة

غاية الممرات لضمن اقصر( الانطلاق)الاصل ةعلى العناصر المشمولة ، بما في ذلك نقطتحتوي منطقيهه وهي مصفوفة بولي Includedاقصر الممرات ضمن jففي حالة شمول أي من النقاط قبل الانطلاقمن نقطة اهذه اللحظه من تطبيق الخوارزمية بدء

Trueتساوي

Ass. Prof. Dr. Samaher Al_JanabiNotes of Lecture #916 April 2017

وصف خوارزمية ديجكسترا لإيجاد اقصر الممرات 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 ();

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 25: LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES …LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS Department of Computer Science University of Babylon 15 April 2017. Outlines

الدوال المستخدمه في خوارزمية ديجكسترا :ReadMATالداله1.وعند ادخال مثل هذه القيم يجب ادخال القيمهمصفوفة اوزان الجوار قراءة يتم عن طريق هذه الداله حيث

: في حالتين هما 0.ةأي من والى النقط( Vi ,Vi)اذا كانت الحافه :اولا. ةلم توجد حافاذا :ثانيا

Ass. Prof. Dr. Samaher Al_JanabiNotes of Lecture #916 April 2017

: Initializeدالة2.تحديد القيم الابتدائيةةحيث يتم في هذه الدال

INCLUDE [ SOURCE]تحدد في البدايةلكلtrueINCLUDE [i]على انها تساوي

falseالنقاط المتبقية تساوي

:FINDMINالداله3.قيمةتعديليتمحيثالممراتاقصرضمنJالنقطهتصبحوبذلكJالنقطهالىالبدايةنقطةمنالممراتاقصرتعيددالهوهي

Included [j]للقيمةمساويةلتصبحtrueنقطةالىالبدايةنقطةمنالممراتجميعابعادفحصيتمذلكولتحديدjالابعادوهذهDistanceوفةـالمصففيتخزن Matrix

:UPDATEالداله4.في حالة ايجاد نقطة مثلPath Matrixوالمصفوفة Distance Matrixتستخدم لتعديل المصفوفة

iانحيث(INCLUDE [i]= false)الحالههذهوفيالنقطههذهاعتبارقبلالموجودةالممراتاقصرطولهممرتعطيالممراتاقصرفيالمشمولةالنقاطالىالنقطههذهتضاف

Include Matrixالمواقع في المصفوفة جميع عندما تصبح قيم trueتعيد القيمه و تستخدم كداله منطقيهو : ALLالداله 5.ذلكخلاف falseوتعيد هذه الداله القيمه trueتساوي

Page 26: LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES …LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS Department of Computer Science University of Babylon 15 April 2017. Outlines

:SHORT PATHالداله 6.وأي معلومات اخرى النتائج بطباعةبالاضافه الى دالة الطباعه التي تقوم السابقه استدعاء الدوال داخلها وتستخدم كداله يتم من

نهاية هذه الداله يتم طباعة اقصر الممرات وتكلفة هذا الممروفي نرغب فيها

Ass. Prof. Dr. Samaher Al_JanabiNotes of Lecture #915 April 2017

اتــلطباعة قيم المصفوفالداله تستخدم هذه : PRINTدالة الطباعه 7.DISTANSE , INCLUDE , PATH كل خطوه من خطوات الخوارزميهبعد

:PRINTPATHالداله8.الوجهه المقصودهونقطة لطباعة اقصر الممرات بين نقطة المصدر الاجراء يستخدم هذا

باستخدام خوارزمية ديجكسترالإيجاد اقصر الممرات بين نقطتينالممراتنجد اقصر وف سالتاليالشكل في باستخدام مصفوفة تكلفة الجوار الموضحه

3الى النقطه1من النقطه 54321

200310298580001

061241008002

01421041029853

400014216123104

0400002005

Page 27: LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES …LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS Department of Computer Science University of Babylon 15 April 2017. Outlines

تساوي ما لانهاية 2والعمود 1في الصففان قيمة الموقع ( 2)النقطهالى (1)اذا لم تكن هناك حافة من النقطه. عند بدء البرنامج فان الدالهInitializeوجود حواف بين النقاط في المخطط الى تعمل على تحويل الاصفار الناتجة عن عدم

.32767وهو يساوي MAXINTبالرمز هذه القيمهويرمز الى++Cاكبر قيمه صحيحة ممكنه في لغة

Ass. Prof. Dr. Samaher Al_JanabiNotes of Lecture #916 April 2017

حات ي وض :ت

ال :حل المث

تساوي فعلى سبيل المثالcostالجوار ، ويتم تخزين تلك القيم في المصفوفة تبدأ خوارزمية ديجكسترا بقراءة قيم مصفوفة 1.cost [2,3]410هو 3و 2ان وزن الحافه التي تصل بين النقطتين وهذا يعني 410ةالقيم

كما Includedو PathوDistanceوالذي يحدد القيم الابتدائية للمصفوفاتinitializeبعد ذلك يتم استدعاء الاجراء 2.يلي

:اولا:كما يلي DISTANCEمحتويات المصفوفة

من نقطة البداية وهي النقطه نفسها1بعد النقطهيساوي صفرDISTANCE [ 1 ]أي

من نقطة البداية 2النقطه بعد800يساوي DISTANCE [ 2 ]أي

من نقطة البداية3بعد النقطه2985يساوي DISTANCE [ 3 ]أي

من نقطة البداية 4بعد النقطه310يساوي DISTANCE [ 4 ]أي

من نقطة البداية 5بعد النقطه200يساوي DISTANCE [ 5 ]أي

Page 28: LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES …LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS Department of Computer Science University of Babylon 15 April 2017. Outlines

:وبذلك :كما يلي DISTANCEتكون المصفوفة

Distance : 0 800 2985 310 200

Ass. Prof. Dr. Samaher Al_JanabiNotes of Lecture #916 April 2017

:ثانياPATHمحتويات المصفوفة

.نقطة البداية الى النقاط الاخرى فهي قيمة نقطة البداية في حال وجود حافة او ممرمن( أي نقطة البداية)1مساوية للقيمة PATHولهذا تكون محتويات المصفوفة

. حيث تساوي قيمته صفرا PATH[1]باستثناء Path: 0 1 1 1 1

:ثالثاان القيمه حيث INCLUDE [ 1 ]قيمة العنصرباستثناء falseقيم جميع عناصرها تساوي فان INCLUDEمحتويات المصفوفة

.ان تشمل في اقصر الممرات ينبغي 1وهذا يعني ان النقطه trueتساوي البدايةوالتيتمثل نقطة 1وبذلك نحصل على القيم الابتدائية للمصفوفات

DISTANCE وINCLUDEوPATH

:كما يلي طه

ق الن 1 2 3 4 5Distance 0 800 2985 310 200

Path 0 1 1 1 1

Include true false false false false

Page 29: LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES …LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS Department of Computer Science University of Babylon 15 April 2017. Outlines

عاد اقصر تعكس تلك التعديلات اببحيث تعديل محتويات المصفوفات الثلاث يتم الخوارزميةتنفيذ من التاليةوفي المرحلة •الممراتاقصر في المشمولةتم اخذها بعين الاعتبار والنقاط التي نقطة البداية كما تبين هذه التعديلات النقاط من الممرات

من النقطه 5فبما ان بعد النقطه يتم في الخطوة الثانيه من الخوارزميه إجراء التعديلات التالية على المصفوفات الثلاثلذلك •اقصر الممرات ينبغي ان تكون ضمن5فان النقطه هو الاقل من ابعاد النقاط الاخرى 1بوصفها النقطه التي يمكن المرور بها حتى هذه اللحظه من1وتبقى النقطه trueمساوية للقيمةINCLUDE [5]وبذلك تصبح •

كما PATHمباشرة الى النقاط الاخرى كما تبقى محتويات المصفوفة ( 1وهي النقطه)وتبقى انطلاقا من نقطة البداية الخوارزميههي

Ass. Prof. Dr. Samaher Al_JanabiNotes of Lecture #916 April 2017

:كما يلي 5الى النقطة محتويات المصفوفة الثلاث بالنسبة

طهق الن 1 2 3 4 5

Distance 200 1000 1821 400 0

Path 5 1 4 5 0

Include true false false true true

Page 30: LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES …LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS Department of Computer Science University of Babylon 15 April 2017. Outlines

2من خلال النقطة 3الى النقطة 5نأخذ الطريق الغير مباشر من النقطة

طهق الن 1 2 3 4 5

Distance 200 1000 1410 400 0

Path 5 1 2 5 0

Include true true false true true

Ass. Prof. Dr. Samaher Al_JanabiNotes of Lecture #915 April 2017

لي ح كما ي صي

ت ف :

طهق الن 1 2 3 4 5

Distance 200 1000 1410 400 0

Path 5 1 2 5 0

Include true true true true true

Page 31: LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES …LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS Department of Computer Science University of Babylon 15 April 2017. Outlines

ان محتويات الموقع الثاني في المصفوفات نلاحظ الثلاثالمصفوفات في لتوضيح معنى القيم الموجودة 2لو أخذنا النقطه •800حتى هذه اللحظه هو 2الى النقطه 1وهذا يعني ان طول اقصر الممرات من النقطه ( false , 1 , 800)الثلاث هي

لم تؤخذ2ان النقطه falseوتعني القيمه 1هي النقطه 2ان النقطه التي تم استخدامها للوصول الى النقطه 1كما تعني القيمه •بعين الاعتبار لتحديد اقصر الممرات حتى هذه اللحظه

وتكلفة 2او عن طريق النقطه 2985مباشرة وتكلفة هذا الممر 1من النقطهإما 3الوصول الى النقطه يمكن الخطوه التاليه•اصغر من 310وبما ان 310هي الوصول في هذه الحاله وتكلفة 4او عن طريق النقطه1من النقطه 800هذا الممر

= 1421+310) تساوي DISTANCE [ 3]وعليه تصبح قيمةضمن اقصر الممرات4لذلك شمول النقطه 8001731)

PATH [ 4] = 1وبما ان 4عن طريق النقطه 3أي ان الوصول الى النقطه PATH [ 4 ] = 1كما تصبح محتويات •3للوصول الى النقطه 4وبما انه وتم اختيار النقطة ( نقطة البداية ) 1عن طريق النقطه 4أي ان الوصول الى

أي ان محتويات المصفوفات الثلاث كما يليtrueمساوية للقيمة INCLUDEوتصبح محتويات العنصر الرابع للمصفوفة•

Ass. Prof. Dr. Samaher Al_JanabiNotes of Lecture #916 April 2017

:التوضيح

طهق الن 1 2 3 4 5

Distance 0 800 1731 310 200

Path 0 1 4 1 1

Include true false false true true

Page 32: LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES …LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS Department of Computer Science University of Babylon 15 April 2017. Outlines

تنفيذيستمرسوف(falseالقيمهاليهتشيرماوهو)الاعتباربعينمأخوذةغيرINCLUDEالمصفوفةقيمبعضانوبما•trueللقيمةمساويةالمصفوفةتلكعناصرفيمجميعتصبححتىالخوارزميه

4الى1النقطهمنالممرطولمناصغر3الى2الى1منالممرطولأنسنلاحظالخوارزميهمنالتاليهالخطوهفيإذا •ثم4الى1منللممرالسابقالطولمناقلوهو1210=410+800يساوي 3الى1منالمسافةطوليصبحلذلكونتيجة

UPDATEالإجراءطريقعنالمصفوفاتعلىاللازمةالتعديلاتإجراءيتمولذلك3الىمن DISTANCE[3]وتعديل 2الى 4من PATH [3]يغير قيمه تعديل في هذه الخطوه التعديلاتومن ضمن تلك •

trueالى falseمن INCLUDE [2]قيمة وتعديل 1210الى 1731وعليه تصبح محتويات المصفوفات الثلاثقد اخذت بعين الاعتبار 2مما يعني ان النقطه •

Ass. Prof. Dr. Samaher Al_JanabiNotes of Lecture #916 April 2017

طهق الن 1 2 3 4 5

Distance 0 800 1210 310 200

Path 0 1 2 1 1

Include true true true false true

Page 33: LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES …LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS Department of Computer Science University of Babylon 15 April 2017. Outlines

ان أي PATH [ 3 ] =2نلاحظ انحيث ( أي نقطة النهاية ) 3بالنظر الى النقطه وذلك ومن المصفوفة الأخيرة نجد أقصر الممرات •PATH [ 2 ] = 1لأن 1الواضح انه تم عبر فمن 2اما عن كيفية الوصول الى 2تم من 3الوصول الى

نستخدم المصفوفة ولمعرفة طـول هذا الممر3الى 2الى 1هو هي نقطة البداية فان اقصر الممرات1وبما أن •DISTANCE فتعطيناDISTANCE [ 3 ] وهي طول الممر( 1210)القيمه

Ass. Prof. Dr. Samaher Al_JanabiNotes of Lecture #916 April 2017

طهق الن 1 2 3 4 5

Distance 0 800 1210 310 200

Path 0 1 2 1 1

Include true true true true true

Page 34: LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES …LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS Department of Computer Science University of Babylon 15 April 2017. Outlines

لتوضيح المثالنقوم برسم المخطط لمصفوفة تكلفة الجوار

1 2

4 5

2985

410800

400

1421

310612

200

3

Ass. Prof. Dr. Samaher Al_JanabiNotes of Lecture #915 April 2017

Page 35: LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES …LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS Department of Computer Science University of Babylon 15 April 2017. Outlines

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

:ثانيا 3و النقطه 1نقوم بحساب اقصر المرات بين النقطه

مالات :الاحت

Ass. Prof. Dr. Samaher Al_JanabiNotes of Lecture #915 April 2017

ال ح المث ي وض لن

الى 2الى النقطة 1النقطة من الممريتضح ان 3و النقطة 1النقطة بين الاحتمالاتوبعد حساب اوزان جميع نفس النتيجة في حل المثال بالطريقتينوهي الممراتأقصر الممرات مقارنة مع نتائج باقي هو 3النقطة

123 =800+410=1210

Page 36: LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES …LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS Department of Computer Science University of Babylon 15 April 2017. Outlines

ننقطتيبينالممراتاقصرمصفوفةحسابعلىالخوارزميةهذهتقومحيثDijkstraخوارزميةعلىتعديلافلويدخوارزميةتعد•الشبكيالمخططفيمختلفتين

القيمبقيةمععليهاالمؤشرالقيممجموعومقارنةالمسافةمصفوفةفيالاولوالصفالأولالعمودقيمجميعمقارنةخلالمن•لهاالمقابلالمجموعبقيمةالقيمةنغيرعليهاالمؤشرالقيمةمناقلالمجموعكاناذاالمصفوفةفيوالعمودالصفنفسفيالاخرى

O(n3)هوالخوارزميةهذهكفاءةوالعمودالصفنفسفي:تحتاج هذه الخوارزمية الى ثلاث مصفوفات وهي

مصفوفة تكلفة الجوار(Adjacency Matrix Cost).تم شرحها سابقا

مصفوفة التخزين(Path Matrix)بأقصر الممرات ما بين نقطتين ةالممر والمشمولعلى القيم العدديه لتكلفة ةتحتوي هذه المصفوف

I وJ ويشار الى ذلك بPATH [I][J] مصفوفةP

يليفي بداية الخوارزمية كما ةيتم تهيئة المصفوفوفي الحالات صفرتساوي ( أي عناصر القطر ) J=Iذا كانت اCOST[I][J]=P[I][J]و مساوية للصفرCOST [I][J]اذا لم تكن

:نحصل علىKبعد الدوره انه من الخوارزمية وبالأخص من الدوره الداخليه ونجد او ما لا نهايةMAXINTخرى الأ

P[I][J] = MINIMUM(P[I][K]+P[K][J],P[I][J] )

نقاط ان على فرض Jالمرور خلال أي نقطه رقمها اكبر من دون Jالى النقطه Iالنقطه من وهذا بدوره يضمن لنا اقصر الممرات N-1المخطط مرقمه الى

Floydخوارزمية فلويد

Ass. Prof. Dr. Samaher Al_JanabiNotes of Lecture #916 April 2017

Page 37: LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES …LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS Department of Computer Science University of Babylon 15 April 2017. Outlines

Floydخوارزمية فلويدمصفوفة أقصر الممرات للمخطط المبين في الشكل باستخدام أوجد

ـال مث

Ass. Prof. Dr. Samaher Al_JanabiNotes of Lecture #915 April 2017

المسافة المباشرة بين القمة الواحدة والقمم الاخرى. تدل على عدم وجود أي طريق مباشر∞إشارة. 5بما أن عدد نقاط المخطط يساوي

(A,B,C,D,E)

:الحل أولا نجد مصفوفة تكلفة الجوار

Page 38: LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES …LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS Department of Computer Science University of Babylon 15 April 2017. Outlines

EDCBA

18∞1023∞A

∞4810∞23B

719∞1010C

20∞1948∞D

∞207∞18E

مصفوفات 5نحصل على ((P1, P2, P3, P4, P5

Ass. Prof. Dr. Samaher Al_JanabiNotes of Lecture #915 April 2017

ن ونقارن بينؤشر الى العمود الاول والصف الاولنفس عليها فيالمؤشر القيم الاخرى مع مجموع القيم

.الصف والعمود

مة القينغير اذا كان المجموع اقل من القيمة يجب ان.بقيمة المجموع

ه وف ه للمصف ج ي

ت الن P1

EDCBA

18∞1023∞A

∞4810∞23B

719∞1010C

20∞1948∞D

∞207∞18E

Page 39: LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES …LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS Department of Computer Science University of Babylon 15 April 2017. Outlines

:يتم حساب القيم وتعديلها كالأتي1.

B+B=23+23=46 is < ∞ اذن نغيرها كالأتي∞الواضح ان القيمة اصغر من من

EDCBA

18∞1023∞A

∞48104623B

719∞1010C

20∞1948∞D

∞207∞18E

Ass. Prof. Dr. Samaher Al_JanabiNotes of Lecture #916 April 2017

القيمة التي تليها ونقارنهانأخذ . 2C+B=10+23=33 is > 10

نتركهاكماهيما دام المجموع ليس اقل من القيمة اذن P1النتيجة النهائية للمصفوفة . 3

ملاحظةنترك القيمة كما هي∞اذا كانت احدى القيم التي نريد جمعها ومقارنتها

D+B= ∞+23 يجوزاذن لا

وهكذا مع بقية القيم الى ان ننتهي من مقارنة تيجميع القيم بمجموع العمود الاول والصف الاول لتكون النتيجة كالآ

EDCBA

18∞1023∞A

4148104623B

719201010C

20∞1948∞D

362074118E

Page 40: LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES …LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS Department of Computer Science University of Babylon 15 April 2017. Outlines

EDCBA

18∞1023∞A

4148104623B

719201010C

20∞1948∞D

362074118E

P2النتيجة للمصفوفة كما في الخطوات السابقةالخطوات الان نأخذ التكرار التالي وننفذ

Ass. Prof. Dr. Samaher Al_JanabiNotes of Lecture #915 April 2017

P2النتيجة النهائية للمصفوفة جميع القيم عدلت كما في المصفوفة التالية الآتي

EDCBA

1871102346A

4148104623B

719201010C

2096194871D

362074118E

Page 41: LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES …LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS Department of Computer Science University of Babylon 15 April 2017. Outlines

P3النتيجة للمصفوفة EDCBAالتكرار التالي

1871102346A

4148104623B

719201010C

2096194871D

362074118E

Ass. Prof. Dr. Samaher Al_JanabiNotes of Lecture #915 April 2017

ه الن ود الث ن ر الن ي ن غ ن كون ب اسب سث كرار المث

الن

P3النتيجة النهائية للمصفوفة

EDCBA

1729102020A

1729102020B

719201010C

2038192929D

142071717E

Page 42: LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES …LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS Department of Computer Science University of Babylon 15 April 2017. Outlines

P4النتيجة النهائية للمصفوفة

EDCBA

1729102020A

1729102020B

719201010C

2038192929D

142071717E

بند من البنود لذلك نذهب الى التكرار الذي يليهأي تغييرفي هذا التكرار لا نحتاج الى :التكرار التالي

Ass. Prof. Dr. Samaher Al_JanabiNotes of Lecture #915 April 2017

P5النتيجة النهائية للمصفوفة

كالآتيفي هذه الحالة هناك مادة وحيدة نحتاج الى تغييرها

EDCBA

1729102020A

1729102020B

719141010C

2038192929D

142071717E

Page 43: LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES …LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS Department of Computer Science University of Babylon 15 April 2017. Outlines

المصفوفة النهائيةتكون مصفوفة أقصر الممرات على شكلهاالتاليP5اذن

EDCBA

1729102020A

1729102020B

719141010C

2038192929D

142071717E

Ass. Prof. Dr. Samaher Al_JanabiNotes of Lecture #915 April 2017

يمكن استخدام المصفوفة الاخيرة من اجل اعادة رسم الشبكة الاصلية فتصبح كما يلي