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.