วีดีโอ: ทำไมอัลกอริธึมของ Prim ถึงทำงาน?
2024 ผู้เขียน: Lynn Donovan | [email protected]. แก้ไขล่าสุด: 2023-12-15 23:54
ในวิทยาการคอมพิวเตอร์ Prim's (เรียกอีกอย่างว่า Jarník's) อัลกอริทึม เป็นคนโลภ อัลกอริทึม ที่ค้นหาแผนภูมิขยายขั้นต่ำสำหรับกราฟที่ไม่มีทิศทางแบบถ่วงน้ำหนัก ซึ่งหมายความว่าจะพบส่วนย่อยของขอบที่สร้างต้นไม้ที่มีจุดยอดทุกจุด โดยจะลดน้ำหนักรวมของขอบทั้งหมดในต้นไม้ให้น้อยที่สุด
ในเรื่องนี้ทำไม Prims ถึงดีกว่า Kruskal?
Kruskal's อัลกอริทึม: ดำเนินการ ดีกว่า ในสถานการณ์ทั่วไป (กราฟกระจัดกระจาย) เนื่องจากใช้โครงสร้างข้อมูลที่ง่ายกว่า Prim's อัลกอริธึม: เร็วกว่ามากในขีดจำกัดเมื่อคุณมีกราฟที่หนาแน่นมากและมีขอบมากขึ้น กว่า จุดยอด
อัลกอริธึมของ Prim เหมาะสมหรือไม่? อัลกอริทึมของ Prim เป็นคนโลภ อัลกอริทึม สำหรับการค้นหาต้นไม้ที่ทอดยาวน้อยที่สุดบนกราฟที่ไม่มีทิศทางแบบถ่วงน้ำหนักโดยใช้วิธีการโลภ ในกรณีของ อัลกอริทึมของ Prim เราเลือกจุดยอดซ้ำๆ ซึ่งระยะห่างจากจุดยอดต้นทางถูกย่อให้เล็กสุด นั่นคือจุดยอดปัจจุบันในพื้นที่ เหมาะสมที่สุด ทางเลือก.
เมื่อคำนึงถึงสิ่งนี้ อัลกอริธึมของ Prim สามารถมีวัฏจักรได้หรือไม่
อัลกอริทึมของ Prim . อัลกอริทึมของ Prim ย่อมสร้างต้นไม้ที่แผ่ออกไปอย่างชัดเจนเพราะไม่มี รอบสามารถ แนะนำโดยการเพิ่มขอบระหว่างจุดยอดของต้นไม้และที่ไม่ใช่ต้นไม้
อัลกอริธึมใดมีประสิทธิภาพมากกว่าในการสร้างสแปนทรีต่ำสุดของอัลกอริธึมของกราฟ Prim หรืออัลกอริธึมของ Kruskal และเพราะเหตุใด
อัลกอริทึมของ Kruskal เพิ่มโซลูชันจากขอบที่ถูกที่สุดโดยการเพิ่มขอบที่ถูกที่สุดถัดไปให้กับที่มีอยู่ ต้นไม้ / ป่า. อัลกอริทึมของ Prim เร็วกว่าสำหรับความหนาแน่น กราฟ . อัลกอริทึมของ Kruskal เร็วกว่าสำหรับกระจัดกระจาย กราฟ.
แนะนำ:
ความซับซ้อนของเวลาของอัลกอริทึมของ Prim คืออะไร
ความซับซ้อนของเวลาของอัลกอริธึมของ Prim คือ O ((V + E) l o g V) เนื่องจากจุดยอดแต่ละจุดถูกแทรกในคิวลำดับความสำคัญเพียงครั้งเดียวและการแทรกในลำดับความสำคัญจะใช้เวลาลอการิทึม