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.