在之前的编写过程中,翻阅过很多资料,每次看到一个令人振奋的思想我都会实践一下以印证它的实际效果,所以我的程序到现在已经有几十个版本了,在这过程中主要参考了以下网站(论文或源码),在此一并表示感谢:
http://www.xqbase.com (包括象棋巫师源码)
PC游戏编程(人机博弈) 王小春
五子棋机器博弈系统评估函数的设计 张明亮 ,吴俊 ,李凡长
A REVIEW OF GAME-TREE PRUNING† T.A. Marsland Computing Science Department, University of Alberta,EDMONTON,Canada T6G 2H1
博弈树置换表启发式算法研究 焦尚彬,刘丁
当然,还有很多其他资料我也翻看过,但雷同很多,不一一赘述。其中有些文章抄袭的嫌疑很大,例如今天我下载了两篇关于”威胁空间搜索“的文章,看了之后汗颜,因为我设计的AI从去年开始就不使用历史表,而是采用”冲棋点“表,竟然是与”威胁空间搜索“雷同的,前人果然伟大;更令人汗颜的是,其中一篇为”Go-Moku and Threat-Space Search“,而另一篇内容与前一篇雷同,枉我看英文那么费劲的说!虽然这两篇都没有新的技术但还是罗列到这里(后一篇不提了,除了PDF上的日期我也无从考证到底谁先谁后。何况后一篇还是硕士学位论文,免得惹一身骚)。下面对整个AI的加以说明:
一、AI的基本结构
局面表示
招法生成器
局面评价
剪裁函数
二、启发算法
迭代加深与内部迭代加深
置换表
主要变例搜索
VCF/VCT搜索
开局库
PV与杀手启发
三、多线程
多线程PVS搜索
这个AI是针对无禁手规则的,并且使用的基本思想就是”冲棋点“搜索,即前文提到的”威胁空间搜索“。接下来的一段时间里,我会完善这些标题(无禁手规则一节除外)。
http://download.csdn.net/detail/zcsor/6360829
当前版本存在一个BUG:未统计冲1,导致走法生成器在开局时可能返回无走法(下在边角上的时候),表现为下在角上AI思考崩溃或返回AI胜利。已修复但未更新当前上传文件。因为后面还有一个应用于走法生成器的启发算法一起更新。
更新版本:
修复了冲1的BUG。
修改了VCT走法生成器。
添加开局库搜索对搜索时间的影响。
下载地址:
http://download.csdn.net/detail/zcsor/6379795
发现部分情况下VCT忽略守方进攻BUG。正在测试中,暂不发下载。