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

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

今日までの分を反映

全然関係無い話から入りますが、今月入った辺りから鋼鉄の咆哮3ってゲームにハマってて、開発そっちのけでした。

おおざっぱに書くと「戦艦や空母を設計して、その艦を使って戦う」ってゲームなんですが、やってて思った事が一つ。

足し算で設計する…って言えばいいんでしょうか、「アレの為にコレが必要で、コッチの弱点を補うのにソレが必要で」って感じで設計してると、不必要に複雑になっちゃうってのに気付きました。艦でもプログラムでも。

という訳でコンピュータ将棋の話に戻りますが、この前保留と書いたメタ強化学習は、不要であれば実装しない方向で。無くても良いなら無い方が良いんじゃないかと思い直しました。

あー、それから、一応11月中の目標までは完了。最終日にギリギリってのが、夏休みの小学生みたいでアレですが。

  • リバーシでの予備実験
    • TDLeaf(λ)実装。
    • TDLeaf(λ)を方策オフに修正。
  • 将棋の学習関連
    • TDLeaf(λ)エージェントを再実装。
      • 方策をエージェントから独立させる。
    • 学習中の各種統計情報の収集・表示ルーチン実装。
      • std::vectorあたりを勉強しとくこと。
    • 王手将棋での予備実験。
      • εグリーディーとソフトマックス手法の比較。
      • TDLeaf(λ)とTD(λ)の比較。
      • 評価関数を非線型に修正*1して、従来バージョンと比較。 ← 年内にはこの辺まで
    • 対局部分の並列化。
    • 他のソフトとの連続対戦アプリ実装(勝率での検証用)。
    • 評価関数でのstd::mapの使用をやめる。
      • ひょっとしたらテンプレートを使用する必要があるかも。ここら辺は要検討。
    • 評価関数の修正。
      • 王将との相対位置の評価。
      • ピンの評価。
    • ハッシュ表の再実装。
    • MTD(f)再実装。静止探索部分でもハッシュを使用する。
    • 将棋のルールの細かい部分の実装。
    • シンプルなメタ強化学習でメタパラメータの調整。
      • クライアントサーバ方式なら、GAやUCB1部分はJavaでの実装がそのまま使えるかも。要検討。
  • floodgate参戦
  • 選手権での対局用
    • USIにちゃんと対応。
    • MTD-∞の実装。
    • 思考時間制御。

*1:http://shouchan.ei.tuat.ac.jp/~shougi/old_shougi/presentation/1999-10-07P.pdfの方式。実装理由については後日書きます。