日記

日記です

0903

将棋

観戦

 NHK杯、森内-藤井戦を観た。▲6六歩が早いところを後手が積極的に咎めに行ったという感じで、あんな簡単な右四間飛車で決まってしまうなら先手は苦しいだろうと思う。▲6六歩が相当慎重に指さないといけない手だとしたら、そもそも矢倉指したいという気にはならないかなぁ。僕は別に角換わりでいいじゃんってなる。先手角換わりもちょっと新しい同型がどうすればいいのかはわからないけど。

ウォーズ

 将棋ソフトに一段落付けたので久しぶりに。

 1局目は後手番。相手は四間飛車にしてきたので急戦を挑む。しかし飛車を切ったのが暴発で、互角の捌きあいだと美濃の堅さで無理になるやつやった。弱いなぁ。 16.6%

 海底とも何局か指してみたけど1手数秒程度ではかなわなくなってきた。海底はほぼノーミスでやってくるし、最後は7手詰めとかを平気で詰ましてくる。それはやっぱりウォーズ初段程度の棋力からすると凄まじい終盤力になるわけで、勝つのはなかなか容易ではない。

将棋ソフト

 プログラムが上手く終了しないバグとか探索のバグとかを取り切って、ひとまず将棋電王トーナメントに向けたバージョン1として完成させた。この時点でWCSC版に対する勝率は約9割。評価関数が同じなので探索がちょっと良くなっただけで勝率が跳ね上がるのだとは思うけど、9割を達成できたのは嬉しい。できれば本番までにもう一回このバージョンに9割勝てるようにしたいが、高望みだろうなぁ。

その他

プリンセス・プリンシパル8話

 肝心なところでちょっと席を外していたりしたんだけど、一応観た。話が進むわけではなかったけど、きっちりネタを割っておくのは大事ね。どう落としていくのかわからないけど、まぁ期待して観ています。

0902

将棋ソフト

  • やねうら王のルートノードって最善手以外は無効な値が入るというコメントがあったけど、それを実装している部分がわからない。→見つけました。
  • 最近はやねうら王のコードを読むことが多いけど、全体的には技巧の方が好きなコードといえるかもしれない。しかし探索部のコメントはやねうら王が最強だ。

競技プログラミング

 スパークした。8月結構やってたのがここにきて活きてきたのかもしれない。C,D問題をスッと処理できたからF問題に時間かけられたという面は大きいはずで、実力が上がっていると思っていいのでは。

その他

 将棋ソフトに全身全霊をかけていくので雑な日記になっている。

0901

疑問点

やねうら王も技巧もAperyもsearchのbeta cutが起きたところでHistoryの更新してなくない?

 新しいやり方に変わっている可能性がある? いや、よくみたらbeta-cutのときreturnじゃなくてbreakしてて、whileループの外側でupdateかけてたということに気づいた(技巧2)。

CounterMoveHistoryの概念がわからない

 Historyとは別もので、SearchStackのインスタンス変数として持たれている。よくわからないので後回し。

Historyの更新タイミングがわからない

 手を調べたときにbeta-cutが起きて、それで更新するならMovePickerによるスコアリングより後じゃん。というかほかの指し手についても混ざっている? 初期化されているの探索開始時点だし、その探索の時点では同じhistoryを更新しながら使いまわしていくのか……? 前のbeta-cutが次の局面のMovePickerに影響する? うーむ。

qsearchの作り

 もっと普通のsearchに寄せた作りにしていいんだと思う。そして指し手はMovePickerで制御するべきなんだ。なるほどなぁ。

置換表

 複数スレッドを動かしているとすぐ書き換えられるので排他制御入れないとエラー出てしまうんだけど、上位ソフトはそんなことしてないように見える。エントリを小さくして衝突を少なくするとか、クラスタ化して冗長化するという工夫によって安全性が保証されているんだろうか。ちょっと不安な気はする……。

探索が変?

 初期局面から考えて反復深化で各深さにかかる時間が 深さ1 : 39 msec
深さ2 : 44 msec
深さ3 : 51 msec
深さ4 : 60 msec
深さ5 : 78 msec
まではいいんだけど、
深さ6 : 6284 msec
深さ7 : 16915 msec
となる。指数関数的に伸びるといっても急激な伸び方に見えて、ちょっとどこか変なのかもしれないなどと。

置換表

 置換表のサイズ決定がバグっていた。1 << sizeとすべきところをそのままsizeを使っていた。アホみたいに小さいサイズの置換表しか与えられず頑張っていた海底くんに涙……。

0831

将棋

 叡王戦は解説の糸谷さんがめちゃくちゃファンサービスをしていてすごかった。負けの翌日だというのに、お疲れ様です。

将棋ソフト

 んー、やっぱり初期局面とかは各合法手の評価値に数点の差しかつかないから、これを枝刈りのマージンでどうにかしようというのは無理がある気がする。それでも上位ソフトは探索深さが伸びるのだから、オーダリングがよくできているんじゃないかと……。いや、評価関数がすごいと初期局面からでも合法手にちゃんと差がつくってことなのかなぁ。だとすると評価関数やることが探索深さを伸ばすことにも繋がる……?

 もっと上位ソフトのコードを研究しなくちゃいけないと思う。だるまさんを見習って解説記事を書きましょうかね。あれは実際すごいことだと思うよ。僕はまだまだダメダメだなぁ。

その他

 日記、完全に無な気がしてきたので、8月終わりということできりよく更新停止しようかなという気持ち。書くならちゃんとした記事を書きたい。たぶんそんなに書けないけど。

 悪くはなかったけど、良くもなかった8月だった。身の丈だ。9月はもっと成長したい。

0830

将棋

 菅井時代がやってくるかもしれない。

将棋ソフト

 全然強くならないなぁ。

 方針としては、(1)プロファイラとにらめっこして自分にできる限りの高速化を進めていく (2)どれだけ速くなるかもわからないけどbitboard製作に踏み切る (3)評価関数を2駒関係にする (4)探索をもっといろいろ入れてみる などが考えられるけど、どれが手っ取り早く強くなってくれるんだろうなぁ。やっぱり評価関数入れるんだろうか。それにしても探索が遅すぎると学習もろくにできないんだよね。やっぱり深さ10くらいは軽く読んでくれるようにならないもんだろうか。オーダリングをもっとやればいいのかな。

 Bitboardの活用法が全然見えてこない……。もっと他人のコードを読んでいかないといけないんだろうなぁ。しかしインプットしているときはアウトプットでないのがつらくてあんまりモチベーションがちょい下がってしまう。

 評価関数をいじる前にできることはやっておきたいんだけど、厳しいなぁ。厳しい。難しい。こんな弱いプログラムを強くできないなんてなぁ。もっと大きく弄り回していかないといけないんだろう。

競技プログラミング

 無

その他

ミリシタ

 1万枚イベントガシャ回したけど来なかったので、なんかやる気が削がれてしまった。まぁ少ないとはわかっているけどね……。その過程で、お仕事選んでチャンスが来るとイラっとしてしまうようになったのでやめどきだと判断する。

その他

 ちょっとここ2日ほど腑抜けていたけど、またここから頑張っていこう。

 将棋ソフト一生懸命書いてるからブログが適当になる。

0828

将棋ソフト

 めちゃくちゃ進捗が生まれている。これは期待できそう。  並列化のための簡単なサンプル

その他

プリンセス・プリンシパル

 昨日に引き続きプリンセス・プリンシパルが面白いという話をしていく。

 7話まで2周して本格的に面白いと思うようになってきた。こういうのは演出がしっかりしているって形用するべきなんだろうか。ちゃんとキャラクター各視点での情報が整理されていて、見逃しても本筋は追えるような細かい表情の変化やリアクションが丁寧に描かれていると思う。だから2回目見直したときも新たな発見があるし、1回目で意識的に気づかなかったとしても無意識のうちに汲み取っているんじゃないかと思う。結局そういうところで物語への没入感って決まるんじゃないかなと。

 設定とか物語の進行を全部言葉で(セリフで)説明しようとするとどうやっても冗長になると思うし、全部伝わらないことを断腸の思いで認めつつ絵で見せていくしかないんだろうなぁ。

 ニコニコで観ているとちょいちょいジョーカーゲームの名前が出されていたので、機会があったら観てみようかな。

 もっと批評に関する語彙を集めていきたい。