电脑象棋和量子化学
——计算量子化学的新思路
 
黄晨 * 20053
( * 上海计算机博弈研究所,eMailwebmaster@elephantbase.net)
 
C.第一性原理和经验参数
 
C1. 什么是第一性原理?什么是经验参数?
C2. 电脑象棋的第一性原理是什么?
C3. 电脑象棋有哪些经验参数?
C4. 量子化学的第一性原理是什么?
C5. 量子化学的半经验方法和经验参数是如何产生的?
C6. 什么是启发?它在电脑象棋中是如何运用的?
C7. 计算量子化学中的经验方法是如何为从头计算服务的?
 
C1. 什么是第一性原理?什么是经验参数?
 
  作为评价事物的依据,第一性原理和经验参数是两个极端。第一性原理是某些硬性规定或推演得出的结论,而经验参数则是通过大量实例得出的规律性的数据,这些数据可以来自第一性原理(称为理论统计数据),也可以来自实验(称为实验统计数据)
  但是就某个特定的问题,第一性原理和经验参数没有明显的界限,必须特别界定。如果某些原理或数据来源于第一性原理,但推演过程中加入了一些假设(这些假设当然是很有说服力的),那么这些原理或数据就称为“半经验的”。
 
C2. 电脑象棋的第一性原理是什么?
 
  象棋是一种硬性规定的游戏,因此规则就是第一性原理。对于电脑象棋来说,“最小-最大”的搜索策略也属于第一性原理的范畴。
  尽管“最小-最大”的搜索策略中涉及到局面评估的问题,局面评估需要涉及到大量经验参数,但是根据规则,判断胜负的条件只有是否将死对方。所以,仅仅依靠第一性原理,让电脑下棋是可以实现的,只要为象棋规则制订了电脑程序,并根据“最小-最大”策略进行搜索就可以了。
  除此以外,另一个非常重要的第一性原理就是例胜残局,例如国际象棋中的车对单王、马象对单王等残局,任何一个例胜残局都必定存在一套无懈可击的取胜方案。因此对于电脑象棋程序来说,具备完整的残局知识是非常重要的,很多象棋程序甚至带有庞大的残局库,这对程序的棋力来说丝毫没有负作用,而且更加强了程序思路的严密性。
 
C3. 电脑象棋有哪些经验参数?
 
  电脑象棋程序的算法由两部分组成,一部分是搜索算法,大部分搜索算法是从经验中获得的(只有Alpha-Beta裁剪不属于经验原理)。另一部分是局面评估算法,除了形成杀棋的局面和例胜残局外,其他局面的评估都需要依靠经验参数。
  在局面评估的诸多参数中,子力价值是首要的,例如在国际象棋中,后通常是9分,车5分,马象3分,兵1(实际上兵的价值浮动性极大)。这些数据主要来源于大量残局实例(因为国际象棋往往在残局阶段才分出胜负),通常一方分值高于对方4分就可以取得胜利。然而这种规律也有例外,例如双马就无法取胜单王,而弱方多一个兵时反而有赢的机会。所以子力价值可以说是半经验的参数。
  除此以外,开局套路是典型的经验原理。流行的开局套路,都是前人在大量对局中总结出的经验,但不遵循开局套路的着法并不意味着坏的着法。因此很多电脑象棋程序都带有庞大的开局库,这对程序的棋力当然有帮助,但是这种不严密的做法并不能确保电脑下出好棋,因为目前还无法证实有没有新的开局比现有的开局更好。
 
C4. 量子化学的第一性原理是什么?
 
  量子化学的第一性原理是指多电子体系的Schrödinger方程,但是光有这个方程是无法解决任何问题的,为此计算量子化学提出一个称为“从头计算”(ab initio)的原理作为第一性原理,除了Schrödinger方程外还允许使用下列参数和原理:
  (1) 物理常数,包括光速cPlanck常数h、电子电量e、电子质量me以及原子的各种同位素的质量,尽管这些常数也是通过实验获得的。(在国际单位值中,光速是定义值,Planck常数是测量值,在原子单位制中则相反,详细原理请参阅笔者整理的关于单位制、物理常数和不确定度的资料》一文。)
  (2) 各种数学和物理的近似,最基本的近似是“非相对论近似”(Schrödinger方程本来就是非相对论的原理)、“绝热近似”(由于原子核质量比电子大得多,而把原子核当成静止的点处理)和“轨道近似”(用一个独立函数来描述一个独立电子的运动)
  量子化学的从头计算方法就是在各种近似上作的研究。例如最基本的从头计算方法Hartree-Fock方法,是建立在自洽场近似的基础上的,除此之外还有Xa方法、密度泛函方法等等,都运用了不同近似原理。
  由于诸多近似方法的使用,“从头计算”方法并不是真正意义上的第一性原理,但是其近似方法的运用使得量子计算得以实现。从头计算的结果具有相当的可靠程度,某些精确的从头计算产生的误差甚至比实验误差还小。
 
C5. 量子化学的半经验方法和经验参数是如何产生的?
 
  量子化学中的“半经验方法”与“从头计算”没有明显的界定,区别就在于近似程度的不同。大多数半经验方法是由从头计算方法(主要是自洽场方法)改进而来的,它们在从头计算的基础上作了很大的近似以提高计算速度,而计算结果则只能为定性分析提供依据。
  比半经验方法精确度更低的称为分子力场方法,它们完全依靠经验参数来支持,这些参数是通过对大量体系进行的从头计算得到的,在整理参数时还必须作统计处理。
  
C6. 什么是启发?它在电脑象棋中是如何运用的?
 
  对第一性原理的直接运用往往无法产生高的效率,有时需要用一些经验方法作引导。在电脑象棋中称为启发,而在计算量子化学中,则称为“猜”。
  电脑象棋的一个最基本的搜索原理称为Alpha-Beta,它可以对搜索树作有效而严格的裁剪。但是Alpha-Beta方法产生的效率受分枝搜索的顺序影响很大,而对哪些着法进行优先搜索,却没有第一性原理可寻。大量实验表明,下面的启发方法可以提高裁剪效率:
  (1) 吃子启发:即优先考虑吃子的着法,特别是吃大子的着法,这种启发方法只适用于象棋,而且完全依赖于“子力价值”这一经验参数,所以该方法是“绝对经验”的方法;
  (2) 杀手或历史启发:即考虑别的分枝上比较好的着法,大量尝试表明这种方法适用于各种棋类游戏,但由于不同分枝上的局面没有必然联系,所以这种启发方法称不上第一性原理;
  (3) 迭代加深启发:搜索到一定的深度需要很长时间,但是可以考虑浅一层的搜索,分值大的着法可以在深一层的搜索中优先考虑,显然这种方法不是第一性原理,但是加深一层搜索会产生截然不同的结果,这种情况在象棋中毕竟不会经常发生,所以事实上这种启发非常有效。
 
C7. 计算量子化学中的经验方法是如何为从头计算服务的?
 
  目前计算量子化学的绝大部分方法,都是以Hartree-Fock自洽场方法为基础的,“自洽场”本身就是一个迭代公式,迭代收敛标志着计算完成。然而迭代是否收敛,或者收敛速度的快慢,受初始条件影响很大,在没有第一性原理可以给出答案时,就需要通过“猜”来决定初始轨道的,而猜的方法恰恰是经验方法。
  在构型搜索中往往也会采用类似的方法,单点计算的精确度确实影响构型搜索的结果,但是从头计算会使得收敛速度降低。所以初始的最不确定的构型进行搜索时,往往先使用经验方法。等到搜索结束,构型接近精确构型时,再使用精度高的从头计算方法来搜索,这样可以节省很多时间。
  • 上一篇 电脑象棋和量子化学——计算量子化学的新思路():计算和搜索
  • 下一篇 《电脑象棋和量子化学》相关资料——计算量子化学通用引擎协议(草案)
  • 返 回 象棋百科全书——象棋与其他
  • www.elephantbase.net