Logo th.boatexistence.com

ทำไมพริมส์ถึงดีกว่า kruskal?

สารบัญ:

ทำไมพริมส์ถึงดีกว่า kruskal?
ทำไมพริมส์ถึงดีกว่า kruskal?
Anonim

ข้อได้เปรียบของ อัลกอริทึมของ Prim คือความซับซ้อน ซึ่งดีกว่าอัลกอริทึมของ Kruskal ดังนั้น อัลกอริธึมของ Prim จึงมีประโยชน์เมื่อต้องจัดการกับกราฟที่มีความหนาแน่นซึ่งมีขอบจำนวนมาก อย่างไรก็ตาม อัลกอริธึมของ Prim ไม่อนุญาตให้เราควบคุมขอบที่เลือกได้มากนักเมื่อมีหลายขอบที่มีน้ำหนักเท่ากัน

Prims ดีกว่า Kruskal ไหม

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

ทำไมอัลกอริธึมปริซึมจึงมีประสิทธิภาพ

(ในแง่นี้ อัลกอริธึมของ Prim คล้ายกับอัลกอริธึมของ Dijkstra ในการค้นหาเส้นทางที่สั้นที่สุด) … อัลกอริธึมของ Prim ทำงานอย่างมีประสิทธิภาพหากเราเก็บรายการ d[v] ของตุ้มน้ำหนักที่ถูกที่สุดซึ่งเชื่อมต่อจุดยอด v ซึ่งไม่อยู่ในต้นไม้ไปยังจุดยอดใดๆ ที่อยู่ในต้นไม้แล้ว.

อัลกอริธึมไหนดีกว่าสำหรับสแปนนิ่งทรีขั้นต่ำ

Finding Minimum Spanning Trees

อัลกอริธึมยอดนิยมสองสามอย่างสำหรับการค้นหาระยะทางขั้นต่ำนี้ ได้แก่ อัลกอริทึมของ Kruskal, อัลกอริธึมของ Prim และอัลกอริทึมของ Boruvka สิ่งเหล่านี้ใช้ได้กับต้นไม้ที่ทอดยาวอย่างง่าย สำหรับกราฟที่ซับซ้อนกว่านี้ คุณอาจต้องใช้ซอฟต์แวร์

อัลกอริธึมไหนดีกว่า Prims หรือ Kruskal ที่อัลกอริธึมของ Prim และ Kruskal ให้ผลลัพธ์ต้นไม้ที่ทอดข้ามขั้นต่ำต่างกันได้

นั่นคือ อัลกอริธึมของ Prim อาจให้ค่าสแปนนิ่งทรีขั้นต่ำที่แตกต่างจากอัลกอริธึมของ Kruskal ในกรณีนี้ แต่นั่นเป็นเพราะว่าอัลกอริธึมตัวใดตัวหนึ่งอาจให้ทรีสแปนขั้นต่ำที่ต่างจาก (ต่างกัน ของ) เอง!