GA将?開発日記~王理のその先へ~

ネタ勢最強を目指して絶賛開発中。

千日手と置換表がらみのバグ発見

 前から自己対戦学習がアサーションエラーでたまに止まると思ってたら、置換表のバグでした。

 原因としては、まず千日手に至る途中の局面(3回目の同一局面とか)の評価値が、3.5とかの普通に評価関数で計算した値で置換表に保存されています。

 で、4回目の同一局面の探索前に置換表を参照すると、本当は「千日手」を表す評価値が返らないといけないのに、保存されていた「3.5」が返される、と。

 う〜ん、簡単には対処出来そうにないなぁ。

  1. 探索前に置換表をクリアする。
  2. 置換表のエントリに対局開始からの手数を保存しておいて、それを現局面と比較してエントリの使用・未使用を決定する。

 このどっちかかなぁ、対処方法は。