人工智能学习笔记


1.目标树:

在发现问题解决问题过程中,我们可以建立一棵目标树,目标树表示的是解决问题的具体步骤,分支和循环。

2.深度优先和广度优先:

深度优先:在一支到达终点后,可以选择回溯到之前的分支然后对第二支进行运算直到重点,以此类推,直到找到问题的解答。(列式查找)

 

广度优先:一层一层的查找数据,直到找到解答或达到最后一层。(层式查找)

 

 

注意:1.深度优先相对于广度优先来说,查找的次数更少,故深度优先更加高效。

 

2.可以通过过滤层来过滤掉不可能的或重复的分支,以提升效率。

 

3.广度优先空间复杂度大(占用内存多),时间复杂度小,但可以找到最优解(花费较多时间)

深度优先时间复杂度大,空间复杂度小,一般只能找到一个满意解(但可以快速靠近目标)

 

 

 

 

3.爬山算法和束搜索

爬山算法是深度优先算法的改良

爬山算法:始终关注的是当前位置离目标位置的距离远近在选择分支时,选择离目标更近的那一支,而不是从左到右进入分支。(需要回溯)

 

 

束搜索是广度优先的改良

束搜素:在广度优先的基础上,加入束宽(束宽是限制束搜索的参数,即每一层只能取最优的束宽个分支)

4.极大极小值算法和剪枝算法

剪枝算法(α-β算法)是对极大极小值算法的改进,透过反向评估,筛选掉一部分不可能或无用的分支,极大的提高了运算效率。

参考:https://www.zhihu.com/question/27221568

极小极大和剪枝算法曾在IBM开发的国际象棋超级电脑,深蓝(Deep Blue)中被应用,并且两次打败当时的世界国际象棋冠军。

 

下面我用ProcessOn画了一个图用于说明

这是一棵选择树,

在象棋(极大极小值法)中,极大值者总是选择分值最大的选项,极小值者总是选择分值最小的选项,每一层代表一次选择那么:

 

在计算机运算过程中

 

假设D=2 ,E=6,F=1,G=9

1.计算机从左到右,当遍历到D时

因为D是由MIN来选择的,因为B是由MAX选择得到的,所以 B<=2,

A是由MAX来选择的所以 A>=2

2.当遍历到F时

因为F=1,所以 C<=1,

因为B<=2 C<=1 且 此时由MAX作出选择,他一定会选择 B这一支,

此时就可以使用剪枝算法,切掉A-C这一支,大大提高效率。

 

 

 

注意:

极大值极小值算法,剪枝算法是针对2者进行博弈的算法,可能拿不到真正的极大值(例如上题中的9),但是通过这个算法可以尽量提高自己分数,降低敌人分数。

 

在运算中,能计算出更深层次(步数)的结果,就能以更高的胜率赢下对手

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值