Computer Chess Club Archives


Search

Terms

Messages

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

Author: Don Dailey

Date: 21:20:22 01/03/98

Go up one level in this thread


On January 03, 1998 at 21:22:15, Robert Hyatt wrote:

>On January 03, 1998 at 16:58:07, Don Dailey wrote:
>
>>
>>
>>About this:
>>
>>>Crafty is a "null-move" searcher.  At shallow depths, null-move can hide
>>>simple threats quite easily.  I used to see this when playing on ICC
>>>using
>>>a P5/133 machine.  Once I moved to the P6/200 and tuned things better
>>>for
>>>that machine, skill went *down* on the P5.
>>
>>Are you tuning for the machine or the speed of the machine?  It sounds
>>like you have something non-optimal in there somewhere.  If you know
>>what you did you must be able to make the thing self adjust so it will
>>play close to optimal at any time control?
>>
>>
>>-- Don
>
>basically search speed.  If you use null-move, and only search 5 plies,
>you will get killed easily with the famous Qh6 Pf6 threat that null move
>hides.  But if you search faster, and can get to 7-8 at blitz, as I do
>on
>the P6, this doesn't get overlooked and I haven't lost a game to this
>problem
>in 2+ years now...  but back on the P5 (slower P5's) I'd get killed at
>fast
>blitz...
>
>My stripped-down q-search works great at the depths I normally get (8+
>in
>blitz, 10-11-12 in middlegames in decent time controls) but it works
>less
>"decently" at shallower depths, because it doesn't detect check or mate,
>and the basic search is too shallow to find them...

By the way,  I think it's a mistake, at least in my implementation not
to do full quies search with checks and everthing when doing null move.
The checks really help pick up tactics IN THE NULL MOVE SEARCH ITSELF,
so you don't miss mate threats particularly.  But no 2 programs are the
same so anything goes.   I have a setting where I do checks in quies
in the null move but not the main search.   It's hard to tell which
version is better but not doing quies checks in null move is definitely
worse for Cilkchess.

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?

I never understood this reasoning (which I've heard a lot) although I'm
certainly open to the possibility that it's true.   Just bear with me
as I play devils advocate and become a little sarcastic here:

Someone listening will probably say, yes but a deep searcher rarely
falls for Qh6 f6 therefore it's not necessary to cover it.  But a
deep searcher plays better in every respect.  Why do I single out
this or that not to cover?   Can I leave out castling moves  after
the 12th ply because my program no longer has a problem with this and
it's just a waste of time?  Is there a level where I would suddenly be
ill advised to do a capture search at all?  After all, once I'm doing
20 ply searches in the middlegame I seem to be doing fine without a
capture search.  In fact I can rarely find a bad move where the problem
is obviously caused by this no captures search approach.  Finally, if
your program after doing a 9 ply search gets to your Qh6 f6 position at
a terminal node, why is it ok not to understand it?  You say your
program
never falls for it any more but I say it's falling for it a million
times
near leaf nodes in the sense it doesn't understand that position.  You
cannot tell me it doesn't matter as long as you don't fall for it
earlier, because the problem will show up as a bad positional decision
made earlier.

I have a king and pawn vs king database in my program.  I think of the
database as a powerful and specific tactical algorithm.  A little black
box you plug into the end node.   My program also plays the ending
perfectly WITHOUT the database.  Should I take it out because of this?
(actually,
despite my mock sarcasm the program is faster with the database because
eval becomes a quick table lookup, but let's pretend it's really a
slowdown)

But I have the database not because I'm worried about making the program
play this ending perfectly.  I have it for it's accurate end-node
evaluation, not for playing this ending.  (for knowing when to get into
this ending)

Ok,  sorry for the sarcasm and silly examples.   You get my point.  I
want
to hear why someone would have a different evaluation function in a
deep searcher than in a shallow searcher.  (We can consider the quies
search
an extension of the evaluation function.)

I have some evidence you are right.  I've mentioned in earlier postings
that some tactical extensions (again, view these as better quies search)
seem to help the 3 ply searches a lot but have no effect on the deep
searches.

But I don't really understand why, at least not in a way I can
verbalize.
Do you?

Tell me what evaluation terms I should leave out in a deep searcher.  Do
you consider it a resource management problems?  In other words would
the
best evaluation be the same if time was not a factor?

I've heard the same argument with almost everything.  "Bishop mobility
is very useful for shallow searches but is a waste of time with deep
searchers",  "King safety is not as important for deep searchers because
they can calculate their way out of trouble" etc.

None of this makes sense to me.   I need some help !!  This needs to
be laid out in a coherent way that makes some sense.  We need a
general theory of evaluation and searches to understand this
relationship
between search and static evaluation.


-- Don









This page took 0.01 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.