找到从网页A到网页B的最快捷方式

时间:2009-11-06 23:53:23

标签: algorithm

我正在寻找一种算法来查找两个网址或两个维基百科页面之间的最短路径。

例如,从维基百科的Reddit文章到计算机科学文章的最短路径是点击“科学”链接,其中有一个指向计算机科学的链接。

假设所有链接都是静态的,并且加载整个图形或遍历整个图形是不切实际的,是否有实用的算法来查找最短路径,或证明没有路径存在?

(我不确定Dijkstra是否是这里的最佳选择,因为图的每个边缘的权重都是1)

3 个答案:

答案 0 :(得分:2)

我不知道,但请查看此项目以确定两个维基百科页面之间的距离:

http://www.netsoc.tcd.ie/~mu/wiki/

答案 1 :(得分:2)

Here是个好地方。我认为Dijkstra's算法可能是你最好的选择,如果你想确定正确的答案。如果不是,您可以使用A*找到更快的近似动作

答案 2 :(得分:2)

您也可以尝试Breadth-First Search,然后在到达目的地后立即停止。实际上,我认为当您将所有边缘权重约束为1时,BFS就是您从Dijkstra获得的,并且当您到达该点时停止搜索,但BFS在概念上比Dijkstra更容易。请记住,Dijkstra是一个单一来源的所有路径,所以如果你只是从网站A到网站B使用它,你必须修改它。