GPS将棋/Blunder on ひよこ将棋

まだ妄想の段階なのでそのつもりでお聞きください。

いま、GPS将棋の評価関数やBlunderの評価関数をひよこ将棋に載せたらどうなるのか考えています。

私はひよこ将棋に他人の評価関数を取り込みたいという意味ではなく(そんなことは死んでも嫌です!!)、こういう評価関数だとこういう部分が弱点になるだとか、これくらいのnpsが出てこれくらいの強さになるという感触を得たいのです。

大会ではそれぞれマシン環境が異なり、ただでさえソフトの公平な比較とは言いがたいのに、さらに、昨年のBlunderではC#で書かれておりnpsが低かったはずです。それでも選手権では7位と奮闘しておりました。

仮にすべて同じマシンで対戦させたとして、すべてのソフトが同じようにC/C++で書かれていたとしても、今度は指し手生成のスピードなどが異なります。この部分が結構なウエイトを占めるので、これまた評価関数の優秀性の公平な比較とは言いがたいです。

私はそういう個々の将棋ソフトの特有の一切の事情を廃したときに、評価関数それ自体が優秀なのかどうかに興味があります。

これを調べるためには、同じ土俵に持ってきて、それで比較するしかありません。

しかし評価関数は探索とセットであり、評価関数の弱点を探索手法で補うという側面はあります。
ゆえに、探索まで同じようにしないとその評価関数の優秀性については本当のところはわかりません。

それでもまあ、たいていの将棋ソフトにとって「評価関数をBonanzaのfv.binに置き換えれば強くなった」というのはよくあることでして、単純に置き換えてそれでどれくらいの強さを発揮するのかというのはひとつの基準にはなると思います。

そう考えたときに、GPS将棋やBlunderの評価関数だけひよこ将棋に持ってくれば、Bonanzaより強いものが出来るのか、出来ないのか、同じぐらいになるのかというのは興味深いです。

特にこの二つのソフトは評価関数が優秀だと定評があるのに、他の将棋ソフトでこれらの評価関数を持ってきて動かされた例はいまだ存在しません。

BlunderはGPS将棋に比べれば知名度が低いでしょうから仕方ないとしても、GPS将棋のほうは、持ってきたくともソースコードが大変複雑で部分的に持ってくるのは大変な作業だというのもあります。あと盤上の駒の利きを配列に持っているので、利きをGPS将棋と同じ形で持っていない限り、再現するのが困難だというのがあります。

それでも実験のためGPS将棋やBlunderの評価関数をそのまま持ってきて動かしてみたいなぁというのは私は前々から考えており、しかし現実的にその作業を行なう労力を考えるとなかなか気が進まないのが実情です。

こう言っては何ですが、GPS将棋はBonanzaに圧勝してもいいぐらいだと思うのですが、なぜかいつも選手権ではいい勝負です。それも同じ土俵で(同じスペックのマシンで)対決されたことはあまりないのでどちらが強いのかすら本当のところよくわかりません。

GPS将棋がBonanzaより圧倒的に強いのであれば、私ももう少し前向きに考えられるのですが、苦労して評価関数を持ってきても同じぐらいの強さしかないのでは、何をやっているかよくわかりません。(少なくとも評価関数の設計の仕方の勉強にはなりますが。)

そんなわけでして、どうしようかずーーと迷っております。

その迷いが「fv.binなんか死んでも使いません!!(キリ」であったり、「KPPするのにfv.binの一部を使ってみます」であったりして、私が迷走しているように見えるかも知れませんが、他の将棋ソフトの評価関数を自分の将棋ソフトに載せるのは気持ち悪いという私の生理的な嫌悪感と、他の将棋ソフトの評価関数の優秀性を客観的に評価しておきたいという研究者としての姿勢とがぶつかり合った結果なのだとご理解ください。

なんかgdgdな話で大変申し訳ありませんが…。