讓我們假設一個> 25000個節點的完整圖。每個節點本質上是一個平面上的一個點。 它有625M的邊緣。每條邊的長度都應該作爲浮點數存儲。在巨大的完整圖中找到MST的算法
我需要一種算法來找到它的MST(在通常的PC上)。
如果我參加Kruskal算法,它需要所有的邊第一排序,但我買不起甚至完全在內存中同時存儲的邊緣。
如果讓我選擇Prim算法,這是相當難以評估有多少邊緣將在同一時間被存儲在一個堆,但可能他們中的大多數將很快算法開始後在那裏。
是否有更多的內存,足夠的算法,它可以讓我避免排序存儲在文件中的邊緣?
此外,是否有其利用的事實是任何樹邊滿足三角不等式任何已知MST算法?
圖表是否完整? 625M只有25000 ** 2。此外,這裏http://en.wikipedia.org/wiki/Euclidean_minimum_spanning_tree –
也有庫這樣的:http://www.mlpack.org/doxygen.php?doc=emst_tutorial.html –
@ZiyaoWei:謝謝,這看起來像我正在尋找的東西。 – Roman