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

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
โปรแกรมฝึกหัด การเลื่อนและคลิกเมาส์
Advertisements

โครงสร้างข้อมูลทรีและไบนารีทรี (Tree and Binary Tree)
วิชา องค์ประกอบศิลป์สำหรับคอมพิวเตอร์ รหัส
สาขาวิชาคอมพิวเตอร์และเทคโนโลยี อ.เลาขวัญ งามประสิทธิ์
พลังงานในกระบวนการทางความร้อน : กฎข้อที่หนึ่งของอุณหพลศาสตร์
การซ้อนทับกัน และคลื่นนิ่ง
Chapter 2 Root of Nonlinear Functions
DSP 6 The Fast Fourier Transform (FFT) การแปลงฟูริเยร์แบบเร็ว
1.7 ระเบียบวิธีทางสถิติ 1. การเก็บรวบรวมข้อมูล (Data Collection)
บทที่ 12 การวิเคราะห์การถดถอย
ต้นไม้และนิยามที่เกี่ยวข้อง
ระบบสารสนเทศแผนงานบำรุงทาง
Group 1 Proundly Present
การเรียงลำดับและการค้นหาแบบง่าย
Decision Tree.
AVL Tree.
Image Processing & Computer Vision
Use Case Diagram.
ระบบอนุภาค.
การออกแบบโปรแกรมอย่างมีโครงสร้าง Structured Design
MAT 231: คณิตศาสตร์ไม่ต่อเนื่อง (4) ความสัมพันธ์ (Relations)
ดร.สุรศักดิ์ มังสิงห์ SPU, Computer Science Dept.
การหาคุณลักษณะพิเศษของตัวอักษร
Second-Order Circuits
จำนวนทั้งหมด ( Whole Numbers )
วิทยาการคอมพิวเตอร์ 1 เรื่องคัดเฉพาะทาง
Kampol chanchoengpan it สถาปัตยกรรมคอมพิวเตอร์ Arithmetic and Logic Unit 1.
ทำการตั้งเบิกเพิ่ม แบบฟอร์ม GFMIS.ขบ.02 เพื่อชดใช้ใบสำคัญ
แนวทางการปฏิบัติโครงการจูงมือ น้องน้อยบนดอยสูง 1.
โครงสร้างข้อมูลแบบคิว
คุณสมบัติการหารลงตัว
ค33211 คณิตศาสตร์สำหรับ คอมพิวเตอร์ 5
ต้นไม้กระจายทั่วกราฟ
ณัฏฐวุฒิ เอี่ยมอินทร์
สัปดาห์ที่ 7 การแปลงลาปลาซ The Laplace Transform.
บทที่ 3 การวิเคราะห์ Analysis.
สถาปัตยกรรมคอมพิวเตอร์ (Computer Architecture)
การแจกแจงปกติ.
วิชาคอมพิวเตอร์กราฟิก
โครงสร้างข้อมูลทรีและไบนารีทรี (Tree and Binary Tree)
วิชา COSC2202 โครงสร้างข้อมูล (Data Structure)
วิชา COSC2202 โครงสร้างข้อมูล (Data Structure)
ค21201 คณิตศาสตร์เพิ่มเติม 1
F M B N สมบัติของจำนวนนับ ตัวคูณร่วมน้อย (ค.ร.น.).
สรุปสถิติ ค่ากลาง ค่าเฉลี่ยเลขคณิต เรียงข้อมูล ตำแหน่งกลาง มัธยฐาน
ความหมายของวิทยาศาสตร์
เรื่องการประยุกต์ของสมการเชิงเส้นตัวแปรเดียว
หน่วยการเรียนรู้ที่ 7 ความรู้เบื้องต้นเกี่ยวกับจำนวนจริง
วิวัฒน์ ชินนาทศิริกุล
School of Information Communication Technology,
ต้นไม้ Tree (2) ผู้สอน อาจารย์ ยืนยง กันทะเนตร
บทที่ 9 ไทร์ (Tries).
School of Information Communication Technology,
Lecture9 Tree อ. วรวิทย์ วีระพันธุ์ เรียบเรียงโดย อ
เรื่องการประยุกต์ของสมการเชิงเส้นตัวแปรเดียว
แบบฝึกหัด จงหาคำตอบที่ดีที่สุด หรือหาค่ากำไรสูงสุด จาก
เรื่องการประยุกต์ของสมการเชิงเส้นตัวแปรเดียว
การค้นในปริภูมิสถานะ
หน่วยการเรียนรู้ที่ 7 ความรู้เบื้องต้นเกี่ยวกับจำนวนจริง
วิธีเรียงสับเปลี่ยนและวิธีจัดหมู่
กราฟเบื้องต้น.
โครงสร้างข้อมูลแบบ สแตก (stack)
ต้นไม้ Tree [3] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
การค้นในปริภูมิสถานะ
กราฟเบื้องต้น.
Week 13 Basic Algorithm 2 (Searching)
ต้นไม้ Tree [1] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
ค32213 คณิตศาสตร์สำหรับคอมพิวเตอร์ โรงเรียนปลวกแดงพิทยาคม
ใบสำเนางานนำเสนอ:

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

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

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

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

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

โครงสร้างและองค์ประกอบของทรี ทรี ต่างกับกราฟอย่างไร ? 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 ทรี ต่างกับกราฟอย่างไร ?

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

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

โครงสร้างและองค์ประกอบของทรี 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 เป็นโหนดพ่อแม่

ต้นไม้ย่อย หรือ สับทรี (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

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

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

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

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

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)

นักศึกษาสร้างต่อให้เสร็จ ? การสร้าง 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 นักศึกษาสร้างต่อให้เสร็จ ?

การสร้าง 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

การสร้าง 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

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) ซ้ำๆจนทุกโหนดบนกราฟไปเป็นโหนดในทรี

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

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

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

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

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

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

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 ค่าผลรวมของค่ากำกับเส้นทางน้อยที่สุด = 1+1+3+2+3+2 = 12

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

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

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

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

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

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

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

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

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

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) วงจรตรรกเชิงผสม