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

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

絶対位置による駒の評価を修正

 今までは駒の位置・種類・手番ごとにパラメータを用意していたのですが、これを「先手のx筋y段の種類tの駒」と 「後手の10-x筋10-y段の種類tの駒」で共通にしました。

 今まで別のパラメータを用意していたのには

  1. 先手と後手で絶対位置による評価値は別の可能性がある(例えば先手は振り飛車、後手は居飛車が最善の戦術かもしれない)
  2. 実装上の容易さ

という二つの理由があったのですが、一つ目についてはまだそういう事を考えるレベルじゃないし、二つ目に関しては多少実装が複雑になっても汎化能力*1や学習速度を向上させた方が良いだろう、との考えから修正しました。

 で、当初はパラメータごとに特徴量を保存しておいて、一通り特徴量を計算し終わってからまとめて評価OR学習、って流れの実装になるかと思っていました。要するに、割と複雑。

 しかしここで年に数回しか無い位の閃きが! ぴっき〜ん!!て感じで。

 「180度回転させた場所に、相手の駒で同じ種類のやつがあれば無視すりゃいいだけジャン」

 つー訳で、実質的にif文2つだけの追加で実装完了。

 で、この修正は明日に続く。王将との相対位置による評価とか王将周辺の利きも同じ様に修正する必要があるので。

*1:特定の状況での経験から一般的なルールを獲得する能力・・・で大体あってるはず