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

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

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

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


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

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

2 โครงสร้างข้อมูลแบบกราฟ (Graph)  กราฟ (Graph) เป็นโครงสร้างข้อมูลแบบไม่ใช่เชิง เส้นอีกชนิดหนึ่ง กราฟเป็นโครงสร้างข้อมูลที่มีการ นำไปใช้ในงานที่เกี่ยวข้องกับการแก้ปัญหาที่ ค่อนข้างซับซ้อน เช่น การวางข่ายงานคอมพิวเตอร์ การวิเคราะห์เส้นทางวิกฤติ และปัญหาเส้นทางที่สั้น ที่สุด เป็นต้น

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

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

5  แอดจาเซนท์โหนด (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  M k เป็นเมทริกซ์ของกราฟใด ๆ 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  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  โครงสร้างข้อมูลแบบ กราฟ (Graph) วิชา COSC2202 โครงสร้างข้อมูล (Data Structure)

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


Ads by Google