大量编辑这个问题,使其更容易理解。探索算法
给定一个具有任意尺寸和任意数量障碍物的任意定位的环境,我有一个代理人以有限范围的视线探测环境(障碍物不会阻挡视线)。它可以在NSEW的四个基本方向上移动,一次一个单元格,并且图形未加权(每个步骤的成本为1)。下面链接的是一张地图,表示代理人(黄家伙)在计划时刻对环境的当前信念。在代理计划时,时间不会通过模拟。
http://imagizer.imageshack.us/a/img913/9274/qRsazT.jpg
我可以使用哪些探索算法最大限度地考虑到重新审视细胞被允许公用事业的成本效益,?每个单元格都有一个实用值。理想情况下,我会试图最大化SEEN(未访问)的所有单元的效用总和除以路径长度,但如果对于任何合适的算法来说这太复杂,那么所看到的单元数就足够了。有一个最大路径长度,但它通常在数百或更高。 (我的代理上使用的实际测试环境至少大4倍,尽管理论上可以设置的尺寸没有上限,并且最大路径长度因此会相应增加)
我认为BFS和DFS为难以处理,由于缺乏合适的启发式算法,A *是非最优的,而迪杰斯特拉不适合产生一条不间断的路径。有什么算法可以想到吗?此外,我需要帮助进行循环检测,因为我之前从未这样做过,因为允许重访是我第一次。
我考虑过的一种方法是将映射减少为生成树,但不是将其定义为连接所有单元的树,而是将其定义为可以查看所有单元的树。我的做法会导致如下:
http://imagizer.imageshack.us/a/img910/3050/HGu40d.jpg
在结果树,代理可以从一个节点到是0-1转走在十字路口的任何相邻节点。就我现在的想法而言,这就是我的想法。使用这棵树生成的解决方案可能不是最优的,但它应该至少接近最优,而算法处理的细胞要少得多,所以如果这会使算法更容易处理,那么我认为这是可接受的交易。然而,我仍然想着如何为此产生一条路径。
你可以看看这个:http://en.wikipedia.org/wiki/Simultaneous_localization_and_mapping。 – perreal
为什么不启用基于所查看单元格数量的启发式 – nkcode
@perreal您是否知道SLAM中的确切算法可以应用于我的问题?我的代理能够访问地图的尺寸,并始终知道自己的确切位置,因此只需要在易处理的时间和环路检测中生成探索路径。 – thegreatjedi