またもや頓挫

余り時間がないので詳細は後にするとして、周辺配列と対角線について評価を行い、その評価値によって次手を並び替えして検索する方法を試みた。
方法としては以下の通り

  1. 残り14, 15, 16手のランダムな配置を作成する
  2. そのときの配置を記録
  3. 完全読みを行い、勝敗を記録
  4. 配置と勝敗についての分割表を作成し、オッズ比の99.9%信頼区間を計算
  5. 14, 15, 16の全てで(勝つ方が多い場合)オッズ比の下限が1以上であるものを選択
  6. 下限の平均値を計算し、その対数をとる

これによって、ある配置が出現したとき勝つ確率が何倍になるかを計算し、評価値とした。
この結果、着手可能手数と石の数も組み入れて計算した評価値と最終的な石の数は相関係数0.9で相関したのだが、パターン評価の際に二分検索でメモリを数回アクセスするため、検索するノードの数は減ったのだが時間は逆にかかるようになってしまった。

おそらくmove orderingでは思ったほど探索樹は小さくならないので、どこかで打ち切りが必要なのだろう。
またZebraのソースを読まなければならなさそうだ。

また、可能であればメモリアクセスなしで周辺配列のパターン評価をできないか考えてみたい。