您的位置:首页 > 大数据 > 人工智能

北京理工大学人工智能第一次作业

2012-10-16 22:06 239 查看
第一题:请用状态空间表示与A*搜索算法求解如下问题:U2合唱团在17分钟内得赶到演唱会场,途中必需跨过一座桥,四个人从桥的同一端出发,你得帮助他们到达另一端,天色很暗,而他们只有一只手电筒。一次同时最多可以有两人一起过桥,而过桥的时候必须持有手电筒,所以就得有人把手电筒带来带去,来回桥两端。手电筒是不能用丢的方式来传递的。四个人的步行速度各不同,若两人同行则以较慢者的速度为准。
Bono需花1分钟过桥 Edge需花2分钟过桥 Adam需花5分钟过桥
Larry需花10分钟过桥他们要如何在17分钟内过桥呢?(微软笔试题)

 

解答:

估值函数

f(n)=g(n)+h(n)

g(n)定义为已经过去的时间

h(n)表示估计剩下需要花费的时间,当有三个人未过桥时,h(n)为其中所需最大过桥时间和最小过桥时间之和,当有两个人未过桥时,h(n)为其中所需最大过桥时间,当有一个人未过桥时,h(n)即为所需过桥时间。由于此时并不考虑为了传递手电筒需要的返回时间,故h(n)不会比真实时间长,估计有效。

 



 

 

批改:状态空间表示正确。启发式函数设计正确。

 

 

第二题:设有如图所示的一颗博弈树,其中末一行的数字是页顶点的静态估值,请对博弈树做如下工作:

(1)      
用极大极小值法计算各节点的倒推值。

(2)      
用剪枝技术剪去不必要的分枝。(在剪枝处用╳标记)。



 



 

批改:倒推值计算正确。剪枝过程正确。

 

 

 

 

第三题:查找资料,针对一个使用博弈树方法来解决的问题,说明其顶点估值的方法。(例如中国象棋博弈中顶点估值的方法)

 

解答:例如在围棋吃子问题中,吃子计算的目的是要得到一块棋能否被吃死或者能否逃脱以及如何吃死或者逃脱。该问题可以使用博弈树的方法进行求解,用到的是proof-number搜索。
对于节点的估值,使用对目标棋块的关键链的评估值作为中间节点和叶子节点的评估值:
Node Evaluation = # Crucial chain’s First liberties 3 4 + # Crucial chain’s Second liberties
p n
搜索将节点分为2 种:与节点和或节点.
在每个与节点努力去否证节点,在每个或节点努力去证明节点.
在每个节点上使用2 个数值:proof number ——最少需要展开的叶子节点去证明此节点的数目; disproof number ——最少需要展开的叶子节点去否证此节点的数目。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: