着法生成就是要产生所有有效的着法,让电脑棋手在这些着法中选择最好的着法,最后走出这一着。要生成所有着法只能用穷举了。中国象棋大约每一步可以有45个着法选择。阅读全文>
发表于 @ 2008年07月07日 12:15:00|评论(loading...)|收藏
本次,我们要着手于除了棋盘外——最基本着法合法性判断代码了。这些代码其实描述的是中国象棋的着法规则,玩过象棋的人应该很熟悉了,虽然比较繁琐,但是一定要写。而且,这一段代码对于性能的影响极大,是后面要介绍的着法生成与局面搜索的基础。阅读全文>
发表于 @ 2008年06月07日 17:50:00|评论(loading...)|收藏
在象棋博弈程序中,首先我们要确定下棋盘-棋子的数据结构描述。当前,主要有两种棋盘-棋子(以下称之为“局面”, situation)表示法,一种是“棋盘数组”,另一种是“位棋盘”。由于位棋盘最初是国际象棋(8*8, 刚好64bits)里引入的,而中国象棋是9*10的棋盘,不易用位棋盘表示。但是,位棋盘最大的优点就是奇高的运算效率与空间节省。所以,多数参加博弈比赛或是商业博弈软件都是用位棋盘作为基本的数据结构的。本文以棋盘数组表示法表示一个局面,因为这样便于阅读代码的人理解。阅读全文>
发表于 @ 2008年06月07日 17:24:00|评论(loading...)|收藏
博弈是一门很广泛的学科,大到万事万物发展,小到棋盘游戏,保罗万象。计算机博弈也有着飞快的发展,博弈技术也是人工智能的基石。让我们先看看计算机国际象棋博弈的简史。阅读全文>
发表于 @ 2008年06月07日 16:26:00|评论(loading...)|收藏
FEN(Forsyth-Edwards Notation)是专门用来表示象棋局面的记录规范,在这个规范下,一个局面可以简单地用一行“FEN格式串”来表示,而不必烦琐地说:“红帅在四路次底线,黑将在5路底线……”。由于它是文本格式的(只牵涉到很有限的几个字母、数字和符号),因此网上传递棋局就非常方便,不用把棋图画在纸上或用文字笨拙地描述了,而是用棋谱编辑软件摆好局面,自动得到FEN格式串,再贴到诸如Web网页、BBS、电子论坛等能够传递文字的网络应用平台上。读者面对FEN格式传,只要借助于棋谱编辑软件,用“赋值”和“粘贴”就可以完全重现局面,使得棋谱交流快速而高效。阅读全文>
发表于 @ 2008年06月05日 10:01:00|评论(loading...)|收藏
Alpha-Beta 同“最小-最大”非常相似,事实上只多了一条额外的语句。最小最大运行时要检查整个博弈树,然后尽可能选择最好的线路。这是非常好理解的,但效率非常低。每次搜索更深一层时,树的大小就呈指数式增长。
通常一个国际象棋局面都有35个左右的合理着法,所以用最小-最大搜索来搜索一层深度,就有35个局面要检查,如果用这个函数来搜索两层,就有352个局面要搜索。这就已经上千了,看上去还不怎样,但是数字增长得非常迅速,例如六层的搜索就接近是二十亿,而十层的搜索就超过两千万亿了。
要想通过检查搜索树的前面几层,并且在叶子结点上用启发式的评价,那么做尽可能深的搜索是很重要的。最小-最大搜索无法做到很深的搜索,因为有效的分枝因子实在太大了。
阅读全文>
发表于 @ 2008年05月24日 15:15:00|评论(loading...)|收藏
个人觉得这篇文章是网上的介绍有关KMP算法更让人容易理解的文章了,确实说得很“详细”,耐心地把它看完肯定会有所收获的~~阅读全文>
发表于 @ 2008年03月02日 13:42:00|评论(loading...)|收藏
转自:http://bbs.sei.ynu.edu.cn/viewthread.php?tid=11359&extra=page%3D3阅读全文>
发表于 @ 2008年01月07日 02:12:00|评论(loading...)|收藏
呵呵,申请学院创新基金终于通过了!项目是——基于MEL算法的音频ID比对技术的研究与实现
¥2500。。。。放假要加油做了,呵呵。阅读全文>
发表于 @ 2007年06月15日 22:30:00|评论(loading...)|收藏
The History of Programming Languages....阅读全文>
发表于 @ 2007年05月02日 19:35:00|评论(loading...)|收藏