爱恩斯坦棋计算机博弈系统的研究与实现

【摘要】:计算机博弈,也称机器博弈,是一个极具挑战与发展前景的计算机研究领域,其作为人工智能领域一个极其重要的课题,素有人工智能领域“果蝇”之称。而对于棋类游戏的研究又是计算机博弈研究过程中的一个标准且极为重要的问题。现有的很多重要理论和技术方法诸如各类搜索算法及智能方法,最初的提出都是为了解决存在于棋类博弈中的某些问题。对于计算机博弈的研究最早可以追溯到半个世纪之前,在过去的五六十年里,人工智能的学者们呕心沥血的研究了计算机博弈中的包括奥赛罗、国际象棋、跳棋、五子棋、围棋等等,取得了大量傲人的成果。97年IBM的“深蓝”战胜棋王卡斯帕罗夫更是引起了世人的瞩目与震动,让世人第一次意识到冰冷的机器在棋类博弈上的智能超越了人类;而在不久之前,人机围棋大战巅峰对决——谷歌围棋人工智能AlphaGo VS人类顶尖棋手李世石刚刚落幕,AlphaGo以4:1击败李世石,从某种层面上来说机器的智能已经远远超过了人类。相比于国外,国内对于此方面的研究起步较晚,但是随着这几年的国内各种博弈比赛的开展,吸引了越来越多的学生与学者参与博弈的研究,国内的计算机博弈研究迎来了黄金期,极大的促进了国内计算机博弈研究的发展。传统的机器博弈模型多是完全信息博弈,即在对弈过程中完全了解其他对手的状态特征、策略和得益方式,现有的机器博弈研究大多以此类为研究载体,如五子棋、象棋等等。此种棋类的数据结构和局面状态描述设计依赖于准确的状态策略信息,搜索引擎也有现成的模板可供参考。本文的研究对象爱恩斯坦棋博弈属于不完全信息博弈,对博弈过程中的信息了解不完全,在进行数据结构和局面状态描述设计之前,需要先对其他对手的状态特征等信息进行一个估计,让博弈信息“伪完全化”,然后再进行相关设计,同样,需要对传统的博弈搜索算法进行修改,使其适应于不完全信息博弈。本文以爱恩斯坦棋博弈平台为研究载体,研究了计算机博弈关键技术,包括基本概念、研究对象分析和搜索引擎,设计了爱恩斯坦棋机器博弈系统。在棋盘数据结构设计过程中,对对手的状态信息等进行了预判和估计量化,使其信息完全化,从攻击和防守两个方向同时评估,得到了攻防兼备的估值函数;同时,还研究了估值函数的参数优化方法,保证估值函数设计的准确性和合理性;在搜索算法方面,基于传统的完全信息博弈算法——极大极小算法,参考期望搜索算法,在极大层与极小层之间人为加入一层骰子层,并将上述估值函数应用到算法中同时加入置换表优化技术,设计了适应于爱恩斯坦棋的攻防兼备的期望算法,解决了使用传统博弈算法无法构建博弈树的问题,提高博弈水平。从搜索效率和博弈水平两个角度攻防兼备的期望算法,虽然在搜索效率有所下降,但是在博弈水平方面却有较好的突破,博弈水平明显提高证明了应用了攻防兼备的估值函数的期望算法在一定深度范围内博弈水平和博弈效率取得了较好的平衡,既具有较高的博弈水平,又充分利用了博弈时间。同时,加入置换表优化方法之后,搜索效率与博弈水平都有一定的提升,本文的创新点如下:(1)研究并设计了适用爱恩斯坦棋的不完全信息博弈的数据结构,深入研究估值函数的构成,针对传统的估值函数存在的估值片面不准确的问题,从攻击防守两个方向同时考虑并结合爱恩斯坦棋的两种赢棋方式,设计了准确且效率较好的攻防兼备的估值函数;同时分析研究了一些应用于估值参数优化的方法和策略。在设计估值函数时,使用了攻击因子和威胁度因子来调整着法路径,有效的提高了博弈水平。(2)具体上采用爬山法结合手工调整对攻防兼备的估值进行参数优化,将优化之后的估值应用到算法中去,极大的提高了博弈水平。(3)基于传统的极大极小博弈算法,参考期望搜索算法,改进并设计了适用于爱恩斯坦棋的攻防兼备的期望算法,在原有的极大极小层中加入一层骰子层,来模拟投骰子的过程,解决了博弈过程中信息不完全的问题,并将(1)中的估值函数应用到算法中,加入置换表来优化算法,降低搜索过程中的节点数量,提高了搜索算法的效率。上述方法均在爱恩斯坦棋博弈系统“行云流水”与“流刃若火”程序中成功应用,其中“行云流水”在2014年“成理杯”全国大学生计算机博弈大赛爱恩斯坦棋项目荣获季军(一等奖),实践上证明本文提出的估值方法及搜索算法具有可操作性与实际应用价值。

【相似文献】

中国期刊全文数据库

前20条

1

舒康元;胡福乔;;中国象棋计算机博弈引擎改进[J];微计算机信息;2009年29期

2

张利群;;五道棋计算机博弈程序的设计与实现[J];计算机工程;2010年10期

3

田翠华;宋兴亮;朱顺痣;孔丽新;;中国象棋计算机博弈算法研究[J];信息技术;2011年12期

5

汤云雄;董从民;;计算机博弈系统在中国象棋教学中的应用[J];科技信息;2011年19期

6

吕艳辉;宫瑞敏;;计算机博弈中估值算法与博弈训练的研究[J];计算机工程;2012年11期

7

胡强;谢显中;张小川;;一个幻影围棋计算机博弈系统的设计与实现[J];数字通信;2014年01期

8

张小川;陈恋昶;李祖枢;;引入意图的中国象棋计算机博弈系统[J];重庆理工大学学报(自然科学版);2010年10期

9

刘雅靖;;计算机博弈之六子棋的主要技术分析[J];电脑知识与技术;2011年10期

10

徐心和;王骄;;中国象棋计算机博弈关键技术分析[J];小型微型计算机系统;2006年06期

11

周玮;王友政;马庆增;;利用局势变化攫取优势博弈[J];系统仿真学报;2008年17期

12

周玮;王水涛;孙旸;;中国象棋计算机博弈中的一种数据结构方法[J];计算机工程与应用;2006年35期

13

魏钦刚;王骄;徐心和;南晓斐;;中国象棋计算机博弈开局库研究与设计[J];智能系统学报;2007年01期

14

黄晨;;棋类游戏中的先行权[J];智能系统学报;2007年03期

15

吴岳;;一种高性能西洋跳棋引擎设计[J];电脑编程技巧与维护;2014年02期

16

李汝光;;基于机器学习的围棋死活问题算法设计[J];常州工学院学报;2013年05期

17

周玮;张赜;周静怡;;基于对弈局势的二次估值方法[J];系统仿真学报;2006年09期

18

周文敏;李淑琴;;爱恩斯坦棋静态攻防策略的研究[J];电脑知识与技术;2014年05期

20

裴生雷;;王宫双门棋博弈系统中的关键问题研究[J];微计算机信息;2012年10期

中国重要会议论文全文数据库

前1条

1

冯闻捷;彭力;;牛角棋计算机博弈系统的实现[A];第二十七届中国控制会议论文集[C];2008年

中国硕士学位论文全文数据库

前10条

1

侯鑫磊;并行计算在计算机博弈中的研究与应用[D];重庆理工大学;2015年

2

欧阳明;国际象棋游戏的学习软件的设计与实现[D];电子科技大学;2015年

3

罗文浩;五子棋对弈平台的设计与实现[D];西安电子科技大学;2015年

4

5

6

7

9

刘明慧;计算机博弈的估值方法研究[D];东北大学;2008年

10

java开发爱恩斯坦棋,爱恩斯坦棋计算机博弈系统的研究与实现相关推荐

  1. 计算机爱恩斯坦棋游戏,爱恩斯坦棋计算机博弈系统的研究与实现

    爱恩斯坦棋计算机博弈系统的研究与实现 [摘要]:计算机博弈,也称机器博弈,是一个极具挑战与发展前景的计算机研究领域,其作为人工智能领域一个极其重要的课题,素有人工智能领域"果蝇"之 ...

  2. java开发爱恩斯坦棋,爱恩斯坦棋计算机博弈关键技术研究

    爱恩斯坦棋计算机博弈关键技术研究 [摘要]:计算机博弈是人工智能领域的重要研究方向之一,被誉为人工智能学科的"果蝇".爱恩斯坦棋属于完备信息博弈棋种,是一种棋局信息完全透明的博弈类 ...

  3. Java开发新手入门教程!一线互联网大厂面试真题系统收录!附小技巧

    前言 一开始并没有急着提交简历,而是说准备下再提交简历.然后就准备了一周,写简历,刷题,在网上找蚂蚁金服的面经.提交了一份简历,然后发现简历上面没有写学历,幸好他还没提交,就修改了下重新发了一份,然后 ...

  4. win10开发java_win10系统搭建Java开发环境的操作方法

    很多小伙伴都遇到过对win10系统搭建Java开发环境进行设置的困惑吧,一些朋友看过网上对win10系统搭建Java开发环境设置的零散处理方法,并没有完完全全明白win10系统搭建Java开发环境的操 ...

  5. SpringBoot高并发!java开发安卓app电子书

    前言 我想,很多人和我一样在煎熬中度过着2021年,也经历了不少困难,随着国家对疫情的控制,互联网行业又重新迎来了生机. 我在2021年拿到了阿里Java研发岗的offer,也算是正式提桶进大厂的打工 ...

  6. 32位、64位与Java开发研究分析

    1 32位与64位五大不同 1.1 设计初衷不同 64位操作系统的设计初衷是:满足机械设计和分析.三维动画.视频编辑和创作,以及科学计算和高性能计算应用程序等领域中需要大量内存和浮点性能的客户需求.换 ...

  7. 【java开发】快速搭建java开发环境(离线开发、在线开发)

    文章目录 1.简介 2.下载和安装jdk 2.2 下载jdk 2.2 配置环境变量 2.3 常见命令 3.jdk开发 3.1 测试代码(hello world) 3.2 测试代码(animal, do ...

  8. java开发视频教学,阿里创新发布《新高并发宝典》

    前言 很久没有发过文章,今天来说一下应届生找工作的问题吧,就算你是打摆子都要看完~~ 金九银十是社招以及校招的火热时期,但今年很明显没有往年般的火热,面试也是越来越难了.对于应届生来说,如何能够在面试 ...

  9. Java开发十大必备网站

    以下是我收集的Java开发牛人必备的网站.这些网站可以提供信息,以及一些很棒的讲座, 还能解答一般问题.面试问题等.质量是衡量一个网站的关键因素,我个人认为这些网站质量都很好.接下来,我会跟大家分享我 ...

最新文章

  1. iPhone 6c配置和5s相近 4寸屏基本确定
  2. Android 无法监听安装,Android关于apk安装成功广播监听
  3. 第一个项目GeoQuiz开发总结
  4. 差分约束 4416 FFF 团卧底的后宫
  5. 懂你的推荐算法,你懂的
  6. 【转】Android 音量键+电源键 截屏代码小结
  7. 解决阿里云 ssh 远程连接短时间没操作就会断掉的问题
  8. Struts2中UI标签之表单标签介绍
  9. 华农c语言期末试卷答案,华南农业大学2013学年第1学期程序设计(C语言)期末考试试卷(A卷)...
  10. Scratch二次开发6:如何保存作品到自己的服务器
  11. ps抠图-基础篇(三)
  12. 关于计算机专业的情景剧剧本,大学生心理情景剧剧本.pdf
  13. 【基础学习】操作系统学习笔记 - 内存管理:内存使用与分段、内存分区与分页、多级页表、快表、段页式内存管理的实现、内存的换入换出
  14. 交叉25码是什么条码
  15. Python | 单词搜索(educoder)
  16. c语言if语句用法总结,C语言if语句总结.doc
  17. Java——因式分解算法
  18. 数据分析的重要性体现在哪里?
  19. 图片转PDF怎么转换?快学习这三种免费转换方法!
  20. 用VUE实现注册页(短信验证码登录)

热门文章

  1. 用Python把它做出来:EXCEL文件合并/拆分工具 (含VBA版)
  2. 第九讲 Linux I2C子系统及mma8653重力传感器驱动编写
  3. 通过Java向数据库存和取图片
  4. 单片机 数码管0~F显示
  5. css3 flex 省略号,142.关于flex布局与省略号不显示的问题
  6. Java实习生常规技术面试题每日十题Java基础(六)
  7. 怎么用手机控制电脑?手机控制手机如何实现?
  8. 通过PS把素色的旗袍换成青花瓷样式的旗袍
  9. 微x怎么设置主题_微信主题怎么设置 微信主题设置方法
  10. arduino笔记41:直流电机 + 步进电机参数、原理