Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: strange Q search of Rebel

Author: Uri Blass

Date: 17:37:52 12/26/03

Go up one level in this thread


On December 26, 2003 at 18:15:55, José Carlos wrote:

>On December 26, 2003 at 16:09:32, Uri Blass wrote:
>
>>On December 26, 2003 at 15:59:29, Tony Werten wrote:
>>
>>>On December 25, 2003 at 06:29:31, rasjid chan wrote:
>>>
>>>Ed has a different structure in his search.
>>>
>>>Most people have:
>>>search
>>>{
>>>  evaluate
>>>  for all moves do
>>>    make move
>>>    call search
>>>    unmake move
>>>  next
>>>}
>>>
>>>Ed uses:
>>>search
>>>{
>>>  for all moves do
>>>    make move
>>>    evaluate
>>>    call search
>>>    unmake move
>>>  next
>>>}
>>>
>>>The different location of evaluate causes all the differences like <=alpha
>>>instead of >=beta  etc
>>>
>>>Tony
>>
>>I do not understand.
>>
>>How the fact that I evaluate at a different place make the difference?
>>
>>Note that I also evaluate every node but I do not see how it changes alpha and
>>beta.
>>
>>Uri
>
>  Because if you evaluate after making the move, your looking at the position
>from the other side (for the opponent), so now "your" alpha is the opponent's
>"beta" and vicecersa.
>
>  José C.

You are right only if makemove does not change the side to move.

The only reason that I see not to change the side to move is some speed
improvement because it is possible that you will not need to do it thanks to
pruning but I wonder how many programmers really do not change the side to move
during make move and if the reason was really the thoughts of
some probably less than 1% speed improvement.

I have in my program side=1^side both in make move and unmake move when side is
a global varaible that is the side to move.

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.