« ここ1週間の開発 | トップページ | 将棋でもMC »

2008年2月17日 (日)

速くなる

プログラムにバグは付き物だ。しかし、今回のバグはありがたい。
bitboard対応してから、何故かあまり速くない。以前にも書いているが、いろいろな場面で速度を調査してみると明らかに遅い。速度的には2~3割遅くなっていた。
その後、結局速度アップが望めそうも無いならbitboardを止めてしまおうかと考えつつ評価関数を修正し始めたのだった。

王手無視の手の生成を止める修正をしているうちに、bitboard対応以前の部分に大きな問題が見つかってしまった。前のプログラムは王手無視の手を生成できるだけの情報を持っていなかったのだ。
どちらを採用するか決めないまま、前のプログラムの修正をしていた。やはりというか当然というか深みにハマってしまった。
その深みで少しもがいてみたものの、やはり長い時間をかけてたどり着いた結論(王手無視付きで生成)を1、2日でなんとかできる訳もなかった。

結局のところ、王手無視を止めさせるにはbitboardを採用するしか無かった訳だ。しかし、ココに隠れていた。
どうも、コンパイルもリンクも出来るのでバグではないかもしれないが、プログラムの書き方の気に入らない部分があって前々から引っ掛かっていたので思い切って修正してみた。
どんな修正かというと、&をつけただけ(w
元々はポインタ渡しをしたかったのだが、理由は忘れたが「&をつけなくても良し」と勝手に思い込んでしまったらしい。
何箇所かあるその&を付けて、コンパイル、リンク、実行!
う~~ん。速っ。
少なくても去年のバージョン程度には速くなった模様。しかも、王手無視対応済み。

これで少しは期待が持てそう。まだまだ、先は長い。

|

« ここ1週間の開発 | トップページ | 将棋でもMC »

コンピュータ将棋」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/181022/40153976

この記事へのトラックバック一覧です: 速くなる:

« ここ1週間の開発 | トップページ | 将棋でもMC »