Simplify the ShelterStrength[] array

Remove the distinction between the king file and the two neighbours
files in the ShelterStrength[] array. Instead we initialize the safety
variable in the evaluate_shelter() function with a -10 penalty if our
king is on a semi-open file (ie. if our king is on a file without a pawn
protection).

Also rename shelter_storm() to evaluate_shelter() while there.

STC:
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 23153 W: 4795 L: 4677 D: 13681
http://tests.stockfishchess.org/tests/view/5adcb83d0ebc595ec7ff8aa7

LTC:
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 25728 W: 3934 L: 3821 D: 17973
http://tests.stockfishchess.org/tests/view/5adcdcb60ebc595ec7ff8adb

See the commit history in PR#1559 for the proof that the committed
version is equivalent to the version in the tests above:
https://github.com/official-stockfish/Stockfish/pull/1559

Full credit to @protonspring for the renormalized values of the
ShelterStrength[] array used for the simplification. Thanks!

Bench: 4703935
This commit is contained in:
Stéphane Nicolet
2018-04-23 09:48:53 +02:00
parent aef7076c34
commit c794c8c801
2 changed files with 20 additions and 28 deletions
+1 -1
View File
@@ -59,7 +59,7 @@ struct Entry {
Score do_king_safety(const Position& pos, Square ksq);
template<Color Us>
Value shelter_storm(const Position& pos, Square ksq);
Value evaluate_shelter(const Position& pos, Square ksq);
Key key;
Score scores[COLOR_NB];