Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Junior's long lines: more data about this....

Author: Don Dailey

Date: 11:48:05 01/04/98

Go up one level in this thread


On January 04, 1998 at 03:03:24, Bruce Moreland wrote:

>
>On January 04, 1998 at 00:20:22, Don Dailey wrote:
>
>>I hate to open this can of worms but here goes:  Are you saying that
>>the quies search of a deep searching program should be "constructed"
>>differently that a shallow searcher?   I do not ask your opinion
>>because I agree or disagree, I'm trying to figure it out myself.
>>
>>And along the same lines, should the evaluation function be different?
>
>Very good questions.
>
>If you do a very shallow search you will miss very simple tactics.  You
>could probably get a clue about what kind of tactics are killing you,
>and add some specific knowledge to try to avoid these situations.

>For instance, assume you have a white bishop on c4 and a white knight on
>e4, which are forked by a black pawn on d5, which is protected by
>another black pawn on e6.  This has happened to you because black has
>just played d6-d5.
>
>With a two-ply search, you may walk into this situation.  You play your
>bishop to c4,  you see the reply ... d6-d5, but you don't have any good
>captures now so you end up returning the static eval for this position.
>So you make the move, your opponent says, "duh", and plays ... d5, and
>you notice now that your score is -2.
>
>I used to beat my Chess Challenger 7 with pawn forks all the time, even
>at one minute per move.
>
>Perhaps it could have benefited from some knowledge:  If it is my turn
>to move, and I have two pieces en-prise to defended pawns, either give a
>penalty or extend, according to taste.
>
>I don't have anything like this in Ferret, and I have never detected a
>situation where this mattered.
>
>The problem with a 2-ply searcher is that these pawn forks represent a
>very simple form of persistent and effective threat -- it is here now,
>but you don't see it, and it will still be here when you finally do see
>it, and when you do see it there will be nothing you can do about it.
>
>So if you search two plies, and you encounter this situation, it will
>probably propagate to the root and kill you.
>
>If you search more plies, you can still mis-evaluate these situations,
>and they can still propagate to the root, if everything above the two
>plies at the tip was forced, but since I've never seen it happen I
>conclude that it is rare.  Perhaps it would be more common for
>mis-evaluation of this situation to result in selection at the root of a
>move that is slightly worse than would otherwise be played.
>
>A 2-ply searcher would get a lot of practical benefit from detecting
>pawn forks, I think.  I get the feeling that a 12-ply searcher would not
>benefit as much.

This is what I think too Bruce, but I have not yet heard a scientific
explanation of why this is (if indeed it is.)

>
>If this is the case, then maybe it does make sense for the evaluation
>functions to be different.  If adding knowledge, in one case, results in
>obviously better play, and in another case it only improves some
>freakish cases, then it seems likely that it's more important to add
>this knowledge in the first case, and less important in the second case.
>
>bruce

Hi Bruce,

Thanks for trying but ...

But I don't think you explained it, but you gave me a couple things to
think about.    I know that 2 ply searches miss stuff and what it
misses.
And I know that no matter how sloppy you get, a deep searcher will pick
up the simple tactics, even if you had a horrible quies search.   But
shallow searches miss ALL classes of moves and all problems seem to
go away magically with deep searches.  What is so special about pawn
forks?

The program has problems with seeing castling, getting isolated pawns,
all kinds of stuff when only doing a 2 ply search.   How come no one
is suggesting that I do special evaluation to pick this stuff up and
then throwing it
out when I look deep enough.   In fact why bother searching deeper at
all?   I guess I'm saying is that you THINK you no longer have a problem
with pawn forks when in fact you do.  Just because you don't fall for
it at the root doesn't mean you're not constantly "falling for it" at
the
leaf nodes.   And please don't say it's more important to not miss it
at the root node.   That is true of ALL THINGS and is the reason we
constantly try to look deeper and deeper.

When I first experimented with selectivity I tried implementing attacks
by the last move piece instead of null move.  I did a global analysis
except on the very last ply where I focused on the last piece moved.
So to get a cutoff on the last ply, the previous moved piece had to NOT
be attacking something.

But then I noticed a horrible problem.  The opponent would fork, then
the computer would look at a high compulsion move like a big capture
or checking move or something.   This move would create a situation
where
the fork move was on the next to last move, not the last move and we
would incorrectly take the cutoff.

I threw the algorithm out (after some experimentation with something
I called compulsion screening) and never put it back even though it
was quite fast (fast because it threw out too much.)

I have no doubt that if I re-implemented this I would never  see
a problem with SHALLOW forks again because I'm doing really deep
searches.
But this does not mean I should put it back!  I saw a definite problem
here and I realize that the problem exists whether I have the depth to
"sweep the problem under the rug" or not.

So the question is how accurate are your end node evaluations?  If I
play Nf6 on the 18th ply and then go into quies and miss the pawn fork
e5! then I have a completely bogus end node evaluation at that node.

My sense of it is that indeed it IS more important to cover these pawn
forks at end nodes of very shallow searches.  But I have not yet heard
a reasonable explanation of why this should be so.

Let's lump this whole thing into the category of "end node evaluation",
and call your specific heuristics your "black box" that simply returns
an
evaluation any way it see's fit.

Now my question is why do I want some of these black boxes to return
more accurate evaluations than others?


To get an explanation that would satisfy me, someone will have to show
me that certain end node evaluations are more likely to influence root
move choices than others.   It's not obvious to me why or how this
works.

To maximize the strength of our programs we all need to understand this
stuff better.   I don't want to be in Bob Hyatt's position where I have
have to "retune" the program every time I get new hardware.  I want my
program to know what depth it is searching and apply the correct
heuristics for that depth.


-- Don



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.