1
0
Fork 0
stockfish/src
SFisGOD 1f3bd968bb Introduce bad outpost penalty
In some French games, Stockfish likes to bring the Knight to a bad outpost spot. This is evident in TCEC S18 Superfinal Game 63, where there is a Knight outpost on the queenside but is actually useless. Stockfish is effectively playing a piece down while holding ground against Leela's break on the kingside.

This patch turns the +56 mg bonus for a Knight outpost into a -7 mg penalty if it satisfies the following conditions:

* The outpost square is not on the CenterFiles (i.e. not on files C,D,E and F)
* The knight is not attacking non pawn enemies.
* The side where the outpost is located contains only few enemies, with a particular conditional_more_than_two() implementation

Thank you to apospa...@gmail.com for bringing this to our attention and for providing insights.
See https://groups.google.com/forum/?fromgroups=#!topic/fishcooking/dEXNzSIBgZU
Reference game: https://tcec-chess.com/#div=sf&game=63&season=18

Passed STC:
LLR: 2.93 (-2.94,2.94) {-0.50,1.50}
Total: 6960 W: 1454 L: 1247 D: 4259
Ptnml(0-2): 115, 739, 1610, 856, 160
https://tests.stockfishchess.org/tests/view/5f08221059f6f0353289477e

Passed LTC:
LLR: 2.98 (-2.94,2.94) {0.25,1.75}
Total: 21440 W: 2767 L: 2543 D: 16130
Ptnml(0-2): 122, 1904, 6462, 2092, 140
https://tests.stockfishchess.org/tests/view/5f0838ed59f6f035328947a2

various related tests show strong test results, but so far no generalizations or simplifications of conditional_more_than_two() are found. See PR for details.

closes https://github.com/official-stockfish/Stockfish/pull/2803

Bench: 4366686
2020-07-11 11:23:55 +02:00
..
syzygy small cleanups 2020-06-21 15:22:20 +02:00
Makefile Revert LTO for mingw on windows. 2020-06-27 10:22:27 +02:00
benchmark.cpp Small cleanups 2020-07-09 22:01:06 +02:00
bitbase.cpp small cleanups 2020-06-21 15:22:20 +02:00
bitboard.cpp small cleanups 2020-06-21 15:22:20 +02:00
bitboard.h Introduce bad outpost penalty 2020-07-11 11:23:55 +02:00
endgame.cpp denormalize KRKP. 2020-07-06 17:50:35 +02:00
endgame.h remove KNPK endgame code 2020-04-05 08:35:31 +02:00
evaluate.cpp Introduce bad outpost penalty 2020-07-11 11:23:55 +02:00
evaluate.h Small cleanups 2020-03-01 09:31:58 +01:00
main.cpp small cleanups 2020-05-23 13:27:16 +02:00
material.cpp Small cleanups 2020-06-24 22:20:04 +02:00
material.h Small cleanups 2020-06-24 22:20:04 +02:00
misc.cpp Small cleanups 2020-06-24 22:20:04 +02:00
misc.h Use 128 bit multiply for TT index 2020-06-17 07:32:16 +02:00
movegen.cpp Simplify make_promotions() 2020-07-09 21:59:32 +02:00
movegen.h Update lists of authors and contributors 2020-01-09 01:43:47 +01:00
movepick.cpp small cleanups 2020-06-21 15:22:20 +02:00
movepick.h small cleanups 2020-06-21 15:22:20 +02:00
pawns.cpp Connected / blocked pawns simplification 2020-07-09 21:57:13 +02:00
pawns.h small cleanups 2020-06-21 15:22:20 +02:00
position.cpp Clean-up en passant processing 2020-07-09 21:46:26 +02:00
position.h Small cleanups 2020-06-24 22:20:04 +02:00
psqt.cpp Increase value of pawns on fifth rank 2020-06-28 22:03:10 +02:00
search.cpp Maximize usage of transposition table in probcut 2020-07-11 11:10:06 +02:00
search.h Simplify use_time_management() and allow composing 2020-06-27 10:06:05 +02:00
thread.cpp Small cleanups 2020-06-24 22:20:04 +02:00
thread.h Refactor some threads related code. 2020-06-09 18:22:27 +02:00
thread_win32_osx.h Update lists of authors and contributors 2020-01-09 01:43:47 +01:00
timeman.cpp Small cleanups 2020-06-24 22:20:04 +02:00
timeman.h Update lists of authors and contributors 2020-01-09 01:43:47 +01:00
tt.cpp Small cleanups 2020-06-24 22:20:04 +02:00
tt.h Small cleanups 2020-06-24 22:20:04 +02:00
tune.cpp Small cleanups 2020-06-24 22:20:04 +02:00
tune.h Fishtest Tuning Framework 2020-05-02 17:32:11 +02:00
types.h Fix fragile code to use proper random 64 bit keys. 2020-06-28 21:57:37 +02:00
uci.cpp Provide WDL statistics 2020-07-01 07:33:05 +02:00
uci.h Provide WDL statistics 2020-07-01 07:33:05 +02:00
ucioption.cpp Set UCI_ShowWDL by default to false 2020-07-03 21:07:17 +02:00