2007年04月12日

0.1 vs 0.2

この前作った将棋プログラムを改良してみました。やり始めるとついついはまってしまって、結構時間を使ってしまいました。ということで、前のバージョンとの対局を先後を替えて2局どうぞ!





自分では、かなり「怪しさ」が減っていると思うのですがどうでしょうか? まあ前のバージョンは、取った小駒をほとんど使わなかったり(仕様)、歩で相手の駒を取ろうとしなかったり(バグ!)、むちゃくちゃだったので、それと比べるのもなんなのですが・・・ でもコードはかなりきれいになったと思います。

作っていく中でいろいろとプログラミングの勉強もでき、プロファイラなんてものも初めて知りました! MinGWで作っているのですが、gprof便利すぎです。一時は300局面/秒弱しか手が読めなかった時があったのですが、これを使って遅い箇所を直していって、今は、かなりばらつきありますが、20000局面/秒ぐらいまで持ってきました。うーん、巨大な配列をループ回して初期化してはいけないのですね(笑)。memset使えと。そんなの最適化してくれるものかと思っておりました・・・

あと便利だったのは、WinMergeです。私は、2つのファイルを比較するだけなので、同じようなソフトなら何でもいいといえば何でもいいのですが、きれいで見やすくてすごくいいと思います。

WinMerge 日本語版
http://www.geocities.co.jp/SiliconValley-SanJose/8165/winmerge.html

基本的なところはある程度できたので、あとはパラメータをちゃんと調整するとだいぶ強くなりそうです。これはなんとか自動化したいですねえ。あと探索の仕方が、ごく単純なMinMaxなので、これを改良すれば確実に速度は速くなりそうです。それより先は、一から書き直さないと難しいかもしれません。

2007年04月12日 19:10

+ TrackBacks +

» 0.2 vs 0.3 from perfectclouds
将棋プログラムを改良してみました。とりあえず、前のバージョンとの対局を先後替えて2局どうぞ。 大幅に、とはいいがたいですが、明らかに良くなったとは思います... [続きを読む]

トラックバック時刻: 2007年05月14日 23:41