1 / 36

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

MAT 231: คณิตศาสตร์ไม่ต่อเนื่อง (6) ทรี-ต้นไม้ ( Trees ). ดร . ธนา สุขวารี ดร.สุรศักดิ์ มังสิงห์ SPU, Computer Science Dept. วัตถุประสงค์. เพื่อศึกษาหลักการเบื้องต้นเกี่ยวกับทรี(tree)หรือต้นไม้ในทางคอมพิวเตอร์ ประยุกต์ความสัมพันธ์ของข้อมูลในรูปทรีสำหรับกระบวนการทางคอมพิวเตอร์. Outline.

apollo
Télécharger la présentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

  3. Outline • Terminology: • Tree application: • 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. โครงสร้างและองค์ประกอบของทรีโครงสร้างและองค์ประกอบของทรี L M B D C E F G H I J K L K M A B D C E F G H I J A Tree Graph ทรี ต่างกับกราฟอย่างไร ?

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

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

  9. โครงสร้างและองค์ประกอบของทรีโครงสร้างและองค์ประกอบของทรี T: root Height B I D C F G E M J K L A H 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) T: G K J I H C F E M D A L B A M L K C I H J F E D B G T3 T2 T1 ต้นไม้ 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. T1 D C F H G H A E A C D E F B G B height T2 I binary tree K 4-ary tree n-ary tree & binary tree level-0 1 level-1 2 level-2 3

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

  14. การประยุกต์ใช้ทรี กับการค้นหา(Binary Search Tree :BST) T: T จะเป็น BST ถ้า (1) Tต้องเป็น ไบนารีทรี (2) และทุกโหนดในต้นไม้ย่อยทางซ้าย มีค่าน้อยกว่าทุกโหนดที่เป็นโหนดราก ของต้นไม้ย่อยและทุกโหนดใน ต้นไม้ย่อยทางขวา 7 3 12 1 5 9 15 0 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” endelse if v = xreturn “Already present”else if x < vthenreturn 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 9 1 5 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 15 9 9 5 5 1 1 15 15 9 9 5 5 1 1 8 0 2 2 0 8 0 2 11 0

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  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) การแทนกราฟ • 3.(10) isomorphic • 4.(10) graph connectivity • 5.(15) Dijkstra’s algorithm • 6.(10) Prim’s algorithm • 7.(5) วงจรตรรกเชิงผสม • 8.(10) วงจรตรรกเชิงผสม

More Related