ทำไมอัลกอริธึมของ Prim ถึงทำงาน?
ทำไมอัลกอริธึมของ Prim ถึงทำงาน?

วีดีโอ: ทำไมอัลกอริธึมของ Prim ถึงทำงาน?

วีดีโอ: ทำไมอัลกอริธึมของ Prim ถึงทำงาน?
วีดีโอ: วิทยาการคำนวณ EP8 อัลกอริทึม Algoritms(Computational thinking) ตอน อัลกอริทึมคืออะไร Kids Coding 2024, มีนาคม
Anonim

ในวิทยาการคอมพิวเตอร์ Prim's (เรียกอีกอย่างว่า Jarník's) อัลกอริทึม เป็นคนโลภ อัลกอริทึม ที่ค้นหาแผนภูมิขยายขั้นต่ำสำหรับกราฟที่ไม่มีทิศทางแบบถ่วงน้ำหนัก ซึ่งหมายความว่าจะพบส่วนย่อยของขอบที่สร้างต้นไม้ที่มีจุดยอดทุกจุด โดยจะลดน้ำหนักรวมของขอบทั้งหมดในต้นไม้ให้น้อยที่สุด

ในเรื่องนี้ทำไม Prims ถึงดีกว่า Kruskal?

Kruskal's อัลกอริทึม: ดำเนินการ ดีกว่า ในสถานการณ์ทั่วไป (กราฟกระจัดกระจาย) เนื่องจากใช้โครงสร้างข้อมูลที่ง่ายกว่า Prim's อัลกอริธึม: เร็วกว่ามากในขีดจำกัดเมื่อคุณมีกราฟที่หนาแน่นมากและมีขอบมากขึ้น กว่า จุดยอด

อัลกอริธึมของ Prim เหมาะสมหรือไม่? อัลกอริทึมของ Prim เป็นคนโลภ อัลกอริทึม สำหรับการค้นหาต้นไม้ที่ทอดยาวน้อยที่สุดบนกราฟที่ไม่มีทิศทางแบบถ่วงน้ำหนักโดยใช้วิธีการโลภ ในกรณีของ อัลกอริทึมของ Prim เราเลือกจุดยอดซ้ำๆ ซึ่งระยะห่างจากจุดยอดต้นทางถูกย่อให้เล็กสุด นั่นคือจุดยอดปัจจุบันในพื้นที่ เหมาะสมที่สุด ทางเลือก.

เมื่อคำนึงถึงสิ่งนี้ อัลกอริธึมของ Prim สามารถมีวัฏจักรได้หรือไม่

อัลกอริทึมของ Prim . อัลกอริทึมของ Prim ย่อมสร้างต้นไม้ที่แผ่ออกไปอย่างชัดเจนเพราะไม่มี รอบสามารถ แนะนำโดยการเพิ่มขอบระหว่างจุดยอดของต้นไม้และที่ไม่ใช่ต้นไม้

อัลกอริธึมใดมีประสิทธิภาพมากกว่าในการสร้างสแปนทรีต่ำสุดของอัลกอริธึมของกราฟ Prim หรืออัลกอริธึมของ Kruskal และเพราะเหตุใด

อัลกอริทึมของ Kruskal เพิ่มโซลูชันจากขอบที่ถูกที่สุดโดยการเพิ่มขอบที่ถูกที่สุดถัดไปให้กับที่มีอยู่ ต้นไม้ / ป่า. อัลกอริทึมของ Prim เร็วกว่าสำหรับความหนาแน่น กราฟ . อัลกอริทึมของ Kruskal เร็วกว่าสำหรับกระจัดกระจาย กราฟ.

แนะนำ: