在某些规模太大的问题状态空间内,A*往往不够用
解决方案
非常简单的修改:
可以做到非常高效
每当使用爬山时都应该尝试
快速、易于实施;对于解决方案空间表面不太“颠簸”(即不太多局部最大值)的许多应用来说,效果很好
仍然以8皇后问题为例:
思想: 通过允许一些“坏”动作,但逐渐降低其频率,来逃避局部最大值
可以证明:如果T下降得足够慢,那么模拟退火搜索将找到概率接近1的全局最优
广泛应用于超大规模集成电路布局、航空公司调度等
局部搜索算法——通往目标的路径是不相关的;目标状态本身就是解决方案,保持单一的“当前”状态,并尝试改进它
登山搜索
模拟退火搜索
局部剪枝搜索
遗传算法
好的启发式搜索能大大提高搜索性能
但由于启发式搜索需要抽取与问题本身有关的特征信息,而这种特征信息的抽取有时会比较困难,因此盲目搜索仍不失为一种有用的搜索策略
好的搜索策略应该
搜索树 vs 搜索图