8、西洋跳棋程序CHINOOK的开发与挑战

西洋跳棋程序CHINOOK的开发与挑战

繁忙开端与数据库建设

1990年1月十分忙碌,在八个月的“研究”(实则享受)后重新投入教学并非易事,同时还在为婚礼做着紧张的准备。直到4月课程结束,才开始对CHINOOK进行较多工作。Norm每周从温哥华远程登录测试CHINOOK,改进评估函数。当程序出现错误走法时,他会深入分析原因,可能是知识缺失、知识错误或对某些特征评估过高。

Ken Thompson的五棋子数据库让我们渴望更多,六棋子数据库有望大幅提升程序能力。但构建六棋子数据库面临巨大挑战,共有2,503,611,964个位置需要计算。不过,我们通过将问题分解,逐步降低了计算难度:
1. 第一次细分 :将计算分为四个不相交的问题,即6:0、5:1、4:2和3:3。其中,6:0数据库全是胜局无需计算,而5:1有467,999,856个位置,4:2有1,174,279,692个位置,3:3有783,806,128个位置,仍然很大。
2. 第二次细分 :每个部分可根据棋盘上国王和棋子的数量进一步细分。例如,用3030表示三个黑王对三个白王,3021表示三个黑王对两个白王和一个白棋子。计算时需先计算3030,因为3021中的棋子晋升为王后需要3030的位置值。此时最大的问题是2112和2211,各有217,836,864个位置。
3. 第三次细分 :以3021数据库为例,白棋子可能在七个等级中的任意一个,可将其拆分为七个小问题。对于2112计算,考虑双方最靠前的棋子,可将其拆分为49个更小的子问题。最终,最大的子问题是2220.70,有33,543,720个位置。 <

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值