我目前正在研究一个计算机器人移动成本的作业问题(位置 x,y)。
我们得到了一个带有多个障碍物(符号)的二维网格(二维数组)的维度##
。下面是一个示例网格。我们还得到了机器人的起始位置。在当前位置,它的“成本”为00
(固定)。
..................................................
........................................##........
........................................##........
........................................##........
..........######################################..
........................................##........
........................................##........
........................................##........
....################..........00........##........
....################....................##........
....################....................##........
....################....................##........
........................................##........
..................................................
..................................................
作业中需要计算每个未知网格的成本..
(
水平移动 +2 到前一个网格的成本。
对角线移动 +3 上一个网格的成本。
机器人不能穿越和障碍,必须绕过它。
每个值都必须具有最低成本(例如:对角线行驶的成本低于水平和垂直行驶的成本)。
下面是我们应该得到的结果(仅显示成本的最后两位数,省略了一些值,因此更具可读性):
http://i.stack.imgur.com/JiDl1.png
现在我无法想象/解决这个问题。我们被告知它“在道德上就像冒泡排序算法”,每次找到新的最小成本时,都会重新计算一切。
抱歉,如果这非常令人困惑,任何建议(代码或伪代码将非常受欢迎)