งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

วิชา COSC2202 โครงสร้างข้อมูล (Data Structure)

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "วิชา COSC2202 โครงสร้างข้อมูล (Data Structure)"— ใบสำเนางานนำเสนอ:

1 วิชา COSC2202 โครงสร้างข้อมูล (Data Structure)
โครงสร้างข้อมูลแบบ กราฟ (Graph)

2 โครงสร้างข้อมูลแบบกราฟ (Graph)

3 โครงสร้างข้อมูลแบบกราฟ (Graph)
ศัพท์ที่เกี่ยวข้อง 1. เวอร์เทก (Vertex) หมายถึง โหนด 2. เอดจ (Edge) หมายถึง เส้นเชื่อมของโหนด 3. ดีกรี (Degree) หมายถึง จำนวนเส้นเข้าและออก ของโหนดแต่ละโหนด 4. แอดจาเซนท์โหนด (Adjacent Node) หมายถึง โหนดที่มีการเชื่อมโยงกัน Graph แบ่งเป็น 1. Directed Graph (Digraph) (Arc) 2. Undirected Graph

4 โครงสร้างข้อมูลแบบกราฟ (Graph)

5 โครงสร้างข้อมูลแบบกราฟ (Graph)
แอดจาเซนท์โหนด (Adjacent Node) A กับ B D กับ F ใช่ ไม่ใช่

6 โครงสร้างข้อมูลแบบกราฟ (Graph)
เส้นทาง (Path) ใช้เรียกลำดับของ เวอร์เทก (Vertex) ที่เชื่อมต่อกันจากจุดหนึ่งไปยังอีกจุดหนึ่ง (A,B,C,D,E) (A,B,E,F)

7 โครงสร้างข้อมูลแบบกราฟ (Graph)
Cycle Path ที่ประกอบด้วยอย่างน้อย 3 Vertex และมีจุดเริ่มต้นและสิ้นสุดเดียวกัน เช่น (B,C,E,B) (B,C,D,E,B)

8 โครงสร้างข้อมูลแบบกราฟ (Graph)
ลูป (Loop) มีเพียง Arc เดียวและมีจุดเริ่มต้นและสิ้นสุดเดียวกัน

9 โครงสร้างข้อมูลแบบกราฟ (Graph)
Directed Graph : มีการกำหนดทิศทาง Strongly Connected ทุก ๆ 2 Vertex มี Path ทั้งไปและกลับ (ทุกโหนดในกราฟมีพาทติดต่อถึงกันหมด)

10 โครงสร้างข้อมูลแบบกราฟ (Graph)
Weakly Connected : มีอย่างน้อย 2 Vertex ที่มี Path ในทิศทางเดียว (บาง โหนดไม่สามารติดต่อไปยังทุกโหนดในกราฟนั้นได้) A ไป G ได้ในทิศทางเดียว

11 Graph Storage Structure
การเก็บข้อมูลในหน่วยความจำสามารถทำได้ 2 แบบ ดังนี้ 1. Adjacency Matrix : ใช้อาร์เรย์เก็บข้อมูล 2. Adjacency List : ใช้ลิงค์ลิสต์เก็บข้อมูล

12 Adjacency Matrix เป็นโครงสร้างที่ประกอบไปด้วยโหนดและเส้นเชื่อมต่อที่บอกถึงเส้นทางของ การเดินทาง หรือความสัมพันธ์ในทิศทางซึ่งสามารถนำมาแทนความสัมพันธ์ นั้นด้วยการกำหนดเมตริกซ์ n x n Mk เป็นเมทริกซ์ของกราฟใด ๆ k คือทางเดินที่มีความยาว k จากโหนดหนึ่งไป อีกโหนดหนึ่ง

13 Adjacency Matrix 0 : ไม่เป็นแอดจาเซนซีกัน 1 : เป็นแอดจาเซนซีกัน

14 Transitive Closure ในกรณีที่เราอยากทราบว่าในกราฟจากโหนดหนึ่งไปยังโหนดหนึ่งมีจำนวน เส้นทางมากเท่าไร เราสามารถหาค่าได้จากการคูณเมทริกซ์

15

16 ตัวอย่าง

17

18 Adjacency List

19 Graph Traversal สามารถทำได้ 2 วิธี 1. แนวลึก : Depth-first Traversal
2. แนวราบ : Breath-first Traversal

20 Depth-first Traversal
เป็นลักษณะการท่องเข้าไปยังโหนดเริ่มต้น แล้วให้โหนดใกล้เคียงเป็นโหนดเริ่มต้น เข้า เยี่ยมโหนด ทำต่อไปจนกระทั่งไม่มีโหนดใกล้เคียงจึงย้อนกลับมายังโหนดก่อนหน้า และเข้าเยี่ยมโหนดอีกด้านด้วยรูปแบบเดียวกันจนครบ เทียบได้กับการท่องเข้าไปในทรี แบบพรีออเดอร์ 1. Push vertex 2. Pop vertex และประมวลผล 3. Push adjacent ทั้งหมดของ Vertex ในข้อ 2 4. ทำซ้ำข้อ 2-3 จนกว่าจะครบทุก Vertex และ Stack ว่าง

21

22 Breath-first Traversal
เป็นการท่องเข้าไปในกราฟโดยเข้าเยี่ยมโหนดตัวแรก และดำเนินการ หาก มีโหนดใกล้เคียงจะดำเนินการกับโหนดที่อยู่ด้านซ้ายก่อน 1. Enqueue vertex 2. Dequeue vertex และประมวลผล 3. Enqueue adjacent ทั้งหมดของ Vertex ในข้อ 2 4. ทำซ้ำข้อ 2-3 จนกว่าจะครบทุก Vertex และ Queue ว่าง

23

24 Network หมายถึง Graph ที่ทุก Edge มี Weight กำกับ โดยความหมายของ Weight นั้นขึ้นอยู่กับการใช้งาน

25 Adjacency Matrix

26 Adjacency List

27 Network Application Minimum Spanning Tree เป็นรูปแบบของการค้นหาโดยกำหนดเรียกใช้โหนด ทุกโหนดและทุกเส้นการเชื่อมต่อ มาลำดับความสำคัญของน้ำหนักโดยเริ่มจาก ค่าน้อยที่สุดในข่ายงาน ทำการเชื่อมต่อคู่โหนดนั้น และดำเนินการต่อไปในค่า น้ำหนักที่ต่อกัน แต่ถ้าโหนดใดมีการเชื่อมต่อคู่โหนดแล้วจะไม่เชื่อมต่ออีก Shortest Path เป็นอัลกอริทึมที่ใช้ในการหาระยะทางที่สั้นที่สุดเช่นเดียวกับ MST แต่จะเปลี่ยนจากการหาเส้นทางจากโหนดแรกไปยังโหนดปลายทางของ ข่ายงาน เป็นโหนดที่กำหนดเป็นโหนดต้นทางไปยังโหนดต่าง ๆ โดยหา ระยะทางสั้นที่สุดแต่ละเส้นทาง

28 Minimum Spanning Tree Spanning Tree หมายถึง Tree ที่ประกอบด้วยทุก Vertex ใน Graph ซึ่ง อาจมีได้มากกว่า 1 แบบ

29 Minimum Spanning Tree Spanning Tree แบบที่ 1 แบบที่ 2

30 Minimum Spanning Tree Minimum Spanning Tree (MST) หมายถึง Spanning Tree ที่มีผลรวมของ Weight ทั้งหมดน้อยที่สุด 1. ใส่ Vertex เริ่มต้นใน Tree 2. เลือก Edge จาก Vertex ใน Tree ไปยัง Vertex ที่ไม่อยู่ใน Tree และมี Weight ต่ำสุด 3. ทำซ้ำข้อ 2 จนกว่าจะครบทุก Vertex

31 ตัวอย่าง จงหา Minimum Spanning Tree

32 Total weight = 13

33 Shortest Path 1. ใส่ Vertex เริ่มต้นใน Tree
Shortest Path หมายถึง Path ที่สั้นที่สุดระหว่าง 2 Vertex หาเส้นทางการส่งข้อมูลจากต้นทางไปปลายทาง โดยให้มีระยะทางสั้นที่สุด 1. ใส่ Vertex เริ่มต้นใน Tree 2. เลือก Edge จาก Vertex ใน Tree ไปยัง Vertex ที่ไม่อยู่ใน Tree และมีผลรวม ของ Weight ต่ำสุด 3. ทำซ้ำข้อ 2 จนกว่าจะครบทุก Vertex

34 Shortest Path จงหา Shortest Path จากโหนด A ไปยังโหนดอื่น ๆ

35

36


ดาวน์โหลด ppt วิชา COSC2202 โครงสร้างข้อมูล (Data Structure)

งานนำเสนอที่คล้ายกัน


Ads by Google