Computer Chess Club Archives


Search

Terms

Messages

Subject: Comments on testing, and two simple questions

Author: Andrew Wagner

Date: 17:24:40 06/17/04


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.



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.