俺様は1ヶ月で将棋アマ2,3段クラスになった天才なのか?!

ニコニコ動画の電王戦への道で、何故か、私が1ヶ月で将棋アマ2,3段クラスになった天才という扱いになっていて、そして一部の人に嘘つき呼ばわりされて、おまけに私の出身大学とその入試偏差値まで動画コメントに書かれている始末であります。

続きを読む

Stockfish DD – SEE (Static Exchange Evaluation) 静的駒交換値

前回、positionクラスについて解説しましたが、position.cppのほうにSEE(Static Exchange Evaluation)の実装があります。

SEEは、局面を評価するときに、駒の取り合いが終わっている静かな局面で評価するために考えられた手法で、ある地点での駒の取り合いを指し手生成などをせずに調べます。

続きを読む

Stockfish DD – position 盤面構造体

今回は盤面構造体であるpositionクラスについて解説します。このpositionクラス、本当によく出来ていて、将棋ソフトに応用する場合でも、よくよく考えていくとこれと同じ構造に辿り着くと思います。

そういう意味では、将棋ソフトを作る場合でも独自に実装するより先に、このpositionクラスのソースコードを読んだほうがいいと思います。

続きを読む

『ルポ 電王戦』の続刊

mtmtさん(松本 博文さん)の、『ルポ 電王戦』の続刊(?)が出るそうです。将棋電王戦に出場する他の開発者のプロフィールは公開されていないので、私はこの本を見て初めて知ったことがたくさんあり、この本とその続刊は貴重な情報源だと思います。

続きを読む

今年の世界コンピュータ将棋選手権にやねうら王は出るのですか?

直前まで出るつもりでいたのですが、新規事業の立ち上げで時間が十分に取れないため、出ないことにしました。

嗚呼。世の中には星の数ほどのオモローがあるというのに、何故私の物理的身体は一つしかないのか…。

Stockfish DD – thread スレッド

今回はスレッド周りです。

探索を並列化するために並列数だけスレッドの生成が必要です。あと思考時間を監視して、時間になったときに思考を打ち切る判定をするためのスレッドも必要です。

GitHubのC++11用のコードだとスレッド生成はstd::threadを使って実装されています。なお、ここで紹介しているのはC++11用のブランチです。

続きを読む