Changes

Jump to: navigation, search

Improving

1 byte added, 1 August
fix
| style="text-align:left;" | Reduce more when not improving / less when improving
|}
 
=Dynamic Improving=
 
[[Aron Petkovski]] introduced the concept of ''Dynamic Improving''. By using static evaluation differences as a bonus to a improving score, Dynamic Improving allows for more control over improving-based mechanisms.
 
<pre>
SearchStackEntry *past_stack = nullptr;
if ((stack - 2)->static_eval != kScoreNone) {
past_stack = stack - 2;
} else if ((stack - 4)->static_eval != kScoreNone) {
past_stack = stack - 4;
}
 
if (past_stack) {
// Smoothen the improving rate from the static eval of our position in
// previous turns
const Score diff = stack->static_eval - past_stack->static_eval;
stack->improving_rate =
std::clamp(past_stack->improving_rate + diff / 50.0, 0.0, 1.0);
}
</pre>
=Code Example=
move_picker.SkipQuiets();
continue;
}
</pre>
 
=Dynamic Improving=
 
[[Aron Petkovski]] introduced the concept of ''Dynamic Improving''. By using static evaluation differences as a bonus to a improving score, Dynamic Improving allows for more control over improving-based mechanisms.
 
<pre>
SearchStackEntry *past_stack = nullptr;
if ((stack - 2)->static_eval != kScoreNone) {
past_stack = stack - 2;
} else if ((stack - 4)->static_eval != kScoreNone) {
past_stack = stack - 4;
}
 
if (past_stack) {
// Smoothen the improving rate from the static eval of our position in
// previous turns
const Score diff = stack->static_eval - past_stack->static_eval;
stack->improving_rate =
std::clamp(past_stack->improving_rate + diff / 50.0, -1.0, 1.0);
}
</pre>
[[Category:Search]]
166
edits

Navigation menu