best-first search--转

转自网上搜的一篇PPT《AI-Ch02.ppt》,PPT是繁体的,用Google翻译转成简体。这里对这个算法说的最详细简明。

(一).

这个搜寻法只是根据最佳化的评估函数来选择下一个搜寻的节点。当评估函数的准确度愈高,则愈可能找到最佳的节点反之,评估函数可能无作用,甚至可能导至错误的搜寻。它使用一些估计解答成本的测量方式,并设法朝最低成本的方向进行搜寻。

为了使搜寻更精确,因此估计解答成本的测量必须加上到达结束状态的路径成本估计。
以下为使用通用搜寻演算法来描述「最佳解优先搜寻法」的方式:

function BEST-FIRST-SEARCH (问题描述, 评估函数) 传回解答或宣告失败
顺序函数← 依评估函数决定的节点展开顺序
传回GENERAL-SEARCH (问题描述, 顺序函数)
(二)

以井字游戏为例,若电脑是“o”,对手是“x”,且评估函数定义为:
F(x)=同一行及对角线的其他空白个数´1
同一行及对角线的“o”个数´2 Y(X)
Y(X)= 0 若该一行及对角线的“x”个数为0
         = –1 若该一行及对角线的“x”个数为1
         = 2 若该一行及对角线的“x”个数为4
假设目前的盘面状况如下:
一开始全部都是空格

A1

A2

A3

A4

A5

A6

A7

A8

A9

若由电脑先下,则(´为乘号,以下皆同,这里显示不清楚)

F(A1)=(2+2+2) ´1 + (0+0+0) ´ 2 + (0+0+0) = 6

F(A2)=(2+2) ´1 + (0+0) ´ 2 + (0+0) = 4

F(A3)=(2+2+2) ´1 + (0+0+0) ´ 2 + (0+0+0) = 6

F(A4)=(2+2) ´1 + (0+0) ´ 2 + (0+0) ´ 2 = 4

F(A5)=(2+2+2+2) ´1 + (0+0+0) ´ 2 + (0+0+0) = 8

F(A6)=(2+2) ´1 + (0+0) ´ 2 + (0+0) = 4

F(A7)=(2+2+2) ´1 + (0+0+0) ´ 2 + (0+0+0) = 6

F(A8)=(2+2) ´1 + (0+0) ´ 2 + (0+0) ´ 2 = 4

F(A9)=(2+2+2) ´1 + (0+0+0) ´ 2 + (0+0+0) ´ 2 = 6

因此电脑选择A5;若对手选择A1,则盘面状况如下:

X

A2

A3

A4

O

A6

A7

A8

A9

依同样的评估函数,可算出

F(A2)=(1+1) ´1 + (1+0) ´ 2 + (-1+0) = 3

F(A3)=(1+1+2) ´1 + (0+1+0) ´ 2 + (-1+0+0) = 5

F(A4)=(1+1) ´1 + (1+0) ´ 2 + (0-1) = 3

F(A6)=(1+2) ´1 + (1+0) ´ 2 + (0+0) = 5

F(A7)=(1+1+2) ´1 + (0+1+0) ´ 2 + (-1+0+0) = 5

F(A8)=(1+2) ´1 + (1+0) ´ 2 + (0+0) = 5

F(A9)=(0+2+2) ´1 + (0+1+0) ´ 2 + (0-1+0) = 5

由此可知,A3、A6、A7、A8 及A9都是不错的选择,假设电脑选择A3;若对手选择A7,则盘面状况如下:

X

A2

O

A4

O

A6

X

A8

A9

依同样的评估函数,可算出
F(A2)=(0+1) ´1 + (1+1) ´ 2 + (-1+0) = 4
F(A4)=(0+1) ´1 + (0+1) ´ 2 + (4+0) = 7
F(A6)=(1+1) ´1 + (1+1) ´ 2 + (0+0) = 6
F(A8)=(1+1) ´1 + (0+1) ´ 2 + (-1+0) = 3
F(A9)=(1+0+1) ´1 + (0+1+1) ´ 2 + (-1+0+0) = 5
因此电脑选择A4;若对手选择A6,则盘面状况如下:

X

A2

O

O

O

X

X

A8

A9

依同样的评估函数,可算出
F(A2)=(0+1) ´1 + (1+1) ´ 2 + (-1+0) = 4
F(A8)=(1+1) ´1 + (0+1) ´ 2 + (-1+0) = 3
F(A9)=(1+0+0) ´1 + (0+1+1) ´ 2 + (-1+0-1) = 3
因此电脑选择A2;若对手选择A8,则盘面状况如下:

X

O

O

O

O

X

X

X

A9

最后电脑选择A9,双方以合局结束。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值