パターン化

他の「まともな」オセロプログラムより終盤解析が遅い理由は,次の階層の最善手を探す並び替えがお粗末だからだ.
とりあえず4辺と対角線の配置に付いてはパターン化し,有利なものを選択するようにすることは最低限しておこうと思う.
8つの石の配置は3^8=6561あるが,この中で対象や,白黒反転のものを除くと1651通りになる.
このサイズであればSPUのメモリでも保持可能だ.
また,パターンのうち本当に勝敗に影響をもたらすものは全部ではない.
そのため勝敗に影響のあるものだけを選択することで更に効率化できるのではないかと考えている.

まとめると,パターン作成の戦略として

  • 8つのマスの配置を考慮
  • 勝敗に関係するものだけを選択
  • パターンと勝敗の関係を抽出

とする.
パラメタを取得する場合,一定数までランダムに進めた配置を用い,そのときのパターンを列挙.勝敗は完全読みを使い,パターンとの相関を調べることで評価テーブルを作成することにする.

また,配置からパターンの生成では,

  • メモリアクセスを伴わない
  • ビット演算だけで計算

は必須である.