2
访问未知障碍的网格上每个可访问空间的有效方法是什么?
我正在尝试使用探索在相当粗糙的2D网格空间中创建障碍物的地图。我通过尝试从一个空间移动到相邻空间来检测障碍物,如果失败,则目标空间中会存在障碍物(此问题中没有测距传感器的概念)。 示例网格http://www.eriding.net/resources/general/prim_frmwrks/images/asses/asses_y3_5d_3.gif(例如) 当所有可到达的正方形都已被访问时,该过程完成。换句话说,即使某些空间没有障碍物(因为它们被包围),它们也可能是完全无法到达的。这是预期的。 在最简单的情况下,我可以使用DFS算法,但是我担心这将花费很长时间才能完成-机器人将花更多的时间回溯而不是探索新领域。我希望这在尝试到达无法到达的正方形时尤其成问题,因为机器人将耗尽所有选择。 在更复杂的方法中,正确的方法似乎是Boustrophedon细胞分解。 但是,我似乎找不到关于Boustrophedon细胞分解算法的完整描述(即,简单的完整描述)。还有像资源这一块,或在垂直细胞分解更一般的一个,但他们没有提供多少洞察高级算法,也没有涉及到的低级别的数据结构。 如何有效访问(映射)此网格?如果存在,我希望有一种算法在网格平方总数方面比更好(即对于网格,它比好)。O(n2)O(n2)O(n^2)O(n4)O(n4)O(n^4)n∗nn∗nn*n