Hi Lance,
I respect your decision to not output any infos while Thinker is thinking during game play.
This makes it difficult however to watch Thinker play at long time controls.
Can you in addition to your no-output versions give us a version that outputs ?
Feel free to truncate its thinking line to one or 2 moves.
If the output weakens the engine by a few elos, no problem.
BTW, are there any users out there that would appreciate such a special Thinker version ?
Best,
Matthias.
Thinker output
Moderators: hgm, Rebel, chrisw
-
- Posts: 3245
- Joined: Thu Mar 09, 2006 9:10 am
Thinker output
My engine was quite strong till I added knowledge to it.
http://www.chess.hylogic.de
http://www.chess.hylogic.de
Re: Thinker output
Most users would be very glad with a Thinker version with more output. Thinker is nearly as strong as the free Rybka.Matthias Gemuh wrote: BTW, are there any users out there that would appreciate such a special Thinker version ?
Good suggestion, Matthias
Dieter
-
- Posts: 27822
- Joined: Fri Mar 10, 2006 10:06 am
- Location: Amsterdam
- Full name: H G Muller
Re: Thinker output
I don't see any reason to respect that decision at all. It is a silly decision, ad IMO a violation of WB potocol! I don't see how it would cost you any Elos to print depth and score, but even if it did, when the user says 'post' the engine should post. Just like when the user says 'easy', the engine should not ponder, even when not pondering makes it weaker...Matthias Gemuh wrote:I respect your decision to not output any infos while Thinker is thinking during game play.
-
- Posts: 910
- Joined: Wed Mar 08, 2006 9:46 pm
- Location: Plovdiv, Bulgaria
Re: Thinker output
totally agreehgm wrote:I don't see any reason to respect that decision at all. It is a silly decision, ad IMO a violation of WB potocol! I don't see how it would cost you any Elos to print depth and score, but even if it did, when the user says 'post' the engine should post. Just like when the user says 'easy', the engine should not ponder, even when not pondering makes it weaker...Matthias Gemuh wrote:I respect your decision to not output any infos while Thinker is thinking during game play.
take it easy
-
- Posts: 388
- Joined: Wed Mar 08, 2006 10:08 pm
Re: Thinker output
This is not about saving Elo points.hgm wrote:I don't see any reason to respect that decision at all. It is a silly decision, ad IMO a violation of WB potocol! I don't see how it would cost you any Elos to print depth and score, but even if it did, when the user says 'post' the engine should post. Just like when the user says 'easy', the engine should not ponder, even when not pondering makes it weaker...Matthias Gemuh wrote:I respect your decision to not output any infos while Thinker is thinking during game play.
It is "by design".
The search classes has no I/O capability at all. It is cleanly decoupled from any I/O. When to told to seach, it just searches. When it is done, it just returns. It is up to the shell to display any result. The shell also does not know how the search class does its thing. It just know that it will return eventually with a best move and a score.
The only search-time link between the two is that the shell passes the address of a "terminate" flag that the search must check once in a while in case the search needs to be interrupted.
The shell does not even have a concept of iteration depth. Only the search knows that (just because that is how it is implemented). If I decide to invent a new search that does not have iterative deepening, the shell would still work.
As for the Xboard, protocol, it is broken in this way, because it assumes a particular implementation. The same goes for any protocol item that knows about "hash", PV, and any other implementatio-specific materials in engines.
All other engines out there are monolithic. Thinker does not have to be.
-
- Posts: 3245
- Joined: Thu Mar 09, 2006 9:10 am
Re: Thinker output
hgm wrote:I don't see any reason to respect that decision at all. It is a silly decision, ad IMO a violation of WB potocol! I don't see how it would cost you any Elos to print depth and score, but even if it did, when the user says 'post' the engine should post. Just like when the user says 'easy', the engine should not ponder, even when not pondering makes it weaker...Matthias Gemuh wrote:I respect your decision to not output any infos while Thinker is thinking during game play.
I would of course be insane to truely respect a decision that so heavily breaks the protocol.
I just thought that sweet words may lead to a fixing of the bug.
I even have an option in ChessGUI to exclude such engines from tournaments.
Matthias.
My engine was quite strong till I added knowledge to it.
http://www.chess.hylogic.de
http://www.chess.hylogic.de
-
- Posts: 388
- Joined: Wed Mar 08, 2006 10:08 pm
Re: Thinker output
I don't think there is 'breaking the protocol' here. Even the example that Harm gave - the "easy" command is implementation-specific. There are engines out there that don't know how to ponder. So, you send them and "hard"/"easy" command, and they just ignore them. In fact, you send them a hard + post command, expecting a PV display, but you won't get any when it is not their turn.Matthias Gemuh wrote:hgm wrote:I don't see any reason to respect that decision at all. It is a silly decision, ad IMO a violation of WB potocol! I don't see how it would cost you any Elos to print depth and score, but even if it did, when the user says 'post' the engine should post. Just like when the user says 'easy', the engine should not ponder, even when not pondering makes it weaker...Matthias Gemuh wrote:I respect your decision to not output any infos while Thinker is thinking during game play.
I would of course be insane to truely respect a decision that so heavily breaks the protocol.
I just thought that sweet words may lead to a fixing of the bug.
I even have an option in ChessGUI to exclude such engines from tournaments.
Matthias.
And, I don't work on the Thinker code anymore.
Cheers...
-
- Posts: 388
- Joined: Wed Mar 08, 2006 10:08 pm
Re: Thinker output
And btw, Harm, I'm surprised that you used the 'easy' command as an example:hgm wrote:I don't see any reason to respect that decision at all. It is a silly decision, ad IMO a violation of WB potocol! I don't see how it would cost you any Elos to print depth and score, but even if it did, when the user says 'post' the engine should post. Just like when the user says 'easy', the engine should not ponder, even when not pondering makes it weaker...Matthias Gemuh wrote:I respect your decision to not output any infos while Thinker is thinking during game play.
Code: Select all
C:\Temp\umax>umax.exe
tellics say micro-Max 1.6w
tellics say by H.G. Muller
easy
Error (unknown command): easy
hard
Error (unknown command): hard
quit
C:\Temp\umax>
-
- Posts: 41474
- Joined: Sun Feb 26, 2006 10:52 am
- Location: Auckland, NZ
Re: Thinker output
Are you working on a new engine?CThinker wrote: And, I don't work on the Thinker code anymore.
gbanksnz at gmail.com
-
- Posts: 27822
- Joined: Fri Mar 10, 2006 10:06 am
- Location: Amsterdam
- Full name: H G Muller
Re: Thinker output
Well, that I am a lazy SOB does not imply others should be forgiven for acting the same way! Micro-Max cannot ponder at all, and I guess replying "unkown command" to "hard" is a good way to let the GUI know about it. (Not that any existing GUI does anything with that info...). But I agree that it is not logical to give the same to "easy". Note that uMax 1.6w has not been worked on from the time I first released it as a WB engine, which was at a time when I did not work on WB at all, and hardly knew the protocol. My current policy is to let my engines recognize all WB commands that are sent by default, even if only for the purpose to ignore them (like "computer", "ratings", "otim" etc.).CThinker wrote:And btw, Harm, I'm surprised that you used the 'easy' command as an example:
Code: Select all
C:\Temp\umax>umax.exe tellics say micro-Max 1.6w tellics say by H.G. Muller easy Error (unknown command): easy hard Error (unknown command): hard quit C:\Temp\umax>
You have point about existing protocols being tailored for a specific implemetation of a chess engine (tree search with iterative deepening). But I am pretty sure Thinker does get its moves that way. So this in itself is no excuse for violating the protocol. In the end you get a PV somehow, don't you? It would already be a great improvement if you print that PV before printing the move (so it is not discarded as ponder output, and ends up in the PGN file).
For me looking at the depth/score and PV info is all the fun. Without it, computer Chess is quite meaningless. This was rubbed in again recently, when I converted some XQ engines from another protocol to WB, through an adapter. That other protocol does not give thinking output, so there is nothing I could do about that. But it is just no fun seeing thoe engines play, knowing not even if they thinnk they are winning or losing.