コンピュータ将棋
search_stackを有効利用できていない気がしたので実験してみた。search_stackオフ側から見て
対局数 | 勝ち | 引き分け | 負け |
---|---|---|---|
1429 | 726 | 14 | 689 |
勝率約51.3%。……これは有意なのか? しかし弱くなってはなさそうだ。search_stackは今のところNull Move Pruningのオンオフとkiller_moveにしか使ってないので、これらがあまり意味ないということか? 実装が間違っている気がする。うーんダメ。
Bonanzaメソッドの部分をクラス化した。個人的に一つしかインスタンスを生成しないものをクラス化する意味があるのか? と疑問に思っていたけど、cppファイルの方にstatic変数をぐちゃぐちゃ置くのが汚く思えたので変えてみた。こっちのほうが見通しが良いように思える。一応static変数は使わなくても静的領域に生成されてしまうため、学習させないときもいくつか変数を無駄にとっていたはず。対してクラスの変数ならインスタンス生成までは作られないはずだから多少メモリの使用量が減るのかな? 別に学習用パラメータをstaticで持ったりはしてないので、本当にint型数個分とかそんなくらいだろうけど。
パラメータの形式を変えた影響で学習し直さないといけないので、せっかくだから教師あり学習からやっていきますか。
ハイパーパラメータとかを設定ファイルを外部において読み込む方式にしたら便利なことに気が付いた。気づかない方がバカである。今まで毎回ソースコード内に埋め込んでコンパイルし直したり標準入力から打ち込んだりしていたから……。
競技プログラミング
今日の一問。M_PI
を使える方法がわかったの気分的にちょっと良いかも。
1年前の日記
虚無っぽくなっている。確か去年は8月5日くらいまで課題があったのでまだ少し虚無日が続くんですよね。
その他
日々疲れている。
ここ数日ちょっと長めにプログラミングしてたら胸のあたりに痛みが発生してきた。