【決定版】コンピュータ将棋のHASHの概念について詳しく

いまどきの将棋ソフトを使っていると、「HASH 50%」などと表示されている。これはHASH利用率と呼ばれる。この数字が大きくなってくると探索の効率が悪くなる。要するに潤沢にメモリがある場合に比べると弱くなる。これは、どれくらいの値までであるなら適切なのか?HASH利用率が99%にならない限りHASHには余裕があるものなのか?HASHはどういう仕組みになっているのか?HASH利用率が50%の状況で、ハッシュ衝突はしているのか?など、わりとソフトを長年使っていても知らない人が多いのでここに原理から詳しく説明した決定版的な記事を書く。

続きを読む

NodesLimit固定で、Threadsを増やしても弱くならない件

uuunuuunさんにお願いして、思考エンジンがどれくらいの探索局面数(やねうら王であれば、この値はNodesLimitオプションで制限できる)で、どれくらいの棋力になるのかを調査していたときに、スレッド数によってこの強さが変わることに気づきました。

続きを読む

やねうら王にNNUE評価関数をマージしました

WCSC28に出場したたぬき(the end of genesis T.N.K.evolution turbo type D)のNNUE評価関数をやねうら王にマージしました。このNNUE評価関数は、ニューラルネットワークを用いたもので、やねうら王のevaluate()のみの差し換えたもので、探索部は従来のやねうら王のままです。

続きを読む

何故いままで置換表は2のべき乗サイズでしか確保できなかったのか?

以下では、プログラマー向けに説明を書きます。

その昔、CPUの演算で、掛け算が異様に遅い時代があった。割り算はいまでも足し算なんかに比べるとずいぶん遅いけども、掛け算はいまや足し算の数倍程度の時間しかかからない。

続きを読む

教師データはWCSC28終了まで公開しておきます

前の記事で、期間限定で「depth10で作った110億局面の教師データ」を公開したのだが、WCSC28のルールによると、大会終了(?)まで入手可能ではない教師データはライブラリとして使えないらしい。仕方がないな…この教師データをWCSC28のライブラリ申請するとともに、WCSC28終了まで公開しておくことをここに約束しよう。

続きを読む