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

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

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

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


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

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

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

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

6 6 A BDC EFG H I JK LM โครงสร้างและองค์ประกอบของท รี Tree A BDC EFG H I JK LM Graph ทรี ต่างกับกราฟ อย่างไร ?

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

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

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

10 10 ต้นไม้ย่อย หรือ สับทรี (subtree) A BDC EFG H I JK LM A BDC EFG H I JK LM T: ต้นไม้ T ประกอบด้วย ต้นไม้ย่อย T1, T2, T3 ต้นไม้ย่อย T1 มีโหนด B เป็น root ต้นไม้ย่อย T2 มีโหนด C เป็น root ต้นไม้ย่อย T3 มีโหนด D เป็น root T1 T2 T3

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

12 12 B A DC E F GHHI T1T1 4-ary tree K A BC DEF G binary tree T2T2 n-ary tree & binary tree level-0 level-1 level-2 height 1 2 3

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

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

15 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} return insert(rightSubtree[T], x)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

35 (4) จงใช้ข้อมูลที่กำหนดให้ต่อไปนี้ นำไปสร้าง BST: T2 ข้อมูล = {25,30,73,12,9,84,49,11,98,77,33,130} 35 คำถามท้ายบท (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) วงจรตรรกเชิงผสม 36


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

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


Ads by Google