我认为某些答案取决于道路网络的布局,这个问题可能值得在Math Stack Exchange(/math//)上发布,因为它似乎是一个图论问题。我认为这不是最佳的解决方案,但它可能有助于您更紧密地联系在一起。
您可以将道路网络划分为自然区域,其中路段的长度总和将大致等于卡车在给定负载下可以覆盖的数量。然后,对于每个区域,您都可以进行欧拉游,以获得可以触及所有路段的路线。样本python代码
def eulerian_tour(network_graph):
graph = network_graph[:]
route = []
def find_route(start):
for (i, j) in graph:
if i == start:
graph.remove((i, j))
find_route(j)
elif j == start:
graph.remove((i, j))
find_route(i)
route.append(start)
find_route(graph[0][0])
route.reverse()
return route
然后,您可以考虑在区域和仓库之间进行路由,并将访问路径分解为可用卡车的逻辑段。希望这可以帮助。