ﺎﻫ هداد نﺎﻤﺘﺧﺎﺳ...4 [email protected] (ﻪﻣادا)ﺎﻬﻬﺮﻓاﺮﮔ...

17
د ﻨارس دنا: ﺳﺎﺧﺘﻤﺎن داده ﻫﺎ ﺳﺎﺧﺘﻤﺎن داده ﻫﺎ ﻫﺎ داده ﺳﺎﺧﺘﻤﺎن ﻫﺎ داده ﺳﺎﺧﺘﻤﺎن ﻓﺼﻞ6 : ﮔﺮاﻓﻬﺎ) Graphs ( ﻣﺪرس: اﺳﻤﺎﻋﻴﻞ ﻧﻮراﻧﻲ ﻧﻮراﻧﻲ اﺳﻤﺎﻋﻴﻞwww.nurani.ir [email protected] 1 ﮔﺮاف ﻛﺮد اﺳﺘﻔﺎده ﻣﺴﺎﺋﻞ ﺣﻞ ﺑﺮاي ﮔﺮاف از اوﻟﺮ ﺑﺎر اوﻟﻴﻦ. ﺗﻌﺮﻳﻒ ﮔﺮاف ﮔﺮاف ﺗﻌﺮﻳﻒ ﻚﮔ افG ﻋﻪ ﺗﺸﻜ ﻞ ﺷﺪ ا ﺖ از د: افG اه ﺷﺪ ﺗﺸﻜﻋﻪﻤﻮو د از: رﺋﻮس از ﺗﻬﻲ ﻏﻴﺮ و ﻣﺤﺪود ﻣﺠﻤﻮﻋﻪV(G) ﻳﺎﻟﻬﺎ از ﻣﺤﺪودي ﻣﺠﻤﻮﻋﻪE(G) اﻧﻮاع ﮔﺮاف: ﮔﺮاف اﻧﻮاع: دار ﺟﻬﺖﺮاف ﺟﻬﺖ ﺑﺪونﺮافاﻓو ارﻳ ﺗﻌﺎاﻓو ارﻳ ﺗﻌﺎ ﮔ اف اف رﺋﻮس از اي ﻣﺠﻤﻮﻋﻪ(Vertex) ﻫﺎ ﻟﺒﻪ و(Edge) اﺳﺖ. وﺟﻮد دارد ﻟﺒﻪ ﮔ ﻫ دو ﺳ در ﻫv 2 دارد وﺟﻮد ﻟﺒﻪ دو در. ﻣﺴﻴﺮ در ﮔﺮافv 1 v 4 E 1 E 2 E 3 ﮔﺮاف در ﻣﺴﻴﺮ ﮔﺮه دو ﺑﻴﻦ ﻫﻢ ﺳﺮ ﭘﺸﺖ ﻫﺎي ﻟﺒﻪ از اي دﻧﺒﺎﻟﻪv 3 2 ﻣﺴﻴﺮ ﻃﻮل هو د ﺑﻴﻦيﺎﻟدا ﺗﻌﺪ ﺣﻠﻘﻪ ﺑﺎﺷﺪ ﻳﻜﻲ آن آﺧﺮ و اول راس ﻛﻪ ﻣﺴﻴﺮيwww.nurani.ir [email protected] 4

Upload: others

Post on 16-Sep-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ﺎﻫ هداد نﺎﻤﺘﺧﺎﺳ...4 info@nurani.ir (ﻪﻣادا)ﺎﻬﻬﺮﻓاﺮﮔ ﻪﻴﻴوﻟوا ﻒﻳرﺎﻌﺗ ﺪﻨﺒﻤﻫ يﺎﻫ هﺮﮔ ار ﺮﻴﺴﻣ

د ا : عنوان درسن

ها داده هاساختمان داده ساختمان داده هاساختمان داده هاساختمان)Graphs(گرافها: 6فصل

:مدرسنوراني اسماعيل نورانياسماعيل

www.nurani.ir [email protected]

گرافاولين بار اولر از گراف براي حل مسائل استفاده كرد.

گراف تعريف گرافتعريفاف گ تGك ا شد ل تشك عه ج د :از يك گرافG از دو مجموعه تشكيل شده است:

مجموعه محدود و غير تهي از رئوسV(G) مجموعه محدودي از يالهاE(G)

گراف :انواع انواع گراف:

گراف جهت دار

گراف بدون جهت

هتعاريف اوليه گرافها تعاريف اوليه گرافها ر ي و هري ر ي و رياف گ گراف

مجموعه اي از رئوس(Vertex) و لبه ها(Edge) است.دارد وجود ه گ لبه ه س دو ه v2در

در هر دو سر هر لبه گرهي وجود دارد.

گراف در مسيرv1

v4

E1

E2

E3

مسير در گرافدنباله اي از لبه هاي پشت سر هم بين دو گرهv3

2

طول مسيررتعداد يالهاي بين دو گره و بين ي ه ي ا

حلقهمسيري كه راس اول و آخر آن يكي باشد

www.nurani.ir [email protected]

Page 2: ﺎﻫ هداد نﺎﻤﺘﺧﺎﺳ...4 info@nurani.ir (ﻪﻣادا)ﺎﻬﻬﺮﻓاﺮﮔ ﻪﻴﻴوﻟوا ﻒﻳرﺎﻌﺗ ﺪﻨﺒﻤﻫ يﺎﻫ هﺮﮔ ار ﺮﻴﺴﻣ

))ادامهادامه((تعاريف اوليه گرافهاتعاريف اوليه گرافها ه ر ي و هري ر ي و ))((ريا گ گره هاي همبند

اگر از گرهg1 به گرهg2 مسيري باشد، گره هاي موجود در اين مسير را ،ند گ ند ه ها .گره هاي همبند گويندگ

اف گ گراف همبند اگر در گرافي به ازاي هر دو گره انتخابي، مسيري موجود باشد، گراف را

ن گ ن اف گراف همبند گويندگ

v1

v2

v4E1E3

v1

v2

E1

v1

v3

E2

v1

v3

v5

E2

E3v4

www.nurani.ir [email protected]همبند نا همبند

))ادامهادامه((تعاريف اوليه گرافهاتعاريف اوليه گرافها ه ر ي و هري ر ي و ))((ريل كا اف گ گراف كامل

باشد، گراف را ) مسير مستقيم(اگر بين هر دو گره مسيري به طول يكند گ ل كا اف گراف كامل گويندگ

تعداد ل كا اف گ د اهدnاگ خ اب ب ها ه ل تعداد باش داشته ا اگر در گراف كامل تعدادn راس داشته باشيم، تعداد لبه ها برابر خواهدn(n-1)/2بود با

www.nurani.ir [email protected]

))ادامهادامه((تعاريف اوليه گرافهاتعاريف اوليه گرافها ه ر ي و هري ر ي و ))((ريگ درجه گره

تعداد لبه هاي مرتبط با آن گره

گراف وزن دارآ گرافي كه در آن به ازاي هر لبه، عددي نسبت داده شده باشد

v1

v2

v45 10

v3

9

www.nurani.ir [email protected]

رمثالهايي از گراف ز يي ه گراف كامل بدون جهتn(n-1)/2 يال دارد گراف كامل جهت دارn(n-1) يال دارد ار جه ل )را ار( ل ي

0

0 0

1 2 1

0

1 2

3

1 2

3 4 5 6

1

2

1 2

3G1

complete graph

3 4 5 6G2

2G3

i l t h

3complete graph incomplete graph

V(G1)={0,1,2,3} E(G1)={(0,1),(0,2),(0,3),(1,2),(1,3),(2,3)}V(G2)={0 1 2 3 4 5 6} E(G2)={(0 1) (0 2) (1 3) (1 4) (2 5) (2 6)}V(G2)={0,1,2,3,4,5,6} E(G2)={(0,1),(0,2),(1,3),(1,4),(2,5),(2,6)}V(G3)={0,1,2} E(G3)={<0,1>,<1,0>,<1,2>}

Page 3: ﺎﻫ هداد نﺎﻤﺘﺧﺎﺳ...4 info@nurani.ir (ﻪﻣادا)ﺎﻬﻬﺮﻓاﺮﮔ ﻪﻴﻴوﻟوا ﻒﻳرﺎﻌﺗ ﺪﻨﺒﻤﻫ يﺎﻫ هﺮﮔ ار ﺮﻴﺴﻣ

محدوديتهاي يك گراف در يك گراف نمي توان يالي از يك راس به خود آن راس وصل

شود م گفته حلقه خود آن به كه .شود كه به آن خود حلقه گفته مي شودشود در يك گراف چند يال بين دو راس يكسان وجود ندارد و اگر اين

ش گف گان ن اف گ آ ش .محدوديت برداشته شود به آن گراف چند گانه گفته مي شوداش

feedback loops multigraph

زير گرافG’ زير گرافG ناميده مي شود اگر:

V(G’) V(G) and E(G’) E(G).( ) ( ) ( ) ( )

0

1 2

33G1 0

11

22G3

ا ك ه درجه يك راسد در يك گراف بدون جهت تعداد يالهاي متالقي با يك راس را درجه آن

.راس گويند

دار جهت گراف يك در يك گراف جهت داردردرجه ورودي تعداد يالهاي وارد شده به يك راسيكراس از شونده خارج يالهاي تعداد خروجي درجه خروجي تعداد يالهاي خارج شونده از يك راسدرجه

e d i

n

( ) /1

2i( )0

سدرجه يك راس ر ي رج

directed graphundirected graph in-degree & out-degree

directed graph

degree 0 in:1, out: 130 0

2

1 in: 1, out: 20

1 2 331 23 3

2 in: 1, out: 0

1 2

333

3 3 4 5 61 1 1 1

G3

,3G1 G2

Page 4: ﺎﻫ هداد نﺎﻤﺘﺧﺎﺳ...4 info@nurani.ir (ﻪﻣادا)ﺎﻬﻬﺮﻓاﺮﮔ ﻪﻴﻴوﻟوا ﻒﻳرﺎﻌﺗ ﺪﻨﺒﻤﻫ يﺎﻫ هﺮﮔ ار ﺮﻴﺴﻣ

رنمايش گراف يش

11

11

01

10

0100

0

011

101

110

111

010

001

010

1 23

1

G1 G3

32

محاسبه درجه از روي ماتريس مجاورتي در گراف بدون جهت درجه يك راس مجموع يك هاي موجود

راس آن به متعلق درسطر متعلق به آن راس درسطر

1

]][[n

jimatadj

ستون مجموع و راس خروجي درجه سطر مجموع دار جهت گراف در

0

]][[_j

jimatadj

در گراف جهت دار مجموع سطر درجه خروجي راس و مجموع ستون درجه ورودي آن گراف را نشان ميدهد

d An

( ) [ ]

1 outd vi A i j

n

( ) [ ]

1

ind vi A j ij

( ) [ , ]

0

outd vi A i jj

( ) [ , ]

0

ليست مجاورتی

00

1 2G1 3

0G3

0

1

2

گراف نمایش نحوه نمایش گرافنحوه Adjacency Matrixj y

Adjacency ListsAdjacency Lists

Page 5: ﺎﻫ هداد نﺎﻤﺘﺧﺎﺳ...4 info@nurani.ir (ﻪﻣادا)ﺎﻬﻬﺮﻓاﺮﮔ ﻪﻴﻴوﻟوا ﻒﻳرﺎﻌﺗ ﺪﻨﺒﻤﻫ يﺎﻫ هﺮﮔ ار ﺮﻴﺴﻣ

هنحوه نمايش گرافهانحوه نمايش گرافها ر يش هو ر يش واف گ ا ا ا ماتريس مجاورت براي گراف بدون جهت

1

0010

2 3

10101101

4

0110

www.nurani.ir [email protected]

هنحوه نمايش گرافهانحوه نمايش گرافها ر يش هو ر يش وا ا ا ماتريس مجاورت براي

گراف بدون جهت

1

0010

2 3

10101101

4

0110

www.nurani.ir [email protected]

هنحوه نمايش گرافهانحوه نمايش گرافها ر يش هو ر يش وا ا ا ماتريس مجاورت براي

گراف جهت دار

1

11000010

2

4

3

00001000

www.nurani.ir [email protected]

4

هنحوه نمايش گرافهانحوه نمايش گرافها ر يش هو ر يش وا ا ا ماتريس مجاورت براي

گراف جهت دار

1

11000010

2

4

3

00001000

www.nurani.ir [email protected]

4

Page 6: ﺎﻫ هداد نﺎﻤﺘﺧﺎﺳ...4 info@nurani.ir (ﻪﻣادا)ﺎﻬﻬﺮﻓاﺮﮔ ﻪﻴﻴوﻟوا ﻒﻳرﺎﻌﺗ ﺪﻨﺒﻤﻫ يﺎﻫ هﺮﮔ ار ﺮﻴﺴﻣ

هنحوه نمايش گرافهانحوه نمايش گرافها ر يش هو ر يش وا ل ليست مجاورت

11

2 3

2 3

1

1 4

6

5

321

64 5 2

2

1

54

36

www.nurani.ir [email protected]

هنحوه نمايش گرافهانحوه نمايش گرافها ر يش هو ر يش وا ل ليست مجاورت

11

2 3

2 3

1

1 4

6

5

321

64 5 2

2

1

54

36

www.nurani.ir [email protected]

هپيمايش گرافهاپيمايش گرافها ر يش هپي ر يش پيdfا پيمايش عمقيdfs از گره اول شروع مي كنيم.

ا ك ا ا ل ا ف فرزند اول را وارد پشت كرده و پيمايش مي شود.فرزند اول عنصر جديد وارد شده و پيمايش مي شود.

آ ش القا ا گ ا ن ف ا ت اگ اگر تمام فرزندان گرها مالقات شود آنمي شود popگره

a

b c

fd e g

www.nurani.ir [email protected] h

هپيمايش گرافها پيمايش گرافها ر يش هپي ر يش پيdfا پيمايش عمقيdfs از گره اول شروع مي كنيم.

ا ك ا ا ل ا ف فرزند اول را وارد پشت كرده و پيمايش مي شود.فرزند اول عنصر جديد وارد شده و پيمايش مي شود.

آ ش القا ا گ ا ن ف ا ت اگ اگر تمام فرزندان گرها مالقات شود آنمي شود popگره

a

b c

fd e g

awww.nurani.ir [email protected] h

a a

Page 7: ﺎﻫ هداد نﺎﻤﺘﺧﺎﺳ...4 info@nurani.ir (ﻪﻣادا)ﺎﻬﻬﺮﻓاﺮﮔ ﻪﻴﻴوﻟوا ﻒﻳرﺎﻌﺗ ﺪﻨﺒﻤﻫ يﺎﻫ هﺮﮔ ار ﺮﻴﺴﻣ

هپيمايش گرافهاپيمايش گرافها ر يش هپي ر يش پيdfا پيمايش عمقيdfs از گره اول شروع مي كنيم.

ا ك ا ا ل ا ف فرزند اول را وارد پشت كرده و پيمايش مي شود.فرزند اول عنصر جديد وارد شده و پيمايش مي شود.

آ ش القا ا گ ا ن ف ا ت اگ اگر تمام فرزندان گرها مالقات شود آنمي شود popگره

a

b c

fd e g

b a bwww.nurani.ir [email protected] h

ab a b

هپيمايش گرافها پيمايش گرافها ر يش هپي ر يش پيdfا پيمايش عمقيdfs از گره اول شروع مي كنيم.

ا ك ا ا ل ا ف فرزند اول را وارد پشت كرده و پيمايش مي شود.فرزند اول عنصر جديد وارد شده و پيمايش مي شود.

آ ش القا ا گ ا ن ف ا ت اگ اگر تمام فرزندان گرها مالقات شود آنمي شود popگره

a

b c

fd e g

b a b dd

www.nurani.ir [email protected] hab a b d

هپيمايش گرافهاپيمايش گرافها ر يش هپي ر يش پيdfا پيمايش عمقيdfs از گره اول شروع مي كنيم.

ا ك ا ا ل ا ف فرزند اول را وارد پشت كرده و پيمايش مي شود.فرزند اول عنصر جديد وارد شده و پيمايش مي شود.

آ ش القا ا گ ا ن ف ا ت اگ اگر تمام فرزندان گرها مالقات شود آنمي شود popگره

a

b c

fd e g

b a b d hdh

www.nurani.ir [email protected] hab a b d h

هپيمايش گرافها پيمايش گرافها ر يش هپي ر يش پيdfا پيمايش عمقيdfs از گره اول شروع مي كنيم.

ا ك ا ا ل ا ف فرزند اول را وارد پشت كرده و پيمايش مي شود.فرزند اول عنصر جديد وارد شده و پيمايش مي شود.

آ ش القا ا گ ا ن ف ا ت اگ اگر تمام فرزندان گرها مالقات شود آنمي شود popگره

a

b c

efd e g

b a b d h edh

www.nurani.ir [email protected] hab a b d h e

Page 8: ﺎﻫ هداد نﺎﻤﺘﺧﺎﺳ...4 info@nurani.ir (ﻪﻣادا)ﺎﻬﻬﺮﻓاﺮﮔ ﻪﻴﻴوﻟوا ﻒﻳرﺎﻌﺗ ﺪﻨﺒﻤﻫ يﺎﻫ هﺮﮔ ار ﺮﻴﺴﻣ

هپيمايش گرافهاپيمايش گرافها ر يش هپي ر يش پيdfا پيمايش عمقيdfs از گره اول شروع مي كنيم.

ا ك ا ا ل ا ف فرزند اول را وارد پشت كرده و پيمايش مي شود.فرزند اول عنصر جديد وارد شده و پيمايش مي شود.

آ ش القا ا گ ا ن ف ا ت اگ اگر تمام فرزندان گرها مالقات شود آنمي شود popگره

a

b c

fd e g

b a b d h edh

www.nurani.ir [email protected] hab a b d h e

هپيمايش گرافها پيمايش گرافها ر يش هپي ر يش پيdfا پيمايش عمقيdfs از گره اول شروع مي كنيم.

ا ك ا ا ل ا ف فرزند اول را وارد پشت كرده و پيمايش مي شود.فرزند اول عنصر جديد وارد شده و پيمايش مي شود.

آ ش القا ا گ ا ن ف ا ت اگ اگر تمام فرزندان گرها مالقات شود آنمي شود popگره

a

b c

ffd e g

b a b d h e fdh

www.nurani.ir [email protected] hab a b d h e f

هپيمايش گرافهاپيمايش گرافها ر يش هپي ر يش پيdfا پيمايش عمقيdfs از گره اول شروع مي كنيم.

ا ك ا ا ل ا ف فرزند اول را وارد پشت كرده و پيمايش مي شود.فرزند اول عنصر جديد وارد شده و پيمايش مي شود.

آ ش القا ا گ ا ن ف ا ت اگ اگر تمام فرزندان گرها مالقات شود آنمي شود popگره

a

b c

fc

fd e g

b a b d h e f cdh

www.nurani.ir [email protected] hab a b d h e f c

هپيمايش گرافها پيمايش گرافها ر يش هپي ر يش پيdfا پيمايش عمقيdfs از گره اول شروع مي كنيم.

ا ك ا ا ل ا ف فرزند اول را وارد پشت كرده و پيمايش مي شود.فرزند اول عنصر جديد وارد شده و پيمايش مي شود.

آ ش القا ا گ ا ن ف ا ت اگ اگر تمام فرزندان گرها مالقات شود آنمي شود popگره

a

gb c

fcg

fd e g

b a b d h e f c gdh

www.nurani.ir [email protected] hab a b d h e f c g

Page 9: ﺎﻫ هداد نﺎﻤﺘﺧﺎﺳ...4 info@nurani.ir (ﻪﻣادا)ﺎﻬﻬﺮﻓاﺮﮔ ﻪﻴﻴوﻟوا ﻒﻳرﺎﻌﺗ ﺪﻨﺒﻤﻫ يﺎﻫ هﺮﮔ ار ﺮﻴﺴﻣ

هپيمايش گرافهاپيمايش گرافها ر يش هپي ر يش پيdfا پيمايش عمقيdfs

dfs( v: vertex){{

process(v.data)visited[v]=truevisited[v]=truefor (v هر فرزند مالقات نشده)

if(اگر گره قبال پيمايش نشده)dfs(گره)

}

www.nurani.ir [email protected]

هپيمايش گرافها پيمايش گرافها ر يش هپي ر يش پيط bfا h i h پيمايش سطحيbfs )Breatch First Search(

گره اول را وارد صف مي كنيمك ف ا ا آ ا ف ذف ف ا ا ل ا گ ال حال گره اول را از صف حذف و همه فرزندان آن را وارد صف مي كنيم.

حا لبه ترتيب يكي يكي از صف حذف كرده و فرزندان عنصر حذف شده راكن ف د .وارد صف مي كنيما

a

b c

fd e g

www.nurani.ir [email protected] h

هپيمايش گرافهاپيمايش گرافها ر يش هپي ر يش پيط bfا h i h پيمايش سطحيbfs )Breatch First Search(

گره اول را وارد صف مي كنيمك ف ا ا آ ا ف ذف ف ا ا ل ا گ ال حال گره اول را از صف حذف و همه فرزندان آن را وارد صف مي كنيم.

حا لبه ترتيب يكي يكي از صف حذف كرده و فرزندان عنصر حذف شده راكن ف د .وارد صف مي كنيما

a

b c

fd e g a

awww.nurani.ir [email protected] h

a

هپيمايش گرافها پيمايش گرافها ر يش هپي ر يش پيط bfا h i h پيمايش سطحيbfs )Breatch First Search(

گره اول را وارد صف مي كنيمك ف ا ا آ ا ف ذف ف ا ا ل ا گ ال حال گره اول را از صف حذف و همه فرزندان آن را وارد صف مي كنيم.

حا لبه ترتيب يكي يكي از صف حذف كرده و فرزندان عنصر حذف شده راكن ف د .وارد صف مي كنيما

a

b c

fd e g

awww.nurani.ir [email protected] h

a

Page 10: ﺎﻫ هداد نﺎﻤﺘﺧﺎﺳ...4 info@nurani.ir (ﻪﻣادا)ﺎﻬﻬﺮﻓاﺮﮔ ﻪﻴﻴوﻟوا ﻒﻳرﺎﻌﺗ ﺪﻨﺒﻤﻫ يﺎﻫ هﺮﮔ ار ﺮﻴﺴﻣ

هپيمايش گرافهاپيمايش گرافها ر يش هپي ر يش پيط bfا h i h پيمايش سطحيbfs )Breatch First Search(

گره اول را وارد صف مي كنيمك ف ا ا آ ا ف ذف ف ا ا ل ا گ ال حال گره اول را از صف حذف و همه فرزندان آن را وارد صف مي كنيم.

حا لبه ترتيب يكي يكي از صف حذف كرده و فرزندان عنصر حذف شده راكن ف د .وارد صف مي كنيما

a

b c

fd e g

a b cb c

www.nurani.ir [email protected] h

a b c

هپيمايش گرافها پيمايش گرافها ر يش هپي ر يش پيط bfا h i h پيمايش سطحيbfs )Breatch First Search(

گره اول را وارد صف مي كنيمك ف ا ا آ ا ف ذف ف ا ا ل ا گ ال حال گره اول را از صف حذف و همه فرزندان آن را وارد صف مي كنيم.

حا لبه ترتيب يكي يكي از صف حذف كرده و فرزندان عنصر حذف شده راكن ف د .وارد صف مي كنيما

a

b c

fd e g c

a b cwww.nurani.ir [email protected] h

a b c

هپيمايش گرافهاپيمايش گرافها ر يش هپي ر يش پيط bfا h i h پيمايش سطحيbfs )Breatch First Search(

گره اول را وارد صف مي كنيمك ف ا ا آ ا ف ذف ف ا ا ل ا گ ال حال گره اول را از صف حذف و همه فرزندان آن را وارد صف مي كنيم.

حا لبه ترتيب يكي يكي از صف حذف كرده و فرزندان عنصر حذف شده راكن ف د .وارد صف مي كنيما

a

b c

fd e g c

a b c d ed e

www.nurani.ir [email protected] h

a b c d e

هپيمايش گرافها پيمايش گرافها ر يش هپي ر يش پيط bfا h i h پيمايش سطحيbfs )Breatch First Search(

گره اول را وارد صف مي كنيمك ف ا ا آ ا ف ذف ف ا ا ل ا گ ال حال گره اول را از صف حذف و همه فرزندان آن را وارد صف مي كنيم.

حا لبه ترتيب يكي يكي از صف حذف كرده و فرزندان عنصر حذف شده راكن ف د .وارد صف مي كنيما

a

b c

fd e g

a b c d ed e

www.nurani.ir [email protected] h

a b c d e

Page 11: ﺎﻫ هداد نﺎﻤﺘﺧﺎﺳ...4 info@nurani.ir (ﻪﻣادا)ﺎﻬﻬﺮﻓاﺮﮔ ﻪﻴﻴوﻟوا ﻒﻳرﺎﻌﺗ ﺪﻨﺒﻤﻫ يﺎﻫ هﺮﮔ ار ﺮﻴﺴﻣ

هپيمايش گرافهاپيمايش گرافها ر يش هپي ر يش پيط bfا h i h پيمايش سطحيbfs )Breatch First Search(

گره اول را وارد صف مي كنيمك ف ا ا آ ا ف ذف ف ا ا ل ا گ ال حال گره اول را از صف حذف و همه فرزندان آن را وارد صف مي كنيم.

حا لبه ترتيب يكي يكي از صف حذف كرده و فرزندان عنصر حذف شده راكن ف د .وارد صف مي كنيما

a

b c

fd e g

a b c d e f gd e f g

41 h

a b c d e f g

هپيمايش گرافها پيمايش گرافها ر يش هپي ر يش پيط bfا h i h پيمايش سطحيbfs )Breatch First Search(

گره اول را وارد صف مي كنيمك ف ا ا آ ا ف ذف ف ا ا ل ا گ ال حال گره اول را از صف حذف و همه فرزندان آن را وارد صف مي كنيم.

حا لبه ترتيب يكي يكي از صف حذف كرده و فرزندان عنصر حذف شده راكن ف د .وارد صف مي كنيما

a

b c

fd e g

a b c d e f ge f g

42 h

a b c d e f g

هپيمايش گرافهاپيمايش گرافها ر يش هپي ر يش پيط bfhا i h پيمايش سطحيbfs)Breatch First Search(

گره اول را وارد صف مي كنيمك ف ا ا آ ا ف ذف ف ا ا ل ا گ ال حال گره اول را از صف حذف و همه فرزندان آن را وارد صف مي كنيم.

حا لبه ترتيب يكي يكي از صف حذف كرده و فرزندان عنصر حذف شده راكن ف د .وارد صف مي كنيما

a

b c

fd e g

a b c d e f g he f g h

43 h

a b c d e f g h

هپيمايش گرافها پيمايش گرافها ر يش هپي ر يش پيط bfا h i h پيمايش سطحيbfs )Breatch First Search(

گره اول را وارد صف مي كنيمك ف ا ا آ ا ف ذف ف ا ا ل ا گ ال حال گره اول را از صف حذف و همه فرزندان آن را وارد صف مي كنيم.

حا لبه ترتيب يكي يكي از صف حذف كرده و فرزندان عنصر حذف شده راكن ف د .وارد صف مي كنيما

a

b c

fd e g

a b c d e f g hf g h

44 h

a b c d e f g h

Page 12: ﺎﻫ هداد نﺎﻤﺘﺧﺎﺳ...4 info@nurani.ir (ﻪﻣادا)ﺎﻬﻬﺮﻓاﺮﮔ ﻪﻴﻴوﻟوا ﻒﻳرﺎﻌﺗ ﺪﻨﺒﻤﻫ يﺎﻫ هﺮﮔ ار ﺮﻴﺴﻣ

هپيمايش گرافهاپيمايش گرافها ر يش هپي ر يش پيط bfا h i h پيمايش سطحيbfs )Breatch First Search(

گره اول را وارد صف مي كنيمك ف ا ا آ ا ف ذف ف ا ا ل ا گ ال حال گره اول را از صف حذف و همه فرزندان آن را وارد صف مي كنيم.

حا لبه ترتيب يكي يكي از صف حذف كرده و فرزندان عنصر حذف شده راكن ف د .وارد صف مي كنيما

a

b c

fd e g

a b c d e f g hg h

45 h

a b c d e f g h

هپيمايش گرافها پيمايش گرافها ر يش هپي ر يش پيط bfا h i h پيمايش سطحيbfs )Breatch First Search(

گره اول را وارد صف مي كنيمك ف ا ا آ ا ف ذف ف ا ا ل ا گ ال حال گره اول را از صف حذف و همه فرزندان آن را وارد صف مي كنيم.

حا لبه ترتيب يكي يكي از صف حذف كرده و فرزندان عنصر حذف شده راكن ف د .وارد صف مي كنيما

a

b c

fd e g

a b c d e f g hh

46 h

a b c d e f g h

هپيمايش گرافهاپيمايش گرافها ر يش هپي ر يش پيط bfا h i h پيمايش سطحيbfs )Breatch First Search(

گره اول را وارد صف مي كنيمك ف ا ا آ ا ف ذف ف ا ا ل ا گ ال حال گره اول را از صف حذف و همه فرزندان آن را وارد صف مي كنيم.

حا لبه ترتيب يكي يكي از صف حذف كرده و فرزندان عنصر حذف شده راكن ف د .وارد صف مي كنيما

a

b c

fd e g

a b c d e f g h47 h

a b c d e f g h

هپيمايش گرافها پيمايش گرافها ر يش هپي ر يش پيط ش bfا )B t h Fi t S h( پيمايش سطحيbfs )Breatch First Search(

bfs( v: vertex)bfs( v: vertex){

visited[v]=true[ ]addq(q,v)while (not emptyqueue (q) )

{{delq();for (all node w adjacent v )for (all node w adjacent v )

{addq(q,w)

48

q(q )visited[w]=true } } }

Page 13: ﺎﻫ هداد نﺎﻤﺘﺧﺎﺳ...4 info@nurani.ir (ﻪﻣادا)ﺎﻬﻬﺮﻓاﺮﮔ ﻪﻴﻴوﻟوا ﻒﻳرﺎﻌﺗ ﺪﻨﺒﻤﻫ يﺎﻫ هﺮﮔ ار ﺮﻴﺴﻣ

زيدرختهاي پوشا با حداقل هزينهدرختهاي پوشا با حداقل هزينه ل ب پو ي ه زير ل ب پو ي ه را ال ا ا ا ا ا گ ا ك ا ا درخت پوشا درختي است كه تمام گره هاي موجود را با تعدادي از يالها

.شامل شود

را داشته باشد، درخت درخت پوشايي كه كمترين مجموع وزن يال.پوشاي مينيمم گويند

الگوريتم هاي ايجاد درخت پوشاي مينيممالگوريتم راشالالوريتم پريم

www.nurani.ir [email protected]

زيدرختهاي پوشا با حداقل هزينهدرختهاي پوشا با حداقل هزينه ل ب پو ي ه زير ل ب پو ي ه رال ا الگ الگوريتم راشال

ابتدا تمام گره ها را بدون يالها رسم مي كنيمك ك اف ا ط گ ك ك ا ا ا ال ك ك ال حال يكي يكي يالها را از وزن كوچك به بزرگ طوري اضافه مي كنيم كه

.ايجاد حلقه نكندي دا كا يكجنگل با حله ه د ش اين در اين روش در هر مرحله با يك جنگل سرو كار داريمد

b b20

b b b

b b

231 4

15

b b b

b b28 25

9

316

50

b b17

زيدرختهاي پوشا با حداقل هزينهدرختهاي پوشا با حداقل هزينه ل ب پو ي ه زير ل ب پو ي ه رال ا الگ الگوريتم راشال

ابتدا تمام گره ها را بدون يالها رسم مي كنيمك ك اف ا ط گ ك ك ا ا ا ال ك ك ال حال يكي يكي يالها را از وزن كوچك به بزرگ طوري اضافه مي كنيم كه

.ايجاد حلقه نكندي دا كا يكجنگل با حله ه د ش اين در اين روش در هر مرحله با يك جنگل سرو كار داريمد

b b20 b b

b b b

b b

231 4

15

b b b

b b

b b b

b b28 25

9

316

b b b

b b

51

b b17

b b

زيدرختهاي پوشا با حداقل هزينهدرختهاي پوشا با حداقل هزينه ل ب پو ي ه زير ل ب پو ي ه رال ا الگ الگوريتم راشال

ابتدا تمام گره ها را بدون يالها رسم مي كنيمك ك اف ا ط گ ك ك ا ا ا ال ك ك ال حال يكي يكي يالها را از وزن كوچك به بزرگ طوري اضافه مي كنيم كه

.ايجاد حلقه نكندي دا كا يكجنگل با حله ه د ش اين در اين روش در هر مرحله با يك جنگل سرو كار داريمد

b b20 b b

b b b

b b

231 4

15

b b b

b b

1b b b

b b28 25

9

316

b b b

b b

52

b b17

b b

Page 14: ﺎﻫ هداد نﺎﻤﺘﺧﺎﺳ...4 info@nurani.ir (ﻪﻣادا)ﺎﻬﻬﺮﻓاﺮﮔ ﻪﻴﻴوﻟوا ﻒﻳرﺎﻌﺗ ﺪﻨﺒﻤﻫ يﺎﻫ هﺮﮔ ار ﺮﻴﺴﻣ

زيدرختهاي پوشا با حداقل هزينهدرختهاي پوشا با حداقل هزينه ل ب پو ي ه زير ل ب پو ي ه رال ا الگ الگوريتم راشال

ابتدا تمام گره ها را بدون يالها رسم مي كنيمك ك اف ا ط گ ك ك ا ا ا ال ك ك ال حال يكي يكي يالها را از وزن كوچك به بزرگ طوري اضافه مي كنيم كه

.ايجاد حلقه نكندي دا كا يكجنگل با حله ه د ش اين در اين روش در هر مرحله با يك جنگل سرو كار داريمد

b b20 b b

b b b

b b

231 4

15

b b b

b b

1b b b

b b28 25

9

316

b b b

b b3

53

b b17

b b

زيدرختهاي پوشا با حداقل هزينهدرختهاي پوشا با حداقل هزينه ل ب پو ي ه زير ل ب پو ي ه رال ا الگ الگوريتم راشال

ابتدا تمام گره ها را بدون يالها رسم مي كنيمك ك اف ا ط گ ك ك ا ا ا ال ك ك ال حال يكي يكي يالها را از وزن كوچك به بزرگ طوري اضافه مي كنيم كه

.ايجاد حلقه نكندي دا كا يكجنگل با حله ه د ش اين در اين روش در هر مرحله با يك جنگل سرو كار داريمد

b b20 b b

b b b

b b

231 4

15

b b b

b b

1 4b b b

b b28 25

9

316

b b b

b b3

54

b b17

b b

زيدرختهاي پوشا با حداقل هزينهدرختهاي پوشا با حداقل هزينه ل ب پو ي ه زير ل ب پو ي ه رال ا الگ الگوريتم راشال

ابتدا تمام گره ها را بدون يالها رسم مي كنيمك ك اف ا ط گ ك ك ا ا ا ال ك ك ال حال يكي يكي يالها را از وزن كوچك به بزرگ طوري اضافه مي كنيم كه

.ايجاد حلقه نكندي دا كا يكجنگل با حله ه د ش اين در اين روش در هر مرحله با يك جنگل سرو كار داريمد

b b20 b b

b b b

b b

231 4

15

b b b

b b

1 4b b b

b b28 25

9

316

b b b

b b3

9

55

b b17

b b

زيدرختهاي پوشا با حداقل هزينهدرختهاي پوشا با حداقل هزينه ل ب پو ي ه زير ل ب پو ي ه رال ا الگ الگوريتم راشال

ابتدا تمام گره ها را بدون يالها رسم مي كنيمك ك اف ا ط گ ك ك ا ا ا ال ك ك ال حال يكي يكي يالها را از وزن كوچك به بزرگ طوري اضافه مي كنيم كه

.ايجاد حلقه نكندي دا كا يكجنگل با حله ه د ش اين در اين روش در هر مرحله با يك جنگل سرو كار داريمد

b b20 b b

b b b

b b

231 4

15

b b b

b b

1 4b b b

b b28 25

9

316

b b b

b b3

9

56

b b17

b b17

Page 15: ﺎﻫ هداد نﺎﻤﺘﺧﺎﺳ...4 info@nurani.ir (ﻪﻣادا)ﺎﻬﻬﺮﻓاﺮﮔ ﻪﻴﻴوﻟوا ﻒﻳرﺎﻌﺗ ﺪﻨﺒﻤﻫ يﺎﻫ هﺮﮔ ار ﺮﻴﺴﻣ

زيدرختهاي پوشا با حداقل هزينهدرختهاي پوشا با حداقل هزينه ل ب پو ي ه زير ل ب پو ي ه رال ا الگ الگوريتم راشال

ابتدا تمام گره ها را بدون يالها رسم مي كنيمك ك اف ا ط گ ك ك ا ا ا ال ك ك ال حال يكي يكي يالها را از وزن كوچك به بزرگ طوري اضافه مي كنيم كه

.ايجاد حلقه نكندي دا كا يكجنگل با حله ه د ش اين در اين روش در هر مرحله با يك جنگل سرو كار داريمد

b b20 b b20

b b b

b b

231 4

15

b b b

b b

1 4b b b

b b28 25

9

316

b b b

b b3

9

57

b b17

b b17

زيدرختهاي پوشا با حداقل هزينهدرختهاي پوشا با حداقل هزينه ل ب پو ي ه زير ل ب پو ي ه رال ا الگ الگوريتم راشال

ابتدا تمام گره ها را بدون يالها رسم مي كنيمك ك اف ا ط گ ك ك ا ا ا ال ك ك ال حال يكي يكي يالها را از وزن كوچك به بزرگ طوري اضافه مي كنيم كه

.ايجاد حلقه نكندي دا كا يكجنگل با حله ه د ش اين در اين روش در هر مرحله با يك جنگل سرو كار داريمد

b b20 b b20

b b b

b b

231 4

15

b b b

b b

1 4b b b

b b28 25

9

316

b b b

b b3

91+3+4+9+17+20=54

58

b b17

b b17

زيدرختهاي پوشا با حداقل هزينهدرختهاي پوشا با حداقل هزينه ل ب پو ي ه زير ل ب پو ي ه رالگ الگوريتم پريم از يك يال شروع مي كنيمكنيم م وصل را آن به متصل يال ين كوچكت كوچكترين يال متصل به آن را وصل مي كنيم حال در بين يال هاي مجاور يال هاي ضافه شده، كوچكترين يال را پيدا

مكرده و اضافه مي كنيم ي ردر اين روش در هر مرحله با يك درخت سرو كار داريم

b b20

234

15

b b b

25

1 4

916

59 b b28 25 316

17

زيدرختهاي پوشا با حداقل هزينهدرختهاي پوشا با حداقل هزينه ل ب پو ي ه زير ل ب پو ي ه رالگ الگوريتم پريم از يك يال شروع مي كنيمكنيم م وصل را آن به متصل يال ين كوچكت كوچكترين يال متصل به آن را وصل مي كنيم حال در بين يال هاي مجاور يال هاي اضافه شده، كوچكترين يال را پيدا

مكرده و اضافه مي كنيم ي ردر اين روش در هر مرحله با يك درخت سرو كار داريم

b b20

234

15b b20

234

15

b b b

25

1 4

916

b b b

28 25

14

9

316

60 b b28 25 316

17b b

28 25 316

17

Page 16: ﺎﻫ هداد نﺎﻤﺘﺧﺎﺳ...4 info@nurani.ir (ﻪﻣادا)ﺎﻬﻬﺮﻓاﺮﮔ ﻪﻴﻴوﻟوا ﻒﻳرﺎﻌﺗ ﺪﻨﺒﻤﻫ يﺎﻫ هﺮﮔ ار ﺮﻴﺴﻣ

زيدرختهاي پوشا با حداقل هزينهدرختهاي پوشا با حداقل هزينه ل ب پو ي ه زير ل ب پو ي ه رالگ الگوريتم پريم از يك يال شروع مي كنيمكنيم م وصل را آن به متصل يال ين كوچكت كوچكترين يال متصل به آن را وصل مي كنيم حال در بين يال هاي مجاور يال هاي ضافه شده، كوچكترين يال را پيدا

مكرده و اضافه مي كنيم ي ردر اين روش در هر مرحله با يك درخت سرو كار داريم

b b20

234

15b b

b b b

25

1 4

916

b b b

61 b b28 25 316

17b b

زيدرختهاي پوشا با حداقل هزينهدرختهاي پوشا با حداقل هزينه ل ب پو ي ه زير ل ب پو ي ه رالگ الگوريتم پريم از يك يال شروع مي كنيمكنيم م وصل را آن به متصل يال ين كوچكت كوچكترين يال متصل به آن را وصل مي كنيم حال در بين يال هاي مجاور يال هاي ضافه شده، كوچكترين يال را پيدا

مكرده و اضافه مي كنيم ي ردر اين روش در هر مرحله با يك درخت سرو كار داريم

b b20

234

15b b

b b b

25

1 4

916

b b b1

62 b b28 25 316

17b b

زيدرختهاي پوشا با حداقل هزينهدرختهاي پوشا با حداقل هزينه ل ب پو ي ه زير ل ب پو ي ه رالگ الگوريتم پريم از يك يال شروع مي كنيمكنيم م وصل را آن به متصل يال ين كوچكت كوچكترين يال متصل به آن را وصل مي كنيم حال در بين يال هاي مجاور يال هاي ضافه شده، كوچكترين يال را پيدا

مكرده و اضافه مي كنيم ي ردر اين روش در هر مرحله با يك درخت سرو كار داريم

b b20

234

15b b

4b b b

25

1 4

916

b b b1

4

63 b b28 25 316

17b b

زيدرختهاي پوشا با حداقل هزينهدرختهاي پوشا با حداقل هزينه ل ب پو ي ه زير ل ب پو ي ه رالگ الگوريتم پريم از يك يال شروع مي كنيمكنيم م وصل را آن به متصل يال ين كوچكت كوچكترين يال متصل به آن را وصل مي كنيم حال در بين يال هاي مجاور يال هاي ضافه شده، كوچكترين يال را پيدا

مكرده و اضافه مي كنيم ي ردر اين روش در هر مرحله با يك درخت سرو كار داريم

b b20

234

15b b

4b b b

25

1 4

916

b b b1

4

9

64 b b28 25 316

17b b

Page 17: ﺎﻫ هداد نﺎﻤﺘﺧﺎﺳ...4 info@nurani.ir (ﻪﻣادا)ﺎﻬﻬﺮﻓاﺮﮔ ﻪﻴﻴوﻟوا ﻒﻳرﺎﻌﺗ ﺪﻨﺒﻤﻫ يﺎﻫ هﺮﮔ ار ﺮﻴﺴﻣ

زيدرختهاي پوشا با حداقل هزينهدرختهاي پوشا با حداقل هزينه ل ب پو ي ه زير ل ب پو ي ه رالگ الگوريتم پريم از يك يال شروع مي كنيمكنيم م وصل را آن به متصل يال ين كوچكت كوچكترين يال متصل به آن را وصل مي كنيم حال در بين يال هاي مجاور يال هاي ضافه شده، كوچكترين يال را پيدا

مكرده و اضافه مي كنيم ي ردر اين روش در هر مرحله با يك درخت سرو كار داريم

b b20

234

15b b

4b b b

25

1 4

916

b b b1

4

9

365 b b

28 25 316

17b b

3

زيدرختهاي پوشا با حداقل هزينهدرختهاي پوشا با حداقل هزينه ل ب پو ي ه زير ل ب پو ي ه رالگ الگوريتم پريم از يك يال شروع مي كنيمكنيم م وصل را آن به متصل يال ين كوچكت كوچكترين يال متصل به آن را وصل مي كنيم حال در بين يال هاي مجاور يال هاي ضافه شده، كوچكترين يال را پيدا

مكرده و اضافه مي كنيم ي ردر اين روش در هر مرحله با يك درخت سرو كار داريم

b b20

234

15b b

4b b b

25

1 4

916

b b b1

4

9

366 b b

28 25 316

17b b

3

17

زيدرختهاي پوشا با حداقل هزينهدرختهاي پوشا با حداقل هزينه ل ب پو ي ه زير ل ب پو ي ه رالگ الگوريتم پريم از يك يال شروع مي كنيمكنيم م وصل را آن به متصل يال ين كوچكت كوچكترين يال متصل به آن را وصل مي كنيم حال در بين يال هاي مجاور يال هاي ضافه شده، كوچكترين يال را پيدا

مكرده و اضافه مي كنيم ي ردر اين روش در هر مرحله با يك درخت سرو كار داريم

b b20

234

15b b

4

20

b b b

25

1 4

916

b b b1

4

9

31+4+9+3+17+20=5467 b b

28 25 316

17b b

3

17

1 4 9 3 17 20 54