54
Graph Graph Data Structure and Data Structure and Algorithm Algorithm

Graph shortest

Embed Size (px)

DESCRIPTION

Graph

Citation preview

Page 1: Graph shortest

GraphGraph

Data Structure and Algorithm Data Structure and Algorithm

Page 2: Graph shortest

หั�วข้�อในบทน��

นิ�ยามกราฟประโยชนิ ของกราฟ

อ�นิดี�กร�และเอาท์ ดี�กร�กราฟสมบู�รณ์

กราฟแบูบูม�นิ��าหนิ�กการแท์นิท์��กราฟในิคอมพิ�วเตอร

การท์%องไปในิกราฟ

Page 3: Graph shortest

น ยามกราฟ กราฟ คื�อเซ็�ตข้องโหันด(Vertex) และเส้�นเชื่�"อม

(Edge)

G = (V,E)

โหันด แส้ดงถึ%ง Object เชื่&น ชื่�"อเม�อง , ส้ถึานท�"ท&องเท�"ยว

เส้�นเชื่�"อม (Edge) แส้ดงคืวามส้�มพั�นธ์) ข้อง 2 โหันด ม�คืวามหัมายแล�วแต&การน ยาม เชื่&น ระยะ

ทาง, เวลา

A B

C D

EdgeNode

2 4

3

1

Page 4: Graph shortest

น ยามกราฟ

V(G) = {A,B,C,D}E(G) = {(A,B,3),(A,D,4),

(A,C,2),(B,D,1)}

A B

C D

EdgeNode

2 4

3

1 G =(V,E)

2

2

2

2

จงแสดีง V และ E ของกราฟนิ��

V(G) =

E(G) =

1

3

2

11

A

D

E GF

CB

Page 5: Graph shortest

Graph VS. Treeกราฟ เป็+น Super Set ข้อง ต�นไม� Tree ต�องม� Father Node เพั�ยงโหันดเด�ยว , แต&

Graph ไม&จำ.าเป็+นบางโหันดอาจำไม&ม� เส้�นเชื่�"อมได� เชื่&น บางเม�องไม&ม�ส้าย

การบ น

2( ) Non binary tree

B D

A

F

C

E G

B

A

C

E G

(1 ) Binary tree (3 ) Graph โหนิดี A,C,D ม� Father โหนิดีมากกว%า1

B

A

F

C

E G

D

B

A

F

C

E G

D

(4 ) Graph โหนิดี E,G ไม%ม�เส)นิเช*�อม

Page 6: Graph shortest

ป็ระโยชื่น)ข้องกราฟ ( Routingการหาเส)นิท์าง)

ส้ายการบ น ( การเชื่�"อมต&อข้องส้ายการบ น ตารางบ น)

Page 7: Graph shortest

ป็ระโยชื่น)ข้องกราฟ ( Routingการหาเส)นิท์าง)

Network ( การเชื่�"อมต&อข้องอ/ป็กรณ์) Router)เพั�"อใชื่�ในการร�บส้&งข้�อม1ลในเคืร�อข้&าย

Page 8: Graph shortest

ป็ระโยชื่น)ข้องกราฟ( Algorithm Design)

Map Coloring คื�อว ธ์�การระบายส้�ในแผนท�"โดยใชื่�ส้�น�อยท�"ส้/ดพั��นท�"ต ดก�นหั�ามใชื่�ส้�เด�ยวก�น

Page 9: Graph shortest

Directed & UndirectedGraphUndirected Graph คื�อกราฟท�"เส้�นเชื่�"อมไม&ม�ล1กศรก.าก�บท ศทาง

หัมายถึ%งคืวามส้�ม พั�นธ์)ข้อง 2 โหันดแบบไป็และกล�บ

H

B

A

F

C

E G

D

Undirected Graph แสดีงสายการบู�นิของ Air Asia

Undirected Graph แสดีงโหนิดีและเส)นิเช*�อมของกราฟร�ปหนิ+�ง

Page 10: Graph shortest

Directed & UndirectedGraph

Directed Graph คื�อกราฟท�"เส้�นเชื่�"อมม�ล1กศรก.าก�บท ศทาง

เชื่&น อาจำม�ส้ายการบ นจำาก กร/งเทพั- เส้�ยมเล�ยบ ก�มพั1ชื่า แต&ไม&ม�ส้ายการบ นจำาก เส้�ยมเล�ยบ-กร/งเทพั

หัร�อ Edge แส้ดงคื&าโดยส้ารท�"ม�ราคืา ไป็-กล�บไม&เท&าก�น หัร�อ คื&าโทรศ�พัท)ไทยไป็ส้ งคืโป็ร) แพังกว&าส้ งคืโป็ร)โทรหัา

ไทย

Singapore

Cambodia

Indonesia

Thai

Undirected Graph แสดีงค%าอ�ตราค%าโท์รศั�พิท์ ระหว%างประเท์ศั(เป-นิราคาสมมต�เท์%านิ��นิ)

7

4

6

10

65

Page 11: Graph shortest

Unweighted Graph (กราฟไม&ม�น.�าหัน�ก)

กราฟแบบน��เส้�นเชื่�"อมแส้ดงถึ%งคืวามส้.าพั�นธ์) ข้อง 2 โหันด (เหัม�อนกราฟท�"วไป็)

เส้�นเชื่�"อมแส้ดงถึ%งคืวามหัมายบางอย&าง (เหัม�อนก�บกราฟท�"วไป็)

แต&ไม&ระบ/ข้�อม1ลหัร�อคื&าบางอย&าง ( แตกต&างจำากส้ "งอ�"นๆ ) เชื่&น ถึนนท�"เชื่�"อมเม�อง 2 เม�องแต&ไม&ระบ/ระยะทาง ผ�งรถึไฟฟ6าใต�ด น แต&ไม&ระบ/ราคืาคื&าโดยส้ารระหัว&างส้ถึาน�หัร�อมองว&าคื&าข้�อม1ลเหัล&าน��นม�คื&าเท&าก�นหัมด

อาจำเป็+น Directed หัร�อ Undirected Graph ก�ได�

B

A

F

C

E G

D B

A

F

C

E G

D

Unweighted & Undirected Graph Unweighted & directed Graph

Page 12: Graph shortest

Weighted Graph (กราฟม�น.�าหัน�ก)

กราฟแบบน��เส้�นเชื่�"อมแส้ดงถึ%งคืวามส้.าพั�นธ์)ข้อง 2 โหันด (เหัม�อนกราฟท�"วไป็)

เส้�นเชื่�"อมแส้ดงถึ%งคืวามหัมายบางอย&าง (เหัม�อนก�บกราฟท�"วไป็)เส้�นเชื่�"อมระบ/ข้�อม1ลหัร�อคื&าบางอย&างท�"ต�องการบ&งชื่��

เชื่&น ถึนนท�"เชื่�"อมเม�อง 2 เม�องพัร�อมระบ/ระยะทางระหัว&างเม�อง อาจำเป็+น Directed หัร�อ Undirected Graph ก�ได�

B

A

B

A

C

D

Weighted & Undirected Graph Weighted & directed Graph

C

D

7 6

65

7 6

65

Page 13: Graph shortest

อ นด�กร�และเอาท)ด�กร�แต&ละโหันดจำะม�จำ.านวนเส้�นเชื่�"อมระหัว&างโหันดไม&เท&าก�นIn-degree แส้ดงจำ.านวนเส้�นเชื่�"อมท�"เข้�ามาย�งโหันดน��นๆOut-degree แส้ดงจำ.านวนเส้�นเชื่�"อมท�"ออกจำากโหันดน��น

ไป็ ใน Undirected Graph จำ.านวน In-degree และ

Out-degree จำะเท&าก�น

B

A

C D

- -Node In degree Out DegreeeA 3 3

B 1 1

C 2 2

D 2 2

B

A

C D

- -Node In degree Out DegreeeA 3 1

B 0 1

C 0 2

D 2 1

Undirected Graph Directed Graph

Page 14: Graph shortest

Complete Graph (กราฟส้มบ1รณ์))

กราฟท�"ท/กโหันดม�เส้�นเชื่�"อม ถึ%งโหันดอ�"นๆท��งหัมด

A

CB

E

D

F

G H กราฟม�ท์�ศัท์าง

จ�านิวนิ Edge = N*(N-1) เช%นิ - 3* 31( ) =6

กราฟไม%ม�ท์�ศัท์าง

จ�านิวนิ Edge = N*(N-1) 2

เช%นิ- 5* 51( ) /

2 = 10

Page 15: Graph shortest

การแทนท�"กราฟในคือมพั วเตอร)

Simple Array Representation Complex Array Representation Linked-list Array

Representation Mixed Array Representation

Page 16: Graph shortest

Simple Array Representation of GraphSimple Array Representation of Graph

TT

TT T

1 2 3 4

1 2 3 4

1 2

3 4

Unweighted graph

Ideal view Computerized view

11

11 1

1 2 3 4

1 2 3 4

OR

1 2

3 4

Weighted graph

3

14

2

1

32

14 1

1 2 3 4

1 2 3 4

Page 17: Graph shortest

Simple Array Representation of GraphSimple Array Representation of Graph

11

11 1

1 2 3 4

1 2 3 4

1 2

3 4

Directed graph

Ideal view Computerized view

1

2

3

4

B BBBBB BBBB

typedef struct ArrStr{ char vertrics[NumberOfNode][StringLength]; float edges[NumberOfNode][NumberOfNode];

}ArrayStruct;

ช*�อโหนิดี เส)นิเช*�อม

Page 18: Graph shortest

Linked-list Representation of GraphLinked-list Representation of Graph

1

2

3

2 /

vertices

1 2

3 4

4

/

3 /

4 /

1 2 /

edges

edge(1,2)

edge(2,3)

edge(3,4)

edge(4,1) edge(4,2)

Directed graph

Ideal view Computerized view

vertices ชื่�� edge, nodeedges ชื่�� node, edge

Page 19: Graph shortest

Mixed Representation of GraphMixed Representation of Graph

1

2

3

2 /

vertices1 2

3 4

4

3 /

4 /1 2 /

edges

Directed graph

Array Linked-list

Ideal view Computerized view

Page 20: Graph shortest

การท&องไป็ในกราฟคื�อการคื�นหัาเส้�นทาง จำากโหันดหัน%"ง ไป็ย�งโหันดท�"ต�องการใน

กราฟ หัากหัาเส้�นทางได�ไป็ย�งโหันดได� แส้ดงว&าโหันดเร "มต�นส้ามารถึ

เชื่�"อมต&อก�บโหันดน��นได� เชื่&นหัาเส้�นทางการบ นจำากกร/งเทพั ไป็ย�งDallas อเมร กา

ในกราฟ อาจำม�บางโหันดท�"ไม&ส้ามารถึเชื่�"อมก�นก�เป็+นได� 2 ว ธ์� Breadth-first Search, Depth-first Search

A

D

B C

FE

G HD

BC

FE

I

โหนิดี F สามารถเดี�นิท์างไปย�ง B ไดี)หร*อไม%?

Page 21: Graph shortest

อาจม�บูางโหนิดีท์��ไม%สามารถเช*�อมก�นิก1เป-นิไดี)

ใน Directed Graph หัากเร "มจำาก B : B->C, B->F, B -

> C -> E แต&ไม&ส้ามารถึไป็ถึ%ง D ได� หัากเร "มจำาก F : ไม&ส้ามารถึเชื่�"อมก�บ

โหันดอ�"นๆ ได�เลยD

BC

FE

โหนิดี F สามารถเดี�นิท์างไปย�ง B ไดี)หร*อไม%?

A

D

B C

FE

G H

I

ใน Undirected Graph โหันดท�"เชื่�"อมก�นส้ามารถึเข้�าถึ%งก�นได�หัมด

หัากเร "มจำาก B : ส้ามารถึเข้�าถึ%ง ได�ท/กโหันดยกเว�น A

หัากเร "มจำาก A : ไม&ส้ามารถึเชื่�"อม ก�บโหันดอ�"นๆ ได�เลย เพัราะ A ไม&

เชื่�"อมต&อก�บใคืรเลย

Page 22: Graph shortest

Breadth-first Search คื�อการคื�นหัาโหันดใดในกราฟ โดยด1ในแนวกว�างก&อน ใชื่� Queue เป็+นเคืร�"องม�อในการชื่&วยคื�นหัา ต�วอย&างการหัาโหันด E เร "มจำากโหันด B

D

BC

FE

B

C F

B

C F

B

E 1Step B2 B3Found!

Page 23: Graph shortest

Algorithm: Breadth-First Search

1. Queue = {startVertex}/*โคืรงส้ร�าง queue/

2. Until (คื�นพับ endVertex หัร�อ Queue ว&าง) Do2.1 ด%งส้มาชื่ กต�วแรกใน Queue ออกมา(ใหั�ชื่�"อว&า E)2.2 ส้.าหัร�บโหันดใดๆ ท�"เชื่�"อมต&อก�บ E ใหั�ท.าด�งน��

221. . ทดส้อบโหันดน��นว&าเป็+น endVertex หัร�อไม& 222. . หัากเป็+น endVertex ใหั�คื�นคื&าแล�วจำบการ

คื�นหัา223 หัากไม&เป็+น endVertex ใหั�เซ็�ตคื&าว&าโหันดน��

เคืยพั จำารณ์าแล�ว และน.าไป็ใส้&ต&อท�าย Queue ไว�

Page 24: Graph shortest

Breadth-first Search (ต�วอย&าง)

D

BC

FE

B

B

Step 1: Queue = {B}

Step 2: หย�บูโหนิดี B ออกมาสร)างโหนิดี

Step 3: ส�าหร�บูโหนิดี C ท์��เช*�อมอย�%ก�บูโหนิดี B

Queue = {B}

เร��มจาก B ต)องการค)นิหา E

Step Node Queue

Queue = {ว%าง}

Queue = {ว%าง}

C

Page 25: Graph shortest

Breadth-first Search (ต�วอย&าง)Step Node Queue

Step 5: C ไม%ใช% endVertex จ�บูใส% Queue Queue={C}C

B

Step 6: ส�าหร�บูโหนิดี F ท์��เช*�อมอย�%ก�บูโหนิดี B Queue={C}C F

B

Step 7: F ไม%ใช% endVertex จ�บูใส% Queue Queue={C,F}C F

B

Step 8: หย�บูโหนิดี C ออกมาสร)างโหนิดี Queue={F}C F

B

Page 26: Graph shortest

Breadth-first Search (ต�วอย&าง)

Node E ค*อ endVertex ดี�งนิ��นิให)ค*นิค%าและจบูการค)นิหา

Step Node Queue

Step 9: ส�าหร�บูโหนิดี E ท์��เช*�อมอย�%ก�บูโหนิดี C Queue = {F}C F

B

E

ภาพิหล�งจากการค)นิหา

C F

B

E

1( )

2( ) 3( )

4( )

Page 27: Graph shortest

Breadth-first Search (แบบฝึ8กหั�ด)

D

BC

FEจากร�ปขวาม*อให)สร)างภาพิข��นิตอนิการ

ค)นิหาจากโหนิดี D ไปย�ง โหนิดี E โดียใช)Breadth-first Search

Page 28: Graph shortest

Breadth-first Search (แบบฝึ8กหั�ด)

จากร�ปขวาม*อให)สร)างภาพิข��นิตอนิการ ค)นิหาจากโหนิดี C ไปย�ง โหนิดี B โดียใช)

Breadth-first Search A

D

B C

FE

G H

I

Page 29: Graph shortest

Breadth-first Search (แบบฝึ8กหั�ด)

จากร�ปขวาม*อให)สร)างภาพิข��นิตอนิการ ค)นิหาจากโหนิดี I ไปย�ง โหนิดี B โดียใช)

Breadth-first Search A

D

B C

FE

G H

I

Page 30: Graph shortest

Depth-First Search คื�อการคื�นหัาโหันดใดในกราฟ โดยด1ในแนวล%กก&อน ใชื่� Stack เป็+นเคืร�"องม�อในการชื่&วยคื�นหัา ต�วอย&างการหัาโหันด E เร "มจำากโหันด B

D

BC

FE

B

C

B

C

B

E 1Step B2 B3Found!

Page 31: Graph shortest

ภาพั Step การคื�นหัาข้อง Depth-First Search

Page 32: Graph shortest

Algorithm: Depth-first Search

1. Push(Stack,startVertex)/*ก.าหันดคื&าใน Stack*/

2.ใหั�ท.าจำนพับโหันด endVertex หัร�อ Stack ม�คื&าว&าง2.1 X = Pop(Stack) //หัย บคื&าใน Stack ออกมา2.2 ถึ�า X = endVertex ใหั�คื�นคื&าและจำบการคื�นหัา2.3 ถ)าไม%

2.3.1 เซ็�ตส้ถึานะว&า โหันด X ถึ1กคื�นหัามาแล�ว2.3.2 หัาท/กโหันดท�"เชื่�"อมต&อก�บ X ไว�ใน List2.3.3 Push(Stack, ท/กโหันด List แบบกล�บ

ล.าด�บ)

Page 33: Graph shortest

Depth-first Search(ต�วอย&าง)

D

BC

FE

Step 1: Stack = {B}

Step 2: ย�งไม%พิบูโหนิดี และ Stack ย�งไม%ว%าง

Step 3: X =Pop(Stack) // คื&าข้อง X คื�อโหันด B

Stack ={ว%าง}

เร��มจาก B ต)องการค)นิหา E

Stack ={ว%าง}

Step 4: X ไม%ใช% โหนิดีท์��ต)องการค)นิหา ให)ก�าหนิดีว%า B เป-นิโหนิดีท์��ค)นิหามาแล)ว B

Step Node Stack

B

Stack ={B} Stack ={B}

Page 34: Graph shortest

Depth-first Search(ต�วอย&าง)

Step 5: List = {C, F} //หัาท/กโหันดท�"ต&อก�บ X

Step 6: BBBB ( ,กล�บูล�าดี�บู)

Stack ={ว%าง}

B

Stack ={F,C}

Step 7: X =Pop(Stack) // คื&าข้อง X คื�อโหันด C

Stack ={F}

Stack ={F}

Step 8: X ไม%ใช% โหนิดีท์��ต)องการค)นิหา ให)ก�าหนิดีว%า C เป-นิโหนิดีท์��ค)นิหามาแล)ว B

C

Step Node Stack

B

B

C

Page 35: Graph shortest

Depth-first Search(ต�วอย&าง)

Step 9: List = {E} //หัาท/กโหันดท�"ต&อก�บ X

Step 10: Push(Stack, Listกล�บูล�าดี�บู)

Stack ={F}

Stack ={F,E}

Step 11: X =Pop(Stack) // คื&าข้อง X คื�อโหันด E

Stack ={F}

Stack ={F}

Step 12: X ค*อโหนิดีท์��ค)นิหา ให)ค*นิค%าและหย3ดีการค)นิหาB

C

E

Step Node StackB

C

B

C

B

C

E

Page 36: Graph shortest

Depth-first Search(ต�วอย&าง)

C

B

E

1( )

2( )

3( )

ภาพิหล�งจากการค)นิหา

Page 37: Graph shortest

Depth-first Search (แบบฝึ8กหั�ด)

D

BC

FEจากร�ปขวาม*อให)สร)างภาพิข��นิตอนิการ

ค)นิหาจากโหนิดี D ไปย�ง โหนิดี E โดียใช)Depth-first Search

Page 38: Graph shortest

Depth-first Search (แบบฝึ8กหั�ด)

จากร�ปขวาม*อให)สร)างภาพิข��นิตอนิการ ค)นิหาจากโหนิดี C ไปย�ง โหนิดี B โดียใช)

Depth-first Search A

D

B C

FE

G H

I

Page 39: Graph shortest

Depth-first Search (แบบฝึ8กหั�ด)

จากร�ปขวาม*อให)สร)างภาพิข��นิตอนิการ ค)นิหาจากโหนิดี I ไปย�ง โหนิดี B โดียใช)

Depth-first Search A

D

B C

FE

G H

I

Page 40: Graph shortest

Single Source Shortest Path หัร�อ Dijkstra’s Algorithm / Dijkstra เป็+นน�กคืณ์ ต

ศาส้ตร)ชื่าวด�ทซ็)ใชื่�หัาเส้�นทางจำากโหันดเร "มต�นไป็ย�งโหันดใดๆใหั�ม�ระยะทางท�"ส้� �น

ท�"ส้/ด ม�ป็ระโยชื่น) ในงานพัวกข้นส้&งส้ นคื�า เชื่&นต�องการข้นส้&งจำากจำ/ด

หัน%"งไป็ย�งจำ/ดหัน%"งด�วยทางท�"ส้� �นท�"ส้/ด

B

A

C

E

D

G

F

3

6

1

5

6

10

5

6 7

3

C

D

F

3

6

1

6

10

5

Single Source Shortest Path(พิ�จารณ์าท์�� B)

B

A

E G

Page 41: Graph shortest

Single Source Shortest Path Algorithm น��คืล�ายก�บ Breadth-first Search

ป็ร�บป็ร/งน ดหัน&อยคื�อ ใชื่�คื วชื่น ด Priority Queue ใชื่�เส้�นทางรวมจำากจำ/ดเร "มต�นมาย�งโหันดน��นๆ เพั�"อระบ/

Priority ข้องส้มาชื่ กท�"อย1&ในคื ว ใชื่�ได�ก�บคื&า Edge ท�"ม�คื&าต��งแต& 0 ข้%�นไป็

Single Source Shortest Path

Page 42: Graph shortest

Single Source Shortest Path

1. PriorityQueue = {startVertex}/*โคืรงส้ร�าง queue แบบม�อภ ส้ ทธ์)*/

2. Until PriorityQueue ว&าง Do1.1 ด%งส้มาชื่ กต�วแรกใน Queue ออกมา(ใหั�ชื่�"อว&า X)1.2 หัาก X เคืยถึ1กเล�อกเป็+นเส้�นทางแล�ว กล�บไป็ข้�อ 1.11.3  เล�อกโหันด X ใหั�เป็+นเส้�นทางจำร ง

14. ส้.าหัร�บโหันดใดๆ ท�"เชื่�"อมต&อก�บ X ใหั�ท.าด�งน�� 141. . คื.านวณ์ระยะทางรวมข้องโหันด X

มาย�งโหันดน��นๆ 142 น.าท/กเส้�นทางไป็ไว�ใน PriorityQueue

Page 43: Graph shortest

Single Source Shortest Path (ต�วอย%าง)

Step Queue Graph

B

A

C

E

D

G

F

3

6

1

5

610

5

6 7

3

B

A

C

E

3

5

6

B

1. PriorityQueue = {startVertex}PQ={(B,B,0)}2. ด%งส้มาชื่ กต�วแรกออกมา

PQ={}3. เล�อก B ใหั�เป็+นเส้�นทางจำร งPQ={}4. ส้.าหัร�บท/กโหันดท�"ต&อก�บ B คื.านวณ์ระยะทางแล�วน.ากล�บไป็เก�บใน PQ

B

PQ={(B,A,3),(B,E,5),(B,C,6)}

3

5

6

รอบูท์��1

Page 44: Graph shortest

A3

Single Source Shortest Path (ต�วอย%าง)Step Queue Graph

B

A

C

E

3

5

6

B5. ด%ง (B,A,3) ส้มาชื่ กต�วแรกออกมาPQ={(B,E,5),(B,C,6)}6. เล�อก A ใหั�เป็+นเส้�นทางจำร ง PQ={(B,E,5),(B,C,6)}7. ส้.าหัร�บท/กโหันดท�"ต&อก�บ A คื.านวณ์ระยะทางแล�วน.ากล�บไป็เก�บใน PQPQ={(A,E,4),(B,E,5),(B,C,6),(A,D,9)}

A3

B

D1

63

3

3

9

4

6

5

รอบูท์��2

Page 45: Graph shortest

Single Source Shortest Path (ต�วอย%าง)Step Queue Graph

B

A

C

E

3

5

6

8. ด%ง(A,E,4)ส้มาชื่ กต�วแรกออกมา PQ={(B,E,5),(B,C,6),(A,D,9)}

9. เล�อก E ใหั�เป็+นเส้�นทางจำร ง PQ={(B,E,5),(B,C,6),(A,D,9)}

10. ส้.าหัร�บท/กโหันดท�"ต&อก�บ E คื.านวณ์ระยะทางแล�วน.ากล�บไป็เก�บใน PQ

PQ={(B,E,5),(B,C,6),(E,C,7)(A,D,9),(E,G,9)(E,D,10)}

D1

63

4

6

5

B

A

E

3 1

45

B

A

E

3 1

45

9

3G9

5

รอบูท์��3

Page 46: Graph shortest

Single Source Shortest Path (ต�วอย%าง)Step Queue Graph

11. ด%ง(B,E,5) ส้มาชื่ กต�วแรกออกมา PQ={(B,C,6),(E,C,7)(A,D,9),(E,G,9)(E,D,10)}

B

A

E

3 1

4 แต%เนิ*�องจาก (B,E,5) โหนิดีE ถ�กเล*อกเป-นิเส)นิท์างหล�กไป

แล)ว ดี�งนิ��นิจ+งไม%สนิใจ

รอบูท์��4

Page 47: Graph shortest

Single Source Shortest Path (ต�วอย%าง)Step Queue Graph

B

A

C

E

3

6

12. ด%ง(B,C,6) ส้มาชื่ กต�วแรกออกมา PQ={(E,C,7)(A,D,9),(E,G,9)(E,D,10)}

13. เล�อก C ใหั�เป็+นเส้�นทางจำร ง PQ={(E,C,7)(A,D,9),(E,G,9)(E,D,10)}

1

3

6

B

A

E

3 14

4

รอบูท์��5

14. ส้.าหัร�บท/กโหันดท�"ต&อก�บC คื.านวณ์ระยะทางแล�วน.ากล�บไป็เก�บใน PQ

3

10

B

A

C

E

3

6

D1

6

4

6

5

9

G95

F

PQ={(E,C,7)(A,D,9),(E,G,9),(E,D,10),(C,F,16)}

1

6

หัมายเหัต/ (C,E,9) ไม&ต�อง Add เพัราะ E ถึ1กเล�อกไป็แล�ว

Page 48: Graph shortest

Single Source Shortest Path (ต�วอย%าง)Step Queue Graph

B

A

C

E

3

6

15. ด%ง(E,C,7) ส้มาชื่ กต�วแรกออกมา PQ={(A,D,9),(E,G,9),(E,D,10),(C,F,16)}

1

3

6

4

รอบูท์��6

แต%เนิ*�องจาก (E,C,7) โหนิดีC ถ�กเล*อกเป-นิเส)นิท์างหล�ก

ไปแล)ว ดี�งนิ��นิจ+งไม%สนิใจ

Page 49: Graph shortest

Single Source Shortest Path (ต�วอย%าง)Step Queue Graph

B

A

C

E

3

6

16. ด%ง (A,D,9) ส้มาชื่ กต�วแรกออกมา PQ={(E,G,9), (E,D,10),(C,F,16)}

1

3

6

4

รอบูท์��7

17. เล�อก D ใหั�เป็+นเส้�นทางจำร ง

18. ส้.าหัร�บท/กโหันดท�"ต&อก�บD คื.านวณ์ระยะทางแล�วน.ากล�บไป็เก�บใน PQ 3

10

B

A

C

E

3

6

D1

6

4

6

5

9

G95

F

PQ={(E,G,9), (E,D,10),(C,F,16),(D,G,16)}

1

6

D96

Page 50: Graph shortest

Single Source Shortest Path (ต�วอย%าง)Step Queue Graph

B

A

C

E

3

6

19. ด%ง (E,G,9) ส้มาชื่ กต�วแรกออกมา PQ={(E,D,10),(C,F,16),(D,G,16)}

1

3

6

4

รอบูท์��8

20. เล�อก G ใหั�เป็+นเส้�นทางจำร ง

21. ส้.าหัร�บท/กโหันดท�"ต&อก�บG คื.านวณ์ระยะทางแล�วน.ากล�บไป็เก�บใน PQ 3

10

B

A

C

E

3

6

D1

6

4

6

5

9

3G9

5

F

PQ={(E,D,10),(C,F,16),(D,G,16)}

1

6

D96

G5 9

Page 51: Graph shortest

Single Source Shortest Path (ต�วอย%าง)Step Queue Graph

22. ด%ง (E,D,10) ส้มาชื่ กต�วแรกออกมา PQ={(C,F,16),(D,G,16)}

รอบูท์��9

แต%เนิ*�องจาก (E,D,10) โหนิดี D ถ�กเล*อกเป-นิเส)นิท์าง

หล�กไปแล)ว ดี�งนิ��นิจ+งไม%สนิใจ

23. ด%ง (C,F,16) ส้มาชื่ กต�วแรกออกมา PQ={(D,G,16)}

รอบูท์��10

24. เล�อก F ใหั�เป็+นเส้�นทางจำร ง

25. ส้.าหัร�บท/กโหันดท�"ต&อ ก�บ F คื.านวณ์ระยะทางแล�วน.า

กล�บไป็เก�บใน PQ (ไม&ม�แล�ว)

3

10

B

A

C

E

3

6

D1

6

4

6

5

9

3G9

5

F1

6

Page 52: Graph shortest

Single Source Shortest Path (ต�วอย%าง)Step Queue Graph

26. ด%ง (D,G,16) ส้มาชื่ กต�วแรกออกมา PQ={}

รอบูท์��11

แต%เนิ*�องจาก (D,G,16) โหนิดี G ถ�กเล*อกเป-นิเส)นิท์าง

หล�กไปแล)ว ดี�งนิ��นิจ+งไม%สนิใจ27. เม�"อ PriorityQueue ว&าง จำ%งจำบการท.างาน

10

B

A

C

E

3

6

D1

6

3G

5

F

Page 53: Graph shortest

Single Source Shortest Path (แบูบูฝึ5กห�ดี)

3

1

5

4

จำงแส้ดงข้��นตอนการหัา Single Source Shortest Path จำาก โหันด C

B

A

C

EC C

C

6 3

4

3

1

5

4

A

C

C C

C

6 เฉลย3

B E

Page 54: Graph shortest

Single Source Shortest Path (แบูบูฝึ5กห�ดี)

B

A

C

E

3 1

5

6 3

1 จำงหัา Single Source Shortest Path จำาก โหันด E

3 3

5

6 3

2. จำงหัา Single Source Shortest Path จำาก โหันด E 6

B

A

C

E

F