职场大变样社区

5598

主题

6638

帖子

79

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
79
跳转到指定楼层
楼主
发表于 2016-4-27 11:41:44 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
技术:Java等
摘要:
近年来,现代化的人工智能以及先进的计算机技术迅猛发展,基于此基础的电脑象棋程序,其下棋水平也得到了进一步的提升。
然而,早在二十世纪的六十年代初期,来此美国麻省理工学院的约翰·麦卡锡就提出了修剪算法——“alpha-beta”。在该算法提出以前,通常计算机下棋程序在决定每一步走步时,所需的棋盘状态空间的搜索量都是指数级别的,而该算法则将这一搜索量的数量级减少为指数的平方根,这极大程度地提高了电脑下棋程序的水平。
而随后IBM公司推出的超级计算机“Deep Blue”,则是一个不择不扣的神话,这一耗资上千万,耗时8年所建造出的世界上最强大的国际象棋“棋手”,着实为广大棋迷们所神往。本文内容根据以往国内外象棋程序在设计上所取得的一些成功案例及经验,为中国象棋设计其基本的思路和算法。
关键词:中国象棋,位棋盘,alpha-beta搜索,Zobrist键值,置换表

目录:
摘要    i
Abstract    ii
目 录    1
引   言    1
1 概述    2
1.1 棋盘的标记    2
1.1.1 纵线方式    2
1.1.2 坐标方式    2
1.2 棋子的名称    3
1.3 棋谱的记录方法    3
1.4 历史局面的表示及存储    4
1.5 棋谱记录文件的格式    4
1.5.1 标签部分    4
1.5.2 棋谱记录部分    5
1.5.3 XML格式    5
2 基本数据结构——位棋盘    7
2.1 什么是位棋盘    7
2.2 位棋盘的作用    7
2.3 位棋盘的基本运算    9
2.4 Java中位棋盘的实现    9
2.4.1 位棋盘类的实现    9
2.4.2 位棋盘的初始化    10
2.4.3 位棋盘的更新    10
3 基本数据结构——Zobrist键值    11
3.1 比较局面的方法    11
3.2 Zobrist键值的实现方法    11
3.3 Zobrist键值的工作原理及用途    11
3.3.1 Zobrist键值的工作原理    11
3.3.2 Zobrist键值的用途    12
3.4 Java中实现Zobrist键值    12
4 着法生成    14
4.1伪合法着法的生成    14
4.1.1 数组及其下标的含义    14
4.1.2 算法示例——车炮的伪合法着法生成    16
4.2 合法着法的生成    18
5 搜索算法    21
5.1 最小-最大搜索    21
5.1.1基于最小-最大的评价函数    21
5.1.2 最小-最大搜索    21
5.1.3 负值最大函数    23
5.2 Alpha-Beta搜索    23
5.2.1 最小-最大搜索算法的问题    23
5.2.2 Alpha-Beta修剪    24
5.2.3 Alpha-Beta修剪算法的实现    25
5.2.4 可能的弱点    26
5.3迭代加深    26
5.4 置换表    27
5.4.1 置换表的实现    27
5.4.2 替换策略    29
6 局面评价函数    30
6.1 评价函数的实现方法    30
6.1.1 算法设计思路    30
6.1.2评价要素的组合    31
6.2评价函数所需的信息    31
7 程序的设计及实现    34
7.1 搜索引擎的实现(engine包)    34
7.2 信息传输机制(message包)    34
7.3 棋子(pieces包)    35
7.4 主控模块(main包)    35
参考文献    36
致   谢    37
外文文献    38

包含资料:


截图:



百度网盘下载地址(金币充值):
游客,本付费内容需要支付 100金币 才能浏览支付

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

职场大变样社区 分享高质量学习资料(电子课本、毕业设计、编程视频、项目源码、电子书籍等)

快速回复 返回顶部 返回列表