โครงสร้างข้อมูลแบบ กราฟ (graph)
TRANSCRIPT
โครงสรางขอมลแบบกราฟ (Graph) กราฟ (Graph) เปนโครงสรางขอมลแบบไมใชเชง
เสนอกชนดหนง กราฟเปนโครงสรางขอมลทมการนำาไปใชในงานทเกยวของกบการแกปญหาท
คอนขางซบซอน เชน การวางขายงานคอมพวเตอร การวเคราะหเสนทางวกฤต และปญหาเสนทางทสน
ทสด เปนตน
โครงสรางขอมลแบบกราฟ (Graph)ศพททเกยวของ1. เวอรเทก (Vertex) หมายถง โหนด2.เอดจ (Edge) หมายถง เสนเชอมของโหนด3. ดกร (Degree) หมายถง จำานวนเสนเขาและออก ของ
โหนดแตละโหนด4. แอดจาเซนทโหนด (Adjacent Node) หมายถง โหนดทม
การเชอมโยงกน
Graph แบงเปน
1. Directed Graph (Digraph) (Arc)
2. Undirected Graph
โครงสรางขอมลแบบกราฟ (Graph) เส นทาง (Path)
ใชเรยกลำาดบของ เวอรเทก (Vertex) ทเชอมตอกนจากจดหนงไปยงอกจดหนง
(A,B,C,D,E)
(A,B,E,F)
โครงสรางขอมลแบบกราฟ (Graph) Cycle
Path ทประกอบดวยอยางนอย 3 Vertex และมจดเรมตนและสนสดเดยวกน
เชน (B,C,E,B)(B,C,E,B)
(B,C,D,E,B)(B,C,D,E,B)
โครงสรางขอมลแบบกราฟ (Graph)Directed Graph : มการกำาหนดทศทาง Strongly Connected
ทก ๆ 2 Vertex ม Path ทงไปและกลบ(ทกโหนดในกราฟมพาทตดตอถงกนหมด)
โครงสรางขอมลแบบกราฟ (Graph) Weakly Connected : มอยางนอย 2 Vertex ทม
Path ในทศทางเดยว (บางโหนดไมสามารตดตอไปยงทกโหนดในกราฟนนได)
A A ไป ไป G G ได ในทศทางเด ยวได ในทศทางเด ยว
Graph Storage Structure
การเกบขอมลในหนวยความจำาสามารถทำาได 2 แบบ
ดงน
1. Adjacency Matrix : ใชอาร เรย เก บใชอาร เรย เก บ
ข อม ลข อม ล
2. Adjacency List : ใชล งค ล สต เก บข อม ลใชล งค ล สต เก บข อม ล
Adjacency Matrix เปนโครงสรางทประกอบไปดวยโหนดและเสนเชอม
ตอทบอกถงเสนทางของการเดนทาง หรอความสมพนธในทศทางซงสามารถนำามาแทนความ
สมพนธนนดวยการกำาหนดเมตรกซ n x n Mk เปนเมทรกซของกราฟใด ๆ k คอทางเดนทม
ความยาว k จากโหนดหนงไปอกโหนดหนง
Transitive Closure ในกรณทเราอยากทราบวาในกราฟจากโหนดหนง
ไปยงโหนดหนงมจำานวนเสนทางมากเทาไร เราสามารถหาคาไดจากการคณเมทรกซ
Graph Traversal สามารถทำาได 2 วธ
1. แนวลก : Depth-first Traversal
2. แนวราบ : Breath-first Traversal
Depth-first Traversal เปนลกษณะการทองเขาไปยงโหนดเรมตน แลวใหโหนด
ใกลเคยงเปนโหนดเรมตน เขาเยยมโหนด ทำาตอไปจน กระทงไมมโหนดใกลเคยงจงยอนกลบมายงโหนดกอนหนา
และเขาเยยมโหนดอกดานดวยรปแบบเดยวกนจนครบ เทยบไดกบการทองเขาไปในทรแบบพรออเดอร
1. Push vertex
2. Pop vertex และประมวลผล3. Push adjacent ทงหมดของ Vertex ในขอ 2
4. ทำาซำาขอ 2-3 จนกวาจะครบทก Vertex และStack วาง
Breath-first Traversalเปนการทองเขาไปในกราฟโดยเขาเยยมโหนดตว
แรก และดำาเนนการ หากมโหนดใกลเคยงจะดำาเนนการกบโหนดทอยดานซายกอน
1. Enqueue vertex
2. Dequeue vertex และประมวลผล3. Enqueue adjacent ทงหมดของ Vertex ใน
ขอ 2
4. ทำาซำาขอ 2-3 จนกวาจะครบทก Vertex และQueue วาง
Network Application Minimum Spanning Tree เปนรปแบบของการ
คนหาโดยกำาหนดเรยกใชโหนดทกโหนดและทกเสน การเชอมตอ มาลำาดบความสำาคญของนำาหนกโดยเรม
จากคานอยทสดในขายงาน ทำาการเชอมตอคโหนด นน และดำาเนนการตอไปในคานำาหนกทตอกน แตถา
โหนดใดมการเชอมตอคโหนดแลวจะไมเชอมตออก Shortest Path เปนอลกอรทมทใชในการหาระยะ
ทางทสนทสดเชนเดยวกบ MST แตจะเปลยนจากการหาเสนทางจากโหนดแรกไปยงโหนดปลายทาง
ของขายงาน เปนโหนดทกำาหนดเปนโหนดตนทางไป ยงโหนดตาง ๆ โดยหาระยะทางสนทสดแตละเสนทาง
Minimum Spanning Tree Minimum Spanning Tree (MST) หมายถง
Spanning Tree ทมผลรวมของ Weight ทงหมดนอยทสด
1. ใส Vertex เรมตนใน Tree
2. เลอก Edge จาก Vertex ใน Tree ไปยง Vertex ทไมอย
ใน Tree และม Weight ตำาสด
3. ทำาซำาขอ 2 จนกวาจะครบทก Vertex
Shortest Path Shortest Path หมายถง Path ทส นท สดระหวาง 2
Vertex
หาเสนทางการสงขอม ลจากตนทางไปปลายทาง โดย
ใหมระยะทางส นท สด1. ใส Vertex เรมตนใน Tree2. เลอก Edge จาก Vertex ใน Tree ไปยง
Vertex ทไมอยใน Tree และมผลรวมของ Weight ตำาสด
3. ทำาซำาขอ 2 จนกวาจะครบทก Vertex