在尝试使用波前算法时,我遇到了一个我无法轻松解决的场景。我用波前算法填充数组并使用摩尔邻域,考虑到几个邻居完全相同,我如何决定走哪条路。
我当地的邻居有 4,4,5,5,5,4,5,6 的值。局部最小值是 4,但在这种情况下我有 3 个。如果有几个局部最小值需要移动,我该如何做出决定。现在我正在随机决定是否存在相等的值,但我觉得有更好的方法来决定。
通往目的地的所有路径都具有相同的步数(5 步),但所走的每条路径都不同。我还假设为路径选择了局部最小值。
我的问题是,给定相同数量的步骤(在波前),除了随机化或比较器的顺序之外,还有其他方法可以决定从一个块移动到另一个块的方式吗?
只是一个符号,99 表示一个障碍。
仅纯局部最小值或比较器顺序的问题是下图所示的失败案例。
我不是在寻找这个问题的 Astar 解决方案,但我觉得在这种情况下,我将面临完全相同的决策问题,因为所有路径都是平等的。
谢谢
编辑:我错误地生成了数字,很尴尬。
这是波前的正确生成
正确生成时,它显示只有 1 条路径
即使障碍有点复杂
注意:在所有图像(已校正)中,路径是使用 Van Neumann 邻域生成的,而运动是通过 Moore 邻域生成的。
但是,如果使用范诺依曼邻域生成和范诺依曼导航,问题又出现了。