Skip to content

Commit

Permalink
- super sort実施の条件を調整する。
Browse files Browse the repository at this point in the history
  - ただし、ビルドオプションで無効化したまま。
  • Loading branch information
yaneurao committed Oct 29, 2023
1 parent e22387c commit e2a6df9
Showing 1 changed file with 5 additions and 18 deletions.
23 changes: 5 additions & 18 deletions source/movepick.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -524,34 +524,21 @@ Move MovePicker::next_move(bool skipQuiets) {
// (depthが低いときに真面目に全要素ソートするのは無駄だから)

#if defined(USE_SUPER_SORT) && defined(USE_AVX2)
// 以下のSuperSortを有効にするとinsertion_sortと結果が異なるのでbenchコマンドの探索node数が変わって困ることがあるので注意。

#if 0
partial_super_sort(cur, endMoves , std::numeric_limits<int>::min());
#endif

#if 0
// depth大きくて指し手の数も多い時だけsuper sortを使うとどう?
if (depth >= 10 && endMoves - cur >= 64)
partial_super_sort(cur, endMoves , std::numeric_limits<int>::min());
else
partial_insertion_sort(cur, endMoves, std::numeric_limits<int>::min());
#endif
// 以下のSuperSortを有効にするとinsertion_sortと結果が異なるのでbenchコマンドの探索node数が変わって困ることがあるので注意。

#if 1
// depth大きくて指し手の数も多い時だけsuper sortを使うとどう?
// (もうちょっと条件を精査した方がいいな…)
if ((depth >= 15 && endMoves - cur >= 32) || (depth >= 10 && endMoves - cur >= 64) || (depth >= 5 && endMoves - cur >= 96) )
super_sort(cur, endMoves);
partial_super_sort(cur, endMoves , -3000 * depth);
else
partial_insertion_sort(cur, endMoves, std::numeric_limits<int>::min());
#endif

partial_insertion_sort(cur, endMoves, -3000 * depth);
#else

// TODO: あとで比較する。
partial_insertion_sort(cur, endMoves, -3000 * depth);
// → sort時間がもったいないのでdepthが浅いときはscoreの悪い指し手を無視するようにしているだけで
// sortできるなら全部したほうが良いがどうせ早い段階で枝刈りされるのでほとんど効果がない。

#endif
}

Expand Down

0 comments on commit e2a6df9

Please sign in to comment.