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

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

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

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


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

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

2 Graph

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

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

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

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

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

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

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

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

11 a bcd feg กราฟ 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 ระดับขั้นของกราฟ (Degree) กราฟไม่ระบุทิศทาง

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

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

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

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

16 X Y Z W X Y Z W กราฟ G เมทริกซ์ประชิด A = XY WZ กำหนดให้ v1=X, v2=Y, v3=Z, v4=W A 2 = A 3 = A 4 =

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

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

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

20

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

22 ก ารท่องเข้าไปในกราฟ Traverse Graph Depth-First Traversal XH G Y P A E MJ A X H G P E G E G Y M G M G J GG Depth-first traversal : A – X – H – P – E – Y – M – J - G Stack contents

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

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

25 ก ารท่องเข้าไปในกราฟ Traverse Graph Breadth-First Traversal XH G Y P A E MJ A X H G P H E PE Y M J YJ Breadth-first traversal : A – X – G – H – P – E – M – Y - J Queue contents

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

27 Shortest Path Algorithms v2 v3v5v4 v6 v1 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

28 Unweighted Shortest Path: Dijkstra’s Algorithm v2 v3v5v4 v6 v1 v7 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.

29 Unweighted Shortest Path: v2 v3v5v4 v6 v1 v7 vknowndvpv V1 0  0 V2 0  0 V3 000 V4 0  0 V5 0  0 V6 0  0 v7 0  0 Initial configuration Assume that the starting vertex is v3

30 Unweighted Shortest Path: v2 v3v5v4 v6 v1 v7 vInitial state knowndvpv V1 0  0 V2 0  0 V3 000 V4 0  0 V5 0  0 V6 0  0 V7 0  0 Q: V3 V3 dequeued knowndvpv 01V3 0   0 0   0 V1, V6 V1 dequeued knowndvpv 11V3 02V  0 01V3 0  0 V6, V2, V4 V6 dequeued knowndvpv 11V3 02V  0 11V3 0  0 V2, V4

31 Unweighted Shortest Path: v2 v3v5v4 v6 v1 v7 vV2 dequeued knowndvpv V1 11V3 V2 12V1 V3 100 V4 02V1 V5 03V2 V6 11V3 V7 0  0 Q: V4, V5 V4 dequeued knowndvpv 11V3 12V V2 11V3 03V4 V5, V7 V5 dequeued knowndvpv 11V3 12V V2 11V3 03V4 V7 V7 dequeued knowndvpv 11V3 12V V2 11V3 13V4 empty

32 Unweighted Shortest Path: v2 v3v5v4 v6 v1 v7 v2 v3v5v4 v6 v1 v7

33 Weighted Shortest Path: Dijkstra’s Algorithm v2 v3v5v4 v6 v1 v 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.

34 Weighted Shortest Path: Dijkstra’s Algorithm v2 v3v5v4 v6 v1 v vknowndvpv V1 000 V2 0  0 V3 0  0 V4 0  0 V5 0  0 V6 0  0 v7 0  0 Initial configuration vknowndvpv V1100 V202V1 V30  0 V401V1 V50  0 V60  0 v70  0 After v1 is declared known vknowndvpv V1100 V202V1 V303V4 11V1 V503V4 V609V4 v705V4 After v4 is declared known

35 Weighted Shortest Path: Dijkstra’s Algorithm v2 v3v5v4 v6 v1 v vknowndvpv V1100 V212V1 V303V4 11V1 V503V4 V609V4 v705V4 vknowndvpv V1100 V212V1 V313V4 11V1 V513V4 V608V3 v705V4 After v5&v3 are declared known vknowndvpv V1100 V212V1 V313V4 11V1 V513V4 V606V7 v715V4 After v7 is declared knownAfter v2 is declared known


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

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


Ads by Google