以下问题是我从一门人工智能课程中找到的考试练习题目。 提出一种启发式机制,使用山峰爬升算法解决此问题。(S=起点,F=终点/目标)。不允许对角线移动。由于明显的曼哈顿距离或欧几里得距离会将机器人发送到(3,4),且不允许回溯,因此有什么可能的解决方案(启发式机制)来解决这个问题?编辑:为了使问题更清晰,我在板上标记了一些曼哈顿距离。 很明显,使用曼哈顿距离,机器人的下一步移动将会在(3,4),因为它具有启发式值2 - HC将选择该点并永远卡住。我们的目标是通过找到合适的启发式算法,尽可能避免走这条路。
我认为障碍物是热的,而且热气会向上升。我将一个单元格的净成本定义为到F的曼哈顿距离之和加上一个热度惩罚。因此,有一种吸引力把机器人朝向F,还有一种排斥力使其远离障碍物。这里有两种类型的热度惩罚:1)触碰障碍物非常不好。查看给定单元格下面一行中的2或3个相邻单元格。对于每个直接在给定单元格下方的障碍单元格,添加15,对于每个在给定单元格下方的对角线邻居,添加10。2)对于没有直接接触障碍物的单元格,热度更加扩散。我计算它为每个单元格下面所有阻碍块数的平均值乘以6,包括它所在列和相邻列中的阻碍块数。以下展示了所有内容的组合结果以及从S到F的路径: 一个关键点是平均化如何导致机器人在撞到顶行时向左转而不是向右。左侧的未加热列使其成为更凉爽的方向。有趣的是,所有单元格(可能除了右上角的两个单元格)都被这种启发式方法吸引到F。