我正在尝试用 python 实现双向搜索。
据我了解,我应该以某种方式合并两个广度优先搜索,一个从起始(或根)节点开始,一个从目标(或结束)节点开始。当两个广度优先搜索在同一顶点“相遇”时,双向搜索终止。我已经实现了BFS,代码如下
def bfs(graph, start):
path = []
queue = [start]
while queue:
vertex = queue.pop(0)
if vertex not in path:
path.append(vertex)
queue.extend(graph[vertex])
return path
Run Code Online (Sandbox Code Playgroud)
您能为我提供一个代码示例(Python 语言)或双向图搜索代码的链接吗?