วันศุกร์ที่ 16 ตุลาคม พ.ศ. 2552

DTS09-08-09-2552

กราฟ Graph
เป็นโครงสร้างข้อมุลแบบไม่เชิงเส้น อีกชนิดหนี่ง กราฟเป็นดครงสร้างข้อมูลที่มีการนำไปใช้ในงานที่เกี่ยวข้องกับการแก้ไขปัญหาที่ค่อนข้างซับซ้อน เช่น การวางข่าย งานคอมพิวเตอร์ การวิเคราะห์เส้นทางวิกฤต และปัญหาเส้นทางที่สั้นที่สุด เป็นต้น

นิยามของกราฟกราฟ
เป็นโครงสร้างข้อมูลแบบไม่เชิงเส้นที่ประกอบ ด้วยกลุ่มของสิ่งสองสิ่งคือ
1. โหนด (Nodes) หรือ เวอร์เทกซ์ (Vertexes)
2. เส้นเชื่อมระหว่างโหนด เรียก เอ็จ (Edger)

การเชื่อมต่อ
กราฟที่มีเอ็จเชื่อมต่อระหว่างโหนดสองโหนดถ้าเอ็จไม่มีลำดับ ความสัมพันธ์จะเรียกกราฟนั้นว่ากราฟแบบไม่มีทิศทาง (Undirected Garphs) และถ้ากราฟนั้นมีเอ็จที่มีลำดับความสัมพันธ์หรือมีทิศทางกำกับด้วยเรียกกราฟนั้นว่า การฟแบบมีทิศทาง(Directed Deaphs) หรือมีลูกศร เป็นกราฟที่แสดงการเชื่อม ระหว่าง Vertex โดยแสดงทิศทางการเชื่อมต่อด้วย บางครั้งเรียกว่า ไดกราฟ (Digraph) ถ้าต้องการอ้างถึงเอ็จแต่ละเส้นสามารถเขียนชื่อเอ็จกำกับไว้ก็ได้การเขียนกราฟแสดงโหนดและเส้นเชื่อมความสัมพันธ์ ระหว่างโหนดไม่มีรูปแบบที่ตายตัวการสากเส้นความสัมพันธ์เป็นเส้นลักษณะไหนก็ได้ที่สามารถแสดงความสัมพันธ์ระหว่างโหนดได้ถูกต้อง


การท่องไปในกราฟ (Graph traversal)
คือ การเข้าไปเยือนโหนดในกราฟ หลักการทำงาน คือ แต่ละโหนดจะถูกเยือนเพียงครั้งเดียวเทคนิคการท่องไปในกราฟมี 2 แบบ

1.การท่องแบบกว้าง (Breadth First Traversal) โดยเลือกโหนดที่เป็นจุดเริ่มต้น ต่อมาให้เยือนโหนดอื่นที่ใกล้กันกับโหนดเริ่มต้นที่ละระดับ จนเยือนหมดทุกโหนดในกราฟ (แบบคิว)
2.การท่องแบบลึก (Depth First Traversal) คล้ายกับการท่องทีละระดับของทรี กำหนดเริ่มต้นที่โหนดแรกและเยือนโหนดถัดไปตามแนววิถีจนไปสู่ปลายวิถี จากนั้นย้อนกลับ (backtrack) ตามแนววิถีเดิม จนสามารถดำเนินการต่อเนื่องเข้าสู่แนววิถีอื่นๆ เพื่อเยือนโหนดอื่นๆ ต่อไปจนครบทุกโหนด (แบบสแตก)

ไม่มีความคิดเห็น:

แสดงความคิดเห็น