Lazy eval

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

User avatar
Houdini
Posts: 1471
Joined: Tue Mar 16, 2010 12:00 am

Re: Lazy eval - test results

Post by Houdini »

Rebel wrote:
Houdini wrote:
Rebel wrote:Robert, LE probably was already in use before you were born :wink:
To improve the quality of the discussion, can you please give us a reference to a discussion about the specific feature of skipping LE when the positional value exceeds a certain amount?
Thank you.

Robert

P.S. The idea we are is discussing is not "LE" in general but the specific idea described above.
It's basically discussed in this thread.

Depth-1 eval score + 0.50 margin for horizon and QS nodes.

So you are not testing any bound. The bound is the eval score of depth-1
But that specific concept is not the issue we have been discussing.
Concerning the specific issue of NOT using LE in certain cases, your web page only contains the following ideas:
Rebel web site wrote:REBEL doesn't use LE when on the evaluation of depth-1 the quadrant-rule is used, the quadrant-rule is practiced in "pawn-endings", in case the king can't stop an opponent pawn from promoting the pawn is evaluated close to the value of a queen. If this happens, no LE is allowed one ply deeper.

Other typical special end-game stuff, such as KPK endings where REBEL also knows when the pawn will make it to promotion.

In case of the presence of a Mate Threat Killer.
All this is very different from the specific idea we were discussing above, i.e. not using LE when the positional value exceeds a simple limit.

Several people (well, the usual suspects...) have made loud claims that the idea used in Houdini and Critter is not very original, but so far everybody has pointed to cases and solutions that are very different.

Robert
Pablo Vazquez
Posts: 154
Joined: Thu May 31, 2007 9:05 pm
Location: Madrid, Spain

Re: Lazy eval - test results

Post by Pablo Vazquez »

Houdini wrote:
rvida wrote:I cannot deny I took some ideas from your engine, but this is not one of them. I searched through my old sources, and this one appeared between 0.70 and 0.80 (cca 5/2010 - 8/2010). I did not know about Houdini at that time and was not familiar with Ippolit sources. In a earlier version this condition was based on king safety term from ply-1 eval.
OK, in that case we arrived independently at exactly the same implementation.
Sorry for my implying differently, it looked like an improbable coincidence.

Robert
But now that we know that the idea was in a previous critter, it's not an improbable coincidence anymore, I mean, who would dare to think that you copied the idea from critter 0.80? :)
User avatar
Houdini
Posts: 1471
Joined: Tue Mar 16, 2010 12:00 am

Re: Lazy eval - test results

Post by Houdini »

Pablo Vazquez wrote:
Houdini wrote:
rvida wrote:I cannot deny I took some ideas from your engine, but this is not one of them. I searched through my old sources, and this one appeared between 0.70 and 0.80 (cca 5/2010 - 8/2010). I did not know about Houdini at that time and was not familiar with Ippolit sources. In a earlier version this condition was based on king safety term from ply-1 eval.
OK, in that case we arrived independently at exactly the same implementation.
Sorry for my implying differently, it looked like an improbable coincidence.

Robert
But now that we know that the idea was in a previous critter, it's not an improbable coincidence anymore, I mean, who would dare to think that you copied the idea from critter 0.80? :)
LOL :).
The idea and exact implementation was already present in Houdini 1.0, released in May 2010.
Critter 0.80 was released about 3 months later.

Robert
kranium
Posts: 2129
Joined: Thu May 29, 2008 10:43 am

Re: Lazy eval - test results

Post by kranium »

Houdini wrote:
Pablo Vazquez wrote:
Houdini wrote:
rvida wrote:I cannot deny I took some ideas from your engine, but this is not one of them. I searched through my old sources, and this one appeared between 0.70 and 0.80 (cca 5/2010 - 8/2010). I did not know about Houdini at that time and was not familiar with Ippolit sources. In a earlier version this condition was based on king safety term from ply-1 eval.
OK, in that case we arrived independently at exactly the same implementation.
Sorry for my implying differently, it looked like an improbable coincidence.

Robert
But now that we know that the idea was in a previous critter, it's not an improbable coincidence anymore, I mean, who would dare to think that you copied the idea from critter 0.80? :)
LOL :).
The idea and exact implementation was already present in Houdini 1.0, released in May 2010.
Critter 0.80 was released about 3 months later.

Robert
i support Pablo, he's much more likely correct...
i (like most here) unfortunately and simply can't give even the slightest credence to anything you post.

you ignore difficult questions concerning Houdini's origins (i.e. clearly because there is no reasonable excuse/explanation)
and instead focus on the rebuttal of a stupid and moot point?

:lol:
User avatar
Rebel
Posts: 6991
Joined: Thu Aug 18, 2011 12:04 pm

Re: Lazy eval - test results

Post by Rebel »

Houdini wrote: All this is very different from the specific idea we were discussing above, i.e. not using LE when the positional value exceeds a simple limit.
That's how most of us oldies started in the 80's :idea:

What I have now it just better.
User avatar
Houdini
Posts: 1471
Joined: Tue Mar 16, 2010 12:00 am

Re: Lazy eval - test results

Post by Houdini »

Rebel wrote:
Houdini wrote: All this is very different from the specific idea we were discussing above, i.e. not using LE when the positional value exceeds a simple limit.
That's how most of us oldies started in the 80's :idea:

What I have now it just better.
You oldies always claim to have had all the ideas in the 80's or 90's. :lol:
Do you have any reference from that period? ICGA proceedings, paper, web site, discussion? I'm really interested.

Robert

P.S. You were previously alluding to my date of birth, you'll probably be surprised to learn that my interest in CC dates from about 1985.
User avatar
Rebel
Posts: 6991
Joined: Thu Aug 18, 2011 12:04 pm

Re: Lazy eval - test results

Post by Rebel »

Houdini wrote: You oldies always claim to have had all the ideas in the 80's or 90's. :lol:
Do you have any reference from that period? ICGA proceedings, paper, web site, discussion? I'm really interested.
When your program is just doing 500-600 NPS and your own written profiler reports that 80% of the processor time is in EVAL (no cache back then) then automatically you start looking for ways to lower that percentage. LE was a winner in those days, like Nullmove was in the mid-90's, like LMR is today.

Here are some C snippets from my first PC program Gideon which was my inbetween translation from 6502 -> ARM -> PC. It dates from 1991 but was implemented years before.

Code: Select all

End of EVAL:
stack_score[depth+1]=(i_score - score)+0.50

At horizon and QS dephts:

if (king_in_check)           -->  no LE
update_i_score(); 
score=i_score + stack_score[depth]; 
if &#40;alpha < score&#41;           --> no LE
if_move_gives_checkk&#40;);      --> no LE

Prune with score as fail soft.