Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Explosion in WAC 102

Author: Uri Blass

Date: 10:28:12 01/11/02

Go up one level in this thread


On January 11, 2002 at 11:44:39, David Rasmussen wrote:

>[D]2Q2n2/2R4p/1p1qpp1k/8/3P3P/3B2P1/5PK1/r7 w - - 0 1
>
>In the above position, my search tree explodes because of extensions. It takes >
>3 minutes and 42 million nodes to finish an 8 ply search. How does your program
>do?
>
>Any good ideas on how to limit extensions in such a position.
>
>P.S. Solving the position is no problem. It is a simple mate in 5 plies, and is
>found very early on at depth 1 or 2 or so. Still, there must be something
>unsound about my extensions, or at least room for improvement, when this
>position makes the tree explode.
>
>/David

I see no reason to search to depth 8 when there is a mate in 3.
My program simply stops to search when it finds the mate in 3 at depth 3
after 18210 nodes.

I have other problems in my program

I have some bug in my alpha beta code or in my move generator.
At least I found that the bug is not in my fail high code.

For some reason I have fail high and after it fail low in wac21 and I know that
it is not supposed to happen because I currently supposed not to do
selective search that is based on alpha or beta in my program.

After some investigation I found that I get some plies later in the tree
in the following position
[D]5rk1/1b3p1p/pp3p1Q/8/1P6/P3nPP1/7P/5BK1 w - -
I get
alphabeta(40,402,10000)=499
6196 nodes
alphabeta(40,403,10000)=403
5944 nodes

I tried to get less nodes so I calculated and found

alphabeta(40,402,404)=404
nodes 1695
alphabeta(40,403,404)=403
nodes 3956

40 means 4 plies and all the numbers are in multiplies of 10.
I do it in order to give more room for extensions or pruning but today I do not
use it and I only have extension of 1 ply for checks.

I guess that I use some wrong pruning in my alphabeta or my qsearch that is
based on evaluation and I will try to investigate it later.

It is not the first bug that I discover after implementing the fail high code.

previous bugs were:

1)My program extended checks twice in the first ply and the result was that the
fail high code made my program slower.

I need a long time to understand the reason for the fact that my program is
slower.

2)I did not generate the moves again in the root position when I increased the
depth.

The problem was that My generate move also calculated scores for the order of
moves and the scores were not updated.
The result was that my program did not know to follow the right pv because
the score of the previous pv remained constant so the previous pv was always
searched first.

Maybe it is better if I do a different function to calculate scores for moves
because if I already generate the moves in previous search it is a waste of time
to generate them again but it does not happen often so I am not sure if it is a
good idea.

Uri



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.