sakurapyon’s blog

sakurapyon’s blog

盤面構造・駒情報の持ち方を考える

さくらのvpsに新プラン(2GB 1470円/月)ができたおかげで居候の使えるメモリも増やせるようになった。今までは512MBに全てを納める関係上、sakurapyonの置換表は192MBだしKPPの搭載はまず無理。KKPで高速に回す、という手法を取らざるを得ないのでKKP+MVV/LVAだったんだけど、もうちょっとメモリ増やせるならKPP+学習という路線に向かってもいいかもしれない (居候はサーバー移行中なので2匹いますけど、そのうち1匹に戻ります)。

どうせ路線転換するなら、れさぴょんの盤構造を引きずったままだといろいろとやりたいことができなくて不便になりつつあるので、基本構造に手を入れたいとも思っている。

  • 利き情報があるのは便利
    • 只駒なのか取り返されるのか、などの判定が楽。MVV/LVAが効率化できてる
    • でも、利きの更新は重たい。とくに飛び利き
  • 利き情報があっても、玉の回り8箇所の利きなどを集計するのは手間がかかる
    • 影の利きがある場合を考えるとさらに面倒
  • 何かやるたんびに盤面スキャンしないといけない
    • しかも16x11なので、段と筋を別にループでまわさないといけない
      • メモリの増加方向が段になってるのも止めたい。筋の方がたぶん楽。
    • スキャンするにしても 0〜80までにして、壁を無くしたい
  • 手の持ち方は32bitでいいような気がする
    • 評価値も入れて64bitの方がいいか、別が良いかは悩みどころ
    • historyやcounterなど、別の用途に使うことを考えて手の構造を決めた方が良さそう
      • シフトやビットマスクがなるべく少なくなるように

たぶん、このあたりを考えてるときが一番楽しいんだろうなあ。