現状

floodgateにkuma2_test流しています。bona6のfv.bin利用。
ビットボード使っていない劣化ボナンザです。
シングルコアでもfv.bin使えばR2500行くとの助言を頂いたので頑張ってますが、なかなか厳しいです・・・

個人的にはボナンザがなんであんなに強いのか、
どの部分が強さに利いているのかという事に興味があります。
以下、定量的ではないですが、まとめてみました。

A.効果が高いもの

・fv.bin
・PVS
・ハッシュ手(ハッシュ手を二つ格納するようにしたらもっと良くなった)
・seeオーダリング
 seeは同じマスでひたすら駒を取り合うと思っていたけど、
 実は損する時点で取り合いをやめることに気付いた。
・reduction
 reductionには謎の定数がありますが、あの値が重要なようです。
・futility cut
 手を指した後の評価値の推定(estimate)が重要なようです。
 evaluateせずにカットできます。
 当初、これが間違っていてザクザク枝刈りされて、NPSは800Kとかになって
 喜んでいましたが、余計に弱くなりました。
・null move pruning
history heuristics
・差分評価
 NPSが3割程度速くなる
・王手延長

B.効果が少ない、良く分からないもの。

・アスピレーションサーチ(stable判定のため?)
・キラー手
 やり方がまずいのか、いれると却って探索ノードが増えてしまう。
 reduction抑制のため使っている?
・動的futility(check_futile_score_quies)
 ボナンザは動的にfutilityのマージン変えています。
 
これらは効果が少ないと思われますが、その積み重ねで強くなっていると思われます。
NPS3%向上×10でNPS30%増える。

C.今後、入れた方が多分良いもの。

・短手詰め
 静止探索が安定する気がする。強力なβカット法と考えるといいかも。
・時間制御
 重要な局面で2倍時間かければNPS2倍と同じ効果なので当たり前といえば当たり前。 
 強いソフトは時間の使い方も上手い。

現在、kuma2_testはAのみの状態です。ですが、Aだけだとコードもシンプルです。
NPSはcore i7 3.0GHz シングルコアで、最初のうちは300KNPS、ハッシュが埋まってくると400KNPS程度です。
R2200以上はある気がします。