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

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

MAT 231: คณิตศาสตร์ไม่ต่อเนื่อง (6) ทรี-ต้นไม้(Trees)

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


งานนำเสนอเรื่อง: "MAT 231: คณิตศาสตร์ไม่ต่อเนื่อง (6) ทรี-ต้นไม้(Trees)"— ใบสำเนางานนำเสนอ:

1 MAT 231: คณิตศาสตร์ไม่ต่อเนื่อง (6) ทรี-ต้นไม้(Trees)
ดร.ธนา สุขวารี ดร.สุรศักดิ์ มังสิงห์ SPU, Computer Science Dept.

2 วัตถุประสงค์ เพื่อศึกษาหลักการเบื้องต้นเกี่ยวกับทรี(tree)หรือต้นไม้ในทางคอมพิวเตอร์ ประยุกต์ความสัมพันธ์ของข้อมูลในรูปทรีสำหรับกระบวนการทางคอมพิวเตอร์

3 Outline Terminology: Tree application: Tree spanning: Traversal:
Binary search tree(BST) Tree spanning: Minimum spanning tree by Prim’s algorithm Traversal: Pre-order, In-order and Post-order

4 คำศัพท์เกี่ยวข้อง (Terminologies)
โครงสร้างของทรี (structural) ราก(root), ใบ(leaf) , โหนดภายใน(internal node), กิ่ง(branch), ต้นไม้ย่อย(subtree), ความสัมพันธ์(Relationship) พ่อไม้:parent( predecessor ), ลูก:child( successor ), พี่น้อง:sibling ชนิดของทรี(Types) n-ary tree, binary tree คุณสมบัติ(Properties) ระดับ(level) และความสูง(height)ของทรี

5 ทรี(Trees) ทรี กล่าวได้ว่าเป็น กราฟเชื่อมโยงแบบไม่ระบุทิศทาง (connected undirected graph) ซึ่งจะต้องไม่มีวงจรเกิดขึ้น (circuit) ทรีหลายทรีอยู่ที่เดียวกันเรียกว่า ป่า(forest) โครงสร้างของ ทรีประกอบไปด้วย เซตของโหนด(เทียบแล้วคือจุด บนกราฟ) กับเซตของเส้นเชื่อมโยงระหว่างโหนด(เทียบแล้วคือ เส้น บนกราฟ) มีการกำหนดโหนดพิเศษที่เกิดเป็นโหนดแรกบนทรีถูก เรียกว่าโหนดราก (root node)

6 โครงสร้างและองค์ประกอบของทรี ทรี ต่างกับกราฟอย่างไร ?
Tree A B D C E F G H I J K L M Graph A B D C E F G H I J K L M ทรี ต่างกับกราฟอย่างไร ?

7 ตัวอย่างทรี และ ป่า (Tree and Forest Examples)
A Tree: A Forest: Leaves in green, internal nodes in brown.

8 โครงสร้างและองค์ประกอบของทรี
Forest F ={T1, T2, T3} ฐานข้อมูลนักศึกษา CS F T1 ฐานข้อมูลนักศึกษา ICT T3 T2 ฐานข้อมูลนักศึกษา CPE

9 โครงสร้างและองค์ประกอบของทรี
T: root Height A B D C E F G H I J K L M 1 sibling 2 3 4 leaf Leaf of T = {E,J,K,G,H,L,M} A เป็น โหนดพ่อแม่ ของ B,Cและ D B, C, D เป็น โหนดพี่น้อง ที่มี โหนด A เป็นโหนดพ่อแม่

10 ต้นไม้ย่อย หรือ สับทรี (subtree)
A B D C E F G H I J K L M A B D C E F G H I J K L M T3 T1 T2 ต้นไม้ T ประกอบด้วย ต้นไม้ย่อย T1, T2, T3 ต้นไม้ย่อย T1 มีโหนด B เป็น root ต้นไม้ย่อย T2 มีโหนด C เป็น root ต้นไม้ย่อย T3 มีโหนด D เป็น root

11 n-ary trees แต่ละโหนดบนทรี(ยกเว้นโหนดใบ) จะมีจำนวนโหนดลูกไม่เกิน n โหนด ถ้า n ของ n-ary tree มีค่า n= 2 จะเรียน 2-ary tree ซึ่งหมายถึง ไบนารีทรี (binary tree)

12 n-ary tree & binary tree
level-0 B A D C E F G H I T1 4-ary tree K height 1 level-1 2 A B C D E F G binary tree T2 level-2 3

13 ไบนารีทรี (ต้นไม้ทวิภาค)
A B C D E F G Binary tree T N = 2h -1 เมื่อ N แทนจำนวนโหนดทั้งหมดของ ไบนารีทรี ที่มีความสูง h เช่น ไบนารีทรีที่มีความสูงเท่ากับ 3 จะมีจำนวนโหนดมากที่สุดบนไบนารีทรีเท่ากับ 7

14 การประยุกต์ใช้ทรี กับการค้นหา (Binary Search Tree :BST)
T จะเป็น BST ถ้า (1) T ต้องเป็น ไบนารีทรี (2) และทุกโหนดในต้นไม้ย่อยทางซ้าย มีค่าน้อยกว่าทุกโหนดที่เป็นโหนดราก ของต้นไม้ย่อยและทุกโหนดใน ต้นไม้ย่อยทางขวา T: 7 3 12 1 5 9 15 2 8 11

15 Recursive Binary Tree Insert
procedure insert(T: binary tree, x: item) v := root[T] if v = null then begin root[T] := x; return “Done” end else if v = x return “Already present” else if x < v then return insert(leftSubtree[T], x) else {must be x > v} return insert(rightSubtree[T], x)

16 นักศึกษาสร้างต่อให้เสร็จ ?
การสร้าง BST ตัวอย่าง เมื่อกำหนดข้องมูล(ที่นำไปสร้าง BST)โดยมีลำดับการเข้าข้อมูลของต้นไม้ BST ดังนี้ {7,3,12,1,5, 9,15,0,2,8,11 } 7 7 7 7 7 3 12 3 12 3 3 12 1 1 5 นักศึกษาสร้างต่อให้เสร็จ ?

17 การสร้าง BST {7,3,12,1,5,9,15,0,2,8,11 } 7 7 7 3 12 3 12 3 12 1 5 1 5 9 1 5 9 15

18 การสร้าง BST {7,3,12,1,5,9,15,0,2,8,11 } 7 7 7 7 3 12 3 12 3 12 3 12 15 1 5 9 15 1 5 9 15 1 5 9 1 5 9 15 2 2 8 2 8 11

19 Minimum Spanning Tree (MST) by Prim’s Algorithm
C D E F G G: 2 3 4 5 1 6 MST เป็นการการเยี่ยมเดินไปให้ทั่วบนกราฟอย่างไม่ซ้ำกัน โดยมีค่าผลรวมของ weight(ค่ากำกับเส้นทาง) ที่น้อยที่สุด Prim’s algorithm ใช้หลักการ (1) พิจารณาโหนดในกราฟที่มีค่ากำกับเส้นทางที่น้อยที่สุด ณ ขณะนั้นเข้าไปเป็นโหนดในทรี โดยที่โหนดนั้นจะต้องไม่ทำให้เกิดวงจรบนทรี (2) กลับทำขั้นตอน(1) ซ้ำๆจนทุกโหนดบนกราฟไปเป็นโหนดในทรี

20 Minimum Spanning Tree (MST) by Prim’s Algorithm
C D E F G G: 2 3 4 5 1 6 สมมุติว่าเลือกโหนด D เป็นโหนดเริ่มต้นของการทำ MST 5 3 D D 1 1 2 F

21 Minimum Spanning Tree (MST) by Prim’s Algorithm
C D E F G G: 2 3 4 5 1 6 สมมุติว่าเลือกโหนด D เป็นโหนดเริ่มต้นของการทำ MST 5 3 D D 1 2 4 F G 1 F 1

22 Minimum Spanning Tree (MST) by Prim’s Algorithm
C D E F G G: 2 3 4 5 1 6 สมมุติว่าเลือกโหนด D เป็นโหนดเริ่มต้นของการทำ MST 5 3 D 3 E D 1 6 4 F G G 1 F

23 Minimum Spanning Tree (MST) by Prim’s Algorithm
C D E F G G: 2 3 4 5 1 6 สมมุติว่าเลือกโหนด D เป็นโหนดเริ่มต้นของการทำ MST B 2 2 5 D 3 E D E 1 6 4 F G G 1 F

24 Minimum Spanning Tree (MST) by Prim’s Algorithm
C D E F G G: 2 3 4 5 1 6 สมมุติว่าเลือกโหนด D เป็นโหนดเริ่มต้นของการทำ MST 3 A 3 B B 2 5 D 3 E D E 1 6 4 F G G 1 F

25 Minimum Spanning Tree (MST) by Prim’s Algorithm
C D E F G G: 2 3 4 5 1 6 สมมุติว่าเลือกโหนด D เป็นโหนดเริ่มต้นของการทำ MST A A 3 B B 2 2 2 D 3 C E D E 1 6 4 F G G 1 F

26 Minimum Spanning Tree (MST) by Prim’s Algorithm
C D E F G G: 2 3 4 5 1 6 A 3 B 2 2 D 3 C E 1 F G 1 T: D 1 3 F E 1 2 B G 3 A 2 C ค่าผลรวมของค่ากำกับเส้นทางน้อยที่สุด = = 12

27 Tree Traversal (การเดินท่องไปให้ทั่วบนทรี)
สามารถทำได้ 3 วิธี คือ : NLR(Pre-order), LNR(In-order) และ LRN(Post-order) โดยพิจารณาโครงสร้างของทรี ดังนี้ R N L N:แทนโหนดรากของทรี หรือ สับทรี (subtree) L:แทนโหนดลูกทางซ้ายของทรี หรือ สับทรี R:แทนโหนดลูกทางขวาของทรี หรือ สับทรี

28 Tree Traversal: NLR (Pre-order)
1 2 3 4 5 6 7 T: 8 9 NLR: ให้เดิน root ของแต่ subtree ก่อนแล้วจึงเดิน left subtree แล้วตามด้วย right subtree ผลลัพธ์การเดิน: 1,2,4,5,8,9,3,6,7

29 Tree Traversal: LNR(In-order)
1 2 3 4 5 6 7 T: 8 9 LNR: ให้เดิน left subtree ก่อนแล้วจึงเดินกลับไปที่ rootของ subtree แล้วตามด้วย right subtree ผลลัพธ์การเดิน: 4,2,8,5,9,1,6,3,7

30 Tree Traversal: LRN(Post-order)
1 2 3 4 5 6 7 T: 8 9 LRN: ให้เดิน left subtree ก่อนแล้วจึงเดิน right subtree แล้วตามด้วย root ของ subtree ผลลัพธ์การเดิน: 4,8,9,5,2,6,7,3,1

31 Quiz -VI 1.กำหนดทรีทั่วไปมาหนึ่งต้น ให้แสดงการทำ tree traversalทั้งสามแบบ (NLR, LNR และ LRN) 2.กำหนดชุดข้อมูลให้จำนวนหนึ่ง ให้แสดงการนำชุดข้อมูลนี้ไปสร้าง BST (20 นาที)

32 คำถามท้ายบท (1) กำหนดกราฟ Gให้ดังรูป จงใช้ prim’s algorithm เพื่อหาผลรวมของค่ากำกับเส้นทางที่น้อยที่สุดของต้นไม้กระจายทั่วถึง(spanning tree) A B C D E F G G: 2 3 5 4 1 6 9

33 คำถามท้ายบท (2) เมื่อกำหนดทรี Tให้ดังรูป จงหาผลลัพธ์การเดินเยี่ยมให้ทั่วบนทรี(tree traversal) ในแบบ NLR, LNR และ LRN T: 1 2 3 4 5 6 7 8 9 10 11

34 คำถามท้ายบท (3) เมื่อกำหนดทรี Tให้ดังรูป จงหาผลลัพธ์ของคำถามต่อไปนี้
1 3.2 ทรี T จะมีจำนวนโหนดมากที่สุดเท่าใด ถ้าความสูงของทรี T มีค่าเป็น 7 2 3 4 5 6 7 8 9 10 11

35 คำถามท้ายบท (4) จงใช้ข้อมูลที่กำหนดให้ต่อไปนี้ นำไปสร้าง BST: T2 ข้อมูล = {25,30,73,12,9,84,49,11,98,77,33,130} (5) จาก BST ในข้อ 4 ถ้าต้องการทราบว่ามีข้อมูล 53 อยู่ใน T2 หรือไม่ จะต้องทำการเปรียบเทียบทั้งหมดกี่ครั้งถึงจะทราบคำตอบ (6) จาก BST ในข้อ 4 จะสามารถสร้างทรีที่มีความสูงน้อยที่สุด ด้วยค่าความสูงเท่าใด

36 Final Exam 1/53 1.(10) ตรวจสอบสมบัติความสัมพันธ์ 2.(10) การแทนกราฟ
2.(10) การแทนกราฟ 3.(10) isomorphic 4.(10) graph connectivity 5.(15) Dijkstra’s algorithm 6.(10) Prim’s algorithm 7.(5) วงจรตรรกเชิงผสม 8.(10) วงจรตรรกเชิงผสม


ดาวน์โหลด ppt MAT 231: คณิตศาสตร์ไม่ต่อเนื่อง (6) ทรี-ต้นไม้(Trees)

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


Ads by Google