วิชา COSC2202 โครงสร้างข้อมูล (Data Structure)

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
Another one of Data Structure
Advertisements

รายวิชา ง40206 โครงสร้างข้อมูลและขั้นตอนวิธี
โครงสร้างข้อมูลสแตก มีลักษณะเป็นรายการในแนวเชิงเส้น(Linear List)รูปแบบหนึ่ง และมีข้อกำหนดให้ชุดปฏิบัติการสามารถเพิ่มและลบรายการเพียงด้านเดียว ซึ่งเป็นด้านบนสุดของสแตก(Top.
แนวเดินและกราฟออยเลอร์
โครงสร้างข้อมูลทรีและไบนารีทรี (Tree and Binary Tree)
ทฤษฎีกราฟเบื้องต้น อ.สุรัชน์ อินทสังข์ ภาควิชาหลักสูตรและการสอน
Lists Data Structure LAUKHWAN NGAMPRASIT LAUKHWAN NGAMPRASIT.
โครงสร้างข้อมูลสแตก มีลักษณะเป็นรายการในแนวเชิงเส้น(Linear List)รูปแบบหนึ่ง และมีข้อกำหนดให้ชุดปฏิบัติการสามารถเพิ่มและลบรายการเพียงด้านเดียว ซึ่งเป็นด้านบนสุดของสแตก(Top.
ต้นไม้และนิยามที่เกี่ยวข้อง
การเขียนผังงาน.
Register Allocation and Graph Coloring
Ordering and Liveness Analysis ลำดับและการวิเคราะห์บอกความ เป็นอยู่หรือความตาย.
สมชาย ประสิทธิ์จูตระกูล
Data structure & Algorithms
การแก้ปัญหาด้วยคอมพิวเตอร์
แผนผัง FlowChart Flow Chart คือ ขั้นตอนที่นำผลที่ได้จากการกำหนดและการ วิเคราะห์ปัญหามาเขียนเป็นแผนภาพหรือสัญลักษณ์ ประโยชน์ของผังงาน -ช่วยลำดับขั้นตอนการทำงานของโปรแกรม.
หน่วยที่ 2 วิธีการออกแบบโปรแกรม
Matrix Structure In Graph Theory.
การประยุกต์ใช้กราฟในชีวิตประจำวัน
Graph’s algorithm นำเสนอโดย นายปองสิทธิ์ โพธิคุณ ม.6/7 เลขที่ 17
กราฟถ่วงน้ำหนัก เสนอต่อ อ.ธรรมนูญ ผุยรอด จัดทำโดย
ระบบเครือข่ายคอมพิวเตอร์
คิวQueue Circular Queue.
น.ส.กฤติกา วงศาวณิช นายศุภชัย ตั้งบุญญะศิริ
ขั้นตอนวิธี (Algorithm)
Asst.Prof. Dr.Surasak Mungsing
MAT 231: คณิตศาสตร์ไม่ต่อเนื่อง (4) ความสัมพันธ์ (Relations)
MAT 231: คณิตศาสตร์ไม่ต่อเนื่อง (6) ทรี-ต้นไม้(Trees)
AUTONOMOUS SYSTEMS (AS)
DATA STRUCTURE IN C กราฟ (Graph).
โครงสร้างข้อมูลแบบคิว
ค32213 คณิตศาสตร์สำหรับคอมพิวเตอร์ 3 โรงเรียนปลวกแดงพิทยาคม
การเขียนผังงาน.
ค31212 คณิตศาสตร์สำหรับ คอมพิวเตอร์ 2
ต้นไม้กระจายทั่วกราฟ
วิธีสายงานวิกฤต Critical Path Method แบบ Activity on Arrow.
Flow Chart INT1103 Computer Programming
โครงสร้างข้อมูลทรีและไบนารีทรี (Tree and Binary Tree)
Present proposal project เรื่อง Thailand shortest path
Dijkstra Shortest Path Algorithm
ลิงค์ลิสต์ (Linked List)
วิชา COSC2202 โครงสร้างข้อมูล (Data Structure)
วิชา COSC2202 โครงสร้างข้อมูล (Data Structure)
หลักการเขียนโปรแกรม ( )
โครงสร้างข้อมูลแบบกองซ้อน (Stack)
หลักการแก้ปัญหา
Shortest-Path Algorithms
School of Information Communication Technology,
adversarial Search Techniques
โครงสร้างข้อมูล Queues
หลักการเขียนโปรแกรม ( )
เรื่อง Token Bus LAN จัดทำโดย นายปรีชา สุขมาก นายจักรกริน ย่องนุ่น เสนอ นาย จังหวัด ศรีสลับ.
รูปแบบการเชื่อมโยงเครือข่าย
เครือข่ายคอมพิวเตอร์
รูปร่างเครือข่ายคอมพิวเตอร์ จัดทำโดย เด็กชาย คณิศร อ้อยกลาง เลขที่ 36 ม.2/5 เสนอ อ.สายฝน เอกกันทา โรงเรียนจักรคำคณาทร จ.ลำพูน.
การกำหนดโครงการ (Project Scheduling: PERT / CPM)
กราฟเบื้องต้น.
โรงเรียนวังไกลกังวล หัวหิน
stack #1 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
การเขียนผังงาน ผังงาน (Flowchart)
โครงสร้างข้อมูลแบบ สแตก (stack)
กราฟเบื้องต้น.
ค32213 คณิตศาสตร์สำหรับคอมพิวเตอร์ โรงเรียนปลวกแดงพิทยาคม
Computer Program คือ ขั้นตอนการทำงาน ของคอมพิวเตอร์
ค31212 คณิตศาสตร์สำหรับ คอมพิวเตอร์ 2
การหาเส้นทางที่สั้นที่สุด
ต้นไม้ Tree [1] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
แบบ Star จะเป็นลักษณะของการต่อ เครือข่ายที่ Work station แต่ละตัวต่อรวมเข้าสู่ ศูนย์กลางสวิตซ์ เพื่อสลับตำแหน่งของเส้นทาง ของข้อมูลใด ๆ ในระบบ ดังนั้นใน.
Graph Lecturer : Kritawan Siriboon, Boontee Kruatrachue Room no. 913
Graph Lecturer : Kritawan Siriboon, Boontee Kruatrachue Room no. 913
ใบสำเนางานนำเสนอ:

วิชา COSC2202 โครงสร้างข้อมูล (Data Structure) โครงสร้างข้อมูลแบบ กราฟ (Graph)

โครงสร้างข้อมูลแบบกราฟ (Graph)

โครงสร้างข้อมูลแบบกราฟ (Graph) ศัพท์ที่เกี่ยวข้อง 1. เวอร์เทก (Vertex) หมายถึง โหนด 2. เอดจ (Edge) หมายถึง เส้นเชื่อมของโหนด 3. ดีกรี (Degree) หมายถึง จำนวนเส้นเข้าและออก ของโหนดแต่ละโหนด 4. แอดจาเซนท์โหนด (Adjacent Node) หมายถึง โหนดที่มีการเชื่อมโยงกัน Graph แบ่งเป็น 1. Directed Graph (Digraph) (Arc) 2. Undirected Graph

โครงสร้างข้อมูลแบบกราฟ (Graph)

โครงสร้างข้อมูลแบบกราฟ (Graph) แอดจาเซนท์โหนด (Adjacent Node) A กับ B D กับ F ใช่ ไม่ใช่

โครงสร้างข้อมูลแบบกราฟ (Graph) เส้นทาง (Path) ใช้เรียกลำดับของ เวอร์เทก (Vertex) ที่เชื่อมต่อกันจากจุดหนึ่งไปยังอีกจุดหนึ่ง (A,B,C,D,E) (A,B,E,F)

โครงสร้างข้อมูลแบบกราฟ (Graph) Cycle Path ที่ประกอบด้วยอย่างน้อย 3 Vertex และมีจุดเริ่มต้นและสิ้นสุดเดียวกัน เช่น (B,C,E,B) (B,C,D,E,B)

โครงสร้างข้อมูลแบบกราฟ (Graph) ลูป (Loop) มีเพียง Arc เดียวและมีจุดเริ่มต้นและสิ้นสุดเดียวกัน

โครงสร้างข้อมูลแบบกราฟ (Graph) Directed Graph : มีการกำหนดทิศทาง Strongly Connected ทุก ๆ 2 Vertex มี Path ทั้งไปและกลับ (ทุกโหนดในกราฟมีพาทติดต่อถึงกันหมด)

โครงสร้างข้อมูลแบบกราฟ (Graph) Weakly Connected : มีอย่างน้อย 2 Vertex ที่มี Path ในทิศทางเดียว (บาง โหนดไม่สามารติดต่อไปยังทุกโหนดในกราฟนั้นได้) A ไป G ได้ในทิศทางเดียว

Graph Storage Structure การเก็บข้อมูลในหน่วยความจำสามารถทำได้ 2 แบบ ดังนี้ 1. Adjacency Matrix : ใช้อาร์เรย์เก็บข้อมูล 2. Adjacency List : ใช้ลิงค์ลิสต์เก็บข้อมูล

Adjacency Matrix เป็นโครงสร้างที่ประกอบไปด้วยโหนดและเส้นเชื่อมต่อที่บอกถึงเส้นทางของ การเดินทาง หรือความสัมพันธ์ในทิศทางซึ่งสามารถนำมาแทนความสัมพันธ์ นั้นด้วยการกำหนดเมตริกซ์ n x n Mk เป็นเมทริกซ์ของกราฟใด ๆ k คือทางเดินที่มีความยาว k จากโหนดหนึ่งไป อีกโหนดหนึ่ง

Adjacency Matrix 0 : ไม่เป็นแอดจาเซนซีกัน 1 : เป็นแอดจาเซนซีกัน

Transitive Closure ในกรณีที่เราอยากทราบว่าในกราฟจากโหนดหนึ่งไปยังโหนดหนึ่งมีจำนวน เส้นทางมากเท่าไร เราสามารถหาค่าได้จากการคูณเมทริกซ์

ตัวอย่าง

Adjacency List

Graph Traversal สามารถทำได้ 2 วิธี 1. แนวลึก : Depth-first Traversal 2. แนวราบ : Breath-first Traversal

Depth-first Traversal เป็นลักษณะการท่องเข้าไปยังโหนดเริ่มต้น แล้วให้โหนดใกล้เคียงเป็นโหนดเริ่มต้น เข้า เยี่ยมโหนด ทำต่อไปจนกระทั่งไม่มีโหนดใกล้เคียงจึงย้อนกลับมายังโหนดก่อนหน้า และเข้าเยี่ยมโหนดอีกด้านด้วยรูปแบบเดียวกันจนครบ เทียบได้กับการท่องเข้าไปในทรี แบบพรีออเดอร์ 1. Push vertex 2. Pop vertex และประมวลผล 3. Push adjacent ทั้งหมดของ Vertex ในข้อ 2 4. ทำซ้ำข้อ 2-3 จนกว่าจะครบทุก Vertex และ Stack ว่าง

Breath-first Traversal เป็นการท่องเข้าไปในกราฟโดยเข้าเยี่ยมโหนดตัวแรก และดำเนินการ หาก มีโหนดใกล้เคียงจะดำเนินการกับโหนดที่อยู่ด้านซ้ายก่อน 1. Enqueue vertex 2. Dequeue vertex และประมวลผล 3. Enqueue adjacent ทั้งหมดของ Vertex ในข้อ 2 4. ทำซ้ำข้อ 2-3 จนกว่าจะครบทุก Vertex และ Queue ว่าง

Network หมายถึง Graph ที่ทุก Edge มี Weight กำกับ โดยความหมายของ Weight นั้นขึ้นอยู่กับการใช้งาน

Adjacency Matrix

Adjacency List

Network Application Minimum Spanning Tree เป็นรูปแบบของการค้นหาโดยกำหนดเรียกใช้โหนด ทุกโหนดและทุกเส้นการเชื่อมต่อ มาลำดับความสำคัญของน้ำหนักโดยเริ่มจาก ค่าน้อยที่สุดในข่ายงาน ทำการเชื่อมต่อคู่โหนดนั้น และดำเนินการต่อไปในค่า น้ำหนักที่ต่อกัน แต่ถ้าโหนดใดมีการเชื่อมต่อคู่โหนดแล้วจะไม่เชื่อมต่ออีก Shortest Path เป็นอัลกอริทึมที่ใช้ในการหาระยะทางที่สั้นที่สุดเช่นเดียวกับ MST แต่จะเปลี่ยนจากการหาเส้นทางจากโหนดแรกไปยังโหนดปลายทางของ ข่ายงาน เป็นโหนดที่กำหนดเป็นโหนดต้นทางไปยังโหนดต่าง ๆ โดยหา ระยะทางสั้นที่สุดแต่ละเส้นทาง

Minimum Spanning Tree Spanning Tree หมายถึง Tree ที่ประกอบด้วยทุก Vertex ใน Graph ซึ่ง อาจมีได้มากกว่า 1 แบบ

Minimum Spanning Tree Spanning Tree แบบที่ 1 แบบที่ 2

Minimum Spanning Tree Minimum Spanning Tree (MST) หมายถึง Spanning Tree ที่มีผลรวมของ Weight ทั้งหมดน้อยที่สุด 1. ใส่ Vertex เริ่มต้นใน Tree 2. เลือก Edge จาก Vertex ใน Tree ไปยัง Vertex ที่ไม่อยู่ใน Tree และมี Weight ต่ำสุด 3. ทำซ้ำข้อ 2 จนกว่าจะครบทุก Vertex

ตัวอย่าง จงหา Minimum Spanning Tree

Total weight = 13

Shortest Path 1. ใส่ Vertex เริ่มต้นใน Tree Shortest Path หมายถึง Path ที่สั้นที่สุดระหว่าง 2 Vertex หาเส้นทางการส่งข้อมูลจากต้นทางไปปลายทาง โดยให้มีระยะทางสั้นที่สุด 1. ใส่ Vertex เริ่มต้นใน Tree 2. เลือก Edge จาก Vertex ใน Tree ไปยัง Vertex ที่ไม่อยู่ใน Tree และมีผลรวม ของ Weight ต่ำสุด 3. ทำซ้ำข้อ 2 จนกว่าจะครบทุก Vertex

Shortest Path จงหา Shortest Path จากโหนด A ไปยังโหนดอื่น ๆ