在尝试使用波前算法时,我遇到了一个我无法轻易解决的场景。我使用波前算法填充数组并使用摩尔邻域,如果几个邻居完全相同,我如何决定行进方式。
我当地社区的价值为4,4,5,5,5,4,5,6。当地最小值是4,但在这种情况下我有3个。如果有几个本地最小值要移动,我该如何做出决定。现在我正在做出一个随机的决定,如果有相同的值,但我觉得有更好的方法来决定。
到目的地的所有路径具有相同的步数(5个步骤),但每个路径都不同。我也假设选择了当地最小值作为途径。
我的问题是,给定相同数量的步骤(波前)是否有一种方法可以写入比较器的随机化或顺序,以决定从一个块移动到另一个块的方式?
只是一个符号,99表示障碍。
纯粹的局部最小值或比较器顺序的问题是下图所示的失败案例。
我不是在寻找这个问题的Astar解决方案,但我觉得在这种情况下,我将面临完全相同的决策问题,因为所有路径都是平等的。
由于
编辑: 我错误地生成了数字,令人尴尬。
这是波前的正确生成
正确生成后,它显示只有一条路径
即使屏障稍微复杂一点
注意:在所有图像(已校正)中,使用范诺伊曼邻域生成路径,而移动是通过摩尔邻域。
然而,如果使用Van Neumann邻域生成和Van Neumann导航,问题会再次出现。