规划中的启发式方法与分层规划
1. 规划中的启发式方法
在规划问题中,若没有良好的启发式函数,正向搜索和反向搜索的效率都不高。启发式函数 h(s) 用于估计从状态 s 到目标的距离,若能推导出该距离的可采纳启发式(即不高估距离),就可以使用 A* 搜索来找到最优解。
1.1 领域无关启发式的定义
规划采用状态和动作的因子化表示,这使得定义良好的领域无关启发式成为可能。可采纳启发式可通过定义一个更易求解的松弛问题来推导,该松弛问题的精确解成本即为原问题的启发式。搜索问题可看作一个图,节点为状态,边为动作,目标是找到连接初始状态和目标状态的路径。可通过两种方式松弛问题:一是在图中添加更多边,使找到路径更简单;二是将多个节点分组,形成状态空间的抽象,减少状态数量,便于搜索。
1.2 添加边的启发式方法
1.2.1 忽略前提条件启发式
这是最简单的启发式之一,它去除动作的所有前提条件。每个动作在每个状态都适用,单个目标流可在一步内实现(若有适用动作,否则问题无解)。解决松弛问题所需的步数近似于未满足的目标数量,但不完全准确,因为有些动作可能实现多个目标,有些动作可能会抵消其他动作的效果。对于许多问题,考虑前者而忽略后者可得到准确的启发式。具体做法是,去除所有前提条件和除目标文字外的所有效果,然后计算使这些动作效果的并集满足目标所需的最少动作数,这是一个集合覆盖问题。集合覆盖问题是 NP 难问题,但简单的贪心算法能保证返回的集合覆盖大小在真实最小覆盖的 logn 因子范围
超级会员免费看
订阅专栏 解锁全文
1872

被折叠的 条评论
为什么被折叠?



