fairystockfish.git
6 years agoImprove XBoard compatibility for makruk variants
Fabian Fichter [Thu, 14 Nov 2019 23:26:46 +0000]
Improve XBoard compatibility for makruk variants

6 years agoSupport New Zealand chess
Fabian Fichter [Thu, 14 Nov 2019 16:19:48 +0000]
Support New Zealand chess

Allow castling with one non-rook piece type and add New Zealand chess (#52).

bench: 4470822

6 years agoSupport Centaur chess
Fabian Fichter [Thu, 14 Nov 2019 13:14:44 +0000]
Support Centaur chess

https://www.chessvariants.com/large.dir/contest/royalcourt.html

Closes #33.

bench: 4556696

6 years agoSupport debug commands also in XBoard protocol
Fabian Fichter [Thu, 14 Nov 2019 10:47:47 +0000]
Support debug commands also in XBoard protocol

Commands `d` and `eval` can now also be used in xboard protocol (#47).

6 years agoSeparate XBoard protocol code
Fabian Fichter [Thu, 14 Nov 2019 09:37:59 +0000]
Separate XBoard protocol code

Split UCI and XBoard protocol code for better maintainability.

No functional change.

6 years agoTweak piece values for hoppelpoppel
Fabian Fichter [Thu, 14 Nov 2019 09:25:40 +0000]
Tweak piece values for hoppelpoppel

hoppelpoppel STC
LLR: 2.95 (-2.94,2.94) [0.00,10.00]
Total: 159 W: 113 L: 25 D: 21
http://www.variantfishtest.org:6543/tests/view/5dcc4d846e23db1ffe4a2734

hoppelpoppel LTC
LLR: 2.95 (-2.94,2.94) [0.00,10.00]
Total: 136 W: 100 L: 16 D: 20
http://www.variantfishtest.org:6543/tests/view/5dcc61d96e23db1ffe4a2739

6 years agoAvoid copying of pieceToChar string
Fabian Fichter [Tue, 12 Nov 2019 22:53:09 +0000]
Avoid copying of pieceToChar string

Small speed-up by using references.

6 years agoFix description of chancellor in variants.ini
Fabian Fichter [Tue, 12 Nov 2019 20:54:11 +0000]
Fix description of chancellor in variants.ini

6 years agoSupport perft command in xboard protocol
Fabian Fichter [Tue, 12 Nov 2019 19:59:03 +0000]
Support perft command in xboard protocol

6 years agoUpdate documentation in variants.ini
Fabian Fichter [Tue, 12 Nov 2019 19:25:01 +0000]
Update documentation in variants.ini

Describe recently added configuration options.

6 years agoSet default variant based on protocol
Fabian Fichter [Mon, 11 Nov 2019 20:01:17 +0000]
Set default variant based on protocol

Improve compatibility with shogi and xiangqi GUIs
by setting suitable defaults for UCI_Variant:
UCI: chess
USI: shogi
UCCI: xiangqi
xboard: chess

6 years agoUpdate list of supported protocols in readme
Fabian Fichter [Mon, 11 Nov 2019 15:44:51 +0000]
Update list of supported protocols in readme

6 years agoFurther increase king danger for xiangqi
Fabian Fichter [Sun, 10 Nov 2019 22:03:11 +0000]
Further increase king danger for xiangqi

xiangqi
LLR: 2.97 (-2.94,2.94) [0.00,10.00]
Total: 564 W: 199 L: 121 D: 244

6 years agoFix king ring for non-standard board sizes
Fabian Fichter [Sun, 10 Nov 2019 21:51:26 +0000]
Fix king ring for non-standard board sizes

Adjust king danger for shogi variants to compensate for effect of fix.

6 years agoFix attackers calculation for xiangqi generals
Fabian Fichter [Sun, 10 Nov 2019 16:07:43 +0000]
Fix attackers calculation for xiangqi generals

xiangqi
LLR: 1.77 (-2.94,2.94) [0.00,10.00]
Total: 1000 W: 330 L: 274 D: 396

6 years agoMitigate perpetual check blindness
Fabian Fichter [Sun, 10 Nov 2019 16:05:07 +0000]
Mitigate perpetual check blindness

Improve handling of problematic positions in #49.

6 years agoIncrease king danger for xiangqi generals
Fabian Fichter [Sun, 10 Nov 2019 14:19:29 +0000]
Increase king danger for xiangqi generals

xiangqi
LLR: 2.95 (-2.94,2.94) [0.00,10.00]
Total: 648 W: 249 L: 166 D: 233

6 years agoCalculate pins by cannons
Fabian Fichter [Sun, 10 Nov 2019 13:00:24 +0000]
Calculate pins by cannons

xiangqi
LLR: 3.01 (-2.94,2.94) [0.00,10.00]
Total: 868 W: 303 L: 218 D: 347

6 years agoTweak endgame scale factor for xiangqi
Fabian Fichter [Sat, 9 Nov 2019 23:38:51 +0000]
Tweak endgame scale factor for xiangqi

xiangqi
LLR: 3.00 (-2.94,2.94) [0.00,10.00]
Total: 1232 W: 413 L: 324 D: 495

6 years agoImprove CI coverage
Fabian Fichter [Sat, 9 Nov 2019 15:19:47 +0000]
Improve CI coverage

6 years agoSupport UCCI protocol
Fabian Fichter [Sat, 9 Nov 2019 14:54:04 +0000]
Support UCCI protocol

http://www.xqbase.com/protocol/cchess_ucci.htm

Closes #46.

6 years agoSearch checking captures early in drop variants
Fabian Fichter [Fri, 8 Nov 2019 15:29:36 +0000]
Search checking captures early in drop variants

crazyhouse STC (yellow)
LLR: -2.96 (-2.94,2.94) [0.00,10.00]
Total: 19119 W: 9373 L: 9198 D: 548
http://www.variantfishtest.org:6543/tests/view/5d93b6486e23db3768ec0881

crazyhouse LTC
LLR: 2.97 (-2.94,2.94) [0.00,10.00]
Total: 5822 W: 2894 L: 2711 D: 217
http://www.variantfishtest.org:6543/tests/view/5d94cc056e23db3768ec0892

crazyhouse VLTC
LLR: 2.95 (-2.94,2.94) [0.00,10.00]
Total: 10293 W: 5048 L: 4802 D: 443
http://www.variantfishtest.org:6543/tests/view/5d97772d6e23db3768ec0898

6 years agoSupport xiangqi and minixiangqi
Fabian Fichter [Thu, 7 Nov 2019 22:00:25 +0000]
Support xiangqi and minixiangqi

New features:
- Piece types soldier, horse, and elephant
- Restriction of piece mobility
- Flying general rule
- Piece synonyms

Closes #31.

bench: 4448277

6 years agoEnsure that GUI sends time command in CECP
Fabian Fichter [Mon, 4 Nov 2019 18:02:27 +0000]
Ensure that GUI sends time command in CECP

6 years agoFix mate score for XBoard protocol (#44)
Fabian Fichter [Sun, 3 Nov 2019 18:05:47 +0000]
Fix mate score for XBoard protocol (#44)

6 years agoReplace hard-coded variant name
Fabian Fichter [Sun, 3 Nov 2019 17:53:44 +0000]
Replace hard-coded variant name

No functional change.

6 years agoFix mate score for XBoard protocol (#44)
Fabian Fichter [Sun, 3 Nov 2019 17:46:15 +0000]
Fix mate score for XBoard protocol (#44)

6 years agoSupport XBoard protocol (close #37)
Fabian Fichter [Fri, 1 Nov 2019 20:36:31 +0000]
Support XBoard protocol (close #37)

6 years agoFix quiet check move generation
Fabian Fichter [Sun, 3 Nov 2019 08:57:12 +0000]
Fix quiet check move generation

Do not generate quiet checks outside of board in quiescence search.

Closes #45.

6 years agoConsistent capture_or_promotion for special moves
Fabian Fichter [Sat, 26 Oct 2019 19:24:02 +0000]
Consistent capture_or_promotion for special moves

No functional change except for cambodian, micro, and kyotoshogi.

6 years agoRewrite king danger of pieces in hand
Fabian Fichter [Fri, 25 Oct 2019 22:01:09 +0000]
Rewrite king danger of pieces in hand

crazyhouse STC
LLR: 2.96 (-2.94,2.94) [0.00,10.00]
Total: 1056 W: 576 L: 460 D: 20
http://www.variantfishtest.org:6543/tests/view/5db370d96e23db1ffe4a2671

crazyhouse LTC
LLR: 2.96 (-2.94,2.94) [0.00,10.00]
Total: 708 W: 399 L: 289 D: 20
http://www.variantfishtest.org:6543/tests/view/5db410896e23db1ffe4a2679

6 years agoReduce memory footprint of continuation history
Fabian Fichter [Fri, 25 Oct 2019 14:27:30 +0000]
Reduce memory footprint of continuation history

Close #43.

No functional change.

6 years agoMerge official-stockfish/master
Fabian Fichter [Fri, 25 Oct 2019 09:11:10 +0000]
Merge official-stockfish/master

bench: 4231542

6 years agoSimplify reductions on singular extension
Joost VandeVondele [Mon, 21 Oct 2019 20:21:50 +0000]
Simplify reductions on singular extension

Current master employs a scheme to adjust reductions on singular
nodes that is somewhat controversial, see
https://github.com/official-stockfish/Stockfish/pull/2167

This patch removes this use of a search result outside of [a,b],
by observing that the main effect of this code is to adjust the
reduction by an average of ~2 (1.7) rather than 1.

Claims the first blue at STC and LTC:

STC:
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 30142 W: 6547 L: 6442 D: 17153
http://tests.stockfishchess.org/tests/view/5daf16c40ebc5902c06da566

LTC:
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 45715 W: 7380 L: 7298 D: 31037
http://tests.stockfishchess.org/tests/view/5daf2f3c0ebc5902c06da6c7

Closes https://github.com/official-stockfish/Stockfish/pull/2367

Bench: 5115841

6 years agoAvoid crashing on Log File opening
Joost VandeVondele [Mon, 21 Oct 2019 06:05:14 +0000]
Avoid crashing on Log File opening

Stockfish crashes immediately if users enter a wrong file name (or even an existing
folder name) for debug log file. It may be hard for users to find out since it prints
nothing. If they enter the string via a chess GUI, the chess GUI may remember and
auto-send to Stockfish next time, makes Stockfish crashes all the time. Bug report by
Nguyen Hong Pham in this issue: https://github.com/official-stockfish/Stockfish/issues/2365

This patch avoids the crash and instead prefers to exit gracefully with a error
message on std:cerr, like we do with the fenFile for instance.

Closes https://github.com/official-stockfish/Stockfish/pull/2366

No functional change.

6 years agoReturn to development version
Fabian Fichter [Mon, 21 Oct 2019 11:47:58 +0000]
Return to development version

6 years agoFairy-Stockfish 10.3
Fabian Fichter [Mon, 21 Oct 2019 10:31:56 +0000]
Fairy-Stockfish 10.3

bench: 3686859

6 years agoDescribe variant configuration inheritance in INI
Fabian Fichter [Mon, 21 Oct 2019 10:22:01 +0000]
Describe variant configuration inheritance in INI

6 years agoRemove uithread
xoto10 [Thu, 19 Sep 2019 16:10:46 +0000]
Remove uithread

With the current questions and issues around threading, I had a look at
https://github.com/official-stockfish/Stockfish/issues/2299.

It seems there was a problem with data races when requesting eval via UCI while
a search was already running. To fix this an extra thread uithread was created,
presumably to avoid an overlap with Threads.main() that was causing problems.
Making this eval request seems to be outside the scope of UCI, and @vondele also
reports that the data race is not even fixed reliably by this change. I suggest
we simplify the threading here by removing this uithread and adding a comment
signaling that user should not request eval when a search is already running.

Closes https://github.com/official-stockfish/Stockfish/pull/2310

No functional change.

6 years agoScale piece values with board size
Fabian Fichter [Mon, 14 Oct 2019 11:51:55 +0000]
Scale piece values with board size

losalamos STC
LLR: 2.98 (-2.94,2.94) [0.00,10.00]
Total: 786 W: 242 L: 164 D: 380
http://35.161.250.236:6543/tests/view/5da456e16e23db3768ec0928

losalamos LTC
LLR: 2.97 (-2.94,2.94) [0.00,10.00]
Total: 480 W: 161 L: 87 D: 232
http://35.161.250.236:6543/tests/view/5da4790a6e23db3768ec092a

courier STC
LLR: 2.98 (-2.94,2.94) [0.00,10.00]
Total: 1971 W: 550 L: 459 D: 962
http://35.161.250.236:6543/tests/view/5da4f9696e23db3768ec0938

courier LTC
LLR: 2.97 (-2.94,2.94) [0.00,10.00]
Total: 755 W: 231 L: 154 D: 370
http://35.161.250.236:6543/tests/view/5da4fa306e23db3768ec093b

6 years agoCurrent capture for Counter-Move history
VoyagerOne [Fri, 18 Oct 2019 13:23:00 +0000]
Current capture for Counter-Move history

Use current capture to index the CMH table instead of prior capture.

STC:
LLR: 2.96 (-2.94,2.94) [0.00,4.00]
Total: 61908 W: 13626 L: 13220 D: 35062
http://tests.stockfishchess.org/tests/view/5da8aa670ebc597ba8eda558

LTC:
LLR: 2.96 (-2.94,2.94) [0.00,4.00]
Total: 49057 W: 8071 L: 7765 D: 33221
http://tests.stockfishchess.org/tests/view/5da8e99d0ebc597ba8eda9ca

Closes https://github.com/official-stockfish/Stockfish/pull/2362

Bench: 4423737

6 years agoMore documentation in variants.ini (close #30)
Fabian Fichter [Fri, 18 Oct 2019 14:13:03 +0000]
More documentation in variants.ini (close #30)

6 years agoFix #41: 50-move rule for Sittuyin
Fabian Fichter [Fri, 18 Oct 2019 10:31:14 +0000]
Fix #41: 50-move rule for Sittuyin

6 years agoAdd four positions to bench
Joost VandeVondele [Tue, 1 Oct 2019 20:11:12 +0000]
Add four positions to bench

The current bench is missing a position with high 50 moves rule counter,
making most 'shuffle' tests based on 50mr > N seem non-functional.
This patch adds one FEN with high 50mr counter to address this issue
(taken from a recent tcec game).

Four new FENs:
- position with high 50mr counter
- tactical position with many captures, checks, extensions, fails high/low
- two losses by Stockfish in the S16 bonus games against Houdini

See the pull request for nice comments by @Alayan-stk-2 about each position
in bench: https://github.com/official-stockfish/Stockfish/pull/2338

Bench: 4590210

6 years agoSupport Cambodian chess (Ouk Chatrang, Kar Ouk) (close #39)
Fabian Fichter [Sun, 13 Oct 2019 21:49:14 +0000]
Support Cambodian chess (Ouk Chatrang, Kar Ouk) (close #39)

https://en.wikipedia.org/wiki/Makruk#Cambodian_chess

- Captures by special move of queen/neang are allowed.
- King may only make its leap if the side to move is not in check,
  and if the move does not capture a piece.

No functional change for existing variants.

6 years agoSet castling rights only if enabled
Fabian Fichter [Mon, 14 Oct 2019 16:24:27 +0000]
Set castling rights only if enabled

Makes FEN parsing more robust and allows to support S-Chess without castling.

6 years agoFix compiler warnings for large-board version
Fabian Fichter [Mon, 14 Oct 2019 13:58:46 +0000]
Fix compiler warnings for large-board version

No functional change.

6 years agoAmendment for documentation update (#30)
Fabian Fichter [Fri, 11 Oct 2019 13:14:19 +0000]
Amendment for documentation update (#30)

6 years agoExtend variant INI documentation (#30)
Fabian Fichter [Fri, 11 Oct 2019 13:07:50 +0000]
Extend variant INI documentation (#30)

6 years agoIntroduce separate counter-move tables for inCheck
VoyagerOne [Tue, 8 Oct 2019 14:44:01 +0000]
Introduce separate counter-move tables for inCheck

Enhance counter-move history table by adding a inCheck dimension. This doubles
the size of the table but provides more accurate move ordering.

STC: (yellow)
LLR: -2.94 (-2.94,2.94) [0.50,4.50]
Total: 36217 W: 7790 L: 7777 D: 20650
http://tests.stockfishchess.org/tests/view/5d9b9a290ebc5902b6d04fe0

LTC:
LLR: 2.95 (-2.94,2.94) [0.00,3.50]
Total: 36665 W: 6063 L: 5788 D: 24814
http://tests.stockfishchess.org/tests/view/5d9b9fcc0ebc5902b6d05985

Closes https://github.com/official-stockfish/Stockfish/pull/2353

Bench: 4053577

6 years agoNo reachable outpost bonus for bishops
31m059 [Mon, 7 Oct 2019 18:47:43 +0000]
No reachable outpost bonus for bishops

Previously, we used various control statements and ternary operators to divide
Outpost into four bonuses, based on whether the outpost was for a knight or
bishop, and whether it was currently an Outpost or merely a potential ("reachable")
one in the future. Bishop outposts, however, have traditionally been worth far
less Elo in testing. An attempt to remove them altogether passed STC, but failed LTC.

Here we include a narrower simplification, removing the reachable Outpost bonus
for bishops. This bonus was always suspect, given that its current implementation
conflicts directly with BishopPawns. BishopPawns penalizes our bishops based on the
number of friendly pawns on the same color of square, but by definition, Outposts
must be pawn-protected! This PR helps to alleviate this conceptual contradiction
without loss of Elo and with slightly simpler code.

On a code level, this allows us to simplify a ternary operator into the previous
"if" block and distribute a multiplication into an existing constant Score. On a
conceptual level, we retire one of the four traditional Outpost bonuses.

STC:
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 22277 W: 4882 L: 4762 D: 12633
http://tests.stockfishchess.org/tests/view/5d9aeed60ebc5902b6cf9751

LTC:
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 51206 W: 8353 L: 8280 D: 34573
http://tests.stockfishchess.org/tests/view/5d9af1940ebc5902b6cf9cd5

Closes https://github.com/official-stockfish/Stockfish/pull/2352

Bench: 3941591

6 years agoFix pseudo-legal move validation (close #35)
Fabian Fichter [Mon, 7 Oct 2019 19:36:47 +0000]
Fix pseudo-legal move validation (close #35)

sittuyin STC
LLR: 2.95 (-2.94,2.94) [0.00,10.00]
Total: 126 W: 60 L: 2 D: 64
http://35.161.250.236:6543/tests/view/5d9b94916e23db3768ec08f3

sittuyin LTC
LLR: 2.96 (-2.94,2.94) [0.00,10.00]
Total: 111 W: 58 L: 1 D: 52
http://35.161.250.236:6543/tests/view/5d9b9f566e23db3768ec08fd

bench: 3686859

6 years agoAdjust aspiration window with eval
Alayan [Mon, 7 Oct 2019 17:02:33 +0000]
Adjust aspiration window with eval

This patch changes the base aspiration window size depending on the absolute
value of the previous iteration score, increasing it away from zero. This
stems from the observation that the further away from zero, the more likely
the  evaluation is to change significantly with more depth. Conversely, a
tighter aspiration window is more efficient when close to zero.

A beneficial side-effect is that analysis of won positions without a quick
mate is less prone to waste nodes in repeated fail-high that change the eval
by tiny steps.

STC:
LLR: 2.96 (-2.94,2.94) [0.50,4.50]
Total: 60102 W: 13327 L: 12868 D: 33907
http://tests.stockfishchess.org/tests/view/5d9a70d40ebc5902b6cf39ba

LTC:
LLR: 2.95 (-2.94,2.94) [0.00,3.50]
Total: 155553 W: 25745 L: 25141 D: 104667
http://tests.stockfishchess.org/tests/view/5d9a7ca30ebc5902b6cf4028

Future work : the values used in this patch were only a reasonable guess.
Further testing should unveil more optimal values. However, the aspiration
window is rather tight with a minimum of 21 internal units, so discrete
integers put a practical limitation to such tweaking.

More exotic experiments around the aspiration window parameters could also
be tried, but efficient conditions to adjust the base aspiration window size
or allow it to not be centered on the current evaluation are not obvious.

The aspiration window increases after a fail-high or a fail-low is another
avenue to explore for potential enhancements.

Bench: 4043748

6 years agoTweak kingFlankAttacks factor in kingDanger
SFisGOD [Mon, 7 Oct 2019 04:30:57 +0000]
Tweak kingFlankAttacks factor in kingDanger

Increase kingFlankAttacks factor in kingDanger from 5/16 to 6/16.

Failed STC:
LLR: -2.96 (-2.94,2.94) [0.00,4.00]
Total: 77947 W: 16989 L: 16848 D: 44110
http://tests.stockfishchess.org/tests/view/5d9ac0280ebc5902b6cf63cd

Passed LTC 1:
LLR: 2.96 (-2.94,2.94) [0.00,4.00]
Total: 13443 W: 2231 L: 2037 D: 9175
http://tests.stockfishchess.org/tests/view/5d9ac88d0ebc5902b6cf6ffb

Passed LTC 2:
LLR: 2.96 (-2.94,2.94) [0.00,4.00]
Total: 23340 W: 3842 L: 3617 D: 15881
http://tests.stockfishchess.org/tests/view/5d9acf7f0ebc5902b6cf7c27

Closes https://github.com/official-stockfish/Stockfish/pull/2349

Bench: 4042155

6 years agoAdjust pawn span
Alain SAVARD [Sun, 6 Oct 2019 22:48:19 +0000]
Adjust pawn span

Run as a simplification

a) insures that pawn attacks are always included in the pawn span
  (this "fixes" the case where some outpost or reachable outpost
  bonus were awarded on squares controlled by enemy pawns).

b) compute the full span only if not "backward" or not "blocked".

By looking at "blocked" instead of "opposed", we get a nice simpli-
fication and the "new" outpost detection is almost identical, except
a few borderline cases on rank 4.

passed STC
http://tests.stockfishchess.org/tests/view/5d9950730ebc5902b6cefb90
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 79113 W: 17168 L: 17159 D: 44786

passed LTC
http://tests.stockfishchess.org/tests/view/5d99d14e0ebc5902b6cf0692
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 41286 W: 6819 L: 6731 D: 27736

See https://github.com/official-stockfish/Stockfish/pull/2348

bench: 3812891

6 years agoMake priorCapture a bool
Ondrej Mosnacek [Sun, 6 Oct 2019 07:57:20 +0000]
Make priorCapture a bool

It is always used as a bool, so let's make it a bool straight away.
We can always redefine it as a Piece in a later patch if we want
to use the piece type or the piece color.

No functional change.

6 years agoIntroduce separate counter-move tables for captures
VoyagerOne [Sat, 5 Oct 2019 14:42:36 +0000]
Introduce separate counter-move tables for captures

Enhance counter-move history table by adding a capture/no-capture dimension,
depending wether the previous move was a quiet move or a capture. This doubles
the size of the table but provides more accurate move ordering.

STC:
LLR: 2.95 (-2.94,2.94) [0.50,4.50]
Total: 79702 W: 17720 L: 17164 D: 44818
http://tests.stockfishchess.org/tests/view/5d97945e0ebc590c21aa724b

LTC:
LLR: 2.96 (-2.94,2.94) [0.00,3.50]
Total: 29147 W: 4907 L: 4651 D: 19589
http://tests.stockfishchess.org/tests/view/5d97ccb90ebc590c21aa7bc0

Closes https://github.com/official-stockfish/Stockfish/pull/2344

Bench: 4131643

6 years agoEliminate ONE_PLY
Brian Sheppard [Sat, 28 Sep 2019 20:27:23 +0000]
Eliminate ONE_PLY

Simplification that eliminates ONE_PLY, based on a suggestion in the forum that
support for fractional plies has never been used, and @mcostalba's openness to
the idea of eliminating it. We lose a little bit of type safety by making Depth
an integer, but in return we simplify the code in search.cpp quite significantly.

No functional change

------------------------------------------

The argument favoring eliminating ONE_PLY:

* The term “ONE_PLY” comes up in a lot of forum posts (474 to date)
https://groups.google.com/forum/?fromgroups=#!searchin/fishcooking/ONE_PLY%7Csort:relevance

* There is occasionally a commit that breaks invariance of the code
with respect to ONE_PLY
https://groups.google.com/forum/?fromgroups=#!searchin/fishcooking/ONE_PLY%7Csort:date/fishcooking/ZIPdYj6k0fk/KdNGcPWeBgAJ

* To prevent such commits, there is a Travis CI hack that doubles ONE_PLY
and rechecks bench

* Sustaining ONE_PLY has, alas, not resulted in any improvements to the
  engine, despite many individuals testing many experiments over 5 years.

The strongest argument in favor of preserving ONE_PLY comes from @locutus:
“If we use par example ONE_PLY=256 the parameter space is increases by the
factor 256. So it seems very unlikely that the optimal setting is in the
subspace of ONE_PLY=1.”

There is a strong theoretical impediment to fractional depth systems: the
transposition table uses depth to determine when a stored result is good
enough to supply an answer for a current search. If you have fractional
depths, then different pathways to the position can be at fractionally
different depths.

In the end, there are three separate times when a proposal to remove ONE_PLY
was defeated by the suggestion to “give it a few more months.” So… it seems
like time to remove this distraction from the community.

See the pull request here:
https://github.com/official-stockfish/Stockfish/pull/2289

6 years agoFix compare function in previous patch
Stéphane Nicolet [Sat, 5 Oct 2019 09:15:24 +0000]
Fix compare function in previous patch

Bench: 4012371

6 years agoRemove temporary shelter array
mstembera [Sat, 24 Aug 2019 22:04:41 +0000]
Remove temporary shelter array

Remove temporary array of shelters and avoid iterating over it each time to find
if the shelter values after castling are better than the current value.
Work done on top of https://github.com/official-stockfish/Stockfish/pull/2277

Speed benchmark did not measure any difference.

No functional change

6 years agoSupport generation of SFEN (gbtami/pychess-variants#36)
Fabian Fichter [Thu, 3 Oct 2019 14:58:20 +0000]
Support generation of SFEN (gbtami/pychess-variants#36)

Report SFEN next to FEN in the "d" command.

6 years agoSupport Makrukhouse (Makruk+Crazyhouse hybrid)
Fabian Fichter [Wed, 2 Oct 2019 21:56:51 +0000]
Support Makrukhouse (Makruk+Crazyhouse hybrid)

6 years agoSpeed up move picking for losing chess
Fabian Fichter [Fri, 27 Sep 2019 07:31:08 +0000]
Speed up move picking for losing chess

giveaway STC
LLR: 2.95 (-2.94,2.94) [0.00,10.00]
Total: 403 W: 203 L: 114 D: 86
http://35.161.250.236:6543/tests/view/5d93a8726e23db3768ec087a

giveaway LTC
LLR: 2.96 (-2.94,2.94) [0.00,10.00]
Total: 369 W: 178 L: 93 D: 98
http://35.161.250.236:6543/tests/view/5d93be896e23db3768ec088a

losers STC
LLR: 2.96 (-2.94,2.94) [0.00,10.00]
Total: 539 W: 290 L: 190 D: 59
http://35.161.250.236:6543/tests/view/5d93a8fd6e23db3768ec087d

losers LTC
LLR: 2.97 (-2.94,2.94) [0.00,10.00]
Total: 604 W: 314 L: 214 D: 76
http://35.161.250.236:6543/tests/view/5d93be916e23db3768ec088c

codrus STC
LLR: 2.95 (-2.94,2.94) [0.00,10.00]
Total: 857 W: 477 L: 364 D: 16
http://35.161.250.236:6543/tests/view/5d93a9126e23db3768ec087f

6 years agoMore accurate pawn attack span definition
Moez Jellouli [Fri, 27 Sep 2019 08:18:22 +0000]
More accurate pawn attack span definition

Tweak the pawn attack span for backward pawns and the zone behind
opponent opposing pawns. This is important in positional play and
one of weaknesses of the engine in recent high level games.

STC
LLR: -2.95 (-2.94,2.94) [0.50,4.50]
Total: 66843 W: 14884 L: 14717 D: 37242
http://tests.stockfishchess.org/tests/view/5d8dcb1b0ebc590f3beb2956

LTC
LLR: 2.96 (-2.94,2.94) [0.00,3.50]
Total: 77699 W: 12993 L: 12602 D: 52104
http://tests.stockfishchess.org/tests/view/5d8de9bc0ebc590f3beb3d00

See discussion in https://github.com/official-stockfish/Stockfish/pull/2332

Bench: 4012371

6 years agoAdjust reductions based on the number of threads
Joost VandeVondele [Wed, 25 Sep 2019 19:24:05 +0000]
Adjust reductions based on the number of threads

In lazySMP it makes sense to prune a little more, as multiple threads
search wider. We thus increase the prefactor of the reductions slowly
as a function of the threads. The prefactor of the log(threads) term
is a parameter, this pull request uses 1/2 after testing.

passed STC @ 8threads:
LLR: 2.96 (-2.94,2.94) [0.50,4.50]
Total: 118125 W: 23151 L: 22462 D: 72512
http://tests.stockfishchess.org/tests/view/5d8bbf4d0ebc59509180f217

passed LTC @ 8threads:
LLR: 2.95 (-2.94,2.94) [0.00,3.50]
Total: 67546 W: 10630 L: 10279 D: 46637
http://tests.stockfishchess.org/tests/view/5d8c463b0ebc5950918167e8

passed ~LTC @ 14threads:
LLR: 2.95 (-2.94,2.94) [0.00,3.50]
Total: 74271 W: 12421 L: 12040 D: 49810
http://tests.stockfishchess.org/tests/view/5d8db1f50ebc590f3beb24ef

Note:
A larger prefactor (1) passed similar tests at STC and LTC (8 threads),
while a very large one (2) passed STC quickly but failed LTC (8 threads).

For the single-threaded case there is no functional change.

Closes https://github.com/official-stockfish/Stockfish/pull/2337

Bench: 4088701

Fixup: remove redundant code.

6 years agoMake drop region constraint more explicit
Fabian Fichter [Tue, 1 Oct 2019 20:07:06 +0000]
Make drop region constraint more explicit

No functional change.

6 years agoRemove ThreatByRank
protonspring [Mon, 30 Sep 2019 21:10:44 +0000]
Remove ThreatByRank

This is a functional simplification that removes ThreatByRank.

STC
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 48009 W: 10630 L: 10560 D: 26819
http://tests.stockfishchess.org/tests/view/5d92095c0ebc594fb88eb61e

LTC
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 18682 W: 3177 L: 3053 D: 12452
http://tests.stockfishchess.org/tests/view/5d9231120ebc594fb88ebacd

Moving forward, it's possible that ThreatByMinor and ThreatByRook
could be combined, but I haven't really contemplated that yet.

Closes https://github.com/official-stockfish/Stockfish/pull/2336

bench 4088701

6 years agoRemove depth dependence in value_draw().
Joost VandeVondele [Fri, 27 Sep 2019 17:25:22 +0000]
Remove depth dependence in value_draw().

The condition "depth >= 4 * ONE_PLY" does not seem needed at this point.

passed STC:
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 32751 W: 7178 L: 7078 D: 18495
http://tests.stockfishchess.org/tests/view/5d8e46660ebc590f3bebad5e

passed LTC:
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 31693 W: 5299 L: 5196 D: 21198
http://tests.stockfishchess.org/tests/view/5d8e4b4f0ebc590f3bebb165

Bench: 4062526

6 years agoExtend castling independently of singular extension
31m059 [Fri, 27 Sep 2019 06:45:28 +0000]
Extend castling independently of singular extension

A curious feature of Stockfish's current extension code is its repeated
use of "else if." In most cases, this makes no functional difference,
because no more than one extension is applied; once one extension has
been applied, the remaining ones can be safely ignored.

However, if most singular extension search conditions are true, except
"value < singularBeta", no non-singular extensions (e.g., castling) can
be performed!

Three tests were submitted, for three of Stockfish's four non-singular
extensions. I excluded the shuffle extension, because historically there
have been concerns about the fragility of its conditions, and I did not
want to risk causing any serious search problems.

- Modifying the passed pawn extension appeared roughly neutral at STC. At
best, it appeared to be an improvement of less than 1 Elo.
- Modifying check extension performed very poorly at STC
- Modifying castling extension (this patch) produced a long "yellow" run
 at STC (insufficient to pass, but positive score) and a strong LTC.

In simple terms, prior to this patch castling extension was occasionally
not applied during search--on castling moves. The effect of this patch is
to perform castling extension on more castling moves. It does so without
adding any code complexity, simply by replacing an "else if" with "if" and
reordering some existing code.

STC:
LLR: -2.96 (-2.94,2.94) [0.00,4.00]
Total: 108114 W: 23877 L: 23615 D: 60622
http://tests.stockfishchess.org/tests/view/5d8d86bd0ebc590f3beb0c88

LTC:
LLR: 2.96 (-2.94,2.94) [0.00,4.00]
Total: 20862 W: 3517 L: 3298 D: 14047
http://tests.stockfishchess.org/tests/view/5d8d99cd0ebc590f3beb1899

Bench: 3728191

--------

Where do we go from here?

- It seems strange to me that check extension performed so poorly -- clearly
some of the singular extension conditions are also very important for check
extension. I am not an expert in search, and I do not have any intuition
about which of the eight conditions is/are the culprit. I will try a
succession of eight STC tests to identify the relevant conditions, then try
to replicate this PR for check extension.

- Recent tests interacting with the castle extension may deserve retesting.
I will shortly resubmit a few of my recent castling extension tweaks, rebased
on this PR/commit.

My deepest thanks to @noobpwnftw for the extraordinary CPU donation, and to
all our other fishtest volunteers, who made it possible for a speculative LTC
to pass in 70 minutes!

Closes https://github.com/official-stockfish/Stockfish/pull/2331

6 years agoSimplify RookOnPawn
Alain SAVARD [Thu, 26 Sep 2019 03:23:07 +0000]
Simplify RookOnPawn

Remove the RookOnPawn logic (for rook on rank 5 and above aligning with pawns
on same row or file) which was overlapping with a few other parameters.

Inspired by @31m059 interesting result hinting that a direct attack on pawns
instead of PseudoAttacks might work.
http://tests.stockfishchess.org/tests/view/5d89a7c70ebc595091801b8d

After a few attempts by me and @31m059, and some long STC greens but red LTC,
as a proof of concept I first tried a local SPSA at VSTC trying to tune related
rook psqt rows, and mainly some rook related stuff in evaluate.cpp.
Result was STC green, but still red LTC,

Finally a 100M fishtest SPSA at LTC proved successful both at STC and LTC.

All this was possible with the awesome fishtest contributors.
At some point, I had 850 workers on the last test !

Run as a simplification

STC
http://tests.stockfishchess.org/tests/view/5d8d68f40ebc590f3beaf171
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 7399 W: 1693 L: 1543 D: 4163

LTC
http://tests.stockfishchess.org/tests/view/5d8d70270ebc590f3beaf63c
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 41617 W: 6981 L: 6894 D: 27742

Closes https://github.com/official-stockfish/Stockfish/pull/2329

bench: 4037914

6 years agoSupport "coffeehouse" chess
Fabian Fichter [Fri, 27 Sep 2019 07:01:31 +0000]
Support "coffeehouse" chess

Crazyhouse with mandatory captures.

6 years agoDo not consider quiet moves as attacks
Fabian Fichter [Thu, 26 Sep 2019 18:46:32 +0000]
Do not consider quiet moves as attacks

Fix attack bitboard calculation for hoppelpoppel-style pieces.

hoppelpoppel STC
LLR: 2.94 (-2.94,2.94) [0.00,10.00]
Total: 863 W: 335 L: 247 D: 281
http://35.161.250.236:6543/tests/view/5d8d0ab36e23db3768ec085c

hoppelpoppel LTC
LLR: 2.96 (-2.94,2.94) [0.00,10.00]
Total: 717 W: 271 L: 187 D: 259
http://35.161.250.236:6543/tests/view/5d8d0d8f6e23db3768ec085f

chess STC
LLR: 3.00 (-2.94,2.94) [-10.00,5.00]
Total: 1338 W: 317 L: 279 D: 742
http://35.161.250.236:6543/tests/view/5d8d16766e23db3768ec0861

6 years agoRemove custom mutex implementation
Joost VandeVondele [Mon, 16 Sep 2019 05:51:25 +0000]
Remove custom mutex implementation

As part of the investigation of the hang caused by an incorrect implementation
of condition_variable in libwinpthread, it was realized that our custom Mutex
implementation is no longer needed. Prior to lazySMP this custom implementation
resulted in a 30% speedup, but now no speed difference can be measured as no
mutex is used on the hot path in lazySMP.

https://github.com/official-stockfish/Stockfish/issues/2291
https://github.com/official-stockfish/Stockfish/issues/2309#issuecomment-533733393  https://github.com/official-stockfish/Stockfish/issues/2309#issuecomment-533737515

The interest of this patch is that it removes platform-specific code, which is
always less tested.

No functional change.

6 years agoRestore development version (revert previous commit)
Stéphane Nicolet [Thu, 26 Sep 2019 21:19:31 +0000]
Restore development version (revert previous commit)

Revert the previous patch now that the binary for the super-final
of TCEC season 16 has been sent.

Maybe the feature of showing the name of compiler will be added to the
master branch in the future. But we may use a cleaner way to code it, see
some ideas using the Makefile approach at the end of pull request #2327 :
https://github.com/official-stockfish/Stockfish/pull/2327

Bench: 3618154

6 years agoUse shuffle extension only with N-move rule
Fabian Fichter [Thu, 19 Sep 2019 18:48:16 +0000]
Use shuffle extension only with N-move rule

makruk STC
LLR: 4.58 (-2.94,2.94) [-10.00,5.00]
Total: 3656 W: 314 L: 264 D: 3078
http://35.161.250.236:6543/tests/view/5d83cf5e6e23db3768ec083c

makruk LTC
LLR: 2.95 (-2.94,2.94) [-10.00,5.00]
Total: 3645 W: 268 L: 238 D: 3139
http://35.161.250.236:6543/tests/view/5d8a510d6e23db3768ec0854

6 years agoTemporary patch to show the compiler for TCEC submission
Stéphane Nicolet [Tue, 24 Sep 2019 17:00:27 +0000]
Temporary patch to show the compiler for TCEC submission

This patch shows a description of the compiler used to compile Stockfish,
when starting from the console.

Usage:

```
./stockfish
compiler
```

Example of output:

```
Stockfish 240919 64 POPCNT by T. Romstad, M. Costalba, J. Kiiski, G. Linscott

Compiled by clang++ 9.0.0 on Apple
 __VERSION__ macro expands to: 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.38)
```

No functional change

6 years agoIncrease weight for supported pawns
Stéphane Nicolet [Tue, 24 Sep 2019 10:41:45 +0000]
Increase weight for supported pawns

This patch changes the weight for counting supports of pawns
from 17 to 21. Hopefully Stockfish will accept to play a bit
more of closed or semi-closed positions.

STC:
LLR: 2.95 (-2.94,2.94) [0.00,4.00]
Total: 13822 W: 3158 L: 2939 D: 7725
http://tests.stockfishchess.org/tests/view/5d89c3a10ebc595091802379

LTC:
LLR: 2.96 (-2.94,2.94) [0.00,4.00]
Total: 63066 W: 10590 L: 10236 D: 42240
http://tests.stockfishchess.org/tests/view/5d89ca7f0ebc595091802680

Future work: try to tweak the evaluation to better understand
the French structures.

Closes https://github.com/official-stockfish/Stockfish/pull/2326

Bench: 3618154

6 years agoClarify the mapping of files to queenside
nickpelling [Sat, 21 Sep 2019 07:59:32 +0000]
Clarify the mapping of files to queenside

This patch replaces the obscure expressions mapping files ABCDEFGH to ABCDDCBA
by explicite calls to an auxiliary function:

  old:   f = min(f, ~f)
  new:   f = map_to_queenside(f)

We used the Golbolt web site (https://godbolt.org) to check that the current
code for the auxiliary function is optimal.

STC:
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 30292 W: 6756 L: 6651 D: 16885
http://tests.stockfishchess.org/tests/view/5d8676720ebc5971531d6aa1

Achieved with a bit of help from Sopel97, snicolet and vondele, thanks everyone!
Closes https://github.com/official-stockfish/Stockfish/pull/2325

No functional change

6 years agoEncourage rook lift to third rank
xoto10 [Mon, 23 Sep 2019 07:24:13 +0000]
Encourage rook lift to third rank

This change to the Rook psqt encourages rook lifts to the third rank
on the two center files.

STC 10+0.1 th 1 :
LLR: 2.96 (-2.94,2.94) [0.00,4.00]
Total: 40654 W: 9028 L: 8704 D: 22922
http://tests.stockfishchess.org/tests/view/5d885da60ebc5906dd3e9fcd

LTC 60+0.6 th 1 :
LLR: 2.96 (-2.94,2.94) [0.00,4.00]
Total: 56963 W: 9530 L: 9196 D: 38237
http://tests.stockfishchess.org/tests/view/5d88618c0ebc5906dd3ea45f

Thanks to @snicolet for mentioning that Komodo does this a lot and
Stockfish doesn't, which gave me the idea for this patch, and to
@noobpwnftw for providing cores to fishtest which allowed very quick
testing.

Future work: perhaps this can be refined somehow to encourage this
on other files, my attempts have failed.

Closes https://github.com/official-stockfish/Stockfish/pull/2322

Bench: 3950249

6 years agoRevert "Clarify the mapping of files to queenside"
Stéphane Nicolet [Mon, 23 Sep 2019 07:10:28 +0000]
Revert "Clarify the mapping of files to queenside"

This reverts commit 7756344d5d2b93970e7cd423f8cbf6fb1da11b74.

6 years agoClarify the mapping of files to queenside
Stéphane Nicolet [Mon, 23 Sep 2019 06:52:27 +0000]
Clarify the mapping of files to queenside

Author: @nickpelling

We replace in the code the obscure expressions mapping files ABCDEFGH to ABCDDCBA
by an explicite call to an auxiliary function :

  old:   f = min(f, ~f)
  new:   f = map_to_queenside(f)

We used the Golbolt web site (https://godbolt.org) to find the optimal code
for the auxiliary function.

STC:
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 30292 W: 6756 L: 6651 D: 16885
http://tests.stockfishchess.org/tests/view/5d8676720ebc5971531d6aa1

No functional change

6 years agoMore random draw evaluations
Joost VandeVondele [Fri, 20 Sep 2019 14:33:57 +0000]
More random draw evaluations

Use the randomized draw function value_draw() also for draw evalutions.

This extends the earlier commit
https://github.com/official-stockfish/Stockfish/commit/97d2cc9a9c1c4b6ff1b470676fa18c7fc6509886
which did this only for 3folds.

As in that case, this test was yellow at STC and LTC, but green at VLTC,
indicative of the fact that the higher the drawrate, the more likely this
idea is beneficial.

STC:
LLR: -2.96 (-2.94,2.94) [0.50,4.50]
Total: 83573 W: 18584 L: 18335 D: 46654
http://tests.stockfishchess.org/tests/view/5d84e44d0ebc5971531d4f94

LTC:
LLR: -2.96 (-2.94,2.94) [0.00,3.50]
Total: 92252 W: 15240 L: 15160 D: 61852
http://tests.stockfishchess.org/tests/view/5d865dd90ebc5971531d68e1

VLTC: 120+1.2 @ 2th
LLR: 2.96 (-2.94,2.94) [0.00,3.50]
Total: 51902 W: 7323 L: 7028 D: 37551
http://tests.stockfishchess.org/tests/view/5d8763620ebc595f57c22b15

Closes https://github.com/official-stockfish/Stockfish/pull/2321

Bench: 3441237

6 years agoSimplify connected pawn scoring
protonspring [Mon, 23 Sep 2019 01:48:52 +0000]
Simplify connected pawn scoring

When scoring the connected pawns, replace the intricate ternary expressions
choosing the coefficient by a simpler addition of boolean conditions:

` value = Connected * (2 + phalanx - opposed) `

This is the map showing the old coefficients and the new ones:

```
phalanx and unopposed:     3x   -> 3x
phalanx and opposed:       1.5x -> 2x
not phalanx and unopposed: 2x   -> 2x
not phalanx and opposed:   1x   -> 1x
```

STC
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 11354 W: 2579 L: 2437 D: 6338
http://tests.stockfishchess.org/tests/view/5d8151f00ebc5971531d244f

LTC
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 41221 W: 7001 L: 6913 D: 27307
http://tests.stockfishchess.org/tests/view/5d818f930ebc5971531d26d6

Bench: 3959889

blah

6 years agoAcknowledge fishtest authors
Joost VandeVondele [Sun, 22 Sep 2019 14:56:36 +0000]
Acknowledge fishtest authors

Explicitly acknowledge fishtest authors.
Their efforts are almost invisible, but essential for the project.

Many thanks to https://github.com/glinscott/fishtest/blob/master/AUTHORS !

No functional change.

6 years agoSkip updating history of reverse move for drops
Fabian Fichter [Wed, 18 Sep 2019 19:55:14 +0000]
Skip updating history of reverse move for drops

crazyhouse STC
LLR: 2.95 (-2.94,2.94) [-10.00,5.00]
Total: 3523 W: 1731 L: 1690 D: 102
http://35.161.250.236:6543/tests/view/5d83cf716e23db3768ec083e

6 years agoFix pos_is_ok for castling with non-king piece
Fabian Fichter [Fri, 20 Sep 2019 15:59:44 +0000]
Fix pos_is_ok for castling with non-king piece

No functional change.

6 years agoSupport peasant revolt
Fabian Fichter [Fri, 20 Sep 2019 14:26:47 +0000]
Support peasant revolt

6 years agoList variant configuration options in INI (#30)
Fabian Fichter [Thu, 19 Sep 2019 19:58:13 +0000]
List variant configuration options in INI (#30)

6 years agoFilter invalid moves early
Fabian Fichter [Sun, 1 Sep 2019 18:50:36 +0000]
Filter invalid moves early

No functional change.

6 years agoUpdate readme
Fabian Fichter [Thu, 19 Sep 2019 13:02:00 +0000]
Update readme

6 years agoRevert "Fix #29: Increase stack limit for mingw"
Fabian Fichter [Tue, 17 Sep 2019 19:09:21 +0000]
Revert "Fix #29: Increase stack limit for mingw"

This reverts commit 9085d6831bf9cabc8f1ff6edc15b9ba0b0c2f6b4.

No longer required due to fix merged from upstream.

6 years agoMerge official-stockfish/master
Fabian Fichter [Mon, 16 Sep 2019 19:55:09 +0000]
Merge official-stockfish/master

bench: 3815926

6 years agoRaise stack size to 8MB for pthreads
noobpwnftw [Sat, 14 Sep 2019 16:18:10 +0000]
Raise stack size to 8MB for pthreads

It seems there is no other way to specify stack size on std::thread than linker
flags and the effective flags are named differently in many toolchains. On
toolchains where pthread is always available, this patch changes the stack
size change in our C++ code via pthread to ensure a minimum stack size of 8MB,
instead of relying on linker defaults which may be platform-specific.

Also raises default stack size on OSX to current Linux default (8MB) just to
be safe.

Closes https://github.com/official-stockfish/Stockfish/pull/2303

No functional change

6 years agoScale down endgame factor when shuffling
Stéphane Nicolet [Sun, 15 Sep 2019 21:18:54 +0000]
Scale down endgame factor when shuffling

This patch decreases the endgame scale factor using the 50 moves counter.
Looking at some games with this patch, it seems to have two effects on
the playing style:

1) when no progress can be made in late endgames (for instance in fortresses
   or opposite bishops endgames) the evaluation will be largely tamed down
   towards a draw value.

2) more interestingly, there is also a small effect in the midgame play because
   Stockfish will panic a little bit if there are more than four consecutive
   shuffling moves with an advantage: the engine will try to move a pawn or to
   exchange a piece to keep the advantage, so the follow-ups of the position
   will be discovered earlier by the alpha-beta search.

passed STC:
LLR: 2.95 (-2.94,2.94) [0.50,4.50]
Total: 23017 W: 5080 L: 4805 D: 13132
http://tests.stockfishchess.org/tests/view/5d7e4aef0ebc59069c36fc74

passed LTC:
LLR: 2.95 (-2.94,2.94) [0.00,3.50]
Total: 30746 W: 5171 L: 4911 D: 20664
http://tests.stockfishchess.org/tests/view/5d7e513d0ebc59069c36ff26

Pull request: https://github.com/official-stockfish/Stockfish/pull/2304

Bench: 4272173

6 years agoIntroduce midgame initiative
Vizvezdenec [Sat, 14 Sep 2019 22:32:39 +0000]
Introduce midgame initiative

This patch finally introduces something that was tried for years: midgame score
dependance on complexity of position. More precisely, if the position is very
simplified and the complexity measure calculated in the initiative() function
is inferior to -50 by an amount d, then we add this value d to the midgame score.

One example of play of this patch will be (again!) 4 vs 3 etc same flank endgames
where sides have a lot of non-pawn material: 4 vs 3 draw mostly remains the same
draw even if we add a lot of equal material to both sides.

STC run was stopped after 200k games (and not converging):
LLR: -1.75 (-2.94,2.94) [0.50,4.50]
Total: 200319 W: 44197 L: 43310 D: 112812
http://tests.stockfishchess.org/tests/view/5d7cfdb10ebc5902d386572c

passed LTC:
LLR: 2.95 (-2.94,2.94) [0.00,3.50]
Total: 41051 W: 6858 L: 6570 D: 27623
http://tests.stockfishchess.org/tests/view/5d7d14680ebc5902d3866196

This is the first and not really precise version, a lot of other stuff can be
tried on top of it (separate complexity for middlegame, some more terms, even
simple retuning of values).

Bench: 4248476

6 years agoAssorted trivial cleanups
Stéphane Nicolet [Sat, 14 Sep 2019 06:33:00 +0000]
Assorted trivial cleanups

No functional change

6 years agoUse queens of either color in RookOnQueenFile
31m059 [Fri, 13 Sep 2019 19:46:05 +0000]
Use queens of either color in RookOnQueenFile

The recently-added RookOnQueenFile evaluation term (36e4a86) provided a bonus
for placing our rook on the same file as an enemy queen.

Here, we relax a condition in this bonus, broadening its effect to any queen.
It is also strategically desirable to place the rook on the same file as a friendly
queen, so the restriction on the queen's color is removed.

STC:
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 66856 W: 14847 L: 14815 D: 37194
http://tests.stockfishchess.org/tests/view/5d7b3c6a0ebc5902d385bcf5

LTC:
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 86786 W: 14264 L: 14248 D: 58274
http://tests.stockfishchess.org/tests/view/5d7b4e9b0ebc5902d385c178

Closes https://github.com/official-stockfish/Stockfish/pull/2302

Bench: 3703909

6 years agoUpdate Makefile documentation
Stéphane Nicolet [Sat, 14 Sep 2019 05:33:48 +0000]
Update Makefile documentation

Follow-up to previous commit. Update the documentation for the user when using `make`,
to show the preferred bmi2 compile in the advanced examples section.

Note: I made a mistake in the previous commit comment, the documentation is shown when
using `make` or `make help`, not `make --help`.

No functional change

6 years agoAdd sse4 if bmi2 is enabled
Joost VandeVondele [Thu, 12 Sep 2019 19:25:58 +0000]
Add sse4 if bmi2 is enabled

The only change done to the Makefile to get a somewhat faster binary as
discussed in #2291 is to add -msse4 to the compile options of the bmi2 build.
Since all processors supporting bmi2 also support sse4 this can be done easily.
It is a useful step to avoid sending around custom and poorly tested builds.

The speedup isn't enough to pass [0,4] but it is roughly 1.15Elo and a LOS of 90%:
LLR: -2.95 (-2.94,2.94) [0.00,4.00]
Total: 93009 W: 20519 L: 20316 D: 52174

Also rewrite the documentation for the user when using `make --help`, so that
the order of architectures for x86-64 has the more performant build one on top.

Closes https://github.com/official-stockfish/Stockfish/pull/2300

No functional change

6 years agoScale down complexity for almost unwinnable endgames
Vizvezdenec [Thu, 12 Sep 2019 03:43:04 +0000]
Scale down complexity for almost unwinnable endgames

This patch greatly scales down complexity of endgames when the
following conditions are all true together:

- pawns are all on one flank
- stronger side king is not outflanking weaker side
- no passed pawns are present

This should improve stockfish evaluation of obvious draws 4 vs 3, 3 vs 2
and 2 vs 1 pawns in rook/queen/knight/bishop single flank endgames where
strong side can not make progress.

passed STC
LLR: 2.94 (-2.94,2.94) [0.50,4.50]
Total: 15843 W: 3601 L: 3359 D: 8883

passed LTC
LLR: 2.96 (-2.94,2.94) [0.00,3.50]
Total: 121275 W: 20107 L: 19597 D: 81571

Closes https://github.com/official-stockfish/Stockfish/pull/2298

Bench: 3954190

==========================

How to continue from there?

a) This could be a powerful idea for refining some parts of the evaluation
   function, a bit like when we try quadratics or other equations to emphasize
   certain situations (xoto10).

b) Some other combinaison values for this bonus can be done further, or
   overall retuning of weight and offset while keeping the formula simple.