Chess_Bridge 版 (精华区)
发信人: goes (从头再来), 信区: Chess_Bridge
标 题: “乌鹭”的编程技术
发信站: 紫 丁 香 (Sat Apr 29 04:33:22 2000) WWW-POST
陈志行, 乌鹭小组的指导者
“乌鹭”是我指导编写的, 故“乌鹭”有不少与“手谈”相近之处。
首先, “乌鹭”采用了“手谈”的主要数据结构, 因此可以在“乌鹭”中找到与“手谈
”类似的数据。“乌鹭”用了“手谈”的有关围棋规则的处理程序, 只作了很少的修改
。
“乌鹭”用了与“手谈”相同的定式管理程序, 但定式库比“手谈”的大得多。“手谈
”的定式完全是人工输入的, 而“乌鹭”的定式是由主要编写者雷秀瑜所编的一个程序
半自动地生成的。
“乌鹭”中有不少重要技术与“手谈”大不相同。
影响, 气位的级别
“乌鹭”定义了如下图的气位级别。气位都是空位。
y2y
yz1zy mn
21O12 OX
yz1zy mn
y2y
(a) (b)
图(a)的O是白子, 带其他字符的位置都是空位。邻位(1)称为一级气位; 关位(2)称为二
级气位; 斜邻位(z)称为1.5级气位; 小飞位(y)称为2.5级气位。
图(b)的O是白子, X是黑子, m、n是空位。m是那黑子的扳位, 也是黑子的二级气位; n是
那白子的扳位, 也是白子的二级气位。
从一种颜色的棋子对某点的影响仅决定于离该点最近(具最小级数)的该色棋子:
气位级别 1 1.5 2 2.5
白影响 6 5 3 2
黑影响 -6 -5 -3 -2
黑白影响可以互消。“乌鹭”中也有与“手谈”类似的圆滑方案, 但有些不同。
由于影响的计算比“手谈”简单得多, 评价函数的计算也就快得多。
自由度
自由度的计算仅考虑二级和2.5级气位。由于计算影响时记录了各级气位, 自由度的计算
也就十分简单而比“手谈”快得多。
搜索法
1996应氏杯的版本没有用到搜索法, 一局棋的后期“乌鹭”就显得太弱。1998年的“乌
鹭”用了搜索法。由于评价迅速, 搜索法中就可以包括更多的计算而取得更多的信息。
结果“乌鹭”的搜索法比“手谈”成功得多。若取消了搜索法, “乌鹭”就要弱得多。
串安全性的模式识别
“乌鹭”中有一大段程序由陈国宝编写的, 是关于串安全性即歼逃可能性的程序。它是
用模式识别来作判断的。不过, 这里用了像“手谈”那样的老方法, 难以维护。
模式管理
1997年秋我们设计了一个新的模式管理方案, 首先用于“乌鹭”。
模式由字符构成的图形代表。这些字符是:
O = 白子 X = 黑子 o = 白或空 x = 黑或空
* = 模式中心 . = 空位 空格 = 任意 # = 棋盘外
用一个程序把这些图形编译成为汇编语言的指令以作模式识别。模式中的条件也表达为
某些语句, 并由该程序一起编译成为汇编指令。
雷秀瑜用此法编出有关模式的一个大模块。模式的数量就比“手谈”多得多。主要的调
试归结为这些模式的修改。雷秀瑜作了长期的调试, 结果使“乌鹭”成为世界顶尖程序
之一, 并在1998应氏杯中获亚军。
--
※ 来源:·紫 丁 香 bbs.hit.edu.cn·[FROM: 202.97.187.184]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.764毫秒