VC2008のPGO
VS2008Proを入手しました。
VC6のプロジェクトをコンパイルすると、エラーとワーニングの山。。。
デフォルト状態ではfor (int i=0; i<100; i++) {…} としたときのiのスコープがVC6の時とは異なるようです。コンパイルオプションを変更するとソースはそのままでOKでした。ワーニングはstrcpyはstrcpy_sに置き換えろみたいなものが大量に出ていますね。これは無視してよさそう。
その他、いろいろありましたが、何とかコンパイルでき動かせました。
速度はVC6でコンパイルしたものとはほぼ同じようです。コンパイルオプションで最大限の最適化というオプションがあったのでその設定でコンパイルしてみましたがむしろ遅くなってしまいました。
さて、お待ちかねのPGOですが、446秒かかっていた探索が387秒で完了、なんと約0.87倍に短縮されました!!ソースの見直しでここまで高速化するのは至難の業ですから、乗り換えてよかったです。
あとは、64ビット化するかですが。。。手元に環境がないので簡単には試せませんが、1割ぐらい速くなるのなら実行したいですね。備後将棋の恩本さんはあまり変わらなかったとおっしゃっていましたが。
あと気になるのはVS2008Proでコンパイルしたモジュールの動作保障がWin2000以降とのことで、95,98,Me,NTが動作保障の対象にならないようなのです。動かしてみて動けば良いような気はしますが。
K-Shogi開発諸々
本日のオープン戦には参加する予定です。中継ページ
前回のNull Move Puruningに入る条件ですが、20→10で149勝139負となり採用となりました。
VS2008Proは購入する方向で考えています。
今週のK-Shogiの改良
話題のBonanzaのソースを少し見てみましたが、ちらりと見ただけでは理解できそうにありませんでしたので、次の選手権まではソースは見ないスタンスで行くことにします。
K-Shogiでは探索の深さを持ち点から指し手の評価値(良い手ほど値が小さい)を引いていく方式で制御しています。指し手の評価値はSEEやその他の評価項目から手動で作っています。持ち点は1回目の反復は30からスタートで反復毎に10から20づつ増やしていきます。(実現確率を劣化したような方式です。)
今週の改良はNull Move Puruningに入る条件を残り持ち点が30以上だったのを20以上にしたところ、自己対局で147勝135負となりました。今は20→10で確認中です。(今週の改良時間は10分ぐらいでした(笑))
世界最速(?)のコンピュータ将棋マシン
マイムーブさんの提唱された世界最速のコンピュータ将棋マシンを作りました!!
(移動しながら将棋を指します。他にそんなマシンはないと思うので(笑))
Floodgate参戦中の写真です。なんとMyMove900とあたりました~(負けました。)