Why no thinker talk?

Discussion of computer chess matches and engine tournaments.

Moderators: hgm, Rebel, chrisw

maxchgr

Re: I have got some update

Post by maxchgr »

Lance, I'm happy then if indeed this uncovered something! Your engine is now my favorite and I'll be watching for your updates.

I don't know what you meant by quick fix but it's up to you of course - whatever you give us we will be very happy with, this engine is already a stroke of genius IMHO.

If I may add, you probably realize this already but if it is the hash, it is only happening sometimes, right? Interesting then, why it did it for those 3 games but not in other games.
maxchgr

Re: I have got some update

Post by maxchgr »

actually now that I look again, the games where it starts to give away pieces seems to always be after a game where junior lost with nearly no pieces left (or no pieces left besides king)
I don't know that if that has any significance toward the hash values, just an observation
CThinker
Posts: 388
Joined: Wed Mar 08, 2006 10:08 pm

Re: I have got some update

Post by CThinker »

maxchgr wrote:If I may add, you probably realize this already but if it is the hash, it is only happening sometimes, right? Interesting then, why it did it for those 3 games but not in other games.
Just to be clear... the issue is with the evaluation hash. Most engines don't have one like it. The only other engine I know that uses eval hash is Phalanx.

In the case of Thinker, once it gets a few old ones with absurdly different scores, then the search tends to gravidate towards them (since the eval scores decide the direction of the search). The engine thinks that it has winning scores, because the eval says so. But in reality, eval did not compute the scores. It just got them from the eval hash table, and they are wrong (i.e., for different positions from a previous game).

It could also happen in the other games. Its a question of the probability of hash collisions. Also, for this eval hash, I also use the piece counts as a condition for an item match. That reduces the chance of a bad match. But it could still happen (as those three games show).

maxchgr wrote:Lance, I'm happy then if indeed this uncovered something! Your engine is now my favorite and I'll be watching for your updates.

I don't know what you meant by quick fix but it's up to you of course - whatever you give us we will be very happy with, this engine is already a stroke of genius IMHO.
For the quick fix, I will simply put a one-line code that clears the eval hash table before the start of a game. I already do something like that for the search transposition hash table and the pawn evaluation hash table. I just need to add one more. Then, I'll send it to you (and your email is...?).

Cheers...
User avatar
Ovyron
Posts: 4556
Joined: Tue Jul 03, 2007 4:30 am

Re: I have got some update

Post by Ovyron »

CThinker wrote:I could send you a quick fix, if you are interested.
I'm also interested on the fix but I suggest you to release this fix publicly as several members of the Rybka forum are using Thinker and they have reported this weird behavior, so they would be happy to have a fix and it would be faster to release it to the public instead of contacting every member interested one by one.
maxchgr

Re: I have got some update

Post by maxchgr »

Lance I agree with Ulysses, what do you think about making a public release? In the mean time my email is maxchgr@gmail.com if you choose to delay a release for whatever reason.

BTW, I'm very novice with programming and perhaps someone can explain to me what the evaluation hash does (i have heard of hash but only for transpositions, I think..) and what advantage it has? Perhaps a quick thought also on why the other engines don't use it? And I'm wondering if that is one of the reasons that Thinker seems to have a strong grasp on imbalances?
CThinker
Posts: 388
Joined: Wed Mar 08, 2006 10:08 pm

Re: I have got some update

Post by CThinker »

maxchgr wrote:BTW, I'm very novice with programming and perhaps someone can explain to me what the evaluation hash does (i have heard of hash but only for transpositions, I think..) and what advantage it has? Perhaps a quick thought also on why the other engines don't use it? And I'm wondering if that is one of the reasons that Thinker seems to have a strong grasp on imbalances?
Its no different from the pawn evaluation hash table. When you complete an evaluation (of the position, including pawns, pieces, materials, mobility, PST, king safety, king-mate patterns, etc.), then you store the score in the hash table. The next time you need to evaluate the score of a position, you first check the hash table. If you find that you have computed that position before, then you simply use that score.

And no, it has nothing to do with the evaluation of imbalances. I use this because the Thinker evaluation code is slow. Hashing the evaluation scores help a bit.

Other engines probably don't do this because the memory used-up by the eval hash table can be used instead for a bigger pawn hash table or a bigger search transposition hash table. Also, one could argue that the leaf nodes are too dynamic that you end-up with very few table hits anyway, that it is not worth it. And, if the eval function is fast, there is no point in hashing the scores.

Lastly, Thinker does not even have a code for scoring imbalances. This is probably the reason why Thinker ends-up in imbalanced positions often (it has no special code for avoiding them). In contrast, other engines slap penalties for such positions.
maxchgr

Re: I have got some update

Post by maxchgr »

oh wow, so did you purposely not code it to score imbalances or did you end up with the gem that she is inadvertently? And even still, there must be something your engine does better than other engines, that do have those things, seeing how it is actually successful with its so called lack of knowledge..?

btw I'm gonna test it soon vs junior 11, hopefully the games will be just as interesting, the thinker games redefined my idea of 'interesting' in computer games.
CThinker
Posts: 388
Joined: Wed Mar 08, 2006 10:08 pm

Re: I have got some update

Post by CThinker »

Ovyron wrote:I'm also interested on the fix but I suggest you to release this fix publicly as several members of the Rybka forum are using Thinker and they have reported this weird behavior, so they would be happy to have a fix and it would be faster to release it to the public instead of contacting every member interested one by one.
I normally would not want to release a version for a one-line change.

Oh well... there is something under the tree for everyone...

geocities.com/thechessthinker
User avatar
Ovyron
Posts: 4556
Joined: Tue Jul 03, 2007 4:30 am

Re: I have got some update

Post by Ovyron »

Thank you very much! Due to its hyperaggressive playing style, Thinker has got many fans and they'll be pleased with this update :)
Tord Romstad
Posts: 1808
Joined: Wed Mar 08, 2006 9:19 pm
Location: Oslo, Norway

Re: I have got some update

Post by Tord Romstad »

CThinker wrote:Just to be clear... the issue is with the evaluation hash. Most engines don't have one like it. The only other engine I know that uses eval hash is Phalanx.
Glaurung 1 does, too. Glaurung 2 does not, at least not yet.

By the way, is there any hope that there will be a Thinker version for us Linux and Macintosh users? Reading this thread makes me want it. It looks like a nice engine, and the strength seems to be just right for use as a sparring partner for my own program.

Tord