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

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

รายวิชา ง40206 โครงสร้างข้อมูลและขั้นตอนวิธี

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


งานนำเสนอเรื่อง: "รายวิชา ง40206 โครงสร้างข้อมูลและขั้นตอนวิธี"— ใบสำเนางานนำเสนอ:

1 รายวิชา ง40206 โครงสร้างข้อมูลและขั้นตอนวิธี
โรงเรียนมหิดลวิทยานุสรณ์

2 Graph

3 กราฟเป็นโครงสร้างข้อมูลชนิดหนึ่งประกอบด้วย 2 ส่วน คือ
เซตของสมาชิกที่เรียกว่าบัพ (node) เซตของเส้นเชื่อม (edge) นำมาใช้แก้ปัญหาในการทำงานหลายด้าน เช่น จำลองเครือข่ายคอมพิวเตอร์เพื่อหาค่าใช้จ่ายที่น้อยที่สุดในการเดินสายสัญญาณ จำลองเส้นทางการเดินทางเพื่อหาระยะทางที่สั้นที่สุด การวางสายโทรศัพท์

4 วิทยาลัยดุริยางค์ฯ ตึกอินเตอร์ฯ 400 m ถ้าต้องการติดตั้งสายสัญญาณ Fiber optic เพื่อเชื่อมเครือข่ายคอมพิวเตอร์ทั้ง 5 อาคารเข้าด้วยกัน จะต้องเชื่อมต่ออย่างไรจึงจะใช้งบประมาณน้อยที่สุด และใช้งบประมาณเท่าไร (กำหนดให้สาย Fiber optic ราคาเมตรละ 100 บ.) 800 m 350 m 300 m คณะวิทยาศาสตร์ 400 m ตึกอธิการฯ 700 m 800 m สัตว์ทดลอง

5 A B D C E วิทยาลัยดุริยางค์ฯ ตึกอินเตอร์ฯ 400 400 m 800 m 350 m 300 m
คณะวิทยาศาสตร์ 400 m ตึกอธิการฯ 700 m 800 m 400 D C 700 สัตว์ทดลอง 800 E

6 ไม่ระบุทิศทาง ระบุทิศทาง เชียงใหม่ อยุธยา ลำปาง ปทุมธานี กรุงเทพฯ
สุราษฎร์ธานี ภูเก็ต กรุงเทพฯ ชลบุรี เพชรบุรี ปทุมธานี อยุธยา ไม่ระบุทิศทาง ระบุทิศทาง

7 กราฟไม่ระบุทิศทาง กราฟ G กำหนดให้ กราฟ G เป็นกราฟไม่ระบุทิศทาง
B A E G D C F กราฟ G กำหนดให้ กราฟ G เป็นกราฟไม่ระบุทิศทาง ประกอบด้วย เซตของ node {A, B, C, D, E, F, G} และ เซตของ edge { (A,B), (A,D), (A,C), (C,D), (C,F), (E,G), (A,A) }

8 กราฟระบุทิศทาง กราฟ H กำหนดให้ กราฟ H เป็นกราฟระบุทิศทาง
B A D E G C กราฟ H F กำหนดให้ กราฟ H เป็นกราฟระบุทิศทาง ประกอบด้วย เซตของ node {A, B, C, D, E, F, G} และ เซตของ edge {(A,A), (A,B), (A,C), (A,D), (C,D), (F,C), (E,G)}

9 ระดับขั้นของกราฟ (Degree)
กราฟไม่ระบุทิศทาง b c d a f e g กราฟ G ในกราฟ G : deg(a) = 2, deg(b) = deg(c) = deg(f) = 4, deg(d) = 1, deg(e) = 3 และ deg(g) = 0

10 ระดับขั้นของกราฟ (Degree)
กราฟไม่ระบุทิศทาง b c d a f e g กราฟ X ในกราฟ X : deg(a) = 2, deg(b) = deg(c) = 4, deg(d) = deg(f) = deg(e) = 3 และ deg(g) = 1

11 ระดับขั้นของกราฟ (Degree)
กราฟไม่ระบุทิศทาง b c d a f e g กราฟ Y ในกราฟ Y : deg(a) = 4 deg(d) = 2 deg(g) = 1 deg(b) = 4 deg(e) = 3 deg(c) = 2 deg(f) = 4 จงหา degree ของ node แต่ละ node ในกราฟ Y

12 ระดับขั้นของกราฟ (Degree)
กราฟระบุทิศทาง ระดับขั้นใน deg-(v) คือจำนวนของเส้นเชื่อมที่ชี้เข้าหา node v ระดับขั้นนอก deg+(v) คือจำนวนของเส้นเชื่อมที่ออกจาก node v กราฟ G a b c e d f ในกราฟ G : deg-(a) = deg-(b) = 2 deg-(c) = 3 deg-(d) = 2 deg-(e) = 2 deg-(f) = 0 deg+(a) = 3 deg+(b) = 1 deg+(c) = 2 deg+(d) = 2 deg+(e) = 3 deg+(f) = 0 ดังนั้น : deg(a) = deg(b) = 3 deg(c) = deg(d) = 4 deg(e) = deg(f) = 0

13 ระดับขั้นของกราฟ (Degree)
กราฟระบุทิศทาง deg-(v) คือจำนวนของเส้นเชื่อมที่ชี้เข้าหา node v deg+(v) คือจำนวนของเส้นเชื่อมที่ออกจาก node v a b c e d f กราฟ G จงหาระดับขั้น (degree) ของ node แต่ละ node ในกราฟ G (หาระดับขั้นในและนอกด้วย) ในกราฟ G : deg-(a) = deg-(b) = 3 deg-(c) = 1 deg-(d) = 1 deg-(e) = 0 deg-(f) = 2 deg+(a) = 2 deg+(b) = 1 deg+(c) = 1 deg+(d) = 1 deg+(e) = 3 deg+(f) = 2 ดังนั้น : deg(a) = deg(b) = 4 deg(c) = deg(d) = 2 deg(e) = deg(f) = 4

14 การแทนกราฟด้วย Adjacency Matrix
6 2 3 กราฟ H 4 5 1 1 2 3 4 5 6 เมทริกซ์ประชิด A =

15 X Y W Z กราฟG เมทริกซ์ประชิด A = X Y Z W X Y 0 0 0 1 Z 1 0 1 1 W
เมทริกซ์ประชิด A = กำหนดให้ v1=X, v2=Y, v3=Z, v4=W

16 X Y W Z กราฟG A2 = A3 = เมทริกซ์ประชิด A = A4 = 0 0 1 0 1 0 1 2
X Y A2 = W Z A3 = X Y Z W X Y Z W เมทริกซ์ประชิด A = A4 = กำหนดให้ v1=X, v2=Y, v3=Z, v4=W

17 X Y W Z กราฟG วิถีความยาว 2 จาก Y ถึง W มี 2 วิถี ดังนี้ A2 = Y-X-W
Y-Z-W Y-X-W วิถีความยาว 2 จาก Y ถึง W มี 2 วิถี ดังนี้ กราฟG X Y A2 = W Z A3 = X Y Z W X Y Z W เมทริกซ์ประชิด A = A4 = กำหนดให้ v1=X, v2=Y, v3=Z, v4=W

18 X Y W Z กราฟG วิถีความยาว 3 จาก Z ถึง Z มี 1 วิถี ดังนี้ A2 = Z-X-W-Z
มี 1 วิถี ดังนี้ X Y A2 = W Z A3 = X Y Z W X Y Z W เมทริกซ์ประชิด A = A4 = กำหนดให้ v1=X, v2=Y, v3=Z, v4=W

19 การแทนกราฟด้วย Adjacency List

20 การแทนกราฟด้วย Adjacency List

21 การท่องเข้าไปในกราฟ Traverse Graph
Depth-First Traversal A เป็นการท่องเข้าไปในกราฟ โดยจะโปรเซสในทุกๆโหนดในแนวดิ่งตามการสืบทองของโหนดนั้นก่อน แล้วจึงค่อยเคลื่อนไปยังโหนดประชิดที่อยู่ข้างเคียงต่อไป C B D E F G H I Depth-first traversal : A – B – E – F – C – D – G – H - I

22 การท่องเข้าไปในกราฟ Traverse Graph
1 Depth-First Traversal 6 3 2 Depth-first traversal : A – X – H – P – E – Y – M – J - G X H Y 5 E 8 9 M J G P 7 4 A X H G P E G E G Y M G M G J G G Stack contents

23 การท่องเข้าไปในกราฟ Traverse Graph
Depth-First Traversal Push โหนดแรกลงใน stack เมื่ออยู่ในลูป จะดำเนินการ Pop stack เพื่อโปสเซสโหนดนั้น จากนั้น push โหนดประชิดทุกตัวลงใน stack ทำตามข้อ 2 จนกระทั่ง stack ว่าง

24 การท่องเข้าไปในกราฟ Traverse Graph
Breadth-First Traversal A เป็นการท่องเข้าไปในกราฟแบบแนวกว้าง โดยจะทำการโปรเซสโหนดประชิดทุกตัวก่อนที่จะลงสู่ระดับถัดไป C B D E F G H I Breadth-first traversal : A – B – C – D – E – F – G – H - I

25 การท่องเข้าไปในกราฟ Traverse Graph
1 Breadth-First Traversal 4 8 2 Breadth-first traversal : A – X – G – H – P – E – M – Y - J X H Y 6 E 9 5 3 M J G P 7 A X H G P H E P E Y M J Y J Queue contents

26 การท่องเข้าไปในกราฟ Traverse Graph
Breadth-First Traversal Enqueue โหนดแรก ลงในคิว เมื่ออยู่ในลูป จะทำการ Dequeue คิวนั้นออกไปและทำการโปสเซสส่วนหน้าของคิว หลังจากที่ได้โปรเซสโหนดนั้นแล้ว ก็จะดำเนินการนำโหนดประชิดตัวถัดไปมาไว้ในคิว ทำซ้ำจนกระทั่งคิวว่าง

27 Shortest Path Algorithms
2 v1 v2 10 4 1 3 2 2 v3 v4 v5 8 4 5 6 1 v6 v7 The shortest weighted path from v1 to v6 has a cost of 6 and goes from v1 to v4 to v7 to v6. The shortest unweighted path between these vertices is 2.

28 Unweighted Shortest Path: Dijkstra’s Algorithm
v1 v2 We are only interested in the number of edges contained on the path, so there are no weight on the edges. The strategy for searching a graph is known as breadth-first search. The vertices closest to the start are evaluated first, and the most distant vertices are evaluated last. v3 v4 v5 v6 v7

29 Unweighted Shortest Path:
Assume that the starting vertex is v3 v2 v3 v5 v4 v6 v1 v7 v known dv pv V1 V2 V3 V4 V5 V6 v7 Initial configuration

30 Unweighted Shortest Path:
v2 v3 v5 v4 v6 v1 v7 Unweighted Shortest Path: v Initial state known dv pv V1 V2 V3 V4 V5 V6 V7 Q: V3 dequeued known dv pv 1 V3 V1, V6 V1 dequeued known dv pv 1 V3 2 V1 V6, V2, V4 V6 dequeued known dv pv 1 V3 2 V1 V2, V4

31 Unweighted Shortest Path:
v2 v3 v5 v4 v6 v1 v7 Unweighted Shortest Path: v V2 dequeued known dv pv V1 1 V3 V2 2 V4 V5 3 V6 V7 Q: V4, V5 V4 dequeued known dv pv 1 V3 2 V1 3 V2 V4 V5, V7 V5 dequeued known dv pv 1 V3 2 V1 3 V2 V4 V7 V7 dequeued known dv pv 1 V3 2 V1 3 V2 V4 empty

32 Unweighted Shortest Path:
v2 v3 v5 v4 v6 v1 v7 v1 v2 v3 v4 v5 v6 v7

33 Weighted Shortest Path: Dijkstra’s Algorithm
2 v1 v2 This thirty-year-old solution is an example of a greedy algorithm. Greedy algorithms generally solve a problem in stages by doing what appears to be the best thing at each stage. 10 4 1 3 2 2 v3 v4 v5 8 4 5 6 1 v6 v7

34 Weighted Shortest Path: Dijkstra’s Algorithm
v2 v3 v5 v4 v6 v1 v7 2 1 3 10 4 6 8 5 Weighted Shortest Path: Dijkstra’s Algorithm v known dv pv V1 V2 V3 V4 V5 V6 v7 v known dv pv V1 1 V2 2 V3 V4 V5 V6 v7 v known dv pv V1 1 V2 2 V3 3 V4 V5 V6 9 v7 5 Initial configuration After v1 is declared known After v4 is declared known

35 Weighted Shortest Path: Dijkstra’s Algorithm
v2 v3 v5 v4 v6 v1 v7 2 1 3 10 4 6 8 5 Weighted Shortest Path: Dijkstra’s Algorithm After v5&v3 are declared known v known dv pv V1 1 V2 2 V3 3 V4 V5 V6 9 v7 5 v known dv pv V1 1 V2 2 V3 3 V4 V5 V6 8 v7 5 v known dv pv V1 1 V2 2 V3 3 V4 V5 V6 6 V7 v7 5 After v2 is declared known After v7 is declared known


ดาวน์โหลด ppt รายวิชา ง40206 โครงสร้างข้อมูลและขั้นตอนวิธี

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


Ads by Google