stockfish
2 years agoSimplify a bit.
Steinar H. Gunderson [Sat, 19 Nov 2016 13:44:50 +0000 (14:44 +0100)]
Simplify a bit.

2 years agoMore build tweaks.
Steinar H. Gunderson [Sat, 19 Nov 2016 13:42:02 +0000 (14:42 +0100)]
More build tweaks.

2 years agoSend back a prettyprinted version of the move on hash probe.
Steinar H. Gunderson [Sat, 19 Nov 2016 11:04:21 +0000 (12:04 +0100)]
Send back a prettyprinted version of the move on hash probe.

2 years agoFix a crash issue when traversing PVs.
Steinar H. Gunderson [Tue, 15 Nov 2016 21:03:15 +0000 (22:03 +0100)]
Fix a crash issue when traversing PVs.

2 years agoLink the protobuf stuff statically.
Steinar H. Gunderson [Mon, 29 Aug 2016 22:08:50 +0000 (00:08 +0200)]
Link the protobuf stuff statically.

2 years agoDeal with Stockfish internal API changes.
Steinar H. Gunderson [Mon, 29 Aug 2016 21:57:02 +0000 (23:57 +0200)]
Deal with Stockfish internal API changes.

2 years agoMake server address into an UCI option.
Steinar H. Gunderson [Mon, 21 Mar 2016 23:48:48 +0000 (00:48 +0100)]
Make server address into an UCI option.

2 years agoMove the hash probe class definition into a header file.
Steinar H. Gunderson [Mon, 21 Mar 2016 23:41:52 +0000 (00:41 +0100)]
Move the hash probe class definition into a header file.

2 years agoDo not fill value if we have no search info.
Steinar H. Gunderson [Mon, 21 Mar 2016 23:23:44 +0000 (00:23 +0100)]
Do not fill value if we have no search info.

2 years agoRefactor the RPC thread into a shutdown-able class.
Steinar H. Gunderson [Mon, 21 Mar 2016 23:21:45 +0000 (00:21 +0100)]
Refactor the RPC thread into a shutdown-able class.

2 years agoAdd a SCORE_NONE.
Steinar H. Gunderson [Mon, 21 Mar 2016 23:13:09 +0000 (00:13 +0100)]
Add a SCORE_NONE.

2 years agoDecode the score into the protobuf.
Steinar H. Gunderson [Sat, 19 Mar 2016 21:36:16 +0000 (22:36 +0100)]
Decode the score into the protobuf.

2 years agoPut the root into a separate place.
Steinar H. Gunderson [Sat, 19 Mar 2016 21:22:57 +0000 (22:22 +0100)]
Put the root into a separate place.

2 years agoPrevent infinite loops on repetitions.
Steinar H. Gunderson [Sat, 19 Mar 2016 21:22:40 +0000 (22:22 +0100)]
Prevent infinite loops on repetitions.

2 years agoReturn the entire PV, and in slightly more parseable form.
Steinar H. Gunderson [Sat, 19 Mar 2016 19:08:53 +0000 (20:08 +0100)]
Return the entire PV, and in slightly more parseable form.

2 years agoGive the proto a package name.
Steinar H. Gunderson [Sat, 19 Mar 2016 15:50:10 +0000 (16:50 +0100)]
Give the proto a package name.

2 years agoReturn all candidate moves from the probe.
Steinar H. Gunderson [Fri, 18 Mar 2016 00:51:35 +0000 (01:51 +0100)]
Return all candidate moves from the probe.

2 years agoDo not use -Wshadow; it is incredibly noisy for protobuf code.
Steinar H. Gunderson [Fri, 18 Mar 2016 00:51:19 +0000 (01:51 +0100)]
Do not use -Wshadow; it is incredibly noisy for protobuf code.

2 years agoWhen returning gRPC probes, report scores from white's perspective.
Steinar H. Gunderson [Thu, 17 Mar 2016 09:45:38 +0000 (10:45 +0100)]
When returning gRPC probes, report scores from white's perspective.

2 years agoWrite out null-move and no move.
Steinar H. Gunderson [Thu, 17 Mar 2016 09:39:14 +0000 (10:39 +0100)]
Write out null-move and no move.

2 years agoMake the bound slightly easier to parse again.
Steinar H. Gunderson [Thu, 17 Mar 2016 01:25:35 +0000 (02:25 +0100)]
Make the bound slightly easier to parse again.

2 years agoMake the client prober output something a bit more easily parseable, and run in a...
Steinar H. Gunderson [Thu, 17 Mar 2016 01:12:13 +0000 (02:12 +0100)]
Make the client prober output something a bit more easily parseable, and run in a loop.

2 years agoRename client.cc to the right extension.
Steinar H. Gunderson [Thu, 17 Mar 2016 01:07:14 +0000 (02:07 +0100)]
Rename client.cc to the right extension.

2 years agoBetter comments and enums in the proto file.
Steinar H. Gunderson [Thu, 17 Mar 2016 01:05:59 +0000 (02:05 +0100)]
Better comments and enums in the proto file.

2 years agoFix a .depend dependency error.
Steinar H. Gunderson [Thu, 17 Mar 2016 00:56:41 +0000 (01:56 +0100)]
Fix a .depend dependency error.

2 years agoRemove some debugging.
Steinar H. Gunderson [Thu, 17 Mar 2016 00:56:14 +0000 (01:56 +0100)]
Remove some debugging.

2 years agoInitial commit for gRPC code.
Steinar H. Gunderson [Wed, 16 Mar 2016 23:18:37 +0000 (00:18 +0100)]
Initial commit for gRPC code.

2 years agoSimplify SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX loop (#1892)
noobpwnftw [Mon, 24 Dec 2018 10:24:29 +0000 (18:24 +0800)]
Simplify SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX loop (#1892)

When iterating through 'SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX' structure, do not use structure member beyond known size.

API is guaranteed to provide us at lease one element upon successful, and no element in the structure can have a zero size.

No functional change.

2 years agoFix crash in best_group() (#1891)
noobpwnftw [Sat, 22 Dec 2018 17:05:13 +0000 (01:05 +0800)]
Fix crash in best_group() (#1891)

This pull request fixes a rare crashing bug on Windows inside our NUMA code, first
reported by Dann Corbit in the following forum thread (thanks!):
https://groups.google.com/forum/?fromgroups=#!topic/fishcooking/gA6aoMEuOwg

The fix is to not use structure member beyond known size when iterating through
'SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX' structure. We note that the Microsoft
API is guaranteed to provide us at least one element upon successful, and no
element in the structure can have a zero size.

No functional change.

2 years agoExtend stack to ss-5, and remove conditions
Joost VandeVondele [Wed, 19 Dec 2018 20:04:36 +0000 (21:04 +0100)]
Extend stack to ss-5, and remove conditions

The `&& (ss-1)->killers[0] ` conditions are there seemingly to protect
accessing ss-5.

This is unneeded and not so intuitive (as the killer is checked for equality
with currentMove, and that one is non-zero once we're high enough in the stack,
this protects access to ss-5). We can just extend the stack from ss-4 to ss-5,
so we can call update_continuation_histories(ss-1, ..) always in search.

This goes a bit further than #1881 and addresses a comment in #1878.

passed STC:
http://tests.stockfishchess.org/tests/view/5c1aa8d50ebc5902ba127ad0
LLR: 3.12 (-2.94,2.94) [-3.00,1.00]
Total: 53515 W: 11734 L: 11666 D: 30115

passed LTC:
http://tests.stockfishchess.org/tests/view/5c1b272c0ebc5902ba12858d
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 140176 W: 23123 L: 23192 D: 93861

Bench: 3451321

2 years agoImprove endgame KBN vs K (#1877)
protonspring [Mon, 17 Dec 2018 17:25:25 +0000 (10:25 -0700)]
Improve endgame KBN vs K (#1877)

Even when playing without endgame table bases, this particular endgame should
be a win 100% of the time when Stockfish is given a KRBK position, assuming
there are enough moves remaining in the FEN to finish the game without hitting
the 50 move rule.

PROBLEM: The issue with master here is that the PushClose difference per square
is 20, however, the difference in squares for the PushToCorners array is usually
less. Thus, the engine prefers to move the kings closer together rather than pushing
the weak king to the correct corner.

What happens is if the weak king is in a safe corner, SF still prefers pushing the
kings together. Occasionally, the strong king traps the weak king in the safe corner.
It takes a while for SF to figure it out, but often draws the game by the 50 move rule
(on shorter time controls).

This patch increases the PushToCorners values to correct this problem. We also added
an assert to catch any overflow problem if anybody would want to increase the array
values again in the future.

It was tested in a couple of matches starting with random KRBK positions and showed
increased winning rates, see https://github.com/official-stockfish/Stockfish/pull/1877

No functional change

2 years agoUpdate our continuous integration machinery (#1889)
erbsenzaehler [Sun, 23 Dec 2018 17:17:44 +0000 (18:17 +0100)]
Update our continuous integration machinery (#1889)

* Update our continuous integration machinery

Ubuntu 16.04 can now be used with travis. Updating all the other stuff
when there.
Invoking the lld linker seems to save 5 minutes with clang on linux.

No functional change.

* fix

2 years agoUse a bit less code to calculate hashfull() (#1830)
mstembera [Sun, 23 Dec 2018 15:10:07 +0000 (07:10 -0800)]
Use a bit less code to calculate hashfull() (#1830)

* Use a bit less code to calculate hashfull(). Change post increment to preincrement as is more standard
in the rest of stockfish.  Scale result so we report 100% instead of 99.9% when completely full.

No functional change.

2 years agoTurn on random access for Syzygy files in Windows (#1840)
mstembera [Sun, 23 Dec 2018 15:09:03 +0000 (07:09 -0800)]
Turn on random access for Syzygy files in Windows (#1840)

* This is the Windows version of
https://github.com/official-stockfish/Stockfish/pull/1829

No functional change.

2 years agoSimplify generate_castling (#1885)
protonspring [Sun, 23 Dec 2018 15:05:24 +0000 (08:05 -0700)]
Simplify generate_castling (#1885)

Although this is a compile-time constant, we stick the castlingSide into a CastlingRight, then pull it out again. This seems unecessarily complex.

No functional change.

2 years agoSimplify KBNK endgame implementation
protonspring [Sat, 8 Dec 2018 17:08:59 +0000 (10:08 -0700)]
Simplify KBNK endgame implementation

We do not need to change the winnerKSq variable, so we can simplify
a little bit the logic of the code by changing only the loserKSq
variable when it is necessary. Also consolidate and clarify comments.

See the pull request thread for a proof that the code is correct:
https://github.com/official-stockfish/Stockfish/pull/1854

No functional change

2 years agoTweak main killer penalty
Guenther Demetz [Tue, 18 Dec 2018 07:05:09 +0000 (08:05 +0100)]
Tweak main killer penalty

Apply refuted main killer penalty also on early TT cut-offs. This
makes penalty logic more consistent with the logic at normal search.

Failed STC:
http://tests.stockfishchess.org/tests/view/5c121e730ebc5902ba11aad8
LLR: -2.95 (-2.94,2.94) [0.00,5.00]
Total: 72193 W: 15848 L: 15625 D: 40720 Elo +1.07

Passed LTC:
http://tests.stockfishchess.org/tests/view/5c17b1b10ebc5902ba123c24
LLR: 2.95 (-2.94,2.94) [0.00,5.00]
Total: 35073 W: 5886 L: 5625 D: 23562 Elo +2.59

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

bench: 3393939

2 years agoNew voting formula for threads
mstembera [Tue, 18 Dec 2018 07:50:57 +0000 (08:50 +0100)]
New voting formula for threads

We now use a quadratic formula during the vote for threads
when deciding on which thread to pick a move from.

time control 5+0.05, with 8 threads:
LLR: 2.95 (-2.94,2.94) [0.00,5.00]
Total: 20202 W: 4031 L: 3813 D: 12358
http://tests.stockfishchess.org/tests/view/5c16c8e60ebc5902ba1223e2

time control 20+0.2, with 8 threads:
LLR: 2.96 (-2.94,2.94) [0.00,5.00]
Total: 14330 W: 2290 L: 2115 D: 9925
http://tests.stockfishchess.org/tests/view/5c16efca0ebc5902ba122993

20000 games match at time control 5+0.05, with 31 threads:
ELO: 5.63 +-2.8 (95%) LOS: 100.0%
Total: 20000 W: 3539 L: 3215 D: 13246
http://tests.stockfishchess.org/tests/view/5c16f07a0ebc5902ba122a20

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

No functional change (in simple thread mode)

2 years agoUse stronglyProtected
31m059 [Sat, 15 Dec 2018 06:55:25 +0000 (01:55 -0500)]
Use stronglyProtected

~stronglyProtected is quite similar to ~attackedBy[Them][PAWN] & ~attackedBy2[Them],
the only difference appears to be that the former includes squares attacked twice
by both sides. The resulting logic is simpler, and the change appears to be at least
Elo-neutral at both STC and LTC.

STC:
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 35924 W: 7978 L: 7885 D: 20061
http://tests.stockfishchess.org/tests/view/5c14a5c00ebc5902ba11ed72

LTC:
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 37078 W: 6125 L: 6030 D: 24923
http://tests.stockfishchess.org/tests/view/5c14ae880ebc5902ba11eed8

Bench: 3646542

2 years agoRefactor king ring calculation
Alain SAVARD [Sat, 15 Dec 2018 17:09:35 +0000 (12:09 -0500)]
Refactor king ring calculation

Compute the "double protection by pawns" expression only once
in initialize(), instead of once for each piece in the piece loop.

Passed STC
http://tests.stockfishchess.org/tests/view/5c1506380ebc5902ba11f3b4
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 9494 W: 2191 L: 2045 D: 5258

Inspired by Nick Pelling's test
   http://tests.stockfishchess.org/tests/view/5c144d110ebc5902ba11e4af
and an older test of mine
   http://tests.stockfishchess.org/tests/view/5c0402810ebc5902bcee1fc8

Non functional change.

2 years agoFix a segfault.
Joost VandeVondele [Sun, 16 Dec 2018 08:51:29 +0000 (09:51 +0100)]
Fix a segfault.

this patch fixes a rare but reproducible segfault observed playing a
multi-threaded match, it is discussed somewhat in fishcooking.

From the core file, it could be observed that the issue was in qsearch, namely:

````
   ss->pv[0] = MOVE_NONE;
````

and the backtrace shows the it arrives there via razoring, called from the rootNode:

````
    (gdb) bt
    alpha=-19, beta=682, depth=DEPTH_ZERO) at search.cpp:1247
````

Indeed, ss->pv can indeed by a nullptr at the rootNode. However, why is the
segfault so rare ?

The reason is that the condition that guards razoring:

````
   (depth < 2 * ONE_PLY &&  eval <= alpha - RazorMargin)
````

is almost never true, since at the root alpha for depth < 5 is -VALUE_INFINITE.

Nevertheless with the new failHigh scheme, this is not guaranteed, and rootDepth > 5,
can still result in a depth < 2 search at the rootNode. If now another thread,
via the hash, writes a new low eval to the rootPos qsearch can be entered.
Rare but not unseen... I assume that some of the crashes in fishtest recently
might be due to this.

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

No functional change

2 years agoStart a TT resize only after search finished.
Joost VandeVondele [Sat, 8 Dec 2018 22:03:42 +0000 (23:03 +0100)]
Start a TT resize only after search finished.

As noticed in the forum, a crash in extract_ponder_from_tt could result
if hash size is set before the ponder move is printed. While it is arguably
a GUI issue (but it got me on the cli), it is easy to avoid this issue.

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

No functional change.

2 years agoRemove Null Move Pruning material threshold
31m059 [Thu, 13 Dec 2018 05:35:00 +0000 (00:35 -0500)]
Remove Null Move Pruning material threshold

On November 30th, @xoto10 experimented with removing this threshold,
but the simplification barely failed LTC. I was inspired to try various
[0, 4] tweaks to increase its value, which would narrow the effects of
this threshold without removing it entirely. Various values repeatedly
led to Elo gains at both STC and LTC, most of which were insufficient
to pass.

After a couple of weeks, I tried again to find an Elo-gaining tweak
but noticed that I could raise the threshold higher and higher without
regression. I decided to try removing it entirely--forgetting that
@xoto10 had already attempted this. However, this now performs much
better at both STC and LTC, producing a STC Elo gain and also potentially
a smaller LTC one.

The reason appears to be a recent change in master (e8ffca3) near
this code, which interacts with this patch. This simplification
governs the conditions under which that patch's effects are applied.
Something non-obvious about that change has significantly improved
the performance of this simplification.

I recognize and thank @xoto10, who originally had this idea. Since
I ran several LTCs recently (to determine whether to open this PR,
or one for a related [0, 4]), I would also like to acknowledge the
other developers and CPU donors for their patience. Thank you all!

STC:
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 13445 W: 3000 L: 2862 D: 7583
http://tests.stockfishchess.org/tests/view/5c11f01b0ebc5902ba11a6b8

LTC:
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 33868 W: 5663 L: 5563 D: 22642
http://tests.stockfishchess.org/tests/view/5c11ffe90ebc5902ba11a8a9

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

Bench: 3343286

2 years agoA combo of parameter tweaks
SFisGOD [Wed, 12 Dec 2018 19:34:17 +0000 (03:34 +0800)]
A combo of parameter tweaks

Joint work by SFisGOD, xoroshiro and Chess13234.

This combo consists of the following tweaks:
Assorted bonuses and penalties by SFisGOD
Bishop and Rook PSQT by SFisGOD
Tempo Value by xoroshiro
Futility pruning by Chess13234

STC:
LLR: 2.95 (-2.94,2.94) [0.00,4.00]
Total: 9005 W: 2082 L: 1882 D: 5041
http://tests.stockfishchess.org/tests/view/5c11628c0ebc5902ba119e90

LTC:
LLR: 2.95 (-2.94,2.94) [0.00,4.00]
Total: 44207 W: 7451 L: 7157 D: 29599
http://tests.stockfishchess.org/tests/view/5c1172a40ebc5902ba119fa3

Bench: 3332460

2 years agoAsymmetrical 8x8 Pawn PSQT
Kurt [Thu, 13 Dec 2018 12:19:55 +0000 (13:19 +0100)]
Asymmetrical 8x8 Pawn PSQT

STC:
LLR: 2.96 (-2.94,2.94) [0.00,5.00]
Total: 13323 W: 3015 L: 2818 D: 7490
http://tests.stockfishchess.org/tests/view/5c00a2520ebc5902bcedd41b

LTC:
LLR: 2.96 (-2.94,2.94) [0.00,5.00]
Total: 52294 W: 9093 L: 8756 D:34445
http://tests.stockfishchess.org/tests/view/5c00b2c40ebc5902bcedd596

Some obvious followups to this are to further tune this PSQT, or
try 8x8 for other pieces. As of now I don't plan on trying this
for other pieces as I think the majority of the ELO it brings is
for pawns and kings.

Looking at the new values, the differences between kingside and
queenside are quite significant. I am very hopeful that this a
llows SF to understand and plan pawn structures even better than
it already does. Cheers!

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

Bench: 3569243

2 years agoChanges identified in RENAME/REFORMATTING thread (#1861)
protonspring [Tue, 11 Dec 2018 12:47:56 +0000 (05:47 -0700)]
Changes identified in RENAME/REFORMATTING thread (#1861)

I've gone through the RENAME/REFORMATTING thread and changed everything I could find, plus a few more. With this, let's close the previous issue and open another.

No functional change.

2 years agoTweak CMH pruning
VoyagerOne [Thu, 6 Dec 2018 23:14:34 +0000 (18:14 -0500)]
Tweak CMH pruning

STC: (yellow)
LLR: -2.94 (-2.94,2.94) [0.00,5.00]
Total: 48919 W: 10625 L: 10517 D: 27777
http://tests.stockfishchess.org/tests/view/5c07e6a20ebc5902bcee7395

LTC:
LLR: 2.96 (-2.94,2.94) [0.00,5.00]
Total: 50360 W: 8424 L: 8102 D: 33834
http://tests.stockfishchess.org/tests/view/5c0812450ebc5902bcee76f4

Bench: 3775064

2 years agoremove extra line.
protonspring [Sun, 9 Dec 2018 00:21:22 +0000 (17:21 -0700)]
remove extra line.

2 years agoremove parenthesis.
protonspring [Sun, 9 Dec 2018 00:19:06 +0000 (17:19 -0700)]
remove parenthesis.

2 years agoadd paren.
protonspring [Sat, 8 Dec 2018 18:08:21 +0000 (11:08 -0700)]
add paren.

2 years agosimplify opposite_colors
protonspring [Sat, 8 Dec 2018 17:57:25 +0000 (10:57 -0700)]
simplify opposite_colors

2 years agoRevert "pseudo_legal() and MOVE_NONE"
Stéphane Nicolet [Thu, 6 Dec 2018 14:00:38 +0000 (15:00 +0100)]
Revert "pseudo_legal() and MOVE_NONE"

This reverts commit 33d95482182e459eb033de47a31f142880aa9afb ,
which crashed in DEBUG mode because of the following assert in position.h

````
Assertion failed: (is_ok(m)), function capture, file ./position.h, line 369.
````

No functional change

2 years agoSimplify Killer Move Penalty
VoyagerOne [Thu, 6 Dec 2018 13:39:41 +0000 (14:39 +0100)]
Simplify Killer Move Penalty

STC:
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 20816 W: 4525 L: 4402 D: 11889
http://tests.stockfishchess.org/tests/view/5c017cb90ebc5902bcede5b4

LTC:
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 39287 W: 6401 L: 6309 D: 26577
http://tests.stockfishchess.org/tests/view/5c01825e0ebc5902bcede686

Bench: 3773021

2 years agoSimplify time manager in search()
xoto10 [Sun, 2 Dec 2018 15:29:31 +0000 (15:29 +0000)]
Simplify time manager in search()

Remove the F[] array which I find unhelpful and rename `improvingFactor` to
`fallingEval` since larger values indicate a falling eval and more time use.

I realise a test was not strictly necessary, but I ran STC [-3,1] just to
check there are no foolish errors before creating the pull request:

STC:
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 35804 W: 7753 L: 7659 D: 20392
http://tests.stockfishchess.org/tests/view/5bef3a0c0ebc595e0ae39c19

It was then suggested to clean the constants around `fallingEval`
to make it more clear this is a factor around ~1 that adjusts time
up or downwards depending on some conditions. We then ran a double
test with this simplification suggestion:

STC:
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 68435 W: 14936 L: 14906 D: 38593
http://tests.stockfishchess.org/tests/view/5c02c56b0ebc5902bcee0184

LTC:
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 37258 W: 6324 L: 6230 D: 24704
http://tests.stockfishchess.org/tests/view/5c030a520ebc5902bcee0a32

No functional change

2 years agopseudo_legal() and MOVE_NONE
protonspring [Thu, 6 Dec 2018 13:02:11 +0000 (14:02 +0100)]
pseudo_legal() and MOVE_NONE

MOVE_NONE is represented as SQ_A1 to SQ_A1 which is never pseudo_legal.

STC
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 38807 W: 8363 L: 8275 D: 22169
http://tests.stockfishchess.org/tests/view/5c05f11d0ebc5902bcee4c86

No functional change

2 years agoIntroduce concept of double pawn protection.
Vizvezdenec [Sun, 2 Dec 2018 19:18:14 +0000 (20:18 +0100)]
Introduce concept of double pawn protection.

Exclude doubly protected by pawns squares when calculating attackers on
king ring. Idea of this patch is not to count attackers if they attack
only squares that are protected by two pawns.

STC
LLR: 2.95 (-2.94,2.94) [0.00,5.00]
Total: 70040 W: 15476 L: 15002 D: 39562
http://tests.stockfishchess.org/tests/view/5c0354860ebc5902bcee1106

LTC
LLR: 2.96 (-2.94,2.94) [0.00,5.00]
Total: 16530 W: 2795 L: 2607 D: 11128
http://tests.stockfishchess.org/tests/view/5c0385080ebc5902bcee14b5

This is third king safety patch in recent times so we probably need
retuning of king safety parameters.

Bench: 3057978

2 years agoPenalize refuted killers in continuation history
Miguel Lahoz [Fri, 30 Nov 2018 05:35:47 +0000 (13:35 +0800)]
Penalize refuted killers in continuation history

Currently we apply a penalty in continuation history for refuted TT moves.
We can use the same idea to also penalize refuted killer moves in continuation
history.

STC:
http://tests.stockfishchess.org/tests/view/5c00ccbd0ebc5902bcedd768
LLR: 2.96 (-2.94,2.94) [0.00,5.00]
Total: 54366 W: 12086 L: 11687 D: 30593

LTC:
http://tests.stockfishchess.org/tests/view/5c0107880ebc5902bceddc9c
LLR: 2.96 (-2.94,2.94) [0.00,5.00]
Total: 25457 W: 4302 L: 4078 D: 17077

Bench: 3419069

2 years agoRemove Overload bonus
ElbertoOne [Sat, 1 Dec 2018 09:28:10 +0000 (10:28 +0100)]
Remove Overload bonus

Compensate by giving the Hanging bonus to weak doubly-attacked
non pawn enemies pieces.

STC: http://tests.stockfishchess.org/tests/view/5bfd53c40ebc5902bced9237
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 62107 W: 13664 L: 13622 D: 34821

LTC: http://tests.stockfishchess.org/tests/view/5bfd74700ebc5902bced9618
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 86406 W: 14381 L: 14365 D: 57660

A possible follow up would be to tune the hanging bonus and/or try to
simplify the hanging bonus condition.

Bench: 3810849

2 years agoRestore development version
Stéphane Nicolet [Thu, 29 Nov 2018 15:17:23 +0000 (16:17 +0100)]
Restore development version

No functional change

2 years agoStockfish 10
Stéphane Nicolet [Thu, 29 Nov 2018 14:45:26 +0000 (15:45 +0100)]
Stockfish 10

Official release version of Stockfish 10.

This is also the 10th anniversary version of the Stockfish project, which
started exactly ten years ago! I wish to extend a huge thank you to
all contributors and authors in our amazing community :-)

Bench: 3939338

2 years agoUpdate list of authors
Stéphane Nicolet [Thu, 29 Nov 2018 14:15:43 +0000 (15:15 +0100)]
Update list of authors

No functional change

2 years agoUse emplace_back() in TB code
Sebastian Buchwald [Thu, 22 Nov 2018 22:50:03 +0000 (23:50 +0100)]
Use emplace_back() in TB code

The patch was tested for correctness by running bench with and
without the change against current master, and the tablebase hit
numbers were found to be identical in both cases. See the pull
request comments for details:
https://github.com/official-stockfish/Stockfish/pull/1826

No functional change.

2 years agoSimplify casting extension
31m059 [Sat, 24 Nov 2018 06:55:09 +0000 (01:55 -0500)]
Simplify casting extension

On November 16th, before the removal of the depth condition, I tried
revising castling extensions to only handle castling moves, rather than
moves that change castling rights generally. It appeared to be a slight
Elo gain at STC but insufficient to pass [0, 4] (+0.5 Elo), but what I
overlooked was that it made pos.can_castle(us) irrelevant and should
have been a simplification. Recent discussion with @Chess13234 and
Michael Chaly (@Vizvezdenec) inspired me to take a second look, and
the simplification continues to pass when rebased on the current master.

This replaces two conditions with one, because type_of(move) == CASTLING
implies pos.can_castle(Us), allowing us to remove the latter condition.

STC:
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 110948 W: 24209 L: 24263 D: 62476
http://tests.stockfishchess.org/tests/view/5bf8f65c0ebc5902bced3a63

LTC:
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 88283 W: 14681 L: 14668 D: 58934
http://tests.stockfishchess.org/tests/view/5bf994a60ebc5902bced4349

Bench: 3939338

2 years agoTurn on MADV_RANDOM for Syzygy mmaps (on Unix-like builds)
Steinar H. Gunderson [Sat, 24 Nov 2018 10:17:12 +0000 (11:17 +0100)]
Turn on MADV_RANDOM for Syzygy mmaps (on Unix-like builds)

When running on a cloud VM (n1-highcpu-96) with several NVMe SSDs and
some non-SSDs for tablebases, I noticed that the average SSD request size was
more than 256 kB. This doesn't make a lot of sense for Syzygy tablebases,
which have a block size of 32 bytes and very low locality.

Seemingly, the tablebase access patterns during probing make the OS,
at least Linux, think that readahead is advantageous; normally, it
gives up doing readahead if there are too many misses, but it doesn't,
perhaps due to the fairly high overall hit rates. (It seems the kernel cannot
distinguish between reading a block that was paged in because the userspace
wanted it explicitly, and one that was read as part of readahead.)

Setting MADV_RANDOM effectively turns off readahead, which causes
the request size to drop to 4 kB. In the aforemented cloud VM test,
this roughly tripled the amount of I/O requests that were able to go
through, while reducing the total traffic from 2.8 GB/sec to 56 MB/sec
(moving the bottleneck to the non-SSDs; it seems the SSDs could have
sustained many more requests).

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

No functional change.

2 years agoQsearch simplification. (#1828)
Jörg Oster [Sun, 25 Nov 2018 10:27:40 +0000 (11:27 +0100)]
Qsearch simplification. (#1828)

Don't do an extra TT update in case of a fail-high,
but simply break off the moves loop and let the TT update
at the end of qsearch do this job.
Same workflow/logic as in our main search function now.

Tested for no regression to be on the safe side.
STC
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 30237 W: 6665 L: 6560 D: 17012
http://tests.stockfishchess.org/tests/view/5bf928e80ebc5902bced3f3a

LTC
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 51067 W: 8625 L: 8553 D: 33889
http://tests.stockfishchess.org/tests/view/5bf937180ebc5902bced3fdc

No functional change.

2 years agoReintroduce tropism to kingdanger
Vizvezdenec [Sat, 24 Nov 2018 01:13:36 +0000 (02:13 +0100)]
Reintroduce tropism to kingdanger

Tropism in kingdanger was simplified away in this pull request #1821.
This patch reintroduces tropism in kingdanger with using quadratic scaling.

Passed STC http://tests.stockfishchess.org/tests/view/5bf7c1b10ebc5902bced1f8f
LLR: 2.96 (-2.94,2.94) [0.00,5.00]
Total: 52803 W: 11835 L: 11442 D: 29526

Passed LTC http://tests.stockfishchess.org/tests/view/5bf816e90ebc5902bced24f1
LLR: 2.96 (-2.94,2.94) [0.00,5.00]
Total: 17204 W: 2988 L: 2795 D: 11421

How do we continue from there?

I've recently tried to introduce tropism difference term in kingdanger which
passed STC 6 times but failed LTC all the time. Maybe using quadratic scaling
for it will also be helpful.

Bench 4041387

2 years agoRemove the tropism term from kingDanger
31m059 [Sat, 24 Nov 2018 01:09:03 +0000 (02:09 +0100)]
Remove the tropism term from kingDanger

A recent LTC tuning session by @candirufish showed this term decreasing significantly. It appears that it can be removed altogether without significant Elo loss.

I also thank @GuardianRM, whose attempt to remove tropism from king danger inspired this one.

After this PR is merged, my next step will be to attempt to tune the coefficients of this new, simplified kingDanger calculation.

STC:
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 12518 W: 2795 L: 2656 D: 7067
http://tests.stockfishchess.org/tests/view/5befadda0ebc595e0ae3a289

LTC:
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 164771 W: 26463 L: 26566 D: 111742
http://tests.stockfishchess.org/tests/view/5befcca70ebc595e0ae3a343

LTC 2, rebased on Stockfish 10 beta:
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 75226 W: 12563 L: 12529 D: 50134
http://tests.stockfishchess.org/tests/view/5bf2e8910ebc5902bcecb919

Bench: 3412071

2 years agoForce time check on TB probe in search.
Joost VandeVondele [Mon, 4 Jun 2018 08:31:25 +0000 (10:31 +0200)]
Force time check on TB probe in search.

Because of aggressive time management and optimistic assumptions
about move overhead, it's still very easy to get Stockfish to forfeit
on time when we hit an endgame and have Syzygy EGTB on a spinning
drive. The latency from serving a few thousand EGTB probes (~10ms each),
of which there can currently be up to 4000 outstanding before a time
check, will easily overwhelm the default Move Overhead of 30ms.

This problem was first raised by Gian-Carlo Pascutto and some solutions
and improvements were discussed in the following pull requests:
https://github.com/official-stockfish/Stockfish/pull/1471
https://github.com/official-stockfish/Stockfish/pull/1623
https://github.com/official-stockfish/Stockfish/pull/1783

This patch is a minimal change proposed by Marco Costalba to lower
the impact of the bug. We now force a check of the clock right after
each tablebase read.

No functional change.

2 years agoBonus for restricting opponent's piece moves
xoto10 [Tue, 20 Nov 2018 06:45:00 +0000 (07:45 +0100)]
Bonus for restricting opponent's piece moves

STC:
LLR: 2.96 (-2.94,2.94) [0.00,5.00]
Total: 51883 W: 11297 L: 10915 D: 29671
http://tests.stockfishchess.org/tests/view/5bf1e2ee0ebc595e0ae3cacd

LTC:
LLR: 2.96 (-2.94,2.94) [0.00,5.00]
Total: 15859 W: 2752 L: 2565 D: 10542
http://tests.stockfishchess.org/tests/view/5bf337980ebc5902bcecbf62

Notes:

(1) The bonus value has not been carefully tested, so it may be possible
to find slightly better values.

(2) Plan is to now try adding similar restriction for pawns. I wanted to
include that as part of this pull request, but I was advised to do it as
two separate pull requests. STC is currently running here, but may not add
enough value to pass green.

Bench: 3679086

2 years agoStockfish 10-beta
Stéphane Nicolet [Mon, 19 Nov 2018 10:18:21 +0000 (11:18 +0100)]
Stockfish 10-beta

Preparation commit for the upcoming Stockfish 10 version, giving a chance to catch last minute feature bugs and evaluation regression during the one-week code freeze period. Also changing the copyright dates to include 2019.

No functional change

2 years agoTweak Queen PSQT based on tuned values
SFisGOD [Sat, 10 Nov 2018 12:06:05 +0000 (20:06 +0800)]
Tweak Queen PSQT based on tuned values

STC: (Yellow)
LLR: -2.96 (-2.94,2.94) [0.00,4.00]
Total: 63140 W: 13433 L: 13353 D: 36354
http://tests.stockfishchess.org/tests/view/5bed42c90ebc595e0ae37cf5

LTC: (Green)
LLR: 2.95 (-2.94,2.94) [0.00,4.00]
Total: 47714 W: 7785 L: 7485 D: 32444
http://tests.stockfishchess.org/tests/view/5bec3b8c0ebc595e0ae36dec

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

Bench: 3717396

2 years agoTune evaluation scores
Kurt [Thu, 15 Nov 2018 14:16:18 +0000 (09:16 -0500)]
Tune evaluation scores

STC:
LLR: -2.96 (-2.94,2.94) [0.00,4.00]
Total: 84697 W: 18173 L: 18009 D: 48515
http://tests.stockfishchess.org/tests/view/5bea366f0ebc595e0ae34793

LTC:
LLR: 2.95 (-2.94,2.94) [0.00,4.00]
Total: 157625 W: 25533 L: 24893 D: 107199
http://tests.stockfishchess.org/tests/view/5be8b69e0ebc595e0ae33024

Personally, I feel like SF has been tuned to death recently and that we
need to step away from existing-parameter tunes for a bit and focus more
on new ideas. I don't really think there's much more ELO in these tunes
(for now). For me at least, this was the last existing-parameter tune I'll
be running for quite a while. Cheers!

Bench: 3572567

2 years agoRemove BlockedStorm array
protonspring [Mon, 19 Nov 2018 09:37:07 +0000 (10:37 +0100)]
Remove BlockedStorm array

Apparently, only RANK_3 is relevant. This removes a look-up and the
BlockedStorm array, but adds another conditional.

STC
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 84340 W: 18054 L: 18054 D: 48232
http://tests.stockfishchess.org/tests/view/5bea10f40ebc595e0ae3457b

LTC
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 31874 W: 5135 L: 5032 D: 21707
http://tests.stockfishchess.org/tests/view/5beadb6a0ebc595e0ae35542

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

Bench: 3799443

2 years agoSimplify Castle Extension
VoyagerOne [Mon, 19 Nov 2018 09:27:52 +0000 (10:27 +0100)]
Simplify Castle Extension

Remove depth condition in castle extension, also don't extend if
Singular Extension and Check Extansion fail to extend.

STC:
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 42070 W: 9118 L: 9036 D: 23916
http://tests.stockfishchess.org/tests/view/5be899cc0ebc595e0ae32f07

LTC:
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 78278 W: 12490 L: 12458 D: 53330
http://tests.stockfishchess.org/tests/view/5be8ac420ebc595e0ae33010

Bench: 3611041

2 years agoCode style in search.cpp
protonspring [Fri, 2 Nov 2018 16:49:51 +0000 (10:49 -0600)]
Code style in search.cpp

It does not appear to be not necessary or advantageous to
conditionally initialize kingRing[Us] or kingAttackersCount[Them],
so the 'else' can be removed.

STC
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 22873 W: 4923 L: 4804 D: 13146
http://tests.stockfishchess.org/tests/view/5be9a8270ebc595e0ae33c7e

No functional change

2 years agoUpdate a comment in the evaluate.cpp file to reflect recent change
Nikolay Kostov [Mon, 12 Nov 2018 20:15:17 +0000 (22:15 +0200)]
Update a comment in the evaluate.cpp file to reflect recent change

No functional change

2 years agoRook PSQT Tuned
SFisGOD [Sat, 10 Nov 2018 07:03:15 +0000 (15:03 +0800)]
Rook PSQT Tuned

Failed STC (Yellow )
LLR: -2.96 (-2.94,2.94) [0.00,4.00]
Total: 56302 W: 12007 L: 11953 D: 32342
http://tests.stockfishchess.org/tests/view/5be69d210ebc595e0ae3185b

Passed 1st LTC (Green)
LLR: 2.95 (-2.94,2.94) [0.00,4.00]
Total: 8745 W: 1480 L: 1301 D: 5964
http://tests.stockfishchess.org/tests/view/5be682960ebc595e0ae31818

Failed 2nd LTC (Red)
LLR: -2.96 (-2.94,2.94) [0.00,4.00]
Total: 19398 W: 3040 L: 3133 D: 13225
http://tests.stockfishchess.org/tests/view/5be69b840ebc595e0ae31856

Passed 3rd LTC (Green)
LLR: 2.96 (-2.94,2.94) [0.00,4.00]
Total: 107516 W: 17342 L: 16858 D: 73316
http://tests.stockfishchess.org/tests/view/5bea879a0ebc595e0ae34d80

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

How to continue from there?

The values in the rook table now look a bit strange for a human eye
and are hard to explain, maybe it would be nice to simplify them
by hand and see if we can pass another (clean) double green with a
more regular array.

Bench: 3188070

2 years agoChange default contempt from 21 to 24 centipawns
Vizvezdenec [Fri, 9 Nov 2018 01:02:24 +0000 (04:02 +0300)]
Change default contempt from 21 to 24 centipawns

To top the rating lists and get more interesting middle play, it
is a good habit to set the default contempt to the highest value
that does not regress against contempt=0. We recently decreased
PawnValueEg it is logical that to raise a little bit the default
higher contempt because of the following internal dependency in
line 334 of search.cpp :

````
int ct = int(Options["Contempt"]) * PawnValueEg / 100; // From centipawns
````

STC: contempt=24 passed non-regression vs contempt=0
http://tests.stockfishchess.org/tests/view/5bd6d7f80ebc595e0ae21e14

LTC: contempt=24 passed non-regression LTC vs contempt=0
http://tests.stockfishchess.org/tests/view/5bd6e0980ebc595e0ae21f07

On 2018-11-01, we also tested the effects of contempt=21 and contempt=24
against Stockfish 9, and the net result was neutral:

Contempt 21
ELO: 51.68 +-1.9 (95%) LOS: 100.0%
Total: 40000 W: 9487 L: 3581 D: 26932
http://tests.stockfishchess.org/tests/view/5bdb1a140ebc595e0ae2620a

Contempt 24
ELO: 52.21 +-2.0 (95%) LOS: 100.0%
Total: 40000 W: 9759 L: 3793 D: 26448
http://tests.stockfishchess.org/tests/view/5bdb1b680ebc595e0ae2620d

Bench: 3459874

2 years agoClear TableBase mappings in Search::clear()
Nooby [Sat, 27 Oct 2018 20:12:34 +0000 (04:12 +0800)]
Clear TableBase mappings in Search::clear()

This patch will make possible to free mapped TB files with "ucinewgame" command.

We wrote this patch specifically to address a problem that arose while
running Stockfish with 7-piece tablebases as a kibitzer at TCEC for
extended periods of time across multiple games. It was noted that after
some time, the NPS of the kibitzing Stockfish (which is usually 3x faster
than the Stockfish actually competing) would drop precipitously, eventually
falling to preposterously low numbers until restarted.

Their eval bot basically inputs FEN, go infinite, stop and loop, it probably
didn't do ucinewgame either. As time goes it gradually slowed down and OS
starts to use swap, this is not reasonable since the engine only uses 16GB
hash and the machine has 1TB physical RAM and does nothing else.

Author : noobpwnftw

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

No functional change.

2 years agoReplace the PassedDanger array by an equation
protonspring [Wed, 31 Oct 2018 15:05:44 +0000 (09:05 -0600)]
Replace the PassedDanger array by an equation

This equation seems to do as well as the current PassedDanger array.

Master values were: 3, 7, 11, 20
The new values given by the equation are: 3, 6, 11, 18

STC:
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 84301 W: 18155 L: 18156 D: 47990
http://tests.stockfishchess.org/tests/view/5bda03180ebc595e0ae2518e

LTC:
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 7940 W: 1358 L: 1217 D: 5365
http://tests.stockfishchess.org/tests/view/5bdc69880ebc595e0ae27d28

We stopped a LTC run after 70000 games:
LLR: 0.74 (-2.94,2.94) [0.00,4.00]
Total: 70257 W: 11319 L: 11064 D: 47874
http://tests.stockfishchess.org/tests/view/5bdca8420ebc595e0ae281a9

Bench: 3913185

2 years agoRemove redundant king square parameter
mstembera [Sun, 11 Nov 2018 03:49:13 +0000 (19:49 -0800)]
Remove redundant king square parameter

We don't need to pass the king square as an explicit parameter to the functions
king_safety() and do_king_safety() since we already pass in the position.

STC:
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 69686 W: 14894 L: 14866 D: 39926
http://tests.stockfishchess.org/tests/view/5be84ac20ebc595e0ae3283c

No functional change.

2 years agoSimplify tropism. (#1807)
31m059 [Sun, 11 Nov 2018 21:14:28 +0000 (16:14 -0500)]
Simplify tropism. (#1807)

We calculate tropism as a sum of two factors. The first is the number of squares in our kingFlank and Camp that are attacked by the enemy; the second is number of these squares that are attacked twice. Prior to this commit, we excluded squares we defended with pawns from this second value, but this appears unnecessary. (Doubly-attacked squares near our king are still dangerous.) The removal of this exclusion is a possible small Elo gain at STC (estimated +1.59) and almost exactly neutral at LTC (estimated +0.04).

STC:
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 20942 W: 4550 L: 4427 D: 11965
http://tests.stockfishchess.org/tests/view/5be4e0ae0ebc595e0ae308a0

LTC:
LLR: 2.94 (-2.94,2.94) [-3.00,1.00]
Total: 56941 W: 9172 L: 9108 D: 38661
http://tests.stockfishchess.org/tests/view/5be4ec340ebc595e0ae30938

Bench: 3813986

2 years agoUpdate list of top CPU contributors
Stephane Nicolet [Thu, 8 Nov 2018 16:09:44 +0000 (17:09 +0100)]
Update list of top CPU contributors

Contributors with >10,000 CPU hours as of November 4, 2018. Thank you!

No functional change

2 years agoPawn and Piece Values Tuned at LTC
SFisGOD [Tue, 6 Nov 2018 17:45:13 +0000 (01:45 +0800)]
Pawn and Piece Values Tuned at LTC

Failed STC
LLR: -2.96 (-2.94,2.94) [0.00,4.00]
Total: 27487 W: 5846 L: 5903 D: 15738
http://tests.stockfishchess.org/tests/view/5be1d3190ebc595e0ae2e5b8

Passed 1st LTC
LLR: 2.95 (-2.94,2.94) [0.00,4.00]
Total: 38503 W: 6270 L: 5999 D: 26234
http://tests.stockfishchess.org/tests/view/5be1f5ef0ebc595e0ae2e750

Passed 2nd LTC
LLR: 2.95 (-2.94,2.94) [0.00,4.00]
Total: 34016 W: 5584 L: 5326 D: 23106
http://tests.stockfishchess.org/tests/view/5be2a1970ebc595e0ae2f1b4

This pull request lead to an interesting discussion about testing
methodology for Stockfish:
https://github.com/official-stockfish/Stockfish/pull/1804

Bench: 3647775

2 years agofixup
Joost VandeVondele [Wed, 7 Nov 2018 15:55:25 +0000 (16:55 +0100)]
fixup

2 years agoExtension for king moves changing castling rights
Joost VandeVondele [Sat, 3 Nov 2018 14:03:39 +0000 (15:03 +0100)]
Extension for king moves changing castling rights

passed STC:
LLR: 2.95 (-2.94,2.94) [0.00,5.00]
Total: 8463 W: 1919 L: 1747 D: 4797
http://tests.stockfishchess.org/tests/view/5be15d510ebc595e0ae2dec6

passed LTC:
LLR: 2.95 (-2.94,2.94) [0.00,5.00]
Total: 142590 W: 23263 L: 22587 D: 96740
http://tests.stockfishchess.org/tests/view/5be1667b0ebc595e0ae2df2d

Bench: 3607243

2 years agoSimplify mobility danger
Fabian Fichter [Fri, 2 Nov 2018 14:24:14 +0000 (15:24 +0100)]
Simplify mobility danger

Check sign only after adding mobility danger term.

STC
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 9090 W: 2001 L: 1856 D: 5233
http://tests.stockfishchess.org/tests/view/5bdc5ee10ebc595e0ae27bc2

LTC
LLR: 2.94 (-2.94,2.94) [-3.00,1.00]
Total: 123466 W: 19766 L: 19805 D: 83895
http://tests.stockfishchess.org/tests/view/5bdc678e0ebc595e0ae27cf3

bench: 3630207

2 years agoRook tweaks in evaluation
Stéphane Nicolet [Fri, 2 Nov 2018 21:04:43 +0000 (22:04 +0100)]
Rook tweaks in evaluation

Some small changes in evaluation to try to convince Stockfish to centralize
her rooks more in middle game and avoid trapping them in the corners. Joint
work by SFisGOD and snicolet.

STC:
LLR: 2.96 (-2.94,2.94) [0.00,4.00]
Total: 99826 W: 21895 L: 21341 D: 56590
http://tests.stockfishchess.org/tests/view/5bdc3e280ebc595e0ae277df

LTC:
LLR: 2.95 (-2.94,2.94) [0.00,4.00]
Total: 21467 W: 3541 L: 3322 D: 14604
http://tests.stockfishchess.org/tests/view/5bdc9ff30ebc595e0ae28119

Bench: 3631608

2 years agoFix issues from using adjustedDepth too broadly
Joost VandeVondele [Sun, 28 Oct 2018 14:25:15 +0000 (15:25 +0100)]
Fix issues from using adjustedDepth too broadly

The recently committed Fail-High patch (081af9080542a0d076a5482da37103a96ee15f64)
had a number of changes beyond adjusting the depth of search on fail high, with
some undesirable side effects.

1) Decreasing depth on PV output, confusing GUIs and players alike as described in
   issue #1787. The depth printed is anyway a convention, let's consider adjustedDepth
   an implementation detail, and continue to print rootDepth. Depth, nodes, time and
   move quality all increase as we compute more. (fixing this output has no effect on
   play).

2) Fixes go depth output (now based on rootDepth again, no effect on play), also
   reported in issue #1787

3) The depth lastBestDepth is used to compute how long a move is stable, a new move
   found during fail-high is incorrectly considered stable if based on adjustedDepth
   instead of rootDepth (this changes time management). Reverting this passed STC
   and LTC:

   STC
   LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
   Total: 82982 W: 17810 L: 17808 D: 47364
   http://tests.stockfishchess.org/tests/view/5bd391a80ebc595e0ae1e993

   LTC
   LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
   Total: 109083 W: 17602 L: 17619 D: 73862
   http://tests.stockfishchess.org/tests/view/5bd40c820ebc595e0ae1f1fb

4) In the thread voting scheme, the rank of the fail-high thread is now artificially
   low, incorrectly since the quality of the move is much better than what adjustedDepth
   suggests (e.g. if it takes 10 iterations to find VALUE_KNOWN_WIN, it has very low
   depth). Further evidence comes from a test that showed that the move of highest
   depth is not better than that of the last PV (which is potentially of much lower
   adjustedDepth).

   I.e. this test http://tests.stockfishchess.org/tests/view/5bd37a120ebc595e0ae1e7c3
   failed SPRT[0, 5]:

   LLR: -2.95 (-2.94,2.94) [0.00,5.00]
   Total: 10609 W: 2266 L: 2345 D: 5998

   In a running 5+0.05 th 8 test (more than 10000 games) a positive Elo estimate is
   shown (strong enough for a [-3,1], possibly not [0,4]):

   http://tests.stockfishchess.org/tests/view/5bd421be0ebc595e0ae1f315
   LLR: -0.13 (-2.94,2.94) [0.00,4.00]
   Total: 13644 W: 2573 L: 2532 D: 8539
   Elo 1.04 [-2.52,4.61] / LOS 71%

Thus, restore old behavior as a bugfix, keeping the core of the fail-high patch
idea as resolving scheme. This is non-functional for bench, but changes searches
via time management and in the threaded case.

Bench: 3556672

2 years agoCombo
SFisGOD [Wed, 31 Oct 2018 16:48:16 +0000 (00:48 +0800)]
Combo

Combo of two parameter tweaks and tuned values for Queen and ThreatByKing.

STC
LLR: 2.95 (-2.94,2.94) [0.00,4.00]
Total: 20180 W: 4439 L: 4198 D: 11543
http://tests.stockfishchess.org/tests/view/5bd7b8250ebc595e0ae22e97

LTC
LLR: 2.95 (-2.94,2.94) [0.00,4.00]
Total: 86312 W: 14106 L: 13685 D: 58521
http://tests.stockfishchess.org/tests/view/5bd803560ebc595e0ae23213

This combo consists of the following:

Queen Value (tuned values)
Iter: 72056, A: 5000, alpha 0.602000, gamma 0.101000, clipping old, rounding deterministic
param: QueenValueMg, best: 2528.91, start: 2528.00
param: QueenValueEg, best: 2687.12, start: 2698.00

ThreatByKing (tuned values)
Green STC (50.8k games)
http://tests.stockfishchess.org/tests/view/5bd1d5a00ebc595e0ae1cbec
LTC (I stopped this test at 71.2k games. It's likely yellow.)
http://tests.stockfishchess.org/tests/view/5bd263e70ebc595e0ae1d77e

WeakUnopposedPawn (tweak) by xoto (https://github.com/xoto10)
Green STC (102.8k games)
http://tests.stockfishchess.org/tests/view/5bd306bb0ebc595e0ae1e146
Yellow LTC (90.8k games)
http://tests.stockfishchess.org/tests/view/5bd3ea660ebc595e0ae1f16b

aspiTune1 (tweak) by vondele (https://github.com/vondele)
Green STC (125.9k games)
http://tests.stockfishchess.org/tests/view/5bd2ae100ebc595e0ae1dab0
Yellow LTC (107.9k games)
http://tests.stockfishchess.org/tests/view/5bd3eb700ebc595e0ae1f16f

Thank you @31m059 (Mark Tenzer) for helping me! Also, thank you very much
for recognizing my efforts. I genuinely appreciate it.

Bench: 3556672

2 years agoTweak of knight PSQT and mobility bonuses
Vizvezdenec [Fri, 26 Oct 2018 12:17:42 +0000 (15:17 +0300)]
Tweak of knight PSQT and mobility bonuses

STC
LLR: 2.95 (-2.94,2.94) [0.00,4.00]
Total: 16906 W: 3745 L: 3516 D: 9645
http://tests.stockfishchess.org/tests/view/5bd306a40ebc595e0ae1e144

LTC
LLR: 2.96 (-2.94,2.94) [0.00,4.00]
Total: 62779 W: 10249 L: 9901 D: 42629
http://tests.stockfishchess.org/tests/view/5bd3188f0ebc595e0ae1e296

Bench 3166402

2 years agoOn main thread: reduce depth after fail high
Guenther Demetz [Fri, 19 Oct 2018 08:33:01 +0000 (10:33 +0200)]
On main thread: reduce depth after fail high

This helps resolving consecutive FH's during aspiration more efficiently

STC:
http://tests.stockfishchess.org/tests/view/5bc857920ebc592439f85765
LLR: 2.95 (-2.94,2.94) [0.00,5.00]
Total: 4992 W: 1134 L: 980 D: 2878 Elo +10.72

LTC:
http://tests.stockfishchess.org/tests/view/5bc868050ebc592439f857ef
LLR: 2.95 (-2.94,2.94) [0.00,5.00]
Total: 8123 W: 1363 L: 1210 D: 5550 Elo +6.54

No-Regression test with 8 threads, tc=15+0.15:
http://tests.stockfishchess.org/tests/view/5bc874ca0ebc592439f85938
LLR: 2.94 (-2.94,2.94) [-3.00,1.00]
Total: 24740 W: 3977 L: 3863 D: 16900 Elo +1.60

This was a cooperation between me and Michael Stembera:
-me recognizing SF having problems with resolving FH's efficiently at
high depths, thus starting some tests based on consecutive FH's.
-mstembera picking up the idea with first success at STC & LTC (so full
credits to him!)
-me suggesting how to resolve the issues pinpointed by S.G on PR #1768
and finally restricting the logic to the main thread so that it don't
regresses at multi-thread.

bench: 3314347

2 years agoNUMA for 9 threads or more
Peter Zsifkovits [Tue, 4 Sep 2018 11:36:42 +0000 (13:36 +0200)]
NUMA for 9 threads or more

Enable numa machinery only for STRICTLY MORE than 8 threads. Reason for this
change is that nowadays SMP tests are always done with 8 threads. That is a
problem for multi-socket Windows machines running on fishtest.

No functional change

2 years agoRevert Pull Request #1771, see issue #1785 (#1786)
Günther Demetz [Tue, 23 Oct 2018 16:04:30 +0000 (18:04 +0200)]
Revert Pull Request #1771, see issue #1785 (#1786)

no functional change

bench: 4274207

2 years agoSmall simplification in castling rights
mstembera [Sun, 14 Oct 2018 19:50:31 +0000 (12:50 -0700)]
Small simplification in castling rights

There is no need for a special struct with a static member
to generate castling rights.

No functional change.

2 years agoSimplify check extensions
ElbertoOne [Tue, 2 Oct 2018 07:07:29 +0000 (09:07 +0200)]
Simplify check extensions

Remove the !moveCountPruning condition for check extensions, which seems not necessary.

STC:
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 22238 W: 4835 L: 4715 D: 12688
http://tests.stockfishchess.org/tests/view/5bb3241a0ebc592439f6d2ac

LTC:
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 36593 W: 5898 L: 5802 D: 24893
http://tests.stockfishchess.org/tests/view/5bb34c220ebc592439f6d5dc

Bench: 4274207

2 years agoRandomize draw eval
Joost VandeVondele [Sun, 14 Oct 2018 18:33:24 +0000 (20:33 +0200)]
Randomize draw eval

The patch adds a small random component (+-1) to VALUE_DRAW for the evaluation
of draw positions (mostly 3folds). This random component is not static, but
potentially different for each visit of the node (hence derived from the node
counter). The effect is that in positions with many 3fold draw lines, different
lines are followed at each iteration. This keeps the search much more dynamic,
as opposed to being locked to one particular 3fold.

An example of a position where master suffers from 3fold-blindness and this patch
solves quickly is the famous TCEC game 53:

FEN: 3r2k1/pr6/1p3q1p/5R2/3P3p/8/5RP1/3Q2K1 b - - 0 51

master doesn't see that this is a lost position (draw eval up to depth 50) as
Qf6-e6 d4-d5 (found by patch at depth 23) leads to a loss.

The 3fold-blindness is more important at longer TC, the patch was yellow STC and
LTC, but passed VLTC:

STC
LLR: -2.95 (-2.94,2.94) [0.00,5.00]
Total: 46328 W: 10048 L: 9953 D: 26327
http://tests.stockfishchess.org/tests/view/5b9c0ca20ebc592cf275f7c7

LTC
LLR: -2.95 (-2.94,2.94) [0.00,5.00]
Total: 54663 W: 8938 L: 8846 D: 36879
http://tests.stockfishchess.org/tests/view/5b9ca1610ebc592cf27601d3

VLTC
LLR: 2.95 (-2.94,2.94) [0.00,5.00]
Total: 31789 W: 4512 L: 4284 D: 22993
http://tests.stockfishchess.org/tests/view/5b9d1a670ebc592cf276076d

Credit to @crossbr for pointing to this problem repeatedly, and giving the hint
that many draw lines are typical in those situations.

Bench: 4756639

2 years agoCorrectly track down pv even in fail-high case
Guenther Demetz [Mon, 17 Sep 2018 06:42:58 +0000 (08:42 +0200)]
Correctly track down pv even in fail-high case

Currently we update (track up) the pv even in the fail high case.
However most times in such cases the pv in the ply below remains unset
because there we have value == alpha and so finally we see truncated
pv's (=just one move) in fail high cases.
Of course tracking down these pv's (+sending them to the gui) comes at a
certian cost, but no-regression tests passed:

STC:
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 16300 W: 3556 L: 3424 D: 9320
http://tests.stockfishchess.org/tests/view/5b9b73500ebc592cf275ea92

LTC:
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 202411 W: 32734 L: 32897 D: 136780
http://tests.stockfishchess.org/tests/view/5b9baed10ebc592cf275ef6d

N.B.: Digging also into qsearch was tried in another version but seemed
not to pass the tests. This means that we don't always will get a pv
until the very tips.

No functional change

2 years agoSimplify evaluation of blockers_for_king
Miguel Lahoz [Thu, 20 Sep 2018 07:12:12 +0000 (15:12 +0800)]
Simplify evaluation of blockers_for_king

Currently, we have two evaluation terms which account for pinned pieces.
One is for all pinned pieces in kingDanger computation and another for
just pinned pawns in ThreatByRank. We can increase the relevant bonus
for kingDanger calculation and do away with the ThreatByRank, which
seems to just add more complexity.

STC:
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 113353 W: 24299 L: 24356 D: 64698
http://tests.stockfishchess.org/tests/view/5ba348c20ebc592cf2766e61

LTC:
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 96458 W: 15514 L: 15511 D: 65433
http://tests.stockfishchess.org/tests/view/5ba398830ebc592cf2767563

At 100k games, I thought it struggles a bit, but some related [0,4]
tests attempting individual tweaks seem to fail:

I tried directly tweaking ThreatByRank:
http://tests.stockfishchess.org/tests/view/5ba3c6300ebc592cf276791c
http://tests.stockfishchess.org/tests/view/5ba3c6190ebc592cf2767917

@Vizveznedec was also recently trying to tweak the same coeffecients
for kingDanger calculation:
http://tests.stockfishchess.org/tests/view/5ba2c7320ebc592cf27664b2
http://tests.stockfishchess.org/tests/view/5ba2c8220ebc592cf27664b8
http://tests.stockfishchess.org/tests/view/5ba2c7880ebc592cf27664b4
http://tests.stockfishchess.org/tests/view/5ba2c7ce0ebc592cf27664b6

Bench: 4648095

2 years agosmall ttCapture simplification.
Joost VandeVondele [Tue, 2 Oct 2018 14:34:40 +0000 (16:34 +0200)]
small ttCapture simplification.

ttCapture can be assigned to only once outside of the main loop. The patch seems
functional at higher depths (seems possible in the case of non-legal TTmoves that
are captures).

passed STC
LLR: 2.94 (-2.94,2.94) [-3.00,1.00]
Total: 23189 W: 5098 L: 4980 D: 13111
http://tests.stockfishchess.org/tests/view/5bb3822c0ebc592439f6d966

passed LTC
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 10336 W: 1665 L: 1529 D: 7142
http://tests.stockfishchess.org/tests/view/5bb39a190ebc592439f6db8a

unchanged bench: 4312846