Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Endgame

Author: José Carlos

Date: 07:24:30 11/11/03

Go up one level in this thread


On November 11, 2003 at 09:38:59, Robert Hyatt wrote:

>On November 11, 2003 at 02:45:28, José Carlos wrote:
>
>>On November 11, 2003 at 01:00:14, John Stanback wrote:
>>
>>>As others have noted, this is an interesting position since the tree
>>>becomes so much smaller after the capture such that it's easy
>>>to enough search depth to see the impact of Qxf3.
>>>I made a simple modification that lets Zarkov find Qxf3 in
>>>under a minute (or less depending on the threshold).  This also helps
>>>on lots of other sacrifice positions, but I don't know
>>>if overall it helps more than it hurts since I just implemented
>>>it 15 minutes ago.
>>>The extra code is only applied at the root and looks like this:
>>>
>>>MakeMove();
>>>d = depth;
>>>while (1)
>>>  {
>>>    score = -Search(side,ply,d,-beta,-alpha);
>>>    if (!capture || nodes_just_searched > threshold)) break;
>>>    ++d;
>>>  }
>>>UnmakeMove();
>>>
>>>Where threshold is some fraction of the total nodes searched
>>>during the previous iteration, say nodes/32 or nodes/16.
>>>
>>>This allows the program to search captures at the root to
>>>arbitrary depth.  In this position for example, it searches
>>>Qxf3 to more than 20 ply during iteration 11!
>>>
>>>It doesn't seem to cause much slowdown on about 20 other positions
>>>I tried.  I think this might cause some strangeness with the hashtable.
>>>It may make sense to try some variant of this at ply=2 also.
>>>
>>>
>>>John
>>
>>
>>  Interesting idea. What about real games? In games, I don't clear the hash
>>table between moves, so if I did this (haven't tried 'cause I'm at work now) I
>>guess I'd have extrange behaviour when I'd cuoff by hash hit in the first
>>iterations. I mean, if I search up to depth 12, in the next move I go to depth
>>10 almost instantly due to hash hits in ply 2.
>>  Do you preserve the hash table between moves? Have you tried games to see how
>>your idea affects?
>>
>>  José C.
>>
>
>I don't see where this should hurt hashing at all.  You are only searching
>the positions below the capture with extra depth.  Certainly storing the
>depth you are using when you do the search can't hurt later lookups no matter
>where they occur...

  I'm not sure if what I say makes sense because I haven't come back home yet to
try it, but the idea is: I have made a search before; then my oponent moves and
I start searching again, depth = 1; and I do

MakeMove();
d = 1;
while (1)
  {
    score = -Search(side,ply,d,-beta,-alpha);
    if (!capture || nodes_just_searched > threshold)) break;
    ++d;
  }
UnmakeMove();

  I will hit the hash table in ply 2 with draft, lets say, 10, so I'll return
with a very small number of nodes searched; then I ++d and try again; at some
point, I won't be able to cutoff from the hash table and I'll start searching at
a high depth; if time runs out, I will have only searched on move.

  José C.



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.