将棋開発日誌

4月9日にオープン戦があるので、これはなんとか出たいと思います。
21日の祝日に細々とやったのは、
累計思考時間の表示とか、詰め将棋ルーチンを反復深化にしたり(多重ではない)
定跡に頻度の高い手を選ぶようにしたりって感じ。
互いに打ってる手をみるとそこそこ強くなってる感じはします。
あと、居飛車振り飛車などの戦形に応じて、絶対位置テーブルを選ぶようにするのと、王の周囲に相対位置テーブルを、評価関数に組み込みました。
これで、位取りとか、遊び駒の防止とかが働くと思う。
もう時間が無いので、必須項目を優先して進めようと思います。
そういう意味で、今度の土日は、25分切れ負けの選手権ルールにそって、時間コントロールの組み込みと、
1手必至、王の守り型(落とし穴方式)あたりを実装を進めようと思います。
あと、通信も心配なんですが、CSA将棋+DLL思考って方式で、ちゃんと選手権で対戦できるのかなあ? ちょっと不安なところです。
マシンは、パソコン工房にCoreDuoのノートPCを注文しちゃおうかなあ? ま、直前でいいかな。今回は並列探索はやらないつもりだし
ただ、相手手番で考えるのは、できればやりたいところですね。時間節約になるし。


職場では、MMX命令をつかったインラインアセンブラのコードも勉強がてら書いてます。やってみれば簡単。64ビットレジスタを8バイトx8としてSIMDで処理できるだけじゃん。
SSEは、それを浮動小数レジスタでやるようになって、SSE2は128ビットになってる模様。
MMXレジスタは、浮動小数レジスタとリソースを共有してるみたいで、使うの止めたときはモードを明示的に戻さないと、浮動小数点処理が誤動作するらしい。ただし50クロック消費する模様(w