问题:
修改我们针对更少转弯优化的 A* 算法。该算法现在将找到从 (a,b) 到与 (x,y) 相邻的任何 TILE 的路径,其中 (x+1,y) 或 (x-1,y) 在可能的情况下受到青睐。
我尝试的解决方案:
- 从 (a,b) 到 (x,y) 运行原始 A* 算法。
- 找到通过 (x-1, ) 或 (x+1, ) 的路径中的最后一个坐标(如果有)。
- 如果在该坐标平面中有一条从 * 到 y 的可访问的垂直线,则修改路径以遵循该线。
视觉演示:(从 S 到 E 的路径,其中 X 无法访问)
......S .....S
. X . X
. => .
. .
E E.
但是我不确定我的解决方案在某些情况下是否有效,即:
......S .....S
. X . X
.X ??? X.
. .
E E..
谁能想到这个问题的解决方案?
注意:A* 算法是通用的,除了考虑方向变化的数量以在结果路径中减少转弯。