Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 查找从给定节点s到任何其他节点v的最短路径数的算法?_Algorithm_Breadth First Search - Fatal编程技术网

Algorithm 查找从给定节点s到任何其他节点v的最短路径数的算法?

Algorithm 查找从给定节点s到任何其他节点v的最短路径数的算法?,algorithm,breadth-first-search,Algorithm,Breadth First Search,我想找到一个算法,当给定一个图G=(V,E)和一个节点s from V时,对于V中的任何节点V,它会找到从s到V的最短路径的数目。 我了解到BFS算法可以找到从s到v的最短路径,我只是不知道如何使用它来解决这个问题。 任何帮助都将不胜感激。这里是这方面的伪代码(意思是未经测试的Python) path_count[s] = 1 length_to[s] = 0 todo = [s] # A queue while len(todo): v = todo.pop(0) for w

我想找到一个算法,当给定一个图G=(V,E)和一个节点s from V时,对于V中的任何节点V,它会找到从s到V的最短路径的数目。 我了解到BFS算法可以找到从s到v的最短路径,我只是不知道如何使用它来解决这个问题。 任何帮助都将不胜感激。

这里是这方面的伪代码(意思是未经测试的Python)

path_count[s] = 1
length_to[s] = 0
todo = [s] # A queue
while len(todo):
    v = todo.pop(0)
    for w in edges(graph, v):
        if w not in length_to:
            length_to[w] = length_to[v] + 1
            path_count[w] = 0
            todo.append(w)

        if length_to[w] == length_to[v] + 1:
            path_count[w] += path_count[v]

在此之后,
length\u to[v]
给出了到
v
的最短路径的长度,
path\u to[v]
给出了到
v
的最短路径的数量。(这就是你一直在寻找的。)

维基页面上有一个关于BFS的伪代码部分:我不想更改代码,我只想使用相同的BFS,但用一种聪明的方式来解决这个问题,因为我听说这是最好的方法,当你到达v时不要搜索。到达v时,记录路径并继续搜索,