sakurapyon’s blog

sakurapyon’s blog

[Stockfish] futility margins array *1

  // Init futility margins array
  for (d = 1; d < 16; d++) for (mc = 0; mc < 64; mc++)
      FutilityMargins[d][mc] = Value(112 * int(log(double(d * d) / 2) / log(2.0) + 1.001) - 8 * mc + 45);
  • ややこしい式になっているが、dが増えると増加・mcが増えると減少。
  • なぜ mc (movecount) が増えると減るのだろうか?
    • 手が良い順番に並んでいるなら、後半の手ほど悪いはず
    • 低いマージンで刈ってもいいだろう
  • d \leq 5では後半はマージンが負になってしまう。いいのかそれで?

It's not a bug. Negative futility pruning values at depth = 1 are okay. Move count based pruning is going to hit us hard anyway razoring everything where moveCount > 4.

https://github.com/mcostalba/Stockfish/commit/4502917665d50394ead903d0b82c6e7b4777b99d
  • これで良いらしい。
  • GPSfish でも値はそのまま使われている。いいのか?

  • 切捨てのせいで線が重なってる。これでいいんかな?