"Ladder" is a UCI option to weaken the play of Cfish to human levels by reducing the number of nodes (positions) Cfish sees while keeping the full strength evaluation and search functions. At the lowest Ladder Level Rating of 1200, Cfish will play a move after searching ~ 64 nodes. For every increase in a Ladder Level rating , it will slowly increase the nodes by about 0.7%, so that for every 100 rating point increase in the Ladder Level, it will see double the number of nodes. At 1200, it will see ~ 64 nodes, at Ladder level 1300 it will see about ~ 128 nodes, and so forth, so that at Ladder level 1600 it will see about 1024 nodes and at 2600 Ladder Level Rating it will see ~ 1 million nodes. The highest is level is 2800 and it will see ~ 4 million positions per move at a level control permitting sufficient time. This would be about 2 seconds on my machine
"Ladder Range" will enable Cfish to play within a variable range selected at random from move to move. A 100 to 250 Ladder Level point range is the recommended range. but you may set that range as high you like based on your preference. Using the Ladder Range will increase variability in Cfish's play
"Ladder Delay" implements a non-busy sleep function that will for Cfish to use the optimum time for the time control selected. Ladder Level provides the user with about 1400 levels. The idea is that the user get comfortable playing and winning at a certain level, the user can slowly increment the strength at a 10, 25 or 50 rating point increments - and climb the ladder
Happy Ladder Climbing
Last edited by MikeB on Fri Dec 16, 2016 2:16 am, edited 1 time in total.
I wish to commend you for the implementation of the ladder idea. It is a much needed attempt to make engines playable for us humans. And the idea of having a range that the engine will work within makes the game feel much more "normal" to this patzer (some moves are a bit stronger than others; that variability is what feels more normal to me).
royb wrote:I wish to commend you for the implementation of the ladder idea. It is a much needed attempt to make engines playable for us humans. And the idea of having a range that the engine will work within makes the game feel much more "normal" to this patzer (some moves are a bit stronger than others; that variability is what feels more normal to me).
Thank you so much for your efforts!!
Thanks Roy, appreciate the feedback. Stay tuned, more is coming...
It seems to me that making an engine-defined (and thus non-standard) option for something that the protocol already supports in a standard way is rather counter-productive. The normal way of doing this in UCI is using 'go nodes 64'...
hgm wrote:It seems to me that making an engine-defined (and thus non-standard) option for something that the protocol already supports in a standard way is rather counter-productive. The normal way of doing this in UCI is using 'go nodes 64'...
A key difference in my opinion is that the research was done to know that it was 64 nodes evaluated that equated to 1200 ELO. And 128 nodes was equivalent to 1300 ELO, etc. That makes the whole thing so much more friendly/relatable to the average person.
hgm wrote:It seems to me that making an engine-defined (and thus non-standard) option for something that the protocol already supports in a standard way is rather counter-productive. The normal way of doing this in UCI is using 'go nodes 64'...
You are not thinking through all the ramifications of what this does :
Simpler and more intuitive (using the GUI and ratings is something eveynody understands - the top commerical GUIs - Shredder, Fritz, Hiarcs - have this,so this is functionally that you must obviously under appreciate or you would have added it already - so I'm just filling a gap here between your GUI and the engine
Ability to randomize go nodes between x and y
Ability to change it without reloading the engine
Ability to delay the response so it's not instaneous
None of these features are available through the protocol so your argument that this is counter productive is without merit and displays a lack of understanding of desired features.