Author: Robert Hyatt
Date: 07:55:13 02/13/00
Go up one level in this thread
On February 12, 2000 at 22:45:21, Sanjiv Karnataki wrote: >On February 12, 2000 at 19:39:44, Robert Hyatt wrote: > >>On February 12, 2000 at 17:46:51, Sanjiv Karnataki wrote: >> >>>Hi All, >>> >>>I was trying to put in MTD(f) in my amateur program, but it seemed to worsen the >>>search times so I decided to do what every amateur does when they get stuck ;) I >>>looked at Crafty's code to see if it did something similar, but I cannot figure >>>out what it is doing. >>> >>>Could someone (possibly Dr. Hyatt) please explain in small words the logic in >>>iterate.c and searchr.c? I understand that it maintains a sorted root move list, >>>but I cannot understand all the stuff it is doing with root_alpha, root_beta, >>>root_moves[0].status. It also modifies root_beta in SearchRoot !?. >>> >>>Any help is greatly appreciated, thank you in advance ! >>> >>>Sanjiv. >> >> >>first, I don't use mtd(f). I tried it, but didn't like it. >> >>iterate simply calls SearchRoot() over and over. If the value returned is >>< alpha, I relax alpha and search again, same depth. If the value returned is >>> beta, I relax beta and search again, same depth. Otherwise I go to the next >>ply. >> >>Other than that I am not sure what you don't understand.. feel free to ask >>specific things however.. > >Thank you Dr. Hyatt. > >A couple of specific questions: >a) Crafty seems to use the two least significant bits of root_moves[0].status in >some way that controls how alpha and beta are relaxed. What do the bits mean and >why different rules for relaxing alpha/beta? > >b) If iterate.c controls calls to searchroot, why is SearchRoot in turn also >modifying root_beta ? does that improve the window somehow? > >Thank you for your patience and answers ! > > >Sanjiv. /* xxxx xxx1 = failed low xxxx xx1x = failed high 1xxx xxxx = done (searched) x1xx xxxx = don't search in parallel */ That is from 'chess.h' where the structure is defined. I am interested in odd cases like a move fails high, then low. Or low, then high. Those flags let me handle those. Yes. root-beta is 'global' to handle some specific conditions. as a new root_alpha value is found, root-beta is also adjusted where appropriate...
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.