Author: Uri Blass
Date: 17:18:38 07/30/04
Go up one level in this thread
On July 30, 2004 at 19:51:37, Christophe Theron wrote: >On July 29, 2004 at 18:48:16, José Carlos wrote: > >>On July 29, 2004 at 18:01:34, Uri Blass wrote: >> >>>On July 29, 2004 at 17:34:11, Christophe Theron wrote: >>> >>>>On July 29, 2004 at 14:07:10, Robert Hyatt wrote: >>>> >>>>>On July 29, 2004 at 06:26:52, Gian-Carlo Pascutto wrote: >>>>> >>>>>>http://arxiv.org/ftp/cs/papers/0406/0406038.pdf >>>>>> >>>>>>I stumbled onto this when doing a search for Axon. >>>>>>Not seen it mentioned here yet. >>>>>> >>>>>>They also have a paper about hashing out which I can't >>>>>>download. >>>>>> >>>>>>-- >>>>>>GCP >>>>> >>>>> >>>>>Doesn't strike me as particularly interesting. IE it almost seems that they >>>>>don't realize that most programs store positions in a repetition list as 64 bit >>>>>Zobrist integers... >>>> >>>> >>>> >>>>Actually I think it might be interesting. >>>> >>>>Recently, when I was rewriting the core of the Chess Tiger engine, I realized >>>>that I could get even more speed by not computing the hash keys during the >>>>quiescence search for example. >>>> >>>>In my case, it would have meant some more changes in the engine and the way I do >>>>QSearch. But for some programs, it could be interesting. >>> >>>I think that the interesting improvements are not small linear improvement in >>>speed. >>> >>>> >>>>The problem then is how do you check for repetitions? >>>> >>>>If you allow checks and escape from checks in your QSearch, and if you actually >>>>extend them in some way, you have to detect repetitions. >>>> >>>>So a lightweight, hash key free, repetitions detector is a must in this case. >>>> >>>>It could also be interesting for people who want to write a very small chess >>>>program for portable units. >>>> >>>>But I think there is a better method than the one given in the paper. I would >>>>use an array of integers, one per piece on the board. The array starts filled >>>>with 0. Every time a piece is moved I would add the move vector to the integer >>>>in the array. >>> >>>I do not understand >>>Does the array has 64 integers? >> >> No, this array is a piece list array, if I understand correctly. You have an >>integer for each piece. When you move a rook from square 1 to square 2, you add >>2-1=1. Then, if you move back the rook to square 1, you add 1-2=-1 and get a >>zero there. >> He also adds a "master vector", a single integer where you add the 1 and the >>-1 and all the other moves. Only if this master vector is zero, you need to >>check the full list. >> Sounds like a good idea and it is not only a linear speed improvement, because >>if you do this at every node (and this is faster than the hash key trick, which >>is the key), then you have an exponential improvement (every node is faster). >> >> José C. > > > >You've got it José. > >But Uri is right, it is only a linear improvement over the method of detecting >repetitions with hash keys. > > > > Christophe I understand better now. The source for my misunderstanding was "array of integers, one per piece on the board" I thought about it as 1 for piece and 0 for empty squares. Uri
This page took 0.01 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.