Author: Uri Blass
Date: 10:59:31 07/25/02
Go up one level in this thread
On July 25, 2002 at 13:09:31, Robert Hyatt wrote: >On July 25, 2002 at 12:10:35, Uri Blass wrote: > >>On July 25, 2002 at 11:29:37, Robert Hyatt wrote: >> >>>On July 25, 2002 at 01:32:52, Uri Blass wrote: >>> >>>>On July 24, 2002 at 21:54:12, Robert Hyatt wrote: >>>> >>>>>On July 24, 2002 at 13:13:11, Gian-Carlo Pascutto wrote: >>>>> >>>>>>On July 23, 2002 at 12:08:43, Uri Blass wrote: >>>>>> >>>>>>>I still do not use hash tables to save generating moves and it is another gain >>>>>>>that I can get from hash tables. >>>>>> >>>>>>That gain is very small - I still don't do it either. >>>>>> >>>>>>-- >>>>>>GCP >>>>> >>>>> >>>>>I think for me it was about 10%. Not huge. Not ignorable either. if you >>>>>count the number of times the hash move causes a fail high, that is the number >>>>>of move generations you will totally avoid... It may or may not be a lot >>>>>depending on other factors... >>>> >>>>No >>>> >>>>It is not the number of move generations to avoid for me. >>>>You should multiply it by the number of legal moves because >>>>I generate them before looking at the hash tables. >>> >>> >>> >>>I think you misunderstand. >>> >>>At a ply in the tree, at the top of search, you should be doing this: >>> >>>1. hash probe. >>>2. generate captures. >>>3. try them one at a time. >>>4. generate non-captures >>>5. try them one at a time. >> >>I think that it should be: >> >>1.hash proble >>2.generate killers. > >I don't see why you need to "generate" these. You already have the >moves in the killer list, you simply have to validate the move to be >sure it is legal in the current position... I need to generate a new function to validate if a move is legal(I have a function to check if the opponent move is legal but the way that I do it is by generating all the list of the legal moves and checking if the move is in the list). I called it generating the move but you are right that I do not need to put it in the move stack so practically after finding that it is legal. > > >>3.try them one at a time. >>4.gnerate captures(only good captures or promotions). >>5.try them one at a time. >>6.generate non-captures >>7.try them one at a time. >> >> >>For step 1 I need to change the data that is in the hash tables and add the >>number of legal moves because this number is >>used in part of the cases to decde about extensions. >> >>I understand that at least for step 2,4,6 >>I need to write some new functions. >> >>Function 1:check if the killer is legal,generate it >>and count the number of legal moves >>(unless the number is in the hash tables or >>the killer is illegal). > >Where are you doing the "legal move count"? I assumed it was in your >move generator, which would be called at the _next_ ply after making a >killer at this ply... It is today in my move generator but I use it to decide if to extend or not to extend I have some rule that tells me to extend if the number of legal moves is small and some other conditions happen so I need to know the number of legal moves before making another 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.