【发布时间】:2020-10-09 07:33:29
【问题描述】:
我有一个包含大约 300 万条路径的 OD 矩阵,我想在 OSM 网络上进行路由。 使用 Dijkstra,我每分钟获得大约 20 条路径,总时间为 2,500 小时。如果最近的节点算法不会错过一个相对较远的最近节点,那将几乎没有问题。使用贝尔曼福特,我似乎没有这个问题,但它慢了 40 倍——而且我没有 10 万小时。 ;} 在我选择的 Ubuntu 或 Windows 机器上,我有一些 24 GB RAM。顺便说一句,公共网络路由服务遇到了无法找到路由的相同问题。我的 OD 位置是湾区人口普查区的质心(一些偏远地区可能距离最近的道路几英里)。我的两个问题是: (1)如何避免路由可以找到问题,以及 (2) 如何加快进程(如果我使用具有 512 GB RAM 的云实例将无济于事)? 我想要改进的功能是 route = networkx.shortest_path(G, start_node, end_node, weight='travel_time') 和这个结合 start_node = osmnx.get_nearest_node(G, start) 及其对应的 end_node
【问题讨论】:
标签: routes networkx processing-efficiency osmnx