何作ってる?

PR文書の下書きも兼ねて、これまでに何を作ったか、これからどうする予定かを書く。
下書きだと思うと全然書けなくなったので、時系列で書いていく。
shogi686microをベースにBitboard化(コード量が多く、思ったよりずっと大変だった)。PVS、Aspiration search、置換表、千日手、持ち駒の優越関係を実装し、4手読みLesserkaiにはそこそこ勝てるようになった。
高速1手詰め、王手判定、SEE、指し手の部分生成を実装すれば更に強くなると思うが、かなり面倒な部分なので進みが遅い。今は指し手生成を書いている。
ゼロから書き直しているので、できるだけCPUの気持ちになってコーディングするようにしている。低機能なのでNPSは高く、小さい高速化も検出しやすい。また、できるだけコード量を減らしてシンプルな作りを目指している。基本的には高速化を優先するが、コードがうんと単純になるなら、わずかに遅くなるかもしれないのは許容する。
電王トーナメントに間に合わない気もするが、せっかくの作り直す機会なので丁寧に作ることを優先したい。評価関数は、最悪WCSCのときのを流用(または微調整)してもいい。
半年前はStockfishを参考に作っていたが、今回は代わりにAperyを参考にする(ライブラリとして許可されているのでライセンスの心配がない(Stockfishでも問題ないと思うけど))。どのくらい使うか、あるいは使わないか、については未定。
モンテひよこやツツカナを見てもわかるように、オーダリングは重要である。直前の自分の手の継続手を読むなどして、前の手と関連した手を指せるようにしたい。理想は、逆棒銀(苦手なソフトが多い)を読めるようになること。強さとの両立は難しいと思うので、本番では使わないかもしれない。
開発中は、基礎や理解を優先する。本番直前になったら強さを優先する。そういう感じで行こうかな。
評価関数の学習に外部の棋譜を使う場合、大量の棋譜だと時間がかかるので、トッププロの棋譜か、floodgateの棋譜、あるいはその両方を使うつもりだ。floodgateの棋譜は、同じコンピュータだし、やねうら王の実績もあるし、有力そうなイメージがある。
あとはオーダリングの学習とかやりたい。WCSCのときは、評価関数の学習では満足できる結果が得られたものの、探索部のパラメータ調整などはほとんどしていなかった。コンピュータ将棋で一番面白いのは探索だと思うので、ガッツリやりたい(学習のほうが簡単に強くなるから面白いんだけどな)。
以上。PR文書は何を書こうかなあ。他ソフトとの現状での差異(持ち駒が配列とか、undoMoveがないとか)を説明して、あとはやりたいことをちょろっと書くくらいでいいか。あ、「686」の由来とか入れといたほうがいいか(今回は俺の棋譜で学習した評価関数じゃない(可能性がある)のでちょっと名前として弱いが仕方ない)。カサを増やしたかったら自己紹介とか書いてもいいんな(別に好きなアニメとかは書かない)。