问题:
修改我们优化过的A *算法,使其少转弯。 该算法现在将查找从(a,b)到任何与(x,y)相邻的TILE的路径,其中在可能的情况下偏爱(x + 1,y)或(x-1,y)。
我的尝试解决方案:
- 从(a,b)到(x,y)运行原始A *算法。
- 找到路径中通过(x-1,)或(x +1,)的最后一个坐标(如果有)。
- 如果在该坐标平面上存在可直接访问的垂直线,则修改路径以沿着该线行进。
视觉演示:(从S到E的路径,其中X是不可访问的)
......S .....S
. X . X
. => .
. .
E E.
然而,我不确定我的解决方案是否在某些情况下有效,例如:
......S .....S
. X . X
.X ??? X.
. .
E E..
你有没有想过解决这个问题的方法?
注意:A*算法是通用的,除了考虑方向改变的数量以更喜欢结果路径上的转弯较少。