問題:在未加權的無向圖中找到最短路徑。使用時空折衷的最短路徑算法?
廣度優先搜索可以找到兩個節點之間的最短路徑,但這可能會花費O(| V | + | E |)時間。預先計算的查找表將允許在O(1)時間內迴應請求,但是以O(| V |^2)空間爲代價。
我想知道:有它提供了一個時空權衡這更細粒度的算法?換句話說,是否有一個算法,其中:
- 查找在超過O時間最短路徑(1),但比雙向廣度優先搜索
- 更快使用預先計算的數據,其佔用小於空間O(| V |^2)?
在實際方面:圖爲800000個節點和被認爲是一個小型世界網絡。所有配對最短路徑表格的數量級都是千兆字節 - 這些日子並沒有離譜,但它不符合我們的要求。
但是,出於好奇,我在問我的問題。什麼讓我在晚上是不是「我怎樣才能減少所有對查找表的緩存未命中?」,但「有沒有我從來沒有聽說過的完全不同的算法?」
答案可能不是,沒關係。
圖中大概有多少個節點? – danben 2010-04-27 20:46:19
圖形密集還是稀疏?有多少個節點?多少條邊? – 2010-04-27 20:50:40