NO.74——《人工智能·一种现代方法》通过搜索进行问题求解 学习笔记

问题求解Agent

如何将问题形式化?(以罗马尼亚案例为例)

  • 初始状态:In(Arad)
  • 行动:ACTIONS(s),即,给定一个状态s,ACTIONS(s)返回状态s下可以执行的动作的集合。例如状态s为 *In(Arad),动作集合( { Go(Sibiu) , Go(Timisoara) , Go(Zerind)} )
  • 转移模型:RESULT(s,a),在状态s下,执行a动作后,达到的状态。也会使用后继状态表示从一给定状态出发,通过单步行动,可以达到的状态集合。例如

                            RESULT((In(Arad) , Go(Zerind))=In(Zerind)         

  • 目标测试:确定给定的状态是不是目标状态。
    有时,目标状态是一个显示集合(已知的,明确的),测试只需要简单的检查给定状态是否在目标状态集合中。例如已知的目的地。
    有时,目标状态不是一个显式可枚举的目标状态集合,而是具备某些特定抽象属性的状态。例如,国际象棋中,目标状态是指被将死的状态,即,对方国王在己方国王攻击得无路可逃必死无疑。
  • 路径损耗:路径耗散函数为每条路径赋一个耗散值,即,边加权,罗马尼亚案例中,路径耗散可以是用公里数表示的路径长度。采用行动a从状态s走到状态s’所需要的单步耗散用c(s, a, s’)。

问题的解,是从初始状态到目标状态的一组行动序列。

解的质量,由路径耗散函数衡量,路径耗散值最小的即为最优解。

初始状态、行动和转移模型定义了问题的状态空间,即,从初始状态可以达到的所有状态的集合。

罗马尼亚地图就可以解释为一个状态空间图,结点表示状态,结点之间的弧表示行动。状态空间中的一条路径指的是通过行动连接起来的一个状态序列。

罗马尼亚案例的PEAS
(Performance性能 ,Environment环境,Actuators执行器,Sensors传感器)

可观察的:Agent总是知道当前状态,Agent在罗马尼亚开车,每到达一个城市通过观察访问标识,知道是否访问过该城市。

离散的:在任一给定状态,可选的行动是有限的,在罗马尼亚游玩时,每个城市只与有限个数城市相邻。

已知的:Agent知道每个行动达到的状态(地图显示)

确定的:每个行动的结果唯一可确定。


真空吸尘器世界的问题形式化:

  • 状态:由Agent位置和灰尘位置决定。Agent的位置有两个,每个位置都可能有灰尘。因此可能的世界状态是2*2**2=8个。对于具有n个位置的大型环境而言,状态数为n*2**n个。

  • 初始状态:任何状态都可能被设计成初始状态。

  • 行动:这个任务环境相对简单,每个状态下可执行的行动有三个:Left ,Right ,Suck。大型任务环境下可能还有Up 和 Down。

  • 转移模型:行动会产生它所期待的后果。除了左边位置不能再向左移动,右边位置不能再向右移动,干净的位置Suck不会产生效果。

  • 目标测试:检测所有位置是否干净。

  • 路径损耗:每一步耗散值为1。因此整个解路径的耗散值是路径中的步数。


八数码问题的形式化:

  • 状态:描述指明8个棋子以及空格在9个方格上的分布。
  • 初始状态:任何状态都可能是初始状态。注意要到达任何一个给定的目标,可能的初始状态中恰好只有一半可以做开始。
  • 后继函数:用来产生通过四个行动(上下左右)能够到达的合法状态。
  • 目标测试:用来检测状态是否契合目标布局。

路径损耗:每一步耗散值为1。因此整个解路径的耗散值是路径中的步数。


八皇后问题的形式化:

这类问题的形式可以划分为两类:

  1. 增量形式化(从空状态开始,每次添加一个皇后)这是最笨的方法,盲目行动:
  • 状态:棋盘山0-8个皇后的任意摆放都是一个状态。
  • 初始状态:棋盘山没有皇后。
  • 行动:在任一空格增加摆放一个皇后。
  • 转移模型:将增加了皇后的棋盘返回。
  • 目标测试:8个皇后都在棋盘山,且无法返回。
  •     思考:如果禁止把一个皇后放到可能被攻击的格子里,这样的形式化更好?
  •                状态:n皇后在棋盘山任意摆放,满足从最左边n列中每列一个皇后,保证没有皇后能攻击另一个。
  •                行动:最左侧的空列中选择一格摆放一个皇后,要求该皇后无法受到其他皇后攻击。
  1. 完整状态形式化
  • 状态:8个皇后的任意摆放都是一个状态。
  • 初始状态:棋盘上有8个皇后。
  • 行动:选择一个皇后移动。
  • 转移模型:将移动后的棋盘返回。
  • 目标测试:8个皇后都在棋盘上,且相互之间无法攻击。

无论哪种情况,都不需要考虑路径消耗,只需考虑最终状态。



              

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值