人工智能(搜索策略)

一.状态空间法
 

 1)状态

状态(State)是表示问题求解过程中每一步问题状况的数据结构,它可形式地表示为: Sk = {Sko,Sk1,.… },当对每一个分量都给以确定的值时,就得到了一个具体的状态。

2)操作

操作(Operator)也称为算符,它是把问题从一种状态变换为另一种状态的手段。操作可以是一个机械步骤,一个运算,一条规则或一个过程。操作可理解为状态集合上的一个函数,它描述了状态之间的关系。

3)状态空间

状态空间(State space)用来描述一个问题的全部状态以及这些状态之间的相互关系。常用一个三元组表示为:(S,F,G)其中,S为问题的所有初始状态的集合;F为操作的集合;G为目标状态的集合。状态空间也可用一个赋值的有向图来表示,该有向图称为状态空间图。在状态空间图中,节点表示问题的状态,有向边表示操作。

状态空间问题的例子:

例3.1二阶梵塔问题。设有三根柱子,它们的编号分别是1号、2号和3号。在初始情况下,1号柱子上穿有A和B两个圆盘,A比B小,A位于B的上面。要求把这两个圆盘全部移到另一根柱子上,而且规定每次只能移动一个圆盘,任何时刻都不能使大圆盘位于小圆盘的上面。

 三.博弈树的启发式搜索

1.概述

博弈是一类具有智能行为的竞争活动,如下棋、打牌、战争等。博弈可分为双人完备信息博弈和机遇性博弈。所谓双人完备信息博弈,就是两位选手对垒,轮流走步,每一方不仅知道对方已经走过的棋步,而且还能估计出对方未来的走步。对弈的结果是一方赢,另-方输,或者是双方和局。这类博弈的实例有象棋、围棋等。所谓机遇性博弈是指存在不可预测性的博弈,如掷币等。

若把双人完备信息博弈过程用图表示出来,就得到一棵与/或树,这种与/或树被称为博弈树。在博弈树中,那些下一步该MAX走步的节点称为MAX节点,下一步该MIN走步的节点称为MIN节点。博弈树具有如下特点:

(1)博弈的初始状态是初始节点;

(2)博弈树中的“或”节点和“与”节点逐层交替出现的;

(3)整个博弈过程始终站在某一方的立场上,例如MAX方。所有能使自己一方获胜的终局都是本原问题,相应的节点是可解节点;所有使对方获胜的终局都是不可解节点。

2.极大极小过程

对简单的博弈问题,可生成整个博弈树,找到必胜的策略。但对于复杂的博弈问题,不可能生成整个搜索树,如国际象棋,大约有10120个节点。一种可行的方法是用当前正在考察的节点生成一棵部分博弈树,并利用估价函数f(n)对叶节点进行静态估值。一般来说,那些对MAX有利的节点,其估价函数取正值;那些对MIN有利的节点,其估价函数取负值;那些使双方均等的节点,其估价函数取接近于0的值。

为了计算非叶节点的值,必须从叶节点开始向上倒退。其倒退方法是:对于MAX节点,由于MA×方总是选择估值最大的走步,因此,MAX节点的倒退值应该取其后继节点估值的最大值。

 

 3. a-β剪枝

上节的极大极小过程是先生成与/或树,然后再计算各节点的估值,这种生成节点和计算估值相分离的搜索方式,需要生成规定深度内的所有节点,因此搜索效率较低。如果能边生成节点边对节点估值,并剪去一些没用的分枝,这种技术被称为aα-β剪枝。

a-β剪枝的方法如下:

(1)MA×节点(或节点)的a值为当前子节点的最大到推值。

(2)MIN节点(与节点)的β值为当前子节点的最小倒推值。

a-β剪枝的规则如下:

(1)任何MA×节点n的a值大于或等于它先辈节点的β值,则n 以下的分枝可停止搜索,并令节点n的倒推值为a。这种剪枝称为β剪枝。

(2)任何MIN节点n的a值小于或等于它先辈节点的a值,则n 以下的分枝可停止搜索,并令节点n的倒推值为β。这种剪枝称为a剪枝。

下面来看一个a-β剪枝的具体例子,如下图(见下一页)所示。其中最下面一层端节点旁边的数字是假设的估值。在该图中,L、M、N的估值推出节点F的到推值为4,即F的β值为4,由此可推出节点C的到推值>4。

 

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值