【五子棋AI】1、AI概述 .

为了写一个棋力比较强的AI,至今大约学习了一年多,在这一年里我翻阅了大量的网站、论文、源码。最初的打算是写一个象棋的AI,后来发“http://xqbase.com”有不少资料和开源的“象眼”、“象棋巫师”,因而改变了本身的初衷——当时给个人感受,象棋巫师已经很不错了,固然如今也是这样。因此,若是参照它的源码去写,无非是作了一件VC2VB的代码转换,有太多东西能够依托时每每难以给本身更多的思考空间。因而翻阅了一些资料,决定写一个五子棋的AI,虽然也有不少开源代码,可是我所看见的没有一个能够和“象棋巫师”的开源代码相比。因而从一年多之前,我开始参考“象棋巫师”来写个人五子棋AI,直到几个月前,我才对其中涉及的诸多技术有了较深的理解。如今个人五子棋AI(命名为“清月连珠”)还在修改过程当中,可是棋力已经至关可观。(若是你有兴趣能够去下载这个软件,虽然它还不完善)

        在以前的编写过程当中,翻阅过不少资料,每次看到一个使人振奋的思想我都会实践一下以印证它的实际效果,因此个人程序到如今已经有几十个版本了,在这过程当中主要参考了如下网站(论文或源码),在此一并表示感谢:算法

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的加以说明:网站


1、AI的基本结构spa

        局面表示.net

        招法生成器线程

        局面评价

        剪裁函数

2、启发算法

        迭代加深与内部迭代加深

        置换表

        主要变例搜索

        VCF/VCT搜索

        开局库

        PV与杀手启发

3、多线程

        多线程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。正在测试中,暂不发下载。

http://blog.csdn.net/zcsor/article/category/1670249