五子棋完成算法设计.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
五子棋完成算法设计

以下是我关于五子棋实现人工智能的初步想法,有待完善 3步定式开局 电脑执黑(先走) 则 然后根据白棋的走法: If (直贴防守) 电脑下 (此开局为花月,黑子必胜开局,黑方优势极大) If (斜贴防守)或者其他地方,即不是直贴位置 电脑下 (此开局为浦月,也是黑子必胜开局) 由于开局简单,且棋盘上没有子,不好做人工智能判断,而且此两开局是黑方优势最大的走法,实现简单,所以我们可以直接硬性执行 电脑执白(后走) 人的走法可完全视为 电脑可以斜贴或者直贴 人走贴边和角落情况是极端位置,如果是这样则电脑可以走 无视人走的第一步,接下来的走法视为电脑先行 专家系统中的规则: 连5 v(x)=120 封5 v(x)=60 活4 v(x)=30 封活4 v(x)=12 冲4 v(x)=9 封冲4 v(x)=6 活3 v(x)=5 跳3 v(x)=5 冲3 v(x)=2 活2 v(x)=2 此处是一些五子棋落子的术语,参考文献 HYPERLINK /view/679408.htm /view/679408.htm 具体当面解释,权值v(x)是经过我经验和思考后权衡过的,有待测试改善。 h(x)=v1(x)+v2(x)+ v3(x)+…vn(x) 即对于一个空位置,判断落子的价值,落子后满足专家系统中的10条规则,一步棋可以满足多条规则,一个规则可被满足多次,然后将所有的满足的规则,将权值加起来赋予h(x)图解如下: 1 3 X X X 2 X 4 如果下1,则 X X X X X 形成一个活3,两个活2,h(x)=v(活3)+2*v(活2)=5+2*2=9 如果下3,则 X X X X X 行成一个活4,一个活2,h(x)=v(活4)+v(活2)=30+2=32 显然32大,故应该执行3这个位置 启发博弈应用 电脑评估有个极大极小的过程, 初步设计是有个价值条,0--------100 初始值t(x)为50,每在预测过程中行动一步都将改变价值条的值t(x) 执黑:t(x)=t(x-1)+h(x) 执白:t(x)=t(x-1)-h(x) t(x)越大黑方越有优势,白方相反 局部最佳搜索 定式开局后,则棋盘上有3个棋子,将此3棋子放入closed(),表示已经写过的位置, 将这3个子的拓展16位置(即8个方向延伸2格如图所示) x X X x x X X x 1 x X X x X x x x 先判断该位置是否在open(),或者closed(),若都不在,则将该位置加入open()。如果执行评估。 评估open()中的各个位置的价值,先将open()复制到test(),将closed()复制到down()。 Begin t(x)=50; test()= [s0s1s2…sn], down()= [d0d1d2…dn], 对test()中每个位置根据专家系统规则给予该点h(x),排列顺序,高的放左边。 for(i=0;i3;i++) //i根据智能等级设置,此为搜索宽度 { 将s0移至down(),将此点的h(x)计入t(x) If win,return else begin 产生s0的拓展16点,作为其孩子c0,c1,c2…cn 判断孩子是否在test()或down(),将不在的加入test() 评估test(),循环3次 //根据智能等级设置搜索深度 选出最好的3条路径 //经过3*3*3的拓展搜索后将有27条路径 随机选一条路径执行,除非差距在t(x)10以上 //避免程序陷入固定的途径 } end 取极大值搜索树如下: 取极大值 [s0s1s2…sn] 取极小值取极小值取极小值 取极小值 取极小值 取极小值 排序 排序 排序 取极大值取极大值取极大值 取极大值 取极大值 取极大值 [s0…sn] [s0…sn] [s0…sn] [s0…sn] [s0…sn] [s0…sn] [s0…sn] [s0…sn] [s0…sn] 根据智能等级设置 路径数: 3*3*3=27 新手等级 35 =243

文档评论(0)

jgx3536 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档