研究
進捗発表会ではよくわからないことをふにゃふにゃと言って誤魔化した。誤魔化し人間です。
コンピュータ将棋
やはり置換表の件は勘違いだった。ちゃんと置換表をオンにした方が8割勝ってますね。追試して良かった。
評価関数をKKPT_KPPT型に修正しようとしたが、計算がなにもわからなくなってきた。こうしてみると評価パラメータをstd::array<int16_t, 2>
という型で取って演算子をオーバーロードしていく方式がめっちゃ賢く思えてくる。
なんかNoviceとか評価値計算のとき3×2の配列を取ってるっぽいんだけど、これはkkp,kppの先手,kppの後手の3つについてそれぞれ生の値と手番ボーナスの2種類ということだよね? そう信じて実装するぞ。しかしNovice、実装レベルとしては僕に近くてわかりやすいんだけど、マジックナンバーをそのままプログラム中に埋め込んであるのでほげーってなる。
というわけで全部std::array<int16_t, 2>
に直した。バグった。なんで~。評価関数を読み込むだけのことができない無能。
さっぱりわからん。うーん厳しい。書き方としてはこの方が洗練されているから前のぐちゃぐちゃコードには直したくない……。というか前までもちゃんと読み込めてたかは謎なんだよな。多少は強かったとはいえ。
差分計算がバグっているのかもしれないけど、読み込んだ直後に見ても2万とか値がついているのはヤバい気がする。
2万近くの値が4個ずつっていうのがもろにバグってそうな挙動。助けてー。小さいコードで実験してみればいいじゃん! なんでそういう発想が出てこないかなぁ。まあ明日にでも頑張ろう。
競技プログラミング
今日の一問。700点問題がスルっと解けてしまうことがあり、AGCという感じがする。
なんか順位表みたらコンテストの時にA問題で24WAとか出していて面白かった。気になったので解いてみたら普通に難しい。これひょっとするとB問題より難しいのでは。B問題の記事書いたときに一瞬見えた解説が思い出されてしまって10分ちょいで解けたけど、それなかったら結構ハマっていた気がする。いやーAGC……。
1年前の日記
横歩取り、当時からするとかなり減った印象。後手が避けてるんだっけ。
学部の勉強もちゃんとこなせていないことがわかる。頭が悪く意欲もない人間って救いようがないですよね。
その他
どうかあの子を救って。
と歌うamazarashiが好き。