[英]Is there an algorithm to find the minimum cost path in a directed rooted tree (arborescence)?
[英]efficient algorithm to find the minimum cost path
有一组给定的城市可以说.. A,B,C,D,E,F,G。 问题是找到覆盖城市A,B,C,F的最低成本路径。 路径必须覆盖城市A,B,C,F。 路径可以(但不必)通过任何其他给定城市(D,E,G)。 允许重复路径。 路径应该从A开始和结束。我应该如何解决类似问题?
这是变相旅行商问题 (TSP)的变种。
你可以看到,如果你把每个城市标记为“需要被覆盖”(我将称之为“有趣的”)。 允许您多次访问节点的TSP变体仍然是NP完整的。
因此,知道您的问题的每个确切解决方案的复杂性将在有趣城市的数量中呈指数级,您可以按如下方式进行:
首先,预先计算有趣城市之间的最短路径。 这可以通过从每个有趣的城市或Floyd-Warshall算法运行的Dijkstra算法来完成。 然后尝试访问有趣城市的顺序的每个排列; 或使用一些现有的TSP求解器或启发式算法。
所以最简单的实现是这样的:
如果你有V个城市和N个有趣的城市,这个实现的运行时间大约为O(V 3 + N!·N)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.