Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Comments on testing, and two simple questions

Author: Mikael Bäckman

Date: 05:12:55 06/18/04

Go up one level in this thread


On June 17, 2004 at 20:24:40, Andrew Wagner wrote:

>So this week I've been working on adding code to Trueno strictly for debugging
>purposes. Basically, I've been dumping info in readable format to a log file
>during search, with all output lines conditionally compiled. See
>http://www.winboard.info/trueno/debug.txt for an example with WAC 001.
>
>It's been amazing to me in working on this just how little I understand about
>how my program works, especially with regards to alphabeta. Not that I don't
>understand the basic idea, but just the notion of when fail highs and lows are
>likely to happen and what that really means. Several times, as I've been
>reformatting the output, I've looked at something and said "Boy, that looks
>wierd, it must be a bug!". And, two hours later, I go "Ohhh, it's _supposed_ to
>do that! Now I get it!" And I've learned something valuable about my program and
>chess programming in general. Anyway, I recommend this process to any others out
>there who are still relatively new to computer chess. Now, on to my two
>questions:
>
>1.) I discovered in the process of debugging last night that my killer moves
>code wasn't working. At all. I'm still not sure it is (look at the end of the
>four-ply search in the log above, you can see that Qg7 should definitely be a
>killer, but it's not getting searched quickly enough). So my question is about
>how people usually implement killers. Do you clear them on every iteration? Do
>you have a set of killers for each possible depth?
>
>2.) And now for an easy alphabeta question. When I search a move and get back a
>mate score which is a PV node, I can return that score immediately after
>updating my PV, right? As opposed to going back and looking at other moves?
>Because I'm not going to find a quicker mate on that ply anyway.

Hi.

1. I use two killers per depth (ply-remaining) and clear them only when a new
search is initiated, not per iteration. This seems to work best for Chepla. The
best way of implementing killers into your engine must be measured.

2. If you return immediately you will miss the shortest mate. A move might
return mate-in-4, but the next move mate-in-2.


/Mikael



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.