Skip to content

Commit

Permalink
- multipleExtensions廃止
Browse files Browse the repository at this point in the history
- ふかうら王でモデルファイルが存在しないときにFileOpenErrorではなくFileNotFoundを返すように修正。
  • Loading branch information
yaneurao committed Oct 11, 2024
1 parent 3dd8f20 commit a5e58a4
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 19 deletions.
25 changes: 8 additions & 17 deletions source/engine/yaneuraou-engine/yaneuraou-search.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1576,8 +1576,6 @@ Value search(Position& pos, Stack* ss, Value alpha, Value beta, Depth depth, boo
(ss + 2)->killers[0] = (ss + 2)->killers[1] = MOVE_NONE;
(ss + 2)->cutoffCnt = 0;

ss->multipleExtensions = (ss - 1)->multipleExtensions;

// 前の指し手で移動させた先の升目
// → null moveのときにprevSq == 1 == SQ_12になるのどうなのか…。
// → Stockfish 16でMOVE_NULLの時は、prevSq == SQ_NONEとして扱うように変更になった。[2023/10/15]
Expand Down Expand Up @@ -2620,20 +2618,16 @@ Value search(Position& pos, Stack* ss, Value alpha, Value beta, Depth depth, boo
ss->excludedMove = MOVE_NONE;

// 置換表の指し手以外がすべてfail lowしているならsingular延長確定。
// (延長され続けるとまずいので何らかの考慮は必要)
if (value < singularBeta)
{
extension = 1;

// We make sure to limit the extensions in some way to avoid a search explosion
// 2重延長を制限することで探索の組合せ爆発を回避する。

// TODO : ここのパラメーター、調整すべきかも?
if (!PvNode && value < singularBeta - 2 && ss->multipleExtensions <= 15)
{
// この200調整したほうがよさげ。
extension = 2 + (value < singularBeta - 200 && !ttCapture);
depth += depth < 15;
}
int doubleMargin = 262 * PvNode - 204 * !ttCapture;
int tripleMargin = 97 + 266 * PvNode - 255 * !ttCapture + 94 * ss->ttPv;

extension = 1 + (value < singularBeta - doubleMargin)
+ (value < singularBeta - tripleMargin);

depth += ((!PvNode) && (depth < 14));
}

// Multi-cut pruning
Expand Down Expand Up @@ -2735,9 +2729,6 @@ Value search(Position& pos, Stack* ss, Value alpha, Value beta, Depth depth, boo
// これはsingluar extensionの探索が終わってから決めなければならない。(singularなら延長したいので)
newDepth += extension;

// multipleExtensionsは、前のノードで延長したかと本ノードで延長したかを加算した値
ss->multipleExtensions = (ss - 1)->multipleExtensions + (extension >= 2);

// -----------------------
// 1手進める
// -----------------------
Expand Down
2 changes: 1 addition & 1 deletion source/eval/deep/nn_types.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -660,7 +660,7 @@ namespace Eval::dlshogi
}
}
if (is_err)
return ResultCode::FileOpenError;
return ResultCode::FileNotFound;

return ResultCode::Ok;
}
Expand Down
1 change: 0 additions & 1 deletion source/search.h
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,6 @@ struct Stack {
bool inCheck; // この局面で王手がかかっていたかのフラグ
bool ttPv; // 置換表にPV nodeで調べた値が格納されていたか(これは価値が高い)
bool ttHit; // 置換表にhitしたかのフラグ
int multipleExtensions; // 前のノードで延長した手数と今回のノードで延長したか手数を加算した値
int cutoffCnt; // cut off(betaを超えたので枝刈りとしてreturn)した回数。
};

Expand Down

0 comments on commit a5e58a4

Please sign in to comment.