我有一个迷宫的布局,我无法思考如何实现解决方案:
我知道迷宫解决算法有很多资源,例如http://www.astrolog.org/labyrnth/algrithm.htm但我不确定哪种算法最适合给定的迷宫。
有三个区域标有“*”,这是MazeSolver在能够从地图顶部的入口退出迷宫之前需要去的位置。
我很欣赏解码迷宫岛部分的伪代码。我会寻找一个简单的解决方案,最佳时间不是真正的问题。即使预先为解算器提供了迷宫的概述,但是当迷宫求解器实际上执行迷宫时它可能不完全准确,因此它比手动编码或使用无所不知的算法稍微复杂一点。迷宫的视图和需要的一半"如果你理解我的意思,人类/可行的......
虽然机器人/机器人程序员将获得每次救援的地雷图,但由于新的采矿或事件造成的损坏,地图可能已过时。
对于此应用,机器人首先需要找到所有救援区域并确定它们是否被占用。机器人必须完全自主。当对这些进行调查时,机器人应该检查人类的所有通道。
机器人也应该自我导航。虽然GPS系统是一种自然的选择,但在这种情况下,由于岩石天花板的厚度可以防止任何GPS信号,因此无法使用它,因此您还需要为机器人设计导航系统。为此,可以向机器人添加小的硬件改变,例如附加传感器或可部署的无线电信标。请注意,至少有一个避难所位于“岛屿”。
答案 0 :(得分:0)
假设您没有寻找离开迷宫的最短路径 - 只需要任何路径,请为您的群岛创建一些订单:island1,island2,...,islandk
。
现在,假设您知道如何解决"常规"迷宫,你需要找到路径:
start->island1, island1->island2, ...., islandk->end
一些意见:
答案 1 :(得分:0)
此问题与Travelling salesman problem问题有关,即NP-Hard问题,因此我不希望任何快速解决方案适用于大量岛屿。
对于少数岛屿,您可以这样做:对于每2个岛屿(包括您的起始位置),计算它们之间的最短路径。由于您对相对较低的顶点之间的距离感兴趣,我建议使用Dijkstra's algorithm,因为它相对容易并且可以手动完成(对于相当大的格拉夫)。
现在您拥有所有兴趣点之间的最短距离,并且您需要找到它们之间的哈密尔顿最优路径。幸运的是,距离满足度量,因此您可以使用2近似(简单,甚至手动)或甚至3/2近似(不那么简单)算法,但不知道多项式算法。
对于3个岛屿的完美解决方案,您只需要检查6种方式(简单),但对于6个岛屿,您可以通过720种方式访问它们,n
可以访问n!
所以祝你好运。