我有一个基于图块的地图,其中几个图块是墙壁,其他图块是可步行的。可步行的瓷砖构成了我想在路径规划中使用的图表。我的问题是他们有什么好的算法可以找到访问图中每个节点的路径,从而最大限度地减少重复访问吗?
例如:
地图示例http://img220.imageshack.us/img220/3488/mapq.png http://img220.imageshack.us/img220/3488/mapq.png
如果底部黄色图块是起点,则以最少重复次数访问所有图块的最佳路径是:
路径示例http://img222.imageshack.us/img222/7773/mapd.png http://img222.imageshack.us/img222/7773/mapd.png
这条路径有两次重复访问。更糟糕的路径是在第一个路口左转,然后在三个已经访问过的方块上原路返回。
我不关心结束节点,但开始节点很重要。
Thanks.
Edit:
我在问题中添加了图片,但在查看时看不到它们。他们来了:
http://img220.imageshack.us/img220/3488/mapq.png http://img220.imageshack.us/img220/3488/mapq.png
http://img222.imageshack.us/img222/7773/mapd.png http://img222.imageshack.us/img222/7773/mapd.png
此外,在图表中我需要这个,因为永远不会出现最小重复次数 = 0 的情况。也就是说,要踏上地图中的每个图块,玩家必须至少穿过自己的路径一次。
你的措辞很糟糕——它可以简化为 NP 完全问题。如果你可以最大限度地减少重复访问,那么你可以将它们推到 0,然后你就会有一个哈密顿循环 http://mathworld.wolfram.com/HamiltonianCycle.html。这是solvable http://www.springerlink.com/content/6wkbcnbfvrnq86ev/,但是很难。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)