From c6bb23e8c4dff844e101fa5d6d897d1a32692c85 Mon Sep 17 00:00:00 2001 From: yaneurao Date: Sun, 20 Oct 2024 23:40:52 +0900 Subject: [PATCH] =?UTF-8?q?-=20Step=2012.=E3=81=AE=E6=89=8B=E5=89=8D?= =?UTF-8?q?=E3=81=AEevaluate=5Fwith=5Fno=5Freturn()=E3=82=92=E9=96=93?= =?UTF-8?q?=E9=81=95=E3=81=A3=E3=81=A6=E6=B6=88=E3=81=97=E3=81=A6=E3=81=9F?= =?UTF-8?q?=E3=80=82rollback=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/engine/yaneuraou-engine/yaneuraou-search.cpp | 6 ++++++ source/tt.cpp | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/source/engine/yaneuraou-engine/yaneuraou-search.cpp b/source/engine/yaneuraou-engine/yaneuraou-search.cpp index f5e0ac2f7..23f53ef71 100644 --- a/source/engine/yaneuraou-engine/yaneuraou-search.cpp +++ b/source/engine/yaneuraou-engine/yaneuraou-search.cpp @@ -2410,6 +2410,12 @@ Value search(Position& pos, Stack* ss, Value alpha, Value beta, Depth depth, boo moves_loop: // When in check, search starts here // 王手がかかっている局面では、探索はここから始まる。 + // このノードでまだ評価関数を呼び出していないなら、呼び出して差分計算しないといけない。 + // (やねうら王独自仕様) + // do_move()で行っている評価関数はこの限りではないが、NNUEでも + // このタイミングで呼び出したほうが高速化するようなので呼び出す。 + Eval::evaluate_with_no_return(pos); + // ----------------------- // Step 12. A small Probcut idea, when we are in check (~4 Elo) // Step 12. 王手がかかっている局面のときに用いる小さなProbcutのアイデア(約4 Elo) diff --git a/source/tt.cpp b/source/tt.cpp index 8907d16f3..111518cad 100644 --- a/source/tt.cpp +++ b/source/tt.cpp @@ -180,7 +180,7 @@ void TTEntry::_save(TTE_KEY_TYPE k, Value v, bool pv, Bound b, Depth d, Move m, move16 = m.to_move16(); // Overwrite less valuable entries (cheapest checks first) - // より価値の低いエントリを上書きします(最も安価なチェックを優先) + // より価値の低いエントリを上書きします(最も簡単にできるチェックを先に行う) if (b == BOUND_EXACT || k != key || d - DEPTH_ENTRY_OFFSET + 2 * pv > depth8 - 4 || relative_age(generation8))