お手軽に強い将棋プログラムを作る10の方法
http://d.hatena.ne.jp/ak11/20090219#p1
akiさんがBlunder開発で培ったノウハウを10個にまとめて紹介
2. 計測重要 正確さと速度のトレードオフになったりするケースが凄く多いので、 最適化で言われるように、予想通りに行かない事も多いです。
このへんが自分は苦手。お手軽にはできない(^^;
例えば、PVS・AspirationSearch・再帰的反復深化が3桁以下の間に、 評価関数や指し手生成は6桁以上、手の適用は7桁以上、なんて具合に、 言葉通り回数の桁が違う事が多いため、どこに力を入れるのか、どこの無駄を省くのかが重要で、 それも相まって予想通りの挙動を示さない事が多いです。
これはありますよね。
探索でも、圧倒的に静止探索>通常探索の動く割合になるんですよ。当然ですけど。
ってわけで、misakiの通常探索は手の深さをfloatで持っていて、0.5手延長は文字通り0.5手延長してますw
普通はこことは整数化するのが定跡ですけど、(乗算するわけじゃないし)
通常探索の深さをfloatだろうとintだろうと「全体での速度に大差はない」と思います。
もちろん作りにもよるし、少しのことの積み重ねが全体の速度にはなるんでしょうけど(^^;
極端な例でw
それと、探索木の形状の把握も重要です。これを勘違いすると枝刈りとかの性能予測が上手く出来ません。
このへんが解ってないんですよねえ。色々と計測する仕組みを入れてみよう……