如何解决使用k条路径访问所有节点的最短路径算法
我正在尝试编写一种遍历具有k条不同路径的访问所有节点的方法,以使我一次访问所有节点。可以从每个其他节点到达每个节点,并且我们所有人都是从相同的起始位置开始,而终止位置不明确。我们只想在最短的时间内访问所有节点。
有点像有k个推销员的旅行推销员,对返回我们的起点没有限制
任何想法或方向都会有所帮助
解决方法
这可能是NP难题,因此最佳解决方案将需要很长时间才能运行。
我也可能会选择一个随机贪婪的解决方案,该解决方案通常会工作得很好:
- 随机选择K个起点,将其标记为已访问。
- 跨所有路径的起点/终点(沿任一方向)跳转到下一个最接近的未访问点。将该地点标记为已访问。
- 重复步骤2,直到没有未访问的点为止。注意使用的路径和总距离。
- 重复1-3次X,返回使用X次行程总距离较短的路径。
可能在#3上可以进行一些后处理优化,以提高性能。 IE:再次运行算法(1-3),但将每个路径的终点用作起点。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。