人工智能第4章 超越经典搜索

本章考虑对一个或多个状态进行评价和修改,而不是系统地搜索从初始状态开始的路径。也就是说,本章注重找到解状态,而忽略初始状态到解的路径。

● 遗传算法是维护大量状态种群的随机爬山搜索。新的状态通过变异和杂交产生,杂交把来自种群的状态对结合在一起。
● 在不确定的环境中,Agent可以应用AND-OR搜索来生成应急规划达成目标,无论执行过程中产生怎样的后果。
● 当环境是部分可观察时,用信念状态表示Agent可能在的状态集合。
● 标准的搜索算法可直接应用于信念状态空进行无感知问题求解,信息状态AND-OR搜索可以解决一般部分可观察问题。在信念状态空间中逐个状态构造解的增量算法通常效率更高。
● 探索问题发生在Agent对环境的状态和行动一无所知时。对于可安全探索的环境,联机搜索 Agent 能够建造地图并且在有解时能够找到目标。根据经验不断修正启发式估计,是一种避免局部极小值的有效方法。

4.1 局部搜索和最优问题

局部搜索算法从单一当前节点出发,通常只移动到它的临近状态。
优点:内存消耗很小,适用于 系统算法不适用的 很大或无限的状态空间中 寻找合理的解。 状态空间地形图(见下),坐标(表示状态),高度(表示代价函数或目标函数)。如标高对应代价,最低谷即全局最小值。如标高对应目标函数,最高点即全局最优解。
在这里插入图片描述

爬山算法

  1. 首选爬山算法
      随机寻找该点X的邻近点中首次出现的比点X价值高的点,并将该点作为爬山的点(此处说的价值高,在该题中是指Z或f(x,y)值较大). 依次循环,直至该点的邻近点中不再有比其大的点. 我们成为该点就是山的顶点,又称为最优点. 在后继结点很多时是个好策略。不完备

  2. 最陡爬山算法
      最陡爬山算法是在首选爬山算法上的一种改良,它规定每次选取邻近点价值最大的那个点作为爬上的点。不完备

  3. 随机重启爬山算法
      随机重新开始爬山算法是基于最陡爬山算法,其实就是加一个达到全局最优解的条件,如果满足该条件,就结束运算,反之则无限次重复运算最陡爬山算法.如果每次爬山法搜索成功的概率为p,那么需要重新开始搜索的期望次数为1/p,完备概率接近于1。

模拟退火

模拟退火其实也是一种贪心算法,但是它的搜索过程引入了随机因素。模拟退火算法以一定的概率来接受一个比当前解要差的解,这个概率随着时间推移逐渐降低(逐渐降低才能趋向稳定)因此有可能会跳出这个局部的最优解,达到全局的最优解。

模拟退火算法的优缺点模拟退火算法的应用很广泛,可以高效地求解NP完全问题,如货郎担问题(Travelling Salesman Problem,简记为TSP)、最大截问题(Max Cut Problem)、0-1背包问题(Zero One Knapsack Problem)、图着色问题(Graph Colouring Problem)等等,但其参数难以控制,不能保证一次就收敛到最优值,一般需要多次尝试才能获得(大部分情况下还是会陷入局部最优值)。观察模拟退火算法的过程,发现其主要存在如下三个参数问题:
  (1) 温度T的初始值设置问题
  温度T的初始值设置是影响模拟退火算法全局搜索性能的重要因素之一、初始温度高,则搜索到全局最优解的可能性大,但因此要花费大量的计算时间;反之,则可节约计算时间,但全局搜索性能可能受到影响。
  (2) 退火速度问题,即每个T值的迭代次数
  模拟退火算法的全局搜索性能也与退火速度密切相关。一般来说,同一温度下的“充分”搜索是相当必要的,但这也需要计算时间。循环次数增加必定带来计算开销的增大。
  (3) 温度管理问题
  温度管理问题也是模拟退火算法难以处理的问题之一。实际应用中,由于必须考虑计算复杂度的切实可行性等问题,常采用如下所示的降温方式:
T=α×T.α∈(0,1).
注:为了保证较大的搜索空间,α一般取接近于1的值,如0.95、0.9。

特点:

  1. 迭代搜索效率高,并且可以并行化
  2. 算法中有一定概率接受比当前解较差的解,因此一定程度上可以跳出局部最优算法求得的解
  3. 与初始解状态S无关,因此有一定的鲁棒性
  4. 具有渐近收敛性,已在理论上被证明是一种以概率1收敛于全局最优解的全局优化算法

局部束搜索

记录k个状态而不是1个状态,从k个随机生成的状态开始,每一步生成所有k个状态的所有后继状态。如果有一个后继满足条件,则终止。否则,从整个后继列表中选择k个最佳的后继,重复这个过程。
并行的随机重启算法每个搜索过程都是独立的;局部束搜索中,信息在搜索过程中传递。

遗传算法

局部束搜索的变形,通过将两个亲本结合后生成后继。从k个随机生成的状态(种群)开始,每个状态称之为个体。
在这里插入图片描述

具体案例实现《基于遗传算法的排课设计》
https://blog.csdn.net/weixin_42062229/article/details/94504604

对比

遗传算法:
优点是能很好的处理约束,能很好的跳出局部最优,最终得到全局最优解,全局搜索能力强;
缺点是收敛较慢,局部搜索能力较弱,运行时间长,且容易受参数的影响。

模拟退火:
优点是局部搜索能力强,运行时间较短;
缺点是全局搜索能力差,容易受参数的影响

爬山算法:
显然爬山算法较简单,效率高,但是处理多约束大规模问题时力不从心,往往不能得到较好的解。

4.2 连续空间的局部搜索

首选爬山法和模拟退火能处理连续状态和动作空间,连续空间的分支因子是无限的;最陡爬山法、随机爬山法、 局部束搜索需要产生有限个后继,因此不可行。
◼ 遗传算法对状态编码,假设n个比特位,最多表示2^{n}个状态,无法表示连续空间中无限多个状态。
离散化、使用梯度、牛顿法
约束优化问题

4.3 使用不确定动作的搜索

环境不确定,信息由感知提供。Agent的未来行动依赖于未来感知信息。问题的解是应急规划/条件规划而不是一个序列。是嵌套的if-then-else语句;这就意味着是树而不是序列。这就允许了在执行过程中根据发生的应急情况进行选择。
在这里插入图片描述

在这里插入图片描述

4.4 环境的可观察性

完全不可观察环境:要求无感知信息问题,要在信念状态空间中搜索,在信念状态空间中,问题是完全可观察的,所以解是一个行动序列。

如果一个行动序列是信念状态b的解,那么它也是b的任何子集的解,每个信念状态太大怎么办:

  • 用更紧凑的方式表示信念状态;
  • 设计增量的信念状态搜索算法,每次处理一个物理状态来求解。

4.5 联机搜索和脱机搜索

脱机搜索:计算出完整的方案(然后“闭着眼睛”执行该方案),脱机搜索只涉及计算过程,不涉及动作执行过程。脱机算法在状态空间的一部分扩展一个结点后
,能马上跳到状态空间的另一部分扩展另一个结点。

联机搜索:计算和动作执行交替进行。先采取某个行动,然后观察环境变化并且计算出下一行动。联机算法只会扩展它实际占据的结点。根据经验不断修正启发式估计,是一种避免局部最小值的方法。

 Agent不清楚自身的状态和行动的结果,这时的Agent面临联机搜索问题
在这里插入图片描述

在这里插入图片描述
脱机DFS:S A D E C G
联机DFS:S A D A E A S C G 不是模拟,是实际经历,状态空间的行动必须可逆。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值