中国象棋送子裁剪

空着裁剪可以去除掉一些无意义的着法,比如开局阶段的"帅五进一"。我发现还有一种类型的着法可以剪除,就是送子步法。如果一方把棋子走到对方棋子火力范围内,同时本方进攻力又没得到提升(抽将抽杀或交换),那么这步棋基本判定是一步送子。和空着裁剪相比,送子裁剪具有这些优点:

1:判定容易。空着裁剪的规则够苟刻,而且它无法判定送子。(因为走一步是送子,按照空着裁剪规则接着再走一步就可形成吃子)。

2:成本低。不需要进行减层的搜索,消耗时间比空着裁剪少很多。

3:效果明显。盘面中那些无意义的送子步法不少,如果将它们剪掉,可以明显提升搜索效率。经我测试空着裁剪只能提升10-15%的效率。而送子裁剪可提升20-30%的效率。两者同时使用,可以提升30%左右效率(和盘面形势有关)。

送子判定:

假设红棋一棋子由位置a移动到了位置b,现在判定红方这步棋是不是送子:

1.如果黑方有棋子可以对b发起攻击,则吃子。

2.如果红方有棋子可以对黑方任意位置棋子发起攻击,则吃子。假设黑方被攻击位置为c(c可以是b,也可以是其它位置)。

3.如果黑方有棋子可以对c发起攻击,则吃子。

4.重复第2步。

具体要通过递归来实现。重点在于:走棋方(待判定方)可以在任意位置进行反击,对方却只能针对性攻击。前者是为了判定走棋方送子是否能够换来更大收益。后者则是为了将运算仅限于送子判定上。

送子裁剪的实用性还需要进一步检验。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章