摘要:

博弈是人工智能的重要研究主题,人工智能的发展在很大程度上得益于博弈研究的发展.作为博弈研究的主要内容之一,棋类博弈得到了满意的解决,唯一的例外的是围棋,目前最优秀的围棋程序的水平还不及人类初级棋手.由于围棋的搜索空间太大,计算机难于处理模糊概念且难于设计学习算法,造成了计算机围棋程序的棋力难于提高.围棋是检验人工智能发展水平的良好环境,如何提高围棋程序的棋力是人工智能领域的一大难题.同时,开发出与人类棋手水平相当的围棋程序也有助于对人类认知能力的理解.所以计算机围棋研究具有重要的理论意义和实用价值. 我们首先介绍了国内外计算机围棋研究现状,包括基础算法,搜索算法和学习算法三方面并介绍了部分计算机围棋程序,认为计算机围棋的搜索算法主要有minmax算法,alphabeta算法,failsoft算法,negmax算法,negscout算法和mtdf算法等等,涉及到的学习算法和理论基础主要有组合博弈理论,数学形态学,蒙特卡罗算法,模糊学习,分治法,强化学习算法,遗传算法,神经网络,支持向量机,贝叶斯模式分类,基于解释的泛化和并行算法等等,指出了目前研究中存在的主要不足主要表现为局面表示法欠完善,中盘策略欠完整以及学习算法欠成熟. 然后,我们简述了本研究的相关理论基础,包括数学形态学,有限状态机,线性模型,感知机与遗传算法. 接着,我们阐明了本研究提出的棋手思维模型,基础算法,搜索算法,学习算法及相应实验结果.具体说来,我们完成的主要工作与创新点包括以下几个方面: 一,提出了一个完整的棋手思维模型.这是在提出了领土领海和领空等地域概念,提出了局面的层次表示法,归纳并分类了大量围棋术语,提取了目标概念,建立了目标图,总结了若干目标选择原则和走步属性并分析了棋风概念的基础上完成的.这个模型的特点在于它的完整性和围棋术语的分类,目标选择原则与走 步属性的全面性. 二,设计了基于数学形态学的局面层次表示法,棋群聚类算法和地域划分算法.这些有统一理论基础的算法计算简单,实验结果表明其效果良好.利用已有的数学形态学理论可以设计更多有意义的启发式策略. 三,设计了PEMIS模式编码方法.它基于模式的邻近特征,行列特征和轮廓特征进行编码,其突出优点是与模式的黑白对称性,旋转与翻转对称性以及平移对称性均无关,实验结果表明这种模式编码方法性能良好.在基础算法方面,我们还设计了一种走步增量算法. 四,设计了复合目标搜索算法.我们认为复合目标可看作是由"与"或"或"关系构成的单一目标的二维向量.复合目标搜索算法的优点是其调用的基本函数可由单一目标搜索算法的基本函数合成.我们还比较了经典搜索算法的性能. 五,设计了PEMIS模式库与定式库学习算法.实验结果表明了其有效性,最终学习到的模式库与定式库占用的空间比较小.另外,还设计了ZOBRIST定式库学习算法,实验结果也表明了其有效性.在学习算法方面,我们还设计了棋形与气术语的示教学习算法和棋风模型的遗传学习算法. 六,开发了以此棋手思维模型为核心的计算机围棋程序ShoutGo,实现了上述各算法.ShoutGo认为棋手拥有模式库和定式库,有各自的棋风;棋手在完成棋群聚类和地域划分后,在目标选择原则的指引下以对方最后所下之子为焦点进行目标猜测,同样在目标选择原则及棋风的指引下生成特定目标,继而以目标为导向在各自的模式库和定式库推荐走步的作用下进行搜索发现走步,再根据走步属性选取特定走步,如果目标不成功或无可行走步,则重新进行地域划分或根据其它决策原则生成其它目标,直到发现合适走步;在这一过程中,模式库和定式库影响了走步的推荐,棋风影响了目标之间的跳转. 最后,我们探讨了棋手思维模型的评价,走步增量算法与走步扫描算法的关系,数学形态学方法在基础算法中的应用,劫与共活现象对搜索的影响,搜索树特点与心理因素的关系,搜索时间估计,局面评价函数,目标搜索的可学习性以及棋风建模等问题,并探讨了机器学习方法在计算机围棋中的应用可能性,提出了进一步的研究计划. 计算机围棋研究作为人工智能领域的一个分支,与心理学有着天然联系.我们在研究过程中,特别强调以人类棋手为本的原则,力求棋手思维模型与人类棋手真实思维过程的高度契合,力求其学习算法的完善.我们今后的研究重点将在学习算法上,能象人类棋手一样地不断地学习,计算机围棋才有希望.

展开

围棋计算机运算,计算机围棋中的算法研究相关推荐

  1. 建筑制图计算机辅助设计,计算机辅助设计AutoCAD建筑制图中绘制技巧研究.doc

    PAGE PAGE 1 计算机辅助设计AutoCAD建筑制图中绘制技巧研究 摘要建筑设计是一项创造性很强的工作,它的最终成果是以图纸的形式形象和直观地表达出来.AutoCAD技术与建筑设计的结合是计算 ...

  2. matlab人脸识别开题报告,基于人脸识别的出勤点名系统中特征提取算法研究开题报告...

    基于人脸识别的出勤点名系统中特征提取算法研究 一.本课题研究的目的,意义 人脸识别是一项既有科学研究价值,又有广泛应用前景的研究课题.国际上大量研究人员几十年的研究取得了丰硕的研究成果,自动人脸识别技 ...

  3. 计算机密码学思路,密码学中加密算法的研究和实现

    密码学是一门古老而深奥的学科,是研究计算机信息加密.解密及其变换的科学,是数学和计算机的交叉学科,也是一门新兴的学科[1].早在四千年前,古埃及人就开始使用密码来保密传递消息.两千多年前,罗马国王Ju ...

  4. 计算机网络中 碰撞检测,虚拟现实中碰撞检测算法研究

    摘要: 碰撞检测主要用于判定虚拟环境中两个(或多个)物体是否相交,是虚拟现实.虚拟制造.机器人运动规划.计算机图形学.物理仿真.三维游戏等相关领域要解决的主要关键问题之一.随着计算机技术及计算机网络的 ...

  5. 智能家居中语音识别算法研究_语音识别研究获进展

    中国科学院自动化研究所智能交互团队在环境鲁棒性.轻量级建模.自适应能力以及端到端处理等几个方面进行持续攻关,在语音识别方面获新进展,相关成果将在全球语音学术会议INTERSPEECH2019发表. 现 ...

  6. ROS-Navigation包中DWA算法研究一(DWA算法介绍)

    一.DWA算法介绍 DWA算法全称为:Dynamic Window Approach,中文为动态窗口法,其原理主要是在速度空间(v,w)中采样多组速度,并模拟这些速度在一定时间内的运动轨迹,再通过一个 ...

  7. 计算机伦理问题案例分析,基于网络环境的案例教学在《计算机伦理学》中的实践研究...

    摘要: 在信息化浪潮及多种网络信息文化的影响下,加强信息伦理道德教育,提高大学生的职业道德修养,使他们能有效识别和履行其社会责任和道德责任,具有十分重要的意义.而案例教学法作为一种比较成熟的教学方法, ...

  8. 计算机在热处理上有何应用,计算机在热处理领域中的应用

    计算机在热处理领域中的应用 廖海洪!梁敏洁 "华北工学院 材料工程系!山西 太原 #$##%&' 摘 要(本文根据国内外有关文献提供的研究结果!总结了计算机在热处理领域的应用研究现状 ...

  9. 计算机算法对程序设计的作用,计算机编程中数学算法的优化策略

    李钰 摘要:在计算机编程中,合理地运用数学算法所拥有的优势不但可以完好地针对所拥有的问题进行总结分类归纳,还可以将其归纳作为基础从而进行针对性的统一计算,并且能够将非常复杂的问题进行整体的简化并且将其 ...

最新文章

  1. 线段树练习 3P3372 【模板】线段树 1
  2. 大数据 清华 覃征_调剂到清华读研?不想去!清华大学大数据调剂生放弃录取!...
  3. Python 技术篇-按任意格式灵活获取日期、时间、年月日、时分秒。日期格式化。
  4. AOP 的利器:ASM 3.0 介绍
  5. eclipse / 绑定 OpenJDK 1.8 Java 源码的方法
  6. java setsize_Java Vector setSize()方法与示例
  7. Exchange server 2003迁移到2010无路由组连接器
  8. 喜茶多名员工与外卖小哥互殴 喜茶官方:辞退!
  9. linq 学习日记-select
  10. 数据结构排序系列详解之五 简单选择排序
  11. python库怎么绘画_python中的turtle库(图形绘画库)
  12. 用gambit学博弈-完全信息静态博弈
  13. 中国传统色彩十六进制颜色码图片大全
  14. 职称计算机初级考试题,初级职称计算机考试题库
  15. 209最新100个面试问题大全及答案
  16. 电脑怎么设置计算机系统,细说电脑怎么设置wifi
  17. Leetcode力扣 VS Code插件——面向新手
  18. 模块九:mouse、key、joystick模块
  19. 数据结构c语言版第四章题库,严蔚敏《数据结构(c语言版)习题集》答案第四章 串...
  20. 南理工紫金单片机课程设计

热门文章

  1. 新手python的100个实战项目,python练手经典100例项目
  2. 火山安卓Sqlite数据库存取图片
  3. anaconda点开后 一直停留在 loading applications 上面
  4. 教育知识与能力——简答题30题
  5. 使用minio搭建高性能对象存储-第一部分:原型
  6. Java将下划线大写方式命名的字符串转换为驼峰式
  7. stm32F407-------RTC实时时钟
  8. 连锁门店进销存软件的用途
  9. 676.实现一个魔法字典·前缀树
  10. 【韩顺平】Java线程(基础)知识点总结