Date post: | 27-Jun-2015 |
Category: |
Education |
Upload: | noppakhun-suebloei |
View: | 556 times |
Download: | 0 times |
GraphGraph
Data Structure and Algorithm Data Structure and Algorithm
หั�วข้�อในบทน��
นิ�ยามกราฟประโยชนิ ของกราฟ
อ�นิดี�กร�และเอาท์ ดี�กร�กราฟสมบู�รณ์
กราฟแบูบูม�นิ��าหนิ�กการแท์นิท์��กราฟในิคอมพิ�วเตอร
การท์%องไปในิกราฟ
น ยามกราฟ กราฟ คื�อเซ็�ตข้องโหันด(Vertex) และเส้�นเชื่�"อม
(Edge)
G = (V,E)
โหันด แส้ดงถึ%ง Object เชื่&น ชื่�"อเม�อง , ส้ถึานท�"ท&องเท�"ยว
เส้�นเชื่�"อม (Edge) แส้ดงคืวามส้�มพั�นธ์) ข้อง 2 โหันด ม�คืวามหัมายแล�วแต&การน ยาม เชื่&น ระยะ
ทาง, เวลา
A B
C D
EdgeNode
2 4
3
1
น ยามกราฟ
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
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 ไม%ม�เส)นิเช*�อม
ป็ระโยชื่น)ข้องกราฟ ( Routingการหาเส)นิท์าง)
ส้ายการบ น ( การเชื่�"อมต&อข้องส้ายการบ น ตารางบ น)
ป็ระโยชื่น)ข้องกราฟ ( Routingการหาเส)นิท์าง)
Network ( การเชื่�"อมต&อข้องอ/ป็กรณ์) Router)เพั�"อใชื่�ในการร�บส้&งข้�อม1ลในเคืร�อข้&าย
ป็ระโยชื่น)ข้องกราฟ( Algorithm Design)
Map Coloring คื�อว ธ์�การระบายส้�ในแผนท�"โดยใชื่�ส้�น�อยท�"ส้/ดพั��นท�"ต ดก�นหั�ามใชื่�ส้�เด�ยวก�น
Directed & UndirectedGraphUndirected Graph คื�อกราฟท�"เส้�นเชื่�"อมไม&ม�ล1กศรก.าก�บท ศทาง
หัมายถึ%งคืวามส้�ม พั�นธ์)ข้อง 2 โหันดแบบไป็และกล�บ
H
B
A
F
C
E G
D
Undirected Graph แสดีงสายการบู�นิของ Air Asia
Undirected Graph แสดีงโหนิดีและเส)นิเช*�อมของกราฟร�ปหนิ+�ง
Directed & UndirectedGraph
Directed Graph คื�อกราฟท�"เส้�นเชื่�"อมม�ล1กศรก.าก�บท ศทาง
เชื่&น อาจำม�ส้ายการบ นจำาก กร/งเทพั- เส้�ยมเล�ยบ ก�มพั1ชื่า แต&ไม&ม�ส้ายการบ นจำาก เส้�ยมเล�ยบ-กร/งเทพั
หัร�อ Edge แส้ดงคื&าโดยส้ารท�"ม�ราคืา ไป็-กล�บไม&เท&าก�น หัร�อ คื&าโทรศ�พัท)ไทยไป็ส้ งคืโป็ร) แพังกว&าส้ งคืโป็ร)โทรหัา
ไทย
Singapore
Cambodia
Indonesia
Thai
Undirected Graph แสดีงค%าอ�ตราค%าโท์รศั�พิท์ ระหว%างประเท์ศั(เป-นิราคาสมมต�เท์%านิ��นิ)
7
4
6
10
65
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
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
อ นด�กร�และเอาท)ด�กร�แต&ละโหันดจำะม�จำ.านวนเส้�นเชื่�"อมระหัว&างโหันดไม&เท&าก�น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
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
การแทนท�"กราฟในคือมพั วเตอร)
Simple Array Representation Complex Array Representation Linked-list Array
Representation Mixed Array Representation
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
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;
ช*�อโหนิดี เส)นิเช*�อม
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
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
การท&องไป็ในกราฟคื�อการคื�นหัาเส้�นทาง จำากโหันดหัน%"ง ไป็ย�งโหันดท�"ต�องการใน
กราฟ หัากหัาเส้�นทางได�ไป็ย�งโหันดได� แส้ดงว&าโหันดเร "มต�นส้ามารถึ
เชื่�"อมต&อก�บโหันดน��นได� เชื่&นหัาเส้�นทางการบ นจำากกร/งเทพั ไป็ย�งDallas อเมร กา
ในกราฟ อาจำม�บางโหันดท�"ไม&ส้ามารถึเชื่�"อมก�นก�เป็+นได� 2 ว ธ์� Breadth-first Search, Depth-first Search
A
D
B C
FE
G HD
BC
FE
I
โหนิดี F สามารถเดี�นิท์างไปย�ง B ไดี)หร*อไม%?
อาจม�บูางโหนิดีท์��ไม%สามารถเช*�อมก�นิก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 ไม&
เชื่�"อมต&อก�บใคืรเลย
Breadth-first Search คื�อการคื�นหัาโหันดใดในกราฟ โดยด1ในแนวกว�างก&อน ใชื่� Queue เป็+นเคืร�"องม�อในการชื่&วยคื�นหัา ต�วอย&างการหัาโหันด E เร "มจำากโหันด B
D
BC
FE
B
C F
B
C F
B
E 1Step B2 B3Found!
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 ไว�
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
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
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( )
Breadth-first Search (แบบฝึ8กหั�ด)
D
BC
FEจากร�ปขวาม*อให)สร)างภาพิข��นิตอนิการ
ค)นิหาจากโหนิดี D ไปย�ง โหนิดี E โดียใช)Breadth-first Search
Breadth-first Search (แบบฝึ8กหั�ด)
จากร�ปขวาม*อให)สร)างภาพิข��นิตอนิการ ค)นิหาจากโหนิดี C ไปย�ง โหนิดี B โดียใช)
Breadth-first Search A
D
B C
FE
G H
I
Breadth-first Search (แบบฝึ8กหั�ด)
จากร�ปขวาม*อให)สร)างภาพิข��นิตอนิการ ค)นิหาจากโหนิดี I ไปย�ง โหนิดี B โดียใช)
Breadth-first Search A
D
B C
FE
G H
I
Depth-First Search คื�อการคื�นหัาโหันดใดในกราฟ โดยด1ในแนวล%กก&อน ใชื่� Stack เป็+นเคืร�"องม�อในการชื่&วยคื�นหัา ต�วอย&างการหัาโหันด E เร "มจำากโหันด B
D
BC
FE
B
C
B
C
B
E 1Step B2 B3Found!
ภาพั Step การคื�นหัาข้อง Depth-First Search
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 แบบกล�บ
ล.าด�บ)
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}
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
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
Depth-first Search(ต�วอย&าง)
C
B
E
1( )
2( )
3( )
ภาพิหล�งจากการค)นิหา
Depth-first Search (แบบฝึ8กหั�ด)
D
BC
FEจากร�ปขวาม*อให)สร)างภาพิข��นิตอนิการ
ค)นิหาจากโหนิดี D ไปย�ง โหนิดี E โดียใช)Depth-first Search
Depth-first Search (แบบฝึ8กหั�ด)
จากร�ปขวาม*อให)สร)างภาพิข��นิตอนิการ ค)นิหาจากโหนิดี C ไปย�ง โหนิดี B โดียใช)
Depth-first Search A
D
B C
FE
G H
I
Depth-first Search (แบบฝึ8กหั�ด)
จากร�ปขวาม*อให)สร)างภาพิข��นิตอนิการ ค)นิหาจากโหนิดี I ไปย�ง โหนิดี B โดียใช)
Depth-first Search A
D
B C
FE
G H
I
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
Single Source Shortest Path Algorithm น��คืล�ายก�บ Breadth-first Search
ป็ร�บป็ร/งน ดหัน&อยคื�อ ใชื่�คื วชื่น ด Priority Queue ใชื่�เส้�นทางรวมจำากจำ/ดเร "มต�นมาย�งโหันดน��นๆ เพั�"อระบ/
Priority ข้องส้มาชื่ กท�"อย1&ในคื ว ใชื่�ได�ก�บคื&า Edge ท�"ม�คื&าต��งแต& 0 ข้%�นไป็
Single Source Shortest Path
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
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
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
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
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
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กเล�อกไป็แล�ว
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 ถ�กเล*อกเป-นิเส)นิท์างหล�ก
ไปแล)ว ดี�งนิ��นิจ+งไม%สนิใจ
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
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
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
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
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
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