お手軽に強い将棋プログラムを作る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

それと、探索木の形状の把握も重要です。これを勘違いすると枝刈りとかの性能予測が上手く出来ません。

 このへんが解ってないんですよねえ。色々と計測する仕組みを入れてみよう……