人工智能第2版学习——知情搜索1

本文介绍了启发式搜索在解决复杂问题中的优势,如爬山法、最陡爬山法、最佳优先搜索和集束搜索。爬山法不存储历史记录,容易陷入局部最优;最陡爬山法则在多个较好节点中选择最佳;最佳优先搜索通过评估节点接近目标的程度来选择;集束搜索在每层选择最优的W个节点,平衡效率与解决方案质量。这些方法广泛应用于棋盘游戏等具有大规模搜索空间的问题。
摘要由CSDN通过智能技术生成

书:人工智能第2版
有需要电子版的可以私信我。

这次先简要介绍启发法与前面的盲目搜索的区别,然后讲爬山法、最佳优先搜索、集束搜索。

引言

       第二章的盲目搜索,对解决Nim、井字游戏是适用的。但是对于跳棋、国际象棋这种拥有巨大搜索空间的游戏,就难以适配了。例如前面学的DFS和BFS,在最坏的情况下,时间复杂度都是指数级别的(相对于节点)。

       所以我们需要采用启发法的搜索算法,引导程序前进。
这次先学习3个“从不回头”的算法:爬山(hill)、最佳优先搜索(best-first search)、集束搜索(beam search)。

爬山法

       爬山法不存储历史记录,也没有能力从错误中或错误路径中恢复。
       对于一个爬山者,他只有一个高度计来指示目前所在高度,他每到一个点,必须做出选择,选择的方式就从候选节点中,选择高的那个。看下面的图:
在这里插入图片描述
       爬山者在A和B中做出选择,因为A更靠近目标,所以选择了A,然后忘记了B,但实际上A能否真的到达目标,这个就不能保证了。

最陡爬山法

       这个是对爬山法的进一步改进。爬山法每次都是直接找一个比现在好的节点就前进,但是最陡爬山法会在多个比较好的节点中进行比较,选出最好的。
用书中给的例子来解释吧。
在这里插入图片描述

       书中对这个例子的解释有点看不太懂,我就按我自己的理解来解释吧。

在程序中,假设搜索的方式是按字母顺序来的。
爬山法:先搜索A和B,发现B更小,就选择了B,然后去了C,接着对比D和E,选择了E。
最陡爬山法:先搜索A、B、C,然后选择了C,接着搜索D、E、F,然后选择了F。

(这里爬山法为什么能选了B之后再去C,其实我也持怀疑态度,但是书中这里好像就是这么写的,它的本意可能是想说明第一次选择时,爬山法选了B而不是C,但最陡爬山法选了C,然后假设两种算法都选了C,那么下一步是怎么选的。可能是这么回事吧,有人看懂的麻烦纠正一下。)

爬山法的问题

       爬山法和最陡爬山法都有三个问题(个人感觉就是一个问题),分别是山麓问题、高原问题、山脊问题。见下图:
在这里插入图片描述
山麓问题:找了个小的峰,知道最大的峰在那里,但是永远到不了,因为它和现在这个位置之间有一个很低的谷。根据爬山法的搜索选择方式,不可能往低的地方走,所以到不了。
高原问题、山脊问题:这两个总感觉和前面那个一样的,我就不解释了。

一句话:陷入了局部最优解。

最佳优先搜索

       这个搜索方法可以补救爬山法的问题,它是目前第一个智能搜索算法。
       先明确两个定义:
开放节点:搜索边缘上的节点,以后可能要进一步探索到。
封闭节点:不再探索的节点,将形成解得基础。
最佳优先搜索:开放列表中的开放节点按接近目标的估计值进行排列。每次搜索,考虑开放列表中最优希望的点,这样反复选择最优的进行探索。
看伪代码和图例可能会好理解些:
在这里插入图片描述

在这里插入图片描述

集束搜索

大白话就是,每层选择都是选择最优的W个,而不是1个。W叫集束宽度。
下图是W=2的示例图。
在这里插入图片描述
集束搜索降低了广度优先搜索的内存开销(从指数降低到线性),但是,如果W太小,可能会是去潜在的解。

这次就到这里了,可以点个赞吗?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小欣CZX

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值