Moderators: hgm, Andres Valverde
H.G.Muller wrote:Well, Fritz is not a WinBoard engine, so quite possible it has ways to control its thinking time in other ways then telling it how much time there is on its clock. But in WinBoard protocol that is the only way (unless you want to set a fixed search depth, which I would never recommend).
H.G.Muller wrote:The problem is that the effective ply-depth of a human varies strongly with game phase. Like it would for an engine, when you let it think for a fixed time or number of nodes, except even more so. So limiting the engine to a fixed depth is likely to make it play like a total idiot in the end game, and you would have little trouble winning even the most badly lost end-games, because it would simply allow you to march up your passers until they become unstoppable, without even suspecting there is anything wrong. And by the time you set the depth so large that this is no longer a problem, it is already far past the point where it totally over-plays you tactically in the middle-game.
Btw, it is possible to limit the depth with the aid of the option -searchDepth N. I just do not recommend its use. Time-odds is a better method, until you get into the realm where the engine would have to move faster than your system clock ticks. After that you can play by a fixed number of nodes (for UCI engines that support 'go nodes' and WB engines that support 'nps').
H.G.Muller wrote:-first/-secondTimeOdds are volatile options, i.e. not saved in the settings file. I made it that way because it seems more likely than not that in a new session after one where you used time odds, you would want to use standard times. And even if you wanted to use time odds again, it would be unlikely you needed the same factor.
You should compare this to options like "Has Own Book" and "variant". The timeOdds options are really intended to go with the engine, on its install line (like -fd, -sd). You want each engine to have its own timeOdds, chosen to give itthe desired playing strength, and you dont want time odds of one engine to hang around when you use another engine next time that does not specify time odds on its engine line.
For time odds it is even such that it is not persistent during a session: each time you open the TC dialog it again proposes time-odds factors of 1, even when you were using other factors. (For "Has Own Book" it at least would show you the current setting when you re-open the Common-Engine dialog.)
Each factor two should shave off about 70 Elo points, but thing stopworking properly when you reduce the engine time to around 1/100 sec per move. (Because this is the precision with which clock times are transmitted in WB protocol, and also at which the system clock ticks, which mostengines use for timing decisions. In UCI you can specify the time in msec, but that does not really help if the clock ticksonly 60 times per sec. An engine told to think 5 msec would read the clock, and see "Oh, I have not used any time yet, let's think some more". Until the clock ticks, and then it would think "Oops, now I have used 16 msec, which is 11 more than I had, so I have forfeited now".) So there is alimit to how far you can go with this, and like you say, even at 20 moves per second engines like Fruit and Stockfish are formidable opponents. But you can of course start with amuch weaker engine.
There is little else you can do from a GUI to dumb down an engine, other than limiting its time. Unless the engine has specific options to do that. In that case they should appear in the Engine Settings dialog.
H.G.Muller wrote:-first/-secondTimeOdds are volatile options, i.e. not saved in the settings file. I made it that way because it seems more likely than not that in a new session after one where you used time odds, you would want to use standard times. And even if you wanted to use time odds again, it would be unlikely you needed the same factor.
You should compare this to options like "Has Own Book" and "variant". The timeOdds options are really intended to go with the engine, on its install line (like -fd, -sd). You want each engine to have its own timeOdds, chosen to give itthe desired playing strength, and you dont want time odds of one engine to hang around when you use another engine next time that does not specify time odds on its engine line.
For time odds it is even such that it is not persistent during a session: each time you open the TC dialog it again proposes time-odds factors of 1, even when you were using other factors. (For "Has Own Book" it at least would show you the current setting when you re-open the Common-Engine dialog.)
Each factor two should shave off about 70 Elo points, but thing stopworking properly when you reduce the engine time to around 1/100 sec per move. (Because this is the precision with which clock times are transmitted in WB protocol, and also at which the system clock ticks, which mostengines use for timing decisions. In UCI you can specify the time in msec, but that does not really help if the clock ticksonly 60 times per sec. An engine told to think 5 msec would read the clock, and see "Oh, I have not used any time yet, let's think some more". Until the clock ticks, and then it would think "Oops, now I have used 16 msec, which is 11 more than I had, so I have forfeited now".) So there is alimit to how far you can go with this, and like you say, even at 20 moves per second engines like Fruit and Stockfish are formidable opponents. But you can of course start with amuch weaker engine.
There is little else you can do from a GUI to dumb down an engine, other than limiting its time. Unless the engine has specific options to do that. In that case they should appear in the Engine Settings dialog.
H.G.Muller wrote:Indeed, external TMs like PSWBTM used to be the only way to play more than a single opponent. Now that I managed to have WinBoard change engine during a session, it became possible to equipit with an intrinsic TM. This is still in an experimental phase, although the aim is to make external TMs superfluous in the long run.
My major worry is reliability in the face of buggy engines. An external TM is quite invulnarable to WinBoard crashes (e.g. triggered by bad engine behavior), because you start a new WinBoardfor any game anyway. But when WB runs the tourney itself, it becomes very important that it can handle even the worst engine behavior without crashing or stalling. It will require a lot of testing with buggy engines to make sure that it is sufficiently error proof.
In some respects PSWBTM is still superior to the intrinsic TM. For instance the possibility to run 'aftergame' and 'afterround' batch files, and the ability to display the pairing scheme and the current standings. OTOH, the intrinsic TM already can dosome thngs that are not possible with PSWBTM. Such as Swiss tourneys, or playing several games of a tourney in parallel.
I still plan to equip the intrinsic TM with -afterGame and -afterRound options, but I still have to think what best to let this options represent. (E.g. should they specify the name of a batch filewith commands, or should they just specify a command stringto be executed by the system.) I would like to have some possibility in -afterGame to refer to the name of the currently playing engines, so that you could selectively kill engines that do not reliably terminate. With PSWBTM I often also used a 'kill list' for rogue engines, but you had no other option there as killing all engines participating in the tourney after every game, even those that did not play in the game.
Roger Brown wrote:Hello H.G.,
That kill process is what I would like you to fine tune.
Where you are running parallel instances of a Winboard tournament and you kill bad.exe, there could be disastrous unintended consequences if bad.exe was active in both (or more) tournaments.
Later.
It would be nice if some windows expert could explain what goes on. Surely there must be
a fool proof way of killing a child process under Windows.
Return to WinBoard development and bugfixing
Users browsing this forum: No registered users and 8 guests