python最短路径
㈠ python中怎样求解最短路能不能给个例子,谢谢各位
graph = {'A': ['B', 'C'],
'B': ['C', 'D'],
'C': ['D'],
'D': ['C'],
'E': ['F'],
'F': ['C']}
def find_shortest_path(graph, start, end, path=[]):
path = path + [start]
if start == end:
return path
if not graph.has_key(start):
return None
shortest = None
for node in graph[start]:
if node not in path:
newpath = find_shortest_path(graph, node, end, path)
if newpath:
if not shortest or len(newpath) < len(shortest):
shortest = newpath
return shortest
>>> find_shortest_path(graph, 'A', 'D')
['A', 'C', 'D']
>>>
㈡ Python 嵌套列表求最短线路!
你好,答案如下所示。
没看懂你的返回值是哪个到哪个的最短路径,比如第三个数字4,看了半天,好像没看到哪个的最短路径是4,应该都比4小喔
希望你能够详细查看。
如果你有不会的,你可以提问
我有时间就会帮你解答。
希望你好好学习。
每一天都过得充实。
㈢ Python中networkx中shortest_path使用的是哪一种最短路径方法
不全是。依据传入的参数决定调用哪种算法。
看源码:至少涉及了dijkstra、广度优先/深度优先算法。
ifsourceisNone:
iftargetisNone:
##Findpathsbetweenallpairs.
ifweightisNone:
paths=nx.all_pairs_shortest_path(G)
else:
paths=nx.all_pairs_dijkstra_path(G,weight=weight)
else:
##Findpathsfromallnodesco-accessibletothetarget.
directed=G.is_directed()
ifdirected:
G.reverse(=False)
ifweightisNone:
paths=nx.single_source_shortest_path(G,target)
else:
paths=nx.single_source_dijkstra_path(G,target,weight=weight)
#.
fortargetinpaths:
paths[target]=list(reversed(paths[target]))
ifdirected:
G.reverse(=False)
else:
iftargetisNone:
##.
ifweightisNone:
paths=nx.single_source_shortest_path(G,source)
else:
paths=nx.single_source_dijkstra_path(G,source,weight=weight)
else:
##Findshortestsource-targetpath.
ifweightisNone:
paths=nx.bidirectional_shortest_path(G,source,target)
else:
paths=nx.dijkstra_path(G,source,target,weight)
㈣ Python中怎么求有权图的最短路径
Dijkstra算法。
㈤ 求助python的最短路径问题
这是一个深度优先搜索算法(Deepth First Search, DFS)
算法核心是不断递归,直到找到目标,入队一种可能方案,return返回上一递归,再次尝试以当前点开始计算有没有其他方案,如有则继续递归并入队,如没有则再次return
简单来说就是这样的结构:
def dfs(position, value):
# position 传参位置,value 传参到现在的计算结果
if 到达目标:
判断value是否比最短路径短
return value
else:
for x in position的所有可能下一路径:
if x在路径列表中:
# 不能有重复路径,变成回环
continue
else:
获取路径x的值
改变position
入队 dfs(new_position, value+x
这个代码用的是字典存储每个点可到达的点以及路程
然后深度优先搜索
不懂再追问
㈥ python networkx模块里面计算最短路径时,如何处理等价路径我怎么测试只能显示1条路径,请大神赐教。
if source is None: if target is None: ## Find paths between all pairs. if weight is None: paths=nx.all_pairs_shortest_path(G) else: paths=nx.all_pairs_dijkstra_path(G,weight=weight) else: ## Find paths from all nodes co-accessible to the target. directed = G.is_directed() if directed: G.reverse(=False) if weight is None: paths=nx.single_source_shortest_path(G,target) else: paths=nx.single_source_dijkstra_path(G,target,weight=weight) # Now flip the paths so they go from a source to the target. for target in paths: paths[target] = list(reversed(paths[target])) if directed: G.reverse(=False) else: if target is None: ## Find paths to all nodes accessible from the source. if weight is None: paths=nx.single_source_shortest_path(G,source) else: paths=nx.single_source_dijkstra_path(G,source,weight=weight) else: ## Find shortest source-target path. if weight is None: paths=nx.bidirectional_shortest_path(G,source,target) else: paths=nx.dijkstra_path(G,source,target,weight)
㈦ python问题。建立9x9的方格 然后求最短距离
读取地图数据,建立地图。
读取起始点,终止点。
// 系统中肯定存在多条路径,这些路径 应该是以起点为根,以终点为叶到发生树。
// 路径不会短于 |x1-x2|+|y1-y2|
首先计算出一条路径,作为当前路径。
继续计算下一条路径。
如果这条路径长于当前路径,终止计算。 从终止计算点以下,所有树叶全部舍弃。
否则将该条路径当作当前路径。继续计算 直至算玩所以路径或者找到最短路径。
合理利用树算法。
㈧ Python 怎么求graph的最短线路!!
不是有求最短路径算法吗,迪杰斯特拉,用其对应的python实现就行
㈨ 如何用python在arcgis中编写程序,求两点的最短路径
你是想学PYTHON编程还是只是想只得到这个PYTHON文件。可以给你提供一条简洁的途径用modelbuilder来实现,将内多个SHP文件拖入进去容,再把MERGE工具拖进去,双击modelbuilder中的merge工具框设置,再双击output dataset框设置输出。然后将这些shp文件用倒数第二个按钮添加链接的功能将他们一个个与merge工具框链接起来。最后点击model-export-to srcipt-python 就会输出一个python文件,可以用记事本打开查看里面的代码。