• 算法静态评估 > 中国象棋对弈程序ElephantEye(象眼) 版本:3.13 黄晨* 2008年3月 ...
  • 中国象棋对弈程序ElephantEye(象眼) 版本:3.13 黄晨* 2008年3月 ...

    免费下载 下载该文档 文档格式:TXT   更新时间:2011-09-19   下载次数:0   点击次数:1
        A. 马捉车或有根的炮兵(卒);     B. 车捉有根的马炮兵(卒);     C. 炮捉车或有根的马兵(卒)。   尽管 ElephantEye 在复杂的情况可能无法正确识别长打,但由于支持UCCI命令 banmoves ... ,一旦用户认为引擎走了“长打”的禁着,可以用《象棋巫师》的“设置禁着”功能让引擎强制变着。 五、博弈算法   ElephantEye 属于偏向蛮力的象棋程序,使用了严谨而有效的博弈算法: (1) 使用位行和位列的着法生成器:   位行(BitRanks)和位列(BitFiles)有利于滑动棋子(车和炮)的着法(尤其是吃子着法)生成,位行和位列可以用查表来代替在射线上做的循环运算。在ElephantEye 中,位行和位列的技术不仅用在着法生成器中,也用到了牵制的判断上。 (2) 静态局面搜索:   在做静态搜索时,ElephantEye 搜索了吃子或解将的着法,在搜索吃子着法时,ElephantEye 过滤掉不重要的吃子,例如吃不过河的兵、吃不处于防守中的士象等着法,都不在静态搜索的范围之内。 (3) 循环着法和长将检测:   ElephantEye 可以识别循环着法,出现循环着法时可以判断哪方为长将,并且会利用禁止长将的规则来谋求优势,但目前 ElephantEye 还无法识别长捉。 (4) 置换表:   ElephantEye 参考了中国象棋程序“纵马奔流”的设计思路,使用深度优先和始终覆盖的双层置换表,并采用低出(高出)边界修正的置换表更新策略。 (5) 带检验的空着裁剪:   ElephantEye 使用 R=2 的空着裁剪,在残局阶段使用带检验的空着裁剪。 (6) 迭代加深/吃子着法/杀手着法/历史表启发:   ElephantEye 的着法排序非常简单清晰,依次是迭代加深着法、好的吃子着法、杀手着法和按历史表排序的生成着法。 (7) 将军/唯一应将延伸:   在选择性延伸上,ElephantEye 采用了将军和唯一应将延伸。 (8) Alpha-Beta主要变例搜索:   ElephantEye 使用传统意义上的递归式Alpha-Beta主要变例搜索。 (9) 开局库:   ElephantEye 的开局库共包含了10,000个对称着法,是从1990年到2005年全国象棋个人赛、团体赛、五羊杯、联赛等8,000局顶尖比赛中提取的。 (10) 后台思考和时间分配策略:   ElephantEye 支持后台思考功能,同时提供了时段制和加时制两种时间分配策略,会自动合理分配时间。 六、开局库   ElephantEye 的开局库可由“ElephantEye 开局库制作工具”制作。运行制作工具后,首先要选择PGN棋谱所在的文件夹,然后保存为开局库文件(通常是 BOOK.DAT)。通常,用来生成开局库的棋谱数量越多,生成的开局库文件就越大。   为了使制作的开局库对 ElephantEye 生效,只需要把生成的开局库文件替换掉 ElephantEye 目录下的 BOOK.DAT 即可,也可以在《象棋巫师》的“引擎设置”对话框中指定开局库文件。 七、局面评价函数库   ElephantEye 从2.1版开始,程序的搜索部分和局面评价部分就分离了,搜索部分通过调用API函数的形式与局面评价部分耦合。   其他象棋程序设计师可以在 ElephantEye 的基础上更自由地发挥。根据LGPL协议,搜索和局面评价这两个部分都作为独立的程序库,运用其中任何一部分都只需要公开该部分的源程序即可。换句话说,如果局面评价部分没有使用任何开放代码,那么程序设计师就没有义务公开这部分的源程序,搜索部分也是如此。   ElephantEye 的局面评价API函数接口定义如下:     A. 局面评价引擎名称:const char *GetEngineName(void);     B. 局面预评价函数接口:void PreEvaluate(PositionStruct *lppos, PreEvalStruct *lpPreEval);     C. 局面评价函数接口:int Evaluate(const PositionStruct *lppos, int vlAlpha, int vlBeta);   其中 PositionStruct 和 PreEvalStruct 必须分别符合 position.h 和 pregen.h 中定义的结构。     八、源程序   ElephantEye 的源程序包括9个模块,内容大致为: (1) ucci.h/ucci.cpp   UCCI命令解释模块,包括 Windows 和 Unix 下的行输入接收程序;

    上一页下一页

  • 下载地址 (推荐使用迅雷下载地址,速度快,支持断点续传)
  • 免费下载 TXT格式下载
  • 您可能感兴趣的
  • 固定资产评估算法  aes算法评估  养老保险2011年算法  算法导论  钢筋工下料算法  生男生女预测算法秘诀  遗传算法  二进制算法  数据结构与算法