A*算法是否适用于多个相邻单元格组成的起止位置

Is A* algorithm suitable in starting and ending positions composed of multiple neighbouring cells

A*算法是否可以有效地应用于一个NxM矩形网格,移动到任何单元格时涉及不同的旅行成本,并且起始位置不是单个单元格,而是由多个封闭单元格组成;比如说一组相邻的单元格,其中一个单元格的邻居是它周围八个单元格中的任何一个? (结束单元格与此类似。) 如果是这样,那么任何人都可以指路吗?如果不是,什么是解决问题的好方法?

Can the A* algorithm be efficiently applied to a NxM rectangular grid with varying travel cost [...]

是的,A* 适用于任何类型的图,只要边成本为正。不要将图形表述为具有规则邻居的网格,而是构建它以便连接的网格单元在它们之间具有边缘。

边成本也可以是任意的,只要它们是非负的(正或零)。

确保您的启发式仍然是可接受的。

and starting location is not a single cell but is composed of multiple closed cells;

是的,这应该是可能的。

  • 确定每个单元格的初始成本。零成本是最简单的。
  • 不是只将单个起始顶点添加到优先级队列中,而是将所有多个单元格添加到优先级队列中。

say a cluster of neighbouring cells where a neighbour of a cell is any of the eight cells surrounding it? (The ending cell is similar to that.)

目标也可以由多个单元格组成。

  • 只需使其到达任何目标单元格即可终止搜索。
  • 确保将启发式计算为每个目标单元格的单个启发式的最小值。 (即为每个目标单元格计算启发式,然后取最小值。)