约束规划中学习值启发式方法的探索
在优化问题的求解过程中,搜索启发式方法起着至关重要的作用,它能够帮助我们快速找到优质的解决方案。搜索启发式方法大致可分为变量选择启发式和值启发式两部分。变量选择启发式用于挑选要进行分支的变量,而值启发式则决定尝试的首个值。
目前已经存在多种自主搜索启发式方法,如首次失败、VSIDS、domwdeg、基于影响的搜索、基于解计数的搜索以及基于动作的搜索等。不过,大多数这些方法更侧重于变量选择,因为这对减小搜索树的规模至关重要。虽然部分方法,如基于影响和基于动作的搜索也会生成值启发式,但整体上对于值启发式的研究仍有提升空间。
1. 值启发式的任务与挑战
对于一个最大化问题,给定当前域 (D) 和要分支的变量 (x),值启发式的任务是确定 (x) 当前域中值的探索顺序。通常通过定义一个评分函数 (g(D, x, v)) 来实现,该函数给出在当前域 (D) 下将值 (v) 赋给 (x) 的优劣评分。然后根据这些评分对值进行排序,并按评分降序访问。理想情况下,若 (g(D, x, v_1) \geq g(D, x, v_2)),则 (x = v_1) 分支下的最优值应大于或等于 (x = v_2) 分支下的最优值,这样就能迅速找到最优解。但在实际中,完美的评分函数往往难以计算,因此我们通常寻求一种能将优质或最优分支排在前面的启发式方法。
许多优化问题都有手动设计的良好评分函数,可帮助求解器快速找到优质解。然而,手动设计评分函数既耗时又需要用户具备专业知识。所以,开发适用于多种问题的自主搜索启发式方法具有重要价值。
2. 现有方法的不足与改进方向
现有的一些自主搜索启发式方法,如基于影响的搜索和基
超级会员免费看
订阅专栏 解锁全文
962

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



