Stockfish UCI options

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Rebel, chrisw

Do you miss the user options for Stockfish?

No, I only used the defaults
23
43%
Yes, it was useful for changing the playing style
20
37%
Yes, useful for learning how the program works
4
7%
Don't know, the programmers will have had their reasons
7
13%
I don't like fish, with or without these options
0
No votes
 
Total votes: 54

Joerg Oster
Posts: 937
Joined: Fri Mar 10, 2006 4:29 pm
Location: Germany

Re: Stockfish UCI options

Post by Joerg Oster »

Vinvin wrote:
lucasart wrote: If you don't know what the word "contempt" means, we cannot help you...
from http://www.thefreedictionary.com/contempt
con·tempt (kn-tmpt)
n.
1. The feeling or attitude of regarding someone or something as inferior, base, or worthless; scorn.
2. The state of being despised or dishonored; disgrace.
3. Open disrespect or willful disobedience of the authority of a court of law or legislative body.
[Middle English, from Latin contemptus, past participle of contemnere, to despise; see contemn.]

The American Heritage® Dictionary of the English Language, Fourth Edition copyright ©2000 by Houghton Mifflin Company. Updated in 2009. Published by Houghton Mifflin Company. All rights reserved.
contempt (kənˈtɛmpt)
n
1. the attitude or feeling of a person towards a person or thing that he considers worthless or despicable; scorn
2. the state of being scorned; disgrace (esp in the phrase hold in contempt)
3. (Law) wilful disregard of or disrespect for the authority of a court of law or legislative body: contempt of court.
[C14: from Latin contemptus a despising, from contemnere to contemn]

Collins English Dictionary – Complete and Unabridged © HarperCollins Publishers 1991, 1994, 1998, 2000, 2003
con•tempt (kənˈtɛmpt)

n.
1. a feeling of disdain for anything considered mean, vile, or worthless; scorn.
2. the state of being despised; disgrace.
3. willful disobedience to or open disrespect for the rules or orders of a court or legislative body: contempt of court.
[1350–1400; < Latin contemptus a slighting <contemn(ere) to despise, scorn (see contemn) + -tus suffix of v. action]
syn: contempt, disdain, scorn imply strong feelings of disapproval and aversion toward what seems base, mean, or worthless. contempt is disapproval tinged with disgust: to feel contempt for a weakling. disdain is a feeling that a person or thing is beneath one's dignity and unworthy of one's notice, respect, or concern: a disdain for crooked dealing. scorn denotes undisguised contempt often combined with derision: He showed scorn for those less ambitious than himself.
Random House Kernerman Webster's College Dictionary, © 2010 K Dictionaries Ltd. Copyright 2005, 1997, 1991 by Random House, Inc. All rights reserved.
Does that means I have to put a positive or a negative value to make the engine less happy with a draw ?
See my answer to Carl here: http://talkchess.com/forum/viewtopic.ph ... ew=threads
Jörg Oster
syzygy
Posts: 5566
Joined: Tue Feb 28, 2012 11:56 pm

Re: Stockfish UCI options

Post by syzygy »

zamar wrote:
syzygy wrote:I wonder why the three "Emergency ..." options are still there? The need for "Minimum Thinking Time" and "Slow Mover" also seems doubtful to me.
Because for an engine it's impossible to know how much extra time it needs to allocate for lag.
Ah!! I honestly did not realise this had to do with network play.
zamar
Posts: 613
Joined: Sun Jan 18, 2009 7:03 am

Re: Stockfish UCI options

Post by zamar »

hgm wrote:
zamar wrote:Because for an engine it's impossible to know how much extra time it needs to allocate for lag.
How so? It knows how much time elapsed between receiving the opponent's move and printing its own, and when it receives the next go command it can see how much time was subtracted from its clock for that previous move. The lag is simply the difference (possibly corrected for a time increment, which it is also aware of).
I know... We could measure the average lag during the game... Still it's not about the average, but the worst case scenario. We could calculate mean values, standard deviations, and try to get it something like that with 4 sigma confidence we are not losing on time.

But still it might happen that for 39 moves in one hour game the network works very fast, and we calculate internally that 0.5 seconds is sufficient "Emergency Time Buffer". And then for whatever reason, the network lags for 1.0 second for the 40th move, and engine loses on time.

Of course we could then add logic, that in the beginning of the game, engine would allocate example at minimum 1/1000 of the total thinking time as "Emergency Time" and always keep it on the clock...

But as we can see, this is already getting so complicated that it is probably just easier to keep those UCI options there...
Joona Kiiski
User avatar
lucasart
Posts: 3232
Joined: Mon May 31, 2010 1:29 pm
Full name: lucasart

Re: Stockfish UCI options

Post by lucasart »

Joona,

We need Emergency Time options. But why do we need 3 ? Every other engine I know has only one! How many average users (who did not look into the code) can guess what these 3 options mean ? (Base Time, Move Time, Move Horizon...)

If it is indeed crucial to have 3 emergency options (which I doubt, but now the whole thing is so tuned to death that changing it is impossible), perhaps we should only export one to the user, and keep the mess internally:
https://github.com/official-stockfish/Stockfish/pull/46

Another problem is the Minimum Thinking Time. This option should be useless, and using zero should not cause any problems. Yet it clearly regresses, with or without increment:
http://tests.stockfishchess.org/tests/v ... 27a2193fbf
http://tests.stockfishchess.org/tests/v ... 27a2193fc1

What does that tell us? Two possibilities:
1/ Everything is so tuned to death that removing that Minimum Thinking Time introduces a biais that loses the elo. I doubt that given how large the elo loss was.
2/ The formulas are bogus and must give some pretty bad results in extreme cases, and the Minimum Thinking Time acts as window dressing...
Theory and practice sometimes clash. And when that happens, theory loses. Every single time.
BBauer
Posts: 658
Joined: Wed Mar 08, 2006 8:58 pm

Re: Stockfish UCI options

Post by BBauer »

The question is not wether an option is usefull ore not.
The question is not wether an option changes anything.
So I sugest the PLACE_BO option. Range could be [0,-120,120]
This option would give a huge possibility to change a parameter.
This option would not change nps on 1 thread, but would give changes on more threads and could increase the ELO by a huge margin, even in case of just a few games.
This option is the most wanted option.
Please fullfill this desire.
Of course I could do it myself. :D
Kind regards
Bernhard
User avatar
hgm
Posts: 27808
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Stockfish UCI options

Post by hgm »

zamar wrote:But still it might happen that for 39 moves in one hour game the network works very fast, and we calculate internally that 0.5 seconds is sufficient "Emergency Time Buffer". And then for whatever reason, the network lags for 1.0 second for the 40th move, and engine loses on time.
The problem is that the user, supposed to set the option, faces exactly the same dilemma. With even less info to go on than the engine. If there a long extra lag comes completely out of the blue on the last move before the time control there is just nothing you can do about it.

The engine should be able to conclude from the worst-case 'time slippage' whether it is running through a network or just on the local machine, though. When it is on a network it could just allocate a reasonable part of the session duration as a safety margin. The last move of a session typically has much-longer-than-average time available anyway, to account for fail lows (which usually don't happen). So the lag safety margin might only have to come from your general margin in the case of an emergency.