Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Root Position

Author: José Carlos

Date: 14:06:47 01/05/01

Go up one level in this thread


On January 05, 2001 at 14:57:24, Severi Salminen wrote:

>>  There're many possibilities here, and the best one can do is try them all.
>>What I do in Averno is:
>>  - The first time, I sort with my normal criteria (wining captures, etc...)
>>  - After that, every fail high at the root makes that move become the first of
>>the list so, after, several fail highs, at the beggining of the list I have the
>>last fail highs, the most recent first.
>
>Could you or have you compared this with the "node" method? Which one gave you
>the better results? I like the node approach because it gives a priority number
>for each move in root node "looks" like a sound method.

  I tried the node method a while back and, as I didn't notice any differenc (I
mean, better for some positions and worse for others) I kept my method just
because it seems more logical to. Maybe it's not the best, but try to think what
happens when a human player finds his prefferred move is bad. I (2135 FIDE)
usually continue searching my second-prefferred move, and I like my program to
do the same :)

>>>>What is the best way adjust alpha and beta at the root after each iteration?
>>>
>>>First I do a 1 ply search. Then I do search with 1 pawn wide window.
>>
>>  Aspiration search usually uses the value from the previous search, istead of
>>this 1 ply search.
>>  My AS window is 25 centipawn.
>
>I meant that first I do 1 ply search and the I allways use the score from
>previous iteration. So the 1 ply search is done with infinite window.

  Ok, so you mean your first ply search is full-window, and only narrow it for
the second iteration, right?

>>>If I fail
>>>high or low I do a research: score-1, INF (fail high) or -INF,score+1 (fail
>>>low). The score is the score returned from the search that failed low or high >in
>>>the first place.
>>
>>  I do an intermediate try, adding/substracting 150 centipawns and only if that
>>fails high/low again, use +INF/-INF.
>
>Maybe I should also not give an infinite window at first place but try a wider
>window first. Well, I try to make my program play so that it improves its
>position 0.50 pawns on every move so I don't have to re-search ;)

  Not bad idea :), but anyway you should try a somewhat wider window before
going to -INF,+INF.

>>>Notice those +1 and -1. Without those you'll get fail lows and
>>>highs again. I use fail soft and this means that you have to be sure what to
>>>return from search, qsearch and evaluate. A wrong value returned from (say)
>>>futility pruned node means problems. The point is that if you fail high or low
>>>in the first search you have to be sure that the score returned is the other
>>>bound of the true score.
>>>
>>>>I notice I sometimes when I get a fail low at the root, I do a research, and
>>>>then get a fail high! The most likely explanation is that I am a moron and it >is bug.
>>>
>>>Well, we are all morons, so that can't be an explanation. But yes, it must be a
>>>bug.
>>
>>  Hashing and null move can very well cause this behaviour, not necessarily a
>>bug.
>
>Ok, I don't do hashing yet.
>
>Severi

  Null-move, maybe...?

  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.